B3M38SPD seminar project - beehive monitor with LoRa reporting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
spd-lorabees/build/aes.lst

2834 lines
132 KiB

ARM GAS /tmp/ccJ0d890.s page 1
1 .cpu cortex-m0plus
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 0
10 .eabi_attribute 18, 4
11 .file "aes.c"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text.xor_block,"ax",%progbits
16 .align 1
17 .syntax unified
18 .code 16
19 .thumb_func
20 .fpu softvfp
22 xor_block:
23 .LFB2:
24 .file 1 "./Middlewares/Third_Party/Lora/Crypto/aes.c"
1:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /*
2:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ---------------------------------------------------------------------------
3:./Middlewares/Third_Party/Lora/Crypto/aes.c **** Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.
4:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
5:./Middlewares/Third_Party/Lora/Crypto/aes.c **** LICENSE TERMS
6:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
7:./Middlewares/Third_Party/Lora/Crypto/aes.c **** The redistribution and use of this software (with or without changes)
8:./Middlewares/Third_Party/Lora/Crypto/aes.c **** is allowed without the payment of fees or royalties provided that:
9:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
10:./Middlewares/Third_Party/Lora/Crypto/aes.c **** 1. source code distributions include the above copyright notice, this
11:./Middlewares/Third_Party/Lora/Crypto/aes.c **** list of conditions and the following disclaimer;
12:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
13:./Middlewares/Third_Party/Lora/Crypto/aes.c **** 2. binary distributions include the above copyright notice, this list
14:./Middlewares/Third_Party/Lora/Crypto/aes.c **** of conditions and the following disclaimer in their documentation;
15:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
16:./Middlewares/Third_Party/Lora/Crypto/aes.c **** 3. the name of the copyright holder is not used to endorse products
17:./Middlewares/Third_Party/Lora/Crypto/aes.c **** built using this software without specific written permission.
18:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
19:./Middlewares/Third_Party/Lora/Crypto/aes.c **** DISCLAIMER
20:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
21:./Middlewares/Third_Party/Lora/Crypto/aes.c **** This software is provided 'as is' with no explicit or implied warranties
22:./Middlewares/Third_Party/Lora/Crypto/aes.c **** in respect of its properties, including, but not limited to, correctness
23:./Middlewares/Third_Party/Lora/Crypto/aes.c **** and/or fitness for purpose.
24:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ---------------------------------------------------------------------------
25:./Middlewares/Third_Party/Lora/Crypto/aes.c **** Issue 09/09/2006
26:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
27:./Middlewares/Third_Party/Lora/Crypto/aes.c **** This is an AES implementation that uses only 8-bit byte operations on the
28:./Middlewares/Third_Party/Lora/Crypto/aes.c **** cipher state (there are options to use 32-bit types if available).
29:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
30:./Middlewares/Third_Party/Lora/Crypto/aes.c **** The combination of mix columns and byte substitution used here is based on
31:./Middlewares/Third_Party/Lora/Crypto/aes.c **** that developed by Karl Malbrain. His contribution is acknowledged.
32:./Middlewares/Third_Party/Lora/Crypto/aes.c **** */
33:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
34:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* define if you have a fast memcpy function on your system */
ARM GAS /tmp/ccJ0d890.s page 2
35:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if 0
36:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define HAVE_MEMCPY
37:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # include <string.h>
38:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # if defined( _MSC_VER )
39:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # include <intrin.h>
40:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # pragma intrinsic( memcpy )
41:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # endif
42:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
43:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
44:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
45:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #include <stdlib.h>
46:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #include <stdint.h>
47:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
48:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* define if you have fast 32-bit types on your system */
49:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if 0
50:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define HAVE_UINT_32T
51:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
52:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
53:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* define if you don't want any tables */
54:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if 1
55:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define USE_TABLES
56:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
57:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
58:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* On Intel Core 2 duo VERSION_1 is faster */
59:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
60:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* alternative versions (test for performance on your system) */
61:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if 1
62:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define VERSION_1
63:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
64:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
65:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #include "aes.h"
66:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
67:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //#if defined( HAVE_UINT_32T )
68:./Middlewares/Third_Party/Lora/Crypto/aes.c **** // typedef unsigned long uint32_t;
69:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //#endif
70:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
71:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* functions for finite field multiplication in the AES Galois field */
72:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
73:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define WPOLY 0x011b
74:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define BPOLY 0x1b
75:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define DPOLY 0x008d
76:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
77:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define f1(x) (x)
78:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define f2(x) ((x << 1) ^ (((x >> 7) & 1) * WPOLY))
79:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define f4(x) ((x << 2) ^ (((x >> 6) & 1) * WPOLY) ^ (((x >> 6) & 2) * WPOLY))
80:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define f8(x) ((x << 3) ^ (((x >> 5) & 1) * WPOLY) ^ (((x >> 5) & 2) * WPOLY) \
81:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ^ (((x >> 5) & 4) * WPOLY))
82:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define d2(x) (((x) >> 1) ^ ((x) & 1 ? DPOLY : 0))
83:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
84:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define f3(x) (f2(x) ^ x)
85:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define f9(x) (f8(x) ^ x)
86:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define fb(x) (f8(x) ^ f2(x) ^ x)
87:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define fd(x) (f8(x) ^ f4(x) ^ x)
88:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define fe(x) (f8(x) ^ f4(x) ^ f2(x))
89:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
90:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( USE_TABLES )
91:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
ARM GAS /tmp/ccJ0d890.s page 3
92:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define sb_data(w) { /* S Box data values */ \
93:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x63), w(0x7c), w(0x77), w(0x7b), w(0xf2), w(0x6b), w(0x6f), w(0xc5),\
94:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x30), w(0x01), w(0x67), w(0x2b), w(0xfe), w(0xd7), w(0xab), w(0x76),\
95:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xca), w(0x82), w(0xc9), w(0x7d), w(0xfa), w(0x59), w(0x47), w(0xf0),\
96:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xad), w(0xd4), w(0xa2), w(0xaf), w(0x9c), w(0xa4), w(0x72), w(0xc0),\
97:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xb7), w(0xfd), w(0x93), w(0x26), w(0x36), w(0x3f), w(0xf7), w(0xcc),\
98:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x34), w(0xa5), w(0xe5), w(0xf1), w(0x71), w(0xd8), w(0x31), w(0x15),\
99:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x04), w(0xc7), w(0x23), w(0xc3), w(0x18), w(0x96), w(0x05), w(0x9a),\
100:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x07), w(0x12), w(0x80), w(0xe2), w(0xeb), w(0x27), w(0xb2), w(0x75),\
101:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x09), w(0x83), w(0x2c), w(0x1a), w(0x1b), w(0x6e), w(0x5a), w(0xa0),\
102:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x52), w(0x3b), w(0xd6), w(0xb3), w(0x29), w(0xe3), w(0x2f), w(0x84),\
103:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x53), w(0xd1), w(0x00), w(0xed), w(0x20), w(0xfc), w(0xb1), w(0x5b),\
104:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x6a), w(0xcb), w(0xbe), w(0x39), w(0x4a), w(0x4c), w(0x58), w(0xcf),\
105:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xd0), w(0xef), w(0xaa), w(0xfb), w(0x43), w(0x4d), w(0x33), w(0x85),\
106:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x45), w(0xf9), w(0x02), w(0x7f), w(0x50), w(0x3c), w(0x9f), w(0xa8),\
107:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x51), w(0xa3), w(0x40), w(0x8f), w(0x92), w(0x9d), w(0x38), w(0xf5),\
108:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xbc), w(0xb6), w(0xda), w(0x21), w(0x10), w(0xff), w(0xf3), w(0xd2),\
109:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xcd), w(0x0c), w(0x13), w(0xec), w(0x5f), w(0x97), w(0x44), w(0x17),\
110:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xc4), w(0xa7), w(0x7e), w(0x3d), w(0x64), w(0x5d), w(0x19), w(0x73),\
111:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x60), w(0x81), w(0x4f), w(0xdc), w(0x22), w(0x2a), w(0x90), w(0x88),\
112:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x46), w(0xee), w(0xb8), w(0x14), w(0xde), w(0x5e), w(0x0b), w(0xdb),\
113:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe0), w(0x32), w(0x3a), w(0x0a), w(0x49), w(0x06), w(0x24), w(0x5c),\
114:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xc2), w(0xd3), w(0xac), w(0x62), w(0x91), w(0x95), w(0xe4), w(0x79),\
115:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe7), w(0xc8), w(0x37), w(0x6d), w(0x8d), w(0xd5), w(0x4e), w(0xa9),\
116:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x6c), w(0x56), w(0xf4), w(0xea), w(0x65), w(0x7a), w(0xae), w(0x08),\
117:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xba), w(0x78), w(0x25), w(0x2e), w(0x1c), w(0xa6), w(0xb4), w(0xc6),\
118:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe8), w(0xdd), w(0x74), w(0x1f), w(0x4b), w(0xbd), w(0x8b), w(0x8a),\
119:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x70), w(0x3e), w(0xb5), w(0x66), w(0x48), w(0x03), w(0xf6), w(0x0e),\
120:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x61), w(0x35), w(0x57), w(0xb9), w(0x86), w(0xc1), w(0x1d), w(0x9e),\
121:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe1), w(0xf8), w(0x98), w(0x11), w(0x69), w(0xd9), w(0x8e), w(0x94),\
122:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x9b), w(0x1e), w(0x87), w(0xe9), w(0xce), w(0x55), w(0x28), w(0xdf),\
123:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x8c), w(0xa1), w(0x89), w(0x0d), w(0xbf), w(0xe6), w(0x42), w(0x68),\
124:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x41), w(0x99), w(0x2d), w(0x0f), w(0xb0), w(0x54), w(0xbb), w(0x16) }
125:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
126:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define isb_data(w) { /* inverse S Box data values */ \
127:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x52), w(0x09), w(0x6a), w(0xd5), w(0x30), w(0x36), w(0xa5), w(0x38),\
128:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xbf), w(0x40), w(0xa3), w(0x9e), w(0x81), w(0xf3), w(0xd7), w(0xfb),\
129:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x7c), w(0xe3), w(0x39), w(0x82), w(0x9b), w(0x2f), w(0xff), w(0x87),\
130:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x34), w(0x8e), w(0x43), w(0x44), w(0xc4), w(0xde), w(0xe9), w(0xcb),\
131:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x54), w(0x7b), w(0x94), w(0x32), w(0xa6), w(0xc2), w(0x23), w(0x3d),\
132:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xee), w(0x4c), w(0x95), w(0x0b), w(0x42), w(0xfa), w(0xc3), w(0x4e),\
133:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x08), w(0x2e), w(0xa1), w(0x66), w(0x28), w(0xd9), w(0x24), w(0xb2),\
134:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x76), w(0x5b), w(0xa2), w(0x49), w(0x6d), w(0x8b), w(0xd1), w(0x25),\
135:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x72), w(0xf8), w(0xf6), w(0x64), w(0x86), w(0x68), w(0x98), w(0x16),\
136:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xd4), w(0xa4), w(0x5c), w(0xcc), w(0x5d), w(0x65), w(0xb6), w(0x92),\
137:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x6c), w(0x70), w(0x48), w(0x50), w(0xfd), w(0xed), w(0xb9), w(0xda),\
138:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x5e), w(0x15), w(0x46), w(0x57), w(0xa7), w(0x8d), w(0x9d), w(0x84),\
139:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x90), w(0xd8), w(0xab), w(0x00), w(0x8c), w(0xbc), w(0xd3), w(0x0a),\
140:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xf7), w(0xe4), w(0x58), w(0x05), w(0xb8), w(0xb3), w(0x45), w(0x06),\
141:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xd0), w(0x2c), w(0x1e), w(0x8f), w(0xca), w(0x3f), w(0x0f), w(0x02),\
142:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xc1), w(0xaf), w(0xbd), w(0x03), w(0x01), w(0x13), w(0x8a), w(0x6b),\
143:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x3a), w(0x91), w(0x11), w(0x41), w(0x4f), w(0x67), w(0xdc), w(0xea),\
144:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x97), w(0xf2), w(0xcf), w(0xce), w(0xf0), w(0xb4), w(0xe6), w(0x73),\
145:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x96), w(0xac), w(0x74), w(0x22), w(0xe7), w(0xad), w(0x35), w(0x85),\
146:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe2), w(0xf9), w(0x37), w(0xe8), w(0x1c), w(0x75), w(0xdf), w(0x6e),\
147:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x47), w(0xf1), w(0x1a), w(0x71), w(0x1d), w(0x29), w(0xc5), w(0x89),\
148:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x6f), w(0xb7), w(0x62), w(0x0e), w(0xaa), w(0x18), w(0xbe), w(0x1b),\
ARM GAS /tmp/ccJ0d890.s page 4
149:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xfc), w(0x56), w(0x3e), w(0x4b), w(0xc6), w(0xd2), w(0x79), w(0x20),\
150:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x9a), w(0xdb), w(0xc0), w(0xfe), w(0x78), w(0xcd), w(0x5a), w(0xf4),\
151:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x1f), w(0xdd), w(0xa8), w(0x33), w(0x88), w(0x07), w(0xc7), w(0x31),\
152:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xb1), w(0x12), w(0x10), w(0x59), w(0x27), w(0x80), w(0xec), w(0x5f),\
153:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x60), w(0x51), w(0x7f), w(0xa9), w(0x19), w(0xb5), w(0x4a), w(0x0d),\
154:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x2d), w(0xe5), w(0x7a), w(0x9f), w(0x93), w(0xc9), w(0x9c), w(0xef),\
155:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xa0), w(0xe0), w(0x3b), w(0x4d), w(0xae), w(0x2a), w(0xf5), w(0xb0),\
156:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xc8), w(0xeb), w(0xbb), w(0x3c), w(0x83), w(0x53), w(0x99), w(0x61),\
157:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x17), w(0x2b), w(0x04), w(0x7e), w(0xba), w(0x77), w(0xd6), w(0x26),\
158:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe1), w(0x69), w(0x14), w(0x63), w(0x55), w(0x21), w(0x0c), w(0x7d) }
159:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
160:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define mm_data(w) { /* basic data for forming finite field tables */ \
161:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x00), w(0x01), w(0x02), w(0x03), w(0x04), w(0x05), w(0x06), w(0x07),\
162:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x08), w(0x09), w(0x0a), w(0x0b), w(0x0c), w(0x0d), w(0x0e), w(0x0f),\
163:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x10), w(0x11), w(0x12), w(0x13), w(0x14), w(0x15), w(0x16), w(0x17),\
164:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x18), w(0x19), w(0x1a), w(0x1b), w(0x1c), w(0x1d), w(0x1e), w(0x1f),\
165:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x20), w(0x21), w(0x22), w(0x23), w(0x24), w(0x25), w(0x26), w(0x27),\
166:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x28), w(0x29), w(0x2a), w(0x2b), w(0x2c), w(0x2d), w(0x2e), w(0x2f),\
167:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x30), w(0x31), w(0x32), w(0x33), w(0x34), w(0x35), w(0x36), w(0x37),\
168:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x38), w(0x39), w(0x3a), w(0x3b), w(0x3c), w(0x3d), w(0x3e), w(0x3f),\
169:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x40), w(0x41), w(0x42), w(0x43), w(0x44), w(0x45), w(0x46), w(0x47),\
170:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x48), w(0x49), w(0x4a), w(0x4b), w(0x4c), w(0x4d), w(0x4e), w(0x4f),\
171:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x50), w(0x51), w(0x52), w(0x53), w(0x54), w(0x55), w(0x56), w(0x57),\
172:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x58), w(0x59), w(0x5a), w(0x5b), w(0x5c), w(0x5d), w(0x5e), w(0x5f),\
173:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x60), w(0x61), w(0x62), w(0x63), w(0x64), w(0x65), w(0x66), w(0x67),\
174:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x68), w(0x69), w(0x6a), w(0x6b), w(0x6c), w(0x6d), w(0x6e), w(0x6f),\
175:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x70), w(0x71), w(0x72), w(0x73), w(0x74), w(0x75), w(0x76), w(0x77),\
176:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x78), w(0x79), w(0x7a), w(0x7b), w(0x7c), w(0x7d), w(0x7e), w(0x7f),\
177:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x80), w(0x81), w(0x82), w(0x83), w(0x84), w(0x85), w(0x86), w(0x87),\
178:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x88), w(0x89), w(0x8a), w(0x8b), w(0x8c), w(0x8d), w(0x8e), w(0x8f),\
179:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x90), w(0x91), w(0x92), w(0x93), w(0x94), w(0x95), w(0x96), w(0x97),\
180:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0x98), w(0x99), w(0x9a), w(0x9b), w(0x9c), w(0x9d), w(0x9e), w(0x9f),\
181:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xa0), w(0xa1), w(0xa2), w(0xa3), w(0xa4), w(0xa5), w(0xa6), w(0xa7),\
182:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xa8), w(0xa9), w(0xaa), w(0xab), w(0xac), w(0xad), w(0xae), w(0xaf),\
183:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xb0), w(0xb1), w(0xb2), w(0xb3), w(0xb4), w(0xb5), w(0xb6), w(0xb7),\
184:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xb8), w(0xb9), w(0xba), w(0xbb), w(0xbc), w(0xbd), w(0xbe), w(0xbf),\
185:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xc0), w(0xc1), w(0xc2), w(0xc3), w(0xc4), w(0xc5), w(0xc6), w(0xc7),\
186:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xc8), w(0xc9), w(0xca), w(0xcb), w(0xcc), w(0xcd), w(0xce), w(0xcf),\
187:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xd0), w(0xd1), w(0xd2), w(0xd3), w(0xd4), w(0xd5), w(0xd6), w(0xd7),\
188:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xd8), w(0xd9), w(0xda), w(0xdb), w(0xdc), w(0xdd), w(0xde), w(0xdf),\
189:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe0), w(0xe1), w(0xe2), w(0xe3), w(0xe4), w(0xe5), w(0xe6), w(0xe7),\
190:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xe8), w(0xe9), w(0xea), w(0xeb), w(0xec), w(0xed), w(0xee), w(0xef),\
191:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xf0), w(0xf1), w(0xf2), w(0xf3), w(0xf4), w(0xf5), w(0xf6), w(0xf7),\
192:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w(0xf8), w(0xf9), w(0xfa), w(0xfb), w(0xfc), w(0xfd), w(0xfe), w(0xff) }
193:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
194:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t sbox[256] = sb_data(f1);
195:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
196:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_DEC_PREKEYED )
197:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t isbox[256] = isb_data(f1);
198:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
199:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
200:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t gfm2_sbox[256] = sb_data(f2);
201:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t gfm3_sbox[256] = sb_data(f3);
202:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
203:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_DEC_PREKEYED )
204:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t gfmul_9[256] = mm_data(f9);
205:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t gfmul_b[256] = mm_data(fb);
ARM GAS /tmp/ccJ0d890.s page 5
206:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t gfmul_d[256] = mm_data(fd);
207:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static const uint8_t gfmul_e[256] = mm_data(fe);
208:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
209:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
210:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define s_box(x) sbox[(x)]
211:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_DEC_PREKEYED )
212:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define is_box(x) isbox[(x)]
213:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
214:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm2_sb(x) gfm2_sbox[(x)]
215:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm3_sb(x) gfm3_sbox[(x)]
216:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_DEC_PREKEYED )
217:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_9(x) gfmul_9[(x)]
218:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_b(x) gfmul_b[(x)]
219:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_d(x) gfmul_d[(x)]
220:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_e(x) gfmul_e[(x)]
221:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
222:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
223:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
224:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* this is the high bit of x right shifted by 1 */
225:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* position. Since the starting polynomial has */
226:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* 9 bits (0x11b), this right shift keeps the */
227:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* values of all top bits within a byte */
228:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
229:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static uint8_t hibit(const uint8_t x)
230:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t r = (uint8_t)((x >> 1) | (x >> 2));
231:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
232:./Middlewares/Third_Party/Lora/Crypto/aes.c **** r |= (r >> 2);
233:./Middlewares/Third_Party/Lora/Crypto/aes.c **** r |= (r >> 4);
234:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return (r + 1) >> 1;
235:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
236:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
237:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* return the inverse of the finite field element x */
238:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
239:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static uint8_t gf_inv(const uint8_t x)
240:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t p1 = x, p2 = BPOLY, n1 = hibit(x), n2 = 0x80, v1 = 1, v2 = 0;
241:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
242:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if(x < 2)
243:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return x;
244:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
245:./Middlewares/Third_Party/Lora/Crypto/aes.c **** for( ; ; )
246:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
247:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if(n1)
248:./Middlewares/Third_Party/Lora/Crypto/aes.c **** while(n2 >= n1) /* divide polynomial p2 by p1 */
249:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
250:./Middlewares/Third_Party/Lora/Crypto/aes.c **** n2 /= n1; /* shift smaller polynomial left */
251:./Middlewares/Third_Party/Lora/Crypto/aes.c **** p2 ^= (p1 * n2) & 0xff; /* and remove from larger one */
252:./Middlewares/Third_Party/Lora/Crypto/aes.c **** v2 ^= (v1 * n2); /* shift accumulated value and */
253:./Middlewares/Third_Party/Lora/Crypto/aes.c **** n2 = hibit(p2); /* add into result */
254:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
255:./Middlewares/Third_Party/Lora/Crypto/aes.c **** else
256:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return v1;
257:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
258:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if(n2) /* repeat with values swapped */
259:./Middlewares/Third_Party/Lora/Crypto/aes.c **** while(n1 >= n2)
260:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
261:./Middlewares/Third_Party/Lora/Crypto/aes.c **** n1 /= n2;
262:./Middlewares/Third_Party/Lora/Crypto/aes.c **** p1 ^= p2 * n1;
ARM GAS /tmp/ccJ0d890.s page 6
263:./Middlewares/Third_Party/Lora/Crypto/aes.c **** v1 ^= v2 * n1;
264:./Middlewares/Third_Party/Lora/Crypto/aes.c **** n1 = hibit(p1);
265:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
266:./Middlewares/Third_Party/Lora/Crypto/aes.c **** else
267:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return v2;
268:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
269:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
270:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
271:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* The forward and inverse affine transformations used in the S-box */
272:./Middlewares/Third_Party/Lora/Crypto/aes.c **** uint8_t fwd_affine(const uint8_t x)
273:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
274:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( HAVE_UINT_32T )
275:./Middlewares/Third_Party/Lora/Crypto/aes.c **** uint32_t w = x;
276:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w ^= (w << 1) ^ (w << 2) ^ (w << 3) ^ (w << 4);
277:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0x63 ^ ((w ^ (w >> 8)) & 0xff);
278:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
279:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0x63 ^ x ^ (x << 1) ^ (x << 2) ^ (x << 3) ^ (x << 4)
280:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ^ (x >> 7) ^ (x >> 6) ^ (x >> 5) ^ (x >> 4);
281:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
282:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
283:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
284:./Middlewares/Third_Party/Lora/Crypto/aes.c **** uint8_t inv_affine(const uint8_t x)
285:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
286:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( HAVE_UINT_32T )
287:./Middlewares/Third_Party/Lora/Crypto/aes.c **** uint32_t w = x;
288:./Middlewares/Third_Party/Lora/Crypto/aes.c **** w = (w << 1) ^ (w << 3) ^ (w << 6);
289:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0x05 ^ ((w ^ (w >> 8)) & 0xff);
290:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
291:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0x05 ^ (x << 1) ^ (x << 3) ^ (x << 6)
292:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ^ (x >> 7) ^ (x >> 5) ^ (x >> 2);
293:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
294:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
295:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
296:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define s_box(x) fwd_affine(gf_inv(x))
297:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define is_box(x) gf_inv(inv_affine(x))
298:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm2_sb(x) f2(s_box(x))
299:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm3_sb(x) f3(s_box(x))
300:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_9(x) f9(x)
301:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_b(x) fb(x)
302:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_d(x) fd(x)
303:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #define gfm_e(x) fe(x)
304:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
305:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
306:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
307:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( HAVE_MEMCPY )
308:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define block_copy_nn(d, s, l) memcpy(d, s, l)
309:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define block_copy(d, s) memcpy(d, s, N_BLOCK)
310:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
311:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define block_copy_nn(d, s, l) copy_block_nn(d, s, l)
312:./Middlewares/Third_Party/Lora/Crypto/aes.c **** # define block_copy(d, s) copy_block(d, s)
313:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
314:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
315:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void copy_block( void *d, const void *s )
316:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
317:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( HAVE_UINT_32T )
318:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 0] = ((uint32_t*)s)[ 0];
319:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 1] = ((uint32_t*)s)[ 1];
ARM GAS /tmp/ccJ0d890.s page 7
320:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 2] = ((uint32_t*)s)[ 2];
321:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 3] = ((uint32_t*)s)[ 3];
322:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
323:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 0] = ((uint8_t*)s)[ 0];
324:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 1] = ((uint8_t*)s)[ 1];
325:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 2] = ((uint8_t*)s)[ 2];
326:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 3] = ((uint8_t*)s)[ 3];
327:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 4] = ((uint8_t*)s)[ 4];
328:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 5] = ((uint8_t*)s)[ 5];
329:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 6] = ((uint8_t*)s)[ 6];
330:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 7] = ((uint8_t*)s)[ 7];
331:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 8] = ((uint8_t*)s)[ 8];
332:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 9] = ((uint8_t*)s)[ 9];
333:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[10] = ((uint8_t*)s)[10];
334:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[11] = ((uint8_t*)s)[11];
335:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[12] = ((uint8_t*)s)[12];
336:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[13] = ((uint8_t*)s)[13];
337:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[14] = ((uint8_t*)s)[14];
338:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[15] = ((uint8_t*)s)[15];
339:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
340:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
341:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
342:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void copy_block_nn( uint8_t * d, const uint8_t *s, uint8_t nn )
343:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
344:./Middlewares/Third_Party/Lora/Crypto/aes.c **** while( nn-- )
345:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //*((uint8_t*)d)++ = *((uint8_t*)s)++;
346:./Middlewares/Third_Party/Lora/Crypto/aes.c **** *d++ = *s++;
347:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
348:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
349:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void xor_block( void *d, const void *s )
350:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
25 .loc 1 350 0
26 .cfi_startproc
27 @ args = 0, pretend = 0, frame = 0
28 @ frame_needed = 0, uses_anonymous_args = 0
29 @ link register save eliminated.
30 .LVL0:
351:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( HAVE_UINT_32T )
352:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 0] ^= ((uint32_t*)s)[ 0];
353:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 1] ^= ((uint32_t*)s)[ 1];
354:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 2] ^= ((uint32_t*)s)[ 2];
355:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 3] ^= ((uint32_t*)s)[ 3];
356:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
357:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 0] ^= ((uint8_t*)s)[ 0];
31 .loc 1 357 0
32 0000 0B78 ldrb r3, [r1]
33 0002 0278 ldrb r2, [r0]
34 0004 5340 eors r3, r2
35 0006 0370 strb r3, [r0]
358:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 1] ^= ((uint8_t*)s)[ 1];
36 .loc 1 358 0
37 0008 4B78 ldrb r3, [r1, #1]
38 000a 4278 ldrb r2, [r0, #1]
39 000c 5340 eors r3, r2
40 000e 4370 strb r3, [r0, #1]
359:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 2] ^= ((uint8_t*)s)[ 2];
41 .loc 1 359 0
ARM GAS /tmp/ccJ0d890.s page 8
42 0010 8B78 ldrb r3, [r1, #2]
43 0012 8278 ldrb r2, [r0, #2]
44 0014 5340 eors r3, r2
45 0016 8370 strb r3, [r0, #2]
360:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 3] ^= ((uint8_t*)s)[ 3];
46 .loc 1 360 0
47 0018 CB78 ldrb r3, [r1, #3]
48 001a C278 ldrb r2, [r0, #3]
49 001c 5340 eors r3, r2
50 001e C370 strb r3, [r0, #3]
361:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 4] ^= ((uint8_t*)s)[ 4];
51 .loc 1 361 0
52 0020 0B79 ldrb r3, [r1, #4]
53 0022 0279 ldrb r2, [r0, #4]
54 0024 5340 eors r3, r2
55 0026 0371 strb r3, [r0, #4]
362:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 5] ^= ((uint8_t*)s)[ 5];
56 .loc 1 362 0
57 0028 4B79 ldrb r3, [r1, #5]
58 002a 4279 ldrb r2, [r0, #5]
59 002c 5340 eors r3, r2
60 002e 4371 strb r3, [r0, #5]
363:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 6] ^= ((uint8_t*)s)[ 6];
61 .loc 1 363 0
62 0030 8B79 ldrb r3, [r1, #6]
63 0032 8279 ldrb r2, [r0, #6]
64 0034 5340 eors r3, r2
65 0036 8371 strb r3, [r0, #6]
364:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 7] ^= ((uint8_t*)s)[ 7];
66 .loc 1 364 0
67 0038 CB79 ldrb r3, [r1, #7]
68 003a C279 ldrb r2, [r0, #7]
69 003c 5340 eors r3, r2
70 003e C371 strb r3, [r0, #7]
365:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 8] ^= ((uint8_t*)s)[ 8];
71 .loc 1 365 0
72 0040 0B7A ldrb r3, [r1, #8]
73 0042 027A ldrb r2, [r0, #8]
74 0044 5340 eors r3, r2
75 0046 0372 strb r3, [r0, #8]
366:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 9] ^= ((uint8_t*)s)[ 9];
76 .loc 1 366 0
77 0048 4B7A ldrb r3, [r1, #9]
78 004a 427A ldrb r2, [r0, #9]
79 004c 5340 eors r3, r2
80 004e 4372 strb r3, [r0, #9]
367:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[10] ^= ((uint8_t*)s)[10];
81 .loc 1 367 0
82 0050 8B7A ldrb r3, [r1, #10]
83 0052 827A ldrb r2, [r0, #10]
84 0054 5340 eors r3, r2
85 0056 8372 strb r3, [r0, #10]
368:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[11] ^= ((uint8_t*)s)[11];
86 .loc 1 368 0
87 0058 CB7A ldrb r3, [r1, #11]
88 005a C27A ldrb r2, [r0, #11]
89 005c 5340 eors r3, r2
ARM GAS /tmp/ccJ0d890.s page 9
90 005e C372 strb r3, [r0, #11]
369:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[12] ^= ((uint8_t*)s)[12];
91 .loc 1 369 0
92 0060 0B7B ldrb r3, [r1, #12]
93 0062 027B ldrb r2, [r0, #12]
94 0064 5340 eors r3, r2
95 0066 0373 strb r3, [r0, #12]
370:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[13] ^= ((uint8_t*)s)[13];
96 .loc 1 370 0
97 0068 4B7B ldrb r3, [r1, #13]
98 006a 427B ldrb r2, [r0, #13]
99 006c 5340 eors r3, r2
100 006e 4373 strb r3, [r0, #13]
371:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[14] ^= ((uint8_t*)s)[14];
101 .loc 1 371 0
102 0070 8B7B ldrb r3, [r1, #14]
103 0072 827B ldrb r2, [r0, #14]
104 0074 5340 eors r3, r2
105 0076 8373 strb r3, [r0, #14]
372:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[15] ^= ((uint8_t*)s)[15];
106 .loc 1 372 0
107 0078 CB7B ldrb r3, [r1, #15]
108 007a C27B ldrb r2, [r0, #15]
109 007c 5340 eors r3, r2
110 007e C373 strb r3, [r0, #15]
373:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
374:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
111 .loc 1 374 0
112 @ sp needed
113 0080 7047 bx lr
114 .cfi_endproc
115 .LFE2:
117 .section .text.copy_and_key,"ax",%progbits
118 .align 1
119 .syntax unified
120 .code 16
121 .thumb_func
122 .fpu softvfp
124 copy_and_key:
125 .LFB3:
375:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
376:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void copy_and_key( void *d, const void *s, const void *k )
377:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
126 .loc 1 377 0
127 .cfi_startproc
128 @ args = 0, pretend = 0, frame = 0
129 @ frame_needed = 0, uses_anonymous_args = 0
130 .LVL1:
131 0000 10B5 push {r4, lr}
132 .LCFI0:
133 .cfi_def_cfa_offset 8
134 .cfi_offset 4, -8
135 .cfi_offset 14, -4
378:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( HAVE_UINT_32T )
379:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 0] = ((uint32_t*)s)[ 0] ^ ((uint32_t*)k)[ 0];
380:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 1] = ((uint32_t*)s)[ 1] ^ ((uint32_t*)k)[ 1];
381:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 2] = ((uint32_t*)s)[ 2] ^ ((uint32_t*)k)[ 2];
ARM GAS /tmp/ccJ0d890.s page 10
382:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint32_t*)d)[ 3] = ((uint32_t*)s)[ 3] ^ ((uint32_t*)k)[ 3];
383:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #elif 1
384:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 0] = ((uint8_t*)s)[ 0] ^ ((uint8_t*)k)[ 0];
136 .loc 1 384 0
137 0002 0B78 ldrb r3, [r1]
138 0004 1478 ldrb r4, [r2]
139 0006 6340 eors r3, r4
140 0008 0370 strb r3, [r0]
385:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 1] = ((uint8_t*)s)[ 1] ^ ((uint8_t*)k)[ 1];
141 .loc 1 385 0
142 000a 4B78 ldrb r3, [r1, #1]
143 000c 5478 ldrb r4, [r2, #1]
144 000e 6340 eors r3, r4
145 0010 4370 strb r3, [r0, #1]
386:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 2] = ((uint8_t*)s)[ 2] ^ ((uint8_t*)k)[ 2];
146 .loc 1 386 0
147 0012 8B78 ldrb r3, [r1, #2]
148 0014 9478 ldrb r4, [r2, #2]
149 0016 6340 eors r3, r4
150 0018 8370 strb r3, [r0, #2]
387:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 3] = ((uint8_t*)s)[ 3] ^ ((uint8_t*)k)[ 3];
151 .loc 1 387 0
152 001a CB78 ldrb r3, [r1, #3]
153 001c D478 ldrb r4, [r2, #3]
154 001e 6340 eors r3, r4
155 0020 C370 strb r3, [r0, #3]
388:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 4] = ((uint8_t*)s)[ 4] ^ ((uint8_t*)k)[ 4];
156 .loc 1 388 0
157 0022 0B79 ldrb r3, [r1, #4]
158 0024 1479 ldrb r4, [r2, #4]
159 0026 6340 eors r3, r4
160 0028 0371 strb r3, [r0, #4]
389:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 5] = ((uint8_t*)s)[ 5] ^ ((uint8_t*)k)[ 5];
161 .loc 1 389 0
162 002a 4B79 ldrb r3, [r1, #5]
163 002c 5479 ldrb r4, [r2, #5]
164 002e 6340 eors r3, r4
165 0030 4371 strb r3, [r0, #5]
390:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 6] = ((uint8_t*)s)[ 6] ^ ((uint8_t*)k)[ 6];
166 .loc 1 390 0
167 0032 8B79 ldrb r3, [r1, #6]
168 0034 9479 ldrb r4, [r2, #6]
169 0036 6340 eors r3, r4
170 0038 8371 strb r3, [r0, #6]
391:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 7] = ((uint8_t*)s)[ 7] ^ ((uint8_t*)k)[ 7];
171 .loc 1 391 0
172 003a CB79 ldrb r3, [r1, #7]
173 003c D479 ldrb r4, [r2, #7]
174 003e 6340 eors r3, r4
175 0040 C371 strb r3, [r0, #7]
392:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 8] = ((uint8_t*)s)[ 8] ^ ((uint8_t*)k)[ 8];
176 .loc 1 392 0
177 0042 0B7A ldrb r3, [r1, #8]
178 0044 147A ldrb r4, [r2, #8]
179 0046 6340 eors r3, r4
180 0048 0372 strb r3, [r0, #8]
393:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 9] = ((uint8_t*)s)[ 9] ^ ((uint8_t*)k)[ 9];
ARM GAS /tmp/ccJ0d890.s page 11
181 .loc 1 393 0
182 004a 4B7A ldrb r3, [r1, #9]
183 004c 547A ldrb r4, [r2, #9]
184 004e 6340 eors r3, r4
185 0050 4372 strb r3, [r0, #9]
394:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[10] = ((uint8_t*)s)[10] ^ ((uint8_t*)k)[10];
186 .loc 1 394 0
187 0052 8B7A ldrb r3, [r1, #10]
188 0054 947A ldrb r4, [r2, #10]
189 0056 6340 eors r3, r4
190 0058 8372 strb r3, [r0, #10]
395:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[11] = ((uint8_t*)s)[11] ^ ((uint8_t*)k)[11];
191 .loc 1 395 0
192 005a CB7A ldrb r3, [r1, #11]
193 005c D47A ldrb r4, [r2, #11]
194 005e 6340 eors r3, r4
195 0060 C372 strb r3, [r0, #11]
396:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[12] = ((uint8_t*)s)[12] ^ ((uint8_t*)k)[12];
196 .loc 1 396 0
197 0062 0B7B ldrb r3, [r1, #12]
198 0064 147B ldrb r4, [r2, #12]
199 0066 6340 eors r3, r4
200 0068 0373 strb r3, [r0, #12]
397:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[13] = ((uint8_t*)s)[13] ^ ((uint8_t*)k)[13];
201 .loc 1 397 0
202 006a 4B7B ldrb r3, [r1, #13]
203 006c 547B ldrb r4, [r2, #13]
204 006e 6340 eors r3, r4
205 0070 4373 strb r3, [r0, #13]
398:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[14] = ((uint8_t*)s)[14] ^ ((uint8_t*)k)[14];
206 .loc 1 398 0
207 0072 8B7B ldrb r3, [r1, #14]
208 0074 947B ldrb r4, [r2, #14]
209 0076 6340 eors r3, r4
210 0078 8373 strb r3, [r0, #14]
399:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[15] = ((uint8_t*)s)[15] ^ ((uint8_t*)k)[15];
211 .loc 1 399 0
212 007a CB7B ldrb r3, [r1, #15]
213 007c D27B ldrb r2, [r2, #15]
214 .LVL2:
215 007e 5340 eors r3, r2
216 0080 C373 strb r3, [r0, #15]
400:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
401:./Middlewares/Third_Party/Lora/Crypto/aes.c **** block_copy(d, s);
402:./Middlewares/Third_Party/Lora/Crypto/aes.c **** xor_block(d, k);
403:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
404:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
217 .loc 1 404 0
218 @ sp needed
219 0082 10BD pop {r4, pc}
220 .cfi_endproc
221 .LFE3:
223 .global __aeabi_uidivmod
224 .section .text.aes_set_key,"ax",%progbits
225 .align 1
226 .global aes_set_key
227 .syntax unified
ARM GAS /tmp/ccJ0d890.s page 12
228 .code 16
229 .thumb_func
230 .fpu softvfp
232 aes_set_key:
233 .LFB7:
405:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
406:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void add_round_key( uint8_t d[N_BLOCK], const uint8_t k[N_BLOCK] )
407:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
408:./Middlewares/Third_Party/Lora/Crypto/aes.c **** xor_block(d, k);
409:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
410:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
411:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void shift_sub_rows( uint8_t st[N_BLOCK] )
412:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t tt;
413:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
414:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 0] = s_box(st[ 0]); st[ 4] = s_box(st[ 4]);
415:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 8] = s_box(st[ 8]); st[12] = s_box(st[12]);
416:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
417:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[1]; st[ 1] = s_box(st[ 5]); st[ 5] = s_box(st[ 9]);
418:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 9] = s_box(st[13]); st[13] = s_box( tt );
419:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
420:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[2]; st[ 2] = s_box(st[10]); st[10] = s_box( tt );
421:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[6]; st[ 6] = s_box(st[14]); st[14] = s_box( tt );
422:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
423:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[15]; st[15] = s_box(st[11]); st[11] = s_box(st[ 7]);
424:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 7] = s_box(st[ 3]); st[ 3] = s_box( tt );
425:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
426:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
427:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_DEC_PREKEYED )
428:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
429:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void inv_shift_sub_rows( uint8_t st[N_BLOCK] )
430:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t tt;
431:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
432:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 0] = is_box(st[ 0]); st[ 4] = is_box(st[ 4]);
433:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 8] = is_box(st[ 8]); st[12] = is_box(st[12]);
434:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
435:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[13]; st[13] = is_box(st[9]); st[ 9] = is_box(st[5]);
436:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 5] = is_box(st[1]); st[ 1] = is_box( tt );
437:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
438:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[2]; st[ 2] = is_box(st[10]); st[10] = is_box( tt );
439:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[6]; st[ 6] = is_box(st[14]); st[14] = is_box( tt );
440:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
441:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[3]; st[ 3] = is_box(st[ 7]); st[ 7] = is_box(st[11]);
442:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[11] = is_box(st[15]); st[15] = is_box( tt );
443:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
444:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
445:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
446:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
447:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( VERSION_1 )
448:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void mix_sub_columns( uint8_t dt[N_BLOCK] )
449:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t st[N_BLOCK];
450:./Middlewares/Third_Party/Lora/Crypto/aes.c **** block_copy(st, dt);
451:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
452:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void mix_sub_columns( uint8_t dt[N_BLOCK], uint8_t st[N_BLOCK] )
453:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
454:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
455:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 0] = gfm2_sb(st[0]) ^ gfm3_sb(st[5]) ^ s_box(st[10]) ^ s_box(st[15]);
456:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 1] = s_box(st[0]) ^ gfm2_sb(st[5]) ^ gfm3_sb(st[10]) ^ s_box(st[15]);
ARM GAS /tmp/ccJ0d890.s page 13
457:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 2] = s_box(st[0]) ^ s_box(st[5]) ^ gfm2_sb(st[10]) ^ gfm3_sb(st[15]);
458:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 3] = gfm3_sb(st[0]) ^ s_box(st[5]) ^ s_box(st[10]) ^ gfm2_sb(st[15]);
459:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
460:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 4] = gfm2_sb(st[4]) ^ gfm3_sb(st[9]) ^ s_box(st[14]) ^ s_box(st[3]);
461:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 5] = s_box(st[4]) ^ gfm2_sb(st[9]) ^ gfm3_sb(st[14]) ^ s_box(st[3]);
462:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 6] = s_box(st[4]) ^ s_box(st[9]) ^ gfm2_sb(st[14]) ^ gfm3_sb(st[3]);
463:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 7] = gfm3_sb(st[4]) ^ s_box(st[9]) ^ s_box(st[14]) ^ gfm2_sb(st[3]);
464:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
465:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 8] = gfm2_sb(st[8]) ^ gfm3_sb(st[13]) ^ s_box(st[2]) ^ s_box(st[7]);
466:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 9] = s_box(st[8]) ^ gfm2_sb(st[13]) ^ gfm3_sb(st[2]) ^ s_box(st[7]);
467:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[10] = s_box(st[8]) ^ s_box(st[13]) ^ gfm2_sb(st[2]) ^ gfm3_sb(st[7]);
468:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[11] = gfm3_sb(st[8]) ^ s_box(st[13]) ^ s_box(st[2]) ^ gfm2_sb(st[7]);
469:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
470:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[12] = gfm2_sb(st[12]) ^ gfm3_sb(st[1]) ^ s_box(st[6]) ^ s_box(st[11]);
471:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[13] = s_box(st[12]) ^ gfm2_sb(st[1]) ^ gfm3_sb(st[6]) ^ s_box(st[11]);
472:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[14] = s_box(st[12]) ^ s_box(st[1]) ^ gfm2_sb(st[6]) ^ gfm3_sb(st[11]);
473:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[15] = gfm3_sb(st[12]) ^ s_box(st[1]) ^ s_box(st[6]) ^ gfm2_sb(st[11]);
474:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
475:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
476:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_DEC_PREKEYED )
477:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
478:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( VERSION_1 )
479:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void inv_mix_sub_columns( uint8_t dt[N_BLOCK] )
480:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t st[N_BLOCK];
481:./Middlewares/Third_Party/Lora/Crypto/aes.c **** block_copy(st, dt);
482:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
483:./Middlewares/Third_Party/Lora/Crypto/aes.c **** static void inv_mix_sub_columns( uint8_t dt[N_BLOCK], uint8_t st[N_BLOCK] )
484:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
485:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
486:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 0] = is_box(gfm_e(st[ 0]) ^ gfm_b(st[ 1]) ^ gfm_d(st[ 2]) ^ gfm_9(st[ 3]));
487:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 5] = is_box(gfm_9(st[ 0]) ^ gfm_e(st[ 1]) ^ gfm_b(st[ 2]) ^ gfm_d(st[ 3]));
488:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[10] = is_box(gfm_d(st[ 0]) ^ gfm_9(st[ 1]) ^ gfm_e(st[ 2]) ^ gfm_b(st[ 3]));
489:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[15] = is_box(gfm_b(st[ 0]) ^ gfm_d(st[ 1]) ^ gfm_9(st[ 2]) ^ gfm_e(st[ 3]));
490:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
491:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 4] = is_box(gfm_e(st[ 4]) ^ gfm_b(st[ 5]) ^ gfm_d(st[ 6]) ^ gfm_9(st[ 7]));
492:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 9] = is_box(gfm_9(st[ 4]) ^ gfm_e(st[ 5]) ^ gfm_b(st[ 6]) ^ gfm_d(st[ 7]));
493:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[14] = is_box(gfm_d(st[ 4]) ^ gfm_9(st[ 5]) ^ gfm_e(st[ 6]) ^ gfm_b(st[ 7]));
494:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 3] = is_box(gfm_b(st[ 4]) ^ gfm_d(st[ 5]) ^ gfm_9(st[ 6]) ^ gfm_e(st[ 7]));
495:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
496:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 8] = is_box(gfm_e(st[ 8]) ^ gfm_b(st[ 9]) ^ gfm_d(st[10]) ^ gfm_9(st[11]));
497:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[13] = is_box(gfm_9(st[ 8]) ^ gfm_e(st[ 9]) ^ gfm_b(st[10]) ^ gfm_d(st[11]));
498:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 2] = is_box(gfm_d(st[ 8]) ^ gfm_9(st[ 9]) ^ gfm_e(st[10]) ^ gfm_b(st[11]));
499:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 7] = is_box(gfm_b(st[ 8]) ^ gfm_d(st[ 9]) ^ gfm_9(st[10]) ^ gfm_e(st[11]));
500:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
501:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[12] = is_box(gfm_e(st[12]) ^ gfm_b(st[13]) ^ gfm_d(st[14]) ^ gfm_9(st[15]));
502:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 1] = is_box(gfm_9(st[12]) ^ gfm_e(st[13]) ^ gfm_b(st[14]) ^ gfm_d(st[15]));
503:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 6] = is_box(gfm_d(st[12]) ^ gfm_9(st[13]) ^ gfm_e(st[14]) ^ gfm_b(st[15]));
504:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[11] = is_box(gfm_b(st[12]) ^ gfm_d(st[13]) ^ gfm_9(st[14]) ^ gfm_e(st[15]));
505:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
506:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
507:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
508:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
509:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_ENC_PREKEYED ) || defined( AES_DEC_PREKEYED )
510:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
511:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* Set the cipher key for the pre-keyed version */
512:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
513:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return_type aes_set_key( const uint8_t key[], length_type keylen, aes_context ctx[1] )
ARM GAS /tmp/ccJ0d890.s page 14
514:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
234 .loc 1 514 0
235 .cfi_startproc
236 @ args = 0, pretend = 0, frame = 8
237 @ frame_needed = 0, uses_anonymous_args = 0
238 .LVL3:
239 0000 F0B5 push {r4, r5, r6, r7, lr}
240 .LCFI1:
241 .cfi_def_cfa_offset 20
242 .cfi_offset 4, -20
243 .cfi_offset 5, -16
244 .cfi_offset 6, -12
245 .cfi_offset 7, -8
246 .cfi_offset 14, -4
247 0002 DE46 mov lr, fp
248 0004 5746 mov r7, r10
249 0006 4E46 mov r6, r9
250 0008 4546 mov r5, r8
251 000a E0B5 push {r5, r6, r7, lr}
252 .LCFI2:
253 .cfi_def_cfa_offset 36
254 .cfi_offset 8, -36
255 .cfi_offset 9, -32
256 .cfi_offset 10, -28
257 .cfi_offset 11, -24
258 000c 83B0 sub sp, sp, #12
259 .LCFI3:
260 .cfi_def_cfa_offset 48
261 000e 0F00 movs r7, r1
262 0010 1400 movs r4, r2
515:./Middlewares/Third_Party/Lora/Crypto/aes.c **** uint8_t cc, rc, hi;
516:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
517:./Middlewares/Third_Party/Lora/Crypto/aes.c **** switch( keylen )
263 .loc 1 517 0
264 0012 1829 cmp r1, #24
265 0014 08D0 beq .L5
266 0016 2029 cmp r1, #32
267 0018 06D0 beq .L5
268 001a 1029 cmp r1, #16
269 001c 04D0 beq .L5
518:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
519:./Middlewares/Third_Party/Lora/Crypto/aes.c **** case 16:
520:./Middlewares/Third_Party/Lora/Crypto/aes.c **** case 24:
521:./Middlewares/Third_Party/Lora/Crypto/aes.c **** case 32:
522:./Middlewares/Third_Party/Lora/Crypto/aes.c **** break;
523:./Middlewares/Third_Party/Lora/Crypto/aes.c **** default:
524:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ctx->rnd = 0;
270 .loc 1 524 0
271 001e F023 movs r3, #240
272 0020 0022 movs r2, #0
273 .LVL4:
274 0022 E254 strb r2, [r4, r3]
525:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return ( uint8_t )-1;
275 .loc 1 525 0
276 0024 FF20 movs r0, #255
277 .LVL5:
278 0026 77E0 b .L6
ARM GAS /tmp/ccJ0d890.s page 15
279 .LVL6:
280 .L5:
526:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
527:./Middlewares/Third_Party/Lora/Crypto/aes.c **** block_copy_nn(ctx->ksch, key, keylen);
281 .loc 1 527 0
282 0028 2100 movs r1, r4
283 .LVL7:
284 002a 3A00 movs r2, r7
285 .LVL8:
286 002c 04E0 b .L7
287 .LVL9:
288 .L8:
289 .LBB12:
290 .LBB13:
346:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
291 .loc 1 346 0
292 002e 0278 ldrb r2, [r0]
293 0030 0A70 strb r2, [r1]
344:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //*((uint8_t*)d)++ = *((uint8_t*)s)++;
294 .loc 1 344 0
295 0032 1A00 movs r2, r3
346:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
296 .loc 1 346 0
297 0034 0130 adds r0, r0, #1
298 .LVL10:
299 0036 0131 adds r1, r1, #1
300 .LVL11:
301 .L7:
344:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //*((uint8_t*)d)++ = *((uint8_t*)s)++;
302 .loc 1 344 0
303 0038 531E subs r3, r2, #1
304 003a DBB2 uxtb r3, r3
305 .LVL12:
306 003c 002A cmp r2, #0
307 003e F6D1 bne .L8
308 .LVL13:
309 .LBE13:
310 .LBE12:
528:./Middlewares/Third_Party/Lora/Crypto/aes.c **** hi = (keylen + 28) << 2;
311 .loc 1 528 0
312 0040 3B00 movs r3, r7
313 0042 1C33 adds r3, r3, #28
314 0044 DBB2 uxtb r3, r3
315 0046 9B00 lsls r3, r3, #2
316 0048 DBB2 uxtb r3, r3
317 004a 0093 str r3, [sp]
318 .LVL14:
529:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ctx->rnd = (hi >> 4) - 1;
319 .loc 1 529 0
320 004c 1B09 lsrs r3, r3, #4
321 .LVL15:
322 004e 013B subs r3, r3, #1
323 0050 F032 adds r2, r2, #240
324 0052 A354 strb r3, [r4, r2]
325 .LVL16:
530:./Middlewares/Third_Party/Lora/Crypto/aes.c **** for( cc = keylen, rc = 1; cc < hi; cc += 4 )
326 .loc 1 530 0
ARM GAS /tmp/ccJ0d890.s page 16
327 0054 3D00 movs r5, r7
328 0056 0123 movs r3, #1
329 0058 0193 str r3, [sp, #4]
330 005a 1DE0 b .L9
331 .LVL17:
332 .L10:
333 .LBB14:
531:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t tt, t0, t1, t2, t3;
532:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
533:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t0 = ctx->ksch[cc - 4];
534:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = ctx->ksch[cc - 3];
535:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t2 = ctx->ksch[cc - 2];
536:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t3 = ctx->ksch[cc - 1];
537:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if( cc % keylen == 0 )
538:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
539:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = t0;
540:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t0 = s_box(t1) ^ rc;
541:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = s_box(t2);
542:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t2 = s_box(t3);
543:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t3 = s_box(tt);
544:./Middlewares/Third_Party/Lora/Crypto/aes.c **** rc = f2(rc);
545:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
546:./Middlewares/Third_Party/Lora/Crypto/aes.c **** else if( keylen > 24 && cc % keylen == 16 )
334 .loc 1 546 0
335 005c 182F cmp r7, #24
336 005e 01D9 bls .L11
337 .loc 1 546 0 is_stmt 0 discriminator 1
338 0060 1029 cmp r1, #16
339 0062 4AD0 beq .L13
340 .LVL18:
341 .L11:
547:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
548:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t0 = s_box(t0);
549:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = s_box(t1);
550:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t2 = s_box(t2);
551:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t3 = s_box(t3);
552:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
553:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = cc - keylen;
342 .loc 1 553 0 is_stmt 1 discriminator 2
343 0064 EB1B subs r3, r5, r7
344 0066 DBB2 uxtb r3, r3
345 .LVL19:
554:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ctx->ksch[cc + 0] = ctx->ksch[tt + 0] ^ t0;
346 .loc 1 554 0 discriminator 2
347 0068 E25C ldrb r2, [r4, r3]
348 006a 5946 mov r1, fp
349 006c 4A40 eors r2, r1
350 006e A255 strb r2, [r4, r6]
555:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ctx->ksch[cc + 1] = ctx->ksch[tt + 1] ^ t1;
351 .loc 1 555 0 discriminator 2
352 0070 5A1C adds r2, r3, #1
353 0072 A25C ldrb r2, [r4, r2]
354 0074 711C adds r1, r6, #1
355 0076 5046 mov r0, r10
356 0078 4240 eors r2, r0
357 007a 6254 strb r2, [r4, r1]
556:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ctx->ksch[cc + 2] = ctx->ksch[tt + 2] ^ t2;
ARM GAS /tmp/ccJ0d890.s page 17
358 .loc 1 556 0 discriminator 2
359 007c 9A1C adds r2, r3, #2
360 007e A25C ldrb r2, [r4, r2]
361 0080 B11C adds r1, r6, #2
362 0082 4846 mov r0, r9
363 0084 4240 eors r2, r0
364 0086 6254 strb r2, [r4, r1]
557:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ctx->ksch[cc + 3] = ctx->ksch[tt + 3] ^ t3;
365 .loc 1 557 0 discriminator 2
366 0088 0333 adds r3, r3, #3
367 .LVL20:
368 008a E35C ldrb r3, [r4, r3]
369 .LVL21:
370 008c 0336 adds r6, r6, #3
371 008e 4246 mov r2, r8
372 0090 5340 eors r3, r2
373 0092 A355 strb r3, [r4, r6]
374 .LBE14:
530:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t tt, t0, t1, t2, t3;
375 .loc 1 530 0 discriminator 2
376 0094 0435 adds r5, r5, #4
377 .LVL22:
378 0096 EDB2 uxtb r5, r5
379 .LVL23:
380 .L9:
530:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t tt, t0, t1, t2, t3;
381 .loc 1 530 0 is_stmt 0 discriminator 1
382 0098 009B ldr r3, [sp]
383 009a 9D42 cmp r5, r3
384 009c 3BD2 bcs .L14
385 .LBB15:
533:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = ctx->ksch[cc - 3];
386 .loc 1 533 0 is_stmt 1
387 009e 2E00 movs r6, r5
388 00a0 2B1F subs r3, r5, #4
389 00a2 E35C ldrb r3, [r4, r3]
390 00a4 9B46 mov fp, r3
391 .LVL24:
534:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t2 = ctx->ksch[cc - 2];
392 .loc 1 534 0
393 00a6 EB1E subs r3, r5, #3
394 00a8 E35C ldrb r3, [r4, r3]
395 00aa 9A46 mov r10, r3
396 .LVL25:
535:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t3 = ctx->ksch[cc - 1];
397 .loc 1 535 0
398 00ac AB1E subs r3, r5, #2
399 00ae E35C ldrb r3, [r4, r3]
400 00b0 9946 mov r9, r3
401 .LVL26:
536:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if( cc % keylen == 0 )
402 .loc 1 536 0
403 00b2 6B1E subs r3, r5, #1
404 00b4 E35C ldrb r3, [r4, r3]
405 00b6 9846 mov r8, r3
406 .LVL27:
537:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
ARM GAS /tmp/ccJ0d890.s page 18
407 .loc 1 537 0
408 00b8 3900 movs r1, r7
409 00ba 2800 movs r0, r5
410 00bc FFF7FEFF bl __aeabi_uidivmod
411 .LVL28:
412 00c0 C9B2 uxtb r1, r1
413 00c2 0029 cmp r1, #0
414 00c4 CAD1 bne .L10
415 .LVL29:
540:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = s_box(t2);
416 .loc 1 540 0
417 00c6 184B ldr r3, .L15
418 00c8 5246 mov r2, r10
419 00ca 9A5C ldrb r2, [r3, r2]
420 00cc 0199 ldr r1, [sp, #4]
421 00ce 4A40 eors r2, r1
422 .LVL30:
541:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t2 = s_box(t3);
423 .loc 1 541 0
424 00d0 4846 mov r0, r9
425 00d2 185C ldrb r0, [r3, r0]
426 00d4 8246 mov r10, r0
427 .LVL31:
542:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t3 = s_box(tt);
428 .loc 1 542 0
429 00d6 4046 mov r0, r8
430 00d8 185C ldrb r0, [r3, r0]
431 00da 8146 mov r9, r0
432 .LVL32:
543:./Middlewares/Third_Party/Lora/Crypto/aes.c **** rc = f2(rc);
433 .loc 1 543 0
434 00dc 5846 mov r0, fp
435 00de 1B5C ldrb r3, [r3, r0]
436 00e0 9846 mov r8, r3
437 .LVL33:
544:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
438 .loc 1 544 0
439 00e2 0B00 movs r3, r1
440 00e4 4900 lsls r1, r1, #1
441 00e6 DB09 lsrs r3, r3, #7
442 00e8 5800 lsls r0, r3, #1
443 00ea 1B18 adds r3, r3, r0
444 00ec D800 lsls r0, r3, #3
445 00ee 1B18 adds r3, r3, r0
446 00f0 4B40 eors r3, r1
447 00f2 DBB2 uxtb r3, r3
448 00f4 0193 str r3, [sp, #4]
449 .LVL34:
540:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = s_box(t2);
450 .loc 1 540 0
451 00f6 9346 mov fp, r2
452 .LVL35:
453 00f8 B4E7 b .L11
454 .LVL36:
455 .L13:
548:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t1 = s_box(t1);
456 .loc 1 548 0
ARM GAS /tmp/ccJ0d890.s page 19
457 00fa 0B4B ldr r3, .L15
458 00fc 5A46 mov r2, fp
459 00fe 9A5C ldrb r2, [r3, r2]
460 0100 9346 mov fp, r2
461 .LVL37:
549:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t2 = s_box(t2);
462 .loc 1 549 0
463 0102 5246 mov r2, r10
464 0104 9A5C ldrb r2, [r3, r2]
465 0106 9246 mov r10, r2
466 .LVL38:
550:./Middlewares/Third_Party/Lora/Crypto/aes.c **** t3 = s_box(t3);
467 .loc 1 550 0
468 0108 4A46 mov r2, r9
469 010a 9A5C ldrb r2, [r3, r2]
470 010c 9146 mov r9, r2
471 .LVL39:
551:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
472 .loc 1 551 0
473 010e 4246 mov r2, r8
474 0110 9B5C ldrb r3, [r3, r2]
475 0112 9846 mov r8, r3
476 .LVL40:
477 0114 A6E7 b .L11
478 .LVL41:
479 .L14:
480 .LBE15:
558:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
559:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0;
481 .loc 1 559 0
482 0116 0020 movs r0, #0
483 .LVL42:
484 .L6:
560:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
485 .loc 1 560 0
486 0118 03B0 add sp, sp, #12
487 @ sp needed
488 .LVL43:
489 011a 3CBC pop {r2, r3, r4, r5}
490 011c 9046 mov r8, r2
491 011e 9946 mov r9, r3
492 0120 A246 mov r10, r4
493 0122 AB46 mov fp, r5
494 0124 F0BD pop {r4, r5, r6, r7, pc}
495 .L16:
496 0126 C046 .align 2
497 .L15:
498 0128 00000000 .word sbox
499 .cfi_endproc
500 .LFE7:
502 .section .text.aes_encrypt,"ax",%progbits
503 .align 1
504 .global aes_encrypt
505 .syntax unified
506 .code 16
507 .thumb_func
508 .fpu softvfp
ARM GAS /tmp/ccJ0d890.s page 20
510 aes_encrypt:
511 .LFB8:
561:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
562:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
563:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
564:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( AES_ENC_PREKEYED )
565:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
566:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* Encrypt a single block of 16 bytes */
567:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
568:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return_type aes_encrypt( const uint8_t in[N_BLOCK], uint8_t out[N_BLOCK], const aes_context ctx[1]
569:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
512 .loc 1 569 0
513 .cfi_startproc
514 @ args = 0, pretend = 0, frame = 80
515 @ frame_needed = 0, uses_anonymous_args = 0
516 .LVL44:
517 0000 F0B5 push {r4, r5, r6, r7, lr}
518 .LCFI4:
519 .cfi_def_cfa_offset 20
520 .cfi_offset 4, -20
521 .cfi_offset 5, -16
522 .cfi_offset 6, -12
523 .cfi_offset 7, -8
524 .cfi_offset 14, -4
525 0002 DE46 mov lr, fp
526 0004 5746 mov r7, r10
527 0006 4E46 mov r6, r9
528 0008 4546 mov r5, r8
529 000a E0B5 push {r5, r6, r7, lr}
530 .LCFI5:
531 .cfi_def_cfa_offset 36
532 .cfi_offset 8, -36
533 .cfi_offset 9, -32
534 .cfi_offset 10, -28
535 .cfi_offset 11, -24
536 000c 95B0 sub sp, sp, #84
537 .LCFI6:
538 .cfi_def_cfa_offset 120
539 000e 0F91 str r1, [sp, #60]
540 0010 0D92 str r2, [sp, #52]
570:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if( ctx->rnd )
541 .loc 1 570 0
542 0012 F023 movs r3, #240
543 0014 D35C ldrb r3, [r2, r3]
544 0016 002B cmp r3, #0
545 0018 00D1 bne .LCB519
546 001a 5CE1 b .L21 @long jump
547 .LCB519:
548 .LBB25:
571:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
572:./Middlewares/Third_Party/Lora/Crypto/aes.c **** uint8_t s1[N_BLOCK], r;
573:./Middlewares/Third_Party/Lora/Crypto/aes.c **** copy_and_key( s1, in, ctx->ksch );
549 .loc 1 573 0
550 001c 0E92 str r2, [sp, #56]
551 001e 0100 movs r1, r0
552 .LVL45:
553 0020 10A8 add r0, sp, #64
ARM GAS /tmp/ccJ0d890.s page 21
554 .LVL46:
555 0022 FFF7FEFF bl copy_and_key
556 .LVL47:
574:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
575:./Middlewares/Third_Party/Lora/Crypto/aes.c **** for( r = 1 ; r < ctx->rnd ; ++r )
557 .loc 1 575 0
558 0026 0123 movs r3, #1
559 0028 0693 str r3, [sp, #24]
560 002a 08E1 b .L19
561 .LVL48:
562 .L20:
563 .LBB26:
564 .LBB27:
565 .LBB28:
566 .LBB29:
323:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 1] = ((uint8_t*)s)[ 1];
567 .loc 1 323 0
568 002c 10AB add r3, sp, #64
569 .LVL49:
570 002e 1B78 ldrb r3, [r3]
571 .LVL50:
572 0030 9C46 mov ip, r3
324:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 2] = ((uint8_t*)s)[ 2];
573 .loc 1 324 0
574 0032 10AB add r3, sp, #64
575 .LVL51:
576 0034 5F78 ldrb r7, [r3, #1]
577 0036 0997 str r7, [sp, #36]
325:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 3] = ((uint8_t*)s)[ 3];
578 .loc 1 325 0
579 0038 9B78 ldrb r3, [r3, #2]
580 .LVL52:
581 003a 0093 str r3, [sp]
326:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 4] = ((uint8_t*)s)[ 4];
582 .loc 1 326 0
583 003c 10AA add r2, sp, #64
584 .LVL53:
585 003e D278 ldrb r2, [r2, #3]
586 .LVL54:
587 0040 0792 str r2, [sp, #28]
327:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 5] = ((uint8_t*)s)[ 5];
588 .loc 1 327 0
589 0042 10A9 add r1, sp, #64
590 .LVL55:
591 0044 0979 ldrb r1, [r1, #4]
592 .LVL56:
593 0046 0191 str r1, [sp, #4]
328:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 6] = ((uint8_t*)s)[ 6];
594 .loc 1 328 0
595 0048 10AE add r6, sp, #64
596 .LVL57:
597 004a 7679 ldrb r6, [r6, #5]
598 .LVL58:
599 004c B146 mov r9, r6
329:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 7] = ((uint8_t*)s)[ 7];
600 .loc 1 329 0
601 004e 10AE add r6, sp, #64
ARM GAS /tmp/ccJ0d890.s page 22
602 .LVL59:
603 0050 B679 ldrb r6, [r6, #6]
604 .LVL60:
605 0052 0296 str r6, [sp, #8]
330:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 8] = ((uint8_t*)s)[ 8];
606 .loc 1 330 0
607 0054 10AD add r5, sp, #64
608 .LVL61:
609 0056 ED79 ldrb r5, [r5, #7]
610 .LVL62:
611 0058 0395 str r5, [sp, #12]
331:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 9] = ((uint8_t*)s)[ 9];
612 .loc 1 331 0
613 005a 10AC add r4, sp, #64
614 .LVL63:
615 005c 247A ldrb r4, [r4, #8]
616 .LVL64:
617 005e 0A94 str r4, [sp, #40]
332:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[10] = ((uint8_t*)s)[10];
618 .loc 1 332 0
619 0060 10AB add r3, sp, #64
620 .LVL65:
621 0062 5B7A ldrb r3, [r3, #9]
622 .LVL66:
623 0064 0B93 str r3, [sp, #44]
333:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[11] = ((uint8_t*)s)[11];
624 .loc 1 333 0
625 0066 10AA add r2, sp, #64
626 .LVL67:
627 0068 927A ldrb r2, [r2, #10]
628 .LVL68:
629 006a 9046 mov r8, r2
334:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[12] = ((uint8_t*)s)[12];
630 .loc 1 334 0
631 006c 10AA add r2, sp, #64
632 .LVL69:
633 006e D27A ldrb r2, [r2, #11]
634 .LVL70:
635 0070 0892 str r2, [sp, #32]
335:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[13] = ((uint8_t*)s)[13];
636 .loc 1 335 0
637 0072 10A9 add r1, sp, #64
638 .LVL71:
639 0074 097B ldrb r1, [r1, #12]
640 .LVL72:
641 0076 0491 str r1, [sp, #16]
336:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[14] = ((uint8_t*)s)[14];
642 .loc 1 336 0
643 0078 10A8 add r0, sp, #64
644 .LVL73:
645 007a 407B ldrb r0, [r0, #13]
646 .LVL74:
647 007c 0590 str r0, [sp, #20]
337:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[15] = ((uint8_t*)s)[15];
648 .loc 1 337 0
649 007e 10AB add r3, sp, #64
650 .LVL75:
ARM GAS /tmp/ccJ0d890.s page 23
651 0080 9E7B ldrb r6, [r3, #14]
338:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
652 .loc 1 338 0
653 0082 DF7B ldrb r7, [r3, #15]
654 .LVL76:
655 .LBE29:
656 .LBE28:
455:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 1] = s_box(st[0]) ^ gfm2_sb(st[5]) ^ gfm3_sb(st[10]) ^ s_box(st[15]);
657 .loc 1 455 0
658 0084 6346 mov r3, ip
659 .LVL77:
660 0086 954A ldr r2, .L22
661 0088 D45C ldrb r4, [r2, r3]
662 008a 4B46 mov r3, r9
663 008c 944A ldr r2, .L22+4
664 008e D35C ldrb r3, [r2, r3]
665 0090 9A46 mov r10, r3
666 0092 9449 ldr r1, .L22+8
667 0094 4346 mov r3, r8
668 0096 C85C ldrb r0, [r1, r3]
669 0098 CD5D ldrb r5, [r1, r7]
670 009a 5346 mov r3, r10
671 009c 5C40 eors r4, r3
672 009e 4440 eors r4, r0
673 00a0 0C95 str r5, [sp, #48]
674 00a2 6C40 eors r4, r5
675 00a4 10AB add r3, sp, #64
676 .LVL78:
677 00a6 1C70 strb r4, [r3]
456:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 2] = s_box(st[0]) ^ s_box(st[5]) ^ gfm2_sb(st[10]) ^ gfm3_sb(st[15]);
678 .loc 1 456 0
679 00a8 6346 mov r3, ip
680 .LVL79:
681 00aa CC5C ldrb r4, [r1, r3]
682 00ac 4B46 mov r3, r9
683 00ae 8B4A ldr r2, .L22
684 00b0 D35C ldrb r3, [r2, r3]
685 00b2 9B46 mov fp, r3
686 00b4 4346 mov r3, r8
687 00b6 8A4A ldr r2, .L22+4
688 00b8 D35C ldrb r3, [r2, r3]
689 00ba 9A46 mov r10, r3
690 00bc 5B46 mov r3, fp
691 00be 6340 eors r3, r4
692 00c0 9B46 mov fp, r3
693 00c2 5346 mov r3, r10
694 00c4 5D46 mov r5, fp
695 00c6 6B40 eors r3, r5
696 00c8 0C9D ldr r5, [sp, #48]
697 00ca 5D40 eors r5, r3
698 00cc 10AB add r3, sp, #64
699 .LVL80:
700 00ce 5D70 strb r5, [r3, #1]
457:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 3] = gfm3_sb(st[0]) ^ s_box(st[5]) ^ s_box(st[10]) ^ gfm2_sb(st[15]);
701 .loc 1 457 0
702 00d0 4B46 mov r3, r9
703 .LVL81:
ARM GAS /tmp/ccJ0d890.s page 24
704 00d2 CD5C ldrb r5, [r1, r3]
705 00d4 4346 mov r3, r8
706 00d6 814A ldr r2, .L22
707 00d8 D35C ldrb r3, [r2, r3]
708 00da 9946 mov r9, r3
709 00dc 804B ldr r3, .L22+4
710 00de DB5D ldrb r3, [r3, r7]
711 00e0 9846 mov r8, r3
712 00e2 6C40 eors r4, r5
713 00e4 4B46 mov r3, r9
714 00e6 5C40 eors r4, r3
715 00e8 4346 mov r3, r8
716 00ea 5C40 eors r4, r3
717 00ec 10AB add r3, sp, #64
718 .LVL82:
719 00ee 9C70 strb r4, [r3, #2]
458:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
720 .loc 1 458 0
721 00f0 6346 mov r3, ip
722 .LVL83:
723 00f2 7B4A ldr r2, .L22+4
724 00f4 D45C ldrb r4, [r2, r3]
725 00f6 794B ldr r3, .L22
726 00f8 DF5D ldrb r7, [r3, r7]
727 00fa 6540 eors r5, r4
728 00fc 4540 eors r5, r0
729 00fe 7D40 eors r5, r7
730 0100 10AB add r3, sp, #64
731 .LVL84:
732 0102 DD70 strb r5, [r3, #3]
460:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 5] = s_box(st[4]) ^ gfm2_sb(st[9]) ^ gfm3_sb(st[14]) ^ s_box(st[3]);
733 .loc 1 460 0
734 0104 019C ldr r4, [sp, #4]
735 0106 754B ldr r3, .L22
736 .LVL85:
737 0108 1C5D ldrb r4, [r3, r4]
738 010a 0B9A ldr r2, [sp, #44]
739 010c 744B ldr r3, .L22+4
740 010e 9F5C ldrb r7, [r3, r2]
741 0110 885D ldrb r0, [r1, r6]
742 0112 079D ldr r5, [sp, #28]
743 0114 4D5D ldrb r5, [r1, r5]
744 0116 7C40 eors r4, r7
745 0118 4440 eors r4, r0
746 011a 6C40 eors r4, r5
747 011c 10AB add r3, sp, #64
748 .LVL86:
749 011e 1C71 strb r4, [r3, #4]
461:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 6] = s_box(st[4]) ^ s_box(st[9]) ^ gfm2_sb(st[14]) ^ gfm3_sb(st[3]);
750 .loc 1 461 0
751 0120 019C ldr r4, [sp, #4]
752 0122 0C5D ldrb r4, [r1, r4]
753 0124 6D4B ldr r3, .L22
754 .LVL87:
755 0126 9B5C ldrb r3, [r3, r2]
756 0128 9C46 mov ip, r3
757 012a 6D4B ldr r3, .L22+4
ARM GAS /tmp/ccJ0d890.s page 25
758 012c 9F5D ldrb r7, [r3, r6]
759 012e 6346 mov r3, ip
760 0130 6340 eors r3, r4
761 0132 5F40 eors r7, r3
762 0134 6F40 eors r7, r5
763 0136 10AB add r3, sp, #64
764 .LVL88:
765 0138 5F71 strb r7, [r3, #5]
462:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 7] = gfm3_sb(st[4]) ^ s_box(st[9]) ^ s_box(st[14]) ^ gfm2_sb(st[3]);
766 .loc 1 462 0
767 013a 8D5C ldrb r5, [r1, r2]
768 013c 674B ldr r3, .L22
769 .LVL89:
770 013e 9F5D ldrb r7, [r3, r6]
771 0140 079A ldr r2, [sp, #28]
772 0142 674B ldr r3, .L22+4
773 0144 9E5C ldrb r6, [r3, r2]
774 0146 6C40 eors r4, r5
775 0148 7C40 eors r4, r7
776 014a 7440 eors r4, r6
777 014c 10AB add r3, sp, #64
778 .LVL90:
779 014e 9C71 strb r4, [r3, #6]
463:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
780 .loc 1 463 0
781 0150 019C ldr r4, [sp, #4]
782 0152 634B ldr r3, .L22+4
783 .LVL91:
784 0154 1C5D ldrb r4, [r3, r4]
785 0156 614B ldr r3, .L22
786 0158 9E5C ldrb r6, [r3, r2]
787 015a 6540 eors r5, r4
788 015c 4540 eors r5, r0
789 015e 7540 eors r5, r6
790 0160 10AB add r3, sp, #64
791 .LVL92:
792 0162 DD71 strb r5, [r3, #7]
465:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[ 9] = s_box(st[8]) ^ gfm2_sb(st[13]) ^ gfm3_sb(st[2]) ^ s_box(st[7]);
793 .loc 1 465 0
794 0164 0A9A ldr r2, [sp, #40]
795 0166 5D4B ldr r3, .L22
796 .LVL93:
797 0168 9C5C ldrb r4, [r3, r2]
798 016a 059F ldr r7, [sp, #20]
799 016c 5C4B ldr r3, .L22+4
800 016e DE5D ldrb r6, [r3, r7]
801 0170 0098 ldr r0, [sp]
802 0172 085C ldrb r0, [r1, r0]
803 0174 039D ldr r5, [sp, #12]
804 0176 4D5D ldrb r5, [r1, r5]
805 0178 7440 eors r4, r6
806 017a 4440 eors r4, r0
807 017c 6C40 eors r4, r5
808 017e 10AB add r3, sp, #64
809 .LVL94:
810 0180 1C72 strb r4, [r3, #8]
466:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[10] = s_box(st[8]) ^ s_box(st[13]) ^ gfm2_sb(st[2]) ^ gfm3_sb(st[7]);
ARM GAS /tmp/ccJ0d890.s page 26
811 .loc 1 466 0
812 0182 8C5C ldrb r4, [r1, r2]
813 0184 554B ldr r3, .L22
814 .LVL95:
815 0186 DF5D ldrb r7, [r3, r7]
816 0188 009E ldr r6, [sp]
817 018a 554B ldr r3, .L22+4
818 018c 9E5D ldrb r6, [r3, r6]
819 018e 6740 eors r7, r4
820 0190 7E40 eors r6, r7
821 0192 6E40 eors r6, r5
822 0194 10AB add r3, sp, #64
823 .LVL96:
824 0196 5E72 strb r6, [r3, #9]
467:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[11] = gfm3_sb(st[8]) ^ s_box(st[13]) ^ s_box(st[2]) ^ gfm2_sb(st[7]);
825 .loc 1 467 0
826 0198 059D ldr r5, [sp, #20]
827 019a 4D5D ldrb r5, [r1, r5]
828 019c 009E ldr r6, [sp]
829 019e 4F4B ldr r3, .L22
830 .LVL97:
831 01a0 9F5D ldrb r7, [r3, r6]
832 01a2 039E ldr r6, [sp, #12]
833 01a4 4E4B ldr r3, .L22+4
834 01a6 9E5D ldrb r6, [r3, r6]
835 01a8 6C40 eors r4, r5
836 01aa 7C40 eors r4, r7
837 01ac 7440 eors r4, r6
838 01ae 10AB add r3, sp, #64
839 .LVL98:
840 01b0 9C72 strb r4, [r3, #10]
468:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
841 .loc 1 468 0
842 01b2 4B4B ldr r3, .L22+4
843 .LVL99:
844 01b4 9C5C ldrb r4, [r3, r2]
845 01b6 039E ldr r6, [sp, #12]
846 01b8 484B ldr r3, .L22
847 01ba 9E5D ldrb r6, [r3, r6]
848 01bc 6540 eors r5, r4
849 01be 6840 eors r0, r5
850 01c0 7040 eors r0, r6
851 01c2 10AB add r3, sp, #64
852 .LVL100:
853 01c4 D872 strb r0, [r3, #11]
470:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[13] = s_box(st[12]) ^ gfm2_sb(st[1]) ^ gfm3_sb(st[6]) ^ s_box(st[11]);
854 .loc 1 470 0
855 01c6 049C ldr r4, [sp, #16]
856 01c8 444B ldr r3, .L22
857 .LVL101:
858 01ca 1C5D ldrb r4, [r3, r4]
859 01cc 099A ldr r2, [sp, #36]
860 01ce 444B ldr r3, .L22+4
861 01d0 9E5C ldrb r6, [r3, r2]
862 01d2 0298 ldr r0, [sp, #8]
863 01d4 085C ldrb r0, [r1, r0]
864 01d6 089D ldr r5, [sp, #32]
ARM GAS /tmp/ccJ0d890.s page 27
865 01d8 4D5D ldrb r5, [r1, r5]
866 01da 7440 eors r4, r6
867 01dc 4440 eors r4, r0
868 01de 6C40 eors r4, r5
869 01e0 10AB add r3, sp, #64
870 .LVL102:
871 01e2 1C73 strb r4, [r3, #12]
471:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[14] = s_box(st[12]) ^ s_box(st[1]) ^ gfm2_sb(st[6]) ^ gfm3_sb(st[11]);
872 .loc 1 471 0
873 01e4 049C ldr r4, [sp, #16]
874 01e6 0C5D ldrb r4, [r1, r4]
875 01e8 3C4B ldr r3, .L22
876 .LVL103:
877 01ea 9F5C ldrb r7, [r3, r2]
878 01ec 029E ldr r6, [sp, #8]
879 01ee 3C4B ldr r3, .L22+4
880 01f0 9E5D ldrb r6, [r3, r6]
881 01f2 6740 eors r7, r4
882 01f4 7E40 eors r6, r7
883 01f6 6E40 eors r6, r5
884 01f8 10AB add r3, sp, #64
885 .LVL104:
886 01fa 5E73 strb r6, [r3, #13]
472:./Middlewares/Third_Party/Lora/Crypto/aes.c **** dt[15] = gfm3_sb(st[12]) ^ s_box(st[1]) ^ s_box(st[6]) ^ gfm2_sb(st[11]);
887 .loc 1 472 0
888 01fc 895C ldrb r1, [r1, r2]
889 01fe 029E ldr r6, [sp, #8]
890 0200 364B ldr r3, .L22
891 .LVL105:
892 0202 9E5D ldrb r6, [r3, r6]
893 0204 089F ldr r7, [sp, #32]
894 0206 364B ldr r3, .L22+4
895 0208 DD5D ldrb r5, [r3, r7]
896 020a 4C40 eors r4, r1
897 020c 7440 eors r4, r6
898 020e 6C40 eors r4, r5
899 0210 10AB add r3, sp, #64
900 .LVL106:
901 0212 9C73 strb r4, [r3, #14]
473:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
902 .loc 1 473 0
903 0214 049C ldr r4, [sp, #16]
904 0216 324B ldr r3, .L22+4
905 .LVL107:
906 0218 1A5D ldrb r2, [r3, r4]
907 021a 304B ldr r3, .L22
908 021c DB5D ldrb r3, [r3, r7]
909 021e 5140 eors r1, r2
910 0220 4840 eors r0, r1
911 0222 5840 eors r0, r3
912 0224 10AB add r3, sp, #64
913 .LVL108:
914 0226 D873 strb r0, [r3, #15]
915 .LVL109:
916 .LBE27:
917 .LBE26:
576:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( VERSION_1 )
ARM GAS /tmp/ccJ0d890.s page 28
577:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
578:./Middlewares/Third_Party/Lora/Crypto/aes.c **** mix_sub_columns( s1 );
579:./Middlewares/Third_Party/Lora/Crypto/aes.c **** add_round_key( s1, ctx->ksch + r * N_BLOCK);
918 .loc 1 579 0
919 0228 069C ldr r4, [sp, #24]
920 022a 2101 lsls r1, r4, #4
921 022c 0E9B ldr r3, [sp, #56]
922 022e 9C46 mov ip, r3
923 0230 6144 add r1, r1, ip
924 .LVL110:
925 .LBB30:
926 .LBB31:
408:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
927 .loc 1 408 0
928 0232 10A8 add r0, sp, #64
929 .LVL111:
930 0234 FFF7FEFF bl xor_block
931 .LVL112:
932 .LBE31:
933 .LBE30:
575:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( VERSION_1 )
934 .loc 1 575 0
935 0238 631C adds r3, r4, #1
936 023a DBB2 uxtb r3, r3
937 023c 0693 str r3, [sp, #24]
938 .LVL113:
939 .L19:
575:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #if defined( VERSION_1 )
940 .loc 1 575 0 is_stmt 0 discriminator 1
941 023e F023 movs r3, #240
942 0240 0D9A ldr r2, [sp, #52]
943 0242 D35C ldrb r3, [r2, r3]
944 0244 069A ldr r2, [sp, #24]
945 0246 9342 cmp r3, r2
946 0248 00D9 bls .LCB982
947 024a EFE6 b .L20 @long jump
948 .LCB982:
949 .LVL114:
950 .LBB32:
951 .LBB33:
414:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 8] = s_box(st[ 8]); st[12] = s_box(st[12]);
952 .loc 1 414 0 is_stmt 1
953 024c 10AB add r3, sp, #64
954 .LVL115:
955 024e 1A78 ldrb r2, [r3]
956 0250 244B ldr r3, .L22+8
957 .LVL116:
958 0252 9A5C ldrb r2, [r3, r2]
959 0254 10A9 add r1, sp, #64
960 .LVL117:
961 0256 0A70 strb r2, [r1]
962 0258 0A79 ldrb r2, [r1, #4]
963 025a 9A5C ldrb r2, [r3, r2]
964 025c 0A71 strb r2, [r1, #4]
415:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
965 .loc 1 415 0
966 025e 0A7A ldrb r2, [r1, #8]
ARM GAS /tmp/ccJ0d890.s page 29
967 0260 9A5C ldrb r2, [r3, r2]
968 0262 0A72 strb r2, [r1, #8]
969 0264 0A7B ldrb r2, [r1, #12]
970 0266 9A5C ldrb r2, [r3, r2]
971 0268 0A73 strb r2, [r1, #12]
417:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 9] = s_box(st[13]); st[13] = s_box( tt );
972 .loc 1 417 0
973 026a 4A78 ldrb r2, [r1, #1]
974 .LVL118:
975 026c 4979 ldrb r1, [r1, #5]
976 .LVL119:
977 026e 595C ldrb r1, [r3, r1]
978 0270 10A8 add r0, sp, #64
979 .LVL120:
980 0272 4170 strb r1, [r0, #1]
981 0274 417A ldrb r1, [r0, #9]
982 0276 595C ldrb r1, [r3, r1]
983 0278 4171 strb r1, [r0, #5]
418:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
984 .loc 1 418 0
985 027a 417B ldrb r1, [r0, #13]
986 027c 595C ldrb r1, [r3, r1]
987 027e 4172 strb r1, [r0, #9]
988 0280 9A5C ldrb r2, [r3, r2]
989 .LVL121:
990 0282 4273 strb r2, [r0, #13]
420:./Middlewares/Third_Party/Lora/Crypto/aes.c **** tt = st[6]; st[ 6] = s_box(st[14]); st[14] = s_box( tt );
991 .loc 1 420 0
992 0284 8278 ldrb r2, [r0, #2]
993 .LVL122:
994 0286 817A ldrb r1, [r0, #10]
995 0288 595C ldrb r1, [r3, r1]
996 028a 8170 strb r1, [r0, #2]
997 028c 9A5C ldrb r2, [r3, r2]
998 .LVL123:
999 028e 8272 strb r2, [r0, #10]
421:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
1000 .loc 1 421 0
1001 0290 8279 ldrb r2, [r0, #6]
1002 .LVL124:
1003 0292 817B ldrb r1, [r0, #14]
1004 0294 595C ldrb r1, [r3, r1]
1005 0296 8171 strb r1, [r0, #6]
1006 0298 9A5C ldrb r2, [r3, r2]
1007 .LVL125:
1008 029a 8273 strb r2, [r0, #14]
423:./Middlewares/Third_Party/Lora/Crypto/aes.c **** st[ 7] = s_box(st[ 3]); st[ 3] = s_box( tt );
1009 .loc 1 423 0
1010 029c C27B ldrb r2, [r0, #15]
1011 .LVL126:
1012 029e C17A ldrb r1, [r0, #11]
1013 02a0 595C ldrb r1, [r3, r1]
1014 02a2 C173 strb r1, [r0, #15]
1015 02a4 C179 ldrb r1, [r0, #7]
1016 02a6 595C ldrb r1, [r3, r1]
1017 02a8 C172 strb r1, [r0, #11]
424:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
ARM GAS /tmp/ccJ0d890.s page 30
1018 .loc 1 424 0
1019 02aa C178 ldrb r1, [r0, #3]
1020 02ac 595C ldrb r1, [r3, r1]
1021 02ae C171 strb r1, [r0, #7]
1022 02b0 9B5C ldrb r3, [r3, r2]
1023 02b2 C370 strb r3, [r0, #3]
1024 .LVL127:
1025 .LBE33:
1026 .LBE32:
580:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
581:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #else
582:./Middlewares/Third_Party/Lora/Crypto/aes.c **** { uint8_t s2[N_BLOCK];
583:./Middlewares/Third_Party/Lora/Crypto/aes.c **** mix_sub_columns( s2, s1 );
584:./Middlewares/Third_Party/Lora/Crypto/aes.c **** copy_and_key( s1, s2, ctx->ksch + r * N_BLOCK);
585:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
586:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
587:./Middlewares/Third_Party/Lora/Crypto/aes.c **** shift_sub_rows( s1 );
588:./Middlewares/Third_Party/Lora/Crypto/aes.c **** copy_and_key( out, s1, ctx->ksch + r * N_BLOCK );
1027 .loc 1 588 0
1028 02b4 069B ldr r3, [sp, #24]
1029 02b6 1A01 lsls r2, r3, #4
1030 02b8 0D9B ldr r3, [sp, #52]
1031 02ba 9C46 mov ip, r3
1032 02bc 6244 add r2, r2, ip
1033 02be 0100 movs r1, r0
1034 02c0 0F98 ldr r0, [sp, #60]
1035 02c2 FFF7FEFF bl copy_and_key
1036 .LVL128:
1037 .LBE25:
589:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
590:./Middlewares/Third_Party/Lora/Crypto/aes.c **** else
591:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return ( uint8_t )-1;
592:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0;
1038 .loc 1 592 0
1039 02c6 0020 movs r0, #0
1040 .LVL129:
1041 .L18:
593:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
1042 .loc 1 593 0
1043 02c8 15B0 add sp, sp, #84
1044 @ sp needed
1045 02ca 3CBC pop {r2, r3, r4, r5}
1046 02cc 9046 mov r8, r2
1047 02ce 9946 mov r9, r3
1048 02d0 A246 mov r10, r4
1049 02d2 AB46 mov fp, r5
1050 02d4 F0BD pop {r4, r5, r6, r7, pc}
1051 .LVL130:
1052 .L21:
591:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return 0;
1053 .loc 1 591 0
1054 02d6 FF20 movs r0, #255
1055 .LVL131:
1056 02d8 F6E7 b .L18
1057 .L23:
1058 02da C046 .align 2
1059 .L22:
ARM GAS /tmp/ccJ0d890.s page 31
1060 02dc 00000000 .word gfm2_sbox
1061 02e0 00000000 .word gfm3_sbox
1062 02e4 00000000 .word sbox
1063 .cfi_endproc
1064 .LFE8:
1066 .section .text.aes_cbc_encrypt,"ax",%progbits
1067 .align 1
1068 .global aes_cbc_encrypt
1069 .syntax unified
1070 .code 16
1071 .thumb_func
1072 .fpu softvfp
1074 aes_cbc_encrypt:
1075 .LFB9:
594:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
595:./Middlewares/Third_Party/Lora/Crypto/aes.c **** /* CBC encrypt a number of blocks (input and return an IV) */
596:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
597:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return_type aes_cbc_encrypt( const uint8_t *in, uint8_t *out,
598:./Middlewares/Third_Party/Lora/Crypto/aes.c **** int32_t n_block, uint8_t iv[N_BLOCK], const aes_context ctx[1] )
599:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
1076 .loc 1 599 0
1077 .cfi_startproc
1078 @ args = 4, pretend = 0, frame = 0
1079 @ frame_needed = 0, uses_anonymous_args = 0
1080 .LVL132:
1081 0000 F8B5 push {r3, r4, r5, r6, r7, lr}
1082 .LCFI7:
1083 .cfi_def_cfa_offset 24
1084 .cfi_offset 3, -24
1085 .cfi_offset 4, -20
1086 .cfi_offset 5, -16
1087 .cfi_offset 6, -12
1088 .cfi_offset 7, -8
1089 .cfi_offset 14, -4
1090 0002 0600 movs r6, r0
1091 0004 0D00 movs r5, r1
1092 0006 1C00 movs r4, r3
1093 .LVL133:
1094 .L25:
600:./Middlewares/Third_Party/Lora/Crypto/aes.c ****
601:./Middlewares/Third_Party/Lora/Crypto/aes.c **** while(n_block--)
1095 .loc 1 601 0
1096 0008 571E subs r7, r2, #1
1097 .LVL134:
1098 000a 002A cmp r2, #0
1099 000c 2ED0 beq .L29
602:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
603:./Middlewares/Third_Party/Lora/Crypto/aes.c **** xor_block(iv, in);
1100 .loc 1 603 0
1101 000e 3100 movs r1, r6
1102 0010 2000 movs r0, r4
1103 0012 FFF7FEFF bl xor_block
1104 .LVL135:
604:./Middlewares/Third_Party/Lora/Crypto/aes.c **** if(aes_encrypt(iv, iv, ctx) != EXIT_SUCCESS)
1105 .loc 1 604 0
1106 0016 069A ldr r2, [sp, #24]
1107 0018 2100 movs r1, r4
ARM GAS /tmp/ccJ0d890.s page 32
1108 001a 2000 movs r0, r4
1109 001c FFF7FEFF bl aes_encrypt
1110 .LVL136:
1111 0020 0028 cmp r0, #0
1112 0022 25D1 bne .L28
1113 .LVL137:
1114 .LBB34:
1115 .LBB35:
323:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 1] = ((uint8_t*)s)[ 1];
1116 .loc 1 323 0
1117 0024 2378 ldrb r3, [r4]
1118 0026 2B70 strb r3, [r5]
324:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 2] = ((uint8_t*)s)[ 2];
1119 .loc 1 324 0
1120 0028 6378 ldrb r3, [r4, #1]
1121 002a 6B70 strb r3, [r5, #1]
325:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 3] = ((uint8_t*)s)[ 3];
1122 .loc 1 325 0
1123 002c A378 ldrb r3, [r4, #2]
1124 002e AB70 strb r3, [r5, #2]
326:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 4] = ((uint8_t*)s)[ 4];
1125 .loc 1 326 0
1126 0030 E378 ldrb r3, [r4, #3]
1127 0032 EB70 strb r3, [r5, #3]
327:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 5] = ((uint8_t*)s)[ 5];
1128 .loc 1 327 0
1129 0034 2379 ldrb r3, [r4, #4]
1130 0036 2B71 strb r3, [r5, #4]
328:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 6] = ((uint8_t*)s)[ 6];
1131 .loc 1 328 0
1132 0038 6379 ldrb r3, [r4, #5]
1133 003a 6B71 strb r3, [r5, #5]
329:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 7] = ((uint8_t*)s)[ 7];
1134 .loc 1 329 0
1135 003c A379 ldrb r3, [r4, #6]
1136 003e AB71 strb r3, [r5, #6]
330:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 8] = ((uint8_t*)s)[ 8];
1137 .loc 1 330 0
1138 0040 E379 ldrb r3, [r4, #7]
1139 0042 EB71 strb r3, [r5, #7]
331:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[ 9] = ((uint8_t*)s)[ 9];
1140 .loc 1 331 0
1141 0044 237A ldrb r3, [r4, #8]
1142 0046 2B72 strb r3, [r5, #8]
332:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[10] = ((uint8_t*)s)[10];
1143 .loc 1 332 0
1144 0048 637A ldrb r3, [r4, #9]
1145 004a 6B72 strb r3, [r5, #9]
333:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[11] = ((uint8_t*)s)[11];
1146 .loc 1 333 0
1147 004c A37A ldrb r3, [r4, #10]
1148 004e AB72 strb r3, [r5, #10]
334:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[12] = ((uint8_t*)s)[12];
1149 .loc 1 334 0
1150 0050 E37A ldrb r3, [r4, #11]
1151 0052 EB72 strb r3, [r5, #11]
335:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[13] = ((uint8_t*)s)[13];
ARM GAS /tmp/ccJ0d890.s page 33
1152 .loc 1 335 0
1153 0054 237B ldrb r3, [r4, #12]
1154 0056 2B73 strb r3, [r5, #12]
336:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[14] = ((uint8_t*)s)[14];
1155 .loc 1 336 0
1156 0058 637B ldrb r3, [r4, #13]
1157 005a 6B73 strb r3, [r5, #13]
337:./Middlewares/Third_Party/Lora/Crypto/aes.c **** ((uint8_t*)d)[15] = ((uint8_t*)s)[15];
1158 .loc 1 337 0
1159 005c A37B ldrb r3, [r4, #14]
1160 005e AB73 strb r3, [r5, #14]
338:./Middlewares/Third_Party/Lora/Crypto/aes.c **** #endif
1161 .loc 1 338 0
1162 0060 E37B ldrb r3, [r4, #15]
1163 0062 EB73 strb r3, [r5, #15]
1164 .LVL138:
1165 .LBE35:
1166 .LBE34:
605:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return EXIT_FAILURE;
606:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //memcpy(out, iv, N_BLOCK);
607:./Middlewares/Third_Party/Lora/Crypto/aes.c **** block_copy(out, iv);
608:./Middlewares/Third_Party/Lora/Crypto/aes.c **** in += N_BLOCK;
1167 .loc 1 608 0
1168 0064 1036 adds r6, r6, #16
1169 .LVL139:
609:./Middlewares/Third_Party/Lora/Crypto/aes.c **** out += N_BLOCK;
1170 .loc 1 609 0
1171 0066 1035 adds r5, r5, #16
1172 .LVL140:
601:./Middlewares/Third_Party/Lora/Crypto/aes.c **** {
1173 .loc 1 601 0
1174 0068 3A00 movs r2, r7
1175 006a CDE7 b .L25
1176 .L29:
610:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
611:./Middlewares/Third_Party/Lora/Crypto/aes.c **** return EXIT_SUCCESS;
1177 .loc 1 611 0
1178 006c 0020 movs r0, #0
1179 .L26:
612:./Middlewares/Third_Party/Lora/Crypto/aes.c **** }
1180 .loc 1 612 0
1181 @ sp needed
1182 .LVL141:
1183 .LVL142:
1184 .LVL143:
1185 .LVL144:
1186 006e F8BD pop {r3, r4, r5, r6, r7, pc}
1187 .LVL145:
1188 .L28:
605:./Middlewares/Third_Party/Lora/Crypto/aes.c **** //memcpy(out, iv, N_BLOCK);
1189 .loc 1 605 0
1190 0070 0120 movs r0, #1
1191 0072 FCE7 b .L26
1192 .cfi_endproc
1193 .LFE9:
1195 .section .rodata.gfm2_sbox,"a",%progbits
1196 .align 2
ARM GAS /tmp/ccJ0d890.s page 34
1199 gfm2_sbox:
1200 0000 C6 .byte -58
1201 0001 F8 .byte -8
1202 0002 EE .byte -18
1203 0003 F6 .byte -10
1204 0004 FF .byte -1
1205 0005 D6 .byte -42
1206 0006 DE .byte -34
1207 0007 91 .byte -111
1208 0008 60 .byte 96
1209 0009 02 .byte 2
1210 000a CE .byte -50
1211 000b 56 .byte 86
1212 000c E7 .byte -25
1213 000d B5 .byte -75
1214 000e 4D .byte 77
1215 000f EC .byte -20
1216 0010 8F .byte -113
1217 0011 1F .byte 31
1218 0012 89 .byte -119
1219 0013 FA .byte -6
1220 0014 EF .byte -17
1221 0015 B2 .byte -78
1222 0016 8E .byte -114
1223 0017 FB .byte -5
1224 0018 41 .byte 65
1225 0019 B3 .byte -77
1226 001a 5F .byte 95
1227 001b 45 .byte 69
1228 001c 23 .byte 35
1229 001d 53 .byte 83
1230 001e E4 .byte -28
1231 001f 9B .byte -101
1232 0020 75 .byte 117
1233 0021 E1 .byte -31
1234 0022 3D .byte 61
1235 0023 4C .byte 76
1236 0024 6C .byte 108
1237 0025 7E .byte 126
1238 0026 F5 .byte -11
1239 0027 83 .byte -125
1240 0028 68 .byte 104
1241 0029 51 .byte 81
1242 002a D1 .byte -47
1243 002b F9 .byte -7
1244 002c E2 .byte -30
1245 002d AB .byte -85
1246 002e 62 .byte 98
1247 002f 2A .byte 42
1248 0030 08 .byte 8
1249 0031 95 .byte -107
1250 0032 46 .byte 70
1251 0033 9D .byte -99
1252 0034 30 .byte 48
1253 0035 37 .byte 55
1254 0036 0A .byte 10
1255 0037 2F .byte 47
ARM GAS /tmp/ccJ0d890.s page 35
1256 0038 0E .byte 14
1257 0039 24 .byte 36
1258 003a 1B .byte 27
1259 003b DF .byte -33
1260 003c CD .byte -51
1261 003d 4E .byte 78
1262 003e 7F .byte 127
1263 003f EA .byte -22
1264 0040 12 .byte 18
1265 0041 1D .byte 29
1266 0042 58 .byte 88
1267 0043 34 .byte 52
1268 0044 36 .byte 54
1269 0045 DC .byte -36
1270 0046 B4 .byte -76
1271 0047 5B .byte 91
1272 0048 A4 .byte -92
1273 0049 76 .byte 118
1274 004a B7 .byte -73
1275 004b 7D .byte 125
1276 004c 52 .byte 82
1277 004d DD .byte -35
1278 004e 5E .byte 94
1279 004f 13 .byte 19
1280 0050 A6 .byte -90
1281 0051 B9 .byte -71
1282 0052 00 .byte 0
1283 0053 C1 .byte -63
1284 0054 40 .byte 64
1285 0055 E3 .byte -29
1286 0056 79 .byte 121
1287 0057 B6 .byte -74
1288 0058 D4 .byte -44
1289 0059 8D .byte -115
1290 005a 67 .byte 103
1291 005b 72 .byte 114
1292 005c 94 .byte -108
1293 005d 98 .byte -104
1294 005e B0 .byte -80
1295 005f 85 .byte -123
1296 0060 BB .byte -69
1297 0061 C5 .byte -59
1298 0062 4F .byte 79
1299 0063 ED .byte -19
1300 0064 86 .byte -122
1301 0065 9A .byte -102
1302 0066 66 .byte 102
1303 0067 11 .byte 17
1304 0068 8A .byte -118
1305 0069 E9 .byte -23
1306 006a 04 .byte 4
1307 006b FE .byte -2
1308 006c A0 .byte -96
1309 006d 78 .byte 120
1310 006e 25 .byte 37
1311 006f 4B .byte 75
1312 0070 A2 .byte -94
ARM GAS /tmp/ccJ0d890.s page 36
1313 0071 5D .byte 93
1314 0072 80 .byte -128
1315 0073 05 .byte 5
1316 0074 3F .byte 63
1317 0075 21 .byte 33
1318 0076 70 .byte 112
1319 0077 F1 .byte -15
1320 0078 63 .byte 99
1321 0079 77 .byte 119
1322 007a AF .byte -81
1323 007b 42 .byte 66
1324 007c 20 .byte 32
1325 007d E5 .byte -27
1326 007e FD .byte -3
1327 007f BF .byte -65
1328 0080 81 .byte -127
1329 0081 18 .byte 24
1330 0082 26 .byte 38
1331 0083 C3 .byte -61
1332 0084 BE .byte -66
1333 0085 35 .byte 53
1334 0086 88 .byte -120
1335 0087 2E .byte 46
1336 0088 93 .byte -109
1337 0089 55 .byte 85
1338 008a FC .byte -4
1339 008b 7A .byte 122
1340 008c C8 .byte -56
1341 008d BA .byte -70
1342 008e 32 .byte 50
1343 008f E6 .byte -26
1344 0090 C0 .byte -64
1345 0091 19 .byte 25
1346 0092 9E .byte -98
1347 0093 A3 .byte -93
1348 0094 44 .byte 68
1349 0095 54 .byte 84
1350 0096 3B .byte 59
1351 0097 0B .byte 11
1352 0098 8C .byte -116
1353 0099 C7 .byte -57
1354 009a 6B .byte 107
1355 009b 28 .byte 40
1356 009c A7 .byte -89
1357 009d BC .byte -68
1358 009e 16 .byte 22
1359 009f AD .byte -83
1360 00a0 DB .byte -37
1361 00a1 64 .byte 100
1362 00a2 74 .byte 116
1363 00a3 14 .byte 20
1364 00a4 92 .byte -110
1365 00a5 0C .byte 12
1366 00a6 48 .byte 72
1367 00a7 B8 .byte -72
1368 00a8 9F .byte -97
1369 00a9 BD .byte -67
ARM GAS /tmp/ccJ0d890.s page 37
1370 00aa 43 .byte 67
1371 00ab C4 .byte -60
1372 00ac 39 .byte 57
1373 00ad 31 .byte 49
1374 00ae D3 .byte -45
1375 00af F2 .byte -14
1376 00b0 D5 .byte -43
1377 00b1 8B .byte -117
1378 00b2 6E .byte 110
1379 00b3 DA .byte -38
1380 00b4 01 .byte 1
1381 00b5 B1 .byte -79
1382 00b6 9C .byte -100
1383 00b7 49 .byte 73
1384 00b8 D8 .byte -40
1385 00b9 AC .byte -84
1386 00ba F3 .byte -13
1387 00bb CF .byte -49
1388 00bc CA .byte -54
1389 00bd F4 .byte -12
1390 00be 47 .byte 71
1391 00bf 10 .byte 16
1392 00c0 6F .byte 111
1393 00c1 F0 .byte -16
1394 00c2 4A .byte 74
1395 00c3 5C .byte 92
1396 00c4 38 .byte 56
1397 00c5 57 .byte 87
1398 00c6 73 .byte 115
1399 00c7 97 .byte -105
1400 00c8 CB .byte -53
1401 00c9 A1 .byte -95
1402 00ca E8 .byte -24
1403 00cb 3E .byte 62
1404 00cc 96 .byte -106
1405 00cd 61 .byte 97
1406 00ce 0D .byte 13
1407 00cf 0F .byte 15
1408 00d0 E0 .byte -32
1409 00d1 7C .byte 124
1410 00d2 71 .byte 113
1411 00d3 CC .byte -52
1412 00d4 90 .byte -112
1413 00d5 06 .byte 6
1414 00d6 F7 .byte -9
1415 00d7 1C .byte 28
1416 00d8 C2 .byte -62
1417 00d9 6A .byte 106
1418 00da AE .byte -82
1419 00db 69 .byte 105
1420 00dc 17 .byte 23
1421 00dd 99 .byte -103
1422 00de 3A .byte 58
1423 00df 27 .byte 39
1424 00e0 D9 .byte -39
1425 00e1 EB .byte -21
1426 00e2 2B .byte 43
ARM GAS /tmp/ccJ0d890.s page 38
1427 00e3 22 .byte 34
1428 00e4 D2 .byte -46
1429 00e5 A9 .byte -87
1430 00e6 07 .byte 7
1431 00e7 33 .byte 51
1432 00e8 2D .byte 45
1433 00e9 3C .byte 60
1434 00ea 15 .byte 21
1435 00eb C9 .byte -55
1436 00ec 87 .byte -121
1437 00ed AA .byte -86
1438 00ee 50 .byte 80
1439 00ef A5 .byte -91
1440 00f0 03 .byte 3
1441 00f1 59 .byte 89
1442 00f2 09 .byte 9
1443 00f3 1A .byte 26
1444 00f4 65 .byte 101
1445 00f5 D7 .byte -41
1446 00f6 84 .byte -124
1447 00f7 D0 .byte -48
1448 00f8 82 .byte -126
1449 00f9 29 .byte 41
1450 00fa 5A .byte 90
1451 00fb 1E .byte 30
1452 00fc 7B .byte 123
1453 00fd A8 .byte -88
1454 00fe 6D .byte 109
1455 00ff 2C .byte 44
1456 .section .rodata.gfm3_sbox,"a",%progbits
1457 .align 2
1460 gfm3_sbox:
1461 0000 A5 .byte -91
1462 0001 84 .byte -124
1463 0002 99 .byte -103
1464 0003 8D .byte -115
1465 0004 0D .byte 13
1466 0005 BD .byte -67
1467 0006 B1 .byte -79
1468 0007 54 .byte 84
1469 0008 50 .byte 80
1470 0009 03 .byte 3
1471 000a A9 .byte -87
1472 000b 7D .byte 125
1473 000c 19 .byte 25
1474 000d 62 .byte 98
1475 000e E6 .byte -26
1476 000f 9A .byte -102
1477 0010 45 .byte 69
1478 0011 9D .byte -99
1479 0012 40 .byte 64
1480 0013 87 .byte -121
1481 0014 15 .byte 21
1482 0015 EB .byte -21
1483 0016 C9 .byte -55
1484 0017 0B .byte 11
1485 0018 EC .byte -20
ARM GAS /tmp/ccJ0d890.s page 39
1486 0019 67 .byte 103
1487 001a FD .byte -3
1488 001b EA .byte -22
1489 001c BF .byte -65
1490 001d F7 .byte -9
1491 001e 96 .byte -106
1492 001f 5B .byte 91
1493 0020 C2 .byte -62
1494 0021 1C .byte 28
1495 0022 AE .byte -82
1496 0023 6A .byte 106
1497 0024 5A .byte 90
1498 0025 41 .byte 65
1499 0026 02 .byte 2
1500 0027 4F .byte 79
1501 0028 5C .byte 92
1502 0029 F4 .byte -12
1503 002a 34 .byte 52
1504 002b 08 .byte 8
1505 002c 93 .byte -109
1506 002d 73 .byte 115
1507 002e 53 .byte 83
1508 002f 3F .byte 63
1509 0030 0C .byte 12
1510 0031 52 .byte 82
1511 0032 65 .byte 101
1512 0033 5E .byte 94
1513 0034 28 .byte 40
1514 0035 A1 .byte -95
1515 0036 0F .byte 15
1516 0037 B5 .byte -75
1517 0038 09 .byte 9
1518 0039 36 .byte 54
1519 003a 9B .byte -101
1520 003b 3D .byte 61
1521 003c 26 .byte 38
1522 003d 69 .byte 105
1523 003e CD .byte -51
1524 003f 9F .byte -97
1525 0040 1B .byte 27
1526 0041 9E .byte -98
1527 0042 74 .byte 116
1528 0043 2E .byte 46
1529 0044 2D .byte 45
1530 0045 B2 .byte -78
1531 0046 EE .byte -18
1532 0047 FB .byte -5
1533 0048 F6 .byte -10
1534 0049 4D .byte 77
1535 004a 61 .byte 97
1536 004b CE .byte -50
1537 004c 7B .byte 123
1538 004d 3E .byte 62
1539 004e 71 .byte 113
1540 004f 97 .byte -105
1541 0050 F5 .byte -11
1542 0051 68 .byte 104
ARM GAS /tmp/ccJ0d890.s page 40
1543 0052 00 .byte 0
1544 0053 2C .byte 44
1545 0054 60 .byte 96
1546 0055 1F .byte 31
1547 0056 C8 .byte -56
1548 0057 ED .byte -19
1549 0058 BE .byte -66
1550 0059 46 .byte 70
1551 005a D9 .byte -39
1552 005b 4B .byte 75
1553 005c DE .byte -34
1554 005d D4 .byte -44
1555 005e E8 .byte -24
1556 005f 4A .byte 74
1557 0060 6B .byte 107
1558 0061 2A .byte 42
1559 0062 E5 .byte -27
1560 0063 16 .byte 22
1561 0064 C5 .byte -59
1562 0065 D7 .byte -41
1563 0066 55 .byte 85
1564 0067 94 .byte -108
1565 0068 CF .byte -49
1566 0069 10 .byte 16
1567 006a 06 .byte 6
1568 006b 81 .byte -127
1569 006c F0 .byte -16
1570 006d 44 .byte 68
1571 006e BA .byte -70
1572 006f E3 .byte -29
1573 0070 F3 .byte -13
1574 0071 FE .byte -2
1575 0072 C0 .byte -64
1576 0073 8A .byte -118
1577 0074 AD .byte -83
1578 0075 BC .byte -68
1579 0076 48 .byte 72
1580 0077 04 .byte 4
1581 0078 DF .byte -33
1582 0079 C1 .byte -63
1583 007a 75 .byte 117
1584 007b 63 .byte 99
1585 007c 30 .byte 48
1586 007d 1A .byte 26
1587 007e 0E .byte 14
1588 007f 6D .byte 109
1589 0080 4C .byte 76
1590 0081 14 .byte 20
1591 0082 35 .byte 53
1592 0083 2F .byte 47
1593 0084 E1 .byte -31
1594 0085 A2 .byte -94
1595 0086 CC .byte -52
1596 0087 39 .byte 57
1597 0088 57 .byte 87
1598 0089 F2 .byte -14
1599 008a 82 .byte -126
ARM GAS /tmp/ccJ0d890.s page 41
1600 008b 47 .byte 71
1601 008c AC .byte -84
1602 008d E7 .byte -25
1603 008e 2B .byte 43
1604 008f 95 .byte -107
1605 0090 A0 .byte -96
1606 0091 98 .byte -104
1607 0092 D1 .byte -47
1608 0093 7F .byte 127
1609 0094 66 .byte 102
1610 0095 7E .byte 126
1611 0096 AB .byte -85
1612 0097 83 .byte -125
1613 0098 CA .byte -54
1614 0099 29 .byte 41
1615 009a D3 .byte -45
1616 009b 3C .byte 60
1617 009c 79 .byte 121
1618 009d E2 .byte -30
1619 009e 1D .byte 29
1620 009f 76 .byte 118
1621 00a0 3B .byte 59
1622 00a1 56 .byte 86
1623 00a2 4E .byte 78
1624 00a3 1E .byte 30
1625 00a4 DB .byte -37
1626 00a5 0A .byte 10
1627 00a6 6C .byte 108
1628 00a7 E4 .byte -28
1629 00a8 5D .byte 93
1630 00a9 6E .byte 110
1631 00aa EF .byte -17
1632 00ab A6 .byte -90
1633 00ac A8 .byte -88
1634 00ad A4 .byte -92
1635 00ae 37 .byte 55
1636 00af 8B .byte -117
1637 00b0 32 .byte 50
1638 00b1 43 .byte 67
1639 00b2 59 .byte 89
1640 00b3 B7 .byte -73
1641 00b4 8C .byte -116
1642 00b5 64 .byte 100
1643 00b6 D2 .byte -46
1644 00b7 E0 .byte -32
1645 00b8 B4 .byte -76
1646 00b9 FA .byte -6
1647 00ba 07 .byte 7
1648 00bb 25 .byte 37
1649 00bc AF .byte -81
1650 00bd 8E .byte -114
1651 00be E9 .byte -23
1652 00bf 18 .byte 24
1653 00c0 D5 .byte -43
1654 00c1 88 .byte -120
1655 00c2 6F .byte 111
1656 00c3 72 .byte 114
ARM GAS /tmp/ccJ0d890.s page 42
1657 00c4 24 .byte 36
1658 00c5 F1 .byte -15
1659 00c6 C7 .byte -57
1660 00c7 51 .byte 81
1661 00c8 23 .byte 35
1662 00c9 7C .byte 124
1663 00ca 9C .byte -100
1664 00cb 21 .byte 33
1665 00cc DD .byte -35
1666 00cd DC .byte -36
1667 00ce 86 .byte -122
1668 00cf 85 .byte -123
1669 00d0 90 .byte -112
1670 00d1 42 .byte 66
1671 00d2 C4 .byte -60
1672 00d3 AA .byte -86
1673 00d4 D8 .byte -40
1674 00d5 05 .byte 5
1675 00d6 01 .byte 1
1676 00d7 12 .byte 18
1677 00d8 A3 .byte -93
1678 00d9 5F .byte 95
1679 00da F9 .byte -7
1680 00db D0 .byte -48
1681 00dc 91 .byte -111
1682 00dd 58 .byte 88
1683 00de 27 .byte 39
1684 00df B9 .byte -71
1685 00e0 38 .byte 56
1686 00e1 13 .byte 19
1687 00e2 B3 .byte -77
1688 00e3 33 .byte 51
1689 00e4 BB .byte -69
1690 00e5 70 .byte 112
1691 00e6 89 .byte -119
1692 00e7 A7 .byte -89
1693 00e8 B6 .byte -74
1694 00e9 22 .byte 34
1695 00ea 92 .byte -110
1696 00eb 20 .byte 32
1697 00ec 49 .byte 73
1698 00ed FF .byte -1
1699 00ee 78 .byte 120
1700 00ef 7A .byte 122
1701 00f0 8F .byte -113
1702 00f1 F8 .byte -8
1703 00f2 80 .byte -128
1704 00f3 17 .byte 23
1705 00f4 DA .byte -38
1706 00f5 31 .byte 49
1707 00f6 C6 .byte -58
1708 00f7 B8 .byte -72
1709 00f8 C3 .byte -61
1710 00f9 B0 .byte -80
1711 00fa 77 .byte 119
1712 00fb 11 .byte 17
1713 00fc CB .byte -53
ARM GAS /tmp/ccJ0d890.s page 43
1714 00fd FC .byte -4
1715 00fe D6 .byte -42
1716 00ff 3A .byte 58
1717 .section .rodata.sbox,"a",%progbits
1718 .align 2
1721 sbox:
1722 0000 63 .byte 99
1723 0001 7C .byte 124
1724 0002 77 .byte 119
1725 0003 7B .byte 123
1726 0004 F2 .byte -14
1727 0005 6B .byte 107
1728 0006 6F .byte 111
1729 0007 C5 .byte -59
1730 0008 30 .byte 48
1731 0009 01 .byte 1
1732 000a 67 .byte 103
1733 000b 2B .byte 43
1734 000c FE .byte -2
1735 000d D7 .byte -41
1736 000e AB .byte -85
1737 000f 76 .byte 118
1738 0010 CA .byte -54
1739 0011 82 .byte -126
1740 0012 C9 .byte -55
1741 0013 7D .byte 125
1742 0014 FA .byte -6
1743 0015 59 .byte 89
1744 0016 47 .byte 71
1745 0017 F0 .byte -16
1746 0018 AD .byte -83
1747 0019 D4 .byte -44
1748 001a A2 .byte -94
1749 001b AF .byte -81
1750 001c 9C .byte -100
1751 001d A4 .byte -92
1752 001e 72 .byte 114
1753 001f C0 .byte -64
1754 0020 B7 .byte -73
1755 0021 FD .byte -3
1756 0022 93 .byte -109
1757 0023 26 .byte 38
1758 0024 36 .byte 54
1759 0025 3F .byte 63
1760 0026 F7 .byte -9
1761 0027 CC .byte -52
1762 0028 34 .byte 52
1763 0029 A5 .byte -91
1764 002a E5 .byte -27
1765 002b F1 .byte -15
1766 002c 71 .byte 113
1767 002d D8 .byte -40
1768 002e 31 .byte 49
1769 002f 15 .byte 21
1770 0030 04 .byte 4
1771 0031 C7 .byte -57
1772 0032 23 .byte 35
ARM GAS /tmp/ccJ0d890.s page 44
1773 0033 C3 .byte -61
1774 0034 18 .byte 24
1775 0035 96 .byte -106
1776 0036 05 .byte 5
1777 0037 9A .byte -102
1778 0038 07 .byte 7
1779 0039 12 .byte 18
1780 003a 80 .byte -128
1781 003b E2 .byte -30
1782 003c EB .byte -21
1783 003d 27 .byte 39
1784 003e B2 .byte -78
1785 003f 75 .byte 117
1786 0040 09 .byte 9
1787 0041 83 .byte -125
1788 0042 2C .byte 44
1789 0043 1A .byte 26
1790 0044 1B .byte 27
1791 0045 6E .byte 110
1792 0046 5A .byte 90
1793 0047 A0 .byte -96
1794 0048 52 .byte 82
1795 0049 3B .byte 59
1796 004a D6 .byte -42
1797 004b B3 .byte -77
1798 004c 29 .byte 41
1799 004d E3 .byte -29
1800 004e 2F .byte 47
1801 004f 84 .byte -124
1802 0050 53 .byte 83
1803 0051 D1 .byte -47
1804 0052 00 .byte 0
1805 0053 ED .byte -19
1806 0054 20 .byte 32
1807 0055 FC .byte -4
1808 0056 B1 .byte -79
1809 0057 5B .byte 91
1810 0058 6A .byte 106
1811 0059 CB .byte -53
1812 005a BE .byte -66
1813 005b 39 .byte 57
1814 005c 4A .byte 74
1815 005d 4C .byte 76
1816 005e 58 .byte 88
1817 005f CF .byte -49
1818 0060 D0 .byte -48
1819 0061 EF .byte -17
1820 0062 AA .byte -86
1821 0063 FB .byte -5
1822 0064 43 .byte 67
1823 0065 4D .byte 77
1824 0066 33 .byte 51
1825 0067 85 .byte -123
1826 0068 45 .byte 69
1827 0069 F9 .byte -7
1828 006a 02 .byte 2
1829 006b 7F .byte 127
ARM GAS /tmp/ccJ0d890.s page 45
1830 006c 50 .byte 80
1831 006d 3C .byte 60
1832 006e 9F .byte -97
1833 006f A8 .byte -88
1834 0070 51 .byte 81
1835 0071 A3 .byte -93
1836 0072 40 .byte 64
1837 0073 8F .byte -113
1838 0074 92 .byte -110
1839 0075 9D .byte -99
1840 0076 38 .byte 56
1841 0077 F5 .byte -11
1842 0078 BC .byte -68
1843 0079 B6 .byte -74
1844 007a DA .byte -38
1845 007b 21 .byte 33
1846 007c 10 .byte 16
1847 007d FF .byte -1
1848 007e F3 .byte -13
1849 007f D2 .byte -46
1850 0080 CD .byte -51
1851 0081 0C .byte 12
1852 0082 13 .byte 19
1853 0083 EC .byte -20
1854 0084 5F .byte 95
1855 0085 97 .byte -105
1856 0086 44 .byte 68
1857 0087 17 .byte 23
1858 0088 C4 .byte -60
1859 0089 A7 .byte -89
1860 008a 7E .byte 126
1861 008b 3D .byte 61
1862 008c 64 .byte 100
1863 008d 5D .byte 93
1864 008e 19 .byte 25
1865 008f 73 .byte 115
1866 0090 60 .byte 96
1867 0091 81 .byte -127
1868 0092 4F .byte 79
1869 0093 DC .byte -36
1870 0094 22 .byte 34
1871 0095 2A .byte 42
1872 0096 90 .byte -112
1873 0097 88 .byte -120
1874 0098 46 .byte 70
1875 0099 EE .byte -18
1876 009a B8 .byte -72
1877 009b 14 .byte 20
1878 009c DE .byte -34
1879 009d 5E .byte 94
1880 009e 0B .byte 11
1881 009f DB .byte -37
1882 00a0 E0 .byte -32
1883 00a1 32 .byte 50
1884 00a2 3A .byte 58
1885 00a3 0A .byte 10
1886 00a4 49 .byte 73
ARM GAS /tmp/ccJ0d890.s page 46
1887 00a5 06 .byte 6
1888 00a6 24 .byte 36
1889 00a7 5C .byte 92
1890 00a8 C2 .byte -62
1891 00a9 D3 .byte -45
1892 00aa AC .byte -84
1893 00ab 62 .byte 98
1894 00ac 91 .byte -111
1895 00ad 95 .byte -107
1896 00ae E4 .byte -28
1897 00af 79 .byte 121
1898 00b0 E7 .byte -25
1899 00b1 C8 .byte -56
1900 00b2 37 .byte 55
1901 00b3 6D .byte 109
1902 00b4 8D .byte -115
1903 00b5 D5 .byte -43
1904 00b6 4E .byte 78
1905 00b7 A9 .byte -87
1906 00b8 6C .byte 108
1907 00b9 56 .byte 86
1908 00ba F4 .byte -12
1909 00bb EA .byte -22
1910 00bc 65 .byte 101
1911 00bd 7A .byte 122
1912 00be AE .byte -82
1913 00bf 08 .byte 8
1914 00c0 BA .byte -70
1915 00c1 78 .byte 120
1916 00c2 25 .byte 37
1917 00c3 2E .byte 46
1918 00c4 1C .byte 28
1919 00c5 A6 .byte -90
1920 00c6 B4 .byte -76
1921 00c7 C6 .byte -58
1922 00c8 E8 .byte -24
1923 00c9 DD .byte -35
1924 00ca 74 .byte 116
1925 00cb 1F .byte 31
1926 00cc 4B .byte 75
1927 00cd BD .byte -67
1928 00ce 8B .byte -117
1929 00cf 8A .byte -118
1930 00d0 70 .byte 112
1931 00d1 3E .byte 62
1932 00d2 B5 .byte -75
1933 00d3 66 .byte 102
1934 00d4 48 .byte 72
1935 00d5 03 .byte 3
1936 00d6 F6 .byte -10
1937 00d7 0E .byte 14
1938 00d8 61 .byte 97
1939 00d9 35 .byte 53
1940 00da 57 .byte 87
1941 00db B9 .byte -71
1942 00dc 86 .byte -122
1943 00dd C1 .byte -63
ARM GAS /tmp/ccJ0d890.s page 47
1944 00de 1D .byte 29
1945 00df 9E .byte -98
1946 00e0 E1 .byte -31
1947 00e1 F8 .byte -8
1948 00e2 98 .byte -104
1949 00e3 11 .byte 17
1950 00e4 69 .byte 105
1951 00e5 D9 .byte -39
1952 00e6 8E .byte -114
1953 00e7 94 .byte -108
1954 00e8 9B .byte -101
1955 00e9 1E .byte 30
1956 00ea 87 .byte -121
1957 00eb E9 .byte -23
1958 00ec CE .byte -50
1959 00ed 55 .byte 85
1960 00ee 28 .byte 40
1961 00ef DF .byte -33
1962 00f0 8C .byte -116
1963 00f1 A1 .byte -95
1964 00f2 89 .byte -119
1965 00f3 0D .byte 13
1966 00f4 BF .byte -65
1967 00f5 E6 .byte -26
1968 00f6 42 .byte 66
1969 00f7 68 .byte 104
1970 00f8 41 .byte 65
1971 00f9 99 .byte -103
1972 00fa 2D .byte 45
1973 00fb 0F .byte 15
1974 00fc B0 .byte -80
1975 00fd 54 .byte 84
1976 00fe BB .byte -69
1977 00ff 16 .byte 22
1978 .text
1979 .Letext0:
1980 .file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
1981 .file 3 "/usr/arm-none-eabi/include/sys/lock.h"
1982 .file 4 "/usr/arm-none-eabi/include/sys/_types.h"
1983 .file 5 "/usr/lib/gcc/arm-none-eabi/7.2.0/include/stddef.h"
1984 .file 6 "/usr/arm-none-eabi/include/sys/reent.h"
1985 .file 7 "/usr/arm-none-eabi/include/stdlib.h"
1986 .file 8 "/usr/arm-none-eabi/include/sys/_stdint.h"
1987 .file 9 "./Middlewares/Third_Party/Lora/Crypto/aes.h"
ARM GAS /tmp/ccJ0d890.s page 48
DEFINED SYMBOLS
*ABS*:0000000000000000 aes.c
/tmp/ccJ0d890.s:16 .text.xor_block:0000000000000000 $t
/tmp/ccJ0d890.s:22 .text.xor_block:0000000000000000 xor_block
/tmp/ccJ0d890.s:118 .text.copy_and_key:0000000000000000 $t
/tmp/ccJ0d890.s:124 .text.copy_and_key:0000000000000000 copy_and_key
/tmp/ccJ0d890.s:225 .text.aes_set_key:0000000000000000 $t
/tmp/ccJ0d890.s:232 .text.aes_set_key:0000000000000000 aes_set_key
/tmp/ccJ0d890.s:498 .text.aes_set_key:0000000000000128 $d
/tmp/ccJ0d890.s:1721 .rodata.sbox:0000000000000000 sbox
/tmp/ccJ0d890.s:503 .text.aes_encrypt:0000000000000000 $t
/tmp/ccJ0d890.s:510 .text.aes_encrypt:0000000000000000 aes_encrypt
/tmp/ccJ0d890.s:1060 .text.aes_encrypt:00000000000002dc $d
/tmp/ccJ0d890.s:1199 .rodata.gfm2_sbox:0000000000000000 gfm2_sbox
/tmp/ccJ0d890.s:1460 .rodata.gfm3_sbox:0000000000000000 gfm3_sbox
/tmp/ccJ0d890.s:1067 .text.aes_cbc_encrypt:0000000000000000 $t
/tmp/ccJ0d890.s:1074 .text.aes_cbc_encrypt:0000000000000000 aes_cbc_encrypt
/tmp/ccJ0d890.s:1196 .rodata.gfm2_sbox:0000000000000000 $d
/tmp/ccJ0d890.s:1457 .rodata.gfm3_sbox:0000000000000000 $d
/tmp/ccJ0d890.s:1718 .rodata.sbox:0000000000000000 $d
.debug_frame:0000000000000010 $d
UNDEFINED SYMBOLS
__aeabi_uidivmod