From 1265cf67149116ded353b53f1218a098ac2796ec Mon Sep 17 00:00:00 2001 From: "Matthias J. Kannwischer" Date: Wed, 28 Jan 2026 11:22:42 +0800 Subject: [PATCH 1/8] Armv8.1-M: Add native x1 Keccak implementation Add a scalar x1 Keccak permutation to the Armv8.1-M FIPS202 backend, complementing the existing x4 MVE implementation. The assembly is derived from XKCP, with ARMv7-M optimizations by Alexandre Adomnicai (ePrint 2023/773) and further optimizations in the SLOTHY M7 paper by Abdulrahman, Kannwischer, and Lim (ePrint 2025/366). The implementation uses bit-interleaved state representation internally, with C wrapper functions handling the conversion to/from standard representation for now. Optimized xorbytes, and extractbytes (including the bitinterleaving) will be added at a later stage which will allow removing the current bitinterleaving. - Resolves https://github.com/pq-code-package/mlkem-native/issues/1506 Co-Authored-By: Brendan Moran Signed-off-by: Matthias J. Kannwischer --- BIBLIOGRAPHY.md | 36 + BIBLIOGRAPHY.yml | 23 + dev/fips202/armv81m/mve.h | 14 +- .../armv81m/src/fips202_native_armv81m.h | 7 +- .../armv81m/src/keccak_f1600_x1_armv7m.S | 3769 +++++++++++++++++ .../armv81m/src/keccak_f1600_x1_armv7m.c | 119 + .../armv81m/src/keccakf1600_round_constants.c | 16 +- mlkem/mlkem_native.c | 5 + mlkem/mlkem_native_asm.S | 5 + mlkem/src/fips202/native/armv81m/mve.h | 14 +- .../armv81m/src/fips202_native_armv81m.h | 7 +- .../armv81m/src/keccak_f1600_x1_armv7m.S | 1582 +++++++ .../armv81m/src/keccak_f1600_x1_armv7m.c | 119 + .../armv81m/src/keccakf1600_round_constants.c | 16 +- 14 files changed, 5716 insertions(+), 16 deletions(-) create mode 100644 dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S create mode 100644 dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c create mode 100644 mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S create mode 100644 mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c diff --git a/BIBLIOGRAPHY.md b/BIBLIOGRAPHY.md index 504c6d837b..d5b8428a47 100644 --- a/BIBLIOGRAPHY.md +++ b/BIBLIOGRAPHY.md @@ -16,6 +16,16 @@ 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/src/keccak_f1600_x1_armv7m.S](dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S) + - [mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S](mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S) + ### `AVX2_NTT` * Faster AVX2 optimized NTT multiplication for Ring-LWE lattice cryptography. @@ -284,6 +294,18 @@ source code and documentation. - [dev/README.md](dev/README.md) - [proofs/hol_light/README.md](proofs/hol_light/README.md) +### `SLOTHYM7` + +* Enabling Microarchitectural Agility: Taking ML-KEM & ML-DSA from Cortex-M4 to M7 with SLOTHY +* Author(s): + - Amin Abdulrahman + - Matthias J. Kannwischer + - Thing-Han Lim +* URL: https://eprint.iacr.org/2025/366 +* Referenced from: + - [dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S](dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S) + - [mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S](mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S) + ### `SLOTHY_Paper` * Fast and Clean: Auditable high-performance assembly via constraint solving @@ -308,6 +330,20 @@ source code and documentation. - [proofs/hol_light/aarch64/mlkem/mlkem_intt.S](proofs/hol_light/aarch64/mlkem/mlkem_intt.S) - [proofs/hol_light/aarch64/mlkem/mlkem_ntt.S](proofs/hol_light/aarch64/mlkem/mlkem_ntt.S) +### `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/src/keccak_f1600_x1_armv7m.S](dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S) + - [mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S](mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S) + ### `clangover` * clangover diff --git a/BIBLIOGRAPHY.yml b/BIBLIOGRAPHY.yml index fa13284e0f..2d680f9e28 100644 --- a/BIBLIOGRAPHY.yml +++ b/BIBLIOGRAPHY.yml @@ -165,3 +165,26 @@ name: tiny_sha3 author: Saarinen, Markku-Juhani O. url: https://github.com/mjosaarinen/tiny_sha3 + +- 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: 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 & ML-DSA from Cortex-M4 to M7 with SLOTHY" + author: + - Abdulrahman, Amin + - Kannwischer, Matthias J. + - Lim, Thing-Han + url: https://eprint.iacr.org/2025/366 diff --git a/dev/fips202/armv81m/mve.h b/dev/fips202/armv81m/mve.h index a86dc156d1..8cd76dae42 100644 --- a/dev/fips202/armv81m/mve.h +++ b/dev/fips202/armv81m/mve.h @@ -9,15 +9,27 @@ #define MLK_FIPS202_NATIVE_ARMV81M /* Part of backend API */ +#define MLK_USE_FIPS202_X1_NATIVE #define MLK_USE_FIPS202_X4_NATIVE #define MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #define MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE -/* Guard for assembly file */ +/* Guard for assembly files */ +#define MLK_FIPS202_ARMV81M_NEED_X1 #define MLK_FIPS202_ARMV81M_NEED_X4 #if !defined(__ASSEMBLER__) #include "../api.h" +#define mlk_keccak_f1600_x1_native_impl \ + MLK_NAMESPACE(keccak_f1600_x1_native_impl) +int mlk_keccak_f1600_x1_native_impl(uint64_t *state); + +MLK_MUST_CHECK_RETURN_VALUE +static MLK_INLINE int mlk_keccak_f1600_x1_native(uint64_t *state) +{ + return mlk_keccak_f1600_x1_native_impl(state); +} + /* * Native x4 permutation * State is kept in bit-interleaved format. diff --git a/dev/fips202/armv81m/src/fips202_native_armv81m.h b/dev/fips202/armv81m/src/fips202_native_armv81m.h index f8b31a06b5..8af7678ce6 100644 --- a/dev/fips202/armv81m/src/fips202_native_armv81m.h +++ b/dev/fips202/armv81m/src/fips202_native_armv81m.h @@ -7,10 +7,10 @@ #include "../../../../common.h" -/* Keccak round constants in bit-interleaved form */ +/* Keccak round constants in bit-interleaved form (with terminator for x1) */ #define mlk_keccakf1600_round_constants \ MLK_NAMESPACE(keccakf1600_round_constants) -extern const uint32_t mlk_keccakf1600_round_constants[48]; +extern const uint32_t mlk_keccakf1600_round_constants[49]; #define mlk_keccak_f1600_x4_mve_asm MLK_NAMESPACE(keccak_f1600_x4_mve_asm) void mlk_keccak_f1600_x4_mve_asm(uint64_t state[100], uint64_t tmpstate[100], @@ -32,4 +32,7 @@ void mlk_keccak_f1600_x4_state_extract_bytes_asm(void *state, uint8_t *data0, unsigned offset, unsigned length); +#define mlk_keccak_f1600_x1_armv7m_asm MLK_NAMESPACE(keccak_f1600_x1_armv7m_asm) +void mlk_keccak_f1600_x1_armv7m_asm(uint32_t state[50], const uint32_t rc[49]); + #endif /* !MLK_DEV_FIPS202_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S b/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S new file mode 100644 index 0000000000..cc9cb75707 --- /dev/null +++ b/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S @@ -0,0 +1,3769 @@ +/* + * Copyright (c) The mlkem-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 & 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 + */ + +/* + * This file is derived from the public domain implementation @[XKCP]. + * Optimizations for Armv7-M are described in @[ADOMNICAI23]. + * Further optimizations using SLOTHY are described in @[SLOTHYM7]. + */ + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLK_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 keccak_f1600_x1_armv7m_asm( void *state, const uint32_t *rc ) +@ +.align 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm) +.type MLK_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm),%function +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_armv7m_asm) + push { r4 - r12, lr } + sub sp, #mSize + str r1, [sp, #mRC] +keccak_f1600_x1_armv7m_asm_KeccakF1600_StatePermute_RoundLoop: + slothy_start: + // Instructions: 1521 + // Expected cycles: 812 + // Expected IPC: 1.87 + // + // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 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 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|----------- + ldr.w r3, [r0, #60] // *........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi1'] + ldr.w r11, [r0, #32] // *........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + ldr.w r14, [r0, #20] // .*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi1'] + ldr.w r10, [r0, #72] // .*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu0'] + ldr.w r9, [r0, #100] // ..*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki1'] + ldr.w r8, [r0, #112] // ..*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + ldr r4, [r0, #128] // ...*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ame0'] + eor r7, r14, r3, ror #0 // ...*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r3, [r0, #52] // ....*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + eor r6, r11, r10, ror #0 // ....*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r14, [r0, #12] // .....*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe1'] + eor r9, r7, r9, ror #0 // .....*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r7, [r0, #92] // ......*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + eor r11, r6, r8, ror #0 // ......*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r14, r3, ror #0 // .......*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #48] // .......*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + ldr.w r3, [r0, #40] // ........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + ldr r10, [r0, #132] // ........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame1'] + eor r1, r6, r7, ror #0 // .........*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r12, [r0, #172] // .........*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase1'] + ldr.w r8, [r0, #0] // ..........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba0'] + ldr r7, [r0, #140] // ..........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami1'] + ldr.w r14, [r0, #8] // ...........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abe0'] + eor r5, r1, r10, ror #0 // ...........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r8, r3, ror #0 // ............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #80] // ............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0'] + eor r5, r5, r12, ror #0 // .............*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r6, [r0, #120] // .............*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama0'] + eor r10, r14, r2, ror #0 // ..............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r14, [r0, #64] // ..............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago0'] + eor r12, r3, r1, ror #0 // ...............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r1, [r0, #152] // ...............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amu0'] + ldr.w r2, [r0, #24] // ................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo0'] + eor r6, r12, r6, ror #0 // .................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #180] // .................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + ldr.w r3, [r0, #104] // ..................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0'] + eor r9, r9, r7, ror #0 // ..................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r7, [r0, #88] // ...................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ake0'] + eor r14, r2, r14, ror #0 // ...................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r9, r9, r12, ror #0 // ....................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r0, #192] // ....................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0'] + ldr.w r12, [r0, #28] // .....................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo1'] + eor r11, r11, r1, ror #0 // .....................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r10, r7, ror #0 // ......................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #68] // ......................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago1'] + ldr r1, [r0, #160] // .......................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0'] + eor r8, r11, r8, ror #0 // .......................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r14, r3, ror #0 // ........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #144] // ........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo0'] + eor r2, r12, r2, ror #0 // .........................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r14, [r0, #108] // .........................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ako1'] + eor r7, r8, r5, ror #31 // ..........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r8, r8, r9 // ..........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r3, r11, ror #0 // ...........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r3, [r0, #148] // ...........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amo1'] + str.w r7, [sp, #0] // ............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa0'] + eor r14, r2, r14, ror #0 // ............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r6, r1, ror #0 // .............................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r11, [r0, #188] // .............................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso1'] + eor r14, r14, r3, ror #0 // ..............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r1, [r0, #184] // ..............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso0'] + ldr r7, [r0, #168] // ...............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase0'] + eor r4, r10, r4, ror #0 // ...............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r14, r11, ror #0 // ................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #156] // ................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r3, r12, r1, ror #0 // .................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #76] // .................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + eor r7, r4, r7, ror #0 // ..................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r6, r2 // ..................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r2, r9, ror #31 // ...................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r12, [r0, #196] // ...................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asu1'] + eor.w r2, r5, r3 // ....................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #36] // ....................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu1'] + ldr.w r4, [r0, #56] // .....................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0'] + eor r6, r7, r6, ror #31 // .....................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #16] // ......................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0'] + eor r1, r5, r1, ror #0 // ......................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #116] // .......................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + str.w r6, [sp, #16] // .......................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDi0'] + ldr.w r6, [r0, #44] // ........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga1'] + eor r4, r9, r4, ror #0 // ........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #4] // .........................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba1'] + eor r1, r1, r5, ror #0 // ..........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #84] // ..........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aka1'] + eor r9, r9, r6, ror #0 // ...........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r6, [r0, #96] // ...........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aki0'] + eor r1, r1, r11, ror #0 // ............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #124] // ............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama1'] + eor r9, r9, r5, ror #0 // .............................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r5, [r0, #136] // .............................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami0'] + eor r4, r4, r6, ror #0 // ..............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r6, [r0, #164] // ..............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa1'] + str.w r8, [sp, #12] // ...............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['spmDo1'] + eor r9, r9, r11, ror #0 // ...............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r4, r5, ror #0 // ................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r0, #176] // ................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + ldr.w r4, [r0, #180] // .................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + eor r11, r9, r6, ror #0 // .................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r1, r12, ror #0 // ..................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #132] // ..................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame1'] + eor r5, r5, r8, ror #0 // ...................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r8, [r0, #84] // ...................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aka1'] + eor r12, r3, r11, ror #31 // ....................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r7, r9, r7 // ....................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r8, r7, r8 // .....................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r11, r5 // .....................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r5, r9, ror #31 // ......................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r5, r11, r1 // ......................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r5, r8, ror #23-2 // .......................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r1, r2, r4 // .......................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #24] // ........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo0'] + bic r6, r1, r5, ror #31-23 // ........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r8, ror #29 // .........................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r4, r9, r4 // .........................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r6, [r0, #180] // ..........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asi1'] + bic r6, r4, r1, ror #32+14-31 // ..........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r6, r5, ror #23 // ...........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r6, [r0, #72] // ...........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu0'] + str.w r7, [sp, #4] // ............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDa1'] + eor.w r6, r12, r6 // ............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #24] // .............................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo0'] + bic r5, r6, r4, ror #32+10-14 // .............................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r5, r1, ror #11 // ..............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #60] // ..............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agi1'] + eor r3, r3, r6, ror #13 // ...............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor.w r5, r2, r5 // ...............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r1, [r0, #72] // ................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu0'] + ldr.w r1, [r0, #8] // ................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe0'] + str.w r3, [r0, #132] // .................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ame1'] + eor.w r3, r10, r1 // .................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r8, r6, ror #32+2-10 // ..................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #104] // ..................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0'] + eor.w r1, r9, r8 // ...................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r8, [r0, #164] // ...................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asa1'] + eor.w r7, r7, r8 // ....................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r8, r1, r5, ror #12-3 // ....................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r6, r4, ror #20 // .....................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #156] // .....................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor.w r6, r14, r6 // ......................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r8, r8, r3, ror #12 // ......................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #84] // .......................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aka1'] + bic r4, r6, r1, ror #32+4-12 // .......................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r8, [r0, #164] // ........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asa1'] + bic r8, r7, r6, ror #9-4 // ........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [sp, #8] // .........................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDo0'] + eor r4, r4, r5, ror #1 // .........................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r8, r1, ror #29 // ..........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r4, [r0, #8] // ..........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abe0'] + bic r4, r5, r3, ror #3-0 // ...........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r5, [r0, #88] // ...........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ake0'] + eor.w r5, r10, r5 // ............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r3, r7, ror #32+0-9 // ............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r3, r6, ror #28 // .............................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r1, [r0, #60] // .............................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agi1'] + str.w r6, [r0, #104] // ..............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ako0'] + ldr.w r8, [r0, #140] // ..............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami1'] + eor r1, r4, r7, ror #26 // ...............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #184] // ...............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aso0'] + ldr.w r4, [r0, #40] // ................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + str.w r1, [r0, #156] // ................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amu1'] + eor.w r1, r2, r8 // .................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [sp, #0] // .................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa0'] + eor.w r3, r9, r7 // ..................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r7, r8, r4 // ..................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #64] // ...................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ago0'] + bic r4, r1, r5, ror #8-5 // ...................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r4, r4, r7, ror #22 // ....................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #88] // ....................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake0'] + eor.w r4, r9, r6 // .....................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r9, r3, r1, ror #28-8 // .....................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #36] // ......................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu1'] + eor r9, r9, r5, ror #23 // ......................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [r0, #140] // .......................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami1'] + eor.w r9, r14, r6 // .......................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r9, r3, ror #32+14-28 // ........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r6, r1, ror #6 // .........................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r6, [r0, #20] // .........................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abi1'] + str.w r1, [r0, #184] // ..........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aso0'] + bic r1, r7, r9, ror #18-14 // ..........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r7, r5, r7, ror #32+5-18 // ...........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r5, [r0, #112] // ...........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aku0'] + eor r9, r7, r9, ror #23 // ............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [r0, #40] // ............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga0'] + ldr.w r9, [r0, #120] // .............................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama0'] + eor.w r5, r12, r5 // .............................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r3, ror #22 // ..............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r7, r8, r9 // ..............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r9, [r0, #172] // ...............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase1'] + bic r3, r7, r5, ror #20-19 // ...............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r3, r4, ror #25 // ................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #172] // ................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase1'] + eor.w r3, r2, r6 // .................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r6, r11, r9 // .................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #36] // ..................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu1'] + ldr r1, [r0, #100] // ..................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki1'] + eor.w r1, r2, r1 // ...................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r9, r5, r4, ror #32+19-27 // ...................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r4, r4, r3, ror #32+27-31 // ....................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r2, [r0, #48] // ....................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r4, r4, r6, ror #26 // .....................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #112] // .....................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aku0'] + eor.w r4, r10, r2 // ......................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r2, r3, r6, ror #31-1 // ......................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r9, r3, ror #20 // .......................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #0] // .......................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + eor.w r3, r8, r3 // ........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [r0, #120] // ........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama0'] + eor r2, r2, r7, ror #11 // .........................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r2, [r0, #64] // .........................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ago0'] + bic r9, r6, r7, ror #32+1-20 // ..........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r6, [r0, #148] // ..........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amo1'] + eor r7, r9, r5, ror #14 // ...........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r9, [sp, #12] // ...........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDo1'] + bic r5, r1, r4, ror #22-22 // ............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r6, r9, r6 // ............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r2, r6, r1, ror #32+11-22 // .............................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r7, [r0, #20] // .............................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abi1'] + eor r2, r2, r4, ror #21 // ..............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #192] // ..............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asu0'] + eor.w r7, r12, r7 // ...............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r3, r5, ror #10 // ...............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r2, [r0, #48] // ................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age0'] + bic r2, r7, r6, ror #32+7-11 // ................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r2, r1, ror #17 // .................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #100] // .................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki1'] + bic r1, r3, r7, ror #32+0-7 // ..................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [sp, #16] // ..................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDi0'] + eor r1, r1, r6, ror #21 // ...................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r1, [r0, #148] // ...................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Amo1'] + bic r1, r4, r3, ror #22-0 // ....................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [sp, #20] // ....................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + ldr.w r3, [r0, #32] // .....................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + eor r1, r1, r7, ror #15 // .....................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r4, #0] // ......................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r10'] + str.w r1, [r0, #192] // ......................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asu0'] + eor.w r5, r6, r5 // .......................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #0] // .......................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba0'] + ldr.w r1, [r0, #108] // ........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + ldr.w r6, [r0, #160] // ........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0'] + eor.w r5, r9, r1 // .........................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r1, [r0, #152] // .........................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amu0'] + eor.w r7, r12, r1 // ..........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r1, r8, r6 // ..........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r3, r12, r3 // ...........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r6, r7, r5, ror #32+4-13 // ...........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r4, r1, r7, ror #9-4 // ............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r12, [r0, #56] // ............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0'] + eor r4, r4, r5, ror #28 // .............................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r4, [r0, #56] // .............................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Agi0'] + ldr.w r4, [r0, #80] // ..............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aka0'] + eor.w r12, r2, r12 // ..............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r4, r8, r4 // ...............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r8, [r0, #12] // ...............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abe1'] + eor.w r8, r11, r8 // ................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r12, ror #1 // ................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r6, [r0, #12] // .................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abe1'] + bic r5, r5, r12, ror #13-3 // .................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #44] // ..................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga1'] + bic r12, r12, r8, ror #3-1 // ..................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r8, ror #12 // ...................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r5, [r0, #160] // ...................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asa0'] + ldr.w r5, [r0, #76] // ....................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + bic r8, r8, r1, ror #32+1-9 // ....................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r12, r1, ror #26 // .....................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #152] // .....................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amu0'] + eor r8, r8, r7, ror #29 // ......................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r8, [r0, #108] // ......................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako1'] + eor.w r5, r14, r5 // .......................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r12, [r0, #128] // .......................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + eor.w r1, r10, r12 // ........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #176] // ........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + eor.w r12, r2, r8 // .........................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r7, r1, r4, ror #22-1 // .........................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r7, r5, ror #12 // ..........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r8, [r0, #128] // ..........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ame0'] + bic r8, r12, r1, ror #30-22 // ...........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #28] // ...........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abo1'] + eor r8, r8, r4, ror #29 // ............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r7, r9, r7 // ............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r8, [r0, #176] // .............................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asi0'] + bic r8, r4, r5, ror #32+1-10 // .............................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r4, r8, r7, ror #19 // ..............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r4, [r0, #80] // ..............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aka0'] + bic r4, r7, r12, ror #32+14-30 // ...............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r8, [sp, #4] // ...............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDa1'] + eor r1, r4, r1, ror #24 // ................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #28] // ................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abo1'] + eor.w r4, r8, r6 // .................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r5, r7, ror #32+10-14 // .................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r5, r12, ror #12 // ..................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r7, [r0, #188] // ..................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso1'] + ldr.w r6, [r0, #136] // ...................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ami0'] + ldr.w r1, [r0, #92] // ...................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ake1'] + eor.w r6, r2, r6 // ....................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r5, r11, r1 // .....................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r12, [r0, #76] // .....................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu1'] + bic r1, r5, r4, ror #32+5-18 // ......................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r7, r9, r7 // ......................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r3, ror #24 // .......................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #44] // .......................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga1'] + bic r1, r6, r5, ror #7-5 // ........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r12, [r0, #116] // ........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + eor r1, r1, r4, ror #21 // .........................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r1, [r0, #92] // .........................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ake1'] + bic r1, r4, r3, ror #18-13 // ..........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #68] // ..........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago1'] + eor.w r4, r9, r4 // ...........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r9, r7, r6, ror #28-7 // ...........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r9, r5, ror #23 // ............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #136] // ............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami0'] + bic r3, r3, r7, ror #32+13-28 // .............................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r9, [r0, #124] // .............................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama1'] + eor r6, r3, r6, ror #6 // ..............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r6, [r0, #188] // ..............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aso1'] + eor r5, r1, r7, ror #22 // ...............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r1, [r0, #16] // ...............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abi0'] + eor.w r1, r2, r1 // ................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r7, [r0, #168] // ................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase0'] + eor.w r12, r14, r12 // .................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r3, r8, r9 // .................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r9, r12, r4, ror #32+20-28 // ..................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r6, r10, r7 // ..................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r9, r1, ror #21 // ...................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r9, [r0, #144] // ...................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amo0'] + bic r10, r1, r6, ror #31-1 // ....................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #32] // ....................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu0'] + str.w r7, [r0, #124] // .....................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama1'] + bic r7, r3, r12, ror #21-20 // .....................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r4, ror #25 // ......................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #168] // ......................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase0'] + eor r5, r10, r3, ror #10 // .......................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #96] // .......................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0'] + eor.w r7, r2, r7 // ........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r2, r4, r1, ror #32+28-31 // ........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r6, r3, ror #32+1-21 // .........................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r10, [sp, #8] // .........................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDo0'] + eor.w r9, r10, r9 // ..........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r10, r2, r6, ror #27 // ..........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r3, r3, r12, ror #13 // ...........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r3, [r0, #16] // ...........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abi0'] + str.w r5, [r0, #68] // ............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago1'] + ldr r4, [r0, #196] // ............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + eor.w r4, r14, r4 // .............................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r14, [r0, #4] // .............................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba1'] + eor.w r6, r8, r14 // ..............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r8, [r0, #52] // ..............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Age1'] + eor.w r2, r11, r8 // ...............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r10, [r0, #116] // ...............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aku1'] + bic r12, r9, r7, ror #32+10-21 // ................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #152] // ................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + ldr r1, [sp, #20] // .................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + bic r3, r6, r4, ror #32+0-7 // .................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r3, r9, ror #22 // ..................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r14, [r0, #144] // ..................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amo0'] + eor r14, r12, r2, ror #20 // ...................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r14, [r0, #52] // ...................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Age1'] + bic r14, r4, r9, ror #32+7-10 // ....................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r1, #4] // ....................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r14'] + ldr.w r8, [r0, #192] // .....................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0'] + eor r12, r14, r7, ror #18 // .....................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r14, r7, r2, ror #32+21-22 // ......................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r12, [r0, #96] // ......................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki0'] + bic r10, r2, r6, ror #22-0 // .......................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r7, [r0, #52] // .......................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + eor r4, r10, r4, ror #15 // ........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #196] // ........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asu1'] + eor r6, r6, r14, ror #11 // .........................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r9, [r0, #72] // .........................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0'] + ldr.w r14, [r0, #96] // ..........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aki0'] + ldr.w r1, [r0, #176] // ...........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asi0'] + ldr.w r10, [r0, #60] // ...........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agi1'] + eor r3, r8, r9, ror #12 // ............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #128] // ............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + ldr.w r9, [r0, #8] // .............................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe0'] + ldr.w r12, [r0, #132] // .............................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ame1'] + eor.w r2, r11, r6 // ..............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r11, [r0, #48] // ..............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Age0'] + ldr.w r6, [r0, #84] // ...............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aka1'] + eor r8, r3, r5, ror #19 // ...............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r3, [r0, #12] // ................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe1'] + ldr.w r5, [r0, #0] // ................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + eor r12, r11, r12, ror #20 // .................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r2, [r0, #4] // .................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba1'] + ldr r2, [r0, #88] // ..................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0'] + ldr.w r11, [r0, #160] // ...................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asa0'] + eor r3, r12, r3, ror #7 // ...................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r5, r6, ror #30 // ....................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #168] // ....................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase0'] + eor r5, r3, r2, ror #3 // .....................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #156] // .....................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r3, r6, r11, ror #19 // ......................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #36] // ......................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu1'] + eor r6, r5, r12, ror #22 // .......................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #196] // .......................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + ldr r12, [r0, #116] // ........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + eor r7, r7, r4, ror #20 // ........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r8, r11, ror #4 // .........................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r8, [r0, #76] // .........................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu1'] + eor r7, r7, r9, ror #6 // ..........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ror r6, #32-11 // ..........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r9, [r0, #32] // ...........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abu0'] + eor r4, r14, r1, ror #9 // ...........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r14, r5, r8, ror #12 // ............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #28] // ............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo1'] + ldr.w r8, [r0, #144] // .............................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Amo0'] + eor r4, r4, r10, ror #30 // .............................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r5, [r0, #40] // ..............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aga0'] + eor r2, r14, r2, ror #19 // ..............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r8, r8, r1, ror #18 // ...............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r9, r2, r9, ror #4 // ................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #104] // ................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0'] + eor r10, r3, r5, ror #27 // .................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r1, [r0, #136] // .................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0'] + ldr r14, [r0, #188] // ..................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso1'] + eor r12, r11, r12, ror #26 // ..................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r2, ror #0 // ...................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r3, [r0, #112] // ...................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aku0'] + ldr r8, [r0, #64] // ....................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago0'] + eor r2, r4, r1, ror #11 // ....................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r11, [r0, #24] // .....................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo0'] + eor r14, r5, r14, ror #19 // .....................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r9, r3, ror #27 // ......................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #148] // ......................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo1'] + ldr r1, [r0, #20] // .......................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi1'] + eor r5, r14, r8, ror #1 // .......................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #108] // ........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r3, r3, r11, ror #18 // ........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r14, [r0, #92] // .........................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ake1'] + eor r8, r6, r4, ror #10 // .........................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ror r12, #32-22 // ..........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r2, r2, r1, ror #6 // ..........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r11, r3, r9, ror #31 // ...........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r3, [r0, #124] // ...........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama1'] + eor r14, r7, r14, ror #3 // ............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r1, [r0, #172] // ............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase1'] + eor r9, r12, r2, ror #25 // .............................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r9, [sp, #12] // .............................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDo1'] + ldr r9, [r0, #184] // ..............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso0'] + eor r10, r10, r3, ror #12 // ..............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r14, r1, ror #22 // ...............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #100] // ...............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aki1'] + eor r14, r5, r10 // ................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r6, r6, r5, ror #31 // ................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r11, r9, ror #18 // .................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r3, [r0, #68] // .................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago1'] + ldr.w r11, [r0, #180] // ..................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + eor r9, r12, r1, ror #21 // ..................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r10, r2, ror #24 // ...................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r9, [sp, #0] // ...................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['spmDa0'] + eor r3, r5, r3, ror #1 // ....................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #16] // ....................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0'] + str.w r6, [sp, #16] // .....................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDi0'] + ldr.w r5, [r0, #56] // .....................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0'] + eor r7, r7, r11, ror #8 // ......................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #164] // ......................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa1'] + eor r2, r3, r1, ror #22 // .......................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #140] // .......................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami1'] + ldr.w r1, [r0, #80] // ........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0'] + eor r5, r7, r5, ror #30 // ........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #4] // .........................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba1'] + eor r7, r8, r6, ror #20 // .........................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r6, [r0, #164] // ..........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa1'] + eor r1, r9, r1, ror #31 // ...........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r8, [sp, #4] // ...........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['spmDa1'] + eor r11, r5, r11, ror #11 // ............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r5, [r0, #44] // ............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga1'] + eor r9, r1, r6, ror #20 // .............................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r6, [r0, #20] // .............................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abi1'] + eor r1, r11, r12, ror #6 // ..............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r11, [r0, #120] // ..............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama0'] + eor r9, r9, r5, ror #27 // ...............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r12, [r0, #120] // ...............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama0'] + eor r6, r2, r6, ror #31 // ................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ror r1, #32-7 // ................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r9, r11, ror #13 // .................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #92] // .................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + eor r9, r1, r4, ror #9 // ..................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r8, r12, ror #13 // ...................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r8, [r0, #72] // ...................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu0'] + eor r12, r3, r11, ror #31 // ....................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r11, r1 // ....................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r11, r5, ror #25 // .....................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #148] // .....................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo1'] + eor r8, r12, r8, ror #22 // ......................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r1, r9, r5 // ......................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r1, r6, ror #32+14-31 // .......................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r3, ror #23 // ........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #148] // ........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amo1'] + bic r5, r7, r8, ror #32+2-10 // .........................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r1, ror #20 // ..........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r5, [r0, #164] // ..........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asa1'] + bic r1, r8, r1, ror #32+10-14 // ...........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r1, r6, ror #11 // ............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #72] // ............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu0'] + bic r5, r6, r3, ror #31-23 // .............................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r1, [r0, #32] // .............................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abu0'] + eor r6, r5, r7, ror #29 // ..............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #176] // ..............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asi0'] + bic r3, r3, r7, ror #23-2 // ...............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #108] // ...............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ako1'] + str.w r6, [r0, #20] // ................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abi1'] + eor r6, r14, r1, ror #14 // ................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r2, r5, ror #2 // .................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #48] // .................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r7, r9, r7, ror #31 // ..................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r3, r8, ror #13 // ...................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r3, [r0, #92] // ...................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ake1'] + eor r3, r10, r5, ror #21 // ....................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #136] // ....................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0'] + bic r5, r6, r7, ror #32+4-12 // .....................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r1, ror #1 // ......................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #48] // ......................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age0'] + bic r5, r4, r6, ror #9-4 // .......................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r7, ror #29 // ........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #176] // ........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asi0'] + bic r7, r7, r1, ror #12-3 // .........................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r9, [sp, #8] // .........................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDo0'] + bic r1, r1, r3, ror #3-0 // ..........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #196] // ..........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asu1'] + eor r7, r7, r3, ror #12 // ...........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r7, [r0, #120] // ...........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ama0'] + bic r7, r3, r4, ror #32+0-9 // ............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r14, r5, ror #10 // .............................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r1, r1, r4, ror #26 // ..............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #12] // ..............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe1'] + eor r7, r7, r6, ror #28 // ...............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r7, [r0, #108] // ...............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ako1'] + ldr.w r7, [r0, #68] // ................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago1'] + str.w r1, [r0, #32] // ................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu0'] + eor r6, r2, r8, ror #4 // .................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r10, r4, ror #28 // ..................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #84] // ..................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka1'] + eor r1, r9, r7, ror #1 // ...................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r8, [sp, #0] // ...................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDa0'] + eor r7, r8, r4, ror #30 // .....................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r1, r6, ror #28-8 // ......................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r4, r5, ror #23 // .......................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #136] // .......................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami0'] + bic r4, r5, r7, ror #32+5-18 // ........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r4, r3, ror #23 // .........................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r4, [r0, #84] // .........................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aka1'] + ldr.w r4, [r0, #24] // ..........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abo0'] + bic r5, r6, r5, ror #8-5 // ..........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r7, ror #22 // ...........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r5, [r0, #12] // ...........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abe1'] + bic r5, r3, r1, ror #32+14-28 // ............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r5, r6, ror #6 // .............................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r5, [r0, #68] // .............................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ago1'] + bic r7, r7, r3, ror #18-14 // ..............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r3, [r0, #172] // ..............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase1'] + eor r5, r9, r4, ror #18 // ...............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r9, [r0, #40] // ...............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aga0'] + ldr.w r4, [r0, #152] // ................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + eor r1, r7, r1, ror #22 // ................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r11, r3, ror #12 // .................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #96] // .................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0'] + eor r6, r8, r9, ror #27 // ..................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #196] // ..................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asu1'] + eor r4, r12, r4, ror #29 // ...................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r3, r2, r3, ror #25 // ....................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r7, r6, ror #32+1-20 // .....................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r9, r6, r4, ror #20-19 // ......................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r9, r5, ror #25 // .......................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [r0, #172] // .......................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase1'] + eor r9, r1, r4, ror #14 // ........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [r0, #96] // ........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki0'] + bic r1, r4, r5, ror #32+19-27 // .........................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r9, [r0, #60] // .........................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agi1'] + eor r1, r1, r3, ror #20 // ..........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r1, [r0, #40] // ..........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aga0'] + ldr r4, [r0, #188] // ...........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aso1'] + bic r5, r5, r3, ror #32+27-31 // ...........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r5, r7, ror #26 // ............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #152] // ............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Amu0'] + bic r1, r3, r7, ror #31-1 // .............................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r3, [r0, #116] // .............................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aku1'] + eor r6, r1, r6, ror #11 // ..............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #160] // ..............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa0'] + eor r7, r2, r9, ror #23 // ...............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r9, [sp, #12] // ...............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDo1'] + str.w r6, [r0, #24] // ................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abo0'] + eor r6, r12, r3, ror #4 // ................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #0] // .................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + eor r4, r9, r4, ror #19 // .................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r5, r8, r5, ror #19 // ..................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r2, r8, r1 // ..................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r3, r2, r6, ror #32+0-7 // ...................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r1, [r0, #132] // ...................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ame1'] + eor r3, r3, r4, ror #21 // ....................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #188] // ....................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso1'] + bic r3, r6, r4, ror #32+7-11 // .....................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r10, r1, ror #9 // ......................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r4, r7, ror #32+11-22 // .......................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r3, r7, ror #17 // ........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #60] // ........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agi1'] + eor r4, r4, r1, ror #21 // .........................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r4, [r0, #132] // .........................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ame1'] + bic r3, r7, r1, ror #22-22 // ..........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r7, [r0, #16] // ..........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abi0'] + bic r1, r1, r2, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r4, [r0, #88] // ...........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ake0'] + eor r3, r2, r3, ror #10 // ............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [sp, #16] // ............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDi0'] + eor r1, r1, r6, ror #15 // .............................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r10, r4, ror #24 // ..............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #124] // ..............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ama1'] + eor r7, r2, r7, ror #31 // ...............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r1, [r0, #116] // ...............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aku1'] + ldr r1, [sp, #20] // ................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + eor r8, r8, r4, ror #12 // .................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r1, #8] // ..................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r18'] + ldr.w r1, [r0, #76] // ..................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + eor.w r4, r4, r3 // ...................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r3, r6, r5, ror #22-1 // ...................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r4, [r0, #0] // ....................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba0'] + bic r4, r7, r6, ror #30-22 // ....................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r14, r1, ror #22 // .....................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r4, r5, ror #29 // ......................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #16] // ......................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abi0'] + ldr.w r4, [r0, #144] // .......................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo0'] + eor r3, r3, r1, ror #12 // ........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #88] // ........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake0'] + bic r3, r5, r1, ror #32+1-10 // .........................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor.w r4, r9, r4 // .........................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r5, r4, r7, ror #32+14-30 // ..........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r5, r6, ror #24 // ...........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r6, [r0, #144] // ...........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Amo0'] + eor r3, r3, r4, ror #19 // ............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #180] // ............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + bic r6, r1, r4, ror #32+10-14 // .............................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #52] // .............................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Age1'] + eor r6, r6, r7, ror #12 // ..............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r7, [r0, #36] // ..............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abu1'] + str.w r6, [r0, #76] // ...............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Agu1'] + eor r6, r2, r5, ror #1 // ...............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r4, r11, r4, ror #22 // ................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #160] // ................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asa0'] + eor r7, r12, r7, ror #14 // .................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #104] // .................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0'] + bic r5, r4, r8, ror #32+1-9 // ..................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r1, r6, r4, ror #3-1 // ...................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor.w r3, r9, r3 // ...................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r5, r7, ror #29 // ....................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r8, ror #26 // .....................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #36] // .....................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abu1'] + str.w r5, [r0, #104] // ......................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako0'] + bic r5, r3, r6, ror #13-3 // ......................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r5, r4, ror #12 // .......................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #192] // .......................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0'] + str.w r4, [r0, #124] // ........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama1'] + bic r8, r8, r7, ror #9-4 // ........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r7, r3, ror #32+4-13 // .........................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r7, [r0, #64] // .........................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago0'] + eor r1, r12, r5, ror #10 // ..........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r8, r3, ror #28 // ...........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r8, [r0, #8] // ...........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abe0'] + str.w r5, [r0, #180] // ............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asi1'] + eor r7, r9, r7, ror #1 // ............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r4, r4, r6, ror #1 // .............................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #140] // .............................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami1'] + ldr.w r12, [r0, #80] // ..............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aka0'] + eor r6, r11, r8, ror #28 // ..............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + bic r3, r1, r7, ror #32+13-28 // ...............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r8, [sp, #4] // ...............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDa1'] + str.w r4, [r0, #52] // ................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age1'] + eor r4, r2, r5, ror #4 // ................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r12, r8, r12, ror #31 // .................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r5, r4, r6, ror #7-5 // ..................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r3, r4, ror #6 // ...................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r5, r12, ror #21 // ....................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #8] // ....................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abe0'] + bic r5, r7, r4, ror #28-7 // .....................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #156] // .....................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r5, r5, r6, ror #23 // ......................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #140] // ......................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami1'] + bic r5, r6, r12, ror #32+5-18 // .......................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #44] // .......................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga1'] + eor r5, r5, r1, ror #24 // ........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #80] // ........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aka0'] + eor r5, r14, r4, ror #29 // .........................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r6, r8, r6, ror #27 // ..........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #28] // ..........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abo1'] + str.w r3, [r0, #64] // ...........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Ago0'] + bic r1, r12, r1, ror #18-13 // ...........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + bic r12, r6, r5, ror #21-20 // ............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #168] // ............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase0'] + eor r9, r9, r4, ror #18 // .............................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #4] // .............................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aba1'] + eor r7, r1, r7, ror #22 // ..............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + str.w r7, [r0, #192] // ..............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Asu0'] + eor r10, r10, r3, ror #11 // ...............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r1, [r0, #100] // ...............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aki1'] + eor r3, r12, r9, ror #25 // ................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r12, r8, r4 // ................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #168] // .................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase0'] + bic r7, r10, r6, ror #32+1-21 // .................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r5, ror #13 // ..................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #100] // ..................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki1'] + eor r8, r2, r1, ror #25 // ...................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r1, [r0, #184] // ...................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aso0'] + ldr r3, [r0, #112] // ....................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + bic r5, r5, r9, ror #32+20-28 // ....................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r4, r8, r10, ror #31-1 // .....................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #128] // .....................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + eor r5, r5, r8, ror #21 // ......................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #44] // ......................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga1'] + eor r5, r4, r6, ror #10 // .......................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #56] // .......................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi0'] + eor r3, r14, r3, ror #5 // ........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r14, [r0, #16] // ........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0'] + str.w r5, [r0, #28] // .........................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abo1'] + eor r11, r11, r7, ror #10 // .........................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r2, r2, r6, ror #23 // ..........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r6, [sp, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['spmDo0'] + bic r5, r11, r12, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r4, [sp, #20] // ...........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmRC'] + eor r5, r5, r3, ror #15 // ............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #112] // ............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aku0'] + ldr r7, [r4, #12] // .............................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r112'] + bic r5, r9, r8, ror #32+28-31 // .............................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #72] // ..............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0'] + bic r9, r2, r11, ror #32+21-22 // ..............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + eor r5, r5, r10, ror #27 // ...............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r5, [r0, #156] // ...............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Amu1'] + eor r8, r12, r9, ror #11 // ................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #116] // ................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + ldr.w r10, [r0, #88] // .................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0'] + eor r1, r6, r1, ror #18 // .................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor.w r8, r7, r8 // ..................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r5, r4, ror #12 // ..................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #36] // ...................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abu1'] + bic r5, r1, r2, ror #32+10-21 // ...................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + eor r5, r5, r11, ror #20 // ....................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r5, [r0, #128] // ....................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ame0'] + ldr r7, [r0, #196] // .....................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + bic r5, r3, r1, ror #32+7-10 // .....................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r5, r2, ror #18 // ......................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + str.w r8, [r0, #4] // ......................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aba1'] + str.w r2, [r0, #56] // .......................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agi0'] + eor r9, r9, r4, ror #19 // .......................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + bic r6, r12, r3, ror #32+0-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #128] // ........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + eor r3, r9, r7, ror #4 // .........................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r8, [r0, #48] // .........................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Age0'] + eor r9, r2, r10, ror #20 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r7, [r0, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abe0'] + eor r6, r6, r1, ror #22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r2, [r0, #56] // ...........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agi0'] + eor r8, r9, r8, ror #6 // ............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r10, [r0, #176] // ............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + str.w r6, [r0, #184] // .............................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aso0'] + eor r5, r2, r14, ror #9 // .............................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r11, [r0, #140] // ..............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami1'] + eor r7, r8, r7, ror #3 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #76] // ...............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Agu1'] + eor r8, r5, r10, ror #30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r6, [r0, #112] // ................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + ldr.w r12, [r0, #92] // ................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + ldr.w r9, [r0, #104] // .................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako0'] + ldr.w r5, [r0, #132] // .................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame1'] + eor r14, r6, r4, ror #12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #52] // ..................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + eor r12, r5, r12, ror #20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r1, [r0, #148] // ...................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amo1'] + ldr r5, [r0, #96] // ....................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0'] + ldr.w r10, [r0, #188] // ....................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso1'] + ldr r2, [r0, #12] // .....................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe1'] + eor r12, r12, r6, ror #7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + eor r10, r10, r1, ror #18 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #60] // ......................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agi1'] + eor r1, r8, r11, ror #11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #156] // .......................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r6, r12, r2, ror #3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #20] // ........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi1'] + eor r9, r10, r9, ror #31 // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r10, [r0, #68] // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago1'] + eor r3, r3, r11, ror #26 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r2, [r0, #32] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abu0'] + eor r12, r4, r8, ror #8 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + ldr r8, [r0, #172] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase1'] + eor r11, r9, r10, ror #18 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #180] // ............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + ldr r4, [r0, #136] // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ami0'] + eor r10, r1, r5, ror #6 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r1, [r0, #192] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asu0'] + eor r5, r7, r8, ror #22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + eor r12, r12, r9, ror #30 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r9, [r0, #164] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Asa1'] + eor r14, r14, r2, ror #19 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + ror r3, #32-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r12, r4, ror #11 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r12, [r0, #0] // .................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + ldr.w r8, [r0, #124] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama1'] + eor r7, r3, r10, ror #25 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #168] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ase0'] + eor r9, r12, r9, ror #30 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + eor r1, r14, r1, ror #4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #84] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka1'] + eor r14, r9, r8, ror #19 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r9, [r0, #152] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + eor r6, r6, r4, ror #22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [r0, #44] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga1'] + eor r14, r14, r12, ror #27 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #144] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo0'] + eor r1, r1, r9, ror #27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #184] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0'] + eor r14, r14, r8, ror #12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r12, [r0, #108] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ako1'] + eor r4, r9, r4, ror #18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + ldr r9, [r0, #28] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Abo1'] + ldr r8, [r0, #100] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aki1'] + eor r10, r14, r10, ror #24 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + str.w r7, [sp, #12] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo1'] + eor r4, r4, r12, ror #0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r3, r5, ror #21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + ldr r12, [r0, #64] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ago0'] + str.w r7, [sp, #0] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDa0'] + eor r3, r11, r9, ror #1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + eor r7, r2, r8, ror #6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + ldr r9, [r0, #24] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abo0'] + eor r12, r4, r12, ror #19 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r11, [r0, #160] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0'] + ror r7, #32-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + eor r2, r3, r5, ror #22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba1'] + eor r5, r12, r9, ror #1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + eor r9, r7, r1, ror #9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r4, [r0, #120] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama0'] + ror r6, #32-11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + eor r11, r8, r11, ror #31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + str.w r9, [sp, #8] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['spmDo0'] + eor r8, r6, r1, ror #10 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #16] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abi0'] + eor r6, r6, r5, ror #31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + eor r14, r5, r14 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + ldr r12, [r0, #40] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + eor r4, r11, r4, ror #20 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + ldr r11, [r0, #80] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0'] + ldr.w r5, [r0, #40] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aga0'] + eor r1, r2, r1, ror #2 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + str.w r6, [sp, #16] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDi0'] + eor r4, r4, r11, ror #27 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r11, [r0, #120] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Ama0'] + eor r5, r8, r5, ror #13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #132] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame1'] + eor r12, r4, r12, ror #13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + str.w r8, [sp, #4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['spmDa1'] + eor r4, r8, r11, ror #20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r8, [r0, #104] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ako0'] + eor r11, r12, r7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + eor r6, r10, r6, ror #21 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + eor r12, r3, r12, ror #31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + eor r3, r9, r8, ror #31 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #192] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu0'] + bic r7, r1, r6, ror #3-0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r5, ror #26 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + eor r8, r14, r8, ror #14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #192] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asu0'] + bic r7, r3, r1, ror #12-3 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r6, ror #12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #40] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aga0'] + bic r7, r5, r8, ror #9-4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r3, ror #29 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #16] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abi0'] + bic r7, r8, r3, ror #32+4-12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + bic r3, r6, r5, ror #32+0-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #72] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agu0'] + eor r6, r7, r1, ror #1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #8] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abe0'] + eor r1, r3, r8, ror #28 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #96] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aki0'] + eor r5, r12, r5, ror #22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + str.w r6, [r0, #132] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ame1'] + eor r3, r11, r7, ror #25 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + ldr.w r6, [r0, #188] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aso1'] + eor r8, r2, r8, ror #31 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + eor.w r6, r9, r6 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................ + str.w r1, [r0, #104] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako0'] + bic r7, r4, r5, ror #32+2-10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + eor r7, r7, r6, ror #20 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #120] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama0'] + bic r7, r5, r6, ror #32+10-14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #112] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku0'] + eor r7, r7, r8, ror #11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + str.w r7, [r0, #72] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Agu0'] + bic r7, r8, r3, ror #31-23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + bic r8, r6, r8, ror #32+14-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #140] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami1'] + eor r7, r7, r4, ror #29 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + str.w r7, [r0, #96] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki0'] + bic r4, r3, r4, ror #23-2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + ldr.w r7, [r0, #52] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + eor r3, r8, r3, ror #23 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + ldr r8, [sp, #0] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa0'] + eor r5, r4, r5, ror #13 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #164] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Asa1'] + str.w r5, [r0, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abe0'] + eor r6, r2, r6, ror #4 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + eor r5, r10, r7, ror #28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #28] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abo1'] + str.w r3, [r0, #188] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso1'] + eor r4, r8, r4, ror #30 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + eor r3, r14, r1, ror #10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................. + eor r7, r9, r7, ror #1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................. + bic r1, r5, r4, ror #32+5-18 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................ + eor r1, r1, r3, ror #23 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #164] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asa1'] + bic r1, r6, r5, ror #8-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + eor r1, r1, r4, ror #22 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #52] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Age1'] + bic r1, r7, r6, ror #28-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + eor r1, r1, r5, ror #23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #140] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami1'] + bic r4, r4, r3, ror #18-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #148] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amo1'] + bic r3, r3, r7, ror #32+14-28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #36] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu1'] + eor r6, r3, r6, ror #6 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + str.w r6, [r0, #28] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Abo1'] + eor r1, r9, r1, ror #18 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + ldr.w r9, [r0, #84] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka1'] + eor r6, r12, r5, ror #29 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + ldr.w r5, [r0, #56] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agi0'] + eor r3, r4, r7, ror #22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + ldr.w r4, [r0, #172] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Ase1'] + str.w r3, [r0, #112] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aku0'] + eor r7, r8, r9, ror #27 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + eor r9, r2, r5, ror #25 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................... + eor r5, r11, r4, ror #12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................. + bic r3, r6, r1, ror #32+19-27 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................. + eor r4, r3, r9, ror #20 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + str.w r4, [r0, #84] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aka1'] + bic r4, r5, r7, ror #32+1-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + eor r4, r4, r6, ror #14 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + str.w r4, [r0, #56] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agi0'] + bic r3, r9, r5, ror #31-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + ldr r4, [r0, #92] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + eor r3, r3, r7, ror #11 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + str.w r3, [r0, #148] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Amo1'] + bic r6, r7, r6, ror #20-19 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + ldr r7, [r0, #176] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + eor r6, r6, r1, ror #25 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + str.w r6, [r0, #172] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ase1'] + bic r9, r1, r9, ror #32+27-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + ldr r1, [sp, #20] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + eor r3, r10, r4, ror #9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + ldr r6, [r0, #64] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ago0'] + eor r7, r2, r7, ror #23 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #0] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + eor r9, r9, r5, ror #26 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + ldr r4, [r1, #16] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r116'] + str.w r9, [r0, #36] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abu1'] + bic r1, r7, r3, ror #22-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + eor.w r5, r8, r2 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + ldr r9, [sp, #12] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDo1'] + eor r2, r5, r1, ror #10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + ldr r1, [r0, #156] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r6, r9, r6, ror #19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................. + eor.w r4, r4, r2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + bic r2, r3, r5, ror #22-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + eor r1, r12, r1, ror #4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + str.w r4, [r0, #0] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aba0'] + bic r4, r6, r7, ror #32+11-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................... + eor r3, r4, r3, ror #21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #76] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + bic r5, r5, r1, ror #32+0-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + str.w r3, [r0, #92] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ake1'] + eor r2, r2, r1, ror #15 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + str.w r2, [r0, #156] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Amu1'] + eor r4, r14, r4, ror #22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + ldr.w r2, [r0, #12] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abe1'] + eor r3, r5, r6, ror #21 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #124] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ama1'] + str.w r3, [r0, #64] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ago0'] + bic r3, r1, r6, ror #32+7-11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #184] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aso0'] + eor r1, r3, r7, ror #17 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #176] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Asi0'] + eor r5, r8, r5, ror #19 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + eor.w r3, r9, r6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + eor r6, r10, r2, ror #24 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................. + bic r1, r5, r4, ror #32+1-10 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + ldr.w r7, [r0, #100] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. // @slothy:reads=['r0Aki1'] + eor r1, r1, r3, ror #19 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + ldr.w r2, [sp, #16] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ // @slothy:reads=['spmDi0'] + str.w r1, [r0, #124] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ama1'] + bic r1, r6, r5, ror #22-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + eor r7, r2, r7, ror #31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................. + eor r1, r1, r4, ror #12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + str.w r1, [r0, #12] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abe1'] + bic r1, r4, r3, ror #32+10-14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + ldr.w r4, [r0, #44] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Aga1'] + eor r1, r1, r7, ror #12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #76] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Agu1'] + bic r1, r3, r7, ror #32+14-30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #196] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + eor r1, r1, r6, ror #24 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + str.w r1, [r0, #184] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aso0'] + ldr.w r1, [r0, #20] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Abi1'] + bic r6, r7, r6, ror #30-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #116] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + eor r5, r6, r5, ror #29 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + eor r8, r8, r4, ror #12 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + ldr.w r6, [r0, #128] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + str.w r5, [r0, #100] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Aki1'] + eor r3, r12, r3, ror #14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + ldr.w r4, [r0, #108] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r5, r2, r1, ror #1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + eor r1, r11, r6, ror #22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + eor.w r4, r9, r4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + bic r6, r8, r3, ror #9-4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + eor r6, r6, r4, ror #28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + str.w r6, [r0, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Abi1'] + eor r12, r12, r7, ror #10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................ + ldr.w r7, [r0, #168] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ase0'] + bic r6, r3, r4, ror #32+4-13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + bic r4, r4, r5, ror #13-3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................. + eor r4, r4, r1, ror #12 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + str.w r4, [r0, #44] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Aga1'] + eor r7, r10, r7, ror #11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + ldr.w r4, [r0, #144] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ // @slothy:reads=['r0Amo0'] + bic r10, r1, r8, ror #32+1-9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + bic r1, r5, r1, ror #3-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + eor r8, r1, r8, ror #26 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #24] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abo0'] + eor r4, r9, r4, ror #18 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + str.w r8, [r0, #196] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asu1'] + eor r10, r10, r3, ror #29 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + ldr.w r8, [r0, #48] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r1, r9, r1, ror #1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + ldr.w r3, [r0, #136] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Ami0'] + str.w r10, [r0, #108] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ako1'] + eor r5, r6, r5, ror #1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + ldr.w r10, [r0, #160] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asa0'] + eor r9, r11, r8, ror #28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + ldr r8, [sp, #4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... // @slothy:reads=['spmDa1'] + eor r6, r2, r3, ror #4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + bic r3, r12, r1, ror #32+13-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + str.w r5, [r0, #128] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ame0'] + eor r10, r8, r10, ror #31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................. + eor r5, r3, r6, ror #6 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + str.w r5, [r0, #24] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ // @slothy:writes=['r0Abo0'] + bic r5, r1, r6, ror #28-7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + bic r3, r10, r12, ror #18-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + eor r1, r3, r1, ror #22 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + ldr.w r3, [r0, #60] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. // @slothy:reads=['r0Agi1'] + str.w r1, [r0, #116] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ // @slothy:writes=['r0Aku1'] + eor r5, r5, r9, ror #23 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + bic r6, r6, r9, ror #7-5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + ldr.w r1, [r0, #80] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... // @slothy:reads=['r0Aka0'] + str.w r5, [r0, #136] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... // @slothy:writes=['r0Ami0'] + eor r6, r6, r10, ror #21 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + eor r3, r2, r3, ror #25 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + ldr.w r5, [r0, #32] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + str.w r6, [r0, #48] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ // @slothy:writes=['r0Age0'] + eor r6, r8, r1, ror #27 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + bic r10, r9, r10, ror #32+5-18 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................... + eor r5, r14, r5, ror #29 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................... + eor r12, r10, r12, ror #24 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + ldr r10, [r0, #180] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + bic r9, r6, r5, ror #21-20 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + eor r1, r9, r4, ror #25 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + str.w r1, [r0, #168] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. // @slothy:writes=['r0Ase0'] + ldr r9, [sp, #8] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. // @slothy:reads=['spmDo0'] + bic r1, r5, r4, ror #32+20-28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + str.w r12, [r0, #160] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ // @slothy:writes=['r0Asa0'] + bic r12, r7, r6, ror #32+1-21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + eor r12, r12, r5, ror #13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + str.w r12, [r0, #60] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... // @slothy:writes=['r0Agi1'] + bic r12, r4, r3, ror #32+28-31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + ldr r4, [r0, #88] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. // @slothy:reads=['r0Ake0'] + eor r12, r12, r7, ror #27 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + str.w r12, [r0, #32] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. // @slothy:writes=['r0Abu0'] + eor r5, r2, r10, ror #23 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + ldr r2, [r0, #68] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ // @slothy:reads=['r0Ago1'] + eor r1, r1, r3, ror #21 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + str.w r1, [r0, #80] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... // @slothy:writes=['r0Aka0'] + bic r1, r3, r7, ror #31-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + ldr.w r7, [r0, #156] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu1'] + eor r1, r1, r6, ror #10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + ldr r6, [r0, #152] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + eor r9, r9, r2, ror #18 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + ldr.w r12, [r0, #4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ // @slothy:reads=['r0Aba1'] + eor r3, r11, r4, ror #10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + ldr.w r11, [r0, #72] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... // @slothy:reads=['r0Agu0'] + eor r14, r14, r6, ror #5 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + eor.w r12, r8, r12 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................... + bic r8, r9, r5, ror #32+10-21 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + ldr.w r10, [r0, #196] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... // @slothy:reads=['r0Asu1'] + eor r2, r7, r11, ror #12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + ldr r11, [r0, #32] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... // @slothy:reads=['r0Abu0'] + bic r7, r12, r14, ror #32+0-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + str.w r1, [r0, #144] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... // @slothy:writes=['r0Amo0'] + eor r4, r7, r9, ror #22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + str.w r4, [r0, #68] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. // @slothy:writes=['r0Ago1'] + eor r6, r2, r10, ror #19 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + ldr.w r7, [r0, #100] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. // @slothy:reads=['r0Aki1'] + bic r1, r3, r12, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + ldr r10, [r0, #112] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ // @slothy:reads=['r0Aku0'] + eor r2, r1, r14, ror #15 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + str.w r2, [r0, #152] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... // @slothy:writes=['r0Amu0'] + bic r1, r14, r9, ror #32+7-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + ldr.w r2, [r0, #12] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. // @slothy:reads=['r0Abe1'] + eor r8, r8, r3, ror #20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + str.w r8, [r0, #88] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. // @slothy:writes=['r0Ake0'] + eor r4, r1, r5, ror #18 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + str.w r4, [r0, #180] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ // @slothy:writes=['r0Asi1'] + bic r5, r5, r3, ror #32+21-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + ldr r3, [r0, #48] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r10, r6, r10, ror #4 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + ldr r8, [sp, #20] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... // @slothy:reads=['spmRC'] + eor r5, r12, r5, ror #11 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + ldr.w r14, [r0, #88] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... // @slothy:reads=['r0Ake0'] + ldr.w r1, [r0, #16] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:reads=['r0Abi0'] + ldr.w r12, [r0, #132] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ // @slothy:reads=['r0Ame1'] + eor r9, r14, r2, ror #20 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + ldr r2, [r8, #20] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... // @slothy:reads=['r120'] + eor r8, r10, r11, ror #26 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + ldr.w r14, [r0, #180] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... // @slothy:reads=['r0Asi1'] + eor r12, r9, r12, ror #6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + ldr r9, [r0, #172] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... // @slothy:reads=['r0Ase1'] + eor r10, r14, r7, ror #9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + ror r8, #32-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + eor r6, r12, r3, ror #3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + eor.w r3, r2, r5 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + eor r14, r10, r1, ror #30 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + ldr r4, [r0, #136] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. // @slothy:reads=['r0Ami0'] + ldr r2, [r0, #56] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. // @slothy:reads=['r0Agi0'] + eor r7, r6, r9, ror #22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + str.w r3, [r0, #4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:writes=['r0Aba1'] + ldr r11, [r0, #28] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ // @slothy:reads=['r0Abo1'] + ldr.w r5, [r0, #108] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... // @slothy:reads=['r0Ako1'] + ldr.w r1, [r0, #188] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. // @slothy:reads=['r0Aso1'] + eor r6, r8, r7, ror #21 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + eor r3, r14, r4, ror #11 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + ldr r12, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. // @slothy:reads=['r0Amo0'] + ldr.w r10, [r0, #4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:reads=['r0Aba1'] + ldr.w r14, [r0, #8] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ // @slothy:reads=['r0Abe0'] + ldr.w r9, [r0, #124] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... // @slothy:reads=['r0Ama1'] + eor r4, r3, r2, ror #6 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + ldr.w r2, [r0, #64] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:reads=['r0Ago0'] + str.w r6, [sp, #0] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... // @slothy:writes=['spmDa0'] + ldr.w r3, [r0, #152] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:reads=['r0Amu0'] + ldr.w r6, [r0, #76] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... // @slothy:reads=['r0Agu1'] + eor r1, r2, r1, ror #18 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + eor r10, r10, r9, ror #31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + ldr.w r9, [r0, #92] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... // @slothy:reads=['r0Ake1'] + eor r2, r1, r5, ror #31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + ldr.w r5, [r0, #184] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... // @slothy:reads=['r0Aso0'] + eor r14, r9, r14, ror #20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + ldr.w r1, [r0, #128] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... // @slothy:reads=['r0Ame0'] + eor r6, r3, r6, ror #12 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + ldr.w r3, [r0, #68] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... // @slothy:reads=['r0Ago1'] + eor r2, r2, r11, ror #18 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + ldr.w r11, [r0, #40] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + eor r9, r3, r5, ror #18 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + ldr.w r5, [r0, #192] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. // @slothy:reads=['r0Asu0'] + eor r8, r8, r4, ror #25 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + str.w r8, [sp, #12] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. // @slothy:writes=['spmDo1'] + eor r11, r10, r11, ror #20 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + ldr.w r10, [r0, #104] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ // @slothy:reads=['r0Ako0'] + eor r6, r6, r5, ror #19 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + ldr r5, [r0, #52] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... // @slothy:reads=['r0Age1'] + eor r8, r14, r1, ror #7 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + ldr r14, [r0, #160] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. // @slothy:reads=['r0Asa0'] + eor r1, r9, r10, ror #0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + ldr r3, [r0, #168] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. // @slothy:reads=['r0Ase0'] + ldr.w r9, [r0, #96] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ // @slothy:reads=['r0Aki0'] + eor r8, r8, r5, ror #3 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + eor r10, r2, r12, ror #1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + ldr r5, [r0, #84] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... // @slothy:reads=['r0Aka1'] + eor r14, r11, r14, ror #27 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + ldr r11, [r0, #116] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... // @slothy:reads=['r0Aku1'] + eor r8, r8, r3, ror #22 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + ldr.w r12, [r0, #176] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... // @slothy:reads=['r0Asi0'] + ldr.w r3, [r0, #120] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ // @slothy:reads=['r0Ama0'] + eor r2, r10, r7, ror #22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + eor r12, r12, r9, ror #8 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + ldr r9, [r0, #24] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... // @slothy:reads=['r0Abo0'] + eor r7, r6, r11, ror #4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + ldr.w r6, [r0, #20] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... // @slothy:reads=['r0Abi1'] + eor r11, r14, r5, ror #13 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + ldr.w r5, [r0, #0] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... // @slothy:reads=['r0Aba0'] + eor r14, r1, r9, ror #19 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + ldr r9, [r0, #140] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... // @slothy:reads=['r0Ami1'] + eor r6, r12, r6, ror #30 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + ldr r1, [r0, #164] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... // @slothy:reads=['r0Asa1'] + eor r12, r10, r11, ror #31 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + ldr.w r10, [r0, #44] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. // @slothy:reads=['r0Aga1'] + eor r5, r5, r3, ror #30 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + ldr r3, [r0, #148] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. // @slothy:reads=['r0Amo1'] + ror r8, #32-11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + eor r9, r6, r9, ror #11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + eor r5, r5, r10, ror #19 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + ldr r10, [r0, #36] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... // @slothy:reads=['r0Abu1'] + eor r6, r14, r3, ror #1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + ldr r3, [r0, #80] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. // @slothy:reads=['r0Aka0'] + eor r5, r5, r1, ror #27 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + ldr r14, [r0, #60] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. // @slothy:reads=['r0Agi1'] + eor r1, r7, r10, ror #27 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + ldr.w r7, [r0, #56] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ // @slothy:reads=['r0Agi0'] + eor r10, r5, r3, ror #12 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + ldr.w r5, [r0, #40] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... // @slothy:reads=['r0Aga0'] + ldr.w r3, [r0, #72] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... // @slothy:reads=['r0Agu0'] + eor r9, r9, r14, ror #6 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + eor r14, r6, r10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + eor r6, r8, r6, ror #31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + eor r7, r2, r7, ror #31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + str.w r6, [sp, #16] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ // @slothy:writes=['spmDi0'] + eor r10, r10, r4, ror #24 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + ror r9, #32-7 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + eor r4, r12, r3, ror #22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + ldr.w r3, [r0, #64] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... // @slothy:reads=['r0Ago0'] + ldr.w r6, [r0, #48] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... // @slothy:reads=['r0Age0'] + eor r8, r8, r1, ror #10 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + eor r11, r11, r9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + eor r9, r9, r1, ror #9 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + str.w r8, [sp, #4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... // @slothy:writes=['spmDa1'] + eor r1, r11, r6, ror #25 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + eor.w r3, r9, r3 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................. + eor r6, r8, r5, ror #20 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................. + bic r5, r3, r7, ror #32+14-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + eor r5, r5, r1, ror #23 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + ror r5, r5, #32-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + str.w r5, [r0, #64] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. // @slothy:writes=['r0Ago0'] + bic r5, r1, r6, ror #23-2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + eor r5, r5, r4, ror #13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + bic r1, r7, r1, ror #31-23 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + ror r5, r5, #32-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + eor r1, r1, r6, ror #29 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + str.w r5, [r0, #48] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ // @slothy:writes=['r0Age0'] + bic r5, r6, r4, ror #32+2-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + ror r1, r1, #32-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + eor r6, r5, r3, ror #20 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + bic r3, r4, r3, ror #32+10-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + ldr.w r5, [r0, #84] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... // @slothy:reads=['r0Aka1'] + str.w r1, [r0, #56] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:writes=['r0Agi0'] + ldr.w r1, [r0, #116] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... // @slothy:reads=['r0Aku1'] + eor r3, r3, r7, ror #11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + ldr.w r7, [r0, #108] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... // @slothy:reads=['r0Ako1'] + eor r4, r8, r5, ror #13 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + ldr.w r8, [r0, #92] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... // @slothy:reads=['r0Ake1'] + ror r3, r3, #32-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + eor r1, r14, r1, ror #14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + str.w r3, [r0, #72] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. // @slothy:writes=['r0Agu0'] + eor r5, r9, r7, ror #31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + eor r3, r10, r8, ror #21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + ldr.w r7, [r0, #100] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ // @slothy:reads=['r0Aki1'] + ror r8, r6, #32-2 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + bic r6, r4, r1, ror #9-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + str.w r8, [r0, #40] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. // @slothy:writes=['r0Aga0'] + eor r6, r6, r5, ror #29 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + eor r7, r2, r7, ror #2 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................. + ror r6, r6, #32-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + bic r8, r3, r4, ror #32+0-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + str.w r6, [r0, #100] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... // @slothy:writes=['r0Aki1'] + eor r6, r8, r1, ror #28 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + str.w r6, [r0, #108] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... // @slothy:writes=['r0Ako1'] + bic r6, r7, r3, ror #3-0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + eor r6, r6, r4, ror #26 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + ldr.w r4, [r0, #120] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... // @slothy:reads=['r0Ama0'] + bic r1, r1, r5, ror #32+4-12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + ldr.w r8, [r0, #128] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ // @slothy:reads=['r0Ame0'] + ror r6, r6, #32-3 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + eor r1, r1, r7, ror #1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + str.w r6, [r0, #116] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:writes=['r0Aku1'] + ldr.w r6, [r0, #136] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... // @slothy:reads=['r0Ami0'] + bic r7, r5, r7, ror #12-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + ror r1, r1, #32-4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + eor r5, r10, r8, ror #28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + ldr r8, [sp, #0] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... // @slothy:reads=['spmDa0'] + str.w r1, [r0, #92] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... // @slothy:writes=['r0Ake1'] + eor r6, r2, r6, ror #4 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + eor r4, r8, r4, ror #30 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................. + eor r3, r7, r3, ror #12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + ldr.w r7, [r0, #152] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. // @slothy:reads=['r0Amu0'] + bic r1, r6, r5, ror #8-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + ror r3, r3, #32-12 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + eor r1, r1, r4, ror #22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + str.w r3, [r0, #84] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. // @slothy:writes=['r0Aka1'] + eor r3, r14, r7, ror #10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + ror r1, r1, #32-8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + ldr.w r7, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. // @slothy:reads=['r0Amo0'] + str.w r1, [r0, #128] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ // @slothy:writes=['r0Ame0'] + bic r1, r5, r4, ror #32+5-18 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + eor r1, r1, r3, ror #23 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................... + eor r7, r9, r7, ror #1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................... + ror r1, r1, #32-5 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + bic r4, r4, r3, ror #18-14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + str.w r1, [r0, #120] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ // @slothy:writes=['r0Ama0'] + bic r1, r7, r6, ror #28-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + eor r1, r1, r5, ror #23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + ldr.w r5, [r0, #188] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... // @slothy:reads=['r0Aso1'] + bic r3, r3, r7, ror #32+14-28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + str.w r9, [sp, #8] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... // @slothy:writes=['spmDo0'] + eor r3, r3, r6, ror #6 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + ror r6, r1, #32-28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + eor r9, r9, r5, ror #18 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + ldr.w r1, [r0, #196] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... // @slothy:reads=['r0Asu1'] + eor r4, r4, r7, ror #22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + ldr.w r7, [r0, #164] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... // @slothy:reads=['r0Asa1'] + str.w r6, [r0, #136] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:writes=['r0Ami0'] + ldr.w r5, [r0, #180] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. // @slothy:reads=['r0Asi1'] + ror r4, r4, #32-18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + eor r1, r12, r1, ror #29 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + str.w r4, [r0, #152] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ // @slothy:writes=['r0Amu0'] + eor r6, r8, r7, ror #27 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + eor r7, r2, r5, ror #25 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + ldr.w r5, [r0, #172] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... // @slothy:reads=['r0Ase1'] + ror r3, r3, #32-14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + bic r4, r6, r1, ror #20-19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + eor r4, r4, r9, ror #25 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + str.w r3, [r0, #144] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. // @slothy:writes=['r0Amo0'] + bic r3, r1, r9, ror #32+19-27 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................ + ror r4, r4, #32-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + eor r3, r3, r7, ror #20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + eor r5, r11, r5, ror #12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + str.w r4, [r0, #172] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... // @slothy:writes=['r0Ase1'] + ror r3, r3, #32-19 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + bic r4, r9, r7, ror #32+27-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + str.w r3, [r0, #164] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ // @slothy:writes=['r0Asa1'] + bic r3, r5, r6, ror #32+1-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + eor r3, r3, r1, ror #14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + ldr r1, [r0, #8] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... // @slothy:reads=['r0Abe0'] + bic r9, r7, r5, ror #31-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + ldr r7, [r0, #32] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... // @slothy:reads=['r0Abu0'] + eor r6, r9, r6, ror #11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + ror r3, r3, #32-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + str.w r3, [r0, #180] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:writes=['r0Asi1'] + ldr r3, [r0, #16] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... // @slothy:reads=['r0Abi0'] + eor r5, r4, r5, ror #26 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + ldr r4, [r0, #24] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... // @slothy:reads=['r0Abo0'] + eor r1, r10, r1, ror #9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + ldr r9, [sp, #12] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. // @slothy:reads=['spmDo1'] + eor r3, r2, r3, ror #23 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + ror r2, r5, #32-27 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + ror r5, r6, #32-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + eor r6, r9, r4, ror #19 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + str.w r2, [r0, #196] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... // @slothy:writes=['r0Asu1'] + eor r2, r12, r7, ror #4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + str.w r5, [r0, #188] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. // @slothy:writes=['r0Aso1'] + bic r4, r6, r3, ror #32+11-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + eor r5, r4, r1, ror #21 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + ldr.w r4, [r0, #0] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. // @slothy:reads=['r0Aba0'] + eor.w r4, r8, r4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + bic r7, r2, r6, ror #32+7-11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + eor r7, r7, r3, ror #17 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + ror r5, r5, #32-11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + str.w r5, [r0, #8] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... // @slothy:writes=['r0Abe0'] + bic r3, r3, r1, ror #22-22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + ror r7, r7, #32-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + str.w r7, [r0, #16] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... // @slothy:writes=['r0Abi0'] + bic r5, r4, r2, ror #32+0-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + ldr.w r7, [r0, #60] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ // @slothy:reads=['r0Agi1'] + eor r6, r5, r6, ror #21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + ldr.w r5, [r0, #44] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... // @slothy:reads=['r0Aga1'] + bic r1, r1, r4, ror #22-0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + str.w r6, [r0, #24] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... // @slothy:writes=['r0Abo0'] + eor r1, r1, r2, ror #15 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + ldr.w r2, [sp, #16] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... // @slothy:reads=['spmDi0'] + eor r5, r8, r5, ror #19 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + ldr.w r6, [r0, #52] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... // @slothy:reads=['r0Age1'] + eor r7, r2, r7, ror #31 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + ror r1, r1, #32-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + str.w r1, [r0, #32] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. // @slothy:writes=['r0Abu0'] + eor r3, r4, r3, ror #10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + eor r6, r10, r6, ror #24 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + ldr r1, [sp, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. // @slothy:reads=['spmRC'] + ldr r4, [r1, #24] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:reads=['r124'] + ldr.w r1, [r0, #76] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... // @slothy:reads=['r0Agu1'] + eor.w r3, r4, r3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + bic r4, r7, r6, ror #30-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + eor r4, r4, r5, ror #29 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + str.w r3, [r0, #0] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. // @slothy:writes=['r0Aba0'] + eor r1, r14, r1, ror #22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................ + ror r3, r4, #32-30 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + str.w r3, [r0, #60] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... // @slothy:writes=['r0Agi1'] + bic r3, r6, r5, ror #22-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + ldr.w r4, [r0, #68] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... // @slothy:reads=['r0Ago1'] + eor.w r4, r9, r4 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + eor r3, r3, r1, ror #12 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + bic r5, r5, r1, ror #32+1-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................ + ror r3, r3, #32-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + eor r5, r5, r4, ror #19 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + bic r1, r1, r4, ror #32+10-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + str.w r3, [r0, #52] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... // @slothy:writes=['r0Age1'] + ror r3, r5, #32-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + eor r5, r1, r7, ror #12 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + bic r7, r4, r7, ror #32+14-30 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + ldr.w r1, [r0, #80] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... // @slothy:reads=['r0Aka0'] + eor r6, r7, r6, ror #24 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + ldr.w r4, [r0, #88] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... // @slothy:reads=['r0Ake0'] + ldr.w r7, [r0, #96] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:reads=['r0Aki0'] + str.w r3, [r0, #44] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. // @slothy:writes=['r0Aga1'] + eor r1, r8, r1, ror #12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + ror r6, r6, #32-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + ldr.w r8, [r0, #112] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ // @slothy:reads=['r0Aku0'] + eor r4, r11, r4, ror #22 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + eor r3, r2, r7, ror #1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + ror r7, r5, #32-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + str.w r7, [r0, #76] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:writes=['r0Agu1'] + ldr.w r7, [r0, #104] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. // @slothy:reads=['r0Ako0'] + str.w r6, [r0, #68] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. // @slothy:writes=['r0Ago1'] + bic r5, r3, r4, ror #3-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + eor.w r6, r9, r7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + eor r5, r5, r1, ror #26 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + bic r7, r6, r3, ror #13-3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................... + ror r5, r5, #32-3 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + eor r7, r7, r4, ror #12 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + str.w r5, [r0, #112] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... // @slothy:writes=['r0Aku0'] + eor r5, r12, r8, ror #14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + ror r8, r7, #32-13 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + bic r4, r4, r1, ror #32+1-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + bic r7, r5, r6, ror #32+4-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + str.w r8, [r0, #80] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... // @slothy:writes=['r0Aka0'] + bic r1, r1, r5, ror #9-4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + ldr r8, [sp, #4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... // @slothy:reads=['spmDa1'] + eor r7, r7, r3, ror #1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + ldr.w r3, [r0, #156] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... // @slothy:reads=['r0Amu1'] + eor r5, r4, r5, ror #29 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + ldr.w r4, [r0, #124] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... // @slothy:reads=['r0Ama1'] + eor r1, r1, r6, ror #28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + ldr.w r6, [r0, #132] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... // @slothy:reads=['r0Ame1'] + eor r3, r12, r3, ror #10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + ror r5, r5, #32-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + ror r1, r1, #32-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + eor r12, r8, r4, ror #31 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + str.w r5, [r0, #104] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ // @slothy:writes=['r0Ako0'] + eor r5, r11, r6, ror #28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + str.w r1, [r0, #96] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:writes=['r0Aki0'] + ldr.w r1, [r0, #140] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... // @slothy:reads=['r0Ami1'] + ror r6, r7, #32-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + bic r4, r5, r12, ror #32+5-18 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + eor r4, r4, r3, ror #24 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + str.w r6, [r0, #88] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. // @slothy:writes=['r0Ake0'] + eor r6, r2, r1, ror #4 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................ + ror r1, r4, #32-5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + ldr.w r4, [r0, #148] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... // @slothy:reads=['r0Amo1'] + str.w r1, [r0, #124] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... // @slothy:writes=['r0Ama1'] + bic r1, r6, r5, ror #7-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + eor r1, r1, r12, ror #21 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + eor r7, r9, r4, ror #1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................ + ror r1, r1, #32-7 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + bic r4, r12, r3, ror #18-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + bic r12, r7, r6, ror #28-7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + str.w r1, [r0, #132] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... // @slothy:writes=['r0Ame1'] + eor r5, r12, r5, ror #23 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + ldr.w r1, [r0, #176] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... // @slothy:reads=['r0Asi0'] + bic r3, r3, r7, ror #32+13-28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + ldr r12, [r0, #12] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... // @slothy:reads=['r0Abe1'] + ror r5, r5, #32-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + eor r4, r4, r7, ror #22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + eor r7, r3, r6, ror #6 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + str.w r5, [r0, #140] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. // @slothy:writes=['r0Ami1'] + eor r3, r2, r1, ror #25 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + ldr r6, [r0, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. // @slothy:reads=['r0Abi1'] + ror r1, r7, #32-13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + ldr r5, [r0, #36] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ // @slothy:reads=['r0Abu1'] + eor r7, r11, r12, ror #10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + ldr.w r12, [r0, #184] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... // @slothy:reads=['r0Aso0'] + eor r6, r2, r6, ror #23 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + ldr.w r11, [r0, #168] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. // @slothy:reads=['r0Ase0'] + eor r5, r14, r5, ror #5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + ldr.w r2, [r0, #192] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. // @slothy:reads=['r0Asu0'] + eor r9, r9, r12, ror #18 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + ldr.w r12, [r0, #160] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ // @slothy:reads=['r0Asa0'] + eor r10, r10, r11, ror #11 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + str.w r1, [r0, #148] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... // @slothy:writes=['r0Amo1'] + eor r11, r14, r2, ror #29 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + ror r14, r4, #32-18 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + str.w r14, [r0, #156] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... // @slothy:writes=['r0Amu1'] + eor r2, r8, r12, ror #27 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + bic r12, r11, r9, ror #32+20-28 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + ldr.w r14, [r0, #4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ // @slothy:reads=['r0Aba1'] + eor.w r8, r8, r14 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + eor r12, r12, r3, ror #21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................... + ldr r1, [r0, #28] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... // @slothy:reads=['r0Abo1'] + bic r14, r9, r3, ror #32+28-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + ror r4, r12, #32-20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + eor r12, r14, r10, ror #27 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + bic r14, r7, r8, ror #22-0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + str.w r4, [r0, #160] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... // @slothy:writes=['r0Asa0'] + eor r14, r14, r5, ror #15 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + ror r12, r12, #32-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + bic r4, r2, r11, ror #21-20 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + str.w r12, [r0, #192] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. // @slothy:writes=['r0Asu0'] + ror r12, r14, #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + bic r14, r3, r10, ror #31-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + eor r3, r14, r2, ror #10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + str.w r12, [r0, #36] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ // @slothy:writes=['r0Abu1'] + bic r14, r10, r2, ror #32+1-21 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + ldr r12, [sp, #8] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... // @slothy:reads=['spmDo0'] + eor r11, r14, r11, ror #13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + ror r14, r3, #32-31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + eor r2, r12, r1, ror #18 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + ldr r1, [sp, #20] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. // @slothy:reads=['spmRC'] + str.w r14, [r0, #184] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ // @slothy:writes=['r0Aso0'] + bic r10, r6, r7, ror #32+21-22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + bic r12, r8, r5, ror #32+0-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + ror r14, r11, #32-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + eor r12, r12, r2, ror #22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + str.w r14, [r0, #176] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... // @slothy:writes=['r0Asi0'] + eor r14, r4, r9, ror #25 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + ldr r3, [r1, #28] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... // @slothy:reads=['r128'] + str.w r12, [r0, #28] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ // @slothy:writes=['r0Abo1'] + bic r4, r2, r6, ror #32+10-21 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + ror r12, r14, #32-21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + bic r14, r5, r2, ror #32+7-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + eor r14, r14, r6, ror #18 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + ldr r11, [r1, #32]! // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... // @slothy:reads=['r132'] + eor r2, r4, r7, ror #20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + str.w r12, [r0, #168] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... // @slothy:writes=['r0Ase0'] + eor r12, r8, r10, ror #11 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + ror r14, r14, #32-7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + ror r6, r2, #32-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + str.w r6, [r0, #12] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... // @slothy:writes=['r0Abe1'] + str r1, [sp, #20] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. // @slothy:writes=['spmRC'] + cmp r11, #0xFF // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + eor.w r1, r3, r12 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + str.w r14, [r0, #20] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. // @slothy:writes=['r0Abi1'] + str.w 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 + // |------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|------------------------|----------- + // ldr.w r3, [r0, #8*4] // *........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #18*4] // .*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #28*4] // ..*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #38*4] // ...............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r12, [r0, #48*4] // ....................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #0-0 // ....*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #0-0 // ......*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r11, ror #0-0 // .....................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r12, ror #0-0 // .......................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #3*4] // .....*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #13*4] // ....*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #23*4] // ......*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #33*4] // ........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #43*4] // .........*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r1, ror #0-0 // .......*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #0-0 // .........*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r11, ror #0-0 // ...........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r12, ror #0-0 // .............*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r7, ror #32-1 // ..........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #5*4] // .*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #15*4] // *........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #25*4] // ..*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #35*4] // ..........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #45*4] // .................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r6, [sp, #0*4] // ............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r1, ror #0-0 // ...*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r5, ror #0-0 // .....*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r11, ror #0-0 // ..................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #0-0 // ....................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r6, r3, r4 // ..........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #6*4] // ................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #16*4] // ..............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #26*4] // ..................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #36*4] // ........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #46*4] // ..............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r6, [sp, #3*4] // ...............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #0-0 // ...................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r5, ror #0-0 // ........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r11, ror #0-0 // ...........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r12, ror #0-0 // .................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r2, r7, r3 // ....................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #0*4] // ..........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r1, [r0, #10*4] // ........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #20*4] // ............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #30*4] // .............*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #40*4] // .......................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #0-0 // ............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #0-0 // ...............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r11, ror #0-0 // .................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #0-0 // .............................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r10, r7, r4, ror #32-1 // ...................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #7*4] // .....................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #17*4] // ......................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #27*4] // .........................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #37*4] // ...........................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r12, [r0, #47*4] // .............................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r1, ror #0-0 // .........................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r5, ror #0-0 // ............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r11, ror #0-0 // ..............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r12, ror #0-0 // ................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r14, r4, r7 // ..................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #2*4] // ...........*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r1, [r0, #12*4] // .......*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #22*4] // ...................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r11, [r0, #32*4] // ...*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r12, [r0, #42*4] // ...............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r1, ror #0-0 // ..............*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r5, ror #0-0 // ......................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #0-0 // ...............................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r12, ror #0-0 // ..................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r7, r4, ror #32-1 // .....................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #9*4] // ....................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #19*4] // .................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #29*4] // .......................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #39*4] // ................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #49*4] // ...................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r6, [sp, #4*4] // .......................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r1, ror #0-0 // ......................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #0-0 // ..........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r11, ror #0-0 // ............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #0-0 // ..................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r8, r4, r7 // ....................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #4*4] // ......................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #14*4] // .....................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #24*4] // ...........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r11, [r0, #34*4] // .............................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #44*4] // ................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r8, [sp, #1*4] // ............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #0-0 // ........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #0-0 // ..............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r11, ror #0-0 // ................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #0-0 // ...................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r9, r7, r4, ror #32-1 // ......................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #1*4] // .........................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r1, [r0, #11*4] // ........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #21*4] // ..........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #31*4] // ............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #41*4] // ..............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r9, [sp, #2*4] // .........................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r1, ror #0-0 // ...........................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r5, ror #0-0 // .............................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r11, ror #0-0 // ...............................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r12, ror #0-0 // .................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r11, r4, r7 // .....................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r12, r3, r4, ror #32-1 // ....................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #6*4] // ........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #18*4] // ...........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #21*4] // ...................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #33*4] // ..................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #45*4] // .................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r9, r3 // .........................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r4, r12, r4 // ............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r5, r8, r5 // .....................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r6, r11, r6 // ......................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r2, r7 // .......................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+2-10 // ..................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+2-14 // .....................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #21*4] // .......................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #23-2 // .......................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #23-10 // ...............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #33*4] // .................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #31-23 // ........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #31-2 // .........................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #45*4] // ..........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+14-31 // ..........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+14-23 // ...........................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #6*4] // .............................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+10-14 // .............................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+10-31 // ..............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #2*4] // ................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #15*4] // ..............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #26*4] // ..................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #39*4] // .....................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #41*4] // ...................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #18*4] // ................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r10, r3 // .................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r2, r4 // ...............................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r5, r9, r5 // ...................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r6, r14, r6 // ......................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r8, r7 // ....................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #12-3 // ....................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #12-0 // ......................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #41*4] // ........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-12 // .......................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #4-3 // .........................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #2*4] // ..........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #9-4 // ........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // ..........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #15*4] // .............................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-9 // ............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-4 // .............................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #26*4] // ..............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #3-0 // ...........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+3-9 // ...............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r8, [sp, #0*4] // .................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #9*4] // ......................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #10*4] // ................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #22*4] // ...........................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #35*4] // ..............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #46*4] // ...............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #39*4] // ................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r14, r3 // .......................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r8, r4 // ..................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r5, r10, r5 // ............................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r6, r2, r6 // .................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r9, r7 // ..................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // ...........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #32+5-14 // ............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #10*4] // ............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #8-5 // ...................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #32+8-18 // ....................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #22*4] // ....................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-8 // .....................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ......................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #35*4] // .......................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-28 // ........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #14-8 // .........................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #46*4] // ..........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #18-14 // ..........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ..............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #5*4] // .........................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #16*4] // ...................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #28*4] // ...........................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #30*4] // .............................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #43*4] // ...............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #9*4] // ..................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r2, r3 // .................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r9, r4 // .....................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r5, r12, r5 // .............................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r6, r8, r6 // ..............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r7, r11, r7 // .................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+19-27 // ...................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r3, ror #32+19-31 // .......................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #30*4] // ........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #20-19 // ...............................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #32+20-27 // ................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #43*4] // ................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // ..........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+1-19 // ...........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #5*4] // .............................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #31-1 // ......................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-20 // .........................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #16*4] // .........................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+27-31 // ....................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #27-1 // .....................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r9, [sp, #3*4] // ...........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #0*4] // .......................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #12*4] // ....................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #25*4] // ..................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #37*4] // ..........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r7, [r0, #48*4] // ..............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #28*4] // .....................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r8, r3 // ........................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r10, r4 // ......................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r5, r2, r5 // ...................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r6, r9, r6 // ............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r12, r7 // ...............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #32+11-22 // .............................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+11-22 // ..............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #12*4] // ................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-11 // ................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-22 // .................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #25*4] // .................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ..................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-11 // ...................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #37*4] // ...................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #22-0 // ....................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // .....................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #48*4] // ......................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r5, r5, r4, ror #22-22 // ............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r1, [sp, #5*4] // ....................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #0] // ......................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-22 // ...............................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r1, r4, r3 // .......................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r2, [sp, #4*4] // ..................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #7*4] // ...........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #19*4] // ....................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #20*4] // ..............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r6, [r0, #32*4] // .......................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #44*4] // ........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #0*4] // .......................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r9, r3 // ............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r14, r4 // .......................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r5, r8, r5 // ...............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r6, r10, r6 // ........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r2, r7 // .........................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #32+1-10 // .............................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r3, ror #32+1-14 // ..............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #20*4] // ..............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #22-1 // .........................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #22-10 // ..........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #32*4] // ..........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #30-22 // ...........................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #30-1 // ............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #44*4] // .............................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+14-30 // ...............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #32+14-22 // ................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #7*4] // ................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // .................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-30 // ..................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #3*4] // ...............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #14*4] // ............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #27*4] // ........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #38*4] // .........................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #40*4] // ........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #19*4] // .....................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r11, r3 // ................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r2, r4 // ..............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r5, r9, r5 // .........................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r6, r12, r6 // ..........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r7, r8, r7 // ..........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r5, r4, ror #13-3 // .................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #13-1 // ...................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #40*4] // ...................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #32+4-13 // ...........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #4-3 // ................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #3*4] // .................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // ............................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-13 // .............................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #14*4] // .............................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+1-9 // ....................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+1-4 // ......................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #27*4] // ......................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-1 // ..................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // .....................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [sp, #1*4] // ...............................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #8*4] // .....................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #11*4] // ..................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #23*4] // ...................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #34*4] // ...................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r7, [r0, #47*4] // ..................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #38*4] // .....................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r12, r3 // ...........................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r4, r8, r4 // .................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r5, r11, r5 // .....................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r6, r2, r6 // ....................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r9, r7 // ......................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+5-18 // ......................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+5-13 // .......................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #11*4] // .......................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #7-5 // ........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+7-18 // .........................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #23*4] // .........................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #28-7 // ...........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #28-5 // ............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #34*4] // ............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+13-28 // .............................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #13-7 // ..............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #47*4] // ..............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #18-13 // ..........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ...............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #4*4] // ...............................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #17*4] // ..........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #29*4] // ........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #31*4] // .............................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #42*4] // ................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #8*4] // ....................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r3, r2, r3 // ................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r4, r9, r4 // ...........................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r5, r14, r5 // .................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r6, r8, r6 // .................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r7, r10, r7 // ..................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r5, r4, ror #32+20-28 // ..................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r3, ror #32+20-31 // ...................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #31*4] // .....................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #21-20 // .....................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+21-28 // ......................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #42*4] // ......................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-21 // .........................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+1-20 // ...........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #4*4] // ...........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #31-1 // ....................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-21 // .......................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #17*4] // ............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+28-31 // ........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #28-1 // ..........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r9, [sp, #2*4] // .........................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #1*4] // .............................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #13*4] // ..............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r5, [r0, #24*4] // .......................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #36*4] // ...................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r7, [r0, #49*4] // ............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #29*4] // ...............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r3, r8, r3 // ..............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r4, r11, r4 // ...............................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w r5, r2, r5 // ........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r6, r9, r6 // ..........................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r7, r14, r7 // .............................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #32+10-21 // ................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+10-22 // ...................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #13*4] // ...................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #32+7-10 // ....................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-21 // .....................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #24*4] // ......................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // .................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-10 // ..................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #36*4] // ..................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // .......................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #22-7 // ........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #49*4] // ........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r5, r5, r4, ror #32+21-22 // ......................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r1, [sp, #5*4] // .................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #4] // ....................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-21 // .........................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w r14, r4, r3 // ..............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #48*4] // .....................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #18*4] // .........................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #38*4] // ................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #9*4] // ......................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #29*4] // ........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r14, [r0, #1*4] // .................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #22-10 // ............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #22-3 // ...............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r11, ror #22-18 // .........................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r12, ror #32+22-28 // ..................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #13*4] // .......................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #32*4] // ............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #2*4] // .............................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #23*4] // .........................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #43*4] // ............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+10-22 // ........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #10-4 // ..........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r11, ror #10-7 // ............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #32+10-20 // ...............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ror r3, #32-22 // ..........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r7, ror #32-10-1 // ..................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #24*4] // ..........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r1, [r0, #44*4] // ...........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #15*4] // ...........................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r11, [r0, #34*4] // .................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #5*4] // .......................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r6, [sp, #0*4] // ...................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r1, ror #32+7-30 // ...........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r5, ror #32+7-9 // .............................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r11, ror #32+7-28 // ....................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #7-1 // ..........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r4, ror #32-7 // .............................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #37*4] // ......................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #6*4] // .....................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #27*4] // ........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #46*4] // ..............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #17*4] // .................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r6, [sp, #3*4] // .............................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r1, ror #32+0-14 // ........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32+0-1 // ...........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r3, r11, ror #32+0-14 // .................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r12, ror #32+0-31 // ....................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r2, r3, r7, ror #32-10 // .......................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #0*4] // ................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #21*4] // ...............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #40*4] // ...................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r11, [r0, #10*4] // ..............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #31*4] // ...........................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r1, ror #32+0-2 // ....................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #32+0-13 // ......................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #32+0-5 // .................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #32+0-20 // ..............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r10, r7, r4, ror #32-7-1 // ...................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #36*4] // .............................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r1, [r0, #7*4] // ............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #26*4] // ................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #47*4] // ..................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #16*4] // ....................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r1, ror #32+0-14 // ...............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r5, ror #0-0 // ...................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r11, ror #32+0-13 // .....................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+0-31 // .......................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r14, r4, r7 // ................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #12*4] // ..............................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r1, [r0, #33*4] // .............................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #3*4] // ................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #22*4] // ..................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #42*4] // ....................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+11-23 // .................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #11-4 // ...................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r11, ror #11-8 // .....................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #32+11-21 // .......................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ror r7, #32-11 // ..........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r7, r4, ror #32-1 // ................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #49*4] // .......................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #19*4] // .........................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #39*4] // .....................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #8*4] // ...........................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r12, [r0, #28*4] // ...................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r6, [sp, #4*4] // .....................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r1, ror #22-10 // ............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-3 // ..............................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r11, ror #22-18 // ................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+22-27 // ......................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r7, r4, ror #32-22 // .........................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #25*4] // ...............................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r1, [r0, #45*4] // ..................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #14*4] // .....................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #35*4] // .......................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #4*4] // ....................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r8, [sp, #1*4] // ...........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r1, ror #32+7-31 // ......................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #32+7-9 // ........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #32+7-28 // ............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #7-1 // ..............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ror r7, #32-7 // ................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r9, r7, r4, ror #32-22-1 // ..................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #1*4] // .........................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r1, [r0, #20*4] // ........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #41*4] // ..........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #11*4] // ............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #30*4] // ..............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r9, [sp, #2*4] // .........................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r1, ror #32+0-1 // ...........................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r5, ror #32+0-12 // .............................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r11, ror #32+0-5 // ...............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r12, ror #32+0-19 // .................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r11, r4, r7 // ....................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r12, r3, r4, ror #32-1 // ....................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #37*4] // .....................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #18*4] // ...................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #41*4] // ......................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #23*4] // .................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #5*4] // .............................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor.w 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.w r1, [r0, #41*4] // ..........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #23-2 // ...............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #23-10 // ...................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #23*4] // ...................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #31-23 // .............................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #31-2 // ..............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #5*4] // ................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-31 // .......................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+14-23 // ........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #37*4] // ........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // ...........................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+10-31 // ............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #12*4] // .................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #44*4] // ..............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #27*4] // ...............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #8*4] // .............................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #30*4] // ...............................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #18*4] // ............................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // 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.w r1, [r0, #30*4] // ...........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #32+4-12 // .....................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #4-3 // ......................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #12*4] // ......................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // .......................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // ........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #44*4] // ........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-9 // ............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-4 // ...............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #27*4] // ...............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #3-0 // ..........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+3-9 // ..............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r8, [sp, #0*4] // ...................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #49*4] // ..........................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #21*4] // ..................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #3*4] // ..............................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r6, [r0, #34*4] // ....................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #17*4] // ................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #8*4] // ................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // 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.w r1, [r0, #21*4] // .........................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #8-5 // ..........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #32+8-18 // ...........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #3*4] // ...........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #28-8 // ......................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // .......................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #34*4] // .......................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-28 // ............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #14-8 // .............................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #17*4] // .............................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #18-14 // ..............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #24*4] // .................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #6*4] // ..........................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #38*4] // ................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #10*4] // ...............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r7, [r0, #43*4] // ..............................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #49*4] // ..................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // 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.w r1, [r0, #10*4] // ..........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #20-19 // ......................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+20-27 // .......................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #43*4] // .......................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // .....................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+1-19 // ........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #24*4] // ........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // .............................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #31-20 // ..............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #6*4] // ................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+27-31 // ...........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #27-1 // ............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r9, [sp, #3*4] // ...............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #0*4] // .................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #33*4] // ...................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r5, [r0, #15*4] // .........................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r6, [r0, #47*4] // ...........................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r7, [r0, #29*4] // .............................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #38*4] // ............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w 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.w r1, [r0, #33*4] // .........................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #32+7-11 // .....................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-22 // ........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #15*4] // ........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ...................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #32+0-11 // ....................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #47*4] // ....................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #22-7 // .............................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #29*4] // ...............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r5, r5, r4, ror #22-22 // ..........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r1, [sp, #5*4] // ................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #8] // ..................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-22 // ............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r1, r4, r3 // ...................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r2, [sp, #4*4] // ............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #36*4] // .......................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #19*4] // ..................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #40*4] // ..............................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r6, [r0, #22*4] // ...........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r7, [r0, #4*4] // ..........................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #0*4] // ....................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w 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.w r1, [r0, #40*4] // ................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #22-1 // ...................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r4, ror #22-10 // ........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #22*4] // ........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #30-22 // ....................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #30-1 // ......................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #4*4] // ......................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-30 // ..........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+14-22 // ...........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #36*4] // ...........................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #32+10-14 // .............................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+10-30 // ..............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #13*4] // .............................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #45*4] // ............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #26*4] // .................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #9*4] // ..............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #31*4] // ..............................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #19*4] // ...............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r3, r11, r3, ror #32-10 // ................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-31 // ...............................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w 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.w r1, [r0, #31*4] // ........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-13 // .........................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #4-3 // .............................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #13*4] // ................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // ........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-13 // ...........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #45*4] // ............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+1-9 // ..................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+1-4 // ....................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #26*4] // ......................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-1 // ...................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+3-9 // .....................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r8, [sp, #1*4] // ...............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #48*4] // .......................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #20*4] // ..............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #2*4] // ...........................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #35*4] // .............................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #16*4] // .........................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #9*4] // .....................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // 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.w r1, [r0, #20*4] // ........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #7-5 // ..................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+7-18 // ....................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #2*4] // ....................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-7 // .....................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ......................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #35*4] // ......................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+13-28 // ...............................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r6, ror #13-7 // ...................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #16*4] // ...........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #18-13 // ...........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+18-28 // ..............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #25*4] // ...............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #7*4] // ..........................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #39*4] // .....................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #11*4] // .......................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #42*4] // ............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #48*4] // ..............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // 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.w r1, [r0, #11*4] // ......................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #21-20 // ............................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+21-28 // ................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #42*4] // .................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-21 // .................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+1-20 // ..................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #25*4] // ..................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // .....................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-21 // .......................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #7*4] // .........................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #32+28-31 // .............................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #28-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r9, [sp, #2*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #1*4] // .............................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r4, [r0, #32*4] // .....................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #14*4] // .......................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #46*4] // ...................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r7, [r0, #28*4] // ....................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #39*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor.w 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.w r1, [r0, #32*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-10 // .....................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-21 // ......................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #14*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #46*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #22-7 // ............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #28*4] // ............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................... + // bic r5, r5, r4, ror #32+21-22 // ..............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r1, [sp, #5*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r4, [r1, #12] // .............................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r5, ror #32-21 // ................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor.w r14, r4, r3 // ..................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #29*4] // ................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #18*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #9*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r11, [r0, #49*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #39*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r14, [r0, #1*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #22-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #22-3 // .......................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r11, ror #22-18 // .........................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r12, ror #32+22-28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r7, [r0, #32*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #22*4] // .................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #12*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #2*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #43*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r1, ror #32+10-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r5, ror #10-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #10-7 // ..............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r12, ror #32+10-20 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // ror r3, #32-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r3, r7, ror #32-10-1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #14*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r1, [r0, #4*4] // ........................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #44*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #35*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #24*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r6, [sp, #0*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r1, ror #32+7-30 // .............................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r5, ror #32+7-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r11, ror #32+7-28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #7-1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r6, r3, r4, ror #32-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #47*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #37*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #26*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #17*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #7*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r6, [sp, #3*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r1, ror #32+0-14 // ......................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32+0-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r11, ror #32+0-14 // ............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r3, r3, r12, ror #32+0-31 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................. + // eor r2, r3, r7, ror #32-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #0*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #41*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #31*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #21*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #11*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+0-2 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r5, ror #32+0-13 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #32+0-5 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #32+0-20 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r10, r7, r4, ror #32-7-1 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #46*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #36*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #27*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #16*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #6*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r1, ror #32+0-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r5, ror #0-0 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r11, ror #32+0-13 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+0-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // eor r14, r4, r7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #33*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #23*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #13*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #3*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #42*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r1, ror #32+11-23 // ...................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r5, ror #11-4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #11-8 // ........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #32+11-21 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................... + // ror r7, #32-11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // eor r6, r7, r4, ror #32-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #28*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #19*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #8*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r11, [r0, #48*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #38*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r6, [sp, #4*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................. + // eor r4, r4, r1, ror #22-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-3 // ................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r11, ror #22-18 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+22-27 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r8, r7, r4, ror #32-22 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #15*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #5*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #45*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r11, [r0, #34*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................................................. + // ldr r12, [r0, #25*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................ + // str.w r8, [sp, #1*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // eor r7, r7, r1, ror #32+7-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r5, ror #32+7-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................................ + // eor r7, r7, r11, ror #32+7-28 // .................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #7-1 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................................ + // ror r7, #32-7 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................................... + // eor r9, r7, r4, ror #32-22-1 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r4, [r0, #1*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #40*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #30*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................................ + // ldr r11, [r0, #20*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // ldr r12, [r0, #10*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................... + // str.w r9, [sp, #2*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r1, ror #32+0-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #32+0-12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................... + // eor r4, r4, r11, ror #32+0-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // eor r4, r4, r12, ror #32+0-19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................................. + // eor r11, r4, r7 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................ + // eor r12, r3, r4, ror #32-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #47*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #18*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #30*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r6, [r0, #2*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r7, [r0, #24*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // eor.w 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.w r1, [r0, #30*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #23-2 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #23-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #2*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #31-23 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #31-2 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #24*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+14-23 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #47*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-31 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #33*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #4*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #26*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r6, [r0, #48*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #10*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #18*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................ + // 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.w r1, [r0, #10*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #32+4-12 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r4, ror #4-3 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #33*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #9-4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #4*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+0-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #32+0-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #26*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-0 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................................................ + // ldr r8, [sp, #0*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #28*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #41*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #13*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #35*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #7*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #48*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................................................... + // 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.w r1, [r0, #41*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #8-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+8-18 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #13*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #28-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #28-5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #35*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #14-8 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #7*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #18-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+18-28 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #14*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #37*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #9*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #21*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #43*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #28*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................................ + // 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.w r1, [r0, #21*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #20-19 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+20-27 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #43*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+1-19 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #14*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #37*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #32+27-31 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #27-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // ldr r9, [sp, #3*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #0*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r0, #23*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................................... + // ldr r5, [r0, #44*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................................... + // ldr r6, [r0, #16*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................... + // ldr r7, [r0, #39*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #9*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // eor.w 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.w r1, [r0, #23*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // bic r1, r7, r6, ror #32+7-11 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #32+7-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #44*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-11 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #16*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #22-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #22-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #39*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................................ + // bic r5, r5, r4, ror #22-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................................. + // ldr r1, [sp, #5*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................................................... + // ldr r4, [r1, #16] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................................. + // eor r3, r3, r5, ror #32-22 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................... + // eor.w r1, r4, r3 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................. + // ldr.w r2, [sp, #4*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................ + // ldr.w r3, [r0, #46*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #19*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #31*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #3*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #25*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #0*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................................ + // eor.w 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.w r1, [r0, #31*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #22-1 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #22-10 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #3*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #30-22 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #30-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #25*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-30 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+14-22 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #46*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+10-14 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #32+10-30 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #32*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #5*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #27*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #49*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #11*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #19*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................................... + // eor r3, r11, r3, ror #32-10 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................... + // eor r4, r2, r4, ror #32-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................... + // eor.w 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.w r1, [r0, #11*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................. + // bic r1, r6, r5, ror #32+4-13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #4-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #32*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #9-4 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+9-13 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // str.w r1, [r0, #5*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................................. + // bic r1, r3, r7, ror #32+1-9 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+1-4 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #27*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #3-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // ldr r8, [sp, #1*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................... + // ldr.w r3, [r0, #29*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................................... + // ldr.w r4, [r0, #40*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #12*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #34*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #6*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #49*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................................ + // 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.w r1, [r0, #40*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // bic r1, r6, r5, ror #7-5 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+7-18 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // str.w r1, [r0, #12*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................ + // bic r1, r7, r6, ror #28-7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................... + // eor r1, r1, r5, ror #28-5 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // str.w r1, [r0, #34*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #32+13-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................................. + // eor r1, r1, r6, ror #13-7 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // str.w r1, [r0, #6*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................................ + // bic r1, r4, r3, ror #18-13 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #32+18-28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #15*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................. + // ldr.w r4, [r0, #36*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................ + // ldr.w r5, [r0, #8*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................................... + // ldr.w r6, [r0, #20*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................................... + // ldr.w r7, [r0, #42*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................................... + // str.w r1, [r0, #29*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................................ + // 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.w r1, [r0, #20*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................... + // bic r1, r6, r5, ror #21-20 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................... + // eor r1, r1, r4, ror #32+21-28 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // str.w r1, [r0, #42*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #32+1-21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................ + // eor r1, r1, r5, ror #32+1-20 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // str.w r1, [r0, #15*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................... + // bic r1, r3, r7, ror #31-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #31-21 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // str.w r1, [r0, #36*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // bic r1, r4, r3, ror #32+28-31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // eor r1, r1, r7, ror #28-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // ldr r9, [sp, #2*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................................. + // ldr.w r3, [r0, #1*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................................ + // ldr r4, [r0, #22*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................................. + // ldr r5, [r0, #45*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................................... + // ldr r6, [r0, #17*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................ + // ldr r7, [r0, #38*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................................... + // str.w r1, [r0, #8*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................................. + // eor.w 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.w r1, [r0, #22*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................. + // bic r1, r7, r6, ror #32+7-10 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // eor r1, r1, r5, ror #32+7-21 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // str.w r1, [r0, #45*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................ + // bic r1, r3, r7, ror #32+0-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................... + // eor r1, r1, r6, ror #32+0-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // str.w r1, [r0, #17*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................. + // bic r1, r4, r3, ror #22-0 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // eor r1, r1, r7, ror #22-7 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // str.w r1, [r0, #38*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................................... + // bic r5, r5, r4, ror #32+21-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // ldr r1, [sp, #5*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // ldr r4, [r1, #20] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #32-21 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // eor.w r14, r4, r3 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // ldr.w r3, [r0, #39*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................................... + // ldr.w r1, [r0, #18*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................................... + // ldr.w r5, [r0, #49*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................................... + // ldr r11, [r0, #28*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................ + // ldr r12, [r0, #8*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // str.w r14, [r0, #1*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // eor r3, r3, r1, ror #22-10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................................... + // eor r3, r3, r5, ror #22-3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // eor r3, r3, r11, ror #22-18 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................................... + // eor r3, r3, r12, ror #32+22-28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // ldr.w r7, [r0, #22*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................................... + // ldr.w r1, [r0, #3*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................................. + // ldr.w r5, [r0, #33*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // ldr r11, [r0, #12*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................... + // ldr r12, [r0, #43*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // eor r7, r7, r1, ror #32+10-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................................... + // eor r7, r7, r5, ror #10-4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................................... + // eor r7, r7, r11, ror #10-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................... + // eor r7, r7, r12, ror #32+10-20 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // ror r3, #32-22 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // eor r6, r3, r7, ror #32-10-1 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // ldr.w r4, [r0, #45*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................................... + // ldr.w r1, [r0, #25*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................................. + // ldr.w r5, [r0, #4*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................................ + // ldr r11, [r0, #34*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // ldr r12, [r0, #14*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................. + // str.w r6, [sp, #0*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // eor r4, r4, r1, ror #32+7-30 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................... + // eor r4, r4, r5, ror #32+7-9 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................................. + // eor r4, r4, r11, ror #32+7-28 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // eor r4, r4, r12, ror #7-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // eor r6, r3, r4, ror #32-7 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // ldr.w r3, [r0, #16*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................................... + // ldr.w r1, [r0, #47*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................................. + // ldr.w r5, [r0, #27*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................... + // ldr r11, [r0, #7*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................................ + // ldr r12, [r0, #36*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................. + // str.w r6, [sp, #3*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................. + // eor r3, r3, r1, ror #32+0-14 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................ + // eor r3, r3, r5, ror #32+0-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // eor r3, r3, r11, ror #32+0-14 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // eor r3, r3, r12, ror #32+0-31 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // eor r2, r3, r7, ror #32-10 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // ldr.w r7, [r0, #0*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // ldr.w r1, [r0, #30*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................ + // ldr.w r5, [r0, #11*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // ldr r11, [r0, #41*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // ldr r12, [r0, #20*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // eor r7, r7, r1, ror #32+0-2 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // eor r7, r7, r5, ror #32+0-13 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // eor r7, r7, r11, ror #32+0-5 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // eor r7, r7, r12, ror #32+0-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // eor r10, r7, r4, ror #32-7-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // ldr.w r4, [r0, #17*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // ldr.w r1, [r0, #46*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................................... + // ldr.w r5, [r0, #26*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // ldr r11, [r0, #6*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // ldr r12, [r0, #37*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................. + // eor r4, r4, r1, ror #32+0-14 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // eor r4, r4, r5, ror #0-0 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // eor r4, r4, r11, ror #32+0-13 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+0-31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................. + // eor r14, r4, r7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // ldr.w r7, [r0, #23*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // ldr.w r1, [r0, #2*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // ldr.w r5, [r0, #32*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // ldr r11, [r0, #13*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // ldr r12, [r0, #42*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................. + // eor r7, r7, r1, ror #32+11-23 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................................... + // eor r7, r7, r5, ror #11-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // eor r7, r7, r11, ror #11-8 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // eor r7, r7, r12, ror #32+11-21 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // ror r7, #32-11 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // eor r6, r7, r4, ror #32-1 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................... + // ldr.w r4, [r0, #38*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // ldr.w r1, [r0, #19*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................................... + // ldr.w r5, [r0, #48*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................. + // ldr r11, [r0, #29*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // ldr r12, [r0, #9*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................... + // str.w r6, [sp, #4*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................ + // eor r4, r4, r1, ror #22-10 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................................... + // eor r4, r4, r5, ror #22-3 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................... + // eor r4, r4, r11, ror #22-18 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+22-27 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // eor r8, r7, r4, ror #32-22 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // ldr.w r7, [r0, #44*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................................................... + // ldr.w r1, [r0, #24*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................ + // ldr.w r5, [r0, #5*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................................... + // ldr r11, [r0, #35*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................... + // ldr r12, [r0, #15*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................. + // str.w r8, [sp, #1*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................... + // eor r7, r7, r1, ror #32+7-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................... + // eor r7, r7, r5, ror #32+7-9 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................... + // eor r7, r7, r11, ror #32+7-28 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................ + // eor r7, r7, r12, ror #7-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // ror r7, #32-7 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................... + // eor r9, r7, r4, ror #32-22-1 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // ldr.w r4, [r0, #1*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................................................ + // ldr.w r1, [r0, #31*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................................... + // ldr.w r5, [r0, #10*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................... + // ldr r11, [r0, #40*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................................................................. + // ldr r12, [r0, #21*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................................... + // str.w r9, [sp, #2*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // eor r4, r4, r1, ror #32+0-1 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................................................................... + // eor r4, r4, r5, ror #32+0-12 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................................................ + // eor r4, r4, r11, ror #32+0-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................................... + // eor r4, r4, r12, ror #32+0-19 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................................... + // eor r11, r4, r7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................... + // eor r12, r3, r4, ror #32-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................................................. + // ldr.w r3, [r0, #16*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................................... + // ldr.w r4, [r0, #18*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................................... + // ldr.w r5, [r0, #10*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................................... + // ldr.w r6, [r0, #12*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................................... + // ldr.w r7, [r0, #14*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................................ + // eor.w 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.w r1, [r0, #10*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // bic r1, r6, r5, ror #23-2 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................ + // eor r1, r1, r4, ror #23-10 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................... + // ror r1, r1, #32-23 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // str.w r1, [r0, #12*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................................ + // bic r1, r7, r6, ror #31-23 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................................... + // eor r1, r1, r5, ror #31-2 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................................... + // ror r1, r1, #32-31 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................................... + // str.w r1, [r0, #14*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // bic r1, r3, r7, ror #32+14-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................................ + // eor r1, r1, r6, ror #32+14-23 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................... + // ror r1, r1, #32-14 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // str.w r1, [r0, #16*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................................. + // bic r1, r4, r3, ror #32+10-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // eor r1, r1, r7, ror #32+10-31 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // ror r1, r1, #32-10 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................. + // ldr.w r3, [r0, #23*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................... + // ldr.w r4, [r0, #25*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................ + // ldr.w r5, [r0, #27*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................................... + // ldr.w r6, [r0, #29*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................................... + // ldr.w r7, [r0, #21*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................................... + // str.w r1, [r0, #18*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................................. + // 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.w r1, [r0, #21*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................. + // bic r1, r6, r5, ror #32+4-12 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // eor r1, r1, r4, ror #4-3 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // ror r1, r1, #32-4 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................................... + // str.w r1, [r0, #23*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................... + // bic r1, r7, r6, ror #9-4 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................... + // eor r1, r1, r5, ror #32+9-12 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................................................. + // ror r1, r1, #32-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // str.w r1, [r0, #25*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // bic r1, r3, r7, ror #32+0-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................................ + // eor r1, r1, r6, ror #32+0-4 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................... + // str.w r1, [r0, #27*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // bic r1, r4, r3, ror #3-0 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................................................... + // eor r1, r1, r7, ror #32+3-9 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // ror r1, r1, #32-3 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................................... + // ldr r8, [sp, #0*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................................... + // ldr.w r3, [r0, #38*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................. + // ldr.w r4, [r0, #30*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................................... + // ldr.w r5, [r0, #32*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................................ + // ldr.w r6, [r0, #34*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // ldr.w r7, [r0, #36*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // str.w r1, [r0, #29*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................................... + // 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.w r1, [r0, #30*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // bic r1, r6, r5, ror #8-5 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................................ + // eor r1, r1, r4, ror #32+8-18 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................... + // ror r1, r1, #32-8 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................. + // str.w r1, [r0, #32*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................................ + // bic r1, r7, r6, ror #28-8 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................................ + // eor r1, r1, r5, ror #28-5 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // ror r1, r1, #32-28 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // str.w r1, [r0, #34*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // bic r1, r3, r7, ror #32+14-28 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................................... + // eor r1, r1, r6, ror #14-8 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................................... + // ror r1, r1, #32-14 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // str.w r1, [r0, #36*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // bic r1, r4, r3, ror #18-14 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................................... + // eor r1, r1, r7, ror #32+18-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // ror r1, r1, #32-18 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................. + // ldr.w r3, [r0, #45*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................. + // ldr.w r4, [r0, #47*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................................... + // ldr.w r5, [r0, #49*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................................... + // ldr.w r6, [r0, #41*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................... + // ldr.w r7, [r0, #43*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................... + // str.w r1, [r0, #38*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................................ + // 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.w r1, [r0, #41*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // bic r1, r6, r5, ror #20-19 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................................. + // eor r1, r1, r4, ror #32+20-27 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................................. + // ror r1, r1, #32-20 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................... + // str.w r1, [r0, #43*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................................... + // bic r1, r7, r6, ror #32+1-20 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................................ + // eor r1, r1, r5, ror #32+1-19 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // ror r1, r1, #32-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // str.w r1, [r0, #45*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // bic r1, r3, r7, ror #31-1 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // eor r1, r1, r6, ror #31-20 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................................... + // ror r1, r1, #32-31 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................ + // str.w r1, [r0, #47*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................................. + // bic r1, r4, r3, ror #32+27-31 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................................... + // eor r1, r1, r7, ror #27-1 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // ror r1, r1, #32-27 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................. + // ldr r9, [sp, #3*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................. + // ldr.w r3, [r0, #0*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................. + // ldr r4, [r0, #2*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................................... + // ldr r5, [r0, #4*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................................... + // ldr r6, [r0, #6*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................................... + // ldr r7, [r0, #8*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................................... + // str.w r1, [r0, #49*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................... + // eor.w 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.w r1, [r0, #2*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // bic r1, r7, r6, ror #32+7-11 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................................ + // eor r1, r1, r5, ror #32+7-22 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................... + // ror r1, r1, #32-7 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // str.w r1, [r0, #4*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................................... + // bic r1, r3, r7, ror #32+0-7 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // eor r1, r1, r6, ror #32+0-11 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // str.w r1, [r0, #6*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // bic r1, r4, r3, ror #22-0 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................................... + // eor r1, r1, r7, ror #22-7 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // ror r1, r1, #32-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................... + // str.w r1, [r0, #8*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // bic r5, r5, r4, ror #22-22 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................................... + // ldr r1, [sp, #5*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................................. + // ldr r4, [r1, #24] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // eor r3, r3, r5, ror #32-22 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................. + // eor.w r1, r4, r3 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // ldr.w r2, [sp, #4*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................................... + // ldr.w r3, [r0, #17*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // ldr.w r4, [r0, #19*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................... + // ldr.w r5, [r0, #11*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................................... + // ldr.w r6, [r0, #13*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................................... + // ldr.w r7, [r0, #15*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................................ + // str.w r1, [r0, #0*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // eor.w 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.w r1, [r0, #11*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // bic r1, r6, r5, ror #22-1 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................................... + // eor r1, r1, r4, ror #22-10 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................................... + // ror r1, r1, #32-22 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................................... + // str.w r1, [r0, #13*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // bic r1, r7, r6, ror #30-22 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................................. + // eor r1, r1, r5, ror #30-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................................. + // ror r1, r1, #32-30 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // str.w r1, [r0, #15*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................................... + // bic r1, r3, r7, ror #32+14-30 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // eor r1, r1, r6, ror #32+14-22 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // ror r1, r1, #32-14 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................. + // str.w r1, [r0, #17*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // bic r1, r4, r3, ror #32+10-14 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................................... + // eor r1, r1, r7, ror #32+10-30 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................................... + // ror r1, r1, #32-10 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // ldr.w r3, [r0, #22*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................... + // ldr.w r4, [r0, #24*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................. + // ldr.w r5, [r0, #26*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // ldr.w r6, [r0, #28*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // ldr.w r7, [r0, #20*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................................... + // str.w r1, [r0, #19*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................................. + // eor r3, r11, r3, ror #32-10 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................................ + // eor r4, r2, r4, ror #32-31 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................... + // eor.w 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.w r1, [r0, #20*4] // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // bic r1, r6, r5, ror #32+4-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................................... + // eor r1, r1, r4, ror #4-3 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // ror r1, r1, #32-4 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................................. + // str.w r1, [r0, #22*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................. + // bic r1, r7, r6, ror #9-4 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // eor r1, r1, r5, ror #32+9-13 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // ror r1, r1, #32-9 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................. + // str.w r1, [r0, #24*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // bic r1, r3, r7, ror #32+1-9 // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................................ + // eor r1, r1, r6, ror #32+1-4 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // ror r1, r1, #32-1 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................. + // str.w r1, [r0, #26*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................ + // bic r1, r4, r3, ror #3-1 // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................. + // eor r1, r1, r7, ror #32+3-9 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................................ + // ror r1, r1, #32-3 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................................... + // ldr r8, [sp, #1*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................................... + // ldr.w r3, [r0, #39*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................................... + // ldr.w r4, [r0, #31*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................................... + // ldr.w r5, [r0, #33*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................................... + // ldr.w r6, [r0, #35*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................................... + // ldr.w r7, [r0, #37*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................................... + // str.w r1, [r0, #28*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................................... + // 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.w r1, [r0, #31*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // bic r1, r6, r5, ror #7-5 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................................... + // eor r1, r1, r4, ror #32+7-18 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................................... + // ror r1, r1, #32-7 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // str.w r1, [r0, #33*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // bic r1, r7, r6, ror #28-7 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................................... + // eor r1, r1, r5, ror #28-5 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // ror r1, r1, #32-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // str.w r1, [r0, #35*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // bic r1, r3, r7, ror #32+13-28 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // eor r1, r1, r6, ror #13-7 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................. + // ror r1, r1, #32-13 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // str.w r1, [r0, #37*4] // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................... + // bic r1, r4, r3, ror #18-13 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....................................... + // eor r1, r1, r7, ror #32+18-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................... + // ror r1, r1, #32-18 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......................... + // ldr.w r3, [r0, #44*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................................... + // ldr.w r4, [r0, #46*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................... + // ldr.w r5, [r0, #48*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................. + // ldr.w r6, [r0, #40*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............................ + // ldr.w r7, [r0, #42*4] // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............................. + // str.w r1, [r0, #39*4] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......................... + // 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.w r1, [r0, #40*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // bic r1, r6, r5, ror #21-20 // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // eor r1, r1, r4, ror #32+21-28 // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // ror r1, r1, #32-21 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // str.w r1, [r0, #42*4] // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..... + // bic r1, r7, r6, ror #32+1-21 // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // eor r1, r1, r5, ror #32+1-20 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // ror r1, r1, #32-1 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // str.w r1, [r0, #44*4] // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // bic r1, r3, r7, ror #31-1 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // eor r1, r1, r6, ror #31-21 // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // ror r1, r1, #32-31 // .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.............. + // str.w r1, [r0, #46*4] // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // bic r1, r4, r3, ror #32+28-31 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // eor r1, r1, r7, ror #28-1 // ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*..................... + // ror r1, r1, #32-28 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // ldr r9, [sp, #2*4] // ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............... + // ldr.w r3, [r0, #1*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........................ + // ldr r4, [r0, #3*4] // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................................... + // ldr r5, [r0, #5*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................. + // ldr r6, [r0, #7*4] // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...................... + // ldr r7, [r0, #9*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................................ + // str.w r1, [r0, #48*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................. + // eor.w 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.w r1, [r0, #3*4] // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*... + // bic r1, r7, r6, ror #32+7-10 // ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*....... + // eor r1, r1, r5, ror #32+7-21 // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // ror r1, r1, #32-7 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // str.w r1, [r0, #5*4] // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // bic r1, r3, r7, ror #32+0-7 // ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........... + // eor r1, r1, r6, ror #32+0-10 // .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.......... + // str.w r1, [r0, #7*4] // ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*........ + // bic r1, r4, r3, ror #22-0 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.................... + // eor r1, r1, r7, ror #22-7 // ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................... + // ror r1, r1, #32-22 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................. + // str.w r1, [r0, #9*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*................ + // bic r5, r5, r4, ror #32+21-22 // ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............ + // ldr r1, [sp, #5*4] // ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*............. + // ldr r4, [r1, #28] // ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*......... + // ldr r7, [r1, #32]! // .....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*...... + // str r1, [sp, #5*4] // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // cmp r7, #0xFF // .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.. + // eor r3, r3, r5, ror #32-21 // .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*.... + // eor.w r1, r4, r3 // ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*. + // str.w r1, [r0, #1*4] // ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................* + + slothy_end: + + bne keccak_f1600_x1_armv7m_asm_KeccakF1600_StatePermute_RoundLoop + add sp, #mSize + pop { r4 - r12, pc } + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c b/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c new file mode 100644 index 0000000000..d0b62fb12a --- /dev/null +++ b/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c @@ -0,0 +1,119 @@ +/* + * Copyright (c) The mlkem-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#include "../../../../common.h" +#include "../../../../verify.h" + +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) + +#include +#include "fips202_native_armv81m.h" + +/* + * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. + * TODO: Replace with optimized assembly implementations + * (as a part of XORBytes and ExtractBytes) + */ + +/* Extract even-indexed bits from 64-bit value into lower 32 bits */ +static uint32_t bitinterleave_even(uint64_t x) +{ + uint64_t t; + t = x & 0x5555555555555555ULL; + t = (t | (t >> 1)) & 0x3333333333333333ULL; + t = (t | (t >> 2)) & 0x0f0f0f0f0f0f0f0fULL; + t = (t | (t >> 4)) & 0x00ff00ff00ff00ffULL; + t = (t | (t >> 8)) & 0x0000ffff0000ffffULL; + t = (t | (t >> 16)) & 0x00000000ffffffffULL; + return (uint32_t)t; +} + +/* Extract odd-indexed bits from 64-bit value into lower 32 bits */ +static uint32_t bitinterleave_odd(uint64_t x) +{ + return bitinterleave_even(x >> 1); +} + +/* Spread 32-bit value across even bit positions of 64-bit result */ +static uint64_t spread_even(uint32_t x) +{ + uint64_t t = x; + t = (t | (t << 16)) & 0x0000ffff0000ffffULL; + t = (t | (t << 8)) & 0x00ff00ff00ff00ffULL; + t = (t | (t << 4)) & 0x0f0f0f0f0f0f0f0fULL; + t = (t | (t << 2)) & 0x3333333333333333ULL; + t = (t | (t << 1)) & 0x5555555555555555ULL; + return t; +} + +/* Combine even and odd 32-bit halves into interleaved 64-bit value */ +static uint64_t bitdeinterleave(uint32_t even, uint32_t odd) +{ + return spread_even(even) | (spread_even(odd) << 1); +} + +/* + * Convert normal state to bit-interleaved format. + * Input: state[25] as 64-bit lanes + * Output: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) + */ +static void interleave_state(uint32_t *state_bi, const uint64_t *state) +{ + for (size_t i = 0; i < 25; i++) + { + state_bi[i * 2 + 0] = bitinterleave_even(state[i]); + state_bi[i * 2 + 1] = bitinterleave_odd(state[i]); + } +} + +/* + * Convert bit-interleaved state back to normal format. + * Input: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) + * Output: state[25] as 64-bit lanes + */ +static void deinterleave_state(uint64_t *state, const uint32_t *state_bi) +{ + for (size_t i = 0; i < 25; i++) + { + state[i] = bitdeinterleave(state_bi[i * 2 + 0], state_bi[i * 2 + 1]); + } +} + +#define mlk_keccak_f1600_x1_native_impl \ + MLK_NAMESPACE(keccak_f1600_x1_native_impl) +int mlk_keccak_f1600_x1_native_impl(uint64_t *state) +{ + /* + * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. + * TODO: Replace with optimized assembly implementations + * (as a part of XORBytes and ExtractBytes) + */ + MLK_ALIGN uint32_t state_bi[50]; + + /* Interleave the state into bit-interleaved format */ + interleave_state(state_bi, state); + + /* Run the permutation */ + mlk_keccak_f1600_x1_armv7m_asm(state_bi, mlk_keccakf1600_round_constants); + + /* Deinterleave back to normal format */ + deinterleave_state(state, state_bi); + + mlk_zeroize(state_bi, sizeof(state_bi)); + return MLK_NATIVE_FUNC_SUCCESS; +} + +#else /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ + +MLK_EMPTY_CU(keccak_f1600_x1_armv7m) + +#endif /* !(MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_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. */ +/* Some macros are kept because they are also defined in a header. */ +/* Keep: mlk_keccak_f1600_x1_native_impl (mve.h) */ diff --git a/dev/fips202/armv81m/src/keccakf1600_round_constants.c b/dev/fips202/armv81m/src/keccakf1600_round_constants.c index 27b0ffdcc3..be16299427 100644 --- a/dev/fips202/armv81m/src/keccakf1600_round_constants.c +++ b/dev/fips202/armv81m/src/keccakf1600_round_constants.c @@ -5,7 +5,8 @@ #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if (defined(MLK_FIPS202_ARMV81M_NEED_X4) || \ + defined(MLK_FIPS202_ARMV81M_NEED_X1)) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) #include "fips202_native_armv81m.h" @@ -15,8 +16,11 @@ * Each 64-bit constant is split into two 32-bit words: * - low word contains even-indexed bits * - high word contains odd-indexed bits + * + * The final entry (0xFF) is a terminator used by the x1 implementation + * to detect the end of the round loop. */ -MLK_ALIGN const uint32_t mlk_keccakf1600_round_constants[48] = { +MLK_ALIGN const uint32_t mlk_keccakf1600_round_constants[49] = { 0x00000001, 0x00000000, /* RC0 */ 0x00000000, 0x00000089, /* RC1 */ 0x00000000, 0x8000008b, /* RC2 */ @@ -41,11 +45,13 @@ MLK_ALIGN const uint32_t mlk_keccakf1600_round_constants[48] = { 0x00000000, 0x80000088, /* RC21 */ 0x00000001, 0x00008000, /* RC22 */ 0x00000000, 0x80008082, /* RC23 */ + 0x000000FF, /* Terminator for x1 loop */ }; -#else /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#else /* (MLK_FIPS202_ARMV81M_NEED_X4 || MLK_FIPS202_ARMV81M_NEED_X1) && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ MLK_EMPTY_CU(fips202_armv81m_round_constants) -#endif /* !(MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED) \ - */ +#endif /* !((MLK_FIPS202_ARMV81M_NEED_X4 || MLK_FIPS202_ARMV81M_NEED_X1) && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED) */ diff --git a/mlkem/mlkem_native.c b/mlkem/mlkem_native.c index 797a37d810..55b8b2cec4 100644 --- a/mlkem/mlkem_native.c +++ b/mlkem/mlkem_native.c @@ -98,6 +98,7 @@ #include "src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c" #endif #if defined(MLK_SYS_ARMV81M_MVE) +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c" #include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c" #include "src/fips202/native/armv81m/src/keccakf1600_round_constants.c" #endif @@ -490,17 +491,21 @@ * Undefine macros from native code (FIPS202, Armv8.1-M) */ /* mlkem/src/fips202/native/armv81m/mve.h */ +#undef MLK_FIPS202_ARMV81M_NEED_X1 #undef MLK_FIPS202_ARMV81M_NEED_X4 #undef MLK_FIPS202_NATIVE_ARMV81M #undef MLK_FIPS202_NATIVE_ARMV81M_MVE_H +#undef MLK_USE_FIPS202_X1_NATIVE #undef MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE #undef MLK_USE_FIPS202_X4_NATIVE #undef MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE +#undef mlk_keccak_f1600_x1_native_impl #undef mlk_keccak_f1600_x4_native_impl #undef mlk_keccak_f1600_x4_state_extract_bytes #undef mlk_keccak_f1600_x4_state_xor_bytes /* mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h */ #undef MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H +#undef mlk_keccak_f1600_x1_armv7m_asm #undef mlk_keccak_f1600_x4_mve_asm #undef mlk_keccak_f1600_x4_state_extract_bytes_asm #undef mlk_keccak_f1600_x4_state_xor_bytes_asm diff --git a/mlkem/mlkem_native_asm.S b/mlkem/mlkem_native_asm.S index d6a6255691..a513bea7fe 100644 --- a/mlkem/mlkem_native_asm.S +++ b/mlkem/mlkem_native_asm.S @@ -100,6 +100,7 @@ #if defined(MLK_SYS_X86_64) #endif #if defined(MLK_SYS_ARMV81M_MVE) +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S" #include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S" #include "src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S" #include "src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S" @@ -502,17 +503,21 @@ * Undefine macros from native code (FIPS202, Armv8.1-M) */ /* mlkem/src/fips202/native/armv81m/mve.h */ +#undef MLK_FIPS202_ARMV81M_NEED_X1 #undef MLK_FIPS202_ARMV81M_NEED_X4 #undef MLK_FIPS202_NATIVE_ARMV81M #undef MLK_FIPS202_NATIVE_ARMV81M_MVE_H +#undef MLK_USE_FIPS202_X1_NATIVE #undef MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE #undef MLK_USE_FIPS202_X4_NATIVE #undef MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE +#undef mlk_keccak_f1600_x1_native_impl #undef mlk_keccak_f1600_x4_native_impl #undef mlk_keccak_f1600_x4_state_extract_bytes #undef mlk_keccak_f1600_x4_state_xor_bytes /* mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h */ #undef MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H +#undef mlk_keccak_f1600_x1_armv7m_asm #undef mlk_keccak_f1600_x4_mve_asm #undef mlk_keccak_f1600_x4_state_extract_bytes_asm #undef mlk_keccak_f1600_x4_state_xor_bytes_asm diff --git a/mlkem/src/fips202/native/armv81m/mve.h b/mlkem/src/fips202/native/armv81m/mve.h index e2f19ec24c..a9d4ffb13d 100644 --- a/mlkem/src/fips202/native/armv81m/mve.h +++ b/mlkem/src/fips202/native/armv81m/mve.h @@ -9,15 +9,27 @@ #define MLK_FIPS202_NATIVE_ARMV81M /* Part of backend API */ +#define MLK_USE_FIPS202_X1_NATIVE #define MLK_USE_FIPS202_X4_NATIVE #define MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #define MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE -/* Guard for assembly file */ +/* Guard for assembly files */ +#define MLK_FIPS202_ARMV81M_NEED_X1 #define MLK_FIPS202_ARMV81M_NEED_X4 #if !defined(__ASSEMBLER__) #include "../api.h" +#define mlk_keccak_f1600_x1_native_impl \ + MLK_NAMESPACE(keccak_f1600_x1_native_impl) +int mlk_keccak_f1600_x1_native_impl(uint64_t *state); + +MLK_MUST_CHECK_RETURN_VALUE +static MLK_INLINE int mlk_keccak_f1600_x1_native(uint64_t *state) +{ + return mlk_keccak_f1600_x1_native_impl(state); +} + /* * Native x4 permutation * State is kept in bit-interleaved format. diff --git a/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h b/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h index b8e1557ff9..0e5f09346f 100644 --- a/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +++ b/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h @@ -7,10 +7,10 @@ #include "../../../../common.h" -/* Keccak round constants in bit-interleaved form */ +/* Keccak round constants in bit-interleaved form (with terminator for x1) */ #define mlk_keccakf1600_round_constants \ MLK_NAMESPACE(keccakf1600_round_constants) -extern const uint32_t mlk_keccakf1600_round_constants[48]; +extern const uint32_t mlk_keccakf1600_round_constants[49]; #define mlk_keccak_f1600_x4_mve_asm MLK_NAMESPACE(keccak_f1600_x4_mve_asm) void mlk_keccak_f1600_x4_mve_asm(uint64_t state[100], uint64_t tmpstate[100], @@ -32,4 +32,7 @@ void mlk_keccak_f1600_x4_state_extract_bytes_asm(void *state, uint8_t *data0, unsigned offset, unsigned length); +#define mlk_keccak_f1600_x1_armv7m_asm MLK_NAMESPACE(keccak_f1600_x1_armv7m_asm) +void mlk_keccak_f1600_x1_armv7m_asm(uint32_t state[50], const uint32_t rc[49]); + #endif /* !MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H */ diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S new file mode 100644 index 0000000000..12951e3767 --- /dev/null +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S @@ -0,0 +1,1582 @@ +/* + * Copyright (c) The mlkem-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 & 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 + */ + +/* + * This file is derived from the public domain implementation @[XKCP]. + * Optimizations for Armv7-M are described in @[ADOMNICAI23]. + * Further optimizations using SLOTHY are described in @[SLOTHYM7]. + */ + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) + +/* + * WARNING: This file is auto-derived from the mlkem-native source file + * dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.S using scripts/simpasm. Do not modify it directly. + */ + +.thumb +.syntax unified + +.text +.balign 4 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_armv7m_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_armv7m_asm) + + push.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + sub sp, #0x18 + str r1, [sp, #0x14] + +slothy_start: + ldr.w r3, [r0, #0x3c] + ldr.w r11, [r0, #0x20] + ldr.w lr, [r0, #0x14] + ldr.w r10, [r0, #0x48] + ldr.w r9, [r0, #0x64] + ldr.w r8, [r0, #0x70] + ldr.w r4, [r0, #0x80] + eor.w r7, lr, r3 + ldr.w r3, [r0, #0x34] + eor.w r6, r11, r10 + ldr.w lr, [r0, #0xc] + eor.w r9, r7, r9 + ldr.w r7, [r0, #0x5c] + eor.w r11, r6, r8 + eor.w r6, lr, r3 + ldr.w r2, [r0, #0x30] + ldr.w r3, [r0, #0x28] + ldr.w r10, [r0, #0x84] + eor.w r1, r6, r7 + ldr.w r12, [r0, #0xac] + ldr.w r8, [r0] + ldr.w r7, [r0, #0x8c] + ldr.w lr, [r0, #0x8] + eor.w r5, r1, r10 + eor.w r3, r8, r3 + ldr.w r1, [r0, #0x50] + eor.w r5, r5, r12 + ldr r6, [r0, #0x78] + eor.w r10, lr, r2 + ldr.w lr, [r0, #0x40] + eor.w r12, r3, r1 + ldr.w r1, [r0, #0x98] + ldr.w r2, [r0, #0x18] + eor.w r6, r12, r6 + ldr.w r12, [r0, #0xb4] + ldr.w r3, [r0, #0x68] + eor.w r9, r9, r7 + ldr.w r7, [r0, #0x58] + eor.w lr, r2, lr + eor.w r9, r9, r12 + ldr.w r8, [r0, #0xc0] + ldr.w r12, [r0, #0x1c] + eor.w r11, r11, r1 + eor.w r10, r10, r7 + ldr.w r2, [r0, #0x44] + ldr.w r1, [r0, #0xa0] + eor.w r8, r11, r8 + eor.w r3, lr, r3 + ldr.w r11, [r0, #0x90] + eor.w r2, r12, r2 + ldr.w lr, [r0, #0x6c] + eor.w r7, r8, r5, ror #31 + eor.w r8, r8, r9 + eor.w r12, r3, r11 + ldr.w r3, [r0, #0x94] + str.w r7, [sp] + eor.w lr, r2, lr + eor.w r2, r6, r1 + ldr.w r11, [r0, #0xbc] + eor.w lr, lr, r3 + ldr.w r1, [r0, #0xb8] + ldr.w r7, [r0, #0xa8] + eor.w r4, r10, r4 + eor.w r6, lr, r11 + ldr.w r11, [r0, #0x9c] + eor.w r3, r12, r1 + ldr.w r1, [r0, #0x4c] + eor.w r7, r4, r7 + eor.w lr, r6, r2 + eor.w r10, r2, r9, ror #31 + ldr.w r12, [r0, #0xc4] + eor.w r2, r5, r3 + ldr.w r5, [r0, #0x24] + ldr.w r4, [r0, #0x38] + eor.w r6, r7, r6, ror #31 + ldr.w r9, [r0, #0x10] + eor.w r1, r5, r1 + ldr.w r5, [r0, #0x74] + str.w r6, [sp, #0x10] + ldr.w r6, [r0, #0x2c] + eor.w r4, r9, r4 + ldr.w r9, [r0, #0x4] + eor.w r1, r1, r5 + ldr.w r5, [r0, #0x54] + eor.w r9, r9, r6 + ldr.w r6, [r0, #0x60] + eor.w r1, r1, r11 + ldr.w r11, [r0, #0x7c] + eor.w r9, r9, r5 + ldr.w r5, [r0, #0x88] + eor.w r4, r4, r6 + ldr.w r6, [r0, #0xa4] + str.w r8, [sp, #0xc] + eor.w r9, r9, r11 + eor.w r5, r4, r5 + ldr.w r8, [r0, #0xb0] + ldr.w r4, [r0, #0xb4] + eor.w r11, r9, r6 + eor.w r9, r1, r12 + ldr.w r1, [r0, #0x84] + eor.w r5, r5, r8 + ldr.w r8, [r0, #0x54] + eor.w r12, r3, r11, ror #31 + eor.w r7, r9, r7 + eor.w r8, r7, r8 + eor.w r11, r11, r5 + eor.w r9, r5, r9, ror #31 + eor.w r5, r11, r1 + bic.w r3, r5, r8, ror #21 + eor.w r1, r2, r4 + ldr.w r4, [r0, #0x18] + bic.w r6, r1, r5, ror #8 + eor.w r6, r6, r8, ror #29 + eor.w r4, r9, r4 + str.w r6, [r0, #0xb4] + bic.w r6, r4, r1, ror #15 + eor.w r5, r6, r5, ror #23 + ldr.w r6, [r0, #0x48] + str.w r7, [sp, #0x4] + eor.w r6, r12, r6 + str.w r5, [r0, #0x18] + bic.w r5, r6, r4, ror #28 + eor.w r1, r5, r1, ror #11 + ldr.w r5, [r0, #0x3c] + eor.w r3, r3, r6, ror #13 + eor.w r5, r2, r5 + str.w r1, [r0, #0x48] + ldr.w r1, [r0, #0x8] + str.w r3, [r0, #0x84] + eor.w r3, r10, r1 + bic.w r6, r8, r6, ror #24 + ldr.w r8, [r0, #0x68] + eor.w r1, r9, r8 + ldr.w r8, [r0, #0xa4] + eor.w r7, r7, r8 + bic.w r8, r1, r5, ror #9 + eor.w r4, r6, r4, ror #20 + ldr.w r6, [r0, #0x9c] + eor.w r6, lr, r6 + eor.w r8, r8, r3, ror #12 + str.w r4, [r0, #0x54] + bic.w r4, r6, r1, ror #24 + str.w r8, [r0, #0xa4] + bic.w r8, r7, r6, ror #5 + str.w r9, [sp, #0x8] + eor.w r4, r4, r5, ror #1 + eor.w r1, r8, r1, ror #29 + str.w r4, [r0, #0x8] + bic.w r4, r5, r3, ror #3 + ldr.w r5, [r0, #0x58] + eor.w r5, r10, r5 + bic.w r3, r3, r7, ror #23 + eor.w r6, r3, r6, ror #28 + str.w r1, [r0, #0x3c] + str.w r6, [r0, #0x68] + ldr.w r8, [r0, #0x8c] + eor.w r1, r4, r7, ror #26 + ldr.w r7, [r0, #0xb8] + ldr.w r4, [r0, #0x28] + str.w r1, [r0, #0x9c] + eor.w r1, r2, r8 + ldr.w r8, [sp] + eor.w r3, r9, r7 + eor.w r7, r8, r4 + ldr.w r6, [r0, #0x40] + bic.w r4, r1, r5, ror #3 + eor.w r4, r4, r7, ror #22 + str.w r4, [r0, #0x58] + eor.w r4, r9, r6 + bic.w r9, r3, r1, ror #20 + ldr.w r6, [r0, #0x24] + eor.w r9, r9, r5, ror #23 + str.w r9, [r0, #0x8c] + eor.w r9, lr, r6 + bic.w r6, r9, r3, ror #18 + eor.w r1, r6, r1, ror #6 + ldr.w r6, [r0, #0x14] + str.w r1, [r0, #0xb8] + bic.w r1, r7, r9, ror #4 + bic.w r7, r5, r7, ror #19 + ldr.w r5, [r0, #0x70] + eor.w r9, r7, r9, ror #23 + str.w r9, [r0, #0x28] + ldr.w r9, [r0, #0x78] + eor.w r5, r12, r5 + eor.w r1, r1, r3, ror #22 + eor.w r7, r8, r9 + ldr.w r9, [r0, #0xac] + bic.w r3, r7, r5, ror #1 + eor.w r3, r3, r4, ror #25 + str.w r3, [r0, #0xac] + eor.w r3, r2, r6 + eor.w r6, r11, r9 + str.w r1, [r0, #0x24] + ldr r1, [r0, #0x64] + eor.w r1, r2, r1 + bic.w r9, r5, r4, ror #24 + bic.w r4, r4, r3, ror #28 + ldr r2, [r0, #0x30] + eor.w r4, r4, r6, ror #26 + str.w r4, [r0, #0x70] + eor.w r4, r10, r2 + bic.w r2, r3, r6, ror #30 + eor.w r9, r9, r3, ror #20 + ldr.w r3, [r0] + eor.w r3, r8, r3 + str.w r9, [r0, #0x78] + eor.w r2, r2, r7, ror #11 + str.w r2, [r0, #0x40] + bic.w r9, r6, r7, ror #13 + ldr.w r6, [r0, #0x94] + eor.w r7, r9, r5, ror #14 + ldr.w r9, [sp, #0xc] + bic.w r5, r1, r4 + eor.w r6, r9, r6 + bic.w r2, r6, r1, ror #21 + str.w r7, [r0, #0x14] + eor.w r2, r2, r4, ror #21 + ldr.w r7, [r0, #0xc0] + eor.w r7, r12, r7 + eor.w r5, r3, r5, ror #10 + str.w r2, [r0, #0x30] + bic.w r2, r7, r6, ror #28 + eor.w r1, r2, r1, ror #17 + str.w r1, [r0, #0x64] + bic.w r1, r3, r7, ror #25 + ldr.w r2, [sp, #0x10] + eor.w r1, r1, r6, ror #21 + str.w r1, [r0, #0x94] + bic.w r1, r4, r3, ror #22 + ldr r4, [sp, #0x14] + ldr.w r3, [r0, #0x20] + eor.w r1, r1, r7, ror #15 + ldr r6, [r4] + str.w r1, [r0, #0xc0] + eor.w r5, r6, r5 + str.w r5, [r0] + ldr.w r1, [r0, #0x6c] + ldr.w r6, [r0, #0xa0] + eor.w r5, r9, r1 + ldr.w r1, [r0, #0x98] + eor.w r7, r12, r1 + eor.w r1, r8, r6 + eor.w r3, r12, r3 + bic.w r6, r7, r5, ror #23 + bic.w r4, r1, r7, ror #5 + ldr.w r12, [r0, #0x38] + eor.w r4, r4, r5, ror #28 + str.w r4, [r0, #0x38] + ldr.w r4, [r0, #0x50] + eor.w r12, r2, r12 + eor.w r4, r8, r4 + ldr.w r8, [r0, #0xc] + eor.w r8, r11, r8 + eor.w r6, r6, r12, ror #1 + str.w r6, [r0, #0xc] + bic.w r5, r5, r12, ror #10 + ldr.w r6, [r0, #0x2c] + bic.w r12, r12, r8, ror #2 + eor.w r5, r5, r8, ror #12 + str.w r5, [r0, #0xa0] + ldr.w r5, [r0, #0x4c] + bic.w r8, r8, r1, ror #24 + eor.w r1, r12, r1, ror #26 + str.w r1, [r0, #0x98] + eor.w r8, r8, r7, ror #29 + str.w r8, [r0, #0x6c] + eor.w r5, lr, r5 + ldr.w r12, [r0, #0x80] + eor.w r1, r10, r12 + ldr.w r8, [r0, #0xb0] + eor.w r12, r2, r8 + bic.w r7, r1, r4, ror #21 + eor.w r8, r7, r5, ror #12 + str.w r8, [r0, #0x80] + bic.w r8, r12, r1, ror #8 + ldr.w r7, [r0, #0x1c] + eor.w r8, r8, r4, ror #29 + eor.w r7, r9, r7 + str.w r8, [r0, #0xb0] + bic.w r8, r4, r5, ror #23 + eor.w r4, r8, r7, ror #19 + str.w r4, [r0, #0x50] + bic.w r4, r7, r12, ror #16 + ldr.w r8, [sp, #0x4] + eor.w r1, r4, r1, ror #24 + str.w r1, [r0, #0x1c] + eor.w r4, r8, r6 + bic.w r5, r5, r7, ror #28 + eor.w r12, r5, r12, ror #12 + ldr.w r7, [r0, #0xbc] + ldr.w r6, [r0, #0x88] + ldr.w r1, [r0, #0x5c] + eor.w r6, r2, r6 + eor.w r5, r11, r1 + str.w r12, [r0, #0x4c] + bic.w r1, r5, r4, ror #19 + eor.w r7, r9, r7 + eor.w r1, r1, r3, ror #24 + str.w r1, [r0, #0x2c] + bic.w r1, r6, r5, ror #2 + ldr.w r12, [r0, #0x74] + eor.w r1, r1, r4, ror #21 + str.w r1, [r0, #0x5c] + bic.w r1, r4, r3, ror #5 + ldr.w r4, [r0, #0x44] + eor.w r4, r9, r4 + bic.w r9, r7, r6, ror #21 + eor.w r5, r9, r5, ror #23 + str.w r5, [r0, #0x88] + bic.w r3, r3, r7, ror #17 + ldr.w r9, [r0, #0x7c] + eor.w r6, r3, r6, ror #6 + str.w r6, [r0, #0xbc] + eor.w r5, r1, r7, ror #22 + ldr.w r1, [r0, #0x10] + eor.w r1, r2, r1 + ldr.w r7, [r0, #0xa8] + eor.w r12, lr, r12 + eor.w r3, r8, r9 + bic.w r9, r12, r4, ror #24 + eor.w r6, r10, r7 + eor.w r7, r9, r1, ror #21 + ldr.w r9, [r0, #0x90] + bic.w r10, r1, r6, ror #30 + str.w r5, [r0, #0x20] + str.w r7, [r0, #0x7c] + bic.w r7, r3, r12, ror #1 + eor.w r7, r7, r4, ror #25 + str.w r7, [r0, #0xa8] + eor.w r5, r10, r3, ror #10 + ldr r7, [r0, #0x60] + eor.w r7, r2, r7 + bic.w r2, r4, r1, ror #29 + bic.w r3, r6, r3, ror #12 + ldr.w r10, [sp, #0x8] + eor.w r9, r10, r9 + eor.w r10, r2, r6, ror #27 + eor.w r3, r3, r12, ror #13 + str.w r3, [r0, #0x10] + str.w r5, [r0, #0x44] + ldr.w r4, [r0, #0xc4] + eor.w r4, lr, r4 + ldr.w lr, [r0, #0x4] + eor.w r6, r8, lr + ldr.w r8, [r0, #0x34] + eor.w r2, r11, r8 + str.w r10, [r0, #0x74] + bic.w r12, r9, r7, ror #21 + ldr.w r5, [r0, #0x98] + ldr r1, [sp, #0x14] + bic.w r3, r6, r4, ror #25 + eor.w lr, r3, r9, ror #22 + str.w lr, [r0, #0x90] + eor.w lr, r12, r2, ror #20 + str.w lr, [r0, #0x34] + bic.w lr, r4, r9, ror #29 + ldr.w r11, [r1, #0x4] + ldr.w r8, [r0, #0xc0] + eor.w r12, lr, r7, ror #18 + bic.w lr, r7, r2, ror #31 + str.w r12, [r0, #0x60] + bic.w r10, r2, r6, ror #22 + ldr.w r7, [r0, #0x34] + eor.w r4, r10, r4, ror #15 + str.w r4, [r0, #0xc4] + eor.w r6, r6, lr, ror #11 + ldr.w r9, [r0, #0x48] + ldr.w lr, [r0, #0x60] + ldr.w r1, [r0, #0xb0] + ldr.w r10, [r0, #0x3c] + eor.w r3, r8, r9, ror #12 + ldr.w r4, [r0, #0x80] + ldr.w r9, [r0, #0x8] + ldr.w r12, [r0, #0x84] + eor.w r2, r11, r6 + ldr.w r11, [r0, #0x30] + ldr.w r6, [r0, #0x54] + eor.w r8, r3, r5, ror #19 + ldr.w r3, [r0, #0xc] + ldr.w r5, [r0] + eor.w r12, r11, r12, ror #20 + str.w r2, [r0, #0x4] + ldr r2, [r0, #0x58] + ldr.w r11, [r0, #0xa0] + eor.w r3, r12, r3, ror #7 + eor.w r6, r5, r6, ror #30 + ldr.w r12, [r0, #0xa8] + eor.w r5, r3, r2, ror #3 + ldr.w r2, [r0, #0x9c] + eor.w r3, r6, r11, ror #19 + ldr.w r11, [r0, #0x24] + eor.w r6, r5, r12, ror #22 + ldr.w r5, [r0, #0xc4] + ldr.w r12, [r0, #0x74] + eor.w r7, r7, r4, ror #20 + eor.w r11, r8, r11, ror #4 + ldr.w r8, [r0, #0x4c] + eor.w r7, r7, r9, ror #6 + ror.w r6, r6, #0x15 + ldr.w r9, [r0, #0x20] + eor.w r4, lr, r1, ror #9 + eor.w lr, r5, r8, ror #12 + ldr.w r1, [r0, #0x1c] + ldr.w r8, [r0, #0x90] + eor.w r4, r4, r10, ror #30 + ldr r5, [r0, #0x28] + eor.w r2, lr, r2, ror #19 + eor.w r8, r8, r1, ror #18 + eor.w r9, r2, r9, ror #4 + ldr.w r2, [r0, #0x68] + eor.w r10, r3, r5, ror #27 + ldr.w r1, [r0, #0x88] + ldr.w lr, [r0, #0xbc] + eor.w r12, r11, r12, ror #26 + eor.w r5, r8, r2 + ldr r3, [r0, #0x70] + ldr.w r8, [r0, #0x40] + eor.w r2, r4, r1, ror #11 + ldr.w r11, [r0, #0x18] + eor.w lr, r5, lr, ror #19 + eor.w r4, r9, r3, ror #27 + ldr.w r3, [r0, #0x94] + ldr r1, [r0, #0x14] + eor.w r5, lr, r8, ror #1 + ldr.w r9, [r0, #0x6c] + eor.w r3, r3, r11, ror #18 + ldr.w lr, [r0, #0x5c] + eor.w r8, r6, r4, ror #10 + ror.w r12, r12, #0xa + eor.w r2, r2, r1, ror #6 + eor.w r11, r3, r9, ror #31 + ldr r3, [r0, #0x7c] + eor.w lr, r7, lr, ror #3 + ldr.w r1, [r0, #0xac] + eor.w r9, r12, r2, ror #25 + str.w r9, [sp, #0xc] + ldr.w r9, [r0, #0xb8] + eor.w r10, r10, r3, ror #12 + eor.w r1, lr, r1, ror #22 + ldr.w r7, [r0, #0x64] + eor.w lr, r5, r10 + eor.w r6, r6, r5, ror #31 + eor.w r5, r11, r9, ror #18 + ldr r3, [r0, #0x44] + ldr.w r11, [r0, #0xb4] + eor.w r9, r12, r1, ror #21 + eor.w r10, r10, r2, ror #24 + str.w r9, [sp] + eor.w r3, r5, r3, ror #1 + ldr.w r12, [r0, #0x10] + str.w r6, [sp, #0x10] + ldr.w r5, [r0, #0x38] + eor.w r7, r7, r11, ror #8 + ldr.w r6, [r0, #0xa4] + eor.w r2, r3, r1, ror #22 + ldr.w r11, [r0, #0x8c] + ldr.w r1, [r0, #0x50] + eor.w r5, r7, r5, ror #30 + ldr.w r9, [r0, #0x4] + eor.w r7, r8, r6, ror #20 + ldr.w r6, [r0, #0xa4] + eor.w r1, r9, r1, ror #31 + str.w r8, [sp, #0x4] + eor.w r11, r5, r11, ror #11 + ldr r5, [r0, #0x2c] + eor.w r9, r1, r6, ror #20 + ldr.w r6, [r0, #0x14] + eor.w r1, r11, r12, ror #6 + ldr.w r11, [r0, #0x78] + eor.w r9, r9, r5, ror #27 + ldr.w r12, [r0, #0x78] + eor.w r6, r2, r6, ror #31 + ror.w r1, r1, #0x19 + eor.w r11, r9, r11, ror #13 + ldr.w r5, [r0, #0x5c] + eor.w r9, r1, r4, ror #9 + eor.w r4, r8, r12, ror #13 + ldr.w r8, [r0, #0x48] + eor.w r12, r3, r11, ror #31 + eor.w r11, r11, r1 + eor.w r3, r11, r5, ror #25 + ldr.w r5, [r0, #0x94] + eor.w r8, r12, r8, ror #22 + eor.w r1, r9, r5 + bic.w r5, r1, r6, ror #15 + eor.w r5, r5, r3, ror #23 + str.w r5, [r0, #0x94] + bic.w r5, r7, r8, ror #24 + eor.w r5, r5, r1, ror #20 + str.w r5, [r0, #0xa4] + bic.w r1, r8, r1, ror #28 + eor.w r5, r1, r6, ror #11 + str.w r5, [r0, #0x48] + bic.w r5, r6, r3, ror #8 + ldr.w r1, [r0, #0x20] + eor.w r6, r5, r7, ror #29 + ldr.w r5, [r0, #0xb0] + bic.w r3, r3, r7, ror #21 + ldr.w r7, [r0, #0x6c] + str.w r6, [r0, #0x14] + eor.w r6, lr, r1, ror #14 + eor.w r1, r2, r5, ror #2 + ldr.w r5, [r0, #0x30] + eor.w r7, r9, r7, ror #31 + eor.w r3, r3, r8, ror #13 + str.w r3, [r0, #0x5c] + eor.w r3, r10, r5, ror #21 + ldr.w r8, [r0, #0x88] + bic.w r5, r6, r7, ror #24 + eor.w r5, r5, r1, ror #1 + str.w r5, [r0, #0x30] + bic.w r5, r4, r6, ror #5 + eor.w r5, r5, r7, ror #29 + str.w r5, [r0, #0xb0] + bic.w r7, r7, r1, ror #9 + str.w r9, [sp, #0x8] + bic.w r1, r1, r3, ror #3 + ldr.w r5, [r0, #0xc4] + eor.w r7, r7, r3, ror #12 + str.w r7, [r0, #0x78] + bic.w r7, r3, r4, ror #23 + eor.w r3, lr, r5, ror #10 + eor.w r1, r1, r4, ror #26 + ldr.w r4, [r0, #0xc] + eor.w r7, r7, r6, ror #28 + str.w r7, [r0, #0x6c] + ldr.w r7, [r0, #0x44] + str.w r1, [r0, #0x20] + eor.w r6, r2, r8, ror #4 + eor.w r5, r10, r4, ror #28 + ldr.w r4, [r0, #0x54] + eor.w r1, r9, r7, ror #1 + ldr.w r8, [sp] + eor.w r7, r8, r4, ror #30 + bic.w r4, r1, r6, ror #20 + eor.w r4, r4, r5, ror #23 + str.w r4, [r0, #0x88] + bic.w r4, r5, r7, ror #19 + eor.w r4, r4, r3, ror #23 + str.w r4, [r0, #0x54] + ldr.w r4, [r0, #0x18] + bic.w r5, r6, r5, ror #3 + eor.w r5, r5, r7, ror #22 + str.w r5, [r0, #0xc] + bic.w r5, r3, r1, ror #18 + eor.w r5, r5, r6, ror #6 + str.w r5, [r0, #0x44] + bic.w r7, r7, r3, ror #4 + ldr.w r3, [r0, #0xac] + eor.w r5, r9, r4, ror #18 + ldr.w r9, [r0, #0x28] + ldr.w r4, [r0, #0x98] + eor.w r1, r7, r1, ror #22 + eor.w r7, r11, r3, ror #12 + ldr.w r3, [r0, #0x60] + eor.w r6, r8, r9, ror #27 + str.w r1, [r0, #0xc4] + eor.w r4, r12, r4, ror #29 + eor.w r3, r2, r3, ror #25 + bic.w r1, r7, r6, ror #13 + bic.w r9, r6, r4, ror #1 + eor.w r9, r9, r5, ror #25 + str.w r9, [r0, #0xac] + eor.w r9, r1, r4, ror #14 + str.w r9, [r0, #0x60] + bic.w r1, r4, r5, ror #24 + ldr.w r9, [r0, #0x3c] + eor.w r1, r1, r3, ror #20 + str.w r1, [r0, #0x28] + ldr.w r4, [r0, #0xbc] + bic.w r5, r5, r3, ror #28 + eor.w r5, r5, r7, ror #26 + str.w r5, [r0, #0x98] + bic.w r1, r3, r7, ror #30 + ldr r3, [r0, #0x74] + eor.w r6, r1, r6, ror #11 + ldr.w r5, [r0, #0xa0] + eor.w r7, r2, r9, ror #23 + ldr.w r9, [sp, #0xc] + str.w r6, [r0, #0x18] + eor.w r6, r12, r3, ror #4 + ldr.w r1, [r0] + eor.w r4, r9, r4, ror #19 + eor.w r5, r8, r5, ror #19 + eor.w r2, r8, r1 + bic.w r3, r2, r6, ror #25 + ldr.w r1, [r0, #0x84] + eor.w r3, r3, r4, ror #21 + str.w r3, [r0, #0xbc] + bic.w r3, r6, r4, ror #28 + eor.w r1, r10, r1, ror #9 + bic.w r4, r4, r7, ror #21 + eor.w r3, r3, r7, ror #17 + str.w r3, [r0, #0x3c] + eor.w r4, r4, r1, ror #21 + str.w r4, [r0, #0x84] + bic.w r3, r7, r1 + ldr.w r7, [r0, #0x10] + bic.w r1, r1, r2, ror #22 + ldr.w r4, [r0, #0x58] + eor.w r3, r2, r3, ror #10 + ldr.w r2, [sp, #0x10] + eor.w r1, r1, r6, ror #15 + eor.w r6, r10, r4, ror #24 + ldr.w r4, [r0, #0x7c] + eor.w r7, r2, r7, ror #31 + str.w r1, [r0, #0x74] + ldr r1, [sp, #0x14] + eor.w r8, r8, r4, ror #12 + ldr r4, [r1, #0x8] + ldr.w r1, [r0, #0x4c] + eor.w r4, r4, r3 + bic.w r3, r6, r5, ror #21 + str.w r4, [r0] + bic.w r4, r7, r6, ror #8 + eor.w r1, lr, r1, ror #22 + eor.w r4, r4, r5, ror #29 + str.w r4, [r0, #0x10] + ldr.w r4, [r0, #0x90] + eor.w r3, r3, r1, ror #12 + str.w r3, [r0, #0x58] + bic.w r3, r5, r1, ror #23 + eor.w r4, r9, r4 + bic.w r5, r4, r7, ror #16 + eor.w r6, r5, r6, ror #24 + str.w r6, [r0, #0x90] + eor.w r3, r3, r4, ror #19 + ldr.w r5, [r0, #0xb4] + bic.w r6, r1, r4, ror #28 + ldr.w r4, [r0, #0x34] + eor.w r6, r6, r7, ror #12 + ldr.w r7, [r0, #0x24] + str.w r6, [r0, #0x4c] + eor.w r6, r2, r5, ror #1 + eor.w r4, r11, r4, ror #22 + str.w r3, [r0, #0xa0] + eor.w r7, r12, r7, ror #14 + ldr.w r3, [r0, #0x68] + bic.w r5, r4, r8, ror #24 + bic.w r1, r6, r4, ror #2 + eor.w r3, r9, r3 + eor.w r5, r5, r7, ror #29 + eor.w r1, r1, r8, ror #26 + str.w r1, [r0, #0x24] + str.w r5, [r0, #0x68] + bic.w r5, r3, r6, ror #10 + eor.w r4, r5, r4, ror #12 + ldr.w r5, [r0, #0xc0] + str.w r4, [r0, #0x7c] + bic.w r8, r8, r7, ror #5 + bic.w r4, r7, r3, ror #23 + ldr.w r7, [r0, #0x40] + eor.w r1, r12, r5, ror #10 + eor.w r5, r8, r3, ror #28 + ldr.w r8, [r0, #0x8] + str.w r5, [r0, #0xb4] + eor.w r7, r9, r7, ror #1 + eor.w r4, r4, r6, ror #1 + ldr.w r5, [r0, #0x8c] + ldr.w r12, [r0, #0x50] + eor.w r6, r11, r8, ror #28 + bic.w r3, r1, r7, ror #17 + ldr.w r8, [sp, #0x4] + str.w r4, [r0, #0x34] + eor.w r4, r2, r5, ror #4 + eor.w r12, r8, r12, ror #31 + bic.w r5, r4, r6, ror #2 + eor.w r3, r3, r4, ror #6 + eor.w r5, r5, r12, ror #21 + str.w r5, [r0, #0x8] + bic.w r5, r7, r4, ror #21 + ldr.w r4, [r0, #0x9c] + eor.w r5, r5, r6, ror #23 + str.w r5, [r0, #0x8c] + bic.w r5, r6, r12, ror #19 + ldr.w r6, [r0, #0x2c] + eor.w r5, r5, r1, ror #24 + str.w r5, [r0, #0x50] + eor.w r5, lr, r4, ror #29 + eor.w r6, r8, r6, ror #27 + ldr.w r4, [r0, #0x1c] + str.w r3, [r0, #0x40] + bic.w r1, r12, r1, ror #5 + bic.w r12, r6, r5, ror #1 + ldr.w r3, [r0, #0xa8] + eor.w r9, r9, r4, ror #18 + ldr.w r4, [r0, #0x4] + eor.w r7, r1, r7, ror #22 + str.w r7, [r0, #0xc0] + eor.w r10, r10, r3, ror #11 + ldr.w r1, [r0, #0x64] + eor.w r3, r12, r9, ror #25 + eor.w r12, r8, r4 + str.w r3, [r0, #0xa8] + bic.w r7, r10, r6, ror #12 + eor.w r7, r7, r5, ror #13 + str.w r7, [r0, #0x64] + eor.w r8, r2, r1, ror #25 + ldr.w r1, [r0, #0xb8] + ldr r3, [r0, #0x70] + bic.w r5, r5, r9, ror #24 + bic.w r4, r8, r10, ror #30 + ldr.w r7, [r0, #0x80] + eor.w r5, r5, r8, ror #21 + str.w r5, [r0, #0x2c] + eor.w r5, r4, r6, ror #10 + ldr r6, [r0, #0x38] + eor.w r3, lr, r3, ror #5 + ldr.w lr, [r0, #0x10] + str.w r5, [r0, #0x1c] + eor.w r11, r11, r7, ror #10 + eor.w r2, r2, r6, ror #23 + ldr r6, [sp, #0x8] + bic.w r5, r11, r12, ror #22 + ldr r4, [sp, #0x14] + eor.w r5, r5, r3, ror #15 + str.w r5, [r0, #0x70] + ldr r7, [r4, #0xc] + bic.w r5, r9, r8, ror #29 + ldr.w r4, [r0, #0x48] + bic.w r9, r2, r11, ror #31 + eor.w r5, r5, r10, ror #27 + str.w r5, [r0, #0x9c] + eor.w r8, r12, r9, ror #11 + ldr.w r5, [r0, #0x74] + ldr.w r10, [r0, #0x58] + eor.w r1, r6, r1, ror #18 + eor.w r8, r7, r8 + eor.w r9, r5, r4, ror #12 + ldr.w r4, [r0, #0x24] + bic.w r5, r1, r2, ror #21 + eor.w r5, r5, r11, ror #20 + str.w r5, [r0, #0x80] + ldr.w r7, [r0, #0xc4] + bic.w r5, r3, r1, ror #29 + eor.w r2, r5, r2, ror #18 + str.w r8, [r0, #0x4] + str.w r2, [r0, #0x38] + eor.w r9, r9, r4, ror #19 + bic.w r6, r12, r3, ror #25 + ldr.w r2, [r0, #0x80] + eor.w r3, r9, r7, ror #4 + ldr.w r8, [r0, #0x30] + eor.w r9, r2, r10, ror #20 + ldr r7, [r0, #0x8] + eor.w r6, r6, r1, ror #22 + ldr.w r2, [r0, #0x38] + eor.w r8, r9, r8, ror #6 + ldr.w r10, [r0, #0xb0] + str.w r6, [r0, #0xb8] + eor.w r5, r2, lr, ror #9 + ldr.w r11, [r0, #0x8c] + eor.w r7, r8, r7, ror #3 + ldr.w r4, [r0, #0x4c] + eor.w r8, r5, r10, ror #30 + ldr.w r6, [r0, #0x70] + ldr.w r12, [r0, #0x5c] + ldr.w r9, [r0, #0x68] + ldr.w r5, [r0, #0x84] + eor.w lr, r6, r4, ror #12 + ldr.w r6, [r0, #0x34] + eor.w r12, r5, r12, ror #20 + ldr.w r1, [r0, #0x94] + ldr r5, [r0, #0x60] + ldr.w r10, [r0, #0xbc] + ldr r2, [r0, #0xc] + eor.w r12, r12, r6, ror #7 + eor.w r10, r10, r1, ror #18 + ldr.w r4, [r0, #0x3c] + eor.w r1, r8, r11, ror #11 + ldr.w r11, [r0, #0x9c] + eor.w r6, r12, r2, ror #3 + ldr.w r8, [r0, #0x14] + eor.w r9, r10, r9, ror #31 + ldr.w r10, [r0, #0x44] + eor.w r3, r3, r11, ror #26 + ldr.w r2, [r0, #0x20] + eor.w r12, r4, r8, ror #8 + ldr.w r8, [r0, #0xac] + eor.w r11, r9, r10, ror #18 + ldr.w r9, [r0, #0xb4] + ldr.w r4, [r0, #0x88] + eor.w r10, r1, r5, ror #6 + ldr.w r1, [r0, #0xc0] + eor.w r5, r7, r8, ror #22 + eor.w r12, r12, r9, ror #30 + ldr.w r9, [r0, #0xa4] + eor.w lr, lr, r2, ror #19 + ror.w r3, r3, #0xa + eor.w r2, r12, r4, ror #11 + ldr.w r12, [r0] + ldr.w r8, [r0, #0x7c] + eor.w r7, r3, r10, ror #25 + ldr.w r4, [r0, #0xa8] + eor.w r9, r12, r9, ror #30 + eor.w r1, lr, r1, ror #4 + ldr.w r12, [r0, #0x54] + eor.w lr, r9, r8, ror #19 + ldr.w r9, [r0, #0x98] + eor.w r6, r6, r4, ror #22 + ldr.w r8, [r0, #0x2c] + eor.w lr, lr, r12, ror #27 + ldr.w r4, [r0, #0x90] + eor.w r1, r1, r9, ror #27 + ldr.w r9, [r0, #0xb8] + eor.w lr, lr, r8, ror #12 + ldr.w r12, [r0, #0x6c] + eor.w r4, r9, r4, ror #18 + ldr.w r9, [r0, #0x1c] + ldr.w r8, [r0, #0x64] + eor.w r10, lr, r10, ror #24 + str.w r7, [sp, #0xc] + eor.w r4, r4, r12 + eor.w r7, r3, r5, ror #21 + ldr.w r12, [r0, #0x40] + str.w r7, [sp] + eor.w r3, r11, r9, ror #1 + eor.w r7, r2, r8, ror #6 + ldr.w r9, [r0, #0x18] + eor.w r12, r4, r12, ror #19 + ldr.w r11, [r0, #0xa0] + ror.w r7, r7, #0x19 + eor.w r2, r3, r5, ror #22 + ldr.w r8, [r0, #0x4] + eor.w r5, r12, r9, ror #1 + eor.w r9, r7, r1, ror #9 + ldr.w r4, [r0, #0x78] + ror.w r6, r6, #0x15 + eor.w r11, r8, r11, ror #31 + str.w r9, [sp, #0x8] + eor.w r8, r6, r1, ror #10 + ldr.w r1, [r0, #0x10] + eor.w r6, r6, r5, ror #31 + eor.w lr, r5, lr + ldr.w r12, [r0, #0x28] + eor.w r4, r11, r4, ror #20 + ldr.w r11, [r0, #0x50] + ldr.w r5, [r0, #0x28] + eor.w r1, r2, r1, ror #2 + str.w r6, [sp, #0x10] + eor.w r4, r4, r11, ror #27 + ldr.w r11, [r0, #0x78] + eor.w r5, r8, r5, ror #13 + ldr.w r6, [r0, #0x84] + eor.w r12, r4, r12, ror #13 + str.w r8, [sp, #0x4] + eor.w r4, r8, r11, ror #20 + ldr.w r8, [r0, #0x68] + eor.w r11, r12, r7 + eor.w r6, r10, r6, ror #21 + eor.w r12, r3, r12, ror #31 + eor.w r3, r9, r8, ror #31 + ldr.w r8, [r0, #0xc0] + bic.w r7, r1, r6, ror #3 + eor.w r7, r7, r5, ror #26 + eor.w r8, lr, r8, ror #14 + str.w r7, [r0, #0xc0] + bic.w r7, r3, r1, ror #9 + eor.w r7, r7, r6, ror #12 + str.w r7, [r0, #0x28] + bic.w r7, r5, r8, ror #5 + eor.w r7, r7, r3, ror #29 + str.w r7, [r0, #0x10] + bic.w r7, r8, r3, ror #24 + bic.w r3, r6, r5, ror #23 + ldr.w r5, [r0, #0x48] + eor.w r6, r7, r1, ror #1 + ldr.w r7, [r0, #0x8] + eor.w r1, r3, r8, ror #28 + ldr.w r8, [r0, #0x60] + eor.w r5, r12, r5, ror #22 + str.w r6, [r0, #0x84] + eor.w r3, r11, r7, ror #25 + ldr.w r6, [r0, #0xbc] + eor.w r8, r2, r8, ror #31 + eor.w r6, r9, r6 + str.w r1, [r0, #0x68] + bic.w r7, r4, r5, ror #24 + eor.w r7, r7, r6, ror #20 + str.w r7, [r0, #0x78] + bic.w r7, r5, r6, ror #28 + ldr.w r1, [r0, #0x70] + eor.w r7, r7, r8, ror #11 + str.w r7, [r0, #0x48] + bic.w r7, r8, r3, ror #8 + bic.w r8, r6, r8, ror #15 + ldr.w r6, [r0, #0x8c] + eor.w r7, r7, r4, ror #29 + str.w r7, [r0, #0x60] + bic.w r4, r3, r4, ror #21 + ldr.w r7, [r0, #0x34] + eor.w r3, r8, r3, ror #23 + ldr.w r8, [sp] + eor.w r5, r4, r5, ror #13 + ldr.w r4, [r0, #0xa4] + str.w r5, [r0, #0x8] + eor.w r6, r2, r6, ror #4 + eor.w r5, r10, r7, ror #28 + ldr.w r7, [r0, #0x1c] + str.w r3, [r0, #0xbc] + eor.w r4, r8, r4, ror #30 + eor.w r3, lr, r1, ror #10 + eor.w r7, r9, r7, ror #1 + bic.w r1, r5, r4, ror #19 + eor.w r1, r1, r3, ror #23 + str.w r1, [r0, #0xa4] + bic.w r1, r6, r5, ror #3 + eor.w r1, r1, r4, ror #22 + str.w r1, [r0, #0x34] + bic.w r1, r7, r6, ror #20 + eor.w r1, r1, r5, ror #23 + str.w r1, [r0, #0x8c] + bic.w r4, r4, r3, ror #4 + ldr.w r1, [r0, #0x94] + bic.w r3, r3, r7, ror #18 + ldr.w r5, [r0, #0x24] + eor.w r6, r3, r6, ror #6 + str.w r6, [r0, #0x1c] + eor.w r1, r9, r1, ror #18 + ldr.w r9, [r0, #0x54] + eor.w r6, r12, r5, ror #29 + ldr.w r5, [r0, #0x38] + eor.w r3, r4, r7, ror #22 + ldr.w r4, [r0, #0xac] + str.w r3, [r0, #0x70] + eor.w r7, r8, r9, ror #27 + eor.w r9, r2, r5, ror #25 + eor.w r5, r11, r4, ror #12 + bic.w r3, r6, r1, ror #24 + eor.w r4, r3, r9, ror #20 + str.w r4, [r0, #0x54] + bic.w r4, r5, r7, ror #13 + eor.w r4, r4, r6, ror #14 + str.w r4, [r0, #0x38] + bic.w r3, r9, r5, ror #30 + ldr r4, [r0, #0x5c] + eor.w r3, r3, r7, ror #11 + str.w r3, [r0, #0x94] + bic.w r6, r7, r6, ror #1 + ldr.w r7, [r0, #0xb0] + eor.w r6, r6, r1, ror #25 + str.w r6, [r0, #0xac] + bic.w r9, r1, r9, ror #28 + ldr r1, [sp, #0x14] + eor.w r3, r10, r4, ror #9 + ldr r6, [r0, #0x40] + eor.w r7, r2, r7, ror #23 + ldr.w r2, [r0] + eor.w r9, r9, r5, ror #26 + ldr r4, [r1, #0x10] + str.w r9, [r0, #0x24] + bic.w r1, r7, r3 + eor.w r5, r8, r2 + ldr.w r9, [sp, #0xc] + eor.w r2, r5, r1, ror #10 + ldr.w r1, [r0, #0x9c] + eor.w r6, r9, r6, ror #19 + eor.w r4, r4, r2 + bic.w r2, r3, r5, ror #22 + eor.w r1, r12, r1, ror #4 + str.w r4, [r0] + bic.w r4, r6, r7, ror #21 + eor.w r3, r4, r3, ror #21 + ldr.w r4, [r0, #0x4c] + bic.w r5, r5, r1, ror #25 + str.w r3, [r0, #0x5c] + eor.w r2, r2, r1, ror #15 + str.w r2, [r0, #0x9c] + eor.w r4, lr, r4, ror #22 + ldr.w r2, [r0, #0xc] + eor.w r3, r5, r6, ror #21 + ldr.w r5, [r0, #0x7c] + str.w r3, [r0, #0x40] + bic.w r3, r1, r6, ror #28 + ldr.w r6, [r0, #0xb8] + eor.w r1, r3, r7, ror #17 + str.w r1, [r0, #0xb0] + eor.w r5, r8, r5, ror #19 + eor.w r3, r9, r6 + eor.w r6, r10, r2, ror #24 + bic.w r1, r5, r4, ror #23 + ldr.w r7, [r0, #0x64] + eor.w r1, r1, r3, ror #19 + ldr.w r2, [sp, #0x10] + str.w r1, [r0, #0x7c] + bic.w r1, r6, r5, ror #21 + eor.w r7, r2, r7, ror #31 + eor.w r1, r1, r4, ror #12 + str.w r1, [r0, #0xc] + bic.w r1, r4, r3, ror #28 + ldr.w r4, [r0, #0x2c] + eor.w r1, r1, r7, ror #12 + str.w r1, [r0, #0x4c] + bic.w r1, r3, r7, ror #16 + ldr.w r3, [r0, #0xc4] + eor.w r1, r1, r6, ror #24 + str.w r1, [r0, #0xb8] + ldr.w r1, [r0, #0x14] + bic.w r6, r7, r6, ror #8 + ldr.w r7, [r0, #0x74] + eor.w r5, r6, r5, ror #29 + eor.w r8, r8, r4, ror #12 + ldr.w r6, [r0, #0x80] + str.w r5, [r0, #0x64] + eor.w r3, r12, r3, ror #14 + ldr.w r4, [r0, #0x6c] + eor.w r5, r2, r1, ror #1 + eor.w r1, r11, r6, ror #22 + eor.w r4, r9, r4 + bic.w r6, r8, r3, ror #5 + eor.w r6, r6, r4, ror #28 + str.w r6, [r0, #0x14] + eor.w r12, r12, r7, ror #10 + ldr.w r7, [r0, #0xa8] + bic.w r6, r3, r4, ror #23 + bic.w r4, r4, r5, ror #10 + eor.w r4, r4, r1, ror #12 + str.w r4, [r0, #0x2c] + eor.w r7, r10, r7, ror #11 + ldr.w r4, [r0, #0x90] + bic.w r10, r1, r8, ror #24 + bic.w r1, r5, r1, ror #2 + eor.w r8, r1, r8, ror #26 + ldr.w r1, [r0, #0x18] + eor.w r4, r9, r4, ror #18 + str.w r8, [r0, #0xc4] + eor.w r10, r10, r3, ror #29 + ldr.w r8, [r0, #0x30] + eor.w r1, r9, r1, ror #1 + ldr.w r3, [r0, #0x88] + str.w r10, [r0, #0x6c] + eor.w r5, r6, r5, ror #1 + ldr.w r10, [r0, #0xa0] + eor.w r9, r11, r8, ror #28 + ldr.w r8, [sp, #0x4] + eor.w r6, r2, r3, ror #4 + bic.w r3, r12, r1, ror #17 + str.w r5, [r0, #0x80] + eor.w r10, r8, r10, ror #31 + eor.w r5, r3, r6, ror #6 + str.w r5, [r0, #0x18] + bic.w r5, r1, r6, ror #21 + bic.w r3, r10, r12, ror #5 + eor.w r1, r3, r1, ror #22 + ldr.w r3, [r0, #0x3c] + str.w r1, [r0, #0x74] + eor.w r5, r5, r9, ror #23 + bic.w r6, r6, r9, ror #2 + ldr.w r1, [r0, #0x50] + str.w r5, [r0, #0x88] + eor.w r6, r6, r10, ror #21 + eor.w r3, r2, r3, ror #25 + ldr.w r5, [r0, #0x20] + str.w r6, [r0, #0x30] + eor.w r6, r8, r1, ror #27 + bic.w r10, r9, r10, ror #19 + eor.w r5, lr, r5, ror #29 + eor.w r12, r10, r12, ror #24 + ldr.w r10, [r0, #0xb4] + bic.w r9, r6, r5, ror #1 + eor.w r1, r9, r4, ror #25 + str.w r1, [r0, #0xa8] + ldr.w r9, [sp, #0x8] + bic.w r1, r5, r4, ror #24 + str.w r12, [r0, #0xa0] + bic.w r12, r7, r6, ror #12 + eor.w r12, r12, r5, ror #13 + str.w r12, [r0, #0x3c] + bic.w r12, r4, r3, ror #29 + ldr r4, [r0, #0x58] + eor.w r12, r12, r7, ror #27 + str.w r12, [r0, #0x20] + eor.w r5, r2, r10, ror #23 + ldr r2, [r0, #0x44] + eor.w r1, r1, r3, ror #21 + str.w r1, [r0, #0x50] + bic.w r1, r3, r7, ror #30 + ldr.w r7, [r0, #0x9c] + eor.w r1, r1, r6, ror #10 + ldr.w r6, [r0, #0x98] + eor.w r9, r9, r2, ror #18 + ldr.w r12, [r0, #0x4] + eor.w r3, r11, r4, ror #10 + ldr.w r11, [r0, #0x48] + eor.w lr, lr, r6, ror #5 + eor.w r12, r8, r12 + bic.w r8, r9, r5, ror #21 + ldr.w r10, [r0, #0xc4] + eor.w r2, r7, r11, ror #12 + ldr.w r11, [r0, #0x20] + bic.w r7, r12, lr, ror #25 + str.w r1, [r0, #0x90] + eor.w r4, r7, r9, ror #22 + str.w r4, [r0, #0x44] + eor.w r6, r2, r10, ror #19 + ldr.w r7, [r0, #0x64] + bic.w r1, r3, r12, ror #22 + ldr.w r10, [r0, #0x70] + eor.w r2, r1, lr, ror #15 + str.w r2, [r0, #0x98] + bic.w r1, lr, r9, ror #29 + ldr.w r2, [r0, #0xc] + eor.w r8, r8, r3, ror #20 + str.w r8, [r0, #0x58] + eor.w r4, r1, r5, ror #18 + str.w r4, [r0, #0xb4] + bic.w r5, r5, r3, ror #31 + ldr r3, [r0, #0x30] + eor.w r10, r6, r10, ror #4 + ldr.w r8, [sp, #0x14] + eor.w r5, r12, r5, ror #11 + ldr.w lr, [r0, #0x58] + ldr.w r1, [r0, #0x10] + ldr.w r12, [r0, #0x84] + eor.w r9, lr, r2, ror #20 + ldr.w r2, [r8, #0x14] + eor.w r8, r10, r11, ror #26 + ldr.w lr, [r0, #0xb4] + eor.w r12, r9, r12, ror #6 + ldr.w r9, [r0, #0xac] + eor.w r10, lr, r7, ror #9 + ror.w r8, r8, #0xa + eor.w r6, r12, r3, ror #3 + eor.w r3, r2, r5 + eor.w lr, r10, r1, ror #30 + ldr.w r4, [r0, #0x88] + ldr r2, [r0, #0x38] + eor.w r7, r6, r9, ror #22 + str.w r3, [r0, #0x4] + ldr.w r11, [r0, #0x1c] + ldr.w r5, [r0, #0x6c] + ldr.w r1, [r0, #0xbc] + eor.w r6, r8, r7, ror #21 + eor.w r3, lr, r4, ror #11 + ldr.w r12, [r0, #0x90] + ldr.w r10, [r0, #0x4] + ldr.w lr, [r0, #0x8] + ldr.w r9, [r0, #0x7c] + eor.w r4, r3, r2, ror #6 + ldr.w r2, [r0, #0x40] + str.w r6, [sp] + ldr.w r3, [r0, #0x98] + ldr.w r6, [r0, #0x4c] + eor.w r1, r2, r1, ror #18 + eor.w r10, r10, r9, ror #31 + ldr.w r9, [r0, #0x5c] + eor.w r2, r1, r5, ror #31 + ldr.w r5, [r0, #0xb8] + eor.w lr, r9, lr, ror #20 + ldr.w r1, [r0, #0x80] + eor.w r6, r3, r6, ror #12 + ldr.w r3, [r0, #0x44] + eor.w r2, r2, r11, ror #18 + ldr.w r11, [r0, #0x28] + eor.w r9, r3, r5, ror #18 + ldr.w r5, [r0, #0xc0] + eor.w r8, r8, r4, ror #25 + str.w r8, [sp, #0xc] + eor.w r11, r10, r11, ror #20 + ldr.w r10, [r0, #0x68] + eor.w r6, r6, r5, ror #19 + ldr r5, [r0, #0x34] + eor.w r8, lr, r1, ror #7 + ldr.w lr, [r0, #0xa0] + eor.w r1, r9, r10 + ldr.w r3, [r0, #0xa8] + ldr.w r9, [r0, #0x60] + eor.w r8, r8, r5, ror #3 + eor.w r10, r2, r12, ror #1 + ldr r5, [r0, #0x54] + eor.w lr, r11, lr, ror #27 + ldr.w r11, [r0, #0x74] + eor.w r8, r8, r3, ror #22 + ldr.w r12, [r0, #0xb0] + ldr.w r3, [r0, #0x78] + eor.w r2, r10, r7, ror #22 + eor.w r12, r12, r9, ror #8 + ldr.w r9, [r0, #0x18] + eor.w r7, r6, r11, ror #4 + ldr.w r6, [r0, #0x14] + eor.w r11, lr, r5, ror #13 + ldr.w r5, [r0] + eor.w lr, r1, r9, ror #19 + ldr.w r9, [r0, #0x8c] + eor.w r6, r12, r6, ror #30 + ldr.w r1, [r0, #0xa4] + eor.w r12, r10, r11, ror #31 + ldr.w r10, [r0, #0x2c] + eor.w r5, r5, r3, ror #30 + ldr.w r3, [r0, #0x94] + ror.w r8, r8, #0x15 + eor.w r9, r6, r9, ror #11 + eor.w r5, r5, r10, ror #19 + ldr.w r10, [r0, #0x24] + eor.w r6, lr, r3, ror #1 + ldr r3, [r0, #0x50] + eor.w r5, r5, r1, ror #27 + ldr.w lr, [r0, #0x3c] + eor.w r1, r7, r10, ror #27 + ldr.w r7, [r0, #0x38] + eor.w r10, r5, r3, ror #12 + ldr.w r5, [r0, #0x28] + ldr.w r3, [r0, #0x48] + eor.w r9, r9, lr, ror #6 + eor.w lr, r6, r10 + eor.w r6, r8, r6, ror #31 + eor.w r7, r2, r7, ror #31 + str.w r6, [sp, #0x10] + eor.w r10, r10, r4, ror #24 + ror.w r9, r9, #0x19 + eor.w r4, r12, r3, ror #22 + ldr.w r3, [r0, #0x40] + ldr.w r6, [r0, #0x30] + eor.w r8, r8, r1, ror #10 + eor.w r11, r11, r9 + eor.w r9, r9, r1, ror #9 + str.w r8, [sp, #0x4] + eor.w r1, r11, r6, ror #25 + eor.w r3, r9, r3 + eor.w r6, r8, r5, ror #20 + bic.w r5, r3, r7, ror #15 + eor.w r5, r5, r1, ror #23 + ror.w r5, r5, #0x12 + str.w r5, [r0, #0x40] + bic.w r5, r1, r6, ror #21 + eor.w r5, r5, r4, ror #13 + bic.w r1, r7, r1, ror #8 + ror.w r5, r5, #0x9 + eor.w r1, r1, r6, ror #29 + str.w r5, [r0, #0x30] + bic.w r5, r6, r4, ror #24 + ror.w r1, r1, #0x1 + eor.w r6, r5, r3, ror #20 + bic.w r3, r4, r3, ror #28 + ldr.w r5, [r0, #0x54] + str.w r1, [r0, #0x38] + ldr.w r1, [r0, #0x74] + eor.w r3, r3, r7, ror #11 + ldr.w r7, [r0, #0x6c] + eor.w r4, r8, r5, ror #13 + ldr.w r8, [r0, #0x5c] + ror.w r3, r3, #0x16 + eor.w r1, lr, r1, ror #14 + str.w r3, [r0, #0x48] + eor.w r5, r9, r7, ror #31 + eor.w r3, r10, r8, ror #21 + ldr.w r7, [r0, #0x64] + ror.w r8, r6, #0x1e + bic.w r6, r4, r1, ror #5 + str.w r8, [r0, #0x28] + eor.w r6, r6, r5, ror #29 + eor.w r7, r2, r7, ror #2 + ror.w r6, r6, #0x17 + bic.w r8, r3, r4, ror #23 + str.w r6, [r0, #0x64] + eor.w r6, r8, r1, ror #28 + str.w r6, [r0, #0x6c] + bic.w r6, r7, r3, ror #3 + eor.w r6, r6, r4, ror #26 + ldr.w r4, [r0, #0x78] + bic.w r1, r1, r5, ror #24 + ldr.w r8, [r0, #0x80] + ror.w r6, r6, #0x1d + eor.w r1, r1, r7, ror #1 + str.w r6, [r0, #0x74] + ldr.w r6, [r0, #0x88] + bic.w r7, r5, r7, ror #9 + ror.w r1, r1, #0x1c + eor.w r5, r10, r8, ror #28 + ldr.w r8, [sp] + str.w r1, [r0, #0x5c] + eor.w r6, r2, r6, ror #4 + eor.w r4, r8, r4, ror #30 + eor.w r3, r7, r3, ror #12 + ldr.w r7, [r0, #0x98] + bic.w r1, r6, r5, ror #3 + ror.w r3, r3, #0x14 + eor.w r1, r1, r4, ror #22 + str.w r3, [r0, #0x54] + eor.w r3, lr, r7, ror #10 + ror.w r1, r1, #0x18 + ldr.w r7, [r0, #0x90] + str.w r1, [r0, #0x80] + bic.w r1, r5, r4, ror #19 + eor.w r1, r1, r3, ror #23 + eor.w r7, r9, r7, ror #1 + ror.w r1, r1, #0x1b + bic.w r4, r4, r3, ror #4 + str.w r1, [r0, #0x78] + bic.w r1, r7, r6, ror #20 + eor.w r1, r1, r5, ror #23 + ldr.w r5, [r0, #0xbc] + bic.w r3, r3, r7, ror #18 + str.w r9, [sp, #0x8] + eor.w r3, r3, r6, ror #6 + ror.w r6, r1, #0x4 + eor.w r9, r9, r5, ror #18 + ldr.w r1, [r0, #0xc4] + eor.w r4, r4, r7, ror #22 + ldr.w r7, [r0, #0xa4] + str.w r6, [r0, #0x88] + ldr.w r5, [r0, #0xb4] + ror.w r4, r4, #0xe + eor.w r1, r12, r1, ror #29 + str.w r4, [r0, #0x98] + eor.w r6, r8, r7, ror #27 + eor.w r7, r2, r5, ror #25 + ldr.w r5, [r0, #0xac] + ror.w r3, r3, #0x12 + bic.w r4, r6, r1, ror #1 + eor.w r4, r4, r9, ror #25 + str.w r3, [r0, #0x90] + bic.w r3, r1, r9, ror #24 + ror.w r4, r4, #0xc + eor.w r3, r3, r7, ror #20 + eor.w r5, r11, r5, ror #12 + str.w r4, [r0, #0xac] + ror.w r3, r3, #0xd + bic.w r4, r9, r7, ror #28 + str.w r3, [r0, #0xa4] + bic.w r3, r5, r6, ror #13 + eor.w r3, r3, r1, ror #14 + ldr r1, [r0, #0x8] + bic.w r9, r7, r5, ror #30 + ldr r7, [r0, #0x20] + eor.w r6, r9, r6, ror #11 + ror.w r3, r3, #0x1f + str.w r3, [r0, #0xb4] + ldr r3, [r0, #0x10] + eor.w r5, r4, r5, ror #26 + ldr r4, [r0, #0x18] + eor.w r1, r10, r1, ror #9 + ldr.w r9, [sp, #0xc] + eor.w r3, r2, r3, ror #23 + ror.w r2, r5, #0x5 + ror.w r5, r6, #0x1 + eor.w r6, r9, r4, ror #19 + str.w r2, [r0, #0xc4] + eor.w r2, r12, r7, ror #4 + str.w r5, [r0, #0xbc] + bic.w r4, r6, r3, ror #21 + eor.w r5, r4, r1, ror #21 + ldr.w r4, [r0] + eor.w r4, r8, r4 + bic.w r7, r2, r6, ror #28 + eor.w r7, r7, r3, ror #17 + ror.w r5, r5, #0x15 + str.w r5, [r0, #0x8] + bic.w r3, r3, r1 + ror.w r7, r7, #0x19 + str.w r7, [r0, #0x10] + bic.w r5, r4, r2, ror #25 + ldr.w r7, [r0, #0x3c] + eor.w r6, r5, r6, ror #21 + ldr.w r5, [r0, #0x2c] + bic.w r1, r1, r4, ror #22 + str.w r6, [r0, #0x18] + eor.w r1, r1, r2, ror #15 + ldr.w r2, [sp, #0x10] + eor.w r5, r8, r5, ror #19 + ldr.w r6, [r0, #0x34] + eor.w r7, r2, r7, ror #31 + ror.w r1, r1, #0xa + str.w r1, [r0, #0x20] + eor.w r3, r4, r3, ror #10 + eor.w r6, r10, r6, ror #24 + ldr r1, [sp, #0x14] + ldr r4, [r1, #0x18] + ldr.w r1, [r0, #0x4c] + eor.w r3, r4, r3 + bic.w r4, r7, r6, ror #8 + eor.w r4, r4, r5, ror #29 + str.w r3, [r0] + eor.w r1, lr, r1, ror #22 + ror.w r3, r4, #0x2 + str.w r3, [r0, #0x3c] + bic.w r3, r6, r5, ror #21 + ldr.w r4, [r0, #0x44] + eor.w r4, r9, r4 + eor.w r3, r3, r1, ror #12 + bic.w r5, r5, r1, ror #23 + ror.w r3, r3, #0xa + eor.w r5, r5, r4, ror #19 + bic.w r1, r1, r4, ror #28 + str.w r3, [r0, #0x34] + ror.w r3, r5, #0x1f + eor.w r5, r1, r7, ror #12 + bic.w r7, r4, r7, ror #16 + ldr.w r1, [r0, #0x50] + eor.w r6, r7, r6, ror #24 + ldr.w r4, [r0, #0x58] + ldr.w r7, [r0, #0x60] + str.w r3, [r0, #0x2c] + eor.w r1, r8, r1, ror #12 + ror.w r6, r6, #0x12 + ldr.w r8, [r0, #0x70] + eor.w r4, r11, r4, ror #22 + eor.w r3, r2, r7, ror #1 + ror.w r7, r5, #0x16 + str.w r7, [r0, #0x4c] + ldr.w r7, [r0, #0x68] + str.w r6, [r0, #0x44] + bic.w r5, r3, r4, ror #2 + eor.w r6, r9, r7 + eor.w r5, r5, r1, ror #26 + bic.w r7, r6, r3, ror #10 + ror.w r5, r5, #0x1d + eor.w r7, r7, r4, ror #12 + str.w r5, [r0, #0x70] + eor.w r5, r12, r8, ror #14 + ror.w r8, r7, #0x13 + bic.w r4, r4, r1, ror #24 + bic.w r7, r5, r6, ror #23 + str.w r8, [r0, #0x50] + bic.w r1, r1, r5, ror #5 + ldr.w r8, [sp, #0x4] + eor.w r7, r7, r3, ror #1 + ldr.w r3, [r0, #0x9c] + eor.w r5, r4, r5, ror #29 + ldr.w r4, [r0, #0x7c] + eor.w r1, r1, r6, ror #28 + ldr.w r6, [r0, #0x84] + eor.w r3, r12, r3, ror #10 + ror.w r5, r5, #0x1f + ror.w r1, r1, #0x17 + eor.w r12, r8, r4, ror #31 + str.w r5, [r0, #0x68] + eor.w r5, r11, r6, ror #28 + str.w r1, [r0, #0x60] + ldr.w r1, [r0, #0x8c] + ror.w r6, r7, #0x1c + bic.w r4, r5, r12, ror #19 + eor.w r4, r4, r3, ror #24 + str.w r6, [r0, #0x58] + eor.w r6, r2, r1, ror #4 + ror.w r1, r4, #0x1b + ldr.w r4, [r0, #0x94] + str.w r1, [r0, #0x7c] + bic.w r1, r6, r5, ror #2 + eor.w r1, r1, r12, ror #21 + eor.w r7, r9, r4, ror #1 + ror.w r1, r1, #0x19 + bic.w r4, r12, r3, ror #5 + bic.w r12, r7, r6, ror #21 + str.w r1, [r0, #0x84] + eor.w r5, r12, r5, ror #23 + ldr.w r1, [r0, #0xb0] + bic.w r3, r3, r7, ror #17 + ldr.w r12, [r0, #0xc] + ror.w r5, r5, #0x4 + eor.w r4, r4, r7, ror #22 + eor.w r7, r3, r6, ror #6 + str.w r5, [r0, #0x8c] + eor.w r3, r2, r1, ror #25 + ldr r6, [r0, #0x14] + ror.w r1, r7, #0x13 + ldr r5, [r0, #0x24] + eor.w r7, r11, r12, ror #10 + ldr.w r12, [r0, #0xb8] + eor.w r6, r2, r6, ror #23 + ldr.w r11, [r0, #0xa8] + eor.w r5, lr, r5, ror #5 + ldr.w r2, [r0, #0xc0] + eor.w r9, r9, r12, ror #18 + ldr.w r12, [r0, #0xa0] + eor.w r10, r10, r11, ror #11 + str.w r1, [r0, #0x94] + eor.w r11, lr, r2, ror #29 + ror.w lr, r4, #0xe + str.w lr, [r0, #0x9c] + eor.w r2, r8, r12, ror #27 + bic.w r12, r11, r9, ror #24 + ldr.w lr, [r0, #0x4] + eor.w r8, r8, lr + eor.w r12, r12, r3, ror #21 + ldr r1, [r0, #0x1c] + bic.w lr, r9, r3, ror #29 + ror.w r4, r12, #0xc + eor.w r12, lr, r10, ror #27 + bic.w lr, r7, r8, ror #22 + str.w r4, [r0, #0xa0] + eor.w lr, lr, r5, ror #15 + ror.w r12, r12, #0x4 + bic.w r4, r2, r11, ror #1 + str.w r12, [r0, #0xc0] + ror.w r12, lr, #0xa + bic.w lr, r3, r10, ror #30 + eor.w r3, lr, r2, ror #10 + str.w r12, [r0, #0x24] + bic.w lr, r10, r2, ror #12 + ldr.w r12, [sp, #0x8] + eor.w r11, lr, r11, ror #13 + ror.w lr, r3, #0x1 + eor.w r2, r12, r1, ror #18 + ldr r1, [sp, #0x14] + str.w lr, [r0, #0xb8] + bic.w r10, r6, r7, ror #31 + bic.w r12, r8, r5, ror #25 + ror.w lr, r11, #0x1f + eor.w r12, r12, r2, ror #22 + str.w lr, [r0, #0xb0] + eor.w lr, r4, r9, ror #25 + ldr r3, [r1, #0x1c] + str.w r12, [r0, #0x1c] + bic.w r4, r2, r6, ror #21 + ror.w r12, lr, #0xb + bic.w lr, r5, r2, ror #29 + eor.w lr, lr, r6, ror #18 + ldr r11, [r1, #32]! + eor.w r2, r4, r7, ror #20 + str.w r12, [r0, #0xa8] + eor.w r12, r8, r10, ror #11 + ror.w lr, lr, #0x19 + ror.w r6, r2, #0x16 + str.w r6, [r0, #0xc] + str r1, [sp, #0x14] + cmp.w r11, #0xff + eor.w r1, r3, r12 + str.w lr, [r0, #0x14] + str.w r1, [r0, #0x4] + +slothy_end: + bne.w slothy_start @ imm = #-0x1768 + add sp, #0x18 + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} + nop + +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c new file mode 100644 index 0000000000..d0b62fb12a --- /dev/null +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c @@ -0,0 +1,119 @@ +/* + * Copyright (c) The mlkem-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#include "../../../../common.h" +#include "../../../../verify.h" + +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) + +#include +#include "fips202_native_armv81m.h" + +/* + * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. + * TODO: Replace with optimized assembly implementations + * (as a part of XORBytes and ExtractBytes) + */ + +/* Extract even-indexed bits from 64-bit value into lower 32 bits */ +static uint32_t bitinterleave_even(uint64_t x) +{ + uint64_t t; + t = x & 0x5555555555555555ULL; + t = (t | (t >> 1)) & 0x3333333333333333ULL; + t = (t | (t >> 2)) & 0x0f0f0f0f0f0f0f0fULL; + t = (t | (t >> 4)) & 0x00ff00ff00ff00ffULL; + t = (t | (t >> 8)) & 0x0000ffff0000ffffULL; + t = (t | (t >> 16)) & 0x00000000ffffffffULL; + return (uint32_t)t; +} + +/* Extract odd-indexed bits from 64-bit value into lower 32 bits */ +static uint32_t bitinterleave_odd(uint64_t x) +{ + return bitinterleave_even(x >> 1); +} + +/* Spread 32-bit value across even bit positions of 64-bit result */ +static uint64_t spread_even(uint32_t x) +{ + uint64_t t = x; + t = (t | (t << 16)) & 0x0000ffff0000ffffULL; + t = (t | (t << 8)) & 0x00ff00ff00ff00ffULL; + t = (t | (t << 4)) & 0x0f0f0f0f0f0f0f0fULL; + t = (t | (t << 2)) & 0x3333333333333333ULL; + t = (t | (t << 1)) & 0x5555555555555555ULL; + return t; +} + +/* Combine even and odd 32-bit halves into interleaved 64-bit value */ +static uint64_t bitdeinterleave(uint32_t even, uint32_t odd) +{ + return spread_even(even) | (spread_even(odd) << 1); +} + +/* + * Convert normal state to bit-interleaved format. + * Input: state[25] as 64-bit lanes + * Output: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) + */ +static void interleave_state(uint32_t *state_bi, const uint64_t *state) +{ + for (size_t i = 0; i < 25; i++) + { + state_bi[i * 2 + 0] = bitinterleave_even(state[i]); + state_bi[i * 2 + 1] = bitinterleave_odd(state[i]); + } +} + +/* + * Convert bit-interleaved state back to normal format. + * Input: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) + * Output: state[25] as 64-bit lanes + */ +static void deinterleave_state(uint64_t *state, const uint32_t *state_bi) +{ + for (size_t i = 0; i < 25; i++) + { + state[i] = bitdeinterleave(state_bi[i * 2 + 0], state_bi[i * 2 + 1]); + } +} + +#define mlk_keccak_f1600_x1_native_impl \ + MLK_NAMESPACE(keccak_f1600_x1_native_impl) +int mlk_keccak_f1600_x1_native_impl(uint64_t *state) +{ + /* + * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. + * TODO: Replace with optimized assembly implementations + * (as a part of XORBytes and ExtractBytes) + */ + MLK_ALIGN uint32_t state_bi[50]; + + /* Interleave the state into bit-interleaved format */ + interleave_state(state_bi, state); + + /* Run the permutation */ + mlk_keccak_f1600_x1_armv7m_asm(state_bi, mlk_keccakf1600_round_constants); + + /* Deinterleave back to normal format */ + deinterleave_state(state, state_bi); + + mlk_zeroize(state_bi, sizeof(state_bi)); + return MLK_NATIVE_FUNC_SUCCESS; +} + +#else /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ + +MLK_EMPTY_CU(keccak_f1600_x1_armv7m) + +#endif /* !(MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_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. */ +/* Some macros are kept because they are also defined in a header. */ +/* Keep: mlk_keccak_f1600_x1_native_impl (mve.h) */ diff --git a/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c b/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c index 27b0ffdcc3..be16299427 100644 --- a/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +++ b/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c @@ -5,7 +5,8 @@ #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if (defined(MLK_FIPS202_ARMV81M_NEED_X4) || \ + defined(MLK_FIPS202_ARMV81M_NEED_X1)) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) #include "fips202_native_armv81m.h" @@ -15,8 +16,11 @@ * Each 64-bit constant is split into two 32-bit words: * - low word contains even-indexed bits * - high word contains odd-indexed bits + * + * The final entry (0xFF) is a terminator used by the x1 implementation + * to detect the end of the round loop. */ -MLK_ALIGN const uint32_t mlk_keccakf1600_round_constants[48] = { +MLK_ALIGN const uint32_t mlk_keccakf1600_round_constants[49] = { 0x00000001, 0x00000000, /* RC0 */ 0x00000000, 0x00000089, /* RC1 */ 0x00000000, 0x8000008b, /* RC2 */ @@ -41,11 +45,13 @@ MLK_ALIGN const uint32_t mlk_keccakf1600_round_constants[48] = { 0x00000000, 0x80000088, /* RC21 */ 0x00000001, 0x00008000, /* RC22 */ 0x00000000, 0x80008082, /* RC23 */ + 0x000000FF, /* Terminator for x1 loop */ }; -#else /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#else /* (MLK_FIPS202_ARMV81M_NEED_X4 || MLK_FIPS202_ARMV81M_NEED_X1) && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ MLK_EMPTY_CU(fips202_armv81m_round_constants) -#endif /* !(MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED) \ - */ +#endif /* !((MLK_FIPS202_ARMV81M_NEED_X4 || MLK_FIPS202_ARMV81M_NEED_X1) && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED) */ From 3f3e38a4e7929ac0c77ad4d80962f07a0064822a Mon Sep 17 00:00:00 2001 From: Brendan Moran Date: Fri, 6 Feb 2026 15:01:52 +0000 Subject: [PATCH 2/8] Create x1 bit interleaving functions with MVE acceleration Signed-off-by: Brendan Moran --- mlkem/src/fips202/keccakf1600.c | 30 ++- mlkem/src/fips202/native/armv81m/mve.h | 37 +++ .../armv81m/src/fips202_native_armv81m.h | 11 + .../armv81m/src/keccak_f1600_x1_armv7m.c | 119 ---------- .../armv81m/src/keccak_f1600_x1_armv81m.c | 49 ++++ .../src/state_extract_bytes_x1_mve_asm.S | 186 ++++++++++++++++ .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 210 ++++++++++++++++++ test/src/test_unit.c | 45 +++- 8 files changed, 556 insertions(+), 131 deletions(-) delete mode 100644 mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c create mode 100644 mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c create mode 100644 mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S create mode 100644 mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S diff --git a/mlkem/src/fips202/keccakf1600.c b/mlkem/src/fips202/keccakf1600.c index cf423e3a1a..8a150df158 100644 --- a/mlkem/src/fips202/keccakf1600.c +++ b/mlkem/src/fips202/keccakf1600.c @@ -33,7 +33,8 @@ #define MLK_KECCAK_NROUNDS 24 #define MLK_KECCAK_ROL(a, offset) ((a << offset) ^ (a >> (64 - offset))) -void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, +MLK_STATIC_TESTABLE +void mlk_keccakf1600_extract_bytes_c(uint64_t *state, unsigned char *data, unsigned offset, unsigned length) { unsigned i; @@ -45,6 +46,7 @@ void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, data[i] = state_ptr[i]; } #else /* MLK_SYS_LITTLE_ENDIAN */ + unsigned i; /* Portable version */ for (i = 0; i < length; i++) __loop__(invariant(i <= length)) @@ -54,7 +56,20 @@ void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, #endif /* !MLK_SYS_LITTLE_ENDIAN */ } -void mlk_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data, +void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, + unsigned offset, unsigned length) +{ +#if defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) + if(mlk_keccakf1600_extract_bytes_x1_native(state, data, offset, length) == MLK_NATIVE_FUNC_SUCCESS) + { + return; + } +#endif + mlk_keccakf1600_extract_bytes_c(state, data, offset, length); +} + +MLK_STATIC_TESTABLE +void mlk_keccakf1600_xor_bytes_c(uint64_t *state, const unsigned char *data, unsigned offset, unsigned length) { unsigned i; @@ -76,6 +91,17 @@ void mlk_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data, #endif /* !MLK_SYS_LITTLE_ENDIAN */ } +void mlk_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data, + unsigned offset, unsigned length) +{ +#if defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) + if (mlk_keccakf1600_xor_bytes_x1_native(state, data, offset, length) == MLK_NATIVE_FUNC_SUCCESS) { + return; + } +#endif + mlk_keccakf1600_xor_bytes_c(state, data, offset, length); +} + static void mlk_keccakf1600x4_extract_bytes_c(uint64_t *state, unsigned char *data0, unsigned char *data1, diff --git a/mlkem/src/fips202/native/armv81m/mve.h b/mlkem/src/fips202/native/armv81m/mve.h index a9d4ffb13d..069fa5cc81 100644 --- a/mlkem/src/fips202/native/armv81m/mve.h +++ b/mlkem/src/fips202/native/armv81m/mve.h @@ -11,6 +11,8 @@ /* Part of backend API */ #define MLK_USE_FIPS202_X1_NATIVE #define MLK_USE_FIPS202_X4_NATIVE +#define MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE +#define MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE #define MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #define MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE /* Guard for assembly files */ @@ -44,6 +46,41 @@ static MLK_INLINE int mlk_keccak_f1600_x4_native(uint64_t *state) return mlk_keccak_f1600_x4_native_impl(state); } +/* + * Native x1 XOR bytes (with on-the-fly bit interleaving) + */ +#define mlk_keccak_f1600_x1_state_xor_bytes_impl \ + MLK_NAMESPACE(mlk_keccak_f1600_x1_state_xor_bytes_impl) +void mlk_keccak_f1600_x1_state_xor_bytes_impl(uint64_t *state, const uint8_t *data, + unsigned offset, + unsigned length); + +MLK_MUST_CHECK_RETURN_VALUE +static MLK_INLINE int mlk_keccakf1600_xor_bytes_x1_native( + uint64_t *state, const uint8_t *data, unsigned offset, + unsigned length) +{ + mlk_keccak_f1600_x1_state_xor_bytes_impl(state, data, offset, length); + return MLK_NATIVE_FUNC_SUCCESS; +} + +/* + * Native x1 extract bytes (with on-the-fly bit de-interleaving) + */ +#define mlk_keccak_f1600_x1_state_extract_bytes_impl \ + MLK_NAMESPACE(mlk_keccak_f1600_x1_state_extract_bytes_impl) +void mlk_keccak_f1600_x1_state_extract_bytes_impl(uint64_t *state, uint8_t *data, + unsigned offset, + unsigned length); + +MLK_MUST_CHECK_RETURN_VALUE +static MLK_INLINE int mlk_keccakf1600_extract_bytes_x1_native( + uint64_t *state, uint8_t *data, unsigned offset, unsigned length) +{ + mlk_keccak_f1600_x1_state_extract_bytes_impl(state, data, offset, length); + return MLK_NATIVE_FUNC_SUCCESS; +} + /* * Native x4 XOR bytes (with on-the-fly bit interleaving) */ diff --git a/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h b/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h index 0e5f09346f..d38932fe77 100644 --- a/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +++ b/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h @@ -35,4 +35,15 @@ void mlk_keccak_f1600_x4_state_extract_bytes_asm(void *state, uint8_t *data0, #define mlk_keccak_f1600_x1_armv7m_asm MLK_NAMESPACE(keccak_f1600_x1_armv7m_asm) void mlk_keccak_f1600_x1_armv7m_asm(uint32_t state[50], const uint32_t rc[49]); +#define mlk_keccak_f1600_x1_state_xor_bytes_asm MLK_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +void mlk_keccak_f1600_x1_state_xor_bytes_asm( + uint64_t *state, const uint8_t *data, unsigned offset, + unsigned length); + +#define mlk_keccak_f1600_x1_state_extract_bytes_asm MLK_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +void mlk_keccak_f1600_x1_state_extract_bytes_asm( + uint64_t *state, const uint8_t *data, unsigned offset, + unsigned length); + + #endif /* !MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H */ diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c deleted file mode 100644 index d0b62fb12a..0000000000 --- a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) The mlkem-native project authors - * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - */ - -#include "../../../../common.h" -#include "../../../../verify.h" - -#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ - !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) - -#include -#include "fips202_native_armv81m.h" - -/* - * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. - * TODO: Replace with optimized assembly implementations - * (as a part of XORBytes and ExtractBytes) - */ - -/* Extract even-indexed bits from 64-bit value into lower 32 bits */ -static uint32_t bitinterleave_even(uint64_t x) -{ - uint64_t t; - t = x & 0x5555555555555555ULL; - t = (t | (t >> 1)) & 0x3333333333333333ULL; - t = (t | (t >> 2)) & 0x0f0f0f0f0f0f0f0fULL; - t = (t | (t >> 4)) & 0x00ff00ff00ff00ffULL; - t = (t | (t >> 8)) & 0x0000ffff0000ffffULL; - t = (t | (t >> 16)) & 0x00000000ffffffffULL; - return (uint32_t)t; -} - -/* Extract odd-indexed bits from 64-bit value into lower 32 bits */ -static uint32_t bitinterleave_odd(uint64_t x) -{ - return bitinterleave_even(x >> 1); -} - -/* Spread 32-bit value across even bit positions of 64-bit result */ -static uint64_t spread_even(uint32_t x) -{ - uint64_t t = x; - t = (t | (t << 16)) & 0x0000ffff0000ffffULL; - t = (t | (t << 8)) & 0x00ff00ff00ff00ffULL; - t = (t | (t << 4)) & 0x0f0f0f0f0f0f0f0fULL; - t = (t | (t << 2)) & 0x3333333333333333ULL; - t = (t | (t << 1)) & 0x5555555555555555ULL; - return t; -} - -/* Combine even and odd 32-bit halves into interleaved 64-bit value */ -static uint64_t bitdeinterleave(uint32_t even, uint32_t odd) -{ - return spread_even(even) | (spread_even(odd) << 1); -} - -/* - * Convert normal state to bit-interleaved format. - * Input: state[25] as 64-bit lanes - * Output: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) - */ -static void interleave_state(uint32_t *state_bi, const uint64_t *state) -{ - for (size_t i = 0; i < 25; i++) - { - state_bi[i * 2 + 0] = bitinterleave_even(state[i]); - state_bi[i * 2 + 1] = bitinterleave_odd(state[i]); - } -} - -/* - * Convert bit-interleaved state back to normal format. - * Input: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) - * Output: state[25] as 64-bit lanes - */ -static void deinterleave_state(uint64_t *state, const uint32_t *state_bi) -{ - for (size_t i = 0; i < 25; i++) - { - state[i] = bitdeinterleave(state_bi[i * 2 + 0], state_bi[i * 2 + 1]); - } -} - -#define mlk_keccak_f1600_x1_native_impl \ - MLK_NAMESPACE(keccak_f1600_x1_native_impl) -int mlk_keccak_f1600_x1_native_impl(uint64_t *state) -{ - /* - * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. - * TODO: Replace with optimized assembly implementations - * (as a part of XORBytes and ExtractBytes) - */ - MLK_ALIGN uint32_t state_bi[50]; - - /* Interleave the state into bit-interleaved format */ - interleave_state(state_bi, state); - - /* Run the permutation */ - mlk_keccak_f1600_x1_armv7m_asm(state_bi, mlk_keccakf1600_round_constants); - - /* Deinterleave back to normal format */ - deinterleave_state(state, state_bi); - - mlk_zeroize(state_bi, sizeof(state_bi)); - return MLK_NATIVE_FUNC_SUCCESS; -} - -#else /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ - -MLK_EMPTY_CU(keccak_f1600_x1_armv7m) - -#endif /* !(MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_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. */ -/* Some macros are kept because they are also defined in a header. */ -/* Keep: mlk_keccak_f1600_x1_native_impl (mve.h) */ diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c new file mode 100644 index 0000000000..e8832e9440 --- /dev/null +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c @@ -0,0 +1,49 @@ +/* + * Copyright (c) The mlkem-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#include "../../../../common.h" +#include "../../../../verify.h" + +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) + +#include +#include "fips202_native_armv81m.h" + +void mlk_keccak_f1600_x1_state_extract_bytes_impl( + uint64_t *state, uint8_t *data, unsigned offset, + unsigned length) +{ + mlk_keccak_f1600_x1_state_extract_bytes_asm(state, data, offset, length); +} + +void mlk_keccak_f1600_x1_state_xor_bytes_impl( + uint64_t *state, const uint8_t *data, unsigned offset, + unsigned length) +{ + mlk_keccak_f1600_x1_state_xor_bytes_asm(state, data, offset, length); +} + + +#define mlk_keccak_f1600_x1_native_impl \ + MLK_NAMESPACE(keccak_f1600_x1_native_impl) +int mlk_keccak_f1600_x1_native_impl(uint64_t *state) +{ + /* Run the permutation */ + mlk_keccak_f1600_x1_armv7m_asm((void*)state, mlk_keccakf1600_round_constants); + return MLK_NATIVE_FUNC_SUCCESS; +} + +#else /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ + +MLK_EMPTY_CU(keccak_f1600_x1_armv7m) + +#endif /* !(MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_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. */ +/* Some macros are kept because they are also defined in a header. */ +/* Keep: mlk_keccak_f1600_x1_native_impl (mve.h) */ diff --git a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S new file mode 100644 index 0000000000..ad7cdc2e31 --- /dev/null +++ b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S @@ -0,0 +1,186 @@ +/* + * 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 + */ + +// ----------------------------------------------------------------------------- +// Overview and data layout +// ----------------------------------------------------------------------------- + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +// ----------------------------------------------------------------------------- +// Deinterleave macros (adapted from x4 version) +// ----------------------------------------------------------------------------- + +// deinterleave_even: inverse of the even-bit compaction. Inflates the even +// bit-plane stored in \e back into byte positions (odd bits garbage). +.macro deinterleave_even e, tmp + // | e[31:24] | e[23:16] | e[15:8] | e[7:0] | + vsli.u32 \e, \e, #8 // | e[23:16] | e[15:8] | e[7:0] | e[7:0] | + vsli.u16 \e, \e, #4 // | e[19:12] | e[11:8,11:8] | e[3:0,7:4] | e[3:0,3:0] | + vsli.u8 \e, \e, #1 // | e[18:12,12] | e[10:8,11:8,8] | e[2:0,7:4,4] | e[2:0,3:0,0] | + vshr.u8 \tmp, \e, #3 + vsli.u8 \e, \tmp, #4 // | e[17:14,14:12,12] | e[9:8,11:10,10:8,8] | e[1:0,7:6,6:4,4] | e[1:0,3:2,2:0,0] | + vshr.u8 \tmp, \e, #5 + vsli.u8 \e, \tmp, #6 // | e[16:15,15:14,14:12,12] | e[8,11,11:10,10:8,8] | e[0,7,7:6,6:4,4] | e[0,3,3:2,2:0,0] | + // after 0x55 mask + // | e[15,14,13,12] | e[11,10,9,8] | e[7,6,5,4] | e[3,2,1,0] | +.endm + +.balign 8 +.macro from_bit_interleaving_x1 tmp + // Input: q0 = [e0, o0, e1, o1] + // Output: q0 = [d0l, d0h, d1l, d1h] + // Clobbers: r0, q1, q2, q3, q4 + + mov \tmp, #0x0F0F + vmsr p0, \tmp + // // q0.u16: [e0l, e0h, o0l, o0h, e1l, e1h, o1l, o1h] + vrev32.u16 q1, q0 // q1.u16: [e0h, e0l, o0h, o0l, e1h, e1l, o1h, o1l] + vrev64.u32 q2, q1 // q2.u16: [o0h, o0l, e0h, e0l, o1h, o1l, e1h, e1l] + vrev64.u32 q3, q0 // q3.u16: [o0l, o0h, e0l, e0h, o1l, o1h, e1l, e1h] + // construct an e vector + vpsel q0, q0, q2 // q0.u16: [e0l, e0h, e0h, e0l, e1l, e1h, e1h, e1l] + // construct an o vector + vpsel q1, q3, q1 // q0.u16: [o0l, o0h, o0h, o0l, o1l, o1h, o1l, o1h] + // expand vectors + deinterleave_even q0, q2 + deinterleave_even q1, q2 + // Zero garbage bits + mov \tmp, #0x55 + vdup.u8 q2, \tmp + vand.u32 q0, q0, q2 + vand.u32 q1, q1, q2 + // Merge vectors + vshl.u32 q1, q1, #1 + vorr q0, q1, q0 +.endm + +@ ----------------------------------------------------------------------------- +@ void keccak_f1600_x1_state_extract_bytes_asm(void *state, +@ uint8_t *d, +@ uint32_t offset, uint32_t length) +@ +@ AAPCS assumption: +@ r0=state, r1=d, r2=offset, r3=length +@ ----------------------------------------------------------------------------- + +.balign 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) + .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) + push {r4-r12, lr} + @ vpush {d8-d15} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + nB .req lr + off .req r5 + lane_offset_bytes .req r9 + mask .req r11 + // ---- Vector naming ---- + qd .req q0 + qs .req q1 + + cmp length, #0 // if len==0 done + beq keccak_f1600_x1_state_extract_bytes_asm_exit + + and off, off_full, #15 + bic lane_offset_bytes, off_full, #15 + + add state, state, lane_offset_bytes + + // ------------------------------------------------------------------------- + // PROLOGUE: if (offset_in_lane != 0) write min(len, 8-offset) from one lane + // ------------------------------------------------------------------------- + cmp off, #0 // if off==0 skip + beq keccak_f1600_x1_state_extract_bytes_asm_pre_main + // subtract the offset from the data pointer to match the predicate + subs dp, dp, off + + // r0 = n = min(length, 16-off) + rsb nB, off, #16 + cmp length, nB + it ls + movls nB, length + // length -= n + subs length, length, nB + + // Load state for the partial lane + vldrw.u32 qd, [state], #16 + // Deinterleave to bytes + from_bit_interleaving_x1 tmp + // Predicated byte store of up to 16 bytes + // calculate the predicates + // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. + // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, + // left-shift to align the active bytes within the 16-byte double-lane, and write + // it back to p0 to predicate the subsequent byte stores. + vctp.8 nB + vmrs mask, p0 + // mask << offset + lsl mask, mask, off + vmsr p0, mask + vpst + vstrbt.u8 qd, [dp], #16 + + cmp length, #0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit + +keccak_f1600_x1_state_extract_bytes_asm_pre_main: +keccak_f1600_x1_state_extract_bytes_asm_main_body: + // ------------------------------------------------------------------------- + // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame + // ------------------------------------------------------------------------- + // Calculate the number of full 8-byte lanes to process + lsr lr, length, #4 + // Low-overhead loop: wls/le use LR as the hardware loop counter + wls lr, lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_end +keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: + // Load 16B (two lanes) from state and bump pointer + vldrw.u32 qd, [state], #16 + // Deinterleave to bytes + from_bit_interleaving_x1 tmp + // Store 16B of output bytes (post-increment by 16) + vstrw.u32 qd, [dp], #16 + + // loop end, branch to loop_start while LR>0 + le lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_start +keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: + // ------------------------------------------------------------------------- + // TAIL: if length remaining <8, write it at offset_in_lane=0 + // ------------------------------------------------------------------------- + + // length &= 15 + ands length, length, #15 + cmp length, #0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit + + // Load next state lane, deinterleave, store tail + vldrw.u32 qd, [state], #16 + from_bit_interleaving_x1 tmp + // Tail via predicated byte stores like prologue, but off=0 (no base adjust) + vctp.8 length + vpst + vstrbt.u8 qd, [dp], #16 + +keccak_f1600_x1_state_extract_bytes_asm_exit: + @ vpop {d8-d15} + pop {r4-r12, pc} + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S new file mode 100644 index 0000000000..9e2e0da7e6 --- /dev/null +++ b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.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 + */ + +// ----------------------------------------------------------------------------- +// Overview and data layout +// ----------------------------------------------------------------------------- + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +// ----------------------------------------------------------------------------- +// Interleave macros +// ----------------------------------------------------------------------------- +// interleave_odds: in-place SWAR bit permutation that compacts odd-numbered +// bits of each byte/halfword/word in \t toward the upper half, preparing the +// odd bit-plane. Uses vshl + vsri insertion per the semantics above. +.macro interleave_odds t, u + vshl.u8 \u, \t, #2 // u = t[5..0],00 + vsri.u8 \t, \u, #1 // t = t[7],u[6..0] => t = t[7],t[5..0],0 + vshl.u8 \u, \t, #3 // u = t[3..0],0000 + vsri.u8 \t, \u, #2 // t = t[7..6],u[5..0] => t = t[7],t[5],t[3..0],00 + vshl.u8 \u, \t, #4 // u = t[1..0],000000 + vsri.u8 \t, \u, #3 // t = t[7],t[5],t[3],u[4..0] => t = t[7],t[5],t[3],t[1..0],000 + // t16 = t[15],t[13],t[11],t[9..8],000,t[7],t[5],t[3],t[1..0],000 + vshl.u16 \u, \t, #8 // u16 = t[7],t[5],t[3],t[1..0],000 + vsri.u8 \t, \u, #4 // t16 = t[15,13,11,9,7,5,3,1] + vshl.u32 \u, \t, #16 // u32 = t[15,13,11,9,7,5,3,1] + vsri.u16 \t, \u, #8 // u16 = t[31,29,27,25,23,21,19,17,15,13,11,9,7,5,3,1] +.endm + +// interleave_evens: in-place SWAR bit permutation that compacts even-numbered +// bits of each byte/halfword/word in \t toward the lower half, preparing the +// even bit-plane. Comments show the equivalent masks after each stage. +.macro interleave_evens t, u + vshr.u8 \u, \t, #2 // stage 1 within bytes + vsli.u8 \t, \u, #1 // t = ((t >> 1) & 0x7E7E7E7E) | (t & 0x01010101) + vshr.u8 \u, \t, #3 // stage 2 within nibbles + vsli.u8 \t, \u, #2 // t = ((t >> 2) & 0x1C1C1C1C) | (t & 0x03030303) + vshr.u8 \u, \t, #4 // stage 3 across bytes + vsli.u8 \t, \u, #3 // t = ((t >> 3) & 0x08080808) | (t & 0x07070707) + vshr.u16 \u, \t, #8 // widen within halfwords + vsli.u8 \t, \u, #4 // t = ((t >> 4) & 0x00F000F0) | (t & 0x000F000F) + vshr.u32 \u, \t, #16 // widen within words + vsli.u16 \t, \u, #8 // t = ((t >> 8) & 0x0000FF00) | (t & 0x000000FF) +.endm + +.balign 8 +.macro to_bit_interleaving_x1 tmp + // NOTE: This macro clobbers r0, q0, q1, q2, q3 + // Inputs on entry: + // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) + // Output on return: + // q0 = Even bit-plane packed (e0, o0, e1, o1) + // Vectors: || q0 || q1 || q2 || q3 || + // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || + vshl.u32 q1, q0, #0 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || + interleave_evens q1, q2 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || X | X | X | X || X | X | X | X || + vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || e0h | e0l | e1h | e1l || X | X | X | X || + vsli.u32 q1, q2, #16 // || d0l | d0h | d1l | d1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || + interleave_odds q0, q3 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || + vrev64.u32 q3, q0 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + vsri.u32 q0, q3, #16 // || X | o0 | X | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + mov \tmp, #0x0F0F + vmsr p0, \tmp + vpsel q0, q1, q0 // || e0 | o0 | e1 | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || +.endm + +@ ----------------------------------------------------------------------------- +@ void keccak_f1600_x4_state_xor_bytes_asm(void *state, +@ const uint8_t *d, +@ uint32_t offset, uint32_t length) +@ +@ AAPCS assumption: +@ r0=state, r1=d, r2=offset, r3=length +@ ----------------------------------------------------------------------------- + +.balign 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) + .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) + push {r4-r12, lr} + @ vpush {d8-d15} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + off .req r5 + lane_offset_bytes .req r6 + mask .req r7 + nB .req lr + // ---- Vector naming ---- + qd .req q0 + qs .req q1 + + + + cmp length, #0 // if len==0 done + beq keccak_f1600_x1_state_xor_bytes_asm_exit + + and off, off_full, #15 + bic lane_offset_bytes, off_full, #15 + + add state, state, lane_offset_bytes + + // ------------------------------------------------------------------------- + // PROLOGUE: if (offset_in_lane != 0) absorb min(len, 8-offset) into one lane + // ------------------------------------------------------------------------- + cmp off, #0 // if off==0 skip + beq keccak_f1600_x1_state_xor_bytes_asm_pre_main + // subtract the offset from the addresses to match the predicate + subs dp, dp, off + + // r0 = n = min(length, 8-off) + rsb nB, off, #16 + cmp length, nB + it ls + movls nB, length + // length -= n + subs length, length, nB + // calculate the predicates + // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. + // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, + // left-shift to align the active bytes within the 8-byte lane, and write + // it back to p0 to predicate the subsequent byte gathers. + vctp.8 nB + vmrs mask, p0 + // mask << offset + lsl mask, mask, off + vmsr p0, mask + // now load the partial lanes + vpst + vldrbt.u8 qd, [dp], #16 + + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp + + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + + cmp length, #0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit + +keccak_f1600_x1_state_xor_bytes_asm_pre_main: +keccak_f1600_x1_state_xor_bytes_asm_main_body: + // ------------------------------------------------------------------------- + // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame + // ------------------------------------------------------------------------- + // Calculate the number of full 8-byte lanes to process + lsr lr, length, #4 + // Low-overhead loop: wls/le use LR as the hardware loop counter + wls lr, lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_end +keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: + // Read two u32 vectors and bump per-stream pointer + vldrw.u32 qd, [dp], #16 + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp + + // XOR into state (stores post-increment state by 16) + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + + // loop end, branch to loop_start while LR>0 + le lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_start +keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: + // ------------------------------------------------------------------------- + // TAIL: if length remaining <8, absorb it at offset_in_lane=0 + // ------------------------------------------------------------------------- + + // length &= 15 + // Placeholder: if r6 == 0, done. + ands length, length, #15 + cmp length, #0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit + + // Tail via predicated byte loads like prologue, but off=0 (no base adjust) + vctp.8 length + vpst + vldrbt.u8 qd, [dp], #16 + + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp + + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + +keccak_f1600_x1_state_xor_bytes_asm_exit: + @ vpop {d8-d15} + pop {r4-r12, pc} + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/test/src/test_unit.c b/test/src/test_unit.c index b5315a877c..02d4c594b5 100644 --- a/test/src/test_unit.c +++ b/test/src/test_unit.c @@ -43,7 +43,10 @@ void mlk_polyvec_basemul_acc_montgomery_cached_c( const mlk_polyvec_mulcache *b_cache); void mlk_poly_mulcache_compute_c(mlk_poly_mulcache *x, const mlk_poly *a); void mlk_keccakf1600_permute_c(uint64_t *state); - +void mlk_keccakf1600_xor_bytes_c(uint64_t *state, const unsigned char *data, + unsigned offset, unsigned length); +void mlk_keccakf1600_extract_bytes_c(uint64_t *state, unsigned char *data, + unsigned offset, unsigned length); #define CHECK(x) \ do \ { \ @@ -638,21 +641,43 @@ static int test_native_polyvec_basemul(void) #endif /* MLK_USE_NATIVE_POLYVEC_BASEMUL_ACC_MONTGOMERY_CACHED */ #ifdef MLK_USE_FIPS202_X1_NATIVE -static int test_keccakf1600_permute(void) +#define MAX_RATE 136 +static int test_keccakf1600_xor_permute_extract(void) { - uint64_t state[MLK_KECCAK_LANES]; - uint64_t state_ref[MLK_KECCAK_LANES]; + uint64_t input[MLK_KECCAK_LANES]; + uint64_t state_native[MLK_KECCAK_LANES]; + uint64_t state_c[MLK_KECCAK_LANES]; + uint64_t output_native[MLK_KECCAK_LANES]; + uint64_t output_c[MLK_KECCAK_LANES]; + uint8_t xor_offset, xor_length, ext_offset, ext_length; int i; for (i = 0; i < NUM_RANDOM_TESTS; i++) { - randombytes((uint8_t *)state, sizeof(state)); - memcpy(state_ref, state, sizeof(state)); + randombytes(&xor_offset,1); + randombytes(&xor_length,1); + xor_offset = xor_offset % MAX_RATE; + xor_length = (uint8_t)(1 + (xor_length % (MAX_RATE - xor_offset))); + randombytes(&ext_offset, 1); + randombytes(&ext_length, 1); + ext_offset = ext_offset % MAX_RATE; + ext_length = (uint8_t)(1 + (ext_length % (MAX_RATE - ext_offset))); + + randombytes((uint8_t *)input, xor_length); + memset(state_native, 0, sizeof(state_native)); + memset(output_native, 0, sizeof(output_native)); + + mlk_keccakf1600_xor_bytes(state_native, (uint8_t *)input, xor_offset, xor_length); + mlk_keccakf1600_permute(state_native); + mlk_keccakf1600_extract_bytes(state_native, (uint8_t *)output_native, ext_offset, ext_length); - mlk_keccakf1600_permute(state); - mlk_keccakf1600_permute_c(state_ref); + memset(state_c, 0, sizeof(state_c)); + memset(output_c, 0, sizeof(output_c)); + mlk_keccakf1600_xor_bytes_c(state_c, (uint8_t *)input, xor_offset, xor_length); + mlk_keccakf1600_permute_c(state_c); + mlk_keccakf1600_extract_bytes_c(state_c, (uint8_t *)output_c, ext_offset, ext_length); - CHECK(compare_u64_arrays(state, state_ref, MLK_KECCAK_LANES, + CHECK(compare_u64_arrays(output_native, output_c, MLK_KECCAK_LANES, "keccakf1600_permute")); } @@ -759,7 +784,7 @@ static int test_backend_units(void) #endif #ifdef MLK_USE_FIPS202_X1_NATIVE - CHECK(test_keccakf1600_permute() == 0); + CHECK(test_keccakf1600_xor_permute_extract() == 0); #endif #ifdef MLK_USE_FIPS202_X4_NATIVE From 4d0a127ee5fa36ae111f726a07ff9cd069d14f55 Mon Sep 17 00:00:00 2001 From: Brendan Moran Date: Mon, 16 Feb 2026 11:29:54 +0000 Subject: [PATCH 3/8] Format files and switch from vshr to vqdmulh for better pipelining Signed-off-by: Brendan Moran --- mlkem/src/fips202/keccakf1600.c | 11 ++- mlkem/src/fips202/native/armv81m/mve.h | 26 +++--- .../armv81m/src/fips202_native_armv81m.h | 21 +++-- .../armv81m/src/keccak_f1600_x1_armv81m.c | 16 ++-- .../src/state_extract_bytes_x1_mve_asm.S | 12 +++ .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 86 +++++++++++-------- test/src/test_unit.c | 20 +++-- 7 files changed, 118 insertions(+), 74 deletions(-) diff --git a/mlkem/src/fips202/keccakf1600.c b/mlkem/src/fips202/keccakf1600.c index 8a150df158..360a21d47e 100644 --- a/mlkem/src/fips202/keccakf1600.c +++ b/mlkem/src/fips202/keccakf1600.c @@ -35,7 +35,7 @@ MLK_STATIC_TESTABLE void mlk_keccakf1600_extract_bytes_c(uint64_t *state, unsigned char *data, - unsigned offset, unsigned length) + unsigned offset, unsigned length) { unsigned i; #if defined(MLK_SYS_LITTLE_ENDIAN) @@ -60,7 +60,8 @@ void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, unsigned offset, unsigned length) { #if defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) - if(mlk_keccakf1600_extract_bytes_x1_native(state, data, offset, length) == MLK_NATIVE_FUNC_SUCCESS) + if (mlk_keccakf1600_extract_bytes_x1_native(state, data, offset, length) == + MLK_NATIVE_FUNC_SUCCESS) { return; } @@ -70,7 +71,7 @@ void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, MLK_STATIC_TESTABLE void mlk_keccakf1600_xor_bytes_c(uint64_t *state, const unsigned char *data, - unsigned offset, unsigned length) + unsigned offset, unsigned length) { unsigned i; #if defined(MLK_SYS_LITTLE_ENDIAN) @@ -95,7 +96,9 @@ void mlk_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data, unsigned offset, unsigned length) { #if defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) - if (mlk_keccakf1600_xor_bytes_x1_native(state, data, offset, length) == MLK_NATIVE_FUNC_SUCCESS) { + if (mlk_keccakf1600_xor_bytes_x1_native(state, data, offset, length) == + MLK_NATIVE_FUNC_SUCCESS) + { return; } #endif diff --git a/mlkem/src/fips202/native/armv81m/mve.h b/mlkem/src/fips202/native/armv81m/mve.h index 069fa5cc81..1de481fa73 100644 --- a/mlkem/src/fips202/native/armv81m/mve.h +++ b/mlkem/src/fips202/native/armv81m/mve.h @@ -51,14 +51,15 @@ static MLK_INLINE int mlk_keccak_f1600_x4_native(uint64_t *state) */ #define mlk_keccak_f1600_x1_state_xor_bytes_impl \ MLK_NAMESPACE(mlk_keccak_f1600_x1_state_xor_bytes_impl) -void mlk_keccak_f1600_x1_state_xor_bytes_impl(uint64_t *state, const uint8_t *data, - unsigned offset, - unsigned length); +void mlk_keccak_f1600_x1_state_xor_bytes_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length); MLK_MUST_CHECK_RETURN_VALUE -static MLK_INLINE int mlk_keccakf1600_xor_bytes_x1_native( - uint64_t *state, const uint8_t *data, unsigned offset, - unsigned length) +static MLK_INLINE int mlk_keccakf1600_xor_bytes_x1_native(uint64_t *state, + const uint8_t *data, + unsigned offset, + unsigned length) { mlk_keccak_f1600_x1_state_xor_bytes_impl(state, data, offset, length); return MLK_NATIVE_FUNC_SUCCESS; @@ -69,13 +70,16 @@ static MLK_INLINE int mlk_keccakf1600_xor_bytes_x1_native( */ #define mlk_keccak_f1600_x1_state_extract_bytes_impl \ MLK_NAMESPACE(mlk_keccak_f1600_x1_state_extract_bytes_impl) -void mlk_keccak_f1600_x1_state_extract_bytes_impl(uint64_t *state, uint8_t *data, - unsigned offset, - unsigned length); +void mlk_keccak_f1600_x1_state_extract_bytes_impl(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length); MLK_MUST_CHECK_RETURN_VALUE -static MLK_INLINE int mlk_keccakf1600_extract_bytes_x1_native( - uint64_t *state, uint8_t *data, unsigned offset, unsigned length) +static MLK_INLINE int mlk_keccakf1600_extract_bytes_x1_native(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length) { mlk_keccak_f1600_x1_state_extract_bytes_impl(state, data, offset, length); return MLK_NATIVE_FUNC_SUCCESS; diff --git a/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h b/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h index d38932fe77..8974bbe85e 100644 --- a/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +++ b/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h @@ -35,15 +35,18 @@ void mlk_keccak_f1600_x4_state_extract_bytes_asm(void *state, uint8_t *data0, #define mlk_keccak_f1600_x1_armv7m_asm MLK_NAMESPACE(keccak_f1600_x1_armv7m_asm) void mlk_keccak_f1600_x1_armv7m_asm(uint32_t state[50], const uint32_t rc[49]); -#define mlk_keccak_f1600_x1_state_xor_bytes_asm MLK_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) -void mlk_keccak_f1600_x1_state_xor_bytes_asm( - uint64_t *state, const uint8_t *data, unsigned offset, - unsigned length); - -#define mlk_keccak_f1600_x1_state_extract_bytes_asm MLK_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) -void mlk_keccak_f1600_x1_state_extract_bytes_asm( - uint64_t *state, const uint8_t *data, unsigned offset, - unsigned length); +#define mlk_keccak_f1600_x1_state_xor_bytes_asm \ + MLK_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +void mlk_keccak_f1600_x1_state_xor_bytes_asm(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length); + +#define mlk_keccak_f1600_x1_state_extract_bytes_asm \ + MLK_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +void mlk_keccak_f1600_x1_state_extract_bytes_asm(uint64_t *state, + const uint8_t *data, + unsigned offset, + unsigned length); #endif /* !MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H */ diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c index e8832e9440..d3089996b5 100644 --- a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c @@ -12,16 +12,17 @@ #include #include "fips202_native_armv81m.h" -void mlk_keccak_f1600_x1_state_extract_bytes_impl( - uint64_t *state, uint8_t *data, unsigned offset, - unsigned length) +void mlk_keccak_f1600_x1_state_extract_bytes_impl(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length) { mlk_keccak_f1600_x1_state_extract_bytes_asm(state, data, offset, length); } -void mlk_keccak_f1600_x1_state_xor_bytes_impl( - uint64_t *state, const uint8_t *data, unsigned offset, - unsigned length) +void mlk_keccak_f1600_x1_state_xor_bytes_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length) { mlk_keccak_f1600_x1_state_xor_bytes_asm(state, data, offset, length); } @@ -32,7 +33,8 @@ void mlk_keccak_f1600_x1_state_xor_bytes_impl( int mlk_keccak_f1600_x1_native_impl(uint64_t *state) { /* Run the permutation */ - mlk_keccak_f1600_x1_armv7m_asm((void*)state, mlk_keccakf1600_round_constants); + mlk_keccak_f1600_x1_armv7m_asm((void *)state, + mlk_keccakf1600_round_constants); return MLK_NATIVE_FUNC_SUCCESS; } diff --git a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S index ad7cdc2e31..1325a87b7d 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S @@ -181,6 +181,18 @@ keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: keccak_f1600_x1_state_extract_bytes_asm_exit: @ vpop {d8-d15} pop {r4-r12, pc} +/****************** REGISTER DEALLOCATIONS *******************/ + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq nB + .unreq off + .unreq lane_offset_bytes + .unreq mask + .unreq qd + .unreq qs /* simpasm: footer-start */ #endif /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S index 9e2e0da7e6..adef3f7e3e 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -22,41 +22,30 @@ // ----------------------------------------------------------------------------- // Interleave macros // ----------------------------------------------------------------------------- -// interleave_odds: in-place SWAR bit permutation that compacts odd-numbered -// bits of each byte/halfword/word in \t toward the upper half, preparing the -// odd bit-plane. Uses vshl + vsri insertion per the semantics above. -.macro interleave_odds t, u - vshl.u8 \u, \t, #2 // u = t[5..0],00 - vsri.u8 \t, \u, #1 // t = t[7],u[6..0] => t = t[7],t[5..0],0 - vshl.u8 \u, \t, #3 // u = t[3..0],0000 - vsri.u8 \t, \u, #2 // t = t[7..6],u[5..0] => t = t[7],t[5],t[3..0],00 - vshl.u8 \u, \t, #4 // u = t[1..0],000000 - vsri.u8 \t, \u, #3 // t = t[7],t[5],t[3],u[4..0] => t = t[7],t[5],t[3],t[1..0],000 - // t16 = t[15],t[13],t[11],t[9..8],000,t[7],t[5],t[3],t[1..0],000 - vshl.u16 \u, \t, #8 // u16 = t[7],t[5],t[3],t[1..0],000 - vsri.u8 \t, \u, #4 // t16 = t[15,13,11,9,7,5,3,1] - vshl.u32 \u, \t, #16 // u32 = t[15,13,11,9,7,5,3,1] - vsri.u16 \t, \u, #8 // u16 = t[31,29,27,25,23,21,19,17,15,13,11,9,7,5,3,1] -.endm // interleave_evens: in-place SWAR bit permutation that compacts even-numbered // bits of each byte/halfword/word in \t toward the lower half, preparing the // even bit-plane. Comments show the equivalent masks after each stage. -.macro interleave_evens t, u - vshr.u8 \u, \t, #2 // stage 1 within bytes +.macro interleave_evens t, u, const8, const16, const32, const128, const32768 + //vshr.u8 \u, \t, #2 // stage 1 within bytes + vqdmulh.s8 \u, \t, \const32 // shift right 2 = shift left 5+1, shift right 8; 1<<5 = 32 vsli.u8 \t, \u, #1 // t = ((t >> 1) & 0x7E7E7E7E) | (t & 0x01010101) - vshr.u8 \u, \t, #3 // stage 2 within nibbles + //vshr.u8 \u, \t, #3 // stage 2 within nibbles + vqdmulh.s8 \u, \t, \const16 // shift right 3 = shift left 5, shift right 8; 1<<5 = 32 vsli.u8 \t, \u, #2 // t = ((t >> 2) & 0x1C1C1C1C) | (t & 0x03030303) - vshr.u8 \u, \t, #4 // stage 3 across bytes + //vshr.u8 \u, \t, #4 // stage 3 across bytes + vqdmulh.s8 \u, \t, \const8 // shift right 4 = shift left 4, shift right 8; 1<<4 = 16 vsli.u8 \t, \u, #3 // t = ((t >> 3) & 0x08080808) | (t & 0x07070707) - vshr.u16 \u, \t, #8 // widen within halfwords + //vshr.u16 \u, \t, #8 // widen within halfwords + vqdmulh.s16 \u, \t, \const128 // shift right by 8 = shift left 7+1, shift right 16; 1<<7 = 128 vsli.u8 \t, \u, #4 // t = ((t >> 4) & 0x00F000F0) | (t & 0x000F000F) - vshr.u32 \u, \t, #16 // widen within words + //vshr.u32 \u, \t, #16 // widen within words + vqdmulh.s32 \u, \t, \const32768 // shift right by 16 = shift left 15+1, shift right 32; 1<<15 = 32768 vsli.u16 \t, \u, #8 // t = ((t >> 8) & 0x0000FF00) | (t & 0x000000FF) .endm .balign 8 -.macro to_bit_interleaving_x1 tmp +.macro to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 // NOTE: This macro clobbers r0, q0, q1, q2, q3 // Inputs on entry: // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) @@ -64,13 +53,15 @@ // q0 = Even bit-plane packed (e0, o0, e1, o1) // Vectors: || q0 || q1 || q2 || q3 || // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || - vshl.u32 q1, q0, #0 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || - interleave_evens q1, q2 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || X | X | X | X || X | X | X | X || + vshl.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || + interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 + // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || X | X | X | X || X | X | X | X || vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || e0h | e0l | e1h | e1l || X | X | X | X || vsli.u32 q1, q2, #16 // || d0l | d0h | d1l | d1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || - interleave_odds q0, q3 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || + interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 + // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || vrev64.u32 q3, q0 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || - vsri.u32 q0, q3, #16 // || X | o0 | X | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + vsli.u32 q0, q3, #16 // || X | o0 | X | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || mov \tmp, #0x0F0F vmsr p0, \tmp vpsel q0, q1, q0 // || e0 | o0 | e1 | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || @@ -99,13 +90,21 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) tmp .req r4 off .req r5 lane_offset_bytes .req r6 - mask .req r7 + const8 .req r8 + const16 .req r9 + const32 .req r10 + const128 .req r11 + const32768 .req r12 nB .req lr // ---- Vector naming ---- qd .req q0 qs .req q1 - + mov const8, #8 + mov const16, #16 + mov const32, #32 + mov const128, #128 + mov const32768, #32768 cmp length, #0 // if len==0 done beq keccak_f1600_x1_state_xor_bytes_asm_exit @@ -136,17 +135,17 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) // left-shift to align the active bytes within the 8-byte lane, and write // it back to p0 to predicate the subsequent byte gathers. vctp.8 nB - vmrs mask, p0 + vmrs tmp, p0 // mask << offset - lsl mask, mask, off - vmsr p0, mask + lsl tmp, tmp, off + vmsr p0, tmp // now load the partial lanes vpst vldrbt.u8 qd, [dp], #16 // Bit interleave // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 vldrw.u32 qs, [state] veor qs, qs, qd @@ -169,7 +168,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: vldrw.u32 qd, [dp], #16 // Bit interleave // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 // XOR into state (stores post-increment state by 16) vldrw.u32 qs, [state] @@ -196,7 +195,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: // Bit interleave // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 vldrw.u32 qs, [state] veor qs, qs, qd @@ -206,5 +205,22 @@ keccak_f1600_x1_state_xor_bytes_asm_exit: @ vpop {d8-d15} pop {r4-r12, pc} +/****************** REGISTER DEALLOCATIONS *******************/ + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq off + .unreq lane_offset_bytes + .unreq nB + .unreq qd + .unreq qs + .unreq const8 + .unreq const16 + .unreq const32 + .unreq const128 + .unreq const32768 + /* simpasm: footer-start */ #endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/test/src/test_unit.c b/test/src/test_unit.c index 02d4c594b5..4f47967e38 100644 --- a/test/src/test_unit.c +++ b/test/src/test_unit.c @@ -44,9 +44,9 @@ void mlk_polyvec_basemul_acc_montgomery_cached_c( void mlk_poly_mulcache_compute_c(mlk_poly_mulcache *x, const mlk_poly *a); void mlk_keccakf1600_permute_c(uint64_t *state); void mlk_keccakf1600_xor_bytes_c(uint64_t *state, const unsigned char *data, - unsigned offset, unsigned length); + unsigned offset, unsigned length); void mlk_keccakf1600_extract_bytes_c(uint64_t *state, unsigned char *data, - unsigned offset, unsigned length); + unsigned offset, unsigned length); #define CHECK(x) \ do \ { \ @@ -654,8 +654,8 @@ static int test_keccakf1600_xor_permute_extract(void) for (i = 0; i < NUM_RANDOM_TESTS; i++) { - randombytes(&xor_offset,1); - randombytes(&xor_length,1); + randombytes(&xor_offset, 1); + randombytes(&xor_length, 1); xor_offset = xor_offset % MAX_RATE; xor_length = (uint8_t)(1 + (xor_length % (MAX_RATE - xor_offset))); randombytes(&ext_offset, 1); @@ -667,15 +667,19 @@ static int test_keccakf1600_xor_permute_extract(void) memset(state_native, 0, sizeof(state_native)); memset(output_native, 0, sizeof(output_native)); - mlk_keccakf1600_xor_bytes(state_native, (uint8_t *)input, xor_offset, xor_length); + mlk_keccakf1600_xor_bytes(state_native, (uint8_t *)input, xor_offset, + xor_length); mlk_keccakf1600_permute(state_native); - mlk_keccakf1600_extract_bytes(state_native, (uint8_t *)output_native, ext_offset, ext_length); + mlk_keccakf1600_extract_bytes(state_native, (uint8_t *)output_native, + ext_offset, ext_length); memset(state_c, 0, sizeof(state_c)); memset(output_c, 0, sizeof(output_c)); - mlk_keccakf1600_xor_bytes_c(state_c, (uint8_t *)input, xor_offset, xor_length); + mlk_keccakf1600_xor_bytes_c(state_c, (uint8_t *)input, xor_offset, + xor_length); mlk_keccakf1600_permute_c(state_c); - mlk_keccakf1600_extract_bytes_c(state_c, (uint8_t *)output_c, ext_offset, ext_length); + mlk_keccakf1600_extract_bytes_c(state_c, (uint8_t *)output_c, ext_offset, + ext_length); CHECK(compare_u64_arrays(output_native, output_c, MLK_KECCAK_LANES, "keccakf1600_permute")); From 278a9ac84508192f1d10ab8ae5389b4f85fc1029 Mon Sep 17 00:00:00 2001 From: Brendan Moran Date: Mon, 16 Feb 2026 11:49:12 +0000 Subject: [PATCH 4/8] Do vqdmulh optimisation for extractbytes as well Signed-off-by: Brendan Moran --- .../src/state_extract_bytes_x1_mve_asm.S | 23 +++++++++++-------- .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 15 ++++-------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S index 1325a87b7d..859f7c18c3 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S @@ -25,21 +25,21 @@ // deinterleave_even: inverse of the even-bit compaction. Inflates the even // bit-plane stored in \e back into byte positions (odd bits garbage). -.macro deinterleave_even e, tmp +.macro deinterleave_even e, tmp, const4, const16 // | e[31:24] | e[23:16] | e[15:8] | e[7:0] | vsli.u32 \e, \e, #8 // | e[23:16] | e[15:8] | e[7:0] | e[7:0] | vsli.u16 \e, \e, #4 // | e[19:12] | e[11:8,11:8] | e[3:0,7:4] | e[3:0,3:0] | vsli.u8 \e, \e, #1 // | e[18:12,12] | e[10:8,11:8,8] | e[2:0,7:4,4] | e[2:0,3:0,0] | - vshr.u8 \tmp, \e, #3 + vqdmulh.s8 \tmp, \e, \const16 vsli.u8 \e, \tmp, #4 // | e[17:14,14:12,12] | e[9:8,11:10,10:8,8] | e[1:0,7:6,6:4,4] | e[1:0,3:2,2:0,0] | - vshr.u8 \tmp, \e, #5 + vqdmulh.s8 \tmp, \e, \const4 vsli.u8 \e, \tmp, #6 // | e[16:15,15:14,14:12,12] | e[8,11,11:10,10:8,8] | e[0,7,7:6,6:4,4] | e[0,3,3:2,2:0,0] | // after 0x55 mask // | e[15,14,13,12] | e[11,10,9,8] | e[7,6,5,4] | e[3,2,1,0] | .endm .balign 8 -.macro from_bit_interleaving_x1 tmp +.macro from_bit_interleaving_x1 tmp, const4, const16 // Input: q0 = [e0, o0, e1, o1] // Output: q0 = [d0l, d0h, d1l, d1h] // Clobbers: r0, q1, q2, q3, q4 @@ -55,8 +55,8 @@ // construct an o vector vpsel q1, q3, q1 // q0.u16: [o0l, o0h, o0h, o0l, o1l, o1h, o1l, o1h] // expand vectors - deinterleave_even q0, q2 - deinterleave_even q1, q2 + deinterleave_even q0, q2, \const4, \const16 + deinterleave_even q1, q2, \const4, \const16 // Zero garbage bits mov \tmp, #0x55 vdup.u8 q2, \tmp @@ -90,12 +90,17 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) tmp .req r4 nB .req lr off .req r5 + const4 .req r6 + const16 .req r7 lane_offset_bytes .req r9 mask .req r11 // ---- Vector naming ---- qd .req q0 qs .req q1 + mov const4, #4 + mov const16, #16 + cmp length, #0 // if len==0 done beq keccak_f1600_x1_state_extract_bytes_asm_exit @@ -123,7 +128,7 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) // Load state for the partial lane vldrw.u32 qd, [state], #16 // Deinterleave to bytes - from_bit_interleaving_x1 tmp + from_bit_interleaving_x1 tmp, const4, const16 // Predicated byte store of up to 16 bytes // calculate the predicates // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. @@ -154,7 +159,7 @@ keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: // Load 16B (two lanes) from state and bump pointer vldrw.u32 qd, [state], #16 // Deinterleave to bytes - from_bit_interleaving_x1 tmp + from_bit_interleaving_x1 tmp, const4, const16 // Store 16B of output bytes (post-increment by 16) vstrw.u32 qd, [dp], #16 @@ -172,7 +177,7 @@ keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: // Load next state lane, deinterleave, store tail vldrw.u32 qd, [state], #16 - from_bit_interleaving_x1 tmp + from_bit_interleaving_x1 tmp, const4, const16 // Tail via predicated byte stores like prologue, but off=0 (no base adjust) vctp.8 length vpst diff --git a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S index adef3f7e3e..01a360899e 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -27,20 +27,15 @@ // bits of each byte/halfword/word in \t toward the lower half, preparing the // even bit-plane. Comments show the equivalent masks after each stage. .macro interleave_evens t, u, const8, const16, const32, const128, const32768 - //vshr.u8 \u, \t, #2 // stage 1 within bytes - vqdmulh.s8 \u, \t, \const32 // shift right 2 = shift left 5+1, shift right 8; 1<<5 = 32 + vqdmulh.s8 \u, \t, \const32 vsli.u8 \t, \u, #1 // t = ((t >> 1) & 0x7E7E7E7E) | (t & 0x01010101) - //vshr.u8 \u, \t, #3 // stage 2 within nibbles - vqdmulh.s8 \u, \t, \const16 // shift right 3 = shift left 5, shift right 8; 1<<5 = 32 + vqdmulh.s8 \u, \t, \const16 vsli.u8 \t, \u, #2 // t = ((t >> 2) & 0x1C1C1C1C) | (t & 0x03030303) - //vshr.u8 \u, \t, #4 // stage 3 across bytes - vqdmulh.s8 \u, \t, \const8 // shift right 4 = shift left 4, shift right 8; 1<<4 = 16 + vqdmulh.s8 \u, \t, \const8 vsli.u8 \t, \u, #3 // t = ((t >> 3) & 0x08080808) | (t & 0x07070707) - //vshr.u16 \u, \t, #8 // widen within halfwords - vqdmulh.s16 \u, \t, \const128 // shift right by 8 = shift left 7+1, shift right 16; 1<<7 = 128 + vqdmulh.s16 \u, \t, \const128 vsli.u8 \t, \u, #4 // t = ((t >> 4) & 0x00F000F0) | (t & 0x000F000F) - //vshr.u32 \u, \t, #16 // widen within words - vqdmulh.s32 \u, \t, \const32768 // shift right by 16 = shift left 15+1, shift right 32; 1<<15 = 32768 + vqdmulh.s32 \u, \t, \const32768 vsli.u16 \t, \u, #8 // t = ((t >> 8) & 0x0000FF00) | (t & 0x000000FF) .endm From 25cc52f62f8c864d0924dd4fe5bb446213d96524 Mon Sep 17 00:00:00 2001 From: "Matthias J. Kannwischer" Date: Wed, 25 Feb 2026 18:18:45 +0800 Subject: [PATCH 5/8] Move MVE x1 bit-interleaving sources to dev/ and regenerate via autogen Signed-off-by: Matthias J. Kannwischer --- dev/fips202/armv81m/mve.h | 42 +++ .../armv81m/src/fips202_native_armv81m.h | 14 + .../armv81m/src/keccak_f1600_x1_armv7m.c | 119 ------- .../armv81m/src/keccak_f1600_x1_armv81m.c | 51 +++ .../src/state_extract_bytes_x1_mve_asm.S | 207 +++++++++++ .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 222 ++++++++++++ mlkem/mlkem_native.c | 8 +- mlkem/mlkem_native_asm.S | 10 +- mlkem/src/fips202/keccakf1600.c | 4 +- mlkem/src/fips202/native/armv81m/mve.h | 1 + .../armv81m/src/keccak_f1600_x1_armv7m.S | 2 + .../src/state_extract_bytes_x1_mve_asm.S | 306 +++++++--------- .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 333 ++++++++---------- 13 files changed, 833 insertions(+), 486 deletions(-) delete mode 100644 dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c create mode 100644 dev/fips202/armv81m/src/keccak_f1600_x1_armv81m.c create mode 100644 dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S create mode 100644 dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S diff --git a/dev/fips202/armv81m/mve.h b/dev/fips202/armv81m/mve.h index 8cd76dae42..29897803d2 100644 --- a/dev/fips202/armv81m/mve.h +++ b/dev/fips202/armv81m/mve.h @@ -11,8 +11,11 @@ /* Part of backend API */ #define MLK_USE_FIPS202_X1_NATIVE #define MLK_USE_FIPS202_X4_NATIVE +#define MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE +#define MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE #define MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #define MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE + /* Guard for assembly files */ #define MLK_FIPS202_ARMV81M_NEED_X1 #define MLK_FIPS202_ARMV81M_NEED_X4 @@ -44,6 +47,45 @@ static MLK_INLINE int mlk_keccak_f1600_x4_native(uint64_t *state) return mlk_keccak_f1600_x4_native_impl(state); } +/* + * Native x1 XOR bytes (with on-the-fly bit interleaving) + */ +#define mlk_keccak_f1600_x1_state_xor_bytes_impl \ + MLK_NAMESPACE(mlk_keccak_f1600_x1_state_xor_bytes_impl) +void mlk_keccak_f1600_x1_state_xor_bytes_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length); + +MLK_MUST_CHECK_RETURN_VALUE +static MLK_INLINE int mlk_keccakf1600_xor_bytes_x1_native(uint64_t *state, + const uint8_t *data, + unsigned offset, + unsigned length) +{ + mlk_keccak_f1600_x1_state_xor_bytes_impl(state, data, offset, length); + return MLK_NATIVE_FUNC_SUCCESS; +} + +/* + * Native x1 extract bytes (with on-the-fly bit de-interleaving) + */ +#define mlk_keccak_f1600_x1_state_extract_bytes_impl \ + MLK_NAMESPACE(mlk_keccak_f1600_x1_state_extract_bytes_impl) +void mlk_keccak_f1600_x1_state_extract_bytes_impl(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length); + +MLK_MUST_CHECK_RETURN_VALUE +static MLK_INLINE int mlk_keccakf1600_extract_bytes_x1_native(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length) +{ + mlk_keccak_f1600_x1_state_extract_bytes_impl(state, data, offset, length); + return MLK_NATIVE_FUNC_SUCCESS; +} + /* * Native x4 XOR bytes (with on-the-fly bit interleaving) */ diff --git a/dev/fips202/armv81m/src/fips202_native_armv81m.h b/dev/fips202/armv81m/src/fips202_native_armv81m.h index 8af7678ce6..8f97e6900c 100644 --- a/dev/fips202/armv81m/src/fips202_native_armv81m.h +++ b/dev/fips202/armv81m/src/fips202_native_armv81m.h @@ -35,4 +35,18 @@ void mlk_keccak_f1600_x4_state_extract_bytes_asm(void *state, uint8_t *data0, #define mlk_keccak_f1600_x1_armv7m_asm MLK_NAMESPACE(keccak_f1600_x1_armv7m_asm) void mlk_keccak_f1600_x1_armv7m_asm(uint32_t state[50], const uint32_t rc[49]); +#define mlk_keccak_f1600_x1_state_xor_bytes_asm \ + MLK_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +void mlk_keccak_f1600_x1_state_xor_bytes_asm(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length); + +#define mlk_keccak_f1600_x1_state_extract_bytes_asm \ + MLK_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +void mlk_keccak_f1600_x1_state_extract_bytes_asm(uint64_t *state, + const uint8_t *data, + unsigned offset, + unsigned length); + + #endif /* !MLK_DEV_FIPS202_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c b/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c deleted file mode 100644 index d0b62fb12a..0000000000 --- a/dev/fips202/armv81m/src/keccak_f1600_x1_armv7m.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) The mlkem-native project authors - * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - */ - -#include "../../../../common.h" -#include "../../../../verify.h" - -#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ - !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) - -#include -#include "fips202_native_armv81m.h" - -/* - * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. - * TODO: Replace with optimized assembly implementations - * (as a part of XORBytes and ExtractBytes) - */ - -/* Extract even-indexed bits from 64-bit value into lower 32 bits */ -static uint32_t bitinterleave_even(uint64_t x) -{ - uint64_t t; - t = x & 0x5555555555555555ULL; - t = (t | (t >> 1)) & 0x3333333333333333ULL; - t = (t | (t >> 2)) & 0x0f0f0f0f0f0f0f0fULL; - t = (t | (t >> 4)) & 0x00ff00ff00ff00ffULL; - t = (t | (t >> 8)) & 0x0000ffff0000ffffULL; - t = (t | (t >> 16)) & 0x00000000ffffffffULL; - return (uint32_t)t; -} - -/* Extract odd-indexed bits from 64-bit value into lower 32 bits */ -static uint32_t bitinterleave_odd(uint64_t x) -{ - return bitinterleave_even(x >> 1); -} - -/* Spread 32-bit value across even bit positions of 64-bit result */ -static uint64_t spread_even(uint32_t x) -{ - uint64_t t = x; - t = (t | (t << 16)) & 0x0000ffff0000ffffULL; - t = (t | (t << 8)) & 0x00ff00ff00ff00ffULL; - t = (t | (t << 4)) & 0x0f0f0f0f0f0f0f0fULL; - t = (t | (t << 2)) & 0x3333333333333333ULL; - t = (t | (t << 1)) & 0x5555555555555555ULL; - return t; -} - -/* Combine even and odd 32-bit halves into interleaved 64-bit value */ -static uint64_t bitdeinterleave(uint32_t even, uint32_t odd) -{ - return spread_even(even) | (spread_even(odd) << 1); -} - -/* - * Convert normal state to bit-interleaved format. - * Input: state[25] as 64-bit lanes - * Output: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) - */ -static void interleave_state(uint32_t *state_bi, const uint64_t *state) -{ - for (size_t i = 0; i < 25; i++) - { - state_bi[i * 2 + 0] = bitinterleave_even(state[i]); - state_bi[i * 2 + 1] = bitinterleave_odd(state[i]); - } -} - -/* - * Convert bit-interleaved state back to normal format. - * Input: state_bi[50] as 32-bit words (pairs of even/odd bits per lane) - * Output: state[25] as 64-bit lanes - */ -static void deinterleave_state(uint64_t *state, const uint32_t *state_bi) -{ - for (size_t i = 0; i < 25; i++) - { - state[i] = bitdeinterleave(state_bi[i * 2 + 0], state_bi[i * 2 + 1]); - } -} - -#define mlk_keccak_f1600_x1_native_impl \ - MLK_NAMESPACE(keccak_f1600_x1_native_impl) -int mlk_keccak_f1600_x1_native_impl(uint64_t *state) -{ - /* - * TEMPORARY: Bit-interleaving using efficient shift-and-mask operations. - * TODO: Replace with optimized assembly implementations - * (as a part of XORBytes and ExtractBytes) - */ - MLK_ALIGN uint32_t state_bi[50]; - - /* Interleave the state into bit-interleaved format */ - interleave_state(state_bi, state); - - /* Run the permutation */ - mlk_keccak_f1600_x1_armv7m_asm(state_bi, mlk_keccakf1600_round_constants); - - /* Deinterleave back to normal format */ - deinterleave_state(state, state_bi); - - mlk_zeroize(state_bi, sizeof(state_bi)); - return MLK_NATIVE_FUNC_SUCCESS; -} - -#else /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ - -MLK_EMPTY_CU(keccak_f1600_x1_armv7m) - -#endif /* !(MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_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. */ -/* Some macros are kept because they are also defined in a header. */ -/* Keep: mlk_keccak_f1600_x1_native_impl (mve.h) */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x1_armv81m.c b/dev/fips202/armv81m/src/keccak_f1600_x1_armv81m.c new file mode 100644 index 0000000000..d3089996b5 --- /dev/null +++ b/dev/fips202/armv81m/src/keccak_f1600_x1_armv81m.c @@ -0,0 +1,51 @@ +/* + * Copyright (c) The mlkem-native project authors + * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + */ + +#include "../../../../common.h" +#include "../../../../verify.h" + +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) + +#include +#include "fips202_native_armv81m.h" + +void mlk_keccak_f1600_x1_state_extract_bytes_impl(uint64_t *state, + uint8_t *data, + unsigned offset, + unsigned length) +{ + mlk_keccak_f1600_x1_state_extract_bytes_asm(state, data, offset, length); +} + +void mlk_keccak_f1600_x1_state_xor_bytes_impl(uint64_t *state, + const uint8_t *data, + unsigned offset, unsigned length) +{ + mlk_keccak_f1600_x1_state_xor_bytes_asm(state, data, offset, length); +} + + +#define mlk_keccak_f1600_x1_native_impl \ + MLK_NAMESPACE(keccak_f1600_x1_native_impl) +int mlk_keccak_f1600_x1_native_impl(uint64_t *state) +{ + /* Run the permutation */ + mlk_keccak_f1600_x1_armv7m_asm((void *)state, + mlk_keccakf1600_round_constants); + return MLK_NATIVE_FUNC_SUCCESS; +} + +#else /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ + +MLK_EMPTY_CU(keccak_f1600_x1_armv7m) + +#endif /* !(MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_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. */ +/* Some macros are kept because they are also defined in a header. */ +/* Keep: mlk_keccak_f1600_x1_native_impl (mve.h) */ diff --git a/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S b/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S new file mode 100644 index 0000000000..36904fe7d6 --- /dev/null +++ b/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S @@ -0,0 +1,207 @@ +/* + * 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 + */ + +// ----------------------------------------------------------------------------- +// Overview and data layout +// ----------------------------------------------------------------------------- + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +// ----------------------------------------------------------------------------- +// Deinterleave macros (adapted from x4 version) +// ----------------------------------------------------------------------------- + +// deinterleave_even: inverse of the even-bit compaction. Inflates the even +// bit-plane stored in \e back into byte positions (odd bits garbage). +.macro deinterleave_even e, tmp, const4, const16 + // | e[31:24] | e[23:16] | e[15:8] | e[7:0] | + vsli.u32 \e, \e, #8 // | e[23:16] | e[15:8] | e[7:0] | e[7:0] | + vsli.u16 \e, \e, #4 // | e[19:12] | e[11:8,11:8] | e[3:0,7:4] | e[3:0,3:0] | + vsli.u8 \e, \e, #1 // | e[18:12,12] | e[10:8,11:8,8] | e[2:0,7:4,4] | e[2:0,3:0,0] | + vqdmulh.s8 \tmp, \e, \const16 + vsli.u8 \e, \tmp, #4 // | e[17:14,14:12,12] | e[9:8,11:10,10:8,8] | e[1:0,7:6,6:4,4] | e[1:0,3:2,2:0,0] | + vqdmulh.s8 \tmp, \e, \const4 + vsli.u8 \e, \tmp, #6 // | e[16:15,15:14,14:12,12] | e[8,11,11:10,10:8,8] | e[0,7,7:6,6:4,4] | e[0,3,3:2,2:0,0] | + // after 0x55 mask + // | e[15,14,13,12] | e[11,10,9,8] | e[7,6,5,4] | e[3,2,1,0] | +.endm + +.balign 8 +.macro from_bit_interleaving_x1 tmp, const4, const16 + // Input: q0 = [e0, o0, e1, o1] + // Output: q0 = [d0l, d0h, d1l, d1h] + // Clobbers: r0, q1, q2, q3, q4 + + mov \tmp, #0x0F0F + vmsr p0, \tmp + // // q0.u16: [e0l, e0h, o0l, o0h, e1l, e1h, o1l, o1h] + vrev32.u16 q1, q0 // q1.u16: [e0h, e0l, o0h, o0l, e1h, e1l, o1h, o1l] + vrev64.u32 q2, q1 // q2.u16: [o0h, o0l, e0h, e0l, o1h, o1l, e1h, e1l] + vrev64.u32 q3, q0 // q3.u16: [o0l, o0h, e0l, e0h, o1l, o1h, e1l, e1h] + // construct an e vector + vpsel q0, q0, q2 // q0.u16: [e0l, e0h, e0h, e0l, e1l, e1h, e1h, e1l] + // construct an o vector + vpsel q1, q3, q1 // q0.u16: [o0l, o0h, o0h, o0l, o1l, o1h, o1l, o1h] + // expand vectors + deinterleave_even q0, q2, \const4, \const16 + deinterleave_even q1, q2, \const4, \const16 + // Zero garbage bits + mov \tmp, #0x55 + vdup.u8 q2, \tmp + vand.u32 q0, q0, q2 + vand.u32 q1, q1, q2 + // Merge vectors + vshl.u32 q1, q1, #1 + vorr q0, q1, q0 +.endm + +@ ----------------------------------------------------------------------------- +@ void keccak_f1600_x1_state_extract_bytes_asm(void *state, +@ uint8_t *d, +@ uint32_t offset, uint32_t length) +@ +@ AAPCS assumption: +@ r0=state, r1=d, r2=offset, r3=length +@ ----------------------------------------------------------------------------- + +.balign 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) + .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) + push {r4-r12, lr} + @ vpush {d8-d15} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + nB .req lr + off .req r5 + const4 .req r6 + const16 .req r7 + lane_offset_bytes .req r9 + mask .req r11 + // ---- Vector naming ---- + qd .req q0 + qs .req q1 + + mov const4, #4 + mov const16, #16 + + cmp length, #0 // if len==0 done + beq keccak_f1600_x1_state_extract_bytes_asm_exit + + and off, off_full, #15 + bic lane_offset_bytes, off_full, #15 + + add state, state, lane_offset_bytes + + // ------------------------------------------------------------------------- + // PROLOGUE: if (offset_in_lane != 0) write min(len, 8-offset) from one lane + // ------------------------------------------------------------------------- + cmp off, #0 // if off==0 skip + beq keccak_f1600_x1_state_extract_bytes_asm_pre_main + // subtract the offset from the data pointer to match the predicate + subs dp, dp, off + + // r0 = n = min(length, 16-off) + rsb nB, off, #16 + cmp length, nB + it ls + movls nB, length + // length -= n + subs length, length, nB + + // Load state for the partial lane + vldrw.u32 qd, [state], #16 + // Deinterleave to bytes + from_bit_interleaving_x1 tmp, const4, const16 + // Predicated byte store of up to 16 bytes + // calculate the predicates + // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. + // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, + // left-shift to align the active bytes within the 16-byte double-lane, and write + // it back to p0 to predicate the subsequent byte stores. + vctp.8 nB + vmrs mask, p0 + // mask << offset + lsl mask, mask, off + vmsr p0, mask + vpst + vstrbt.u8 qd, [dp], #16 + + cmp length, #0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit + +keccak_f1600_x1_state_extract_bytes_asm_pre_main: +keccak_f1600_x1_state_extract_bytes_asm_main_body: + // ------------------------------------------------------------------------- + // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame + // ------------------------------------------------------------------------- + // Calculate the number of full 8-byte lanes to process + lsr lr, length, #4 + // Low-overhead loop: wls/le use LR as the hardware loop counter + wls lr, lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_end +keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: + // Load 16B (two lanes) from state and bump pointer + vldrw.u32 qd, [state], #16 + // Deinterleave to bytes + from_bit_interleaving_x1 tmp, const4, const16 + // Store 16B of output bytes (post-increment by 16) + vstrw.u32 qd, [dp], #16 + + // loop end, branch to loop_start while LR>0 + le lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_start +keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: + // ------------------------------------------------------------------------- + // TAIL: if length remaining <8, write it at offset_in_lane=0 + // ------------------------------------------------------------------------- + + // length &= 15 + ands length, length, #15 + cmp length, #0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit + + // Load next state lane, deinterleave, store tail + vldrw.u32 qd, [state], #16 + from_bit_interleaving_x1 tmp, const4, const16 + // Tail via predicated byte stores like prologue, but off=0 (no base adjust) + vctp.8 length + vpst + vstrbt.u8 qd, [dp], #16 + +keccak_f1600_x1_state_extract_bytes_asm_exit: + @ vpop {d8-d15} + pop {r4-r12, pc} +/****************** REGISTER DEALLOCATIONS *******************/ + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq nB + .unreq off + .unreq const4 + .unreq const16 + .unreq lane_offset_bytes + .unreq mask + .unreq qd + .unreq qs + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && \ + MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S b/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S new file mode 100644 index 0000000000..17bc7f1ecc --- /dev/null +++ b/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -0,0 +1,222 @@ +/* + * 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 + */ + +// ----------------------------------------------------------------------------- +// Overview and data layout +// ----------------------------------------------------------------------------- + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +// ----------------------------------------------------------------------------- +// Interleave macros +// ----------------------------------------------------------------------------- + +// interleave_evens: in-place SWAR bit permutation that compacts even-numbered +// bits of each byte/halfword/word in \t toward the lower half, preparing the +// even bit-plane. Comments show the equivalent masks after each stage. +.macro interleave_evens t, u, const8, const16, const32, const128, const32768 + vqdmulh.s8 \u, \t, \const32 + vsli.u8 \t, \u, #1 // t = ((t >> 1) & 0x7E7E7E7E) | (t & 0x01010101) + vqdmulh.s8 \u, \t, \const16 + vsli.u8 \t, \u, #2 // t = ((t >> 2) & 0x1C1C1C1C) | (t & 0x03030303) + vqdmulh.s8 \u, \t, \const8 + vsli.u8 \t, \u, #3 // t = ((t >> 3) & 0x08080808) | (t & 0x07070707) + vqdmulh.s16 \u, \t, \const128 + vsli.u8 \t, \u, #4 // t = ((t >> 4) & 0x00F000F0) | (t & 0x000F000F) + vqdmulh.s32 \u, \t, \const32768 + vsli.u16 \t, \u, #8 // t = ((t >> 8) & 0x0000FF00) | (t & 0x000000FF) +.endm + +.balign 8 +.macro to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + // NOTE: This macro clobbers r0, q0, q1, q2, q3 + // Inputs on entry: + // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) + // Output on return: + // q0 = Even bit-plane packed (e0, o0, e1, o1) + // Vectors: || q0 || q1 || q2 || q3 || + // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || + vshl.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || + interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 + // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || X | X | X | X || X | X | X | X || + vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || e0h | e0l | e1h | e1l || X | X | X | X || + vsli.u32 q1, q2, #16 // || d0l | d0h | d1l | d1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || + interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 + // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || + vrev64.u32 q3, q0 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + vsli.u32 q0, q3, #16 // || X | o0 | X | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + mov \tmp, #0x0F0F + vmsr p0, \tmp + vpsel q0, q1, q0 // || e0 | o0 | e1 | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || +.endm + +@ ----------------------------------------------------------------------------- +@ void keccak_f1600_x4_state_xor_bytes_asm(void *state, +@ const uint8_t *d, +@ uint32_t offset, uint32_t length) +@ +@ AAPCS assumption: +@ r0=state, r1=d, r2=offset, r3=length +@ ----------------------------------------------------------------------------- + +.balign 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) + .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) + push {r4-r12, lr} + @ vpush {d8-d15} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + off .req r5 + lane_offset_bytes .req r6 + const8 .req r8 + const16 .req r9 + const32 .req r10 + const128 .req r11 + const32768 .req r12 + nB .req lr + // ---- Vector naming ---- + qd .req q0 + qs .req q1 + + mov const8, #8 + mov const16, #16 + mov const32, #32 + mov const128, #128 + mov const32768, #32768 + + cmp length, #0 // if len==0 done + beq keccak_f1600_x1_state_xor_bytes_asm_exit + + and off, off_full, #15 + bic lane_offset_bytes, off_full, #15 + + add state, state, lane_offset_bytes + + // ------------------------------------------------------------------------- + // PROLOGUE: if (offset_in_lane != 0) absorb min(len, 8-offset) into one lane + // ------------------------------------------------------------------------- + cmp off, #0 // if off==0 skip + beq keccak_f1600_x1_state_xor_bytes_asm_pre_main + // subtract the offset from the addresses to match the predicate + subs dp, dp, off + + // r0 = n = min(length, 8-off) + rsb nB, off, #16 + cmp length, nB + it ls + movls nB, length + // length -= n + subs length, length, nB + // calculate the predicates + // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. + // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, + // left-shift to align the active bytes within the 8-byte lane, and write + // it back to p0 to predicate the subsequent byte gathers. + vctp.8 nB + vmrs tmp, p0 + // mask << offset + lsl tmp, tmp, off + vmsr p0, tmp + // now load the partial lanes + vpst + vldrbt.u8 qd, [dp], #16 + + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + + cmp length, #0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit + +keccak_f1600_x1_state_xor_bytes_asm_pre_main: +keccak_f1600_x1_state_xor_bytes_asm_main_body: + // ------------------------------------------------------------------------- + // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame + // ------------------------------------------------------------------------- + // Calculate the number of full 8-byte lanes to process + lsr lr, length, #4 + // Low-overhead loop: wls/le use LR as the hardware loop counter + wls lr, lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_end +keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: + // Read two u32 vectors and bump per-stream pointer + vldrw.u32 qd, [dp], #16 + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + + // XOR into state (stores post-increment state by 16) + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + + // loop end, branch to loop_start while LR>0 + le lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_start +keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: + // ------------------------------------------------------------------------- + // TAIL: if length remaining <8, absorb it at offset_in_lane=0 + // ------------------------------------------------------------------------- + + // length &= 15 + // Placeholder: if r6 == 0, done. + ands length, length, #15 + cmp length, #0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit + + // Tail via predicated byte loads like prologue, but off=0 (no base adjust) + vctp.8 length + vpst + vldrbt.u8 qd, [dp], #16 + + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + +keccak_f1600_x1_state_xor_bytes_asm_exit: + @ vpop {d8-d15} + pop {r4-r12, pc} + +/****************** REGISTER DEALLOCATIONS *******************/ + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq off + .unreq lane_offset_bytes + .unreq nB + .unreq qd + .unreq qs + .unreq const8 + .unreq const16 + .unreq const32 + .unreq const128 + .unreq const32768 + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/mlkem/mlkem_native.c b/mlkem/mlkem_native.c index 55b8b2cec4..38ee7679da 100644 --- a/mlkem/mlkem_native.c +++ b/mlkem/mlkem_native.c @@ -98,7 +98,7 @@ #include "src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c" #endif #if defined(MLK_SYS_ARMV81M_MVE) -#include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.c" +#include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv81m.c" #include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c" #include "src/fips202/native/armv81m/src/keccakf1600_round_constants.c" #endif @@ -495,17 +495,23 @@ #undef MLK_FIPS202_ARMV81M_NEED_X4 #undef MLK_FIPS202_NATIVE_ARMV81M #undef MLK_FIPS202_NATIVE_ARMV81M_MVE_H +#undef MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE #undef MLK_USE_FIPS202_X1_NATIVE +#undef MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE #undef MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE #undef MLK_USE_FIPS202_X4_NATIVE #undef MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #undef mlk_keccak_f1600_x1_native_impl +#undef mlk_keccak_f1600_x1_state_extract_bytes_impl +#undef mlk_keccak_f1600_x1_state_xor_bytes_impl #undef mlk_keccak_f1600_x4_native_impl #undef mlk_keccak_f1600_x4_state_extract_bytes #undef mlk_keccak_f1600_x4_state_xor_bytes /* mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h */ #undef MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H #undef mlk_keccak_f1600_x1_armv7m_asm +#undef mlk_keccak_f1600_x1_state_extract_bytes_asm +#undef mlk_keccak_f1600_x1_state_xor_bytes_asm #undef mlk_keccak_f1600_x4_mve_asm #undef mlk_keccak_f1600_x4_state_extract_bytes_asm #undef mlk_keccak_f1600_x4_state_xor_bytes_asm diff --git a/mlkem/mlkem_native_asm.S b/mlkem/mlkem_native_asm.S index a513bea7fe..053ac9b2e4 100644 --- a/mlkem/mlkem_native_asm.S +++ b/mlkem/mlkem_native_asm.S @@ -102,9 +102,11 @@ #if defined(MLK_SYS_ARMV81M_MVE) #include "src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S" #include "src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S" +#include "src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S" #include "src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S" +#include "src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S" #include "src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S" -#endif +#endif /* MLK_SYS_ARMV81M_MVE */ #endif /* MLK_CONFIG_USE_NATIVE_BACKEND_FIPS202 */ @@ -507,17 +509,23 @@ #undef MLK_FIPS202_ARMV81M_NEED_X4 #undef MLK_FIPS202_NATIVE_ARMV81M #undef MLK_FIPS202_NATIVE_ARMV81M_MVE_H +#undef MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE #undef MLK_USE_FIPS202_X1_NATIVE +#undef MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE #undef MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE #undef MLK_USE_FIPS202_X4_NATIVE #undef MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #undef mlk_keccak_f1600_x1_native_impl +#undef mlk_keccak_f1600_x1_state_extract_bytes_impl +#undef mlk_keccak_f1600_x1_state_xor_bytes_impl #undef mlk_keccak_f1600_x4_native_impl #undef mlk_keccak_f1600_x4_state_extract_bytes #undef mlk_keccak_f1600_x4_state_xor_bytes /* mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h */ #undef MLK_FIPS202_NATIVE_ARMV81M_SRC_FIPS202_NATIVE_ARMV81M_H #undef mlk_keccak_f1600_x1_armv7m_asm +#undef mlk_keccak_f1600_x1_state_extract_bytes_asm +#undef mlk_keccak_f1600_x1_state_xor_bytes_asm #undef mlk_keccak_f1600_x4_mve_asm #undef mlk_keccak_f1600_x4_state_extract_bytes_asm #undef mlk_keccak_f1600_x4_state_xor_bytes_asm diff --git a/mlkem/src/fips202/keccakf1600.c b/mlkem/src/fips202/keccakf1600.c index 360a21d47e..3f35a663db 100644 --- a/mlkem/src/fips202/keccakf1600.c +++ b/mlkem/src/fips202/keccakf1600.c @@ -65,7 +65,7 @@ void mlk_keccakf1600_extract_bytes(uint64_t *state, unsigned char *data, { return; } -#endif +#endif /* MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE */ mlk_keccakf1600_extract_bytes_c(state, data, offset, length); } @@ -101,7 +101,7 @@ void mlk_keccakf1600_xor_bytes(uint64_t *state, const unsigned char *data, { return; } -#endif +#endif /* MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE */ mlk_keccakf1600_xor_bytes_c(state, data, offset, length); } diff --git a/mlkem/src/fips202/native/armv81m/mve.h b/mlkem/src/fips202/native/armv81m/mve.h index 1de481fa73..8e9da19ff9 100644 --- a/mlkem/src/fips202/native/armv81m/mve.h +++ b/mlkem/src/fips202/native/armv81m/mve.h @@ -15,6 +15,7 @@ #define MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE #define MLK_USE_FIPS202_X4_XOR_BYTES_NATIVE #define MLK_USE_FIPS202_X4_EXTRACT_BYTES_NATIVE + /* Guard for assembly files */ #define MLK_FIPS202_ARMV81M_NEED_X1 #define MLK_FIPS202_ARMV81M_NEED_X4 diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S index 12951e3767..23140b877d 100644 --- a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x1_armv7m.S @@ -1579,4 +1579,6 @@ slothy_end: pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} nop +MLK_ASM_FN_SIZE(keccak_f1600_x1_armv7m_asm) + #endif /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S index 859f7c18c3..ad11f79922 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x1_mve_asm.S @@ -13,191 +13,151 @@ #if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -/* simpasm: header-end */ + +/* + * WARNING: This file is auto-derived from the mlkem-native source file + * dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S using scripts/simpasm. Do not modify it directly. + */ .thumb .syntax unified -.text - -// ----------------------------------------------------------------------------- -// Deinterleave macros (adapted from x4 version) -// ----------------------------------------------------------------------------- - -// deinterleave_even: inverse of the even-bit compaction. Inflates the even -// bit-plane stored in \e back into byte positions (odd bits garbage). -.macro deinterleave_even e, tmp, const4, const16 - // | e[31:24] | e[23:16] | e[15:8] | e[7:0] | - vsli.u32 \e, \e, #8 // | e[23:16] | e[15:8] | e[7:0] | e[7:0] | - vsli.u16 \e, \e, #4 // | e[19:12] | e[11:8,11:8] | e[3:0,7:4] | e[3:0,3:0] | - vsli.u8 \e, \e, #1 // | e[18:12,12] | e[10:8,11:8,8] | e[2:0,7:4,4] | e[2:0,3:0,0] | - vqdmulh.s8 \tmp, \e, \const16 - vsli.u8 \e, \tmp, #4 // | e[17:14,14:12,12] | e[9:8,11:10,10:8,8] | e[1:0,7:6,6:4,4] | e[1:0,3:2,2:0,0] | - vqdmulh.s8 \tmp, \e, \const4 - vsli.u8 \e, \tmp, #6 // | e[16:15,15:14,14:12,12] | e[8,11,11:10,10:8,8] | e[0,7,7:6,6:4,4] | e[0,3,3:2,2:0,0] | - // after 0x55 mask - // | e[15,14,13,12] | e[11,10,9,8] | e[7,6,5,4] | e[3,2,1,0] | -.endm - -.balign 8 -.macro from_bit_interleaving_x1 tmp, const4, const16 - // Input: q0 = [e0, o0, e1, o1] - // Output: q0 = [d0l, d0h, d1l, d1h] - // Clobbers: r0, q1, q2, q3, q4 - - mov \tmp, #0x0F0F - vmsr p0, \tmp - // // q0.u16: [e0l, e0h, o0l, o0h, e1l, e1h, o1l, o1h] - vrev32.u16 q1, q0 // q1.u16: [e0h, e0l, o0h, o0l, e1h, e1l, o1h, o1l] - vrev64.u32 q2, q1 // q2.u16: [o0h, o0l, e0h, e0l, o1h, o1l, e1h, e1l] - vrev64.u32 q3, q0 // q3.u16: [o0l, o0h, e0l, e0h, o1l, o1h, e1l, e1h] - // construct an e vector - vpsel q0, q0, q2 // q0.u16: [e0l, e0h, e0h, e0l, e1l, e1h, e1h, e1l] - // construct an o vector - vpsel q1, q3, q1 // q0.u16: [o0l, o0h, o0h, o0l, o1l, o1h, o1l, o1h] - // expand vectors - deinterleave_even q0, q2, \const4, \const16 - deinterleave_even q1, q2, \const4, \const16 - // Zero garbage bits - mov \tmp, #0x55 - vdup.u8 q2, \tmp - vand.u32 q0, q0, q2 - vand.u32 q1, q1, q2 - // Merge vectors - vshl.u32 q1, q1, #1 - vorr q0, q1, q0 -.endm -@ ----------------------------------------------------------------------------- -@ void keccak_f1600_x1_state_extract_bytes_asm(void *state, -@ uint8_t *d, -@ uint32_t offset, uint32_t length) -@ -@ AAPCS assumption: -@ r0=state, r1=d, r2=offset, r3=length -@ ----------------------------------------------------------------------------- - -.balign 8 +.text +.balign 4 .global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) - .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) - push {r4-r12, lr} - @ vpush {d8-d15} - - state .req r0 - dp .req r1 - off_full .req r2 - length .req r3 - tmp .req r4 - nB .req lr - off .req r5 - const4 .req r6 - const16 .req r7 - lane_offset_bytes .req r9 - mask .req r11 - // ---- Vector naming ---- - qd .req q0 - qs .req q1 - mov const4, #4 - mov const16, #16 - - cmp length, #0 // if len==0 done - beq keccak_f1600_x1_state_extract_bytes_asm_exit - - and off, off_full, #15 - bic lane_offset_bytes, off_full, #15 - - add state, state, lane_offset_bytes - - // ------------------------------------------------------------------------- - // PROLOGUE: if (offset_in_lane != 0) write min(len, 8-offset) from one lane - // ------------------------------------------------------------------------- - cmp off, #0 // if off==0 skip - beq keccak_f1600_x1_state_extract_bytes_asm_pre_main - // subtract the offset from the data pointer to match the predicate - subs dp, dp, off - - // r0 = n = min(length, 16-off) - rsb nB, off, #16 - cmp length, nB - it ls - movls nB, length - // length -= n - subs length, length, nB - - // Load state for the partial lane - vldrw.u32 qd, [state], #16 - // Deinterleave to bytes - from_bit_interleaving_x1 tmp, const4, const16 - // Predicated byte store of up to 16 bytes - // calculate the predicates - // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. - // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, - // left-shift to align the active bytes within the 16-byte double-lane, and write - // it back to p0 to predicate the subsequent byte stores. - vctp.8 nB - vmrs mask, p0 - // mask << offset - lsl mask, mask, off - vmsr p0, mask - vpst - vstrbt.u8 qd, [dp], #16 - - cmp length, #0 - beq keccak_f1600_x1_state_extract_bytes_asm_exit + push.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + mov.w r6, #0x4 + mov.w r7, #0x10 + cmp r3, #0x0 + beq.w keccak_f1600_x1_state_extract_bytes_asm_exit @ imm = #0x1b0 + and r5, r2, #0xf + bic r9, r2, #0xf + add r0, r9 + cmp r5, #0x0 + beq keccak_f1600_x1_state_extract_bytes_asm_pre_main @ imm = #0x9c + 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 keccak_f1600_x1_state_extract_bytes_asm_exit @ imm = #0x104 keccak_f1600_x1_state_extract_bytes_asm_pre_main: -keccak_f1600_x1_state_extract_bytes_asm_main_body: - // ------------------------------------------------------------------------- - // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame - // ------------------------------------------------------------------------- - // Calculate the number of full 8-byte lanes to process - lsr lr, length, #4 - // Low-overhead loop: wls/le use LR as the hardware loop counter - wls lr, lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_end + lsr.w lr, r3, #0x4 + wls lr, lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_end @ imm = #0x78 + keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: - // Load 16B (two lanes) from state and bump pointer - vldrw.u32 qd, [state], #16 - // Deinterleave to bytes - from_bit_interleaving_x1 tmp, const4, const16 - // Store 16B of output bytes (post-increment by 16) - vstrw.u32 qd, [dp], #16 + 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 + vstrw.32 q0, [r1], #16 + le lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_start @ imm = #-0x78 - // loop end, branch to loop_start while LR>0 - le lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_start keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: - // ------------------------------------------------------------------------- - // TAIL: if length remaining <8, write it at offset_in_lane=0 - // ------------------------------------------------------------------------- - - // length &= 15 - ands length, length, #15 - cmp length, #0 - beq keccak_f1600_x1_state_extract_bytes_asm_exit - - // Load next state lane, deinterleave, store tail - vldrw.u32 qd, [state], #16 - from_bit_interleaving_x1 tmp, const4, const16 - // Tail via predicated byte stores like prologue, but off=0 (no base adjust) - vctp.8 length - vpst - vstrbt.u8 qd, [dp], #16 + ands r3, r3, #0xf + cmp r3, #0x0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit @ imm = #0x7a + 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 r3 + vpst + vstrbt.8 q0, [r1], #16 keccak_f1600_x1_state_extract_bytes_asm_exit: - @ vpop {d8-d15} - pop {r4-r12, pc} -/****************** REGISTER DEALLOCATIONS *******************/ - .unreq state - .unreq dp - .unreq off_full - .unreq length - .unreq tmp - .unreq nB - .unreq off - .unreq lane_offset_bytes - .unreq mask - .unreq qd - .unreq qs + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} + nop + +MLK_ASM_FN_SIZE(keccak_f1600_x1_state_extract_bytes_asm) -/* simpasm: footer-start */ -#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && \ + MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S index 01a360899e..5ec8d19d55 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -13,209 +13,162 @@ #if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -/* simpasm: header-end */ + +/* + * WARNING: This file is auto-derived from the mlkem-native source file + * dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S using scripts/simpasm. Do not modify it directly. + */ .thumb .syntax unified -.text - -// ----------------------------------------------------------------------------- -// Interleave macros -// ----------------------------------------------------------------------------- -// interleave_evens: in-place SWAR bit permutation that compacts even-numbered -// bits of each byte/halfword/word in \t toward the lower half, preparing the -// even bit-plane. Comments show the equivalent masks after each stage. -.macro interleave_evens t, u, const8, const16, const32, const128, const32768 - vqdmulh.s8 \u, \t, \const32 - vsli.u8 \t, \u, #1 // t = ((t >> 1) & 0x7E7E7E7E) | (t & 0x01010101) - vqdmulh.s8 \u, \t, \const16 - vsli.u8 \t, \u, #2 // t = ((t >> 2) & 0x1C1C1C1C) | (t & 0x03030303) - vqdmulh.s8 \u, \t, \const8 - vsli.u8 \t, \u, #3 // t = ((t >> 3) & 0x08080808) | (t & 0x07070707) - vqdmulh.s16 \u, \t, \const128 - vsli.u8 \t, \u, #4 // t = ((t >> 4) & 0x00F000F0) | (t & 0x000F000F) - vqdmulh.s32 \u, \t, \const32768 - vsli.u16 \t, \u, #8 // t = ((t >> 8) & 0x0000FF00) | (t & 0x000000FF) -.endm - -.balign 8 -.macro to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 - // NOTE: This macro clobbers r0, q0, q1, q2, q3 - // Inputs on entry: - // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) - // Output on return: - // q0 = Even bit-plane packed (e0, o0, e1, o1) - // Vectors: || q0 || q1 || q2 || q3 || - // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || - vshl.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || - interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 - // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || X | X | X | X || X | X | X | X || - vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || e0h | e0l | e1h | e1l || X | X | X | X || - vsli.u32 q1, q2, #16 // || d0l | d0h | d1l | d1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || - interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 - // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || - vrev64.u32 q3, q0 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || - vsli.u32 q0, q3, #16 // || X | o0 | X | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || - mov \tmp, #0x0F0F - vmsr p0, \tmp - vpsel q0, q1, q0 // || e0 | o0 | e1 | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || -.endm - -@ ----------------------------------------------------------------------------- -@ void keccak_f1600_x4_state_xor_bytes_asm(void *state, -@ const uint8_t *d, -@ uint32_t offset, uint32_t length) -@ -@ AAPCS assumption: -@ r0=state, r1=d, r2=offset, r3=length -@ ----------------------------------------------------------------------------- - -.balign 8 +.text +.balign 4 .global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) - .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) - push {r4-r12, lr} - @ vpush {d8-d15} - - state .req r0 - dp .req r1 - off_full .req r2 - length .req r3 - tmp .req r4 - off .req r5 - lane_offset_bytes .req r6 - const8 .req r8 - const16 .req r9 - const32 .req r10 - const128 .req r11 - const32768 .req r12 - nB .req lr - // ---- Vector naming ---- - qd .req q0 - qs .req q1 - - mov const8, #8 - mov const16, #16 - mov const32, #32 - mov const128, #128 - mov const32768, #32768 - cmp length, #0 // if len==0 done - beq keccak_f1600_x1_state_xor_bytes_asm_exit - - and off, off_full, #15 - bic lane_offset_bytes, off_full, #15 - - add state, state, lane_offset_bytes - - // ------------------------------------------------------------------------- - // PROLOGUE: if (offset_in_lane != 0) absorb min(len, 8-offset) into one lane - // ------------------------------------------------------------------------- - cmp off, #0 // if off==0 skip - beq keccak_f1600_x1_state_xor_bytes_asm_pre_main - // subtract the offset from the addresses to match the predicate - subs dp, dp, off - - // r0 = n = min(length, 8-off) - rsb nB, off, #16 - cmp length, nB - it ls - movls nB, length - // length -= n - subs length, length, nB - // calculate the predicates - // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. - // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, - // left-shift to align the active bytes within the 8-byte lane, and write - // it back to p0 to predicate the subsequent byte gathers. - vctp.8 nB - vmrs tmp, p0 - // mask << offset - lsl tmp, tmp, off - vmsr p0, tmp - // now load the partial lanes - vpst - vldrbt.u8 qd, [dp], #16 - - // Bit interleave - // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 - - vldrw.u32 qs, [state] - veor qs, qs, qd - vstrw.u32 qs, [state], #16 - - cmp length, #0 - beq keccak_f1600_x1_state_xor_bytes_asm_exit + push.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} + mov.w r8, #0x8 + mov.w r9, #0x10 + mov.w r10, #0x20 + mov.w r11, #0x80 + mov.w r12, #0x8000 + cmp r3, #0x0 + beq.w keccak_f1600_x1_state_xor_bytes_asm_exit @ imm = #0x1d4 + and r5, r2, #0xf + bic r6, r2, #0xf + add r0, r6 + cmp r5, #0x0 + beq keccak_f1600_x1_state_xor_bytes_asm_pre_main @ imm = #0xa8 + 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 + vshl.i32 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 q1, q2, #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, q1, q0 + vldrw.u32 q1, [r0] + veor q1, q1, q0 + vstrw.32 q1, [r0], #16 + cmp r3, #0x0 + beq.w keccak_f1600_x1_state_xor_bytes_asm_exit @ imm = #0x11c keccak_f1600_x1_state_xor_bytes_asm_pre_main: -keccak_f1600_x1_state_xor_bytes_asm_main_body: - // ------------------------------------------------------------------------- - // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame - // ------------------------------------------------------------------------- - // Calculate the number of full 8-byte lanes to process - lsr lr, length, #4 - // Low-overhead loop: wls/le use LR as the hardware loop counter - wls lr, lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_end -keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: - // Read two u32 vectors and bump per-stream pointer - vldrw.u32 qd, [dp], #16 - // Bit interleave - // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + lsr.w lr, r3, #0x4 + wls lr, lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_end @ imm = #0x84 - // XOR into state (stores post-increment state by 16) - vldrw.u32 qs, [state] - veor qs, qs, qd - vstrw.u32 qs, [state], #16 +keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: + vldrw.u32 q0, [r1], #16 + vshl.i32 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 q1, q2, #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, q1, q0 + vldrw.u32 q1, [r0] + veor q1, q1, q0 + vstrw.32 q1, [r0], #16 + le lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_start @ imm = #-0x84 - // loop end, branch to loop_start while LR>0 - le lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_start keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: - // ------------------------------------------------------------------------- - // TAIL: if length remaining <8, absorb it at offset_in_lane=0 - // ------------------------------------------------------------------------- - - // length &= 15 - // Placeholder: if r6 == 0, done. - ands length, length, #15 - cmp length, #0 - beq keccak_f1600_x1_state_xor_bytes_asm_exit - - // Tail via predicated byte loads like prologue, but off=0 (no base adjust) - vctp.8 length - vpst - vldrbt.u8 qd, [dp], #16 - - // Bit interleave - // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 - - vldrw.u32 qs, [state] - veor qs, qs, qd - vstrw.u32 qs, [state], #16 + ands r3, r3, #0xf + cmp r3, #0x0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit @ imm = #0x86 + vctp.8 r3 + vpst + vldrbt.u8 q0, [r1], #16 + vshl.i32 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 q1, q2, #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, q1, q0 + vldrw.u32 q1, [r0] + veor q1, q1, q0 + vstrw.32 q1, [r0], #16 keccak_f1600_x1_state_xor_bytes_asm_exit: - @ vpop {d8-d15} - pop {r4-r12, pc} + pop.w {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} + nop -/****************** REGISTER DEALLOCATIONS *******************/ - .unreq state - .unreq dp - .unreq off_full - .unreq length - .unreq tmp - .unreq off - .unreq lane_offset_bytes - .unreq nB - .unreq qd - .unreq qs - .unreq const8 - .unreq const16 - .unreq const32 - .unreq const128 - .unreq const32768 +MLK_ASM_FN_SIZE(keccak_f1600_x1_state_xor_bytes_asm) -/* simpasm: footer-start */ -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ From 1a8e420a030d73ebbe8e6a5938ec4f8f7e053406 Mon Sep 17 00:00:00 2001 From: Brendan Moran Date: Wed, 25 Feb 2026 12:31:10 +0000 Subject: [PATCH 6/8] Fix interleaving error Signed-off-by: Brendan Moran --- .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S b/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S index 17bc7f1ecc..3ca2fe7c94 100644 --- a/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S +++ b/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -48,18 +48,18 @@ // q0 = Even bit-plane packed (e0, o0, e1, o1) // Vectors: || q0 || q1 || q2 || q3 || // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || - vshl.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || + vshr.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 - // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || X | X | X | X || X | X | X | X || - vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || e0l | e0h | e1l | e1h || e0h | e0l | e1h | e1l || X | X | X | X || - vsli.u32 q1, q2, #16 // || d0l | d0h | d1l | d1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || + // || d0l | d0h | d1l | d1h || o0l | o0h | o1l | o1h || X | X | X | X || X | X | X | X || + vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || o0l | o0h | o1l | o1h || o0h | o0l | o1h | o1l || X | X | X | X || + vsli.u32 q2, q1, #16 // || d0l | d0h | d1l | d1h || o0l | o0h | o1l | o1h || X | o0 | X | o1 || X | X | X | X || interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 - // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || X | X | X | X || - vrev64.u32 q3, q0 // || o0l | o0h | o1l | o1h || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || - vsli.u32 q0, q3, #16 // || X | o0 | X | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + // || e0l | e0h | e1l | e1h || o0l | o0h | o1l | o1h || X | o0 | X | o1 || X | X | X | X || + vrev64.u32 q3, q0 // || e0l | e0h | e1l | e1h || o0l | o0h | o1l | o1h || X | o0 | X | o1 || e0h | e0l | e1h | e1l || + vsli.u32 q0, q3, #16 // || e0 | X | e1 | X || o0l | o0h | o1l | o1h || X | o0 | X | o1 || e0h | e0l | e1h | e1l || mov \tmp, #0x0F0F vmsr p0, \tmp - vpsel q0, q1, q0 // || e0 | o0 | e1 | o1 || e0 | X | e1 | X || e0h | e0l | e1h | e1l || o0h | o0l | o1h | o1l || + vpsel q0, q0, q2 // || e0 | o0 | e1 | o1 || o0l | o0h | o1l | o1h || X | o0 | X | o1 || e0h | e0l | e1h | e1l || .endm @ ----------------------------------------------------------------------------- From 27acc6f5b5da8699826bf9e2e09b9c6983060562 Mon Sep 17 00:00:00 2001 From: Brendan Moran Date: Wed, 25 Feb 2026 13:44:17 +0000 Subject: [PATCH 7/8] Run autogen on previous commit Signed-off-by: Brendan Moran --- .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S index 5ec8d19d55..e028d0c60f 100644 --- a/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S +++ b/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -52,7 +52,7 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) vmsr p0, r4 vpst vldrbt.u8 q0, [r1], #16 - vshl.i32 q1, q0, #0x1 + vshr.u32 q1, q0, #0x1 vqdmulh.s8 q2, q1, r10 vsli.8 q1, q2, #0x1 vqdmulh.s8 q2, q1, r9 @@ -64,7 +64,7 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) vqdmulh.s32 q2, q1, r12 vsli.16 q1, q2, #0x8 vrev64.32 q2, q1 - vsli.32 q1, q2, #0x10 + vsli.32 q2, q1, #0x10 vqdmulh.s8 q3, q0, r10 vsli.8 q0, q3, #0x1 vqdmulh.s8 q3, q0, r9 @@ -79,7 +79,7 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) vsli.32 q0, q3, #0x10 movw r4, #0xf0f vmsr p0, r4 - vpsel q0, q1, q0 + vpsel q0, q0, q2 vldrw.u32 q1, [r0] veor q1, q1, q0 vstrw.32 q1, [r0], #16 @@ -92,7 +92,7 @@ keccak_f1600_x1_state_xor_bytes_asm_pre_main: keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: vldrw.u32 q0, [r1], #16 - vshl.i32 q1, q0, #0x1 + vshr.u32 q1, q0, #0x1 vqdmulh.s8 q2, q1, r10 vsli.8 q1, q2, #0x1 vqdmulh.s8 q2, q1, r9 @@ -104,7 +104,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: vqdmulh.s32 q2, q1, r12 vsli.16 q1, q2, #0x8 vrev64.32 q2, q1 - vsli.32 q1, q2, #0x10 + vsli.32 q2, q1, #0x10 vqdmulh.s8 q3, q0, r10 vsli.8 q0, q3, #0x1 vqdmulh.s8 q3, q0, r9 @@ -119,7 +119,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: vsli.32 q0, q3, #0x10 movw r4, #0xf0f vmsr p0, r4 - vpsel q0, q1, q0 + vpsel q0, q0, q2 vldrw.u32 q1, [r0] veor q1, q1, q0 vstrw.32 q1, [r0], #16 @@ -132,7 +132,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: vctp.8 r3 vpst vldrbt.u8 q0, [r1], #16 - vshl.i32 q1, q0, #0x1 + vshr.u32 q1, q0, #0x1 vqdmulh.s8 q2, q1, r10 vsli.8 q1, q2, #0x1 vqdmulh.s8 q2, q1, r9 @@ -144,7 +144,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: vqdmulh.s32 q2, q1, r12 vsli.16 q1, q2, #0x8 vrev64.32 q2, q1 - vsli.32 q1, q2, #0x10 + vsli.32 q2, q1, #0x10 vqdmulh.s8 q3, q0, r10 vsli.8 q0, q3, #0x1 vqdmulh.s8 q3, q0, r9 @@ -159,7 +159,7 @@ keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: vsli.32 q0, q3, #0x10 movw r4, #0xf0f vmsr p0, r4 - vpsel q0, q1, q0 + vpsel q0, q0, q2 vldrw.u32 q1, [r0] veor q1, q1, q0 vstrw.32 q1, [r0], #16 From fd92df8e6ef37c934545e772f30ac00da26a1081 Mon Sep 17 00:00:00 2001 From: Brendan Moran Date: Wed, 29 Apr 2026 09:12:36 +0100 Subject: [PATCH 8/8] Optimize Armv8.1-M FIPS202 x1 byte ops Add Slothy build rules and symbolic sources for the x1 MVE state extract/xor byte routines. Regenerate the optimized Armv8.1-M assembly main loops for state extraction and XOR to use scheduled MVE instruction sequences while preserving the existing prologue/tail logic. --- dev/fips202/armv81m/src/Makefile | 117 +++++++++ .../src/state_extract_bytes_x1_mve_asm.S | 89 ++++++- .../armv81m/src/state_xor_bytes_x1_mve_asm.S | 99 ++++++-- .../src/state_extract_bytes_x1_mve_asm.S | 208 ++++++++++++++++ .../src/state_xor_bytes_x1_mve_asm.S | 223 ++++++++++++++++++ 5 files changed, 706 insertions(+), 30 deletions(-) create mode 100644 dev/fips202/armv81m/src/Makefile create mode 100644 dev/fips202/armv81m_symbolic/src/state_extract_bytes_x1_mve_asm.S create mode 100644 dev/fips202/armv81m_symbolic/src/state_xor_bytes_x1_mve_asm.S diff --git a/dev/fips202/armv81m/src/Makefile b/dev/fips202/armv81m/src/Makefile new file mode 100644 index 0000000000..b8e06fb8c3 --- /dev/null +++ b/dev/fips202/armv81m/src/Makefile @@ -0,0 +1,117 @@ +# Copyright (c) The mlkem-native project authors +# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT + +.PHONY: all purge FORCE +.DEFAULT_GOAL := all + +# ISA to optimize for +TARGET_ISA=Arm_v81M + +# MicroArch target to optimize for +TARGET_MICROARCH=Arm_Cortex_M55 +keccak_f1600_x4_mve.S: ../../armv81m_symbolic/keccak_f1600_x4_mve_clean.S + slothy-cli $(TARGET_ISA) $(TARGET_MICROARCH) $< -o $(TMP) \ + -s keccak_f1600_x4_mve_asm_roundstart \ + -e keccak_f1600_x4_mve_asm_roundend_pre \ + -c unsafe_address_offset_fixup=False \ + -c inputs_are_outputs=True \ + -c constraints.functional_only=True \ + -c constraints.allow_reordering=True \ + -c constraints.max_displacement=0.1 + slothy-cli $(TARGET_ISA) $(TARGET_MICROARCH) $(TMP) -o $@ \ + -s keccak_f1600_x4_mve_asm_roundstart \ + -e keccak_f1600_x4_mve_asm_roundend_pre \ + -c constraints.functional_only=False \ + -c constraints.allow_reordering=True \ + -c variable_size=True \ + -c inputs_are_outputs=True \ + -c constraints.stalls_first_attempt=64 \ + -c constraints.max_displacement=1.0 \ + -c constraints.stalls_maximum_attempt=4096 \ + -c unsafe_address_offset_fixup=False \ + -c split_heuristic=True \ + -c split_heuristic_stepsize=0.05 \ + -c split_heuristic_factor=26 \ + -c split_heuristic_repeat=2 \ + -c split_heuristic_estimate_performance=False \ + -c split_heuristic_optimize_seam=2 + rm -f $(TMP) + +# ----------------------------------------------------------------------------- +# SLOTHY optimization for x1 MVE byte ops +# ----------------------------------------------------------------------------- +# We optimize only the hot main loops, keeping prologue/epilogue intact. +# These targets operate in-place on the dev sources using a temporary file. +# The FORCE prerequisite ensures they rebuild when explicitly requested. + +state_xor_bytes_x1_mve_asm.S: ../../armv81m_symbolic/src/state_xor_bytes_x1_mve_asm.S + $(eval TMP := $(shell mktemp)) + # Pass 1: functional constraints only, stabilize schedule + slothy-cli $(TARGET_ISA) $(TARGET_MICROARCH) $< -o $(TMP) \ + -s keccak_f1600_x1_state_xor_bytes_asm_main_loop_start \ + -e keccak_f1600_x1_state_xor_bytes_asm_main_loop_end_pre \ + -c unsafe_address_offset_fixup=False \ + -c inputs_are_outputs=True \ + -c constraints.functional_only=True \ + -c constraints.allow_reordering=True \ + -c constraints.max_displacement=0.1 + # Pass 2: full optimization with splitting heuristics + slothy-cli $(TARGET_ISA) $(TARGET_MICROARCH) $(TMP) -o $@ \ + -s keccak_f1600_x1_state_xor_bytes_asm_main_loop_start \ + -e keccak_f1600_x1_state_xor_bytes_asm_main_loop_end_pre \ + -c constraints.functional_only=False \ + -c constraints.allow_reordering=True \ + -c variable_size=True \ + -c inputs_are_outputs=True \ + -c constraints.stalls_first_attempt=64 \ + -c constraints.max_displacement=1.0 \ + -c constraints.stalls_maximum_attempt=4096 \ + -c unsafe_address_offset_fixup=False \ + -c split_heuristic=True \ + -c split_heuristic_stepsize=0.05 \ + -c split_heuristic_factor=26 \ + -c split_heuristic_repeat=2 \ + -c split_heuristic_estimate_performance=False \ + -c split_heuristic_optimize_seam=2 + rm -f $(TMP) + +state_extract_bytes_x1_mve_asm.S: ../../armv81m_symbolic/src/state_extract_bytes_x1_mve_asm.S + $(eval TMP := $(shell mktemp)) + # Pass 1: functional constraints only, stabilize schedule + slothy-cli $(TARGET_ISA) $(TARGET_MICROARCH) $< -o $(TMP) \ + -s keccak_f1600_x1_state_extract_bytes_asm_main_loop_start \ + -e keccak_f1600_x1_state_extract_bytes_asm_main_loop_end_pre \ + -c unsafe_address_offset_fixup=False \ + -c inputs_are_outputs=True \ + -c constraints.functional_only=True \ + -c constraints.allow_reordering=True \ + -c constraints.max_displacement=0.1 + # Pass 2: full optimization with splitting heuristics + slothy-cli $(TARGET_ISA) $(TARGET_MICROARCH) $(TMP) -o $@ \ + -s keccak_f1600_x1_state_extract_bytes_asm_main_loop_start \ + -e keccak_f1600_x1_state_extract_bytes_asm_main_loop_end_pre \ + -c constraints.functional_only=False \ + -c constraints.allow_reordering=True \ + -c variable_size=True \ + -c inputs_are_outputs=True \ + -c constraints.stalls_first_attempt=64 \ + -c constraints.max_displacement=1.0 \ + -c constraints.stalls_maximum_attempt=4096 \ + -c unsafe_address_offset_fixup=False \ + -c split_heuristic=True \ + -c split_heuristic_stepsize=0.05 \ + -c split_heuristic_factor=26 \ + -c split_heuristic_repeat=2 \ + -c split_heuristic_estimate_performance=False \ + -c split_heuristic_optimize_seam=2 + rm -f $(TMP) + +ALL=state_xor_bytes_x1_mve_asm.S \ + state_extract_bytes_x1_mve_asm.S +all: $(ALL) + +purge: + rm -rf $(ALL) + +# Phony prerequisite used to force re-optimization when invoked explicitly. +FORCE: diff --git a/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S b/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S index 36904fe7d6..68e26fab74 100644 --- a/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S +++ b/dev/fips202/armv81m/src/state_extract_bytes_x1_mve_asm.S @@ -10,9 +10,7 @@ // ----------------------------------------------------------------------------- #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ - defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) && \ - !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ .thumb @@ -46,7 +44,7 @@ mov \tmp, #0x0F0F vmsr p0, \tmp - // // q0.u16: [e0l, e0h, o0l, o0h, e1l, e1h, o1l, o1h] + // q0.u16: [e0l, e0h, o0l, o0h, e1l, e1h, o1l, o1h] vrev32.u16 q1, q0 // q1.u16: [e0h, e0l, o0h, o0l, e1h, e1l, o1h, o1l] vrev64.u32 q2, q1 // q2.u16: [o0h, o0l, e0h, e0l, o1h, o1l, e1h, e1l] vrev64.u32 q3, q0 // q3.u16: [o0l, o0h, e0l, e0h, o1l, o1h, e1l, e1h] @@ -155,15 +153,80 @@ keccak_f1600_x1_state_extract_bytes_asm_main_body: lsr lr, length, #4 // Low-overhead loop: wls/le use LR as the hardware loop counter wls lr, lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_end -keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: - // Load 16B (two lanes) from state and bump pointer - vldrw.u32 qd, [state], #16 - // Deinterleave to bytes - from_bit_interleaving_x1 tmp, const4, const16 - // Store 16B of output bytes (post-increment by 16) - vstrw.u32 qd, [dp], #16 + keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: + // Instructions: 29 + // Expected cycles: 29 + // Expected IPC: 1.00 + // + // ----- cycle (expected) ------> + // 0 25 + // |------------------------|---- + vldrw.U32 q5, [r0], #16 // *............................. + vrev64.U32 q0, q5 // .*............................ + mov r2, #0x0F0F // ..*........................... + vrev32.U16 q2, q5 // ...*.......................... + vmsr p0, r2 // ....*......................... + vrev64.U32 q1, q2 // .....*........................ + vpsel q5, q5, q1 // ......*....................... + vpsel q2, q0, q2 // .......*...................... + vsli.U32 q5, q5, #8 // ........*..................... + vsli.U16 q5, q5, #4 // .........*.................... + vsli.U8 q5, q5, #1 // ..........*................... + vqdmulh.S8 q4, q5, r7 // ...........*.................. + vsli.U32 q2, q2, #8 // ............*................. + vsli.U8 q5, q4, #4 // .............*................ + vsli.U16 q2, q2, #4 // ..............*............... + vqdmulh.S8 q3, q5, r6 // ...............*.............. + vsli.U8 q2, q2, #1 // ................*............. + vsli.U8 q5, q3, #6 // .................*............ + vqdmulh.S8 q3, q2, r7 // ..................*........... + vsli.U8 q2, q3, #4 // ...................*.......... + mov r2, #0x55 // ....................*......... + vqdmulh.S8 q3, q2, r6 // .....................*........ + vdup.U8 q1, r2 // ......................*....... + vsli.U8 q2, q3, #6 // .......................*...... + vand.U32 q3, q5, q1 // ........................*..... + vand.U32 q7, q2, q1 // .........................*.... + vshl.U32 q7, q7, #1 // ..........................*... + vorr q7, q7, q3 // ...........................*.. + vstrw.U32 q7, [r1], #16 // ............................*. + + // ------ cycle (expected) ------> + // 0 25 + // |------------------------|----- + // vldrw.U32 q5, [r0], #16 // *.............................. + // mov r11, #0x0F0F // ..*............................ + // vrev32.U16 q2, q5 // ...*........................... + // vmsr p0, r11 // ....*.......................... + // vrev64.U32 q0, q5 // .*............................. + // vrev64.U32 q1, q2 // .....*......................... + // vpsel q2, q0, q2 // .......*....................... + // vpsel q5, q5, q1 // ......*........................ + // vsli.U32 q5, q5, #8 // ........*...................... + // vsli.U16 q5, q5, #4 // .........*..................... + // vsli.U8 q5, q5, #1 // ..........*.................... + // vqdmulh.S8 q4, q5, r7 // ...........*................... + // vsli.U8 q5, q4, #4 // .............*................. + // vqdmulh.S8 q4, q5, r6 // ...............*............... + // vsli.U32 q2, q2, #8 // ............*.................. + // vsli.U8 q5, q4, #6 // .................*............. + // vsli.U16 q2, q2, #4 // ..............*................ + // vsli.U8 q2, q2, #1 // ................*.............. + // vqdmulh.S8 q0, q2, r7 // ..................*............ + // vsli.U8 q2, q0, #4 // ...................*........... + // vqdmulh.S8 q7, q2, r6 // .....................*......... + // vsli.U8 q2, q7, #6 // .......................*....... + // mov r5, #0x55 // ....................*.......... + // vdup.U8 q4, r5 // ......................*........ + // vand.U32 q3, q5, q4 // ........................*...... + // vand.U32 q5, q2, q4 // .........................*..... + // vshl.U32 q7, q5, #1 // ..........................*.... + // vorr q7, q7, q3 // ...........................*... + // vstrw.U32 q7, [r1], #16 // ............................*.. + + keccak_f1600_x1_state_extract_bytes_asm_main_loop_end_pre: + - // loop end, branch to loop_start while LR>0 le lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_start keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: // ------------------------------------------------------------------------- @@ -186,7 +249,7 @@ keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: keccak_f1600_x1_state_extract_bytes_asm_exit: @ vpop {d8-d15} pop {r4-r12, pc} -/****************** REGISTER DEALLOCATIONS *******************/ +/* ***************** REGISTER DEALLOCATIONS ****************** */ .unreq state .unreq dp .unreq off_full diff --git a/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S b/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S index 3ca2fe7c94..dad541add9 100644 --- a/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S +++ b/dev/fips202/armv81m/src/state_xor_bytes_x1_mve_asm.S @@ -10,9 +10,7 @@ // ----------------------------------------------------------------------------- #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ - defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) && \ - !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ .thumb @@ -43,9 +41,9 @@ .macro to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 // NOTE: This macro clobbers r0, q0, q1, q2, q3 // Inputs on entry: - // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) + // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) // Output on return: - // q0 = Even bit-plane packed (e0, o0, e1, o1) + // q0 = Even bit-plane packed (e0, o0, e1, o1) // Vectors: || q0 || q1 || q2 || q3 || // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || vshr.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || @@ -158,19 +156,86 @@ keccak_f1600_x1_state_xor_bytes_asm_main_body: lsr lr, length, #4 // Low-overhead loop: wls/le use LR as the hardware loop counter wls lr, lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_end -keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: - // Read two u32 vectors and bump per-stream pointer - vldrw.u32 qd, [dp], #16 - // Bit interleave - // NOTE: q2,q3,q4 are dead here and not preserved. - to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: + // Instructions: 32 + // Expected cycles: 32 + // Expected IPC: 1.00 + // + // ------ cycle (expected) -------> + // 0 25 + // |------------------------|------ + vldrw.U32 q5, [r1], #16 // *............................... + vshr.U32 q2, q5, #1 // .*.............................. + vqdmulh.S8 q3, q2, r10 // ..*............................. + vsli.U8 q2, q3, #1 // ...*............................ + vqdmulh.S8 q7, q2, r9 // ....*........................... + vsli.U8 q2, q7, #2 // .....*.......................... + vqdmulh.S8 q1, q2, r8 // ......*......................... + vsli.U8 q2, q1, #3 // .......*........................ + vqdmulh.S16 q1, q2, r11 // ........*....................... + vsli.U8 q2, q1, #4 // .........*...................... + vqdmulh.S32 q1, q2, r12 // ..........*..................... + vsli.U16 q2, q1, #8 // ...........*.................... + vqdmulh.S8 q1, q5, r10 // ............*................... + vsli.U8 q5, q1, #1 // .............*.................. + vrev64.U32 q3, q2 // ..............*................. + vqdmulh.S8 q1, q5, r9 // ...............*................ + vsli.U8 q5, q1, #2 // ................*............... + vsli.U32 q3, q2, #16 // .................*.............. + vqdmulh.S8 q2, q5, r8 // ..................*............. + vsli.U8 q5, q2, #3 // ...................*............ + vqdmulh.S16 q2, q5, r11 // ....................*........... + vsli.U8 q5, q2, #4 // .....................*.......... + vqdmulh.S32 q2, q5, r12 // ......................*......... + vsli.U16 q5, q2, #8 // .......................*........ + mov r5, #0x0F0F // ........................*....... + vrev64.U32 q2, q5 // .........................*...... + vmsr p0, r5 // ..........................*..... + vsli.U32 q5, q2, #16 // ...........................*.... + vldrw.U32 q1, [r0] // ............................*... + vpsel q0, q5, q3 // .............................*.. + veor q0, q1, q0 // ..............................*. + vstrw.U32 q0, [r0], #16 // ...............................* + + // ------ cycle (expected) -------> + // 0 25 + // |------------------------|------ + // vldrw.U32 q5, [r1], #16 // *............................... + // vshr.U32 q2, q5, #1 // .*.............................. + // vqdmulh.S8 q3, q2, r10 // ..*............................. + // vsli.U8 q2, q3, #1 // ...*............................ + // vqdmulh.S8 q7, q2, r9 // ....*........................... + // vsli.U8 q2, q7, #2 // .....*.......................... + // vqdmulh.S8 q6, q2, r8 // ......*......................... + // vsli.U8 q2, q6, #3 // .......*........................ + // vqdmulh.S16 q3, q2, r11 // ........*....................... + // vsli.U8 q2, q3, #4 // .........*...................... + // vqdmulh.S32 q0, q2, r12 // ..........*..................... + // vsli.U16 q2, q0, #8 // ...........*.................... + // vrev64.U32 q3, q2 // ..............*................. + // vsli.U32 q3, q2, #16 // .................*.............. + // vqdmulh.S8 q1, q5, r10 // ............*................... + // vsli.U8 q5, q1, #1 // .............*.................. + // vqdmulh.S8 q6, q5, r9 // ...............*................ + // vsli.U8 q5, q6, #2 // ................*............... + // vqdmulh.S8 q7, q5, r8 // ..................*............. + // vsli.U8 q5, q7, #3 // ...................*............ + // vqdmulh.S16 q2, q5, r11 // ....................*........... + // vsli.U8 q5, q2, #4 // .....................*.......... + // vqdmulh.S32 q6, q5, r12 // ......................*......... + // vsli.U16 q5, q6, #8 // .......................*........ + // vrev64.U32 q6, q5 // .........................*...... + // vsli.U32 q5, q6, #16 // ...........................*.... + // mov r5, #0x0F0F // ........................*....... + // vmsr p0, r5 // ..........................*..... + // vpsel q0, q5, q3 // .............................*.. + // vldrw.U32 q4, [r0] // ............................*... + // veor q5, q4, q0 // ..............................*. + // vstrw.U32 q5, [r0], #16 // ...............................* + + keccak_f1600_x1_state_xor_bytes_asm_main_loop_end_pre: - // XOR into state (stores post-increment state by 16) - vldrw.u32 qs, [state] - veor qs, qs, qd - vstrw.u32 qs, [state], #16 - // loop end, branch to loop_start while LR>0 le lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_start keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: // ------------------------------------------------------------------------- @@ -200,7 +265,7 @@ keccak_f1600_x1_state_xor_bytes_asm_exit: @ vpop {d8-d15} pop {r4-r12, pc} -/****************** REGISTER DEALLOCATIONS *******************/ +/* ***************** REGISTER DEALLOCATIONS ****************** */ .unreq state .unreq dp .unreq off_full diff --git a/dev/fips202/armv81m_symbolic/src/state_extract_bytes_x1_mve_asm.S b/dev/fips202/armv81m_symbolic/src/state_extract_bytes_x1_mve_asm.S new file mode 100644 index 0000000000..6873fcea21 --- /dev/null +++ b/dev/fips202/armv81m_symbolic/src/state_extract_bytes_x1_mve_asm.S @@ -0,0 +1,208 @@ +/* + * 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 + */ + +// ----------------------------------------------------------------------------- +// Overview and data layout +// ----------------------------------------------------------------------------- + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + defined(MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +// ----------------------------------------------------------------------------- +// Deinterleave macros (adapted from x4 version) +// ----------------------------------------------------------------------------- + +// deinterleave_even: inverse of the even-bit compaction. Inflates the even +// bit-plane stored in \e back into byte positions (odd bits garbage). +.macro deinterleave_even e, tmp, const4, const16 + // | e[31:24] | e[23:16] | e[15:8] | e[7:0] | + vsli.u32 \e, \e, #8 // | e[23:16] | e[15:8] | e[7:0] | e[7:0] | + vsli.u16 \e, \e, #4 // | e[19:12] | e[11:8,11:8] | e[3:0,7:4] | e[3:0,3:0] | + vsli.u8 \e, \e, #1 // | e[18:12,12] | e[10:8,11:8,8] | e[2:0,7:4,4] | e[2:0,3:0,0] | + vqdmulh.s8 \tmp, \e, \const16 + vsli.u8 \e, \tmp, #4 // | e[17:14,14:12,12] | e[9:8,11:10,10:8,8] | e[1:0,7:6,6:4,4] | e[1:0,3:2,2:0,0] | + vqdmulh.s8 \tmp, \e, \const4 + vsli.u8 \e, \tmp, #6 // | e[16:15,15:14,14:12,12] | e[8,11,11:10,10:8,8] | e[0,7,7:6,6:4,4] | e[0,3,3:2,2:0,0] | + // after 0x55 mask + // | e[15,14,13,12] | e[11,10,9,8] | e[7,6,5,4] | e[3,2,1,0] | +.endm + +.balign 8 +.macro from_bit_interleaving_x1 tmp, const4, const16 + // Input: q0 = [e0, o0, e1, o1] + // Output: q0 = [d0l, d0h, d1l, d1h] + // Clobbers: r0, q1, q2, q3, q4 + + mov \tmp, #0x0F0F + vmsr p0, \tmp + // // q0.u16: [e0l, e0h, o0l, o0h, e1l, e1h, o1l, o1h] + vrev32.u16 q1, q0 // q1.u16: [e0h, e0l, o0h, o0l, e1h, e1l, o1h, o1l] + vrev64.u32 q2, q1 // q2.u16: [o0h, o0l, e0h, e0l, o1h, o1l, e1h, e1l] + vrev64.u32 q3, q0 // q3.u16: [o0l, o0h, e0l, e0h, o1l, o1h, e1l, e1h] + // construct an e vector + vpsel q0, q0, q2 // q0.u16: [e0l, e0h, e0h, e0l, e1l, e1h, e1h, e1l] + // construct an o vector + vpsel q1, q3, q1 // q0.u16: [o0l, o0h, o0h, o0l, o1l, o1h, o1l, o1h] + // expand vectors + deinterleave_even q0, q2, \const4, \const16 + deinterleave_even q1, q2, \const4, \const16 + // Zero garbage bits + mov \tmp, #0x55 + vdup.u8 q2, \tmp + vand.u32 q0, q0, q2 + vand.u32 q1, q1, q2 + // Merge vectors + vshl.u32 q1, q1, #1 + vorr q0, q1, q0 +.endm + +@ ----------------------------------------------------------------------------- +@ void keccak_f1600_x1_state_extract_bytes_asm(void *state, +@ uint8_t *d, +@ uint32_t offset, uint32_t length) +@ +@ AAPCS assumption: +@ r0=state, r1=d, r2=offset, r3=length +@ ----------------------------------------------------------------------------- + +.balign 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_extract_bytes_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_extract_bytes_asm) + .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) + push {r4-r12, lr} + @ vpush {d8-d15} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + nB .req lr + off .req r5 + const4 .req r6 + const16 .req r7 + lane_offset_bytes .req r9 + mask .req r11 + // ---- Vector naming ---- + qd .req q0 + qs .req q1 + + mov const4, #4 + mov const16, #16 + + cmp length, #0 // if len==0 done + beq keccak_f1600_x1_state_extract_bytes_asm_exit + + and off, off_full, #15 + bic lane_offset_bytes, off_full, #15 + + add state, state, lane_offset_bytes + + // ------------------------------------------------------------------------- + // PROLOGUE: if (offset_in_lane != 0) write min(len, 8-offset) from one lane + // ------------------------------------------------------------------------- + cmp off, #0 // if off==0 skip + beq keccak_f1600_x1_state_extract_bytes_asm_pre_main + // subtract the offset from the data pointer to match the predicate + subs dp, dp, off + + // r0 = n = min(length, 16-off) + rsb nB, off, #16 + cmp length, nB + it ls + movls nB, length + // length -= n + subs length, length, nB + + // Load state for the partial lane + vldrw.u32 qd, [state], #16 + // Deinterleave to bytes + from_bit_interleaving_x1 tmp, const4, const16 + // Predicated byte store of up to 16 bytes + // calculate the predicates + // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. + // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, + // left-shift to align the active bytes within the 16-byte double-lane, and write + // it back to p0 to predicate the subsequent byte stores. + vctp.8 nB + vmrs mask, p0 + // mask << offset + lsl mask, mask, off + vmsr p0, mask + vpst + vstrbt.u8 qd, [dp], #16 + + cmp length, #0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit + +keccak_f1600_x1_state_extract_bytes_asm_pre_main: +keccak_f1600_x1_state_extract_bytes_asm_main_body: + // ------------------------------------------------------------------------- + // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame + // ------------------------------------------------------------------------- + // Calculate the number of full 8-byte lanes to process + lsr lr, length, #4 + // Low-overhead loop: wls/le use LR as the hardware loop counter + wls lr, lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_end +keccak_f1600_x1_state_extract_bytes_asm_main_loop_start: + // Load 16B (two lanes) from state and bump pointer + vldrw.u32 qd, [state], #16 + // Deinterleave to bytes + from_bit_interleaving_x1 tmp, const4, const16 + // Store 16B of output bytes (post-increment by 16) + vstrw.u32 qd, [dp], #16 + + // loop end, branch to loop_start while LR>0 +keccak_f1600_x1_state_extract_bytes_asm_main_loop_end_pre: + le lr, keccak_f1600_x1_state_extract_bytes_asm_main_loop_start +keccak_f1600_x1_state_extract_bytes_asm_main_loop_end: + // ------------------------------------------------------------------------- + // TAIL: if length remaining <8, write it at offset_in_lane=0 + // ------------------------------------------------------------------------- + + // length &= 15 + ands length, length, #15 + cmp length, #0 + beq keccak_f1600_x1_state_extract_bytes_asm_exit + + // Load next state lane, deinterleave, store tail + vldrw.u32 qd, [state], #16 + from_bit_interleaving_x1 tmp, const4, const16 + // Tail via predicated byte stores like prologue, but off=0 (no base adjust) + vctp.8 length + vpst + vstrbt.u8 qd, [dp], #16 + +keccak_f1600_x1_state_extract_bytes_asm_exit: + @ vpop {d8-d15} + pop {r4-r12, pc} +/****************** REGISTER DEALLOCATIONS *******************/ + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq nB + .unreq off + .unreq const4 + .unreq const16 + .unreq lane_offset_bytes + .unreq mask + .unreq qd + .unreq qs + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && \ + MLK_USE_FIPS202_X1_EXTRACT_BYTES_NATIVE && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m_symbolic/src/state_xor_bytes_x1_mve_asm.S b/dev/fips202/armv81m_symbolic/src/state_xor_bytes_x1_mve_asm.S new file mode 100644 index 0000000000..2aa5f05408 --- /dev/null +++ b/dev/fips202/armv81m_symbolic/src/state_xor_bytes_x1_mve_asm.S @@ -0,0 +1,223 @@ +/* + * 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 + */ + +// ----------------------------------------------------------------------------- +// Overview and data layout +// ----------------------------------------------------------------------------- + +#include "../../../../common.h" +#if defined(MLK_FIPS202_ARMV81M_NEED_X1) && \ + defined(MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE) && \ + !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +/* simpasm: header-end */ + +.thumb +.syntax unified +.text + +// ----------------------------------------------------------------------------- +// Interleave macros +// ----------------------------------------------------------------------------- + +// interleave_evens: in-place SWAR bit permutation that compacts even-numbered +// bits of each byte/halfword/word in \t toward the lower half, preparing the +// even bit-plane. Comments show the equivalent masks after each stage. +.macro interleave_evens t, u, const8, const16, const32, const128, const32768 + vqdmulh.s8 \u, \t, \const32 + vsli.u8 \t, \u, #1 // t = ((t >> 1) & 0x7E7E7E7E) | (t & 0x01010101) + vqdmulh.s8 \u, \t, \const16 + vsli.u8 \t, \u, #2 // t = ((t >> 2) & 0x1C1C1C1C) | (t & 0x03030303) + vqdmulh.s8 \u, \t, \const8 + vsli.u8 \t, \u, #3 // t = ((t >> 3) & 0x08080808) | (t & 0x07070707) + vqdmulh.s16 \u, \t, \const128 + vsli.u8 \t, \u, #4 // t = ((t >> 4) & 0x00F000F0) | (t & 0x000F000F) + vqdmulh.s32 \u, \t, \const32768 + vsli.u16 \t, \u, #8 // t = ((t >> 8) & 0x0000FF00) | (t & 0x000000FF) +.endm + +.balign 8 +.macro to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + // NOTE: This macro clobbers r0, q0, q1, q2, q3 + // Inputs on entry: + // q0 = [d0l, d0h, d1l, d1h] (Two complete 64-bit lanes in 32-bit chunks) + // Output on return: + // q0 = Even bit-plane packed (e0, o0, e1, o1) + // Vectors: || q0 || q1 || q2 || q3 || + // Elements: || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || X | X | X | X || + vshr.u32 q1, q0, #1 // || d0l | d0h | d1l | d1h || d0l | d0h | d1l | d1h || X | X | X | X || X | X | X | X || + interleave_evens q1, q2, \const8, \const16, \const32, \const128, \const32768 + // || d0l | d0h | d1l | d1h || o0l | o0h | o1l | o1h || X | X | X | X || X | X | X | X || + vrev64.u32 q2, q1 // || d0l | d0h | d1l | d1h || o0l | o0h | o1l | o1h || o0h | o0l | o1h | o1l || X | X | X | X || + vsli.u32 q2, q1, #16 // || d0l | d0h | d1l | d1h || o0l | o0h | o1l | o1h || X | o0 | X | o1 || X | X | X | X || + interleave_evens q0, q3, \const8, \const16, \const32, \const128, \const32768 + // || e0l | e0h | e1l | e1h || o0l | o0h | o1l | o1h || X | o0 | X | o1 || X | X | X | X || + vrev64.u32 q3, q0 // || e0l | e0h | e1l | e1h || o0l | o0h | o1l | o1h || X | o0 | X | o1 || e0h | e0l | e1h | e1l || + vsli.u32 q0, q3, #16 // || e0 | X | e1 | X || o0l | o0h | o1l | o1h || X | o0 | X | o1 || e0h | e0l | e1h | e1l || + mov \tmp, #0x0F0F + vmsr p0, \tmp + vpsel q0, q0, q2 // || e0 | o0 | e1 | o1 || o0l | o0h | o1l | o1h || X | o0 | X | o1 || e0h | e0l | e1h | e1l || +.endm + +@ ----------------------------------------------------------------------------- +@ void keccak_f1600_x4_state_xor_bytes_asm(void *state, +@ const uint8_t *d, +@ uint32_t offset, uint32_t length) +@ +@ AAPCS assumption: +@ r0=state, r1=d, r2=offset, r3=length +@ ----------------------------------------------------------------------------- + +.balign 8 +.global MLK_ASM_NAMESPACE(keccak_f1600_x1_state_xor_bytes_asm) +MLK_ASM_FN_SYMBOL(keccak_f1600_x1_state_xor_bytes_asm) + .equ stack_offset, ((12-4+2)*4+(15-8+1)*8) + push {r4-r12, lr} + @ vpush {d8-d15} + + state .req r0 + dp .req r1 + off_full .req r2 + length .req r3 + tmp .req r4 + off .req r5 + lane_offset_bytes .req r6 + const8 .req r8 + const16 .req r9 + const32 .req r10 + const128 .req r11 + const32768 .req r12 + nB .req lr + // ---- Vector naming ---- + qd .req q0 + qs .req q1 + + mov const8, #8 + mov const16, #16 + mov const32, #32 + mov const128, #128 + mov const32768, #32768 + + cmp length, #0 // if len==0 done + beq keccak_f1600_x1_state_xor_bytes_asm_exit + + and off, off_full, #15 + bic lane_offset_bytes, off_full, #15 + + add state, state, lane_offset_bytes + + // ------------------------------------------------------------------------- + // PROLOGUE: if (offset_in_lane != 0) absorb min(len, 8-offset) into one lane + // ------------------------------------------------------------------------- + cmp off, #0 // if off==0 skip + beq keccak_f1600_x1_state_xor_bytes_asm_pre_main + // subtract the offset from the addresses to match the predicate + subs dp, dp, off + + // r0 = n = min(length, 8-off) + rsb nB, off, #16 + cmp length, nB + it ls + movls nB, length + // length -= n + subs length, length, nB + // calculate the predicates + // mask = (1 << nB) - 1 over 8-bit lanes, then shift by 'off'. + // vctp.8 sets p0[0..nB-1]=1 (others 0). We read it as an integer mask, + // left-shift to align the active bytes within the 8-byte lane, and write + // it back to p0 to predicate the subsequent byte gathers. + vctp.8 nB + vmrs tmp, p0 + // mask << offset + lsl tmp, tmp, off + vmsr p0, tmp + // now load the partial lanes + vpst + vldrbt.u8 qd, [dp], #16 + + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + + cmp length, #0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit + +keccak_f1600_x1_state_xor_bytes_asm_pre_main: +keccak_f1600_x1_state_xor_bytes_asm_main_body: + // ------------------------------------------------------------------------- + // MAIN BODY: process full 8-byte lanes while len >= 8 and within frame + // ------------------------------------------------------------------------- + // Calculate the number of full 8-byte lanes to process + lsr lr, length, #4 + // Low-overhead loop: wls/le use LR as the hardware loop counter + wls lr, lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_end +keccak_f1600_x1_state_xor_bytes_asm_main_loop_start: + // Read two u32 vectors and bump per-stream pointer + vldrw.u32 qd, [dp], #16 + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + + // XOR into state (stores post-increment state by 16) + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + + // loop end, branch to loop_start while LR>0 +keccak_f1600_x1_state_xor_bytes_asm_main_loop_end_pre: + le lr, keccak_f1600_x1_state_xor_bytes_asm_main_loop_start +keccak_f1600_x1_state_xor_bytes_asm_main_loop_end: + // ------------------------------------------------------------------------- + // TAIL: if length remaining <8, absorb it at offset_in_lane=0 + // ------------------------------------------------------------------------- + + // length &= 15 + // Placeholder: if r6 == 0, done. + ands length, length, #15 + cmp length, #0 + beq keccak_f1600_x1_state_xor_bytes_asm_exit + + // Tail via predicated byte loads like prologue, but off=0 (no base adjust) + vctp.8 length + vpst + vldrbt.u8 qd, [dp], #16 + + // Bit interleave + // NOTE: q2,q3,q4 are dead here and not preserved. + to_bit_interleaving_x1 tmp, const8, const16, const32, const128, const32768 + + vldrw.u32 qs, [state] + veor qs, qs, qd + vstrw.u32 qs, [state], #16 + +keccak_f1600_x1_state_xor_bytes_asm_exit: + @ vpop {d8-d15} + pop {r4-r12, pc} + +/****************** REGISTER DEALLOCATIONS *******************/ + .unreq state + .unreq dp + .unreq off_full + .unreq length + .unreq tmp + .unreq off + .unreq lane_offset_bytes + .unreq nB + .unreq qd + .unreq qs + .unreq const8 + .unreq const16 + .unreq const32 + .unreq const128 + .unreq const32768 + +/* simpasm: footer-start */ +#endif /* MLK_FIPS202_ARMV81M_NEED_X1 && MLK_USE_FIPS202_X1_XOR_BYTES_NATIVE && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */