1              		.cpu cortex-m4
   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, 4
   9              		.eabi_attribute 34, 1
  10              		.eabi_attribute 18, 4
  11              		.file	"simple-speck.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.section	.text.get_key,"ax",%progbits
  16              		.align	1
  17              		.global	get_key
  18              		.arch armv7e-m
  19              		.syntax unified
  20              		.thumb
  21              		.thumb_func
  22              		.fpu softvfp
  24              	get_key:
  25              	.LVL0:
  26              	.LFB0:
  27              		.file 1 "simple-speck.c"
   1:simple-speck.c **** #include "hal.h"
   2:simple-speck.c **** #include <stdint.h>
   3:simple-speck.c **** #include <stdlib.h>
   4:simple-speck.c **** 
   5:simple-speck.c **** #include "simpleserial.h"
   6:simple-speck.c **** #include "speck.h"
   7:simple-speck.c **** 
   8:simple-speck.c **** u8 gkey[8] = {0x00};
   9:simple-speck.c **** u8 rand_data[8] = {0x00};
  10:simple-speck.c **** 
  11:simple-speck.c **** uint8_t get_key(uint8_t* k, uint8_t len) {
  28              		.loc 1 11 42 view -0
  29              		.cfi_startproc
  30              		@ args = 0, pretend = 0, frame = 0
  31              		@ frame_needed = 0, uses_anonymous_args = 0
  12:simple-speck.c **** 	simpleserial_put('o', 8, gkey);
  32              		.loc 1 12 2 view .LVU1
  11:simple-speck.c **** 	simpleserial_put('o', 8, gkey);
  33              		.loc 1 11 42 is_stmt 0 view .LVU2
  34 0000 08B5     		push	{r3, lr}
  35              	.LCFI0:
  36              		.cfi_def_cfa_offset 8
  37              		.cfi_offset 3, -8
  38              		.cfi_offset 14, -4
  39              		.loc 1 12 2 view .LVU3
  40 0002 034A     		ldr	r2, .L2
  41 0004 0821     		movs	r1, #8
  42              	.LVL1:
  43              		.loc 1 12 2 view .LVU4
  44 0006 6F20     		movs	r0, #111
  45              	.LVL2:
  46              		.loc 1 12 2 view .LVU5
  47 0008 FFF7FEFF 		bl	simpleserial_put
  48              	.LVL3:
  13:simple-speck.c **** 	return 0x00;
  49              		.loc 1 13 2 is_stmt 1 view .LVU6
  14:simple-speck.c **** }
  50              		.loc 1 14 1 is_stmt 0 view .LVU7
  51 000c 0020     		movs	r0, #0
  52 000e 08BD     		pop	{r3, pc}
  53              	.L3:
  54              		.align	2
  55              	.L2:
  56 0010 00000000 		.word	.LANCHOR0
  57              		.cfi_endproc
  58              	.LFE0:
  60              		.section	.text.reset,"ax",%progbits
  61              		.align	1
  62              		.global	reset
  63              		.syntax unified
  64              		.thumb
  65              		.thumb_func
  66              		.fpu softvfp
  68              	reset:
  69              	.LVL4:
  70              	.LFB4:
  15:simple-speck.c **** 
  16:simple-speck.c **** uint8_t set_key(uint8_t* key, uint8_t len) {
  17:simple-speck.c ****     memcpy(gkey, key, 8);
  18:simple-speck.c ****     int sum = 0;
  19:simple-speck.c ****     for(int i=0; i < 8; i++) {
  20:simple-speck.c ****         sum += key[i];
  21:simple-speck.c ****     }
  22:simple-speck.c ****     // initialize random value
  23:simple-speck.c ****     srand(sum);
  24:simple-speck.c ****     for(int i=0; i < 8; i++) {
  25:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
  26:simple-speck.c ****     }
  27:simple-speck.c ****     return 0x00;
  28:simple-speck.c **** }
  29:simple-speck.c **** 
  30:simple-speck.c **** uint8_t get_pt(uint8_t* pt, uint8_t len) {
  31:simple-speck.c **** 	/**********************************
  32:simple-speck.c **** 	* Start user-specific code here. */
  33:simple-speck.c **** 	trigger_high();
  34:simple-speck.c **** 
  35:simple-speck.c ****         // Only for testing purposes
  36:simple-speck.c ****         volatile uint8_t testing_output[] = {0x42, 0x41, 0x41, 0x41,0x41, 0x41, 0x41, 0x41, 0x41, 0
  37:simple-speck.c **** 
  38:simple-speck.c **** 
  39:simple-speck.c **** 	trigger_low();
  40:simple-speck.c **** 	/* End user-specific code here. *
  41:simple-speck.c **** 	********************************/
  42:simple-speck.c **** 	simpleserial_put('r', 16, testing_output);
  43:simple-speck.c **** 
  44:simple-speck.c **** 	return 0x00;
  45:simple-speck.c **** }
  46:simple-speck.c **** 
  47:simple-speck.c **** 
  48:simple-speck.c **** uint8_t encrypt_block(uint8_t* pt, uint8_t len) {
  49:simple-speck.c **** 
  50:simple-speck.c ****     trigger_high(); // TRIGGER START
  51:simple-speck.c **** 
  52:simple-speck.c ****     u8 key[8] = {0x00};
  53:simple-speck.c ****     memcpy(key, gkey, 8); // copy the globally set encryption key
  54:simple-speck.c ****     u8 ct[4] = {0x00};
  55:simple-speck.c ****     Speck3264_EncryptBlock(pt, key, ct, rand_data); // the encryption happens here
  56:simple-speck.c **** 
  57:simple-speck.c ****     trigger_low(); // TRIGGER STOP
  58:simple-speck.c **** 
  59:simple-speck.c ****     simpleserial_put('c', 4, ct);
  60:simple-speck.c ****     return 0x00;
  61:simple-speck.c **** }
  62:simple-speck.c **** 
  63:simple-speck.c **** 
  64:simple-speck.c **** uint8_t reset(uint8_t* x, uint8_t len) {
  71              		.loc 1 64 40 is_stmt 1 view -0
  72              		.cfi_startproc
  73              		@ args = 0, pretend = 0, frame = 0
  74              		@ frame_needed = 0, uses_anonymous_args = 0
  65:simple-speck.c **** 	simpleserial_put('r', 0, NULL);
  75              		.loc 1 65 2 view .LVU9
  64:simple-speck.c **** 	simpleserial_put('r', 0, NULL);
  76              		.loc 1 64 40 is_stmt 0 view .LVU10
  77 0000 08B5     		push	{r3, lr}
  78              	.LCFI1:
  79              		.cfi_def_cfa_offset 8
  80              		.cfi_offset 3, -8
  81              		.cfi_offset 14, -4
  82              		.loc 1 65 2 view .LVU11
  83 0002 0022     		movs	r2, #0
  84 0004 1146     		mov	r1, r2
  85              	.LVL5:
  86              		.loc 1 65 2 view .LVU12
  87 0006 7220     		movs	r0, #114
  88              	.LVL6:
  89              		.loc 1 65 2 view .LVU13
  90 0008 FFF7FEFF 		bl	simpleserial_put
  91              	.LVL7:
  66:simple-speck.c **** 	// Reset key here if needed
  67:simple-speck.c **** 	return 0x00;
  92              		.loc 1 67 2 is_stmt 1 view .LVU14
  68:simple-speck.c **** }
  93              		.loc 1 68 1 is_stmt 0 view .LVU15
  94 000c 0020     		movs	r0, #0
  95 000e 08BD     		pop	{r3, pc}
  96              		.cfi_endproc
  97              	.LFE4:
  99              		.section	.text.set_key,"ax",%progbits
 100              		.align	1
 101              		.global	set_key
 102              		.syntax unified
 103              		.thumb
 104              		.thumb_func
 105              		.fpu softvfp
 107              	set_key:
 108              	.LVL8:
 109              	.LFB1:
  16:simple-speck.c ****     memcpy(gkey, key, 8);
 110              		.loc 1 16 44 is_stmt 1 view -0
 111              		.cfi_startproc
 112              		@ args = 0, pretend = 0, frame = 0
 113              		@ frame_needed = 0, uses_anonymous_args = 0
  17:simple-speck.c ****     int sum = 0;
 114              		.loc 1 17 5 view .LVU17
  16:simple-speck.c ****     memcpy(gkey, key, 8);
 115              		.loc 1 16 44 is_stmt 0 view .LVU18
 116 0000 38B5     		push	{r3, r4, r5, lr}
 117              	.LCFI2:
 118              		.cfi_def_cfa_offset 16
 119              		.cfi_offset 3, -16
 120              		.cfi_offset 4, -12
 121              		.cfi_offset 5, -8
 122              		.cfi_offset 14, -4
  17:simple-speck.c ****     int sum = 0;
 123              		.loc 1 17 5 view .LVU19
 124 0002 0D4A     		ldr	r2, .L10
 125 0004 0368     		ldr	r3, [r0]	@ unaligned
 126 0006 1360     		str	r3, [r2]	@ unaligned
 127 0008 4368     		ldr	r3, [r0, #4]	@ unaligned
 128 000a 5360     		str	r3, [r2, #4]	@ unaligned
  18:simple-speck.c ****     for(int i=0; i < 8; i++) {
 129              		.loc 1 18 5 is_stmt 1 view .LVU20
 130              	.LVL9:
  19:simple-speck.c ****         sum += key[i];
 131              		.loc 1 19 5 view .LVU21
 132              	.LBB2:
  19:simple-speck.c ****         sum += key[i];
 133              		.loc 1 19 9 view .LVU22
  19:simple-speck.c ****         sum += key[i];
 134              		.loc 1 19 20 view .LVU23
 135 000c 421E     		subs	r2, r0, #1
 136 000e C31D     		adds	r3, r0, #7
 137              	.LBE2:
  18:simple-speck.c ****     for(int i=0; i < 8; i++) {
 138              		.loc 1 18 9 is_stmt 0 view .LVU24
 139 0010 0020     		movs	r0, #0
 140              	.LVL10:
 141              	.L6:
 142              	.LBB3:
  20:simple-speck.c ****     }
 143              		.loc 1 20 9 is_stmt 1 discriminator 3 view .LVU25
  20:simple-speck.c ****     }
 144              		.loc 1 20 19 is_stmt 0 discriminator 3 view .LVU26
 145 0012 12F8011F 		ldrb	r1, [r2, #1]!	@ zero_extendqisi2
 146              	.LVL11:
  19:simple-speck.c ****         sum += key[i];
 147              		.loc 1 19 20 discriminator 3 view .LVU27
 148 0016 9A42     		cmp	r2, r3
  20:simple-speck.c ****     }
 149              		.loc 1 20 13 discriminator 3 view .LVU28
 150 0018 0844     		add	r0, r0, r1
 151              	.LVL12:
  19:simple-speck.c ****         sum += key[i];
 152              		.loc 1 19 26 is_stmt 1 discriminator 3 view .LVU29
  19:simple-speck.c ****         sum += key[i];
 153              		.loc 1 19 20 discriminator 3 view .LVU30
 154 001a FAD1     		bne	.L6
 155              	.LBE3:
  23:simple-speck.c ****     for(int i=0; i < 8; i++) {
 156              		.loc 1 23 5 view .LVU31
 157 001c FFF7FEFF 		bl	srand
 158              	.LVL13:
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 159              		.loc 1 24 5 view .LVU32
 160              	.LBB4:
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 161              		.loc 1 24 9 view .LVU33
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 162              		.loc 1 24 20 view .LVU34
 163 0020 064D     		ldr	r5, .L10+4
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 164              		.loc 1 24 13 is_stmt 0 view .LVU35
 165 0022 0024     		movs	r4, #0
 166              	.LVL14:
 167              	.L7:
  25:simple-speck.c ****     }
 168              		.loc 1 25 9 is_stmt 1 discriminator 3 view .LVU36
  25:simple-speck.c ****     }
 169              		.loc 1 25 24 is_stmt 0 discriminator 3 view .LVU37
 170 0024 FFF7FEFF 		bl	rand
 171              	.LVL15:
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 172              		.loc 1 24 26 discriminator 3 view .LVU38
 173 0028 0134     		adds	r4, r4, #1
 174              	.LVL16:
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 175              		.loc 1 24 20 discriminator 3 view .LVU39
 176 002a 082C     		cmp	r4, #8
  25:simple-speck.c ****     }
 177              		.loc 1 25 22 discriminator 3 view .LVU40
 178 002c 05F8010B 		strb	r0, [r5], #1
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 179              		.loc 1 24 26 is_stmt 1 discriminator 3 view .LVU41
 180              	.LVL17:
  24:simple-speck.c ****         rand_data[i] = rand() & 0xFF;
 181              		.loc 1 24 20 discriminator 3 view .LVU42
 182 0030 F8D1     		bne	.L7
 183              	.LBE4:
  27:simple-speck.c **** }
 184              		.loc 1 27 5 view .LVU43
  28:simple-speck.c **** 
 185              		.loc 1 28 1 is_stmt 0 view .LVU44
 186 0032 0020     		movs	r0, #0
 187 0034 38BD     		pop	{r3, r4, r5, pc}
 188              	.LVL18:
 189              	.L11:
  28:simple-speck.c **** 
 190              		.loc 1 28 1 view .LVU45
 191 0036 00BF     		.align	2
 192              	.L10:
 193 0038 00000000 		.word	.LANCHOR0
 194 003c 08000000 		.word	.LANCHOR0+8
 195              		.cfi_endproc
 196              	.LFE1:
 198              		.section	.rodata.str1.1,"aMS",%progbits,1
 199              	.LC0:
 200 0000 42414141 		.ascii	"BAAAAAAAAAAAAAAA\000"
 200      41414141 
 200      41414141 
 200      41414141 
 200      00
 201              		.section	.text.get_pt,"ax",%progbits
 202              		.align	1
 203              		.global	get_pt
 204              		.syntax unified
 205              		.thumb
 206              		.thumb_func
 207              		.fpu softvfp
 209              	get_pt:
 210              	.LVL19:
 211              	.LFB2:
  30:simple-speck.c **** 	/**********************************
 212              		.loc 1 30 42 is_stmt 1 view -0
 213              		.cfi_startproc
 214              		@ args = 0, pretend = 0, frame = 16
 215              		@ frame_needed = 0, uses_anonymous_args = 0
  33:simple-speck.c **** 
 216              		.loc 1 33 2 view .LVU47
  30:simple-speck.c **** 	/**********************************
 217              		.loc 1 30 42 is_stmt 0 view .LVU48
 218 0000 7FB5     		push	{r0, r1, r2, r3, r4, r5, r6, lr}
 219              	.LCFI3:
 220              		.cfi_def_cfa_offset 32
 221              		.cfi_offset 4, -16
 222              		.cfi_offset 5, -12
 223              		.cfi_offset 6, -8
 224              		.cfi_offset 14, -4
  33:simple-speck.c **** 
 225              		.loc 1 33 2 view .LVU49
 226 0002 FFF7FEFF 		bl	trigger_high
 227              	.LVL20:
  36:simple-speck.c **** 
 228              		.loc 1 36 9 is_stmt 1 view .LVU50
  36:simple-speck.c **** 
 229              		.loc 1 36 26 is_stmt 0 view .LVU51
 230 0006 0B4B     		ldr	r3, .L15
 231 0008 6C46     		mov	r4, sp
 232 000a 03F11002 		add	r2, r3, #16
 233 000e 2646     		mov	r6, r4
 234              	.L13:
 235 0010 1868     		ldr	r0, [r3]	@ unaligned
 236 0012 5968     		ldr	r1, [r3, #4]	@ unaligned
 237 0014 2546     		mov	r5, r4
 238 0016 03C5     		stmia	r5!, {r0, r1}
 239 0018 0833     		adds	r3, r3, #8
 240 001a 9342     		cmp	r3, r2
 241 001c 2C46     		mov	r4, r5
 242 001e F7D1     		bne	.L13
  39:simple-speck.c **** 	/* End user-specific code here. *
 243              		.loc 1 39 2 is_stmt 1 view .LVU52
 244 0020 FFF7FEFF 		bl	trigger_low
 245              	.LVL21:
  42:simple-speck.c **** 
 246              		.loc 1 42 2 view .LVU53
 247 0024 3246     		mov	r2, r6
 248 0026 1021     		movs	r1, #16
 249 0028 7220     		movs	r0, #114
 250 002a FFF7FEFF 		bl	simpleserial_put
 251              	.LVL22:
  44:simple-speck.c **** }
 252              		.loc 1 44 2 view .LVU54
  45:simple-speck.c **** 
 253              		.loc 1 45 1 is_stmt 0 view .LVU55
 254 002e 0020     		movs	r0, #0
 255 0030 04B0     		add	sp, sp, #16
 256              	.LCFI4:
 257              		.cfi_def_cfa_offset 16
 258              		@ sp needed
 259 0032 70BD     		pop	{r4, r5, r6, pc}
 260              	.L16:
 261              		.align	2
 262              	.L15:
 263 0034 00000000 		.word	.LC0
 264              		.cfi_endproc
 265              	.LFE2:
 267              		.section	.text.encrypt_block,"ax",%progbits
 268              		.align	1
 269              		.global	encrypt_block
 270              		.syntax unified
 271              		.thumb
 272              		.thumb_func
 273              		.fpu softvfp
 275              	encrypt_block:
 276              	.LVL23:
 277              	.LFB3:
  48:simple-speck.c **** 
 278              		.loc 1 48 49 is_stmt 1 view -0
 279              		.cfi_startproc
 280              		@ args = 0, pretend = 0, frame = 16
 281              		@ frame_needed = 0, uses_anonymous_args = 0
  50:simple-speck.c **** 
 282              		.loc 1 50 5 view .LVU57
  48:simple-speck.c **** 
 283              		.loc 1 48 49 is_stmt 0 view .LVU58
 284 0000 30B5     		push	{r4, r5, lr}
 285              	.LCFI5:
 286              		.cfi_def_cfa_offset 12
 287              		.cfi_offset 4, -12
 288              		.cfi_offset 5, -8
 289              		.cfi_offset 14, -4
 290 0002 85B0     		sub	sp, sp, #20
 291              	.LCFI6:
 292              		.cfi_def_cfa_offset 32
  48:simple-speck.c **** 
 293              		.loc 1 48 49 view .LVU59
 294 0004 0446     		mov	r4, r0
  50:simple-speck.c **** 
 295              		.loc 1 50 5 view .LVU60
 296 0006 FFF7FEFF 		bl	trigger_high
 297              	.LVL24:
  52:simple-speck.c ****     memcpy(key, gkey, 8); // copy the globally set encryption key
 298              		.loc 1 52 5 is_stmt 1 view .LVU61
  53:simple-speck.c ****     u8 ct[4] = {0x00};
 299              		.loc 1 53 5 view .LVU62
 300 000a 0B4B     		ldr	r3, .L18
 301 000c 1868     		ldr	r0, [r3]	@ unaligned
 302 000e 5968     		ldr	r1, [r3, #4]	@ unaligned
 303 0010 02AA     		add	r2, sp, #8
 304 0012 03C2     		stmia	r2!, {r0, r1}
  54:simple-speck.c ****     Speck3264_EncryptBlock(pt, key, ct, rand_data); // the encryption happens here
 305              		.loc 1 54 5 view .LVU63
  55:simple-speck.c **** 
 306              		.loc 1 55 5 is_stmt 0 view .LVU64
 307 0014 0833     		adds	r3, r3, #8
 308 0016 01AA     		add	r2, sp, #4
 309 0018 02A9     		add	r1, sp, #8
 310 001a 2046     		mov	r0, r4
  54:simple-speck.c ****     Speck3264_EncryptBlock(pt, key, ct, rand_data); // the encryption happens here
 311              		.loc 1 54 8 view .LVU65
 312 001c 0025     		movs	r5, #0
 313 001e 0195     		str	r5, [sp, #4]
  55:simple-speck.c **** 
 314              		.loc 1 55 5 is_stmt 1 view .LVU66
 315 0020 FFF7FEFF 		bl	Speck3264_EncryptBlock
 316              	.LVL25:
  57:simple-speck.c **** 
 317              		.loc 1 57 5 view .LVU67
 318 0024 FFF7FEFF 		bl	trigger_low
 319              	.LVL26:
  59:simple-speck.c ****     return 0x00;
 320              		.loc 1 59 5 view .LVU68
 321 0028 01AA     		add	r2, sp, #4
 322 002a 0421     		movs	r1, #4
 323 002c 6320     		movs	r0, #99
 324 002e FFF7FEFF 		bl	simpleserial_put
 325              	.LVL27:
  60:simple-speck.c **** }
 326              		.loc 1 60 5 view .LVU69
  61:simple-speck.c **** 
 327              		.loc 1 61 1 is_stmt 0 view .LVU70
 328 0032 2846     		mov	r0, r5
 329 0034 05B0     		add	sp, sp, #20
 330              	.LCFI7:
 331              		.cfi_def_cfa_offset 12
 332              		@ sp needed
 333 0036 30BD     		pop	{r4, r5, pc}
 334              	.LVL28:
 335              	.L19:
  61:simple-speck.c **** 
 336              		.loc 1 61 1 view .LVU71
 337              		.align	2
 338              	.L18:
 339 0038 00000000 		.word	.LANCHOR0
 340              		.cfi_endproc
 341              	.LFE3:
 343              		.section	.text.startup.main,"ax",%progbits
 344              		.align	1
 345              		.global	main
 346              		.syntax unified
 347              		.thumb
 348              		.thumb_func
 349              		.fpu softvfp
 351              	main:
 352              	.LFB5:
  69:simple-speck.c **** 
  70:simple-speck.c **** 
  71:simple-speck.c **** int main(void) {
 353              		.loc 1 71 16 is_stmt 1 view -0
 354              		.cfi_startproc
 355              		@ Volatile: function does not return.
 356              		@ args = 0, pretend = 0, frame = 0
 357              		@ frame_needed = 0, uses_anonymous_args = 0
  72:simple-speck.c ****     platform_init();
 358              		.loc 1 72 5 view .LVU73
  71:simple-speck.c ****     platform_init();
 359              		.loc 1 71 16 is_stmt 0 view .LVU74
 360 0000 08B5     		push	{r3, lr}
 361              	.LCFI8:
 362              		.cfi_def_cfa_offset 8
 363              		.cfi_offset 3, -8
 364              		.cfi_offset 14, -4
 365              		.loc 1 72 5 view .LVU75
 366 0002 FFF7FEFF 		bl	platform_init
 367              	.LVL29:
  73:simple-speck.c **** 	init_uart();
 368              		.loc 1 73 2 is_stmt 1 view .LVU76
 369 0006 FFF7FEFF 		bl	init_uart
 370              	.LVL30:
  74:simple-speck.c **** 	trigger_setup();
 371              		.loc 1 74 2 view .LVU77
 372 000a FFF7FEFF 		bl	trigger_setup
 373              	.LVL31:
  75:simple-speck.c **** 
  76:simple-speck.c ****  	/* Uncomment this to get a HELLO message for debug */
  77:simple-speck.c ****         /*
  78:simple-speck.c **** 	putch('h');
  79:simple-speck.c **** 	putch('e');
  80:simple-speck.c **** 	putch('l');
  81:simple-speck.c **** 	putch('l');
  82:simple-speck.c **** 	putch('o');
  83:simple-speck.c **** 	putch('\n');
  84:simple-speck.c ****         */
  85:simple-speck.c **** 
  86:simple-speck.c **** 	simpleserial_init();
 374              		.loc 1 86 2 view .LVU78
 375 000e FFF7FEFF 		bl	simpleserial_init
 376              	.LVL32:
  87:simple-speck.c **** 	simpleserial_addcmd('p', 16, get_pt);
 377              		.loc 1 87 2 view .LVU79
 378 0012 0E4A     		ldr	r2, .L22
 379 0014 1021     		movs	r1, #16
 380 0016 7020     		movs	r0, #112
 381 0018 FFF7FEFF 		bl	simpleserial_addcmd
 382              	.LVL33:
  88:simple-speck.c **** 	simpleserial_addcmd('e', 4, encrypt_block);
 383              		.loc 1 88 2 view .LVU80
 384 001c 0C4A     		ldr	r2, .L22+4
 385 001e 0421     		movs	r1, #4
 386 0020 6520     		movs	r0, #101
 387 0022 FFF7FEFF 		bl	simpleserial_addcmd
 388              	.LVL34:
  89:simple-speck.c **** 	simpleserial_addcmd('k', 4, get_key);
 389              		.loc 1 89 2 view .LVU81
 390 0026 0B4A     		ldr	r2, .L22+8
 391 0028 0421     		movs	r1, #4
 392 002a 6B20     		movs	r0, #107
 393 002c FFF7FEFF 		bl	simpleserial_addcmd
 394              	.LVL35:
  90:simple-speck.c **** 	simpleserial_addcmd('s', 8, set_key);
 395              		.loc 1 90 2 view .LVU82
 396 0030 094A     		ldr	r2, .L22+12
 397 0032 0821     		movs	r1, #8
 398 0034 7320     		movs	r0, #115
 399 0036 FFF7FEFF 		bl	simpleserial_addcmd
 400              	.LVL36:
  91:simple-speck.c **** 	simpleserial_addcmd('x', 0, reset);
 401              		.loc 1 91 2 view .LVU83
 402 003a 084A     		ldr	r2, .L22+16
 403 003c 0021     		movs	r1, #0
 404 003e 7820     		movs	r0, #120
 405 0040 FFF7FEFF 		bl	simpleserial_addcmd
 406              	.LVL37:
 407              	.L21:
  92:simple-speck.c **** 
  93:simple-speck.c **** 	while(1)
 408              		.loc 1 93 2 discriminator 1 view .LVU84
  94:simple-speck.c **** 		simpleserial_get();
 409              		.loc 1 94 3 discriminator 1 view .LVU85
 410 0044 FFF7FEFF 		bl	simpleserial_get
 411              	.LVL38:
  93:simple-speck.c **** 		simpleserial_get();
 412              		.loc 1 93 7 discriminator 1 view .LVU86
 413 0048 FCE7     		b	.L21
 414              	.L23:
 415 004a 00BF     		.align	2
 416              	.L22:
 417 004c 00000000 		.word	get_pt
 418 0050 00000000 		.word	encrypt_block
 419 0054 00000000 		.word	get_key
 420 0058 00000000 		.word	set_key
 421 005c 00000000 		.word	reset
 422              		.cfi_endproc
 423              	.LFE5:
 425              		.global	rand_data
 426              		.global	gkey
 427              		.bss
 428              		.set	.LANCHOR0,. + 0
 431              	gkey:
 432 0000 00000000 		.space	8
 432      00000000 
 435              	rand_data:
 436 0008 00000000 		.space	8
 436      00000000 
 437              		.text
 438              	.Letext0:
 439              		.file 2 "/usr/arm-none-eabi/include/machine/_default_types.h"
 440              		.file 3 "/usr/arm-none-eabi/include/sys/_stdint.h"
 441              		.file 4 "deps//simpleserial/simpleserial.h"
 442              		.file 5 "deps//hal/stm32f3/stm32f3_hal.h"
 443              		.file 6 "deps//hal/hal.h"
 444              		.file 7 "speck.h"
 445              		.file 8 "/usr/arm-none-eabi/include/stdlib.h"
 446              		.file 9 "<built-in>"
DEFINED SYMBOLS
                            *ABS*:0000000000000000 simple-speck.c
     /tmp/ccLR1Kpf.s:16     .text.get_key:0000000000000000 $t
     /tmp/ccLR1Kpf.s:24     .text.get_key:0000000000000000 get_key
     /tmp/ccLR1Kpf.s:56     .text.get_key:0000000000000010 $d
     /tmp/ccLR1Kpf.s:61     .text.reset:0000000000000000 $t
     /tmp/ccLR1Kpf.s:68     .text.reset:0000000000000000 reset
     /tmp/ccLR1Kpf.s:100    .text.set_key:0000000000000000 $t
     /tmp/ccLR1Kpf.s:107    .text.set_key:0000000000000000 set_key
     /tmp/ccLR1Kpf.s:193    .text.set_key:0000000000000038 $d
     /tmp/ccLR1Kpf.s:202    .text.get_pt:0000000000000000 $t
     /tmp/ccLR1Kpf.s:209    .text.get_pt:0000000000000000 get_pt
     /tmp/ccLR1Kpf.s:263    .text.get_pt:0000000000000034 $d
     /tmp/ccLR1Kpf.s:268    .text.encrypt_block:0000000000000000 $t
     /tmp/ccLR1Kpf.s:275    .text.encrypt_block:0000000000000000 encrypt_block
     /tmp/ccLR1Kpf.s:339    .text.encrypt_block:0000000000000038 $d
     /tmp/ccLR1Kpf.s:344    .text.startup.main:0000000000000000 $t
     /tmp/ccLR1Kpf.s:351    .text.startup.main:0000000000000000 main
     /tmp/ccLR1Kpf.s:417    .text.startup.main:000000000000004c $d
     /tmp/ccLR1Kpf.s:435    .bss:0000000000000008 rand_data
     /tmp/ccLR1Kpf.s:431    .bss:0000000000000000 gkey
     /tmp/ccLR1Kpf.s:432    .bss:0000000000000000 $d

UNDEFINED SYMBOLS
simpleserial_put
srand
rand
trigger_high
trigger_low
Speck3264_EncryptBlock
platform_init
init_uart
trigger_setup
simpleserial_init
simpleserial_addcmd
simpleserial_get