From 5948b1861db46014caea4211d8b67ae7764b6a65 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 13 Nov 2021 18:45:43 +0100 Subject: [PATCH] added section files for example app --- benchmark/sections_lto.txt | 2449 +++++++++++++++++++++++++++++++++++ sections.txt | 2450 ++++++++++++++++++++++++++++++++++++ vorago-reb1-rs | 2 +- 3 files changed, 4900 insertions(+), 1 deletion(-) create mode 100644 benchmark/sections_lto.txt create mode 100644 sections.txt diff --git a/benchmark/sections_lto.txt b/benchmark/sections_lto.txt new file mode 100644 index 0000000..a8639ac --- /dev/null +++ b/benchmark/sections_lto.txt @@ -0,0 +1,2449 @@ +Generated using: + +cargo objdump -p vorago-reb1 --example blinky-button-irq --release \ + -- --disassemble --no-show-raw-insn --print-imm-hex > sections.txt + +blinky-button-irq: file format elf32-littlearm + +Disassembly of section .text: + +000000c0 <__stext>: + c0: ldr r4, [pc, #0x2c] <$d> + c2: mov lr, r4 + c4: bl 0xca6 <__pre_init> @ imm = #0xbde + c8: mov lr, r4 + ca: ldr r0, [pc, #0x28] <$d+0x6> + cc: ldr r1, [pc, #0x28] <$d+0x8> + ce: movs r2, #0x0 + d0: cmp r1, r0 + d2: beq 0xd8 <__stext+0x18> @ imm = #0x2 + d4: stm r0!, {r2} + d6: b 0xd0 <__stext+0x10> @ imm = #-0xa + d8: ldr r0, [pc, #0x20] <$d+0xc> + da: ldr r1, [pc, #0x24] <$d+0x12> + dc: ldr r2, [pc, #0x24] <$d+0x14> + de: cmp r1, r0 + e0: beq 0xe8 <__stext+0x28> @ imm = #0x4 + e2: ldm r2!, {r3} + e4: stm r0!, {r3} + e6: b 0xde <__stext+0x1e> @ imm = #-0xc + e8: bl 0x10c
@ imm = #0x20 + ec: udf #0x0 + +000000ee <$d>: + ee: 00 00 .short 0x0000 + +000000f0 <$d>: + f0: ff ff ff ff .word 0xffffffff + f4: 10 00 00 10 .word 0x10000010 + f8: 5c 04 00 10 .word 0x1000045c + fc: 00 00 00 10 .word 0x10000000 + 100: 10 00 00 10 .word 0x10000010 + 104: e0 16 00 00 .word 0x000016e0 + +00000108 ::h1ddd9306d86e0d6a>: + 108: bx lr + +0000010a ::h0aa9974d9ffb5bb5>: + 10a: bx lr + +0000010c
: + 10c: push {r7, lr} + 10e: add r7, sp, #0x0 + 110: bl 0x118 @ imm = #0x4 + 114: trap + 116: bmi 0xc2 <__stext+0x2> @ imm = #-0x58 + +00000118 : + 118: push {r7, lr} + 11a: add r7, sp, #0x0 + 11c: sub sp, #0x28 + 11e: ldr r4, [pc, #0x1dc] <$d.4+0x2> + 120: movs r1, #0x30 + 122: mov r0, r4 + 124: bl 0x11e0 <__aeabi_memclr8> @ imm = #0x10b8 + 128: ldr r0, [pc, #0x1d4] <$d.4+0x4> + 12a: str r0, [r4, #0x18] + 12c: movs r2, #0x1 + 12e: lsls r0, r2, #0xa + 130: str r0, [sp, #0x4] + 132: str r0, [r4, #0x20] + 134: ldr r0, [r4, #0x2c] + 136: movs r1, #0x3 + 138: bics r0, r1 + 13a: dmb sy + 13e: dmb sy + 142: str r0, [r4, #0x2c] + 144: dmb sy + 148: ldr r0, [pc, #0x1b8] <$d.4+0x8> + 14a: str r0, [r4, #0x1c] + 14c: str r2, [sp, #0x8] + 14e: str r2, [r4, #0x10] + 150: movs r5, #0x0 + 152: str r5, [r4, #0x14] + 154: ldr r1, [pc, #0x1b0] <$d.4+0xc> + 156: movs r2, #0x5 + 158: mov r0, r4 + 15a: bl 0x1158 <__aeabi_memcpy> @ imm = #0xffa + 15e: dmb sy + 162: adds r0, r4, #0x4 + 164: ldr r1, [pc, #0x1a4] <$d.4+0x10> + 166: ldm r1!, {r2, r3, r6} + 168: stm r0!, {r2, r3, r6} + 16a: bl 0x1148 <__primask_r> @ imm = #0xfda + 16e: mov r6, r0 + 170: bl 0x1140 <__cpsid> @ imm = #0xfcc + 174: ldr r0, [pc, #0x198] <$d.4+0x14> + 176: strb r5, [r0, #0x4] + 178: adds r4, #0x18 + 17a: str r4, [r0] + 17c: lsls r0, r6, #0x1f + 17e: bne 0x184 @ imm = #0x2 + 180: bl 0x1144 <__cpsie> @ imm = #0xfc0 + 184: dmb sy + 188: ldr r0, [pc, #0x188] <$d.4+0x18> + 18a: ldr r1, [pc, #0x18c] <$d.4+0x1e> + 18c: str r1, [r0] + 18e: dmb sy + 192: movs r1, #0x20 + 194: str r1, [sp, #0x10] + 196: ldr r1, [pc, #0x184] <$d.4+0x22> + 198: str r1, [sp, #0xc] + 19a: ldr r1, [r0] + 19c: dmb sy + 1a0: cmp r1, #0x0 + 1a2: beq 0x1b2 @ imm = #0xc + 1a4: add r0, sp, #0x18 + 1a6: strb r5, [r0] + 1a8: add r2, sp, #0xc + 1aa: str r2, [sp, #0x1c] + 1ac: ldr r2, [r1] + 1ae: ldr r1, [pc, #0x170] <$d.4+0x26> + 1b0: blx r2 + 1b2: bl 0x1148 <__primask_r> @ imm = #0xf92 + 1b6: mov r4, r0 + 1b8: ldr r6, [sp, #0x8] + 1ba: ands r4, r6 + 1bc: bl 0x1140 <__cpsid> @ imm = #0xf80 + 1c0: ldr r0, [pc, #0x160] <$d.4+0x28> + 1c2: ldrb r1, [r0] + 1c4: cmp r1, #0x0 + 1c6: bne 0x1ca @ imm = #0x0 + 1c8: strb r6, [r0] + 1ca: cmp r4, #0x0 + 1cc: bne 0x1d6 @ imm = #0x6 + 1ce: mov r4, r1 + 1d0: bl 0x1144 <__cpsie> @ imm = #0xf70 + 1d4: mov r1, r4 + 1d6: cmp r1, #0x0 + 1d8: beq 0x1dc @ imm = #0x0 + 1da: b 0x2e0 @ imm = #0x102 + 1dc: ldr r1, [pc, #0x148] <$d.4+0x2c> + 1de: ldr r0, [r1] + 1e0: ldr r2, [pc, #0x148] <$d.4+0x30> + 1e2: orrs r2, r0 + 1e4: str r2, [r1] + 1e6: lsls r2, r6, #0x15 + 1e8: ldr r0, [r1] + 1ea: orrs r0, r2 + 1ec: str r0, [r1] + 1ee: lsls r3, r6, #0xb + 1f0: ldr r0, [pc, #0x13c] <$d.4+0x34> + 1f2: ldr r4, [r0, #0x2c] + 1f4: orrs r4, r3 + 1f6: str r4, [r0, #0x2c] + 1f8: ldr r4, [pc, #0x138] <$d.4+0x38> + 1fa: movs r6, #0xf + 1fc: str r6, [r4] + 1fe: ldr r6, [sp, #0x8] + 200: ldr r4, [r0, #0x20] + 202: bics r4, r3 + 204: str r4, [r0, #0x20] + 206: ldr r4, [r0, #0x24] + 208: orrs r4, r3 + 20a: str r4, [r0, #0x24] + 20c: mov r3, r1 + 20e: subs r3, #0x8 + 210: ldr r4, [r3] + 212: orrs r4, r6 + 214: str r4, [r3] + 216: ldr r3, [pc, #0x120] <$d.4+0x3e> + 218: ldr r4, [r3] + 21a: orrs r4, r6 + 21c: str r4, [r3] + 21e: ldr r4, [r1] + 220: orrs r4, r2 + 222: str r4, [r1] + 224: ldr r1, [pc, #0x114] <$d.4+0x40> + 226: str r5, [r1] + 228: ldr r1, [r3] + 22a: movs r2, #0x10 + 22c: orrs r2, r1 + 22e: str r2, [r3] + 230: ldr r1, [pc, #0x10c] <$d.4+0x44> + 232: str r1, [r3, #0x4] + 234: str r1, [r3, #0x8] + 236: ldr r1, [pc, #0x10c] <$d.4+0x4a> + 238: str r5, [r1, #0x10] + 23a: ldr r2, [r0, #0xc] + 23c: ldr r3, [sp, #0x4] + 23e: orrs r2, r3 + 240: str r2, [r0, #0xc] + 242: str r3, [r0] + 244: str r5, [r1, #0x4] + 246: ldr r2, [r0, #0xc] + 248: movs r3, #0x80 + 24a: orrs r2, r3 + 24c: str r2, [r0, #0xc] + 24e: str r3, [r0] + 250: str r5, [r1] + 252: ldr r1, [r0, #0xc] + 254: movs r2, #0x40 + 256: orrs r1, r2 + 258: str r1, [r0, #0xc] + 25a: str r2, [r0] + 25c: movs r1, #0x83 + 25e: lsls r1, r1, #0x9 + 260: str r1, [sp, #0x14] + 262: ldr r1, [pc, #0xe4] <$d.4+0x4e> + 264: str r1, [sp, #0x10] + 266: movs r1, #0x85 + 268: lsls r1, r1, #0x9 + 26a: str r1, [sp, #0xc] + 26c: ldr r1, [pc, #0xdc] <$d.4+0x50> + 26e: add r2, sp, #0xc + 270: adds r2, r2, r5 + 272: ldrb r2, [r2, #0x2] + 274: cmp r2, #0x1 + 276: bne 0x294 @ imm = #0x1a + 278: add r3, sp, #0xc + 27a: ldrb r2, [r3, r5] + 27c: cmp r2, #0x0 + 27e: beq 0x284 @ imm = #0x2 + 280: mov r2, r1 + 282: b 0x286 @ imm = #0x0 + 284: subs r2, r0, #0x4 + 286: adds r3, r3, r5 + 288: ldrb r3, [r3, #0x1] + 28a: movs r4, #0x1f + 28c: ands r4, r3 + 28e: mov r3, r6 + 290: lsls r3, r4 + 292: str r3, [r2] + 294: adds r5, r5, #0x4 + 296: cmp r5, #0xc + 298: bne 0x26e @ imm = #-0x2e + 29a: ldr r0, [pc, #0xb4] <$d.4+0x56> + 29c: str r6, [r0] + 29e: lsls r1, r6, #0xf + 2a0: str r1, [r0] + 2a2: add r0, sp, #0xc + 2a4: add r1, sp, #0x18 + 2a6: ldm r0!, {r2, r3, r4} + 2a8: stm r1!, {r2, r3, r4} + 2aa: bl 0x1148 <__primask_r> @ imm = #0xe9a + 2ae: mov r4, r0 + 2b0: bl 0x1140 <__cpsid> @ imm = #0xe8c + 2b4: ldr r0, [pc, #0x9c] <$d.4+0x58> + 2b6: ldr r1, [r0] + 2b8: cmp r1, #0x0 + 2ba: bne 0x2e6 @ imm = #0x28 + 2bc: adds r1, r0, #0x4 + 2be: add r2, sp, #0x18 + 2c0: ldm r2!, {r3, r5, r6} + 2c2: stm r1!, {r3, r5, r6} + 2c4: movs r1, #0x0 + 2c6: str r1, [r0] + 2c8: ldr r0, [pc, #0x98] <$d.4+0x68> + 2ca: ldr r2, [r0] + 2cc: cmp r2, #0x0 + 2ce: bne 0x2ea @ imm = #0x18 + 2d0: ldr r2, [sp, #0x8] + 2d2: ands r4, r2 + 2d4: str r1, [r0] + 2d6: strb r2, [r0, #0x4] + 2d8: bne 0x2de @ imm = #0x2 + 2da: bl 0x1144 <__cpsie> @ imm = #0xe66 + 2de: b 0x2de @ imm = #-0x4 + 2e0: bl 0xa3c @ imm = #0x758 + 2e4: trap + 2e6: ldr r0, [pc, #0x70] <$d.4+0x5e> + 2e8: b 0x2ec @ imm = #0x0 + 2ea: ldr r0, [pc, #0x7c] <$d.4+0x6e> + 2ec: str r0, [sp] + 2ee: ldr r0, [pc, #0x6c] <$d.4+0x62> + 2f0: movs r1, #0x10 + 2f2: add r2, sp, #0x24 + 2f4: ldr r3, [pc, #0x68] <$d.4+0x64> + 2f6: bl 0xc5c @ imm = #0x962 + 2fa: trap + +000002fc <$d.4>: + 2fc: 28 04 00 10 .word 0x10000428 + 300: b4 14 00 00 .word 0x000014b4 + 304: 1c 00 00 10 .word 0x1000001c + 308: cc 16 00 00 .word 0x000016cc + 30c: d4 16 00 00 .word 0x000016d4 + 310: 20 04 00 10 .word 0x10000420 + 314: 1c 04 00 10 .word 0x1000041c + 318: b0 16 00 00 .word 0x000016b0 + 31c: bd 14 00 00 .word 0x000014bd + 320: 9d 0e 00 00 .word 0x00000e9d + 324: 58 04 00 10 .word 0x10000458 + 328: 7c 00 00 40 .word 0x4000007c + 32c: 01 00 40 01 .word 0x01400001 + 330: 14 00 00 50 .word 0x50000014 + 334: 2c 10 00 40 .word 0x4000102c + 338: 00 00 02 40 .word 0x40020000 + 33c: 00 11 00 40 .word 0x40001100 + 340: 4f c3 00 00 .word 0x0000c34f + 344: 18 20 00 40 .word 0x40002018 + 348: 00 07 01 00 .word 0x00010700 + 34c: 10 10 00 50 .word 0x50001010 + 350: 00 e1 00 e0 .word 0xe000e100 + 354: 00 00 00 10 .word 0x10000000 + 358: 1c 15 00 00 .word 0x0000151c + 35c: 30 14 00 00 .word 0x00001430 + 360: a4 14 00 00 .word 0x000014a4 + 364: 14 00 00 10 .word 0x10000014 + 368: 2c 15 00 00 .word 0x0000152c + +0000036c : + 36c: push {r4, r6, r7, lr} + 36e: add r7, sp, #0x8 + 370: bl 0x1148 <__primask_r> @ imm = #0xdd4 + 374: mov r4, r0 + 376: bl 0x1140 <__cpsid> @ imm = #0xdc6 + 37a: ldr r0, [pc, #0x10] <$d.6+0x2> + 37c: ldr r1, [r0] + 37e: adds r1, r1, #0x1 + 380: str r1, [r0] + 382: lsls r0, r4, #0x1f + 384: bne 0x38a @ imm = #0x2 + 386: bl 0x1144 <__cpsie> @ imm = #0xdba + 38a: pop {r4, r6, r7, pc} + +0000038c <$d.6>: + 38c: 10 00 00 10 .word 0x10000010 + +00000390 : + 390: push {r4, r5, r6, r7, lr} + 392: add r7, sp, #0xc + 394: sub sp, #0xc + 396: bl 0x1148 <__primask_r> @ imm = #0xdae + 39a: mov r4, r0 + 39c: bl 0x1140 <__cpsid> @ imm = #0xda0 + 3a0: ldr r0, [pc, #0xb8] <$d.8> + 3a2: ldr r1, [r0] + 3a4: cmp r1, #0x0 + 3a6: bne 0x43c @ imm = #0x92 + 3a8: movs r1, #0x0 + 3aa: mvns r1, r1 + 3ac: str r1, [r0] + 3ae: ldr r1, [pc, #0xbc] <$d.8+0x12> + 3b0: ldr r2, [r1] + 3b2: ldr r3, [pc, #0xbc] <$d.8+0x16> + 3b4: cmp r2, r3 + 3b6: bhs 0x44a @ imm = #0x90 + 3b8: movs r5, #0x1 + 3ba: ands r4, r5 + 3bc: ldrb r3, [r0, #0x4] + 3be: adds r2, r2, #0x1 + 3c0: str r2, [r1] + 3c2: cmp r3, #0x2 + 3c4: beq 0x424 @ imm = #0x5c + 3c6: ldrb r2, [r1, #0x4] + 3c8: cmp r2, #0x1 + 3ca: bne 0x424 @ imm = #0x56 + 3cc: ldr r2, [pc, #0xb0] <$d.8+0x24> + 3ce: ldr r6, [r2] + 3d0: lsls r6, r6, #0x14 + 3d2: bmi 0x3dc @ imm = #0x6 + 3d4: cmp r3, #0x2 + 3d6: bne 0x3e4 @ imm = #0xa + 3d8: mov r5, r3 + 3da: b 0x3e6 @ imm = #0x8 + 3dc: cmp r3, #0x2 + 3de: bne 0x3f8 @ imm = #0x16 + 3e0: mov r6, r3 + 3e2: b 0x3fa @ imm = #0x14 + 3e4: adds r5, r0, #0x6 + 3e6: ldrb r5, [r5] + 3e8: cmp r5, #0x1 + 3ea: bne 0x424 @ imm = #0x36 + 3ec: ldrb r5, [r0, #0x4] + 3ee: cmp r5, #0x0 + 3f0: beq 0x40a @ imm = #0x16 + 3f2: ldr r2, [pc, #0x90] <$d.8+0x2a> + 3f4: adds r2, r2, #0x4 + 3f6: b 0x40c @ imm = #0x12 + 3f8: adds r6, r0, #0x6 + 3fa: ldrb r6, [r6] + 3fc: cmp r6, #0x1 + 3fe: bne 0x424 @ imm = #0x22 + 400: ldrb r6, [r0, #0x4] + 402: cmp r6, #0x0 + 404: beq 0x410 @ imm = #0x8 + 406: ldr r2, [pc, #0x7c] <$d.8+0x2a> + 408: b 0x412 @ imm = #0x6 + 40a: adds r2, #0x10 + 40c: movs r5, #0x1 + 40e: b 0x412 @ imm = #0x0 + 410: adds r2, #0xc + 412: cmp r3, #0x2 + 414: mov r3, r5 + 416: beq 0x41a @ imm = #0x0 + 418: adds r3, r0, #0x5 + 41a: ldrb r3, [r3] + 41c: movs r6, #0x1f + 41e: ands r6, r3 + 420: lsls r5, r6 + 422: str r5, [r2] + 424: ldr r2, [r1] + 426: subs r2, r2, #0x1 + 428: str r2, [r1] + 42a: ldr r1, [r0] + 42c: adds r1, r1, #0x1 + 42e: str r1, [r0] + 430: cmp r4, #0x0 + 432: bne 0x438 @ imm = #0x2 + 434: bl 0x1144 <__cpsie> @ imm = #0xd0c + 438: add sp, #0xc + 43a: pop {r4, r5, r6, r7, pc} + 43c: ldr r0, [pc, #0x20] <$d.8+0x4> + 43e: str r0, [sp] + 440: ldr r0, [pc, #0x20] <$d.8+0x8> + 442: movs r1, #0x10 + 444: add r2, sp, #0x8 + 446: ldr r3, [pc, #0x20] <$d.8+0xe> + 448: b 0x456 @ imm = #0xa + 44a: ldr r0, [pc, #0x28] <$d.8+0x1a> + 44c: str r0, [sp] + 44e: ldr r0, [pc, #0x28] <$d.8+0x1e> + 450: movs r1, #0x18 + 452: add r2, sp, #0x8 + 454: ldr r3, [pc, #0x24] <$d.8+0x20> + 456: bl 0xc5c @ imm = #0x802 + 45a: trap + +0000045c <$d.8>: + 45c: 00 00 00 10 .word 0x10000000 + 460: 3c 15 00 00 .word 0x0000153c + 464: 30 14 00 00 .word 0x00001430 + 468: a4 14 00 00 .word 0x000014a4 + 46c: 14 00 00 10 .word 0x10000014 + 470: ff ff ff 7f .word 0x7fffffff + 474: 4c 15 00 00 .word 0x0000154c + 478: 50 14 00 00 .word 0x00001450 + 47c: 94 14 00 00 .word 0x00001494 + 480: 04 00 00 50 .word 0x50000004 + 484: 10 10 00 50 .word 0x50001010 + +00000488 : + 488: ldr r0, [r0] + 48a: b 0x48a @ imm = #-0x4 + +0000048c ::fmt::h55a201de7649bb77>: + 48c: push {r4, r5, r6, r7, lr} + 48e: add r7, sp, #0xc + 490: sub sp, #0x4c + 492: str r1, [sp, #0x18] + 494: ldr r2, [r0] + 496: ldr r3, [pc, #0x23c] <$d.11+0x2> + 498: ldr r1, [pc, #0x23c] <$d.11+0x4> + 49a: movs r5, #0x27 + 49c: cmp r2, r1 + 49e: blo 0x4fc ::fmt::h55a201de7649bb77+0x70> @ imm = #0x5a + 4a0: mov r4, r2 + 4a2: str r5, [sp, #0x20] + 4a4: mov r0, r4 + 4a6: ldr r1, [pc, #0x230] <$d.11+0x6> + 4a8: bl 0x114e <__aeabi_uidiv> @ imm = #0xca2 + 4ac: str r0, [sp, #0x1c] + 4ae: ldr r1, [pc, #0x22c] <$d.11+0xa> + 4b0: muls r1, r0, r1 + 4b2: adds r1, r1, r4 + 4b4: uxth r2, r1 + 4b6: lsrs r2, r2, #0x2 + 4b8: ldr r0, [pc, #0x224] <$d.11+0xc> + 4ba: muls r2, r0, r2 + 4bc: lsrs r2, r2, #0x11 + 4be: lsls r3, r2, #0x1 + 4c0: ldr r0, [pc, #0x220] <$d.11+0x10> + 4c2: ldrb r0, [r0, r3] + 4c4: add r6, sp, #0x24 + 4c6: adds r6, r6, r5 + 4c8: subs r5, r6, #0x4 + 4ca: strb r0, [r5] + 4cc: ldr r0, [pc, #0x214] <$d.11+0x10> + 4ce: adds r0, r0, r3 + 4d0: ldr r3, [pc, #0x200] <$d.11> + 4d2: ldrb r0, [r0, #0x1] + 4d4: strb r0, [r5, #0x1] + 4d6: ldr r5, [sp, #0x20] + 4d8: muls r2, r3, r2 + 4da: adds r0, r2, r1 + 4dc: uxth r0, r0 + 4de: lsls r0, r0, #0x1 + 4e0: ldr r1, [pc, #0x200] <$d.11+0x10> + 4e2: ldrb r1, [r1, r0] + 4e4: subs r2, r6, #0x2 + 4e6: strb r1, [r2] + 4e8: ldr r1, [pc, #0x1f8] <$d.11+0x10> + 4ea: adds r0, r1, r0 + 4ec: ldrb r0, [r0, #0x1] + 4ee: strb r0, [r2, #0x1] + 4f0: ldr r2, [sp, #0x1c] + 4f2: subs r5, r5, #0x4 + 4f4: ldr r0, [pc, #0x1f0] <$d.11+0x14> + 4f6: cmp r4, r0 + 4f8: mov r4, r2 + 4fa: bhi 0x4a2 ::fmt::h55a201de7649bb77+0x16> @ imm = #-0x5c + 4fc: cmp r2, #0x63 + 4fe: ble 0x53e ::fmt::h55a201de7649bb77+0xb2> @ imm = #0x3c + 500: uxth r0, r2 + 502: lsrs r0, r0, #0x2 + 504: ldr r1, [pc, #0x1d8] <$d.11+0xc> + 506: muls r1, r0, r1 + 508: lsrs r1, r1, #0x11 + 50a: muls r3, r1, r3 + 50c: adds r0, r3, r2 + 50e: uxth r0, r0 + 510: lsls r0, r0, #0x1 + 512: ldr r2, [pc, #0x1d0] <$d.11+0x12> + 514: ldrb r3, [r2, r0] + 516: subs r5, r5, #0x2 + 518: add r4, sp, #0x24 + 51a: strb r3, [r4, r5] + 51c: adds r3, r4, r5 + 51e: adds r0, r2, r0 + 520: ldrb r0, [r0, #0x1] + 522: strb r0, [r3, #0x1] + 524: cmp r1, #0xa + 526: blt 0x544 ::fmt::h55a201de7649bb77+0xb8> @ imm = #0x1a + 528: lsls r0, r1, #0x1 + 52a: ldr r1, [pc, #0x1b8] <$d.11+0x12> + 52c: ldrb r2, [r1, r0] + 52e: subs r5, r5, #0x2 + 530: add r3, sp, #0x24 + 532: strb r2, [r3, r5] + 534: adds r2, r3, r5 + 536: adds r0, r1, r0 + 538: ldrb r0, [r0, #0x1] + 53a: strb r0, [r2, #0x1] + 53c: b 0x54c ::fmt::h55a201de7649bb77+0xc0> @ imm = #0xc + 53e: mov r1, r2 + 540: cmp r1, #0xa + 542: bge 0x528 ::fmt::h55a201de7649bb77+0x9c> @ imm = #-0x1e + 544: subs r5, r5, #0x1 + 546: adds r1, #0x30 + 548: add r0, sp, #0x24 + 54a: strb r1, [r0, r5] + 54c: movs r1, #0x27 + 54e: ldr r0, [sp, #0x18] + 550: ldr r0, [r0] + 552: movs r3, #0x1 + 554: mov r6, r0 + 556: ands r6, r3 + 558: movs r2, #0x11 + 55a: lsls r2, r2, #0x10 + 55c: cmp r6, #0x0 + 55e: str r2, [sp, #0xc] + 560: beq 0x564 ::fmt::h55a201de7649bb77+0xd8> @ imm = #0x0 + 562: movs r2, #0x2b + 564: str r2, [sp, #0x14] + 566: subs r4, r1, r5 + 568: add r1, sp, #0x24 + 56a: str r5, [sp, #0x20] + 56c: adds r1, r1, r5 + 56e: str r1, [sp, #0x10] + 570: lsls r1, r0, #0x1d + 572: asrs r1, r1, #0x1f + 574: ldr r2, [pc, #0x174] <$d.11+0x18> + 576: ands r2, r1 + 578: ldr r5, [sp, #0x18] + 57a: ldr r1, [r5, #0x8] + 57c: cmp r1, #0x1 + 57e: bne 0x5b0 ::fmt::h55a201de7649bb77+0x124> @ imm = #0x2e + 580: str r2, [sp, #0x8] + 582: adds r1, r4, r6 + 584: ldr r2, [r5, #0xc] + 586: cmp r2, r1 + 588: bls 0x5b6 ::fmt::h55a201de7649bb77+0x12a> @ imm = #0x2a + 58a: str r2, [sp, #0x1c] + 58c: str r4, [sp, #0x4] + 58e: lsls r0, r0, #0x1c + 590: bmi 0x5dc ::fmt::h55a201de7649bb77+0x150> @ imm = #0x48 + 592: movs r0, #0x20 + 594: ldr r3, [sp, #0x18] + 596: ldrb r2, [r3, r0] + 598: cmp r2, #0x3 + 59a: bne 0x59e ::fmt::h55a201de7649bb77+0x112> @ imm = #0x0 + 59c: movs r2, #0x1 + 59e: ldr r0, [sp, #0x1c] + 5a0: subs r0, r0, r1 + 5a2: lsls r1, r2, #0x1e + 5a4: beq 0x628 ::fmt::h55a201de7649bb77+0x19c> @ imm = #0x80 + 5a6: cmp r2, #0x1 + 5a8: bne 0x62e ::fmt::h55a201de7649bb77+0x1a2> @ imm = #0x82 + 5aa: movs r5, #0x0 + 5ac: mov r1, r0 + 5ae: b 0x634 ::fmt::h55a201de7649bb77+0x1a8> @ imm = #0x82 + 5b0: mov r0, r5 + 5b2: ldr r1, [sp, #0x14] + 5b4: b 0x5bc ::fmt::h55a201de7649bb77+0x130> @ imm = #0x4 + 5b6: mov r0, r5 + 5b8: ldr r1, [sp, #0x14] + 5ba: ldr r2, [sp, #0x8] + 5bc: mov r6, r3 + 5be: bl 0x728 @ imm = #0x166 + 5c2: mov r1, r6 + 5c4: cmp r0, #0x0 + 5c6: bne 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #0xc + 5c8: ldr r0, [r5, #0x18] + 5ca: ldr r1, [r5, #0x1c] + 5cc: ldr r3, [r1, #0xc] + 5ce: ldr r1, [sp, #0x10] + 5d0: mov r2, r4 + 5d2: blx r3 + 5d4: mov r1, r0 + 5d6: mov r0, r1 + 5d8: add sp, #0x4c + 5da: pop {r4, r5, r6, r7, pc} + 5dc: movs r0, #0x20 + 5de: ldr r5, [sp, #0x18] + 5e0: ldrb r4, [r5, r0] + 5e2: movs r1, #0x1 + 5e4: str r1, [sp, #0xc] + 5e6: strb r1, [r5, r0] + 5e8: ldr r0, [r5, #0x4] + 5ea: str r0, [sp] + 5ec: movs r0, #0x30 + 5ee: str r0, [r5, #0x4] + 5f0: mov r0, r5 + 5f2: ldr r1, [sp, #0x14] + 5f4: ldr r2, [sp, #0x8] + 5f6: bl 0x728 @ imm = #0x12e + 5fa: cmp r0, #0x0 + 5fc: bne 0x624 ::fmt::h55a201de7649bb77+0x198> @ imm = #0x24 + 5fe: str r4, [sp, #0x14] + 600: mov r0, r5 + 602: adds r0, #0x20 + 604: str r0, [sp, #0x8] + 606: ldr r0, [sp, #0x20] + 608: ldr r1, [sp, #0x1c] + 60a: adds r0, r0, r1 + 60c: subs r6, r0, r6 + 60e: subs r6, #0x26 + 610: ldr r4, [r5, #0x18] + 612: ldr r5, [r5, #0x1c] + 614: subs r6, r6, #0x1 + 616: beq 0x662 ::fmt::h55a201de7649bb77+0x1d6> @ imm = #0x48 + 618: ldr r2, [r5, #0x10] + 61a: movs r1, #0x30 + 61c: mov r0, r4 + 61e: blx r2 + 620: cmp r0, #0x0 + 622: beq 0x614 ::fmt::h55a201de7649bb77+0x188> @ imm = #-0x12 + 624: ldr r1, [sp, #0xc] + 626: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0x54 + 628: movs r1, #0x0 + 62a: mov r5, r0 + 62c: b 0x634 ::fmt::h55a201de7649bb77+0x1a8> @ imm = #0x4 + 62e: lsrs r1, r0, #0x1 + 630: adds r0, r0, #0x1 + 632: lsrs r5, r0, #0x1 + 634: adds r6, r1, #0x1 + 636: ldr r4, [r3, #0x4] + 638: ldr r0, [r3, #0x18] + 63a: str r0, [sp, #0x20] + 63c: ldr r0, [r3, #0x1c] + 63e: str r0, [sp, #0x1c] + 640: subs r6, r6, #0x1 + 642: beq 0x656 ::fmt::h55a201de7649bb77+0x1ca> @ imm = #0x10 + 644: ldr r0, [sp, #0x1c] + 646: ldr r2, [r0, #0x10] + 648: ldr r0, [sp, #0x20] + 64a: mov r1, r4 + 64c: blx r2 + 64e: cmp r0, #0x0 + 650: beq 0x640 ::fmt::h55a201de7649bb77+0x1b4> @ imm = #-0x14 + 652: movs r1, #0x1 + 654: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0x82 + 656: ldr r0, [sp, #0xc] + 658: cmp r4, r0 + 65a: beq 0x680 ::fmt::h55a201de7649bb77+0x1f4> @ imm = #0x22 + 65c: ldr r2, [sp, #0x8] + 65e: mov r6, r5 + 660: b 0x684 ::fmt::h55a201de7649bb77+0x1f8> @ imm = #0x20 + 662: ldr r3, [r5, #0xc] + 664: mov r0, r4 + 666: ldr r1, [sp, #0x10] + 668: ldr r2, [sp, #0x4] + 66a: blx r3 + 66c: cmp r0, #0x0 + 66e: ldr r0, [sp, #0x18] + 670: ldr r1, [sp, #0xc] + 672: bne 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xa0 + 674: ldr r1, [sp, #0x14] + 676: ldr r2, [sp, #0x8] + 678: strb r1, [r2] + 67a: ldr r1, [sp] + 67c: str r1, [r0, #0x4] + 67e: b 0x6ce ::fmt::h55a201de7649bb77+0x242> @ imm = #0x4c + 680: movs r6, #0x0 + 682: ldr r2, [sp, #0x8] + 684: movs r1, #0x1 + 686: cmp r4, r0 + 688: beq 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xb6 + 68a: mov r5, r1 + 68c: ldr r0, [sp, #0x18] + 68e: ldr r1, [sp, #0x14] + 690: bl 0x728 @ imm = #0x94 + 694: cmp r0, #0x0 + 696: beq 0x69c ::fmt::h55a201de7649bb77+0x210> @ imm = #0x2 + 698: mov r1, r5 + 69a: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xc8 + 69c: ldr r0, [sp, #0x1c] + 69e: ldr r3, [r0, #0xc] + 6a0: ldr r0, [sp, #0x20] + 6a2: ldr r1, [sp, #0x10] + 6a4: ldr r2, [sp, #0x4] + 6a6: blx r3 + 6a8: cmp r0, #0x0 + 6aa: mov r1, r5 + 6ac: bne 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xda + 6ae: movs r5, #0x0 + 6b0: cmp r6, r5 + 6b2: beq 0x6c8 ::fmt::h55a201de7649bb77+0x23c> @ imm = #0x12 + 6b4: ldr r0, [sp, #0x1c] + 6b6: ldr r2, [r0, #0x10] + 6b8: ldr r0, [sp, #0x20] + 6ba: mov r1, r4 + 6bc: blx r2 + 6be: adds r5, r5, #0x1 + 6c0: cmp r0, #0x0 + 6c2: beq 0x6b0 ::fmt::h55a201de7649bb77+0x224> @ imm = #-0x16 + 6c4: subs r0, r5, #0x1 + 6c6: b 0x6ca ::fmt::h55a201de7649bb77+0x23e> @ imm = #0x0 + 6c8: mov r0, r6 + 6ca: cmp r0, r6 + 6cc: blo 0x652 ::fmt::h55a201de7649bb77+0x1c6> @ imm = #-0x7e + 6ce: movs r1, #0x0 + 6d0: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xfe + 6d2: mov r8, r8 + +000006d4 <$d.11>: + 6d4: 9c ff 00 00 .word 0x0000ff9c + 6d8: 10 27 00 00 .word 0x00002710 + 6dc: f0 d8 ff ff .word 0xffffd8f0 + 6e0: 7b 14 00 00 .word 0x0000147b + 6e4: d4 15 00 00 .word 0x000015d4 + 6e8: ff e0 f5 05 .word 0x05f5e0ff + 6ec: 9c 16 00 00 .word 0x0000169c + +000006f0 : + 6f0: push {r7, lr} + 6f2: add r7, sp, #0x0 + 6f4: sub sp, #0x10 + 6f6: str r1, [sp, #0xc] + 6f8: str r0, [sp, #0x8] + 6fa: ldr r0, [pc, #0x10] <$d.13+0x2> + 6fc: str r0, [sp, #0x4] + 6fe: ldr r0, [pc, #0x10] <$d.13+0x6> + 700: str r0, [sp] + 702: mov r0, sp + 704: bl 0xdb4 @ imm = #0x6ac + 708: trap + 70a: mov r8, r8 + +0000070c <$d.13>: + 70c: 90 15 00 00 .word 0x00001590 + 710: 9c 16 00 00 .word 0x0000169c + +00000714 >>::hfaa022ea9f302e4a>: + 714: bx lr + 716: bmi 0x6c2 ::fmt::h55a201de7649bb77+0x236> @ imm = #-0x58 + +00000718 <::type_id::hc7e5c3525e389ccd>: + 718: ldr r0, [pc, #0x4] <$d.16> + 71a: ldr r1, [pc, #0x8] <$d.16+0x6> + 71c: bx lr + 71e: mov r8, r8 + +00000720 <$d.16>: + 720: 4e 08 33 ba .word 0xba33084e + 724: eb 93 15 f1 .word 0xf11593eb + +00000728 : + 728: push {r4, r5, r7, lr} + 72a: add r7, sp, #0x8 + 72c: mov r4, r2 + 72e: mov r5, r0 + 730: movs r0, #0x11 + 732: lsls r0, r0, #0x10 + 734: cmp r1, r0 + 736: beq 0x748 @ imm = #0xe + 738: ldr r0, [r5, #0x18] + 73a: ldr r2, [r5, #0x1c] + 73c: ldr r2, [r2, #0x10] + 73e: blx r2 + 740: cmp r0, #0x0 + 742: beq 0x748 @ imm = #0x2 + 744: movs r0, #0x1 + 746: pop {r4, r5, r7, pc} + 748: cmp r4, #0x0 + 74a: beq 0x75a @ imm = #0xc + 74c: ldr r0, [r5, #0x18] + 74e: ldr r1, [r5, #0x1c] + 750: ldr r3, [r1, #0xc] + 752: movs r2, #0x0 + 754: mov r1, r4 + 756: blx r3 + 758: pop {r4, r5, r7, pc} + 75a: movs r0, #0x0 + 75c: pop {r4, r5, r7, pc} + +0000075e : + 75e: push {r4, r5, r6, r7, lr} + 760: add r7, sp, #0xc + 762: sub sp, #0x2c + 764: mov r5, r1 + 766: ldr r1, [r0, #0x10] + 768: ldr r3, [r0, #0x8] + 76a: cmp r3, #0x1 + 76c: str r0, [sp, #0x24] + 76e: bne 0x776 @ imm = #0x4 + 770: cmp r1, #0x1 + 772: beq 0x77c @ imm = #0x6 + 774: b 0x8e2 @ imm = #0x16a + 776: cmp r1, #0x1 + 778: beq 0x77c @ imm = #0x0 + 77a: b 0x9a6 @ imm = #0x228 + 77c: str r3, [sp, #0x10] + 77e: str r2, [sp, #0x1c] + 780: adds r1, r5, r2 + 782: str r1, [sp, #0x28] + 784: ldr r4, [r0, #0x14] + 786: cmp r4, #0x0 + 788: str r5, [sp, #0x20] + 78a: beq 0x82e @ imm = #0xa0 + 78c: movs r1, #0x11 + 78e: lsls r0, r1, #0x10 + 790: str r0, [sp, #0xc] + 792: movs r1, #0x7 + 794: lsls r0, r1, #0x12 + 796: str r0, [sp, #0x8] + 798: movs r0, #0x0 + 79a: b 0x7d0 @ imm = #0x32 + 79c: str r0, [sp, #0x4] + 79e: ldrb r0, [r5] + 7a0: str r0, [sp, #0x14] + 7a2: movs r2, #0x3f + 7a4: ldr r0, [sp, #0x14] + 7a6: ands r2, r0 + 7a8: ldr r0, [sp, #0x4] + 7aa: str r2, [sp, #0x14] + 7ac: adds r5, r5, #0x1 + 7ae: lsls r6, r6, #0x12 + 7b0: ldr r2, [sp, #0x8] + 7b2: ands r6, r2 + 7b4: lsls r1, r1, #0xc + 7b6: adds r1, r1, r6 + 7b8: ldr r2, [sp, #0x18] + 7ba: lsls r6, r2, #0x6 + 7bc: adds r1, r1, r6 + 7be: ldr r2, [sp, #0x14] + 7c0: adds r1, r1, r2 + 7c2: ldr r6, [sp, #0xc] + 7c4: cmp r1, r6 + 7c6: beq 0x898 @ imm = #0xce + 7c8: subs r1, r0, r3 + 7ca: adds r0, r1, r5 + 7cc: subs r4, r4, #0x1 + 7ce: beq 0x830 @ imm = #0x5e + 7d0: ldr r1, [sp, #0x28] + 7d2: cmp r5, r1 + 7d4: beq 0x898 @ imm = #0xc0 + 7d6: mov r3, r5 + 7d8: movs r1, #0x0 + 7da: ldrsb r6, [r5, r1] + 7dc: adds r5, r5, #0x1 + 7de: cmp r6, #0x0 + 7e0: bpl 0x7c8 @ imm = #-0x1c + 7e2: ldr r2, [sp, #0x28] + 7e4: cmp r5, r2 + 7e6: mov r5, r2 + 7e8: beq 0x7f2 @ imm = #0x6 + 7ea: ldrb r5, [r3, #0x1] + 7ec: movs r1, #0x3f + 7ee: ands r1, r5 + 7f0: adds r5, r3, #0x2 + 7f2: uxtb r6, r6 + 7f4: cmp r6, #0xe0 + 7f6: blo 0x7c8 @ imm = #-0x32 + 7f8: ldr r2, [sp, #0x28] + 7fa: cmp r5, r2 + 7fc: beq 0x816 @ imm = #0x16 + 7fe: ldrb r2, [r5] + 800: str r2, [sp, #0x18] + 802: str r6, [sp, #0x14] + 804: movs r6, #0x3f + 806: ldr r2, [sp, #0x18] + 808: ands r6, r2 + 80a: str r6, [sp, #0x18] + 80c: ldr r6, [sp, #0x14] + 80e: adds r5, r5, #0x1 + 810: cmp r6, #0xf0 + 812: blo 0x7c8 @ imm = #-0x4e + 814: b 0x820 @ imm = #0x8 + 816: movs r5, #0x0 + 818: str r5, [sp, #0x18] + 81a: ldr r5, [sp, #0x28] + 81c: cmp r6, #0xf0 + 81e: blo 0x7c8 @ imm = #-0x5a + 820: ldr r2, [sp, #0x28] + 822: cmp r5, r2 + 824: bne 0x79c @ imm = #-0x8c + 826: movs r5, #0x0 + 828: str r5, [sp, #0x14] + 82a: ldr r5, [sp, #0x28] + 82c: b 0x7ae @ imm = #-0x82 + 82e: movs r0, #0x0 + 830: ldr r1, [sp, #0x28] + 832: cmp r5, r1 + 834: beq 0x898 @ imm = #0x60 + 836: movs r3, #0x0 + 838: ldrsb r1, [r5, r3] + 83a: cmp r1, #0x0 + 83c: bpl 0x8a2 @ imm = #0x62 + 83e: uxtb r1, r1 + 840: adds r4, r5, #0x1 + 842: ldr r6, [sp, #0x28] + 844: cmp r4, r6 + 846: beq 0x850 @ imm = #0x6 + 848: adds r6, r5, #0x2 + 84a: ldrb r3, [r5, #0x1] + 84c: lsls r3, r3, #0x1a + 84e: lsrs r3, r3, #0x14 + 850: cmp r1, #0xe0 + 852: blo 0x8a2 @ imm = #0x4c + 854: ldr r2, [sp, #0x28] + 856: cmp r6, r2 + 858: beq 0x868 @ imm = #0xc + 85a: ldrb r5, [r6] + 85c: movs r4, #0x3f + 85e: ands r4, r5 + 860: adds r5, r6, #0x1 + 862: cmp r1, #0xf0 + 864: bhs 0x870 @ imm = #0x8 + 866: b 0x8a2 @ imm = #0x38 + 868: movs r4, #0x0 + 86a: ldr r5, [sp, #0x28] + 86c: cmp r1, #0xf0 + 86e: blo 0x8a2 @ imm = #0x30 + 870: mov r6, r0 + 872: orrs r4, r3 + 874: ldr r0, [sp, #0x28] + 876: cmp r5, r0 + 878: beq 0x882 @ imm = #0x6 + 87a: ldrb r3, [r5] + 87c: movs r0, #0x3f + 87e: ands r0, r3 + 880: b 0x884 @ imm = #0x0 + 882: movs r0, #0x0 + 884: lsls r3, r4, #0x6 + 886: lsls r1, r1, #0x1d + 888: lsrs r1, r1, #0xb + 88a: adds r1, r3, r1 + 88c: adds r0, r1, r0 + 88e: movs r1, #0x11 + 890: lsls r1, r1, #0x10 + 892: cmp r0, r1 + 894: mov r0, r6 + 896: bne 0x8a2 @ imm = #0x8 + 898: ldr r2, [sp, #0x1c] + 89a: ldr r5, [sp, #0x20] + 89c: ldr r0, [sp, #0x24] + 89e: ldr r1, [sp, #0x10] + 8a0: b 0x8de @ imm = #0x3a + 8a2: cmp r0, #0x0 + 8a4: ldr r2, [sp, #0x1c] + 8a6: ldr r5, [sp, #0x20] + 8a8: beq 0x8ca @ imm = #0x1e + 8aa: cmp r0, r2 + 8ac: bhs 0x8c2 @ imm = #0x12 + 8ae: ldrsb r1, [r5, r0] + 8b0: mov r4, r0 + 8b2: movs r0, #0x3f + 8b4: mvns r3, r0 + 8b6: mov r0, r4 + 8b8: movs r4, #0x0 + 8ba: cmp r1, r3 + 8bc: mov r1, r4 + 8be: bge 0x8ca @ imm = #0x8 + 8c0: b 0x8ce @ imm = #0xa + 8c2: movs r4, #0x0 + 8c4: cmp r0, r2 + 8c6: mov r1, r4 + 8c8: bne 0x8ce @ imm = #0x2 + 8ca: mov r4, r5 + 8cc: mov r1, r0 + 8ce: cmp r4, #0x0 + 8d0: beq 0x8d4 @ imm = #0x0 + 8d2: mov r2, r1 + 8d4: cmp r4, #0x0 + 8d6: ldr r0, [sp, #0x24] + 8d8: ldr r1, [sp, #0x10] + 8da: beq 0x8de @ imm = #0x0 + 8dc: mov r5, r4 + 8de: cmp r1, #0x1 + 8e0: bne 0x9a6 @ imm = #0xc2 + 8e2: ldr r1, [r0, #0xc] + 8e4: str r1, [sp, #0x28] + 8e6: cmp r2, #0x0 + 8e8: beq 0x8fe @ imm = #0x12 + 8ea: movs r0, #0x3 + 8ec: mov r1, r2 + 8ee: ands r1, r0 + 8f0: str r1, [sp, #0x18] + 8f2: subs r1, r2, #0x1 + 8f4: cmp r1, #0x3 + 8f6: bhs 0x902 @ imm = #0x8 + 8f8: movs r3, #0x0 + 8fa: mov r4, r5 + 8fc: b 0x946 @ imm = #0x46 + 8fe: movs r3, #0x0 + 900: b 0x978 @ imm = #0x74 + 902: str r2, [sp, #0x1c] + 904: bics r2, r0 + 906: mov r4, r5 + 908: rsbs r5, r2, #0 + 90a: movs r3, #0x0 + 90c: str r4, [sp, #0x20] + 90e: b 0x916 @ imm = #0x4 + 910: adds r4, r4, #0x4 + 912: adds r5, r5, #0x4 + 914: beq 0x942 @ imm = #0x2a + 916: ldrb r6, [r4, #0x1] + 918: movs r0, #0xc0 + 91a: ands r6, r0 + 91c: ldrb r1, [r4] + 91e: ands r1, r0 + 920: cmp r1, #0x80 + 922: beq 0x926 @ imm = #0x0 + 924: adds r3, r3, #0x1 + 926: cmp r6, #0x80 + 928: beq 0x92c @ imm = #0x0 + 92a: adds r3, r3, #0x1 + 92c: ldrb r1, [r4, #0x2] + 92e: ands r1, r0 + 930: cmp r1, #0x80 + 932: beq 0x936 @ imm = #0x0 + 934: adds r3, r3, #0x1 + 936: ldrb r1, [r4, #0x3] + 938: ands r1, r0 + 93a: cmp r1, #0x80 + 93c: beq 0x910 @ imm = #-0x30 + 93e: adds r3, r3, #0x1 + 940: b 0x910 @ imm = #-0x34 + 942: ldr r2, [sp, #0x1c] + 944: ldr r5, [sp, #0x20] + 946: ldr r0, [sp, #0x18] + 948: cmp r0, #0x0 + 94a: beq 0x978 @ imm = #0x2a + 94c: ldrb r1, [r4] + 94e: movs r0, #0xc0 + 950: ands r1, r0 + 952: cmp r1, #0x80 + 954: beq 0x958 @ imm = #0x0 + 956: adds r3, r3, #0x1 + 958: ldr r1, [sp, #0x18] + 95a: cmp r1, #0x1 + 95c: beq 0x978 @ imm = #0x18 + 95e: ldrb r1, [r4, #0x1] + 960: ands r1, r0 + 962: cmp r1, #0x80 + 964: beq 0x968 @ imm = #0x0 + 966: adds r3, r3, #0x1 + 968: ldr r1, [sp, #0x18] + 96a: cmp r1, #0x2 + 96c: beq 0x978 @ imm = #0x8 + 96e: ldrb r1, [r4, #0x2] + 970: ands r1, r0 + 972: cmp r1, #0x80 + 974: beq 0x978 @ imm = #0x0 + 976: adds r3, r3, #0x1 + 978: ldr r0, [sp, #0x28] + 97a: cmp r0, r3 + 97c: bls 0x9a4 @ imm = #0x24 + 97e: str r5, [sp, #0x20] + 980: movs r0, #0x20 + 982: ldr r1, [sp, #0x24] + 984: ldrb r0, [r1, r0] + 986: movs r5, #0x0 + 988: cmp r0, #0x3 + 98a: mov r4, r5 + 98c: beq 0x990 @ imm = #0x0 + 98e: mov r4, r0 + 990: ldr r0, [sp, #0x28] + 992: subs r0, r0, r3 + 994: lsls r1, r4, #0x1e + 996: str r2, [sp, #0x1c] + 998: beq 0x9b6 @ imm = #0x1a + 99a: cmp r4, #0x1 + 99c: bne 0x9bc @ imm = #0x1c + 99e: movs r1, #0x0 + 9a0: str r1, [sp, #0x18] + 9a2: b 0x9c6 @ imm = #0x20 + 9a4: ldr r0, [sp, #0x24] + 9a6: ldr r1, [r0, #0x18] + 9a8: ldr r0, [r0, #0x1c] + 9aa: ldr r3, [r0, #0xc] + 9ac: mov r0, r1 + 9ae: mov r1, r5 + 9b0: blx r3 + 9b2: add sp, #0x2c + 9b4: pop {r4, r5, r6, r7, pc} + 9b6: str r0, [sp, #0x18] + 9b8: mov r0, r5 + 9ba: b 0x9c6 @ imm = #0x8 + 9bc: lsrs r1, r0, #0x1 + 9be: adds r0, r0, #0x1 + 9c0: lsrs r0, r0, #0x1 + 9c2: str r0, [sp, #0x18] + 9c4: mov r0, r1 + 9c6: ldr r1, [sp, #0x24] + 9c8: adds r5, r0, #0x1 + 9ca: ldr r6, [r1, #0x4] + 9cc: ldr r0, [r1, #0x18] + 9ce: str r0, [sp, #0x28] + 9d0: ldr r4, [r1, #0x1c] + 9d2: subs r5, r5, #0x1 + 9d4: beq 0x9e8 @ imm = #0x10 + 9d6: ldr r2, [r4, #0x10] + 9d8: ldr r0, [sp, #0x28] + 9da: mov r1, r6 + 9dc: blx r2 + 9de: cmp r0, #0x0 + 9e0: beq 0x9d2 @ imm = #-0x12 + 9e2: movs r0, #0x1 + 9e4: add sp, #0x2c + 9e6: pop {r4, r5, r6, r7, pc} + 9e8: movs r0, #0x11 + 9ea: lsls r3, r0, #0x10 + 9ec: cmp r6, r3 + 9ee: bne 0x9f4 @ imm = #0x2 + 9f0: movs r1, #0x0 + 9f2: str r1, [sp, #0x18] + 9f4: ldr r1, [sp, #0x20] + 9f6: ldr r0, [sp, #0x28] + 9f8: mov r2, r4 + 9fa: movs r5, #0x1 + 9fc: cmp r6, r3 + 9fe: bne 0xa06 @ imm = #0x4 + a00: mov r0, r5 + a02: add sp, #0x2c + a04: pop {r4, r5, r6, r7, pc} + a06: ldr r3, [r2, #0xc] + a08: ldr r2, [sp, #0x1c] + a0a: blx r3 + a0c: cmp r0, #0x0 + a0e: mov r0, r5 + a10: bne 0x9e4 @ imm = #-0x30 + a12: movs r5, #0x0 + a14: ldr r1, [sp, #0x18] + a16: cmp r1, r5 + a18: beq 0xa2e @ imm = #0x12 + a1a: ldr r2, [r4, #0x10] + a1c: ldr r0, [sp, #0x28] + a1e: mov r1, r6 + a20: blx r2 + a22: ldr r1, [sp, #0x18] + a24: adds r5, r5, #0x1 + a26: cmp r0, #0x0 + a28: beq 0xa16 @ imm = #-0x16 + a2a: subs r0, r5, #0x1 + a2c: b 0xa30 @ imm = #0x0 + a2e: mov r0, r1 + a30: cmp r0, r1 + a32: blo 0x9e2 @ imm = #-0x54 + a34: movs r0, #0x0 + a36: add sp, #0x2c + a38: pop {r4, r5, r6, r7, pc} + a3a: bmi 0x9e6 @ imm = #-0x58 + +00000a3c : + a3c: push {r7, lr} + a3e: add r7, sp, #0x0 + a40: sub sp, #0x20 + a42: movs r0, #0x0 + a44: str r0, [sp, #0x14] + a46: ldr r1, [pc, #0x20] <$d.20+0x2> + a48: str r1, [sp, #0x10] + a4a: str r0, [sp, #0xc] + a4c: str r0, [sp, #0x8] + a4e: movs r0, #0x1 + a50: str r0, [sp, #0x4] + a52: add r0, sp, #0x18 + a54: str r0, [sp] + a56: movs r0, #0x2b + a58: str r0, [sp, #0x1c] + a5a: ldr r0, [pc, #0x10] <$d.20+0x6> + a5c: str r0, [sp, #0x18] + a5e: mov r0, sp + a60: ldr r1, [pc, #0xc] <$d.20+0x8> + a62: bl 0x6f0 @ imm = #-0x376 + a66: trap + +00000a68 <$d.20>: + a68: 9c 16 00 00 .word 0x0000169c + a6c: 68 14 00 00 .word 0x00001468 + a70: 0c 15 00 00 .word 0x0000150c + +00000a74 <<&T as core::fmt::Display>::fmt::h485290c43ed74af0>: + a74: push {r7, lr} + a76: add r7, sp, #0x0 + a78: mov r3, r1 + a7a: ldm r0!, {r1, r2} + a7c: mov r0, r3 + a7e: bl 0x75e @ imm = #-0x324 + a82: pop {r7, pc} + +00000a84 <<&T as core::fmt::Debug>::fmt::h6f0c0a920de8d5a4>: + a84: push {r7, lr} + a86: add r7, sp, #0x0 + a88: ldr r2, [r0] + a8a: ldr r0, [r0, #0x4] + a8c: ldr r3, [r0, #0xc] + a8e: mov r0, r2 + a90: blx r3 + a92: pop {r7, pc} + +00000a94 : + a94: push {r4, r5, r6, r7, lr} + a96: add r7, sp, #0xc + a98: sub sp, #0x44 + a9a: movs r4, #0x20 + a9c: add r5, sp, #0x20 + a9e: movs r3, #0x3 + aa0: str r5, [sp, #0x1c] + aa2: strb r3, [r5, r4] + aa4: str r4, [sp, #0x24] + aa6: movs r3, #0x0 + aa8: str r3, [sp, #0x20] + aaa: str r1, [sp, #0x3c] + aac: str r0, [sp, #0x38] + aae: str r3, [sp, #0x30] + ab0: str r3, [sp, #0x28] + ab2: ldr r5, [r2, #0x8] + ab4: cmp r5, #0x0 + ab6: beq 0xb74 @ imm = #0xba + ab8: ldr r0, [r2, #0xc] + aba: cmp r0, #0x0 + abc: mov r4, r3 + abe: beq 0xbbc @ imm = #0xfa + ac0: str r3, [sp, #0x8] + ac2: ldr r1, [sp, #0x1c] + ac4: adds r1, #0x20 + ac6: str r1, [sp, #0x1c] + ac8: str r2, [sp, #0x18] + aca: ldr r4, [r2] + acc: lsls r0, r0, #0x5 + ace: str r0, [sp, #0x10] + ad0: subs r0, #0x20 + ad2: lsrs r0, r0, #0x5 + ad4: adds r0, r0, #0x1 + ad6: str r0, [sp, #0x4] + ad8: movs r6, #0x0 + ada: str r5, [sp, #0x14] + adc: ldr r2, [r4, #0x4] + ade: cmp r2, #0x0 + ae0: beq 0xaf0 @ imm = #0xc + ae2: ldr r0, [sp, #0x3c] + ae4: ldr r3, [r0, #0xc] + ae6: ldr r1, [r4] + ae8: ldr r0, [sp, #0x38] + aea: blx r3 + aec: cmp r0, #0x0 + aee: bne 0xbe2 @ imm = #0xf0 + af0: adds r2, r5, r6 + af2: ldrb r0, [r2, #0x1c] + af4: ldr r1, [sp, #0x1c] + af6: strb r0, [r1] + af8: ldr r0, [r2, #0x4] + afa: str r0, [sp, #0x24] + afc: ldr r0, [r2, #0x8] + afe: str r0, [sp, #0x20] + b00: ldr r0, [r2, #0x14] + b02: ldr r3, [r2, #0x18] + b04: ldr r1, [sp, #0x18] + b06: ldr r1, [r1, #0x10] + b08: movs r5, #0x0 + b0a: cmp r0, #0x0 + b0c: beq 0xb2a @ imm = #0x1a + b0e: cmp r0, #0x1 + b10: mov r0, r5 + b12: bne 0xb2c @ imm = #0x16 + b14: lsls r0, r3, #0x3 + b16: str r0, [sp, #0xc] + b18: adds r0, r1, r0 + b1a: ldr r0, [r0, #0x4] + b1c: ldr r3, [pc, #0xd0] <$d.24> + b1e: cmp r0, r3 + b20: mov r0, r5 + b22: bne 0xb2c @ imm = #0x6 + b24: ldr r0, [sp, #0xc] + b26: ldr r0, [r1, r0] + b28: ldr r3, [r0] + b2a: movs r0, #0x1 + b2c: str r3, [sp, #0x2c] + b2e: str r0, [sp, #0x28] + b30: ldr r0, [r2, #0xc] + b32: ldr r2, [r2, #0x10] + b34: cmp r0, #0x0 + b36: beq 0xb4c @ imm = #0x12 + b38: cmp r0, #0x1 + b3a: bne 0xb50 @ imm = #0x12 + b3c: lsls r0, r2, #0x3 + b3e: adds r2, r1, r0 + b40: ldr r2, [r2, #0x4] + b42: ldr r3, [pc, #0xac] <$d.24+0x2> + b44: cmp r2, r3 + b46: bne 0xb50 @ imm = #0x6 + b48: ldr r0, [r1, r0] + b4a: ldr r2, [r0] + b4c: movs r5, #0x1 + b4e: b 0xb50 @ imm = #-0x2 + b50: str r2, [sp, #0x34] + b52: str r5, [sp, #0x30] + b54: ldr r5, [sp, #0x14] + b56: ldr r0, [r5, r6] + b58: lsls r2, r0, #0x3 + b5a: ldr r0, [r1, r2] + b5c: adds r1, r1, r2 + b5e: ldr r2, [r1, #0x4] + b60: add r1, sp, #0x20 + b62: blx r2 + b64: cmp r0, #0x0 + b66: bne 0xbe2 @ imm = #0x78 + b68: adds r6, #0x20 + b6a: adds r4, #0x8 + b6c: ldr r0, [sp, #0x10] + b6e: cmp r0, r6 + b70: bne 0xadc @ imm = #-0x98 + b72: b 0xbb6 @ imm = #0x40 + b74: ldr r0, [r2, #0x14] + b76: cmp r0, #0x0 + b78: mov r4, r3 + b7a: beq 0xbbc @ imm = #0x3e + b7c: str r3, [sp, #0x8] + b7e: ldr r4, [r2] + b80: str r2, [sp, #0x18] + b82: ldr r5, [r2, #0x10] + b84: lsls r0, r0, #0x3 + b86: subs r0, #0x8 + b88: lsrs r0, r0, #0x3 + b8a: adds r6, r0, #0x1 + b8c: str r6, [sp, #0x4] + b8e: ldr r2, [r4, #0x4] + b90: cmp r2, #0x0 + b92: beq 0xba2 @ imm = #0xc + b94: ldr r0, [sp, #0x3c] + b96: ldr r3, [r0, #0xc] + b98: ldr r1, [r4] + b9a: ldr r0, [sp, #0x38] + b9c: blx r3 + b9e: cmp r0, #0x0 + ba0: bne 0xbe2 @ imm = #0x3e + ba2: ldm r5!, {r0, r2} + ba4: add r1, sp, #0x20 + ba6: subs r5, #0x8 + ba8: blx r2 + baa: cmp r0, #0x0 + bac: bne 0xbe2 @ imm = #0x32 + bae: adds r5, #0x8 + bb0: adds r4, #0x8 + bb2: subs r6, r6, #0x1 + bb4: bne 0xb8e @ imm = #-0x2a + bb6: ldr r3, [sp, #0x8] + bb8: ldr r2, [sp, #0x18] + bba: ldr r4, [sp, #0x4] + bbc: ldr r0, [r2, #0x4] + bbe: cmp r4, r0 + bc0: blo 0xbca @ imm = #0x6 + bc2: mov r2, r3 + bc4: cmp r4, r0 + bc6: blo 0xbd4 @ imm = #0xa + bc8: b 0xbe8 @ imm = #0x1c + bca: lsls r1, r4, #0x3 + bcc: ldr r2, [r2] + bce: adds r2, r2, r1 + bd0: cmp r4, r0 + bd2: bhs 0xbe8 @ imm = #0x12 + bd4: ldr r0, [sp, #0x3c] + bd6: ldr r3, [r0, #0xc] + bd8: ldm r2, {r1, r2} + bda: ldr r0, [sp, #0x38] + bdc: blx r3 + bde: cmp r0, #0x0 + be0: beq 0xbe8 @ imm = #0x4 + be2: movs r0, #0x1 + be4: add sp, #0x44 + be6: pop {r4, r5, r6, r7, pc} + be8: movs r0, #0x0 + bea: add sp, #0x44 + bec: pop {r4, r5, r6, r7, pc} + bee: mov r8, r8 + +00000bf0 <$d.24>: + bf0: 89 04 00 00 .word 0x00000489 + +00000bf4 <::fmt::h13cefdfa433bd005>: + bf4: push {r7, lr} + bf6: add r7, sp, #0x0 + bf8: ldr r0, [r1, #0x18] + bfa: ldr r1, [r1, #0x1c] + bfc: ldr r3, [r1, #0xc] + bfe: ldr r1, [pc, #0x8] <$d.26+0x2> + c00: movs r2, #0xb + c02: blx r3 + c04: pop {r7, pc} + c06: mov r8, r8 + +00000c08 <$d.26>: + c08: 5c 15 00 00 .word 0x0000155c + +00000c0c <::fmt::hf6fce6dfb3862f4b>: + c0c: push {r7, lr} + c0e: add r7, sp, #0x0 + c10: ldr r0, [r1, #0x18] + c12: ldr r1, [r1, #0x1c] + c14: ldr r3, [r1, #0xc] + c16: ldr r1, [pc, #0x8] <$d.28+0x2> + c18: movs r2, #0xe + c1a: blx r3 + c1c: pop {r7, pc} + c1e: mov r8, r8 + +00000c20 <$d.28>: + c20: 67 15 00 00 .word 0x00001567 + +00000c24 <<&T as core::fmt::Display>::fmt::h5eec314a4f33db6e>: + c24: push {r4, r5, r6, r7, lr} + c26: add r7, sp, #0xc + c28: sub sp, #0x1c + c2a: ldr r2, [r1, #0x18] + c2c: str r2, [sp] + c2e: ldr r1, [r1, #0x1c] + c30: ldr r0, [r0] + c32: add r2, sp, #0x4 + c34: mov r4, r2 + c36: ldm r0!, {r3, r5, r6} + c38: stm r4!, {r3, r5, r6} + c3a: ldm r0!, {r3, r5, r6} + c3c: stm r4!, {r3, r5, r6} + c3e: ldr r0, [sp] + c40: bl 0xa94 @ imm = #-0x1b0 + c44: add sp, #0x1c + c46: pop {r4, r5, r6, r7, pc} + +00000c48 <<&T as core::fmt::Display>::fmt::hebaa948f08d04b9f>: + c48: push {r7, lr} + c4a: add r7, sp, #0x0 + c4c: mov r3, r1 + c4e: ldr r0, [r0] + c50: ldm r0!, {r1, r2} + c52: mov r0, r3 + c54: bl 0x75e @ imm = #-0x4fa + c58: pop {r7, pc} + c5a: bmi 0xc06 <::fmt::h13cefdfa433bd005+0x12> @ imm = #-0x58 + +00000c5c : + c5c: push {r7, lr} + c5e: add r7, sp, #0x0 + c60: sub sp, #0x38 + c62: str r1, [sp, #0x4] + c64: str r0, [sp] + c66: str r3, [sp, #0xc] + c68: str r2, [sp, #0x8] + c6a: movs r0, #0x2 + c6c: str r0, [sp, #0x24] + c6e: add r1, sp, #0x28 + c70: str r1, [sp, #0x20] + c72: movs r1, #0x0 + c74: str r1, [sp, #0x1c] + c76: str r1, [sp, #0x18] + c78: str r0, [sp, #0x14] + c7a: ldr r0, [pc, #0x1c] <$d.32+0x2> + c7c: str r0, [sp, #0x10] + c7e: ldr r0, [pc, #0x1c] <$d.32+0x6> + c80: str r0, [sp, #0x34] + c82: add r0, sp, #0x8 + c84: str r0, [sp, #0x30] + c86: ldr r0, [pc, #0x18] <$d.32+0xa> + c88: str r0, [sp, #0x2c] + c8a: mov r0, sp + c8c: str r0, [sp, #0x28] + c8e: add r0, sp, #0x10 + c90: ldr r1, [r7, #0x8] + c92: bl 0x6f0 @ imm = #-0x5a6 + c96: trap + +00000c98 <$d.32>: + c98: c4 15 00 00 .word 0x000015c4 + c9c: 85 0a 00 00 .word 0x00000a85 + ca0: 75 0a 00 00 .word 0x00000a75 + +00000ca4 : + ca4: b 0xca4 @ imm = #-0x4 + +00000ca6 <__pre_init>: + ca6: bx lr + +00000ca8 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9>: + ca8: push {r4, r5, r6, r7, lr} + caa: add r7, sp, #0xc + cac: sub sp, #0x44 + cae: ldr r4, [r0] + cb0: ldr r5, [r1, #0x18] + cb2: ldr r6, [r1, #0x1c] + cb4: ldr r3, [r6, #0xc] + cb6: ldr r1, [pc, #0xd8] <$d.37+0x2> + cb8: movs r2, #0xc + cba: mov r0, r5 + cbc: blx r3 + cbe: movs r1, #0x1 + cc0: cmp r0, #0x0 + cc2: bne 0xd88 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xe0> @ imm = #0xc2 + cc4: str r6, [sp, #0xc] + cc6: ldr r0, [r4, #0x8] + cc8: cmp r0, #0x0 + cca: str r4, [sp, #0x8] + ccc: beq 0xd02 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0x5a> @ imm = #0x32 + cce: str r0, [sp, #0x10] + cd0: ldr r0, [pc, #0xc0] <$d.37+0x4> + cd2: str r0, [sp, #0x18] + cd4: add r0, sp, #0x10 + cd6: str r0, [sp, #0x14] + cd8: movs r0, #0x1 + cda: str r0, [sp, #0x40] + cdc: add r0, sp, #0x14 + cde: str r0, [sp, #0x3c] + ce0: movs r0, #0x0 + ce2: str r0, [sp, #0x38] + ce4: str r0, [sp, #0x34] + ce6: movs r0, #0x2 + ce8: str r0, [sp, #0x30] + cea: ldr r0, [pc, #0xac] <$d.37+0xa> + cec: str r0, [sp, #0x2c] + cee: add r2, sp, #0x2c + cf0: mov r4, r5 + cf2: mov r0, r5 + cf4: ldr r5, [sp, #0xc] + cf6: mov r6, r1 + cf8: mov r1, r5 + cfa: bl 0xa94 @ imm = #-0x26a + cfe: mov r1, r6 + d00: b 0xd48 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xa0> @ imm = #0x44 + d02: ldm r4!, {r0, r2} + d04: str r1, [sp, #0x4] + d06: ldr r1, [r2, #0xc] + d08: mov r6, r0 + d0a: blx r1 + d0c: ldr r2, [pc, #0x8c] <$d.37+0xc> + d0e: eors r2, r1 + d10: ldr r1, [pc, #0x8c] <$d.37+0x10> + d12: eors r1, r0 + d14: orrs r1, r2 + d16: mov r4, r5 + d18: ldr r5, [sp, #0xc] + d1a: bne 0xd4c <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xa4> @ imm = #0x2e + d1c: str r6, [sp, #0x10] + d1e: ldr r0, [pc, #0x84] <$d.37+0x16> + d20: str r0, [sp, #0x18] + d22: add r0, sp, #0x10 + d24: str r0, [sp, #0x14] + d26: movs r0, #0x1 + d28: str r0, [sp, #0x40] + d2a: add r0, sp, #0x14 + d2c: str r0, [sp, #0x3c] + d2e: movs r0, #0x0 + d30: str r0, [sp, #0x38] + d32: str r0, [sp, #0x34] + d34: movs r0, #0x2 + d36: str r0, [sp, #0x30] + d38: ldr r0, [pc, #0x5c] <$d.37+0x8> + d3a: str r0, [sp, #0x2c] + d3c: add r2, sp, #0x2c + d3e: mov r0, r4 + d40: mov r1, r5 + d42: bl 0xa94 @ imm = #-0x2b2 + d46: ldr r1, [sp, #0x4] + d48: cmp r0, #0x0 + d4a: bne 0xd88 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xe0> @ imm = #0x3a + d4c: ldr r0, [sp, #0x8] + d4e: ldr r0, [r0, #0xc] + d50: ldr r1, [pc, #0x54] <$d.37+0x18> + d52: str r1, [sp, #0x28] + d54: mov r2, r0 + d56: adds r2, #0xc + d58: str r2, [sp, #0x24] + d5a: str r1, [sp, #0x20] + d5c: mov r1, r0 + d5e: adds r1, #0x8 + d60: str r1, [sp, #0x1c] + d62: ldr r1, [pc, #0x48] <$d.37+0x1e> + d64: str r1, [sp, #0x18] + d66: str r0, [sp, #0x14] + d68: movs r0, #0x3 + d6a: str r0, [sp, #0x40] + d6c: add r1, sp, #0x14 + d6e: str r1, [sp, #0x3c] + d70: movs r1, #0x0 + d72: str r1, [sp, #0x38] + d74: str r1, [sp, #0x34] + d76: str r0, [sp, #0x30] + d78: ldr r0, [pc, #0x34] <$d.37+0x20> + d7a: str r0, [sp, #0x2c] + d7c: add r2, sp, #0x2c + d7e: mov r0, r4 + d80: mov r1, r5 + d82: bl 0xa94 @ imm = #-0x2f2 + d86: mov r1, r0 + d88: mov r0, r1 + d8a: add sp, #0x44 + d8c: pop {r4, r5, r6, r7, pc} + d8e: mov r8, r8 + +00000d90 <$d.37>: + d90: a0 15 00 00 .word 0x000015a0 + d94: 25 0c 00 00 .word 0x00000c25 + d98: b0 15 00 00 .word 0x000015b0 + d9c: 1e a9 f2 7e .word 0x7ef2a91e + da0: f4 bc c7 ec .word 0xecc7bcf4 + da4: 49 0c 00 00 .word 0x00000c49 + da8: 8d 04 00 00 .word 0x0000048d + dac: 75 0a 00 00 .word 0x00000a75 + db0: 78 15 00 00 .word 0x00001578 + +00000db4 : + db4: push {r7, lr} + db6: add r7, sp, #0x0 + db8: sub sp, #0x38 + dba: str r0, [sp] + dbc: bl 0x1140 <__cpsid> @ imm = #0x380 + dc0: ldr r0, [pc, #0xa4] <$d.39> + dc2: ldr r1, [r0, #0x1c] + dc4: rsbs r2, r1, #0 + dc6: adcs r2, r1 + dc8: ldr r1, [r0, #0x10] + dca: rsbs r3, r1, #0 + dcc: adcs r3, r1 + dce: orrs r3, r2 + dd0: bne 0xe66 @ imm = #0x92 + dd2: ldr r2, [r0, #0x2c] + dd4: movs r1, #0x2 + dd6: orrs r2, r1 + dd8: movs r3, #0x1 + dda: bics r2, r3 + ddc: dmb sy + de0: dmb sy + de4: str r2, [r0, #0x2c] + de6: dmb sy + dea: ldr r2, [pc, #0x80] <$d.39+0x6> + dec: str r2, [sp, #0x8] + dee: mov r2, sp + df0: str r2, [sp, #0x4] + df2: ldr r2, [r0, #0x24] + df4: dmb sy + df8: ldr r5, [r0, #0x28] + dfa: dmb sy + dfe: ldr r4, [r0, #0x20] + e00: cmp r5, r4 + e02: bhs 0xe06 @ imm = #0x0 + e04: movs r3, #0x0 + e06: cmp r2, r4 + e08: blo 0xe0c @ imm = #0x0 + e0a: movs r3, #0x1 + e0c: cmp r3, #0x1 + e0e: bne 0xe26 @ imm = #0x14 + e10: dmb sy + e14: movs r2, #0x0 + e16: str r2, [r0, #0x24] + e18: dmb sy + e1c: dmb sy + e20: str r2, [r0, #0x28] + e22: dmb sy + e26: add r4, sp, #0xc + e28: movs r3, #0x0 + e2a: strb r3, [r4, #0xc] + e2c: str r3, [sp, #0x14] + e2e: str r2, [sp, #0x10] + e30: adds r0, #0x18 + e32: str r0, [sp, #0xc] + e34: str r4, [sp, #0x1c] + e36: movs r0, #0x1 + e38: str r0, [sp, #0x34] + e3a: add r0, sp, #0x4 + e3c: str r0, [sp, #0x30] + e3e: str r3, [sp, #0x2c] + e40: str r3, [sp, #0x28] + e42: str r1, [sp, #0x24] + e44: ldr r0, [pc, #0x28] <$d.39+0x8> + e46: str r0, [sp, #0x20] + e48: add r0, sp, #0x1c + e4a: ldr r1, [pc, #0x28] <$d.39+0xe> + e4c: add r2, sp, #0x20 + e4e: bl 0xa94 @ imm = #-0x3be + e52: ldrb r0, [r4, #0xc] + e54: cmp r0, #0x1 + e56: bhi 0xe66 @ imm = #0xc + e58: ldr r0, [sp, #0x10] + e5a: ldr r1, [sp, #0xc] + e5c: dmb sy + e60: str r0, [r1, #0xc] + e62: dmb sy + e66: b 0xe66 @ imm = #-0x4 + +00000e68 <$d.39>: + e68: 28 04 00 10 .word 0x10000428 + e6c: a9 0c 00 00 .word 0x00000ca9 + e70: a0 16 00 00 .word 0x000016a0 + e74: b4 16 00 00 .word 0x000016b4 + +00000e78 : + e78: push {r4, r5, r6, r7, lr} + e7a: add r7, sp, #0xc + e7c: sub sp, #0x4 + e7e: mov r4, r1 + e80: mov r5, r0 + e82: bl 0x1148 <__primask_r> @ imm = #0x2c2 + e86: mov r6, r0 + e88: bl 0x1140 <__cpsid> @ imm = #0x2b4 + e8c: mov r0, r5 + e8e: blx r4 + e90: lsls r0, r6, #0x1f + e92: bne 0xe98 @ imm = #0x2 + e94: bl 0x1144 <__cpsie> @ imm = #0x2ac + e98: add sp, #0x4 + e9a: pop {r4, r5, r6, r7, pc} + +00000e9c : + e9c: push {r4, r5, r6, r7, lr} + e9e: add r7, sp, #0xc + ea0: sub sp, #0x34 + ea2: str r0, [sp, #0x8] + ea4: ldrb r4, [r0] + ea6: ldr r5, [pc, #0xc8] <$d.42+0x2> + ea8: ldr r0, [r5] + eaa: ldr r2, [r0, #0xc] + eac: dmb sy + eb0: ldr r1, [r0, #0x10] + eb2: dmb sy + eb6: ldr r3, [r0, #0x8] + eb8: cmp r2, r3 + eba: bhs 0xec0 @ imm = #0x2 + ebc: cmp r1, r3 + ebe: blo 0xed6 @ imm = #0x14 + ec0: dmb sy + ec4: movs r2, #0x0 + ec6: str r2, [r0, #0xc] + ec8: dmb sy + ecc: dmb sy + ed0: str r2, [r0, #0x10] + ed2: dmb sy + ed6: add r3, sp, #0x24 + ed8: movs r1, #0x0 + eda: strb r1, [r3, #0xc] + edc: str r1, [sp, #0x2c] + ede: str r2, [sp, #0x28] + ee0: str r0, [sp, #0x24] + ee2: ldrb r2, [r5, #0x4] + ee4: cmp r2, r4 + ee6: beq 0xf1a @ imm = #0x30 + ee8: movs r2, #0xf + eea: ands r2, r4 + eec: ldr r3, [pc, #0x84] <$d.42+0x4> + eee: ldrb r3, [r3, r2] + ef0: ldr r0, [r0, #0x14] + ef2: dmb sy + ef6: add r2, sp, #0xc + ef8: strb r3, [r2, #0x1] + efa: movs r3, #0xff + efc: strb r3, [r2] + efe: movs r3, #0x3 + f00: ands r3, r0 + f02: cmp r3, #0x3 + f04: mov r0, r1 + f06: beq 0xf0a @ imm = #0x0 + f08: mov r0, r3 + f0a: cmp r0, #0x1 + f0c: beq 0xf10 @ imm = #0x0 + f0e: mov r1, r0 + f10: add r0, sp, #0x24 + f12: movs r3, #0x2 + f14: bl 0xf78 @ imm = #0x60 + f18: strb r4, [r5, #0x4] + f1a: add r0, sp, #0x24 + f1c: add r5, sp, #0xc + f1e: mov r1, r5 + f20: str r4, [sp, #0x4] + f22: ldm r0!, {r2, r3, r4, r6} + f24: stm r1!, {r2, r3, r4, r6} + f26: ldr r0, [sp, #0x4] + f28: strb r0, [r5, #0x14] + f2a: ldr r0, [pc, #0x44] <$d.42+0x2> + f2c: adds r0, r0, #0x4 + f2e: str r0, [sp, #0x1c] + f30: ldr r0, [sp, #0x8] + f32: ldr r0, [r0, #0x4] + f34: ldm r0!, {r2, r3} + f36: ldr r0, [sp, #0xc] + f38: ldr r0, [r0, #0x14] + f3a: movs r1, #0x3 + f3c: ands r1, r0 + f3e: cmp r1, #0x3 + f40: bne 0xf44 @ imm = #0x0 + f42: movs r1, #0x0 + f44: dmb sy + f48: mov r0, r5 + f4a: bl 0xf78 @ imm = #0x2a + f4e: ldrb r0, [r5, #0xc] + f50: cmp r0, #0x2 + f52: bne 0xf5c @ imm = #0x6 + f54: ldr r0, [sp, #0x1c] + f56: ldr r1, [sp, #0x20] + f58: strb r1, [r0] + f5a: b 0xf6a @ imm = #0xc + f5c: ldr r0, [sp, #0x10] + f5e: ldr r1, [sp, #0xc] + f60: dmb sy + f64: str r0, [r1, #0xc] + f66: dmb sy + f6a: add sp, #0x34 + f6c: pop {r4, r5, r6, r7, pc} + f6e: mov r8, r8 + +00000f70 <$d.42>: + f70: 20 04 00 10 .word 0x10000420 + f74: 40 14 00 00 .word 0x00001440 + +00000f78 : + f78: push {r4, r5, r6, r7, lr} + f7a: add r7, sp, #0xc + f7c: sub sp, #0x14 + f7e: str r3, [sp, #0x10] + f80: str r2, [sp, #0x8] + f82: str r1, [sp, #0xc] + f84: mov r5, r0 + f86: ldrb r0, [r0, #0xc] + f88: cmp r0, #0x0 + f8a: bne 0x1052 @ imm = #0xc4 + f8c: ldr r0, [sp, #0x10] + f8e: cmp r0, #0x0 + f90: beq 0x1052 @ imm = #0xbe + f92: ldr r0, [r5] + f94: ldr r3, [r0, #0xc] + f96: dmb sy + f9a: ldr r1, [r0, #0x10] + f9c: dmb sy + fa0: ldr r2, [r0, #0x8] + fa2: cmp r3, r2 + fa4: bhs 0xfb4 @ imm = #0xc + fa6: cmp r1, r2 + fa8: bhs 0xfb4 @ imm = #0x8 + faa: ldr r6, [r5, #0x4] + fac: cmp r1, r6 + fae: bls 0xffa @ imm = #0x48 + fb0: mvns r0, r6 + fb2: b 0xfd2 @ imm = #0x1c + fb4: dmb sy + fb8: movs r1, #0x0 + fba: str r1, [r0, #0xc] + fbc: dmb sy + fc0: dmb sy + fc4: str r1, [r0, #0x10] + fc6: dmb sy + fca: ldr r6, [r5, #0x4] + fcc: mvns r0, r6 + fce: ldr r1, [r5] + fd0: ldr r1, [r1, #0x8] + fd2: adds r0, r1, r0 + fd4: ldr r4, [sp, #0x10] + fd6: cmp r0, r4 + fd8: bhi 0xfdc @ imm = #0x0 + fda: mov r4, r0 + fdc: cmp r4, #0x0 + fde: bne 0x1012 @ imm = #0x30 + fe0: ldr r0, [sp, #0xc] + fe2: cmp r0, #0x2 + fe4: bne 0x1006 @ imm = #0x1e + fe6: ldr r0, [r5] + fe8: dmb sy + fec: str r6, [r0, #0xc] + fee: dmb sy + ff2: ldrb r0, [r5, #0xc] + ff4: cmp r0, #0x0 + ff6: beq 0xf92 @ imm = #-0x68 + ff8: b 0x1052 @ imm = #0x56 + ffa: cmp r1, #0x0 + ffc: beq 0xfcc @ imm = #-0x34 + ffe: ldr r0, [r5] + 1000: ldr r0, [r0, #0x8] + 1002: subs r0, r0, r6 + 1004: b 0xfd4 @ imm = #-0x34 + 1006: ldr r0, [sp, #0xc] + 1008: cmp r0, #0x0 + 100a: beq 0x104e @ imm = #0x40 + 100c: movs r0, #0x1 + 100e: strb r0, [r5, #0xc] + 1010: movs r4, #0x0 + 1012: ldr r0, [r5] + 1014: str r0, [sp, #0x4] + 1016: ldr r0, [r0, #0x4] + 1018: adds r0, r0, r6 + 101a: ldr r1, [sp, #0x8] + 101c: mov r2, r4 + 101e: bl 0x1158 <__aeabi_memcpy> @ imm = #0x136 + 1022: adds r0, r6, r4 + 1024: str r0, [r5, #0x4] + 1026: ldr r1, [r5, #0x8] + 1028: adds r1, r1, r4 + 102a: str r1, [r5, #0x8] + 102c: ldr r1, [sp, #0x4] + 102e: ldr r1, [r1, #0x8] + 1030: cmp r0, r1 + 1032: blo 0x1038 @ imm = #0x2 + 1034: movs r0, #0x0 + 1036: str r0, [r5, #0x4] + 1038: ldrb r0, [r5, #0xc] + 103a: cmp r0, #0x0 + 103c: bne 0x1052 @ imm = #0x12 + 103e: ldr r0, [sp, #0x8] + 1040: adds r0, r0, r4 + 1042: str r0, [sp, #0x8] + 1044: ldr r0, [sp, #0x10] + 1046: subs r0, r0, r4 + 1048: str r0, [sp, #0x10] + 104a: bne 0xf92 @ imm = #-0xbc + 104c: b 0x1052 @ imm = #0x2 + 104e: movs r0, #0x2 + 1050: strb r0, [r5, #0xc] + 1052: add sp, #0x14 + 1054: pop {r4, r5, r6, r7, pc} + +00001056 ::h591a17950d8b161c>: + 1056: bx lr + +00001058 <<&mut W as core::fmt::Write>::write_str::h4c57be8250dbbbd5>: + 1058: push {r4, r5, r7, lr} + 105a: add r7, sp, #0x8 + 105c: mov r3, r2 + 105e: mov r2, r1 + 1060: ldr r0, [r0] + 1062: ldr r1, [r0] + 1064: ldr r1, [r1, #0x14] + 1066: movs r5, #0x3 + 1068: ands r5, r1 + 106a: movs r4, #0x0 + 106c: cmp r5, #0x3 + 106e: mov r1, r4 + 1070: beq 0x1074 <<&mut W as core::fmt::Write>::write_str::h4c57be8250dbbbd5+0x1c> @ imm = #0x0 + 1072: mov r1, r5 + 1074: dmb sy + 1078: bl 0xf78 @ imm = #-0x104 + 107c: mov r0, r4 + 107e: pop {r4, r5, r7, pc} + +00001080 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e>: + 1080: push {r4, r5, r7, lr} + 1082: add r7, sp, #0x8 + 1084: sub sp, #0x8 + 1086: ldr r0, [r0] + 1088: movs r4, #0x0 + 108a: str r4, [sp, #0x4] + 108c: cmp r1, #0x80 + 108e: bhs 0x1098 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x18> @ imm = #0x6 + 1090: add r2, sp, #0x4 + 1092: strb r1, [r2] + 1094: movs r3, #0x1 + 1096: b 0x10f8 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x78> @ imm = #0x5e + 1098: lsrs r2, r1, #0xb + 109a: bne 0x10b2 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x32> @ imm = #0x14 + 109c: movs r2, #0x3f + 109e: ands r2, r1 + 10a0: adds r2, #0x80 + 10a2: add r3, sp, #0x4 + 10a4: strb r2, [r3, #0x1] + 10a6: lsrs r1, r1, #0x6 + 10a8: movs r2, #0xc0 + 10aa: orrs r2, r1 + 10ac: strb r2, [r3] + 10ae: movs r3, #0x2 + 10b0: b 0x10f8 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x78> @ imm = #0x44 + 10b2: lsrs r2, r1, #0x10 + 10b4: bne 0x10d4 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x54> @ imm = #0x1c + 10b6: movs r2, #0x3f + 10b8: ands r2, r1 + 10ba: adds r2, #0x80 + 10bc: add r3, sp, #0x4 + 10be: strb r2, [r3, #0x2] + 10c0: lsrs r2, r1, #0xc + 10c2: movs r5, #0xe0 + 10c4: orrs r5, r2 + 10c6: strb r5, [r3] + 10c8: lsls r1, r1, #0x14 + 10ca: lsrs r1, r1, #0x1a + 10cc: adds r1, #0x80 + 10ce: strb r1, [r3, #0x1] + 10d0: movs r3, #0x3 + 10d2: b 0x10f8 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x78> @ imm = #0x22 + 10d4: movs r2, #0x3f + 10d6: ands r2, r1 + 10d8: adds r2, #0x80 + 10da: add r3, sp, #0x4 + 10dc: strb r2, [r3, #0x3] + 10de: lsrs r2, r1, #0x12 + 10e0: movs r5, #0xf0 + 10e2: orrs r5, r2 + 10e4: strb r5, [r3] + 10e6: lsls r2, r1, #0x14 + 10e8: lsrs r2, r2, #0x1a + 10ea: adds r2, #0x80 + 10ec: strb r2, [r3, #0x2] + 10ee: lsls r1, r1, #0xe + 10f0: lsrs r1, r1, #0x1a + 10f2: adds r1, #0x80 + 10f4: strb r1, [r3, #0x1] + 10f6: movs r3, #0x4 + 10f8: ldr r1, [r0] + 10fa: ldr r1, [r1, #0x14] + 10fc: movs r2, #0x3 + 10fe: ands r2, r1 + 1100: cmp r2, #0x3 + 1102: mov r1, r4 + 1104: beq 0x1108 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x88> @ imm = #0x0 + 1106: mov r1, r2 + 1108: dmb sy + 110c: add r2, sp, #0x4 + 110e: bl 0xf78 @ imm = #-0x19a + 1112: mov r0, r4 + 1114: add sp, #0x8 + 1116: pop {r4, r5, r7, pc} + +00001118 <<&mut W as core::fmt::Write>::write_fmt::h4fea0ca5dfc7d23c>: + 1118: push {r4, r5, r7, lr} + 111a: add r7, sp, #0x8 + 111c: sub sp, #0x20 + 111e: ldr r0, [r0] + 1120: str r0, [sp, #0x4] + 1122: add r2, sp, #0x8 + 1124: mov r0, r2 + 1126: ldm r1!, {r3, r4, r5} + 1128: stm r0!, {r3, r4, r5} + 112a: ldm r1!, {r3, r4, r5} + 112c: stm r0!, {r3, r4, r5} + 112e: add r0, sp, #0x4 + 1130: ldr r1, [pc, #0x8] <$d.48> + 1132: bl 0xa94 @ imm = #-0x6a2 + 1136: add sp, #0x20 + 1138: pop {r4, r5, r7, pc} + 113a: mov r8, r8 + +0000113c <$d.48>: + 113c: b4 16 00 00 .word 0x000016b4 + +00001140 <__cpsid>: + 1140: cpsid i + 1142: bx lr + +00001144 <__cpsie>: + 1144: cpsie i + 1146: bx lr + +00001148 <__primask_r>: + 1148: mrs r0, primask + 114c: bx lr + +0000114e <__aeabi_uidiv>: + 114e: push {r7, lr} + 1150: add r7, sp, #0x0 + 1152: bl 0x128a @ imm = #0x134 + 1156: pop {r7, pc} + +00001158 <__aeabi_memcpy>: + 1158: push {r7, lr} + 115a: add r7, sp, #0x0 + 115c: bl 0x11ec @ imm = #0x8c + 1160: pop {r7, pc} + +00001162 <__aeabi_memset>: + 1162: push {r7, lr} + 1164: add r7, sp, #0x0 + 1166: mov r3, r1 + 1168: mov r1, r2 + 116a: mov r2, r3 + 116c: bl 0x1248 @ imm = #0xd8 + 1170: pop {r7, pc} + +00001172 <__aeabi_memset4>: + 1172: push {r4, r5, r6, r7, lr} + 1174: add r7, sp, #0xc + 1176: sub sp, #0x4 + 1178: mov r5, r2 + 117a: mov r4, r1 + 117c: mov r3, r0 + 117e: uxtb r2, r2 + 1180: cmp r1, #0x4 + 1182: blo 0x11b2 <__aeabi_memset4+0x40> @ imm = #0x2c + 1184: lsls r0, r5, #0x18 + 1186: lsls r1, r2, #0x10 + 1188: adds r0, r1, r0 + 118a: lsls r1, r2, #0x8 + 118c: adds r0, r0, r1 + 118e: adds r5, r0, r2 + 1190: subs r1, r4, #0x4 + 1192: lsrs r0, r1, #0x2 + 1194: adds r0, r0, #0x1 + 1196: movs r6, #0x3 + 1198: ands r6, r0 + 119a: str r1, [sp] + 119c: beq 0x11be <__aeabi_memset4+0x4c> @ imm = #0x1e + 119e: mov r0, r3 + 11a0: stm r0!, {r5} + 11a2: cmp r6, #0x1 + 11a4: beq 0x11c2 <__aeabi_memset4+0x50> @ imm = #0x1a + 11a6: str r5, [r3, #0x4] + 11a8: cmp r6, #0x2 + 11aa: bne 0x11b8 <__aeabi_memset4+0x46> @ imm = #0xa + 11ac: subs r4, #0x8 + 11ae: adds r3, #0x8 + 11b0: b 0x11be <__aeabi_memset4+0x4c> @ imm = #0xa + 11b2: mov r0, r3 + 11b4: mov r1, r4 + 11b6: b 0x11d8 <__aeabi_memset4+0x66> @ imm = #0x1e + 11b8: str r5, [r3, #0x8] + 11ba: subs r4, #0xc + 11bc: adds r3, #0xc + 11be: mov r1, r4 + 11c0: mov r0, r3 + 11c2: ldr r3, [sp] + 11c4: cmp r3, #0xc + 11c6: blo 0x11d8 <__aeabi_memset4+0x66> @ imm = #0xe + 11c8: str r5, [r0] + 11ca: str r5, [r0, #0x4] + 11cc: str r5, [r0, #0x8] + 11ce: str r5, [r0, #0xc] + 11d0: adds r0, #0x10 + 11d2: subs r1, #0x10 + 11d4: cmp r1, #0x3 + 11d6: bhi 0x11c8 <__aeabi_memset4+0x56> @ imm = #-0x12 + 11d8: bl 0x1162 <__aeabi_memset> @ imm = #-0x7a + 11dc: add sp, #0x4 + 11de: pop {r4, r5, r6, r7, pc} + +000011e0 <__aeabi_memclr8>: + 11e0: push {r7, lr} + 11e2: add r7, sp, #0x0 + 11e4: movs r2, #0x0 + 11e6: bl 0x1172 <__aeabi_memset4> @ imm = #-0x78 + 11ea: pop {r7, pc} + +000011ec : + 11ec: push {r4, r5, r6, r7, lr} + 11ee: add r7, sp, #0xc + 11f0: sub sp, #0x4 + 11f2: cmp r2, #0x0 + 11f4: beq 0x1244 @ imm = #0x4c + 11f6: movs r4, #0x3 + 11f8: mov r3, r2 + 11fa: ands r3, r4 + 11fc: subs r5, r2, #0x1 + 11fe: cmp r5, #0x3 + 1200: str r3, [sp] + 1202: bhs 0x1208 @ imm = #0x2 + 1204: movs r4, #0x0 + 1206: b 0x1226 @ imm = #0x1c + 1208: bics r2, r4 + 120a: movs r4, #0x0 + 120c: ldrb r5, [r1, r4] + 120e: strb r5, [r0, r4] + 1210: adds r5, r0, r4 + 1212: adds r6, r1, r4 + 1214: ldrb r3, [r6, #0x1] + 1216: strb r3, [r5, #0x1] + 1218: ldrb r3, [r6, #0x2] + 121a: strb r3, [r5, #0x2] + 121c: ldrb r3, [r6, #0x3] + 121e: strb r3, [r5, #0x3] + 1220: adds r4, r4, #0x4 + 1222: cmp r2, r4 + 1224: bne 0x120c @ imm = #-0x1c + 1226: ldr r5, [sp] + 1228: cmp r5, #0x0 + 122a: beq 0x1244 @ imm = #0x16 + 122c: ldrb r2, [r1, r4] + 122e: strb r2, [r0, r4] + 1230: cmp r5, #0x1 + 1232: beq 0x1244 @ imm = #0xe + 1234: adds r2, r4, #0x1 + 1236: ldrb r3, [r1, r2] + 1238: strb r3, [r0, r2] + 123a: cmp r5, #0x2 + 123c: beq 0x1244 @ imm = #0x4 + 123e: adds r2, r4, #0x2 + 1240: ldrb r1, [r1, r2] + 1242: strb r1, [r0, r2] + 1244: add sp, #0x4 + 1246: pop {r4, r5, r6, r7, pc} + +00001248 : + 1248: push {r4, r5, r7, lr} + 124a: add r7, sp, #0x8 + 124c: cmp r2, #0x0 + 124e: beq 0x1288 @ imm = #0x36 + 1250: movs r4, #0x3 + 1252: mov r3, r2 + 1254: ands r3, r4 + 1256: subs r5, r2, #0x1 + 1258: cmp r5, #0x3 + 125a: bhs 0x1260 @ imm = #0x2 + 125c: movs r4, #0x0 + 125e: b 0x1274 @ imm = #0x12 + 1260: bics r2, r4 + 1262: movs r4, #0x0 + 1264: strb r1, [r0, r4] + 1266: adds r5, r0, r4 + 1268: strb r1, [r5, #0x3] + 126a: strb r1, [r5, #0x2] + 126c: strb r1, [r5, #0x1] + 126e: adds r4, r4, #0x4 + 1270: cmp r2, r4 + 1272: bne 0x1264 @ imm = #-0x12 + 1274: cmp r3, #0x0 + 1276: beq 0x1288 @ imm = #0xe + 1278: strb r1, [r0, r4] + 127a: cmp r3, #0x1 + 127c: beq 0x1288 @ imm = #0x8 + 127e: adds r2, r4, r0 + 1280: strb r1, [r2, #0x1] + 1282: cmp r3, #0x2 + 1284: beq 0x1288 @ imm = #0x0 + 1286: strb r1, [r2, #0x2] + 1288: pop {r4, r5, r7, pc} + +0000128a : + 128a: push {r4, r5, r6, r7, lr} + 128c: add r7, sp, #0xc + 128e: sub sp, #0xc + 1290: mov r2, r0 + 1292: cmp r0, r1 + 1294: bhs 0x129e @ imm = #0x6 + 1296: movs r0, #0x0 + 1298: mov r1, r2 + 129a: add sp, #0xc + 129c: pop {r4, r5, r6, r7, pc} + 129e: lsrs r5, r2, #0x10 + 12a0: cmp r1, r5 + 12a2: mov r0, r2 + 12a4: bhi 0x12c0 @ imm = #0x18 + 12a6: mov r0, r5 + 12a8: lsrs r6, r0, #0x8 + 12aa: cmp r1, r6 + 12ac: bls 0x12c6 @ imm = #0x16 + 12ae: lsrs r3, r0, #0x4 + 12b0: cmp r1, r3 + 12b2: bhi 0x12ce @ imm = #0x18 + 12b4: mov r0, r3 + 12b6: str r3, [sp, #0x4] + 12b8: lsrs r3, r0, #0x2 + 12ba: cmp r1, r3 + 12bc: bls 0x12d6 @ imm = #0x16 + 12be: b 0x12d8 @ imm = #0x16 + 12c0: lsrs r6, r0, #0x8 + 12c2: cmp r1, r6 + 12c4: bhi 0x12ae @ imm = #-0x1a + 12c6: mov r0, r6 + 12c8: lsrs r3, r0, #0x4 + 12ca: cmp r1, r3 + 12cc: bls 0x12b4 @ imm = #-0x1c + 12ce: str r3, [sp, #0x4] + 12d0: lsrs r3, r0, #0x2 + 12d2: cmp r1, r3 + 12d4: bhi 0x12d8 @ imm = #0x0 + 12d6: mov r0, r3 + 12d8: str r3, [sp, #0x8] + 12da: lsrs r3, r0, #0x1 + 12dc: movs r4, #0x1 + 12de: movs r0, #0x0 + 12e0: cmp r1, r3 + 12e2: mov r3, r4 + 12e4: bls 0x12e8 @ imm = #0x0 + 12e6: mov r3, r0 + 12e8: cmp r1, r5 + 12ea: mov r5, r4 + 12ec: bls 0x12f0 @ imm = #0x0 + 12ee: mov r5, r0 + 12f0: str r3, [sp] + 12f2: lsls r5, r5, #0x4 + 12f4: cmp r1, r6 + 12f6: mov r6, r4 + 12f8: bls 0x12fc @ imm = #0x0 + 12fa: mov r6, r0 + 12fc: lsls r3, r6, #0x3 + 12fe: adds r5, r3, r5 + 1300: ldr r3, [sp, #0x4] + 1302: cmp r1, r3 + 1304: mov r3, r4 + 1306: bls 0x130a @ imm = #0x0 + 1308: mov r3, r0 + 130a: lsls r3, r3, #0x2 + 130c: adds r3, r5, r3 + 130e: ldr r5, [sp, #0x8] + 1310: cmp r1, r5 + 1312: mov r5, r4 + 1314: bls 0x1318 @ imm = #0x0 + 1316: mov r5, r0 + 1318: lsls r0, r5, #0x1 + 131a: adds r0, r3, r0 + 131c: ldr r3, [sp] + 131e: adds r3, r0, r3 + 1320: lsls r4, r3 + 1322: mov r5, r1 + 1324: lsls r5, r3 + 1326: subs r6, r2, r5 + 1328: cmp r6, r1 + 132a: bhs 0x1336 @ imm = #0x8 + 132c: mov r2, r6 + 132e: mov r0, r4 + 1330: mov r1, r2 + 1332: add sp, #0xc + 1334: pop {r4, r5, r6, r7, pc} + 1336: cmp r5, #0x0 + 1338: bmi 0x1342 @ imm = #0x6 + 133a: mov r1, r4 + 133c: mov r0, r4 + 133e: mov r2, r6 + 1340: b 0x136e @ imm = #0x2a + 1342: lsrs r5, r5, #0x1 + 1344: subs r2, r6, r5 + 1346: subs r3, r3, #0x1 + 1348: movs r0, #0x1f + 134a: str r3, [sp, #0x4] + 134c: ands r0, r3 + 134e: str r0, [sp, #0x8] + 1350: movs r0, #0x1 + 1352: ldr r3, [sp, #0x8] + 1354: lsls r0, r3 + 1356: cmp r2, #0x0 + 1358: str r0, [sp, #0x8] + 135a: bge 0x135e @ imm = #0x0 + 135c: movs r0, #0x0 + 135e: cmp r2, #0x0 + 1360: bge 0x1364 @ imm = #0x0 + 1362: mov r2, r6 + 1364: orrs r0, r4 + 1366: cmp r2, r1 + 1368: ldr r1, [sp, #0x8] + 136a: ldr r3, [sp, #0x4] + 136c: blo 0x1298 @ imm = #-0xd8 + 136e: subs r1, r1, #0x1 + 1370: cmp r3, #0x0 + 1372: beq 0x13a0 @ imm = #0x2a + 1374: str r1, [sp, #0x4] + 1376: subs r4, r5, #0x1 + 1378: movs r6, #0x3 + 137a: ands r6, r3 + 137c: subs r1, r3, #0x1 + 137e: str r1, [sp, #0x8] + 1380: cmp r6, #0x0 + 1382: beq 0x13a4 @ imm = #0x1e + 1384: lsls r2, r2, #0x1 + 1386: subs r2, r2, r4 + 1388: asrs r5, r2, #0x1f + 138a: ands r5, r4 + 138c: adds r5, r5, r2 + 138e: cmp r6, #0x1 + 1390: bne 0x13b0 @ imm = #0x1c + 1392: mov r2, r5 + 1394: ldr r6, [sp, #0x8] + 1396: ldr r1, [sp, #0x8] + 1398: cmp r1, #0x3 + 139a: ldr r1, [sp, #0x4] + 139c: blo 0x1406 @ imm = #0x66 + 139e: b 0x13d8 @ imm = #0x36 + 13a0: mov r5, r2 + 13a2: b 0x1406 @ imm = #0x60 + 13a4: mov r6, r3 + 13a6: ldr r1, [sp, #0x8] + 13a8: cmp r1, #0x3 + 13aa: ldr r1, [sp, #0x4] + 13ac: blo 0x1406 @ imm = #0x56 + 13ae: b 0x13d8 @ imm = #0x26 + 13b0: lsls r2, r5, #0x1 + 13b2: subs r2, r2, r4 + 13b4: asrs r5, r2, #0x1f + 13b6: ands r5, r4 + 13b8: adds r5, r5, r2 + 13ba: cmp r6, #0x2 + 13bc: bne 0x13c2 @ imm = #0x2 + 13be: subs r6, r3, #0x2 + 13c0: b 0x13ce @ imm = #0xa + 13c2: lsls r2, r5, #0x1 + 13c4: subs r2, r2, r4 + 13c6: asrs r5, r2, #0x1f + 13c8: ands r5, r4 + 13ca: adds r5, r5, r2 + 13cc: subs r6, r3, #0x3 + 13ce: mov r2, r5 + 13d0: ldr r1, [sp, #0x8] + 13d2: cmp r1, #0x3 + 13d4: ldr r1, [sp, #0x4] + 13d6: blo 0x1406 @ imm = #0x2c + 13d8: mov r5, r2 + 13da: lsls r2, r5, #0x1 + 13dc: subs r2, r2, r4 + 13de: asrs r5, r2, #0x1f + 13e0: ands r5, r4 + 13e2: adds r2, r5, r2 + 13e4: lsls r2, r2, #0x1 + 13e6: subs r2, r2, r4 + 13e8: asrs r5, r2, #0x1f + 13ea: ands r5, r4 + 13ec: adds r2, r5, r2 + 13ee: lsls r2, r2, #0x1 + 13f0: subs r2, r2, r4 + 13f2: asrs r5, r2, #0x1f + 13f4: ands r5, r4 + 13f6: adds r2, r5, r2 + 13f8: lsls r2, r2, #0x1 + 13fa: subs r2, r2, r4 + 13fc: asrs r5, r2, #0x1f + 13fe: ands r5, r4 + 1400: adds r5, r5, r2 + 1402: subs r6, r6, #0x4 + 1404: bne 0x13da @ imm = #-0x2e + 1406: movs r2, #0x1f + 1408: ands r3, r2 + 140a: mov r2, r5 + 140c: lsrs r2, r3 + 140e: ands r1, r5 + 1410: orrs r0, r1 + 1412: mov r1, r2 + 1414: add sp, #0xc + 1416: pop {r4, r5, r6, r7, pc} + +00001418 : + 1418: mov r0, lr + 141a: movs r1, #0x4 + 141c: tst r0, r1 + 141e: bne 0x1426 @ imm = #0x4 + 1420: mrs r0, msp + 1424: b 0x142c @ imm = #0x4 + 1426: mrs r0, psp + 142a: b 0x142c @ imm = #-0x2 + +0000142c : + 142c: b 0x142c @ imm = #-0x4 + 142e: bmi 0x13da @ imm = #-0x58 diff --git a/sections.txt b/sections.txt new file mode 100644 index 0000000..8798d64 --- /dev/null +++ b/sections.txt @@ -0,0 +1,2450 @@ + +Generated using: + +cargo objdump -p vorago-reb1 --example blinky-button-irq --release \ + -- --disassemble --no-show-raw-insn --print-imm-hex > sections.txt + +blinky-button-irq: file format elf32-littlearm + +Disassembly of section .text: + +000000c0 <__stext>: + c0: ldr r4, [pc, #0x2c] <$d> + c2: mov lr, r4 + c4: bl 0xca6 <__pre_init> @ imm = #0xbde + c8: mov lr, r4 + ca: ldr r0, [pc, #0x28] <$d+0x6> + cc: ldr r1, [pc, #0x28] <$d+0x8> + ce: movs r2, #0x0 + d0: cmp r1, r0 + d2: beq 0xd8 <__stext+0x18> @ imm = #0x2 + d4: stm r0!, {r2} + d6: b 0xd0 <__stext+0x10> @ imm = #-0xa + d8: ldr r0, [pc, #0x20] <$d+0xc> + da: ldr r1, [pc, #0x24] <$d+0x12> + dc: ldr r2, [pc, #0x24] <$d+0x14> + de: cmp r1, r0 + e0: beq 0xe8 <__stext+0x28> @ imm = #0x4 + e2: ldm r2!, {r3} + e4: stm r0!, {r3} + e6: b 0xde <__stext+0x1e> @ imm = #-0xc + e8: bl 0x10c
@ imm = #0x20 + ec: udf #0x0 + +000000ee <$d>: + ee: 00 00 .short 0x0000 + +000000f0 <$d>: + f0: ff ff ff ff .word 0xffffffff + f4: 10 00 00 10 .word 0x10000010 + f8: 5c 04 00 10 .word 0x1000045c + fc: 00 00 00 10 .word 0x10000000 + 100: 10 00 00 10 .word 0x10000010 + 104: e0 16 00 00 .word 0x000016e0 + +00000108 ::h1ddd9306d86e0d6a>: + 108: bx lr + +0000010a ::h0aa9974d9ffb5bb5>: + 10a: bx lr + +0000010c
: + 10c: push {r7, lr} + 10e: add r7, sp, #0x0 + 110: bl 0x118 @ imm = #0x4 + 114: trap + 116: bmi 0xc2 <__stext+0x2> @ imm = #-0x58 + +00000118 : + 118: push {r7, lr} + 11a: add r7, sp, #0x0 + 11c: sub sp, #0x28 + 11e: ldr r4, [pc, #0x1dc] <$d.4+0x2> + 120: movs r1, #0x30 + 122: mov r0, r4 + 124: bl 0x11e0 <__aeabi_memclr8> @ imm = #0x10b8 + 128: ldr r0, [pc, #0x1d4] <$d.4+0x4> + 12a: str r0, [r4, #0x18] + 12c: movs r2, #0x1 + 12e: lsls r0, r2, #0xa + 130: str r0, [sp, #0x4] + 132: str r0, [r4, #0x20] + 134: ldr r0, [r4, #0x2c] + 136: movs r1, #0x3 + 138: bics r0, r1 + 13a: dmb sy + 13e: dmb sy + 142: str r0, [r4, #0x2c] + 144: dmb sy + 148: ldr r0, [pc, #0x1b8] <$d.4+0x8> + 14a: str r0, [r4, #0x1c] + 14c: str r2, [sp, #0x8] + 14e: str r2, [r4, #0x10] + 150: movs r5, #0x0 + 152: str r5, [r4, #0x14] + 154: ldr r1, [pc, #0x1b0] <$d.4+0xc> + 156: movs r2, #0x5 + 158: mov r0, r4 + 15a: bl 0x1158 <__aeabi_memcpy> @ imm = #0xffa + 15e: dmb sy + 162: adds r0, r4, #0x4 + 164: ldr r1, [pc, #0x1a4] <$d.4+0x10> + 166: ldm r1!, {r2, r3, r6} + 168: stm r0!, {r2, r3, r6} + 16a: bl 0x1148 <__primask_r> @ imm = #0xfda + 16e: mov r6, r0 + 170: bl 0x1140 <__cpsid> @ imm = #0xfcc + 174: ldr r0, [pc, #0x198] <$d.4+0x14> + 176: strb r5, [r0, #0x4] + 178: adds r4, #0x18 + 17a: str r4, [r0] + 17c: lsls r0, r6, #0x1f + 17e: bne 0x184 @ imm = #0x2 + 180: bl 0x1144 <__cpsie> @ imm = #0xfc0 + 184: dmb sy + 188: ldr r0, [pc, #0x188] <$d.4+0x18> + 18a: ldr r1, [pc, #0x18c] <$d.4+0x1e> + 18c: str r1, [r0] + 18e: dmb sy + 192: movs r1, #0x20 + 194: str r1, [sp, #0x10] + 196: ldr r1, [pc, #0x184] <$d.4+0x22> + 198: str r1, [sp, #0xc] + 19a: ldr r1, [r0] + 19c: dmb sy + 1a0: cmp r1, #0x0 + 1a2: beq 0x1b2 @ imm = #0xc + 1a4: add r0, sp, #0x18 + 1a6: strb r5, [r0] + 1a8: add r2, sp, #0xc + 1aa: str r2, [sp, #0x1c] + 1ac: ldr r2, [r1] + 1ae: ldr r1, [pc, #0x170] <$d.4+0x26> + 1b0: blx r2 + 1b2: bl 0x1148 <__primask_r> @ imm = #0xf92 + 1b6: mov r4, r0 + 1b8: ldr r6, [sp, #0x8] + 1ba: ands r4, r6 + 1bc: bl 0x1140 <__cpsid> @ imm = #0xf80 + 1c0: ldr r0, [pc, #0x160] <$d.4+0x28> + 1c2: ldrb r1, [r0] + 1c4: cmp r1, #0x0 + 1c6: bne 0x1ca @ imm = #0x0 + 1c8: strb r6, [r0] + 1ca: cmp r4, #0x0 + 1cc: bne 0x1d6 @ imm = #0x6 + 1ce: mov r4, r1 + 1d0: bl 0x1144 <__cpsie> @ imm = #0xf70 + 1d4: mov r1, r4 + 1d6: cmp r1, #0x0 + 1d8: beq 0x1dc @ imm = #0x0 + 1da: b 0x2e0 @ imm = #0x102 + 1dc: ldr r1, [pc, #0x148] <$d.4+0x2c> + 1de: ldr r0, [r1] + 1e0: ldr r2, [pc, #0x148] <$d.4+0x30> + 1e2: orrs r2, r0 + 1e4: str r2, [r1] + 1e6: lsls r2, r6, #0x15 + 1e8: ldr r0, [r1] + 1ea: orrs r0, r2 + 1ec: str r0, [r1] + 1ee: lsls r3, r6, #0xb + 1f0: ldr r0, [pc, #0x13c] <$d.4+0x34> + 1f2: ldr r4, [r0, #0x2c] + 1f4: orrs r4, r3 + 1f6: str r4, [r0, #0x2c] + 1f8: ldr r4, [pc, #0x138] <$d.4+0x38> + 1fa: movs r6, #0xf + 1fc: str r6, [r4] + 1fe: ldr r6, [sp, #0x8] + 200: ldr r4, [r0, #0x20] + 202: bics r4, r3 + 204: str r4, [r0, #0x20] + 206: ldr r4, [r0, #0x24] + 208: orrs r4, r3 + 20a: str r4, [r0, #0x24] + 20c: mov r3, r1 + 20e: subs r3, #0x8 + 210: ldr r4, [r3] + 212: orrs r4, r6 + 214: str r4, [r3] + 216: ldr r3, [pc, #0x120] <$d.4+0x3e> + 218: ldr r4, [r3] + 21a: orrs r4, r6 + 21c: str r4, [r3] + 21e: ldr r4, [r1] + 220: orrs r4, r2 + 222: str r4, [r1] + 224: ldr r1, [pc, #0x114] <$d.4+0x40> + 226: str r5, [r1] + 228: ldr r1, [r3] + 22a: movs r2, #0x10 + 22c: orrs r2, r1 + 22e: str r2, [r3] + 230: ldr r1, [pc, #0x10c] <$d.4+0x44> + 232: str r1, [r3, #0x4] + 234: str r1, [r3, #0x8] + 236: ldr r1, [pc, #0x10c] <$d.4+0x4a> + 238: str r5, [r1, #0x10] + 23a: ldr r2, [r0, #0xc] + 23c: ldr r3, [sp, #0x4] + 23e: orrs r2, r3 + 240: str r2, [r0, #0xc] + 242: str r3, [r0] + 244: str r5, [r1, #0x4] + 246: ldr r2, [r0, #0xc] + 248: movs r3, #0x80 + 24a: orrs r2, r3 + 24c: str r2, [r0, #0xc] + 24e: str r3, [r0] + 250: str r5, [r1] + 252: ldr r1, [r0, #0xc] + 254: movs r2, #0x40 + 256: orrs r1, r2 + 258: str r1, [r0, #0xc] + 25a: str r2, [r0] + 25c: movs r1, #0x83 + 25e: lsls r1, r1, #0x9 + 260: str r1, [sp, #0x14] + 262: ldr r1, [pc, #0xe4] <$d.4+0x4e> + 264: str r1, [sp, #0x10] + 266: movs r1, #0x85 + 268: lsls r1, r1, #0x9 + 26a: str r1, [sp, #0xc] + 26c: ldr r1, [pc, #0xdc] <$d.4+0x50> + 26e: add r2, sp, #0xc + 270: adds r2, r2, r5 + 272: ldrb r2, [r2, #0x2] + 274: cmp r2, #0x1 + 276: bne 0x294 @ imm = #0x1a + 278: add r3, sp, #0xc + 27a: ldrb r2, [r3, r5] + 27c: cmp r2, #0x0 + 27e: beq 0x284 @ imm = #0x2 + 280: mov r2, r1 + 282: b 0x286 @ imm = #0x0 + 284: subs r2, r0, #0x4 + 286: adds r3, r3, r5 + 288: ldrb r3, [r3, #0x1] + 28a: movs r4, #0x1f + 28c: ands r4, r3 + 28e: mov r3, r6 + 290: lsls r3, r4 + 292: str r3, [r2] + 294: adds r5, r5, #0x4 + 296: cmp r5, #0xc + 298: bne 0x26e @ imm = #-0x2e + 29a: ldr r0, [pc, #0xb4] <$d.4+0x56> + 29c: str r6, [r0] + 29e: lsls r1, r6, #0xf + 2a0: str r1, [r0] + 2a2: add r0, sp, #0xc + 2a4: add r1, sp, #0x18 + 2a6: ldm r0!, {r2, r3, r4} + 2a8: stm r1!, {r2, r3, r4} + 2aa: bl 0x1148 <__primask_r> @ imm = #0xe9a + 2ae: mov r4, r0 + 2b0: bl 0x1140 <__cpsid> @ imm = #0xe8c + 2b4: ldr r0, [pc, #0x9c] <$d.4+0x58> + 2b6: ldr r1, [r0] + 2b8: cmp r1, #0x0 + 2ba: bne 0x2e6 @ imm = #0x28 + 2bc: adds r1, r0, #0x4 + 2be: add r2, sp, #0x18 + 2c0: ldm r2!, {r3, r5, r6} + 2c2: stm r1!, {r3, r5, r6} + 2c4: movs r1, #0x0 + 2c6: str r1, [r0] + 2c8: ldr r0, [pc, #0x98] <$d.4+0x68> + 2ca: ldr r2, [r0] + 2cc: cmp r2, #0x0 + 2ce: bne 0x2ea @ imm = #0x18 + 2d0: ldr r2, [sp, #0x8] + 2d2: ands r4, r2 + 2d4: str r1, [r0] + 2d6: strb r2, [r0, #0x4] + 2d8: bne 0x2de @ imm = #0x2 + 2da: bl 0x1144 <__cpsie> @ imm = #0xe66 + 2de: b 0x2de @ imm = #-0x4 + 2e0: bl 0xa3c @ imm = #0x758 + 2e4: trap + 2e6: ldr r0, [pc, #0x70] <$d.4+0x5e> + 2e8: b 0x2ec @ imm = #0x0 + 2ea: ldr r0, [pc, #0x7c] <$d.4+0x6e> + 2ec: str r0, [sp] + 2ee: ldr r0, [pc, #0x6c] <$d.4+0x62> + 2f0: movs r1, #0x10 + 2f2: add r2, sp, #0x24 + 2f4: ldr r3, [pc, #0x68] <$d.4+0x64> + 2f6: bl 0xc5c @ imm = #0x962 + 2fa: trap + +000002fc <$d.4>: + 2fc: 28 04 00 10 .word 0x10000428 + 300: b4 14 00 00 .word 0x000014b4 + 304: 1c 00 00 10 .word 0x1000001c + 308: cc 16 00 00 .word 0x000016cc + 30c: d4 16 00 00 .word 0x000016d4 + 310: 20 04 00 10 .word 0x10000420 + 314: 1c 04 00 10 .word 0x1000041c + 318: b0 16 00 00 .word 0x000016b0 + 31c: bd 14 00 00 .word 0x000014bd + 320: 9d 0e 00 00 .word 0x00000e9d + 324: 58 04 00 10 .word 0x10000458 + 328: 7c 00 00 40 .word 0x4000007c + 32c: 01 00 40 01 .word 0x01400001 + 330: 14 00 00 50 .word 0x50000014 + 334: 2c 10 00 40 .word 0x4000102c + 338: 00 00 02 40 .word 0x40020000 + 33c: 00 11 00 40 .word 0x40001100 + 340: 4f c3 00 00 .word 0x0000c34f + 344: 18 20 00 40 .word 0x40002018 + 348: 00 07 01 00 .word 0x00010700 + 34c: 10 10 00 50 .word 0x50001010 + 350: 00 e1 00 e0 .word 0xe000e100 + 354: 00 00 00 10 .word 0x10000000 + 358: 1c 15 00 00 .word 0x0000151c + 35c: 30 14 00 00 .word 0x00001430 + 360: a4 14 00 00 .word 0x000014a4 + 364: 14 00 00 10 .word 0x10000014 + 368: 2c 15 00 00 .word 0x0000152c + +0000036c : + 36c: push {r4, r6, r7, lr} + 36e: add r7, sp, #0x8 + 370: bl 0x1148 <__primask_r> @ imm = #0xdd4 + 374: mov r4, r0 + 376: bl 0x1140 <__cpsid> @ imm = #0xdc6 + 37a: ldr r0, [pc, #0x10] <$d.6+0x2> + 37c: ldr r1, [r0] + 37e: adds r1, r1, #0x1 + 380: str r1, [r0] + 382: lsls r0, r4, #0x1f + 384: bne 0x38a @ imm = #0x2 + 386: bl 0x1144 <__cpsie> @ imm = #0xdba + 38a: pop {r4, r6, r7, pc} + +0000038c <$d.6>: + 38c: 10 00 00 10 .word 0x10000010 + +00000390 : + 390: push {r4, r5, r6, r7, lr} + 392: add r7, sp, #0xc + 394: sub sp, #0xc + 396: bl 0x1148 <__primask_r> @ imm = #0xdae + 39a: mov r4, r0 + 39c: bl 0x1140 <__cpsid> @ imm = #0xda0 + 3a0: ldr r0, [pc, #0xb8] <$d.8> + 3a2: ldr r1, [r0] + 3a4: cmp r1, #0x0 + 3a6: bne 0x43c @ imm = #0x92 + 3a8: movs r1, #0x0 + 3aa: mvns r1, r1 + 3ac: str r1, [r0] + 3ae: ldr r1, [pc, #0xbc] <$d.8+0x12> + 3b0: ldr r2, [r1] + 3b2: ldr r3, [pc, #0xbc] <$d.8+0x16> + 3b4: cmp r2, r3 + 3b6: bhs 0x44a @ imm = #0x90 + 3b8: movs r5, #0x1 + 3ba: ands r4, r5 + 3bc: ldrb r3, [r0, #0x4] + 3be: adds r2, r2, #0x1 + 3c0: str r2, [r1] + 3c2: cmp r3, #0x2 + 3c4: beq 0x424 @ imm = #0x5c + 3c6: ldrb r2, [r1, #0x4] + 3c8: cmp r2, #0x1 + 3ca: bne 0x424 @ imm = #0x56 + 3cc: ldr r2, [pc, #0xb0] <$d.8+0x24> + 3ce: ldr r6, [r2] + 3d0: lsls r6, r6, #0x14 + 3d2: bmi 0x3dc @ imm = #0x6 + 3d4: cmp r3, #0x2 + 3d6: bne 0x3e4 @ imm = #0xa + 3d8: mov r5, r3 + 3da: b 0x3e6 @ imm = #0x8 + 3dc: cmp r3, #0x2 + 3de: bne 0x3f8 @ imm = #0x16 + 3e0: mov r6, r3 + 3e2: b 0x3fa @ imm = #0x14 + 3e4: adds r5, r0, #0x6 + 3e6: ldrb r5, [r5] + 3e8: cmp r5, #0x1 + 3ea: bne 0x424 @ imm = #0x36 + 3ec: ldrb r5, [r0, #0x4] + 3ee: cmp r5, #0x0 + 3f0: beq 0x40a @ imm = #0x16 + 3f2: ldr r2, [pc, #0x90] <$d.8+0x2a> + 3f4: adds r2, r2, #0x4 + 3f6: b 0x40c @ imm = #0x12 + 3f8: adds r6, r0, #0x6 + 3fa: ldrb r6, [r6] + 3fc: cmp r6, #0x1 + 3fe: bne 0x424 @ imm = #0x22 + 400: ldrb r6, [r0, #0x4] + 402: cmp r6, #0x0 + 404: beq 0x410 @ imm = #0x8 + 406: ldr r2, [pc, #0x7c] <$d.8+0x2a> + 408: b 0x412 @ imm = #0x6 + 40a: adds r2, #0x10 + 40c: movs r5, #0x1 + 40e: b 0x412 @ imm = #0x0 + 410: adds r2, #0xc + 412: cmp r3, #0x2 + 414: mov r3, r5 + 416: beq 0x41a @ imm = #0x0 + 418: adds r3, r0, #0x5 + 41a: ldrb r3, [r3] + 41c: movs r6, #0x1f + 41e: ands r6, r3 + 420: lsls r5, r6 + 422: str r5, [r2] + 424: ldr r2, [r1] + 426: subs r2, r2, #0x1 + 428: str r2, [r1] + 42a: ldr r1, [r0] + 42c: adds r1, r1, #0x1 + 42e: str r1, [r0] + 430: cmp r4, #0x0 + 432: bne 0x438 @ imm = #0x2 + 434: bl 0x1144 <__cpsie> @ imm = #0xd0c + 438: add sp, #0xc + 43a: pop {r4, r5, r6, r7, pc} + 43c: ldr r0, [pc, #0x20] <$d.8+0x4> + 43e: str r0, [sp] + 440: ldr r0, [pc, #0x20] <$d.8+0x8> + 442: movs r1, #0x10 + 444: add r2, sp, #0x8 + 446: ldr r3, [pc, #0x20] <$d.8+0xe> + 448: b 0x456 @ imm = #0xa + 44a: ldr r0, [pc, #0x28] <$d.8+0x1a> + 44c: str r0, [sp] + 44e: ldr r0, [pc, #0x28] <$d.8+0x1e> + 450: movs r1, #0x18 + 452: add r2, sp, #0x8 + 454: ldr r3, [pc, #0x24] <$d.8+0x20> + 456: bl 0xc5c @ imm = #0x802 + 45a: trap + +0000045c <$d.8>: + 45c: 00 00 00 10 .word 0x10000000 + 460: 3c 15 00 00 .word 0x0000153c + 464: 30 14 00 00 .word 0x00001430 + 468: a4 14 00 00 .word 0x000014a4 + 46c: 14 00 00 10 .word 0x10000014 + 470: ff ff ff 7f .word 0x7fffffff + 474: 4c 15 00 00 .word 0x0000154c + 478: 50 14 00 00 .word 0x00001450 + 47c: 94 14 00 00 .word 0x00001494 + 480: 04 00 00 50 .word 0x50000004 + 484: 10 10 00 50 .word 0x50001010 + +00000488 : + 488: ldr r0, [r0] + 48a: b 0x48a @ imm = #-0x4 + +0000048c ::fmt::h55a201de7649bb77>: + 48c: push {r4, r5, r6, r7, lr} + 48e: add r7, sp, #0xc + 490: sub sp, #0x4c + 492: str r1, [sp, #0x18] + 494: ldr r2, [r0] + 496: ldr r3, [pc, #0x23c] <$d.11+0x2> + 498: ldr r1, [pc, #0x23c] <$d.11+0x4> + 49a: movs r5, #0x27 + 49c: cmp r2, r1 + 49e: blo 0x4fc ::fmt::h55a201de7649bb77+0x70> @ imm = #0x5a + 4a0: mov r4, r2 + 4a2: str r5, [sp, #0x20] + 4a4: mov r0, r4 + 4a6: ldr r1, [pc, #0x230] <$d.11+0x6> + 4a8: bl 0x114e <__aeabi_uidiv> @ imm = #0xca2 + 4ac: str r0, [sp, #0x1c] + 4ae: ldr r1, [pc, #0x22c] <$d.11+0xa> + 4b0: muls r1, r0, r1 + 4b2: adds r1, r1, r4 + 4b4: uxth r2, r1 + 4b6: lsrs r2, r2, #0x2 + 4b8: ldr r0, [pc, #0x224] <$d.11+0xc> + 4ba: muls r2, r0, r2 + 4bc: lsrs r2, r2, #0x11 + 4be: lsls r3, r2, #0x1 + 4c0: ldr r0, [pc, #0x220] <$d.11+0x10> + 4c2: ldrb r0, [r0, r3] + 4c4: add r6, sp, #0x24 + 4c6: adds r6, r6, r5 + 4c8: subs r5, r6, #0x4 + 4ca: strb r0, [r5] + 4cc: ldr r0, [pc, #0x214] <$d.11+0x10> + 4ce: adds r0, r0, r3 + 4d0: ldr r3, [pc, #0x200] <$d.11> + 4d2: ldrb r0, [r0, #0x1] + 4d4: strb r0, [r5, #0x1] + 4d6: ldr r5, [sp, #0x20] + 4d8: muls r2, r3, r2 + 4da: adds r0, r2, r1 + 4dc: uxth r0, r0 + 4de: lsls r0, r0, #0x1 + 4e0: ldr r1, [pc, #0x200] <$d.11+0x10> + 4e2: ldrb r1, [r1, r0] + 4e4: subs r2, r6, #0x2 + 4e6: strb r1, [r2] + 4e8: ldr r1, [pc, #0x1f8] <$d.11+0x10> + 4ea: adds r0, r1, r0 + 4ec: ldrb r0, [r0, #0x1] + 4ee: strb r0, [r2, #0x1] + 4f0: ldr r2, [sp, #0x1c] + 4f2: subs r5, r5, #0x4 + 4f4: ldr r0, [pc, #0x1f0] <$d.11+0x14> + 4f6: cmp r4, r0 + 4f8: mov r4, r2 + 4fa: bhi 0x4a2 ::fmt::h55a201de7649bb77+0x16> @ imm = #-0x5c + 4fc: cmp r2, #0x63 + 4fe: ble 0x53e ::fmt::h55a201de7649bb77+0xb2> @ imm = #0x3c + 500: uxth r0, r2 + 502: lsrs r0, r0, #0x2 + 504: ldr r1, [pc, #0x1d8] <$d.11+0xc> + 506: muls r1, r0, r1 + 508: lsrs r1, r1, #0x11 + 50a: muls r3, r1, r3 + 50c: adds r0, r3, r2 + 50e: uxth r0, r0 + 510: lsls r0, r0, #0x1 + 512: ldr r2, [pc, #0x1d0] <$d.11+0x12> + 514: ldrb r3, [r2, r0] + 516: subs r5, r5, #0x2 + 518: add r4, sp, #0x24 + 51a: strb r3, [r4, r5] + 51c: adds r3, r4, r5 + 51e: adds r0, r2, r0 + 520: ldrb r0, [r0, #0x1] + 522: strb r0, [r3, #0x1] + 524: cmp r1, #0xa + 526: blt 0x544 ::fmt::h55a201de7649bb77+0xb8> @ imm = #0x1a + 528: lsls r0, r1, #0x1 + 52a: ldr r1, [pc, #0x1b8] <$d.11+0x12> + 52c: ldrb r2, [r1, r0] + 52e: subs r5, r5, #0x2 + 530: add r3, sp, #0x24 + 532: strb r2, [r3, r5] + 534: adds r2, r3, r5 + 536: adds r0, r1, r0 + 538: ldrb r0, [r0, #0x1] + 53a: strb r0, [r2, #0x1] + 53c: b 0x54c ::fmt::h55a201de7649bb77+0xc0> @ imm = #0xc + 53e: mov r1, r2 + 540: cmp r1, #0xa + 542: bge 0x528 ::fmt::h55a201de7649bb77+0x9c> @ imm = #-0x1e + 544: subs r5, r5, #0x1 + 546: adds r1, #0x30 + 548: add r0, sp, #0x24 + 54a: strb r1, [r0, r5] + 54c: movs r1, #0x27 + 54e: ldr r0, [sp, #0x18] + 550: ldr r0, [r0] + 552: movs r3, #0x1 + 554: mov r6, r0 + 556: ands r6, r3 + 558: movs r2, #0x11 + 55a: lsls r2, r2, #0x10 + 55c: cmp r6, #0x0 + 55e: str r2, [sp, #0xc] + 560: beq 0x564 ::fmt::h55a201de7649bb77+0xd8> @ imm = #0x0 + 562: movs r2, #0x2b + 564: str r2, [sp, #0x14] + 566: subs r4, r1, r5 + 568: add r1, sp, #0x24 + 56a: str r5, [sp, #0x20] + 56c: adds r1, r1, r5 + 56e: str r1, [sp, #0x10] + 570: lsls r1, r0, #0x1d + 572: asrs r1, r1, #0x1f + 574: ldr r2, [pc, #0x174] <$d.11+0x18> + 576: ands r2, r1 + 578: ldr r5, [sp, #0x18] + 57a: ldr r1, [r5, #0x8] + 57c: cmp r1, #0x1 + 57e: bne 0x5b0 ::fmt::h55a201de7649bb77+0x124> @ imm = #0x2e + 580: str r2, [sp, #0x8] + 582: adds r1, r4, r6 + 584: ldr r2, [r5, #0xc] + 586: cmp r2, r1 + 588: bls 0x5b6 ::fmt::h55a201de7649bb77+0x12a> @ imm = #0x2a + 58a: str r2, [sp, #0x1c] + 58c: str r4, [sp, #0x4] + 58e: lsls r0, r0, #0x1c + 590: bmi 0x5dc ::fmt::h55a201de7649bb77+0x150> @ imm = #0x48 + 592: movs r0, #0x20 + 594: ldr r3, [sp, #0x18] + 596: ldrb r2, [r3, r0] + 598: cmp r2, #0x3 + 59a: bne 0x59e ::fmt::h55a201de7649bb77+0x112> @ imm = #0x0 + 59c: movs r2, #0x1 + 59e: ldr r0, [sp, #0x1c] + 5a0: subs r0, r0, r1 + 5a2: lsls r1, r2, #0x1e + 5a4: beq 0x628 ::fmt::h55a201de7649bb77+0x19c> @ imm = #0x80 + 5a6: cmp r2, #0x1 + 5a8: bne 0x62e ::fmt::h55a201de7649bb77+0x1a2> @ imm = #0x82 + 5aa: movs r5, #0x0 + 5ac: mov r1, r0 + 5ae: b 0x634 ::fmt::h55a201de7649bb77+0x1a8> @ imm = #0x82 + 5b0: mov r0, r5 + 5b2: ldr r1, [sp, #0x14] + 5b4: b 0x5bc ::fmt::h55a201de7649bb77+0x130> @ imm = #0x4 + 5b6: mov r0, r5 + 5b8: ldr r1, [sp, #0x14] + 5ba: ldr r2, [sp, #0x8] + 5bc: mov r6, r3 + 5be: bl 0x728 @ imm = #0x166 + 5c2: mov r1, r6 + 5c4: cmp r0, #0x0 + 5c6: bne 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #0xc + 5c8: ldr r0, [r5, #0x18] + 5ca: ldr r1, [r5, #0x1c] + 5cc: ldr r3, [r1, #0xc] + 5ce: ldr r1, [sp, #0x10] + 5d0: mov r2, r4 + 5d2: blx r3 + 5d4: mov r1, r0 + 5d6: mov r0, r1 + 5d8: add sp, #0x4c + 5da: pop {r4, r5, r6, r7, pc} + 5dc: movs r0, #0x20 + 5de: ldr r5, [sp, #0x18] + 5e0: ldrb r4, [r5, r0] + 5e2: movs r1, #0x1 + 5e4: str r1, [sp, #0xc] + 5e6: strb r1, [r5, r0] + 5e8: ldr r0, [r5, #0x4] + 5ea: str r0, [sp] + 5ec: movs r0, #0x30 + 5ee: str r0, [r5, #0x4] + 5f0: mov r0, r5 + 5f2: ldr r1, [sp, #0x14] + 5f4: ldr r2, [sp, #0x8] + 5f6: bl 0x728 @ imm = #0x12e + 5fa: cmp r0, #0x0 + 5fc: bne 0x624 ::fmt::h55a201de7649bb77+0x198> @ imm = #0x24 + 5fe: str r4, [sp, #0x14] + 600: mov r0, r5 + 602: adds r0, #0x20 + 604: str r0, [sp, #0x8] + 606: ldr r0, [sp, #0x20] + 608: ldr r1, [sp, #0x1c] + 60a: adds r0, r0, r1 + 60c: subs r6, r0, r6 + 60e: subs r6, #0x26 + 610: ldr r4, [r5, #0x18] + 612: ldr r5, [r5, #0x1c] + 614: subs r6, r6, #0x1 + 616: beq 0x662 ::fmt::h55a201de7649bb77+0x1d6> @ imm = #0x48 + 618: ldr r2, [r5, #0x10] + 61a: movs r1, #0x30 + 61c: mov r0, r4 + 61e: blx r2 + 620: cmp r0, #0x0 + 622: beq 0x614 ::fmt::h55a201de7649bb77+0x188> @ imm = #-0x12 + 624: ldr r1, [sp, #0xc] + 626: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0x54 + 628: movs r1, #0x0 + 62a: mov r5, r0 + 62c: b 0x634 ::fmt::h55a201de7649bb77+0x1a8> @ imm = #0x4 + 62e: lsrs r1, r0, #0x1 + 630: adds r0, r0, #0x1 + 632: lsrs r5, r0, #0x1 + 634: adds r6, r1, #0x1 + 636: ldr r4, [r3, #0x4] + 638: ldr r0, [r3, #0x18] + 63a: str r0, [sp, #0x20] + 63c: ldr r0, [r3, #0x1c] + 63e: str r0, [sp, #0x1c] + 640: subs r6, r6, #0x1 + 642: beq 0x656 ::fmt::h55a201de7649bb77+0x1ca> @ imm = #0x10 + 644: ldr r0, [sp, #0x1c] + 646: ldr r2, [r0, #0x10] + 648: ldr r0, [sp, #0x20] + 64a: mov r1, r4 + 64c: blx r2 + 64e: cmp r0, #0x0 + 650: beq 0x640 ::fmt::h55a201de7649bb77+0x1b4> @ imm = #-0x14 + 652: movs r1, #0x1 + 654: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0x82 + 656: ldr r0, [sp, #0xc] + 658: cmp r4, r0 + 65a: beq 0x680 ::fmt::h55a201de7649bb77+0x1f4> @ imm = #0x22 + 65c: ldr r2, [sp, #0x8] + 65e: mov r6, r5 + 660: b 0x684 ::fmt::h55a201de7649bb77+0x1f8> @ imm = #0x20 + 662: ldr r3, [r5, #0xc] + 664: mov r0, r4 + 666: ldr r1, [sp, #0x10] + 668: ldr r2, [sp, #0x4] + 66a: blx r3 + 66c: cmp r0, #0x0 + 66e: ldr r0, [sp, #0x18] + 670: ldr r1, [sp, #0xc] + 672: bne 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xa0 + 674: ldr r1, [sp, #0x14] + 676: ldr r2, [sp, #0x8] + 678: strb r1, [r2] + 67a: ldr r1, [sp] + 67c: str r1, [r0, #0x4] + 67e: b 0x6ce ::fmt::h55a201de7649bb77+0x242> @ imm = #0x4c + 680: movs r6, #0x0 + 682: ldr r2, [sp, #0x8] + 684: movs r1, #0x1 + 686: cmp r4, r0 + 688: beq 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xb6 + 68a: mov r5, r1 + 68c: ldr r0, [sp, #0x18] + 68e: ldr r1, [sp, #0x14] + 690: bl 0x728 @ imm = #0x94 + 694: cmp r0, #0x0 + 696: beq 0x69c ::fmt::h55a201de7649bb77+0x210> @ imm = #0x2 + 698: mov r1, r5 + 69a: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xc8 + 69c: ldr r0, [sp, #0x1c] + 69e: ldr r3, [r0, #0xc] + 6a0: ldr r0, [sp, #0x20] + 6a2: ldr r1, [sp, #0x10] + 6a4: ldr r2, [sp, #0x4] + 6a6: blx r3 + 6a8: cmp r0, #0x0 + 6aa: mov r1, r5 + 6ac: bne 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xda + 6ae: movs r5, #0x0 + 6b0: cmp r6, r5 + 6b2: beq 0x6c8 ::fmt::h55a201de7649bb77+0x23c> @ imm = #0x12 + 6b4: ldr r0, [sp, #0x1c] + 6b6: ldr r2, [r0, #0x10] + 6b8: ldr r0, [sp, #0x20] + 6ba: mov r1, r4 + 6bc: blx r2 + 6be: adds r5, r5, #0x1 + 6c0: cmp r0, #0x0 + 6c2: beq 0x6b0 ::fmt::h55a201de7649bb77+0x224> @ imm = #-0x16 + 6c4: subs r0, r5, #0x1 + 6c6: b 0x6ca ::fmt::h55a201de7649bb77+0x23e> @ imm = #0x0 + 6c8: mov r0, r6 + 6ca: cmp r0, r6 + 6cc: blo 0x652 ::fmt::h55a201de7649bb77+0x1c6> @ imm = #-0x7e + 6ce: movs r1, #0x0 + 6d0: b 0x5d6 ::fmt::h55a201de7649bb77+0x14a> @ imm = #-0xfe + 6d2: mov r8, r8 + +000006d4 <$d.11>: + 6d4: 9c ff 00 00 .word 0x0000ff9c + 6d8: 10 27 00 00 .word 0x00002710 + 6dc: f0 d8 ff ff .word 0xffffd8f0 + 6e0: 7b 14 00 00 .word 0x0000147b + 6e4: d4 15 00 00 .word 0x000015d4 + 6e8: ff e0 f5 05 .word 0x05f5e0ff + 6ec: 9c 16 00 00 .word 0x0000169c + +000006f0 : + 6f0: push {r7, lr} + 6f2: add r7, sp, #0x0 + 6f4: sub sp, #0x10 + 6f6: str r1, [sp, #0xc] + 6f8: str r0, [sp, #0x8] + 6fa: ldr r0, [pc, #0x10] <$d.13+0x2> + 6fc: str r0, [sp, #0x4] + 6fe: ldr r0, [pc, #0x10] <$d.13+0x6> + 700: str r0, [sp] + 702: mov r0, sp + 704: bl 0xdb4 @ imm = #0x6ac + 708: trap + 70a: mov r8, r8 + +0000070c <$d.13>: + 70c: 90 15 00 00 .word 0x00001590 + 710: 9c 16 00 00 .word 0x0000169c + +00000714 >>::hfaa022ea9f302e4a>: + 714: bx lr + 716: bmi 0x6c2 ::fmt::h55a201de7649bb77+0x236> @ imm = #-0x58 + +00000718 <::type_id::hc7e5c3525e389ccd>: + 718: ldr r0, [pc, #0x4] <$d.16> + 71a: ldr r1, [pc, #0x8] <$d.16+0x6> + 71c: bx lr + 71e: mov r8, r8 + +00000720 <$d.16>: + 720: 4e 08 33 ba .word 0xba33084e + 724: eb 93 15 f1 .word 0xf11593eb + +00000728 : + 728: push {r4, r5, r7, lr} + 72a: add r7, sp, #0x8 + 72c: mov r4, r2 + 72e: mov r5, r0 + 730: movs r0, #0x11 + 732: lsls r0, r0, #0x10 + 734: cmp r1, r0 + 736: beq 0x748 @ imm = #0xe + 738: ldr r0, [r5, #0x18] + 73a: ldr r2, [r5, #0x1c] + 73c: ldr r2, [r2, #0x10] + 73e: blx r2 + 740: cmp r0, #0x0 + 742: beq 0x748 @ imm = #0x2 + 744: movs r0, #0x1 + 746: pop {r4, r5, r7, pc} + 748: cmp r4, #0x0 + 74a: beq 0x75a @ imm = #0xc + 74c: ldr r0, [r5, #0x18] + 74e: ldr r1, [r5, #0x1c] + 750: ldr r3, [r1, #0xc] + 752: movs r2, #0x0 + 754: mov r1, r4 + 756: blx r3 + 758: pop {r4, r5, r7, pc} + 75a: movs r0, #0x0 + 75c: pop {r4, r5, r7, pc} + +0000075e : + 75e: push {r4, r5, r6, r7, lr} + 760: add r7, sp, #0xc + 762: sub sp, #0x2c + 764: mov r5, r1 + 766: ldr r1, [r0, #0x10] + 768: ldr r3, [r0, #0x8] + 76a: cmp r3, #0x1 + 76c: str r0, [sp, #0x24] + 76e: bne 0x776 @ imm = #0x4 + 770: cmp r1, #0x1 + 772: beq 0x77c @ imm = #0x6 + 774: b 0x8e2 @ imm = #0x16a + 776: cmp r1, #0x1 + 778: beq 0x77c @ imm = #0x0 + 77a: b 0x9a6 @ imm = #0x228 + 77c: str r3, [sp, #0x10] + 77e: str r2, [sp, #0x1c] + 780: adds r1, r5, r2 + 782: str r1, [sp, #0x28] + 784: ldr r4, [r0, #0x14] + 786: cmp r4, #0x0 + 788: str r5, [sp, #0x20] + 78a: beq 0x82e @ imm = #0xa0 + 78c: movs r1, #0x11 + 78e: lsls r0, r1, #0x10 + 790: str r0, [sp, #0xc] + 792: movs r1, #0x7 + 794: lsls r0, r1, #0x12 + 796: str r0, [sp, #0x8] + 798: movs r0, #0x0 + 79a: b 0x7d0 @ imm = #0x32 + 79c: str r0, [sp, #0x4] + 79e: ldrb r0, [r5] + 7a0: str r0, [sp, #0x14] + 7a2: movs r2, #0x3f + 7a4: ldr r0, [sp, #0x14] + 7a6: ands r2, r0 + 7a8: ldr r0, [sp, #0x4] + 7aa: str r2, [sp, #0x14] + 7ac: adds r5, r5, #0x1 + 7ae: lsls r6, r6, #0x12 + 7b0: ldr r2, [sp, #0x8] + 7b2: ands r6, r2 + 7b4: lsls r1, r1, #0xc + 7b6: adds r1, r1, r6 + 7b8: ldr r2, [sp, #0x18] + 7ba: lsls r6, r2, #0x6 + 7bc: adds r1, r1, r6 + 7be: ldr r2, [sp, #0x14] + 7c0: adds r1, r1, r2 + 7c2: ldr r6, [sp, #0xc] + 7c4: cmp r1, r6 + 7c6: beq 0x898 @ imm = #0xce + 7c8: subs r1, r0, r3 + 7ca: adds r0, r1, r5 + 7cc: subs r4, r4, #0x1 + 7ce: beq 0x830 @ imm = #0x5e + 7d0: ldr r1, [sp, #0x28] + 7d2: cmp r5, r1 + 7d4: beq 0x898 @ imm = #0xc0 + 7d6: mov r3, r5 + 7d8: movs r1, #0x0 + 7da: ldrsb r6, [r5, r1] + 7dc: adds r5, r5, #0x1 + 7de: cmp r6, #0x0 + 7e0: bpl 0x7c8 @ imm = #-0x1c + 7e2: ldr r2, [sp, #0x28] + 7e4: cmp r5, r2 + 7e6: mov r5, r2 + 7e8: beq 0x7f2 @ imm = #0x6 + 7ea: ldrb r5, [r3, #0x1] + 7ec: movs r1, #0x3f + 7ee: ands r1, r5 + 7f0: adds r5, r3, #0x2 + 7f2: uxtb r6, r6 + 7f4: cmp r6, #0xe0 + 7f6: blo 0x7c8 @ imm = #-0x32 + 7f8: ldr r2, [sp, #0x28] + 7fa: cmp r5, r2 + 7fc: beq 0x816 @ imm = #0x16 + 7fe: ldrb r2, [r5] + 800: str r2, [sp, #0x18] + 802: str r6, [sp, #0x14] + 804: movs r6, #0x3f + 806: ldr r2, [sp, #0x18] + 808: ands r6, r2 + 80a: str r6, [sp, #0x18] + 80c: ldr r6, [sp, #0x14] + 80e: adds r5, r5, #0x1 + 810: cmp r6, #0xf0 + 812: blo 0x7c8 @ imm = #-0x4e + 814: b 0x820 @ imm = #0x8 + 816: movs r5, #0x0 + 818: str r5, [sp, #0x18] + 81a: ldr r5, [sp, #0x28] + 81c: cmp r6, #0xf0 + 81e: blo 0x7c8 @ imm = #-0x5a + 820: ldr r2, [sp, #0x28] + 822: cmp r5, r2 + 824: bne 0x79c @ imm = #-0x8c + 826: movs r5, #0x0 + 828: str r5, [sp, #0x14] + 82a: ldr r5, [sp, #0x28] + 82c: b 0x7ae @ imm = #-0x82 + 82e: movs r0, #0x0 + 830: ldr r1, [sp, #0x28] + 832: cmp r5, r1 + 834: beq 0x898 @ imm = #0x60 + 836: movs r3, #0x0 + 838: ldrsb r1, [r5, r3] + 83a: cmp r1, #0x0 + 83c: bpl 0x8a2 @ imm = #0x62 + 83e: uxtb r1, r1 + 840: adds r4, r5, #0x1 + 842: ldr r6, [sp, #0x28] + 844: cmp r4, r6 + 846: beq 0x850 @ imm = #0x6 + 848: adds r6, r5, #0x2 + 84a: ldrb r3, [r5, #0x1] + 84c: lsls r3, r3, #0x1a + 84e: lsrs r3, r3, #0x14 + 850: cmp r1, #0xe0 + 852: blo 0x8a2 @ imm = #0x4c + 854: ldr r2, [sp, #0x28] + 856: cmp r6, r2 + 858: beq 0x868 @ imm = #0xc + 85a: ldrb r5, [r6] + 85c: movs r4, #0x3f + 85e: ands r4, r5 + 860: adds r5, r6, #0x1 + 862: cmp r1, #0xf0 + 864: bhs 0x870 @ imm = #0x8 + 866: b 0x8a2 @ imm = #0x38 + 868: movs r4, #0x0 + 86a: ldr r5, [sp, #0x28] + 86c: cmp r1, #0xf0 + 86e: blo 0x8a2 @ imm = #0x30 + 870: mov r6, r0 + 872: orrs r4, r3 + 874: ldr r0, [sp, #0x28] + 876: cmp r5, r0 + 878: beq 0x882 @ imm = #0x6 + 87a: ldrb r3, [r5] + 87c: movs r0, #0x3f + 87e: ands r0, r3 + 880: b 0x884 @ imm = #0x0 + 882: movs r0, #0x0 + 884: lsls r3, r4, #0x6 + 886: lsls r1, r1, #0x1d + 888: lsrs r1, r1, #0xb + 88a: adds r1, r3, r1 + 88c: adds r0, r1, r0 + 88e: movs r1, #0x11 + 890: lsls r1, r1, #0x10 + 892: cmp r0, r1 + 894: mov r0, r6 + 896: bne 0x8a2 @ imm = #0x8 + 898: ldr r2, [sp, #0x1c] + 89a: ldr r5, [sp, #0x20] + 89c: ldr r0, [sp, #0x24] + 89e: ldr r1, [sp, #0x10] + 8a0: b 0x8de @ imm = #0x3a + 8a2: cmp r0, #0x0 + 8a4: ldr r2, [sp, #0x1c] + 8a6: ldr r5, [sp, #0x20] + 8a8: beq 0x8ca @ imm = #0x1e + 8aa: cmp r0, r2 + 8ac: bhs 0x8c2 @ imm = #0x12 + 8ae: ldrsb r1, [r5, r0] + 8b0: mov r4, r0 + 8b2: movs r0, #0x3f + 8b4: mvns r3, r0 + 8b6: mov r0, r4 + 8b8: movs r4, #0x0 + 8ba: cmp r1, r3 + 8bc: mov r1, r4 + 8be: bge 0x8ca @ imm = #0x8 + 8c0: b 0x8ce @ imm = #0xa + 8c2: movs r4, #0x0 + 8c4: cmp r0, r2 + 8c6: mov r1, r4 + 8c8: bne 0x8ce @ imm = #0x2 + 8ca: mov r4, r5 + 8cc: mov r1, r0 + 8ce: cmp r4, #0x0 + 8d0: beq 0x8d4 @ imm = #0x0 + 8d2: mov r2, r1 + 8d4: cmp r4, #0x0 + 8d6: ldr r0, [sp, #0x24] + 8d8: ldr r1, [sp, #0x10] + 8da: beq 0x8de @ imm = #0x0 + 8dc: mov r5, r4 + 8de: cmp r1, #0x1 + 8e0: bne 0x9a6 @ imm = #0xc2 + 8e2: ldr r1, [r0, #0xc] + 8e4: str r1, [sp, #0x28] + 8e6: cmp r2, #0x0 + 8e8: beq 0x8fe @ imm = #0x12 + 8ea: movs r0, #0x3 + 8ec: mov r1, r2 + 8ee: ands r1, r0 + 8f0: str r1, [sp, #0x18] + 8f2: subs r1, r2, #0x1 + 8f4: cmp r1, #0x3 + 8f6: bhs 0x902 @ imm = #0x8 + 8f8: movs r3, #0x0 + 8fa: mov r4, r5 + 8fc: b 0x946 @ imm = #0x46 + 8fe: movs r3, #0x0 + 900: b 0x978 @ imm = #0x74 + 902: str r2, [sp, #0x1c] + 904: bics r2, r0 + 906: mov r4, r5 + 908: rsbs r5, r2, #0 + 90a: movs r3, #0x0 + 90c: str r4, [sp, #0x20] + 90e: b 0x916 @ imm = #0x4 + 910: adds r4, r4, #0x4 + 912: adds r5, r5, #0x4 + 914: beq 0x942 @ imm = #0x2a + 916: ldrb r6, [r4, #0x1] + 918: movs r0, #0xc0 + 91a: ands r6, r0 + 91c: ldrb r1, [r4] + 91e: ands r1, r0 + 920: cmp r1, #0x80 + 922: beq 0x926 @ imm = #0x0 + 924: adds r3, r3, #0x1 + 926: cmp r6, #0x80 + 928: beq 0x92c @ imm = #0x0 + 92a: adds r3, r3, #0x1 + 92c: ldrb r1, [r4, #0x2] + 92e: ands r1, r0 + 930: cmp r1, #0x80 + 932: beq 0x936 @ imm = #0x0 + 934: adds r3, r3, #0x1 + 936: ldrb r1, [r4, #0x3] + 938: ands r1, r0 + 93a: cmp r1, #0x80 + 93c: beq 0x910 @ imm = #-0x30 + 93e: adds r3, r3, #0x1 + 940: b 0x910 @ imm = #-0x34 + 942: ldr r2, [sp, #0x1c] + 944: ldr r5, [sp, #0x20] + 946: ldr r0, [sp, #0x18] + 948: cmp r0, #0x0 + 94a: beq 0x978 @ imm = #0x2a + 94c: ldrb r1, [r4] + 94e: movs r0, #0xc0 + 950: ands r1, r0 + 952: cmp r1, #0x80 + 954: beq 0x958 @ imm = #0x0 + 956: adds r3, r3, #0x1 + 958: ldr r1, [sp, #0x18] + 95a: cmp r1, #0x1 + 95c: beq 0x978 @ imm = #0x18 + 95e: ldrb r1, [r4, #0x1] + 960: ands r1, r0 + 962: cmp r1, #0x80 + 964: beq 0x968 @ imm = #0x0 + 966: adds r3, r3, #0x1 + 968: ldr r1, [sp, #0x18] + 96a: cmp r1, #0x2 + 96c: beq 0x978 @ imm = #0x8 + 96e: ldrb r1, [r4, #0x2] + 970: ands r1, r0 + 972: cmp r1, #0x80 + 974: beq 0x978 @ imm = #0x0 + 976: adds r3, r3, #0x1 + 978: ldr r0, [sp, #0x28] + 97a: cmp r0, r3 + 97c: bls 0x9a4 @ imm = #0x24 + 97e: str r5, [sp, #0x20] + 980: movs r0, #0x20 + 982: ldr r1, [sp, #0x24] + 984: ldrb r0, [r1, r0] + 986: movs r5, #0x0 + 988: cmp r0, #0x3 + 98a: mov r4, r5 + 98c: beq 0x990 @ imm = #0x0 + 98e: mov r4, r0 + 990: ldr r0, [sp, #0x28] + 992: subs r0, r0, r3 + 994: lsls r1, r4, #0x1e + 996: str r2, [sp, #0x1c] + 998: beq 0x9b6 @ imm = #0x1a + 99a: cmp r4, #0x1 + 99c: bne 0x9bc @ imm = #0x1c + 99e: movs r1, #0x0 + 9a0: str r1, [sp, #0x18] + 9a2: b 0x9c6 @ imm = #0x20 + 9a4: ldr r0, [sp, #0x24] + 9a6: ldr r1, [r0, #0x18] + 9a8: ldr r0, [r0, #0x1c] + 9aa: ldr r3, [r0, #0xc] + 9ac: mov r0, r1 + 9ae: mov r1, r5 + 9b0: blx r3 + 9b2: add sp, #0x2c + 9b4: pop {r4, r5, r6, r7, pc} + 9b6: str r0, [sp, #0x18] + 9b8: mov r0, r5 + 9ba: b 0x9c6 @ imm = #0x8 + 9bc: lsrs r1, r0, #0x1 + 9be: adds r0, r0, #0x1 + 9c0: lsrs r0, r0, #0x1 + 9c2: str r0, [sp, #0x18] + 9c4: mov r0, r1 + 9c6: ldr r1, [sp, #0x24] + 9c8: adds r5, r0, #0x1 + 9ca: ldr r6, [r1, #0x4] + 9cc: ldr r0, [r1, #0x18] + 9ce: str r0, [sp, #0x28] + 9d0: ldr r4, [r1, #0x1c] + 9d2: subs r5, r5, #0x1 + 9d4: beq 0x9e8 @ imm = #0x10 + 9d6: ldr r2, [r4, #0x10] + 9d8: ldr r0, [sp, #0x28] + 9da: mov r1, r6 + 9dc: blx r2 + 9de: cmp r0, #0x0 + 9e0: beq 0x9d2 @ imm = #-0x12 + 9e2: movs r0, #0x1 + 9e4: add sp, #0x2c + 9e6: pop {r4, r5, r6, r7, pc} + 9e8: movs r0, #0x11 + 9ea: lsls r3, r0, #0x10 + 9ec: cmp r6, r3 + 9ee: bne 0x9f4 @ imm = #0x2 + 9f0: movs r1, #0x0 + 9f2: str r1, [sp, #0x18] + 9f4: ldr r1, [sp, #0x20] + 9f6: ldr r0, [sp, #0x28] + 9f8: mov r2, r4 + 9fa: movs r5, #0x1 + 9fc: cmp r6, r3 + 9fe: bne 0xa06 @ imm = #0x4 + a00: mov r0, r5 + a02: add sp, #0x2c + a04: pop {r4, r5, r6, r7, pc} + a06: ldr r3, [r2, #0xc] + a08: ldr r2, [sp, #0x1c] + a0a: blx r3 + a0c: cmp r0, #0x0 + a0e: mov r0, r5 + a10: bne 0x9e4 @ imm = #-0x30 + a12: movs r5, #0x0 + a14: ldr r1, [sp, #0x18] + a16: cmp r1, r5 + a18: beq 0xa2e @ imm = #0x12 + a1a: ldr r2, [r4, #0x10] + a1c: ldr r0, [sp, #0x28] + a1e: mov r1, r6 + a20: blx r2 + a22: ldr r1, [sp, #0x18] + a24: adds r5, r5, #0x1 + a26: cmp r0, #0x0 + a28: beq 0xa16 @ imm = #-0x16 + a2a: subs r0, r5, #0x1 + a2c: b 0xa30 @ imm = #0x0 + a2e: mov r0, r1 + a30: cmp r0, r1 + a32: blo 0x9e2 @ imm = #-0x54 + a34: movs r0, #0x0 + a36: add sp, #0x2c + a38: pop {r4, r5, r6, r7, pc} + a3a: bmi 0x9e6 @ imm = #-0x58 + +00000a3c : + a3c: push {r7, lr} + a3e: add r7, sp, #0x0 + a40: sub sp, #0x20 + a42: movs r0, #0x0 + a44: str r0, [sp, #0x14] + a46: ldr r1, [pc, #0x20] <$d.20+0x2> + a48: str r1, [sp, #0x10] + a4a: str r0, [sp, #0xc] + a4c: str r0, [sp, #0x8] + a4e: movs r0, #0x1 + a50: str r0, [sp, #0x4] + a52: add r0, sp, #0x18 + a54: str r0, [sp] + a56: movs r0, #0x2b + a58: str r0, [sp, #0x1c] + a5a: ldr r0, [pc, #0x10] <$d.20+0x6> + a5c: str r0, [sp, #0x18] + a5e: mov r0, sp + a60: ldr r1, [pc, #0xc] <$d.20+0x8> + a62: bl 0x6f0 @ imm = #-0x376 + a66: trap + +00000a68 <$d.20>: + a68: 9c 16 00 00 .word 0x0000169c + a6c: 68 14 00 00 .word 0x00001468 + a70: 0c 15 00 00 .word 0x0000150c + +00000a74 <<&T as core::fmt::Display>::fmt::h485290c43ed74af0>: + a74: push {r7, lr} + a76: add r7, sp, #0x0 + a78: mov r3, r1 + a7a: ldm r0!, {r1, r2} + a7c: mov r0, r3 + a7e: bl 0x75e @ imm = #-0x324 + a82: pop {r7, pc} + +00000a84 <<&T as core::fmt::Debug>::fmt::h6f0c0a920de8d5a4>: + a84: push {r7, lr} + a86: add r7, sp, #0x0 + a88: ldr r2, [r0] + a8a: ldr r0, [r0, #0x4] + a8c: ldr r3, [r0, #0xc] + a8e: mov r0, r2 + a90: blx r3 + a92: pop {r7, pc} + +00000a94 : + a94: push {r4, r5, r6, r7, lr} + a96: add r7, sp, #0xc + a98: sub sp, #0x44 + a9a: movs r4, #0x20 + a9c: add r5, sp, #0x20 + a9e: movs r3, #0x3 + aa0: str r5, [sp, #0x1c] + aa2: strb r3, [r5, r4] + aa4: str r4, [sp, #0x24] + aa6: movs r3, #0x0 + aa8: str r3, [sp, #0x20] + aaa: str r1, [sp, #0x3c] + aac: str r0, [sp, #0x38] + aae: str r3, [sp, #0x30] + ab0: str r3, [sp, #0x28] + ab2: ldr r5, [r2, #0x8] + ab4: cmp r5, #0x0 + ab6: beq 0xb74 @ imm = #0xba + ab8: ldr r0, [r2, #0xc] + aba: cmp r0, #0x0 + abc: mov r4, r3 + abe: beq 0xbbc @ imm = #0xfa + ac0: str r3, [sp, #0x8] + ac2: ldr r1, [sp, #0x1c] + ac4: adds r1, #0x20 + ac6: str r1, [sp, #0x1c] + ac8: str r2, [sp, #0x18] + aca: ldr r4, [r2] + acc: lsls r0, r0, #0x5 + ace: str r0, [sp, #0x10] + ad0: subs r0, #0x20 + ad2: lsrs r0, r0, #0x5 + ad4: adds r0, r0, #0x1 + ad6: str r0, [sp, #0x4] + ad8: movs r6, #0x0 + ada: str r5, [sp, #0x14] + adc: ldr r2, [r4, #0x4] + ade: cmp r2, #0x0 + ae0: beq 0xaf0 @ imm = #0xc + ae2: ldr r0, [sp, #0x3c] + ae4: ldr r3, [r0, #0xc] + ae6: ldr r1, [r4] + ae8: ldr r0, [sp, #0x38] + aea: blx r3 + aec: cmp r0, #0x0 + aee: bne 0xbe2 @ imm = #0xf0 + af0: adds r2, r5, r6 + af2: ldrb r0, [r2, #0x1c] + af4: ldr r1, [sp, #0x1c] + af6: strb r0, [r1] + af8: ldr r0, [r2, #0x4] + afa: str r0, [sp, #0x24] + afc: ldr r0, [r2, #0x8] + afe: str r0, [sp, #0x20] + b00: ldr r0, [r2, #0x14] + b02: ldr r3, [r2, #0x18] + b04: ldr r1, [sp, #0x18] + b06: ldr r1, [r1, #0x10] + b08: movs r5, #0x0 + b0a: cmp r0, #0x0 + b0c: beq 0xb2a @ imm = #0x1a + b0e: cmp r0, #0x1 + b10: mov r0, r5 + b12: bne 0xb2c @ imm = #0x16 + b14: lsls r0, r3, #0x3 + b16: str r0, [sp, #0xc] + b18: adds r0, r1, r0 + b1a: ldr r0, [r0, #0x4] + b1c: ldr r3, [pc, #0xd0] <$d.24> + b1e: cmp r0, r3 + b20: mov r0, r5 + b22: bne 0xb2c @ imm = #0x6 + b24: ldr r0, [sp, #0xc] + b26: ldr r0, [r1, r0] + b28: ldr r3, [r0] + b2a: movs r0, #0x1 + b2c: str r3, [sp, #0x2c] + b2e: str r0, [sp, #0x28] + b30: ldr r0, [r2, #0xc] + b32: ldr r2, [r2, #0x10] + b34: cmp r0, #0x0 + b36: beq 0xb4c @ imm = #0x12 + b38: cmp r0, #0x1 + b3a: bne 0xb50 @ imm = #0x12 + b3c: lsls r0, r2, #0x3 + b3e: adds r2, r1, r0 + b40: ldr r2, [r2, #0x4] + b42: ldr r3, [pc, #0xac] <$d.24+0x2> + b44: cmp r2, r3 + b46: bne 0xb50 @ imm = #0x6 + b48: ldr r0, [r1, r0] + b4a: ldr r2, [r0] + b4c: movs r5, #0x1 + b4e: b 0xb50 @ imm = #-0x2 + b50: str r2, [sp, #0x34] + b52: str r5, [sp, #0x30] + b54: ldr r5, [sp, #0x14] + b56: ldr r0, [r5, r6] + b58: lsls r2, r0, #0x3 + b5a: ldr r0, [r1, r2] + b5c: adds r1, r1, r2 + b5e: ldr r2, [r1, #0x4] + b60: add r1, sp, #0x20 + b62: blx r2 + b64: cmp r0, #0x0 + b66: bne 0xbe2 @ imm = #0x78 + b68: adds r6, #0x20 + b6a: adds r4, #0x8 + b6c: ldr r0, [sp, #0x10] + b6e: cmp r0, r6 + b70: bne 0xadc @ imm = #-0x98 + b72: b 0xbb6 @ imm = #0x40 + b74: ldr r0, [r2, #0x14] + b76: cmp r0, #0x0 + b78: mov r4, r3 + b7a: beq 0xbbc @ imm = #0x3e + b7c: str r3, [sp, #0x8] + b7e: ldr r4, [r2] + b80: str r2, [sp, #0x18] + b82: ldr r5, [r2, #0x10] + b84: lsls r0, r0, #0x3 + b86: subs r0, #0x8 + b88: lsrs r0, r0, #0x3 + b8a: adds r6, r0, #0x1 + b8c: str r6, [sp, #0x4] + b8e: ldr r2, [r4, #0x4] + b90: cmp r2, #0x0 + b92: beq 0xba2 @ imm = #0xc + b94: ldr r0, [sp, #0x3c] + b96: ldr r3, [r0, #0xc] + b98: ldr r1, [r4] + b9a: ldr r0, [sp, #0x38] + b9c: blx r3 + b9e: cmp r0, #0x0 + ba0: bne 0xbe2 @ imm = #0x3e + ba2: ldm r5!, {r0, r2} + ba4: add r1, sp, #0x20 + ba6: subs r5, #0x8 + ba8: blx r2 + baa: cmp r0, #0x0 + bac: bne 0xbe2 @ imm = #0x32 + bae: adds r5, #0x8 + bb0: adds r4, #0x8 + bb2: subs r6, r6, #0x1 + bb4: bne 0xb8e @ imm = #-0x2a + bb6: ldr r3, [sp, #0x8] + bb8: ldr r2, [sp, #0x18] + bba: ldr r4, [sp, #0x4] + bbc: ldr r0, [r2, #0x4] + bbe: cmp r4, r0 + bc0: blo 0xbca @ imm = #0x6 + bc2: mov r2, r3 + bc4: cmp r4, r0 + bc6: blo 0xbd4 @ imm = #0xa + bc8: b 0xbe8 @ imm = #0x1c + bca: lsls r1, r4, #0x3 + bcc: ldr r2, [r2] + bce: adds r2, r2, r1 + bd0: cmp r4, r0 + bd2: bhs 0xbe8 @ imm = #0x12 + bd4: ldr r0, [sp, #0x3c] + bd6: ldr r3, [r0, #0xc] + bd8: ldm r2, {r1, r2} + bda: ldr r0, [sp, #0x38] + bdc: blx r3 + bde: cmp r0, #0x0 + be0: beq 0xbe8 @ imm = #0x4 + be2: movs r0, #0x1 + be4: add sp, #0x44 + be6: pop {r4, r5, r6, r7, pc} + be8: movs r0, #0x0 + bea: add sp, #0x44 + bec: pop {r4, r5, r6, r7, pc} + bee: mov r8, r8 + +00000bf0 <$d.24>: + bf0: 89 04 00 00 .word 0x00000489 + +00000bf4 <::fmt::h13cefdfa433bd005>: + bf4: push {r7, lr} + bf6: add r7, sp, #0x0 + bf8: ldr r0, [r1, #0x18] + bfa: ldr r1, [r1, #0x1c] + bfc: ldr r3, [r1, #0xc] + bfe: ldr r1, [pc, #0x8] <$d.26+0x2> + c00: movs r2, #0xb + c02: blx r3 + c04: pop {r7, pc} + c06: mov r8, r8 + +00000c08 <$d.26>: + c08: 5c 15 00 00 .word 0x0000155c + +00000c0c <::fmt::hf6fce6dfb3862f4b>: + c0c: push {r7, lr} + c0e: add r7, sp, #0x0 + c10: ldr r0, [r1, #0x18] + c12: ldr r1, [r1, #0x1c] + c14: ldr r3, [r1, #0xc] + c16: ldr r1, [pc, #0x8] <$d.28+0x2> + c18: movs r2, #0xe + c1a: blx r3 + c1c: pop {r7, pc} + c1e: mov r8, r8 + +00000c20 <$d.28>: + c20: 67 15 00 00 .word 0x00001567 + +00000c24 <<&T as core::fmt::Display>::fmt::h5eec314a4f33db6e>: + c24: push {r4, r5, r6, r7, lr} + c26: add r7, sp, #0xc + c28: sub sp, #0x1c + c2a: ldr r2, [r1, #0x18] + c2c: str r2, [sp] + c2e: ldr r1, [r1, #0x1c] + c30: ldr r0, [r0] + c32: add r2, sp, #0x4 + c34: mov r4, r2 + c36: ldm r0!, {r3, r5, r6} + c38: stm r4!, {r3, r5, r6} + c3a: ldm r0!, {r3, r5, r6} + c3c: stm r4!, {r3, r5, r6} + c3e: ldr r0, [sp] + c40: bl 0xa94 @ imm = #-0x1b0 + c44: add sp, #0x1c + c46: pop {r4, r5, r6, r7, pc} + +00000c48 <<&T as core::fmt::Display>::fmt::hebaa948f08d04b9f>: + c48: push {r7, lr} + c4a: add r7, sp, #0x0 + c4c: mov r3, r1 + c4e: ldr r0, [r0] + c50: ldm r0!, {r1, r2} + c52: mov r0, r3 + c54: bl 0x75e @ imm = #-0x4fa + c58: pop {r7, pc} + c5a: bmi 0xc06 <::fmt::h13cefdfa433bd005+0x12> @ imm = #-0x58 + +00000c5c : + c5c: push {r7, lr} + c5e: add r7, sp, #0x0 + c60: sub sp, #0x38 + c62: str r1, [sp, #0x4] + c64: str r0, [sp] + c66: str r3, [sp, #0xc] + c68: str r2, [sp, #0x8] + c6a: movs r0, #0x2 + c6c: str r0, [sp, #0x24] + c6e: add r1, sp, #0x28 + c70: str r1, [sp, #0x20] + c72: movs r1, #0x0 + c74: str r1, [sp, #0x1c] + c76: str r1, [sp, #0x18] + c78: str r0, [sp, #0x14] + c7a: ldr r0, [pc, #0x1c] <$d.32+0x2> + c7c: str r0, [sp, #0x10] + c7e: ldr r0, [pc, #0x1c] <$d.32+0x6> + c80: str r0, [sp, #0x34] + c82: add r0, sp, #0x8 + c84: str r0, [sp, #0x30] + c86: ldr r0, [pc, #0x18] <$d.32+0xa> + c88: str r0, [sp, #0x2c] + c8a: mov r0, sp + c8c: str r0, [sp, #0x28] + c8e: add r0, sp, #0x10 + c90: ldr r1, [r7, #0x8] + c92: bl 0x6f0 @ imm = #-0x5a6 + c96: trap + +00000c98 <$d.32>: + c98: c4 15 00 00 .word 0x000015c4 + c9c: 85 0a 00 00 .word 0x00000a85 + ca0: 75 0a 00 00 .word 0x00000a75 + +00000ca4 : + ca4: b 0xca4 @ imm = #-0x4 + +00000ca6 <__pre_init>: + ca6: bx lr + +00000ca8 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9>: + ca8: push {r4, r5, r6, r7, lr} + caa: add r7, sp, #0xc + cac: sub sp, #0x44 + cae: ldr r4, [r0] + cb0: ldr r5, [r1, #0x18] + cb2: ldr r6, [r1, #0x1c] + cb4: ldr r3, [r6, #0xc] + cb6: ldr r1, [pc, #0xd8] <$d.37+0x2> + cb8: movs r2, #0xc + cba: mov r0, r5 + cbc: blx r3 + cbe: movs r1, #0x1 + cc0: cmp r0, #0x0 + cc2: bne 0xd88 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xe0> @ imm = #0xc2 + cc4: str r6, [sp, #0xc] + cc6: ldr r0, [r4, #0x8] + cc8: cmp r0, #0x0 + cca: str r4, [sp, #0x8] + ccc: beq 0xd02 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0x5a> @ imm = #0x32 + cce: str r0, [sp, #0x10] + cd0: ldr r0, [pc, #0xc0] <$d.37+0x4> + cd2: str r0, [sp, #0x18] + cd4: add r0, sp, #0x10 + cd6: str r0, [sp, #0x14] + cd8: movs r0, #0x1 + cda: str r0, [sp, #0x40] + cdc: add r0, sp, #0x14 + cde: str r0, [sp, #0x3c] + ce0: movs r0, #0x0 + ce2: str r0, [sp, #0x38] + ce4: str r0, [sp, #0x34] + ce6: movs r0, #0x2 + ce8: str r0, [sp, #0x30] + cea: ldr r0, [pc, #0xac] <$d.37+0xa> + cec: str r0, [sp, #0x2c] + cee: add r2, sp, #0x2c + cf0: mov r4, r5 + cf2: mov r0, r5 + cf4: ldr r5, [sp, #0xc] + cf6: mov r6, r1 + cf8: mov r1, r5 + cfa: bl 0xa94 @ imm = #-0x26a + cfe: mov r1, r6 + d00: b 0xd48 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xa0> @ imm = #0x44 + d02: ldm r4!, {r0, r2} + d04: str r1, [sp, #0x4] + d06: ldr r1, [r2, #0xc] + d08: mov r6, r0 + d0a: blx r1 + d0c: ldr r2, [pc, #0x8c] <$d.37+0xc> + d0e: eors r2, r1 + d10: ldr r1, [pc, #0x8c] <$d.37+0x10> + d12: eors r1, r0 + d14: orrs r1, r2 + d16: mov r4, r5 + d18: ldr r5, [sp, #0xc] + d1a: bne 0xd4c <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xa4> @ imm = #0x2e + d1c: str r6, [sp, #0x10] + d1e: ldr r0, [pc, #0x84] <$d.37+0x16> + d20: str r0, [sp, #0x18] + d22: add r0, sp, #0x10 + d24: str r0, [sp, #0x14] + d26: movs r0, #0x1 + d28: str r0, [sp, #0x40] + d2a: add r0, sp, #0x14 + d2c: str r0, [sp, #0x3c] + d2e: movs r0, #0x0 + d30: str r0, [sp, #0x38] + d32: str r0, [sp, #0x34] + d34: movs r0, #0x2 + d36: str r0, [sp, #0x30] + d38: ldr r0, [pc, #0x5c] <$d.37+0x8> + d3a: str r0, [sp, #0x2c] + d3c: add r2, sp, #0x2c + d3e: mov r0, r4 + d40: mov r1, r5 + d42: bl 0xa94 @ imm = #-0x2b2 + d46: ldr r1, [sp, #0x4] + d48: cmp r0, #0x0 + d4a: bne 0xd88 <<&T as core::fmt::Display>::fmt::hca3d309fecf45fc9+0xe0> @ imm = #0x3a + d4c: ldr r0, [sp, #0x8] + d4e: ldr r0, [r0, #0xc] + d50: ldr r1, [pc, #0x54] <$d.37+0x18> + d52: str r1, [sp, #0x28] + d54: mov r2, r0 + d56: adds r2, #0xc + d58: str r2, [sp, #0x24] + d5a: str r1, [sp, #0x20] + d5c: mov r1, r0 + d5e: adds r1, #0x8 + d60: str r1, [sp, #0x1c] + d62: ldr r1, [pc, #0x48] <$d.37+0x1e> + d64: str r1, [sp, #0x18] + d66: str r0, [sp, #0x14] + d68: movs r0, #0x3 + d6a: str r0, [sp, #0x40] + d6c: add r1, sp, #0x14 + d6e: str r1, [sp, #0x3c] + d70: movs r1, #0x0 + d72: str r1, [sp, #0x38] + d74: str r1, [sp, #0x34] + d76: str r0, [sp, #0x30] + d78: ldr r0, [pc, #0x34] <$d.37+0x20> + d7a: str r0, [sp, #0x2c] + d7c: add r2, sp, #0x2c + d7e: mov r0, r4 + d80: mov r1, r5 + d82: bl 0xa94 @ imm = #-0x2f2 + d86: mov r1, r0 + d88: mov r0, r1 + d8a: add sp, #0x44 + d8c: pop {r4, r5, r6, r7, pc} + d8e: mov r8, r8 + +00000d90 <$d.37>: + d90: a0 15 00 00 .word 0x000015a0 + d94: 25 0c 00 00 .word 0x00000c25 + d98: b0 15 00 00 .word 0x000015b0 + d9c: 1e a9 f2 7e .word 0x7ef2a91e + da0: f4 bc c7 ec .word 0xecc7bcf4 + da4: 49 0c 00 00 .word 0x00000c49 + da8: 8d 04 00 00 .word 0x0000048d + dac: 75 0a 00 00 .word 0x00000a75 + db0: 78 15 00 00 .word 0x00001578 + +00000db4 : + db4: push {r7, lr} + db6: add r7, sp, #0x0 + db8: sub sp, #0x38 + dba: str r0, [sp] + dbc: bl 0x1140 <__cpsid> @ imm = #0x380 + dc0: ldr r0, [pc, #0xa4] <$d.39> + dc2: ldr r1, [r0, #0x1c] + dc4: rsbs r2, r1, #0 + dc6: adcs r2, r1 + dc8: ldr r1, [r0, #0x10] + dca: rsbs r3, r1, #0 + dcc: adcs r3, r1 + dce: orrs r3, r2 + dd0: bne 0xe66 @ imm = #0x92 + dd2: ldr r2, [r0, #0x2c] + dd4: movs r1, #0x2 + dd6: orrs r2, r1 + dd8: movs r3, #0x1 + dda: bics r2, r3 + ddc: dmb sy + de0: dmb sy + de4: str r2, [r0, #0x2c] + de6: dmb sy + dea: ldr r2, [pc, #0x80] <$d.39+0x6> + dec: str r2, [sp, #0x8] + dee: mov r2, sp + df0: str r2, [sp, #0x4] + df2: ldr r2, [r0, #0x24] + df4: dmb sy + df8: ldr r5, [r0, #0x28] + dfa: dmb sy + dfe: ldr r4, [r0, #0x20] + e00: cmp r5, r4 + e02: bhs 0xe06 @ imm = #0x0 + e04: movs r3, #0x0 + e06: cmp r2, r4 + e08: blo 0xe0c @ imm = #0x0 + e0a: movs r3, #0x1 + e0c: cmp r3, #0x1 + e0e: bne 0xe26 @ imm = #0x14 + e10: dmb sy + e14: movs r2, #0x0 + e16: str r2, [r0, #0x24] + e18: dmb sy + e1c: dmb sy + e20: str r2, [r0, #0x28] + e22: dmb sy + e26: add r4, sp, #0xc + e28: movs r3, #0x0 + e2a: strb r3, [r4, #0xc] + e2c: str r3, [sp, #0x14] + e2e: str r2, [sp, #0x10] + e30: adds r0, #0x18 + e32: str r0, [sp, #0xc] + e34: str r4, [sp, #0x1c] + e36: movs r0, #0x1 + e38: str r0, [sp, #0x34] + e3a: add r0, sp, #0x4 + e3c: str r0, [sp, #0x30] + e3e: str r3, [sp, #0x2c] + e40: str r3, [sp, #0x28] + e42: str r1, [sp, #0x24] + e44: ldr r0, [pc, #0x28] <$d.39+0x8> + e46: str r0, [sp, #0x20] + e48: add r0, sp, #0x1c + e4a: ldr r1, [pc, #0x28] <$d.39+0xe> + e4c: add r2, sp, #0x20 + e4e: bl 0xa94 @ imm = #-0x3be + e52: ldrb r0, [r4, #0xc] + e54: cmp r0, #0x1 + e56: bhi 0xe66 @ imm = #0xc + e58: ldr r0, [sp, #0x10] + e5a: ldr r1, [sp, #0xc] + e5c: dmb sy + e60: str r0, [r1, #0xc] + e62: dmb sy + e66: b 0xe66 @ imm = #-0x4 + +00000e68 <$d.39>: + e68: 28 04 00 10 .word 0x10000428 + e6c: a9 0c 00 00 .word 0x00000ca9 + e70: a0 16 00 00 .word 0x000016a0 + e74: b4 16 00 00 .word 0x000016b4 + +00000e78 : + e78: push {r4, r5, r6, r7, lr} + e7a: add r7, sp, #0xc + e7c: sub sp, #0x4 + e7e: mov r4, r1 + e80: mov r5, r0 + e82: bl 0x1148 <__primask_r> @ imm = #0x2c2 + e86: mov r6, r0 + e88: bl 0x1140 <__cpsid> @ imm = #0x2b4 + e8c: mov r0, r5 + e8e: blx r4 + e90: lsls r0, r6, #0x1f + e92: bne 0xe98 @ imm = #0x2 + e94: bl 0x1144 <__cpsie> @ imm = #0x2ac + e98: add sp, #0x4 + e9a: pop {r4, r5, r6, r7, pc} + +00000e9c : + e9c: push {r4, r5, r6, r7, lr} + e9e: add r7, sp, #0xc + ea0: sub sp, #0x34 + ea2: str r0, [sp, #0x8] + ea4: ldrb r4, [r0] + ea6: ldr r5, [pc, #0xc8] <$d.42+0x2> + ea8: ldr r0, [r5] + eaa: ldr r2, [r0, #0xc] + eac: dmb sy + eb0: ldr r1, [r0, #0x10] + eb2: dmb sy + eb6: ldr r3, [r0, #0x8] + eb8: cmp r2, r3 + eba: bhs 0xec0 @ imm = #0x2 + ebc: cmp r1, r3 + ebe: blo 0xed6 @ imm = #0x14 + ec0: dmb sy + ec4: movs r2, #0x0 + ec6: str r2, [r0, #0xc] + ec8: dmb sy + ecc: dmb sy + ed0: str r2, [r0, #0x10] + ed2: dmb sy + ed6: add r3, sp, #0x24 + ed8: movs r1, #0x0 + eda: strb r1, [r3, #0xc] + edc: str r1, [sp, #0x2c] + ede: str r2, [sp, #0x28] + ee0: str r0, [sp, #0x24] + ee2: ldrb r2, [r5, #0x4] + ee4: cmp r2, r4 + ee6: beq 0xf1a @ imm = #0x30 + ee8: movs r2, #0xf + eea: ands r2, r4 + eec: ldr r3, [pc, #0x84] <$d.42+0x4> + eee: ldrb r3, [r3, r2] + ef0: ldr r0, [r0, #0x14] + ef2: dmb sy + ef6: add r2, sp, #0xc + ef8: strb r3, [r2, #0x1] + efa: movs r3, #0xff + efc: strb r3, [r2] + efe: movs r3, #0x3 + f00: ands r3, r0 + f02: cmp r3, #0x3 + f04: mov r0, r1 + f06: beq 0xf0a @ imm = #0x0 + f08: mov r0, r3 + f0a: cmp r0, #0x1 + f0c: beq 0xf10 @ imm = #0x0 + f0e: mov r1, r0 + f10: add r0, sp, #0x24 + f12: movs r3, #0x2 + f14: bl 0xf78 @ imm = #0x60 + f18: strb r4, [r5, #0x4] + f1a: add r0, sp, #0x24 + f1c: add r5, sp, #0xc + f1e: mov r1, r5 + f20: str r4, [sp, #0x4] + f22: ldm r0!, {r2, r3, r4, r6} + f24: stm r1!, {r2, r3, r4, r6} + f26: ldr r0, [sp, #0x4] + f28: strb r0, [r5, #0x14] + f2a: ldr r0, [pc, #0x44] <$d.42+0x2> + f2c: adds r0, r0, #0x4 + f2e: str r0, [sp, #0x1c] + f30: ldr r0, [sp, #0x8] + f32: ldr r0, [r0, #0x4] + f34: ldm r0!, {r2, r3} + f36: ldr r0, [sp, #0xc] + f38: ldr r0, [r0, #0x14] + f3a: movs r1, #0x3 + f3c: ands r1, r0 + f3e: cmp r1, #0x3 + f40: bne 0xf44 @ imm = #0x0 + f42: movs r1, #0x0 + f44: dmb sy + f48: mov r0, r5 + f4a: bl 0xf78 @ imm = #0x2a + f4e: ldrb r0, [r5, #0xc] + f50: cmp r0, #0x2 + f52: bne 0xf5c @ imm = #0x6 + f54: ldr r0, [sp, #0x1c] + f56: ldr r1, [sp, #0x20] + f58: strb r1, [r0] + f5a: b 0xf6a @ imm = #0xc + f5c: ldr r0, [sp, #0x10] + f5e: ldr r1, [sp, #0xc] + f60: dmb sy + f64: str r0, [r1, #0xc] + f66: dmb sy + f6a: add sp, #0x34 + f6c: pop {r4, r5, r6, r7, pc} + f6e: mov r8, r8 + +00000f70 <$d.42>: + f70: 20 04 00 10 .word 0x10000420 + f74: 40 14 00 00 .word 0x00001440 + +00000f78 : + f78: push {r4, r5, r6, r7, lr} + f7a: add r7, sp, #0xc + f7c: sub sp, #0x14 + f7e: str r3, [sp, #0x10] + f80: str r2, [sp, #0x8] + f82: str r1, [sp, #0xc] + f84: mov r5, r0 + f86: ldrb r0, [r0, #0xc] + f88: cmp r0, #0x0 + f8a: bne 0x1052 @ imm = #0xc4 + f8c: ldr r0, [sp, #0x10] + f8e: cmp r0, #0x0 + f90: beq 0x1052 @ imm = #0xbe + f92: ldr r0, [r5] + f94: ldr r3, [r0, #0xc] + f96: dmb sy + f9a: ldr r1, [r0, #0x10] + f9c: dmb sy + fa0: ldr r2, [r0, #0x8] + fa2: cmp r3, r2 + fa4: bhs 0xfb4 @ imm = #0xc + fa6: cmp r1, r2 + fa8: bhs 0xfb4 @ imm = #0x8 + faa: ldr r6, [r5, #0x4] + fac: cmp r1, r6 + fae: bls 0xffa @ imm = #0x48 + fb0: mvns r0, r6 + fb2: b 0xfd2 @ imm = #0x1c + fb4: dmb sy + fb8: movs r1, #0x0 + fba: str r1, [r0, #0xc] + fbc: dmb sy + fc0: dmb sy + fc4: str r1, [r0, #0x10] + fc6: dmb sy + fca: ldr r6, [r5, #0x4] + fcc: mvns r0, r6 + fce: ldr r1, [r5] + fd0: ldr r1, [r1, #0x8] + fd2: adds r0, r1, r0 + fd4: ldr r4, [sp, #0x10] + fd6: cmp r0, r4 + fd8: bhi 0xfdc @ imm = #0x0 + fda: mov r4, r0 + fdc: cmp r4, #0x0 + fde: bne 0x1012 @ imm = #0x30 + fe0: ldr r0, [sp, #0xc] + fe2: cmp r0, #0x2 + fe4: bne 0x1006 @ imm = #0x1e + fe6: ldr r0, [r5] + fe8: dmb sy + fec: str r6, [r0, #0xc] + fee: dmb sy + ff2: ldrb r0, [r5, #0xc] + ff4: cmp r0, #0x0 + ff6: beq 0xf92 @ imm = #-0x68 + ff8: b 0x1052 @ imm = #0x56 + ffa: cmp r1, #0x0 + ffc: beq 0xfcc @ imm = #-0x34 + ffe: ldr r0, [r5] + 1000: ldr r0, [r0, #0x8] + 1002: subs r0, r0, r6 + 1004: b 0xfd4 @ imm = #-0x34 + 1006: ldr r0, [sp, #0xc] + 1008: cmp r0, #0x0 + 100a: beq 0x104e @ imm = #0x40 + 100c: movs r0, #0x1 + 100e: strb r0, [r5, #0xc] + 1010: movs r4, #0x0 + 1012: ldr r0, [r5] + 1014: str r0, [sp, #0x4] + 1016: ldr r0, [r0, #0x4] + 1018: adds r0, r0, r6 + 101a: ldr r1, [sp, #0x8] + 101c: mov r2, r4 + 101e: bl 0x1158 <__aeabi_memcpy> @ imm = #0x136 + 1022: adds r0, r6, r4 + 1024: str r0, [r5, #0x4] + 1026: ldr r1, [r5, #0x8] + 1028: adds r1, r1, r4 + 102a: str r1, [r5, #0x8] + 102c: ldr r1, [sp, #0x4] + 102e: ldr r1, [r1, #0x8] + 1030: cmp r0, r1 + 1032: blo 0x1038 @ imm = #0x2 + 1034: movs r0, #0x0 + 1036: str r0, [r5, #0x4] + 1038: ldrb r0, [r5, #0xc] + 103a: cmp r0, #0x0 + 103c: bne 0x1052 @ imm = #0x12 + 103e: ldr r0, [sp, #0x8] + 1040: adds r0, r0, r4 + 1042: str r0, [sp, #0x8] + 1044: ldr r0, [sp, #0x10] + 1046: subs r0, r0, r4 + 1048: str r0, [sp, #0x10] + 104a: bne 0xf92 @ imm = #-0xbc + 104c: b 0x1052 @ imm = #0x2 + 104e: movs r0, #0x2 + 1050: strb r0, [r5, #0xc] + 1052: add sp, #0x14 + 1054: pop {r4, r5, r6, r7, pc} + +00001056 ::h591a17950d8b161c>: + 1056: bx lr + +00001058 <<&mut W as core::fmt::Write>::write_str::h4c57be8250dbbbd5>: + 1058: push {r4, r5, r7, lr} + 105a: add r7, sp, #0x8 + 105c: mov r3, r2 + 105e: mov r2, r1 + 1060: ldr r0, [r0] + 1062: ldr r1, [r0] + 1064: ldr r1, [r1, #0x14] + 1066: movs r5, #0x3 + 1068: ands r5, r1 + 106a: movs r4, #0x0 + 106c: cmp r5, #0x3 + 106e: mov r1, r4 + 1070: beq 0x1074 <<&mut W as core::fmt::Write>::write_str::h4c57be8250dbbbd5+0x1c> @ imm = #0x0 + 1072: mov r1, r5 + 1074: dmb sy + 1078: bl 0xf78 @ imm = #-0x104 + 107c: mov r0, r4 + 107e: pop {r4, r5, r7, pc} + +00001080 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e>: + 1080: push {r4, r5, r7, lr} + 1082: add r7, sp, #0x8 + 1084: sub sp, #0x8 + 1086: ldr r0, [r0] + 1088: movs r4, #0x0 + 108a: str r4, [sp, #0x4] + 108c: cmp r1, #0x80 + 108e: bhs 0x1098 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x18> @ imm = #0x6 + 1090: add r2, sp, #0x4 + 1092: strb r1, [r2] + 1094: movs r3, #0x1 + 1096: b 0x10f8 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x78> @ imm = #0x5e + 1098: lsrs r2, r1, #0xb + 109a: bne 0x10b2 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x32> @ imm = #0x14 + 109c: movs r2, #0x3f + 109e: ands r2, r1 + 10a0: adds r2, #0x80 + 10a2: add r3, sp, #0x4 + 10a4: strb r2, [r3, #0x1] + 10a6: lsrs r1, r1, #0x6 + 10a8: movs r2, #0xc0 + 10aa: orrs r2, r1 + 10ac: strb r2, [r3] + 10ae: movs r3, #0x2 + 10b0: b 0x10f8 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x78> @ imm = #0x44 + 10b2: lsrs r2, r1, #0x10 + 10b4: bne 0x10d4 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x54> @ imm = #0x1c + 10b6: movs r2, #0x3f + 10b8: ands r2, r1 + 10ba: adds r2, #0x80 + 10bc: add r3, sp, #0x4 + 10be: strb r2, [r3, #0x2] + 10c0: lsrs r2, r1, #0xc + 10c2: movs r5, #0xe0 + 10c4: orrs r5, r2 + 10c6: strb r5, [r3] + 10c8: lsls r1, r1, #0x14 + 10ca: lsrs r1, r1, #0x1a + 10cc: adds r1, #0x80 + 10ce: strb r1, [r3, #0x1] + 10d0: movs r3, #0x3 + 10d2: b 0x10f8 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x78> @ imm = #0x22 + 10d4: movs r2, #0x3f + 10d6: ands r2, r1 + 10d8: adds r2, #0x80 + 10da: add r3, sp, #0x4 + 10dc: strb r2, [r3, #0x3] + 10de: lsrs r2, r1, #0x12 + 10e0: movs r5, #0xf0 + 10e2: orrs r5, r2 + 10e4: strb r5, [r3] + 10e6: lsls r2, r1, #0x14 + 10e8: lsrs r2, r2, #0x1a + 10ea: adds r2, #0x80 + 10ec: strb r2, [r3, #0x2] + 10ee: lsls r1, r1, #0xe + 10f0: lsrs r1, r1, #0x1a + 10f2: adds r1, #0x80 + 10f4: strb r1, [r3, #0x1] + 10f6: movs r3, #0x4 + 10f8: ldr r1, [r0] + 10fa: ldr r1, [r1, #0x14] + 10fc: movs r2, #0x3 + 10fe: ands r2, r1 + 1100: cmp r2, #0x3 + 1102: mov r1, r4 + 1104: beq 0x1108 <<&mut W as core::fmt::Write>::write_char::h90ce787962b13e7e+0x88> @ imm = #0x0 + 1106: mov r1, r2 + 1108: dmb sy + 110c: add r2, sp, #0x4 + 110e: bl 0xf78 @ imm = #-0x19a + 1112: mov r0, r4 + 1114: add sp, #0x8 + 1116: pop {r4, r5, r7, pc} + +00001118 <<&mut W as core::fmt::Write>::write_fmt::h4fea0ca5dfc7d23c>: + 1118: push {r4, r5, r7, lr} + 111a: add r7, sp, #0x8 + 111c: sub sp, #0x20 + 111e: ldr r0, [r0] + 1120: str r0, [sp, #0x4] + 1122: add r2, sp, #0x8 + 1124: mov r0, r2 + 1126: ldm r1!, {r3, r4, r5} + 1128: stm r0!, {r3, r4, r5} + 112a: ldm r1!, {r3, r4, r5} + 112c: stm r0!, {r3, r4, r5} + 112e: add r0, sp, #0x4 + 1130: ldr r1, [pc, #0x8] <$d.48> + 1132: bl 0xa94 @ imm = #-0x6a2 + 1136: add sp, #0x20 + 1138: pop {r4, r5, r7, pc} + 113a: mov r8, r8 + +0000113c <$d.48>: + 113c: b4 16 00 00 .word 0x000016b4 + +00001140 <__cpsid>: + 1140: cpsid i + 1142: bx lr + +00001144 <__cpsie>: + 1144: cpsie i + 1146: bx lr + +00001148 <__primask_r>: + 1148: mrs r0, primask + 114c: bx lr + +0000114e <__aeabi_uidiv>: + 114e: push {r7, lr} + 1150: add r7, sp, #0x0 + 1152: bl 0x128a @ imm = #0x134 + 1156: pop {r7, pc} + +00001158 <__aeabi_memcpy>: + 1158: push {r7, lr} + 115a: add r7, sp, #0x0 + 115c: bl 0x11ec @ imm = #0x8c + 1160: pop {r7, pc} + +00001162 <__aeabi_memset>: + 1162: push {r7, lr} + 1164: add r7, sp, #0x0 + 1166: mov r3, r1 + 1168: mov r1, r2 + 116a: mov r2, r3 + 116c: bl 0x1248 @ imm = #0xd8 + 1170: pop {r7, pc} + +00001172 <__aeabi_memset4>: + 1172: push {r4, r5, r6, r7, lr} + 1174: add r7, sp, #0xc + 1176: sub sp, #0x4 + 1178: mov r5, r2 + 117a: mov r4, r1 + 117c: mov r3, r0 + 117e: uxtb r2, r2 + 1180: cmp r1, #0x4 + 1182: blo 0x11b2 <__aeabi_memset4+0x40> @ imm = #0x2c + 1184: lsls r0, r5, #0x18 + 1186: lsls r1, r2, #0x10 + 1188: adds r0, r1, r0 + 118a: lsls r1, r2, #0x8 + 118c: adds r0, r0, r1 + 118e: adds r5, r0, r2 + 1190: subs r1, r4, #0x4 + 1192: lsrs r0, r1, #0x2 + 1194: adds r0, r0, #0x1 + 1196: movs r6, #0x3 + 1198: ands r6, r0 + 119a: str r1, [sp] + 119c: beq 0x11be <__aeabi_memset4+0x4c> @ imm = #0x1e + 119e: mov r0, r3 + 11a0: stm r0!, {r5} + 11a2: cmp r6, #0x1 + 11a4: beq 0x11c2 <__aeabi_memset4+0x50> @ imm = #0x1a + 11a6: str r5, [r3, #0x4] + 11a8: cmp r6, #0x2 + 11aa: bne 0x11b8 <__aeabi_memset4+0x46> @ imm = #0xa + 11ac: subs r4, #0x8 + 11ae: adds r3, #0x8 + 11b0: b 0x11be <__aeabi_memset4+0x4c> @ imm = #0xa + 11b2: mov r0, r3 + 11b4: mov r1, r4 + 11b6: b 0x11d8 <__aeabi_memset4+0x66> @ imm = #0x1e + 11b8: str r5, [r3, #0x8] + 11ba: subs r4, #0xc + 11bc: adds r3, #0xc + 11be: mov r1, r4 + 11c0: mov r0, r3 + 11c2: ldr r3, [sp] + 11c4: cmp r3, #0xc + 11c6: blo 0x11d8 <__aeabi_memset4+0x66> @ imm = #0xe + 11c8: str r5, [r0] + 11ca: str r5, [r0, #0x4] + 11cc: str r5, [r0, #0x8] + 11ce: str r5, [r0, #0xc] + 11d0: adds r0, #0x10 + 11d2: subs r1, #0x10 + 11d4: cmp r1, #0x3 + 11d6: bhi 0x11c8 <__aeabi_memset4+0x56> @ imm = #-0x12 + 11d8: bl 0x1162 <__aeabi_memset> @ imm = #-0x7a + 11dc: add sp, #0x4 + 11de: pop {r4, r5, r6, r7, pc} + +000011e0 <__aeabi_memclr8>: + 11e0: push {r7, lr} + 11e2: add r7, sp, #0x0 + 11e4: movs r2, #0x0 + 11e6: bl 0x1172 <__aeabi_memset4> @ imm = #-0x78 + 11ea: pop {r7, pc} + +000011ec : + 11ec: push {r4, r5, r6, r7, lr} + 11ee: add r7, sp, #0xc + 11f0: sub sp, #0x4 + 11f2: cmp r2, #0x0 + 11f4: beq 0x1244 @ imm = #0x4c + 11f6: movs r4, #0x3 + 11f8: mov r3, r2 + 11fa: ands r3, r4 + 11fc: subs r5, r2, #0x1 + 11fe: cmp r5, #0x3 + 1200: str r3, [sp] + 1202: bhs 0x1208 @ imm = #0x2 + 1204: movs r4, #0x0 + 1206: b 0x1226 @ imm = #0x1c + 1208: bics r2, r4 + 120a: movs r4, #0x0 + 120c: ldrb r5, [r1, r4] + 120e: strb r5, [r0, r4] + 1210: adds r5, r0, r4 + 1212: adds r6, r1, r4 + 1214: ldrb r3, [r6, #0x1] + 1216: strb r3, [r5, #0x1] + 1218: ldrb r3, [r6, #0x2] + 121a: strb r3, [r5, #0x2] + 121c: ldrb r3, [r6, #0x3] + 121e: strb r3, [r5, #0x3] + 1220: adds r4, r4, #0x4 + 1222: cmp r2, r4 + 1224: bne 0x120c @ imm = #-0x1c + 1226: ldr r5, [sp] + 1228: cmp r5, #0x0 + 122a: beq 0x1244 @ imm = #0x16 + 122c: ldrb r2, [r1, r4] + 122e: strb r2, [r0, r4] + 1230: cmp r5, #0x1 + 1232: beq 0x1244 @ imm = #0xe + 1234: adds r2, r4, #0x1 + 1236: ldrb r3, [r1, r2] + 1238: strb r3, [r0, r2] + 123a: cmp r5, #0x2 + 123c: beq 0x1244 @ imm = #0x4 + 123e: adds r2, r4, #0x2 + 1240: ldrb r1, [r1, r2] + 1242: strb r1, [r0, r2] + 1244: add sp, #0x4 + 1246: pop {r4, r5, r6, r7, pc} + +00001248 : + 1248: push {r4, r5, r7, lr} + 124a: add r7, sp, #0x8 + 124c: cmp r2, #0x0 + 124e: beq 0x1288 @ imm = #0x36 + 1250: movs r4, #0x3 + 1252: mov r3, r2 + 1254: ands r3, r4 + 1256: subs r5, r2, #0x1 + 1258: cmp r5, #0x3 + 125a: bhs 0x1260 @ imm = #0x2 + 125c: movs r4, #0x0 + 125e: b 0x1274 @ imm = #0x12 + 1260: bics r2, r4 + 1262: movs r4, #0x0 + 1264: strb r1, [r0, r4] + 1266: adds r5, r0, r4 + 1268: strb r1, [r5, #0x3] + 126a: strb r1, [r5, #0x2] + 126c: strb r1, [r5, #0x1] + 126e: adds r4, r4, #0x4 + 1270: cmp r2, r4 + 1272: bne 0x1264 @ imm = #-0x12 + 1274: cmp r3, #0x0 + 1276: beq 0x1288 @ imm = #0xe + 1278: strb r1, [r0, r4] + 127a: cmp r3, #0x1 + 127c: beq 0x1288 @ imm = #0x8 + 127e: adds r2, r4, r0 + 1280: strb r1, [r2, #0x1] + 1282: cmp r3, #0x2 + 1284: beq 0x1288 @ imm = #0x0 + 1286: strb r1, [r2, #0x2] + 1288: pop {r4, r5, r7, pc} + +0000128a : + 128a: push {r4, r5, r6, r7, lr} + 128c: add r7, sp, #0xc + 128e: sub sp, #0xc + 1290: mov r2, r0 + 1292: cmp r0, r1 + 1294: bhs 0x129e @ imm = #0x6 + 1296: movs r0, #0x0 + 1298: mov r1, r2 + 129a: add sp, #0xc + 129c: pop {r4, r5, r6, r7, pc} + 129e: lsrs r5, r2, #0x10 + 12a0: cmp r1, r5 + 12a2: mov r0, r2 + 12a4: bhi 0x12c0 @ imm = #0x18 + 12a6: mov r0, r5 + 12a8: lsrs r6, r0, #0x8 + 12aa: cmp r1, r6 + 12ac: bls 0x12c6 @ imm = #0x16 + 12ae: lsrs r3, r0, #0x4 + 12b0: cmp r1, r3 + 12b2: bhi 0x12ce @ imm = #0x18 + 12b4: mov r0, r3 + 12b6: str r3, [sp, #0x4] + 12b8: lsrs r3, r0, #0x2 + 12ba: cmp r1, r3 + 12bc: bls 0x12d6 @ imm = #0x16 + 12be: b 0x12d8 @ imm = #0x16 + 12c0: lsrs r6, r0, #0x8 + 12c2: cmp r1, r6 + 12c4: bhi 0x12ae @ imm = #-0x1a + 12c6: mov r0, r6 + 12c8: lsrs r3, r0, #0x4 + 12ca: cmp r1, r3 + 12cc: bls 0x12b4 @ imm = #-0x1c + 12ce: str r3, [sp, #0x4] + 12d0: lsrs r3, r0, #0x2 + 12d2: cmp r1, r3 + 12d4: bhi 0x12d8 @ imm = #0x0 + 12d6: mov r0, r3 + 12d8: str r3, [sp, #0x8] + 12da: lsrs r3, r0, #0x1 + 12dc: movs r4, #0x1 + 12de: movs r0, #0x0 + 12e0: cmp r1, r3 + 12e2: mov r3, r4 + 12e4: bls 0x12e8 @ imm = #0x0 + 12e6: mov r3, r0 + 12e8: cmp r1, r5 + 12ea: mov r5, r4 + 12ec: bls 0x12f0 @ imm = #0x0 + 12ee: mov r5, r0 + 12f0: str r3, [sp] + 12f2: lsls r5, r5, #0x4 + 12f4: cmp r1, r6 + 12f6: mov r6, r4 + 12f8: bls 0x12fc @ imm = #0x0 + 12fa: mov r6, r0 + 12fc: lsls r3, r6, #0x3 + 12fe: adds r5, r3, r5 + 1300: ldr r3, [sp, #0x4] + 1302: cmp r1, r3 + 1304: mov r3, r4 + 1306: bls 0x130a @ imm = #0x0 + 1308: mov r3, r0 + 130a: lsls r3, r3, #0x2 + 130c: adds r3, r5, r3 + 130e: ldr r5, [sp, #0x8] + 1310: cmp r1, r5 + 1312: mov r5, r4 + 1314: bls 0x1318 @ imm = #0x0 + 1316: mov r5, r0 + 1318: lsls r0, r5, #0x1 + 131a: adds r0, r3, r0 + 131c: ldr r3, [sp] + 131e: adds r3, r0, r3 + 1320: lsls r4, r3 + 1322: mov r5, r1 + 1324: lsls r5, r3 + 1326: subs r6, r2, r5 + 1328: cmp r6, r1 + 132a: bhs 0x1336 @ imm = #0x8 + 132c: mov r2, r6 + 132e: mov r0, r4 + 1330: mov r1, r2 + 1332: add sp, #0xc + 1334: pop {r4, r5, r6, r7, pc} + 1336: cmp r5, #0x0 + 1338: bmi 0x1342 @ imm = #0x6 + 133a: mov r1, r4 + 133c: mov r0, r4 + 133e: mov r2, r6 + 1340: b 0x136e @ imm = #0x2a + 1342: lsrs r5, r5, #0x1 + 1344: subs r2, r6, r5 + 1346: subs r3, r3, #0x1 + 1348: movs r0, #0x1f + 134a: str r3, [sp, #0x4] + 134c: ands r0, r3 + 134e: str r0, [sp, #0x8] + 1350: movs r0, #0x1 + 1352: ldr r3, [sp, #0x8] + 1354: lsls r0, r3 + 1356: cmp r2, #0x0 + 1358: str r0, [sp, #0x8] + 135a: bge 0x135e @ imm = #0x0 + 135c: movs r0, #0x0 + 135e: cmp r2, #0x0 + 1360: bge 0x1364 @ imm = #0x0 + 1362: mov r2, r6 + 1364: orrs r0, r4 + 1366: cmp r2, r1 + 1368: ldr r1, [sp, #0x8] + 136a: ldr r3, [sp, #0x4] + 136c: blo 0x1298 @ imm = #-0xd8 + 136e: subs r1, r1, #0x1 + 1370: cmp r3, #0x0 + 1372: beq 0x13a0 @ imm = #0x2a + 1374: str r1, [sp, #0x4] + 1376: subs r4, r5, #0x1 + 1378: movs r6, #0x3 + 137a: ands r6, r3 + 137c: subs r1, r3, #0x1 + 137e: str r1, [sp, #0x8] + 1380: cmp r6, #0x0 + 1382: beq 0x13a4 @ imm = #0x1e + 1384: lsls r2, r2, #0x1 + 1386: subs r2, r2, r4 + 1388: asrs r5, r2, #0x1f + 138a: ands r5, r4 + 138c: adds r5, r5, r2 + 138e: cmp r6, #0x1 + 1390: bne 0x13b0 @ imm = #0x1c + 1392: mov r2, r5 + 1394: ldr r6, [sp, #0x8] + 1396: ldr r1, [sp, #0x8] + 1398: cmp r1, #0x3 + 139a: ldr r1, [sp, #0x4] + 139c: blo 0x1406 @ imm = #0x66 + 139e: b 0x13d8 @ imm = #0x36 + 13a0: mov r5, r2 + 13a2: b 0x1406 @ imm = #0x60 + 13a4: mov r6, r3 + 13a6: ldr r1, [sp, #0x8] + 13a8: cmp r1, #0x3 + 13aa: ldr r1, [sp, #0x4] + 13ac: blo 0x1406 @ imm = #0x56 + 13ae: b 0x13d8 @ imm = #0x26 + 13b0: lsls r2, r5, #0x1 + 13b2: subs r2, r2, r4 + 13b4: asrs r5, r2, #0x1f + 13b6: ands r5, r4 + 13b8: adds r5, r5, r2 + 13ba: cmp r6, #0x2 + 13bc: bne 0x13c2 @ imm = #0x2 + 13be: subs r6, r3, #0x2 + 13c0: b 0x13ce @ imm = #0xa + 13c2: lsls r2, r5, #0x1 + 13c4: subs r2, r2, r4 + 13c6: asrs r5, r2, #0x1f + 13c8: ands r5, r4 + 13ca: adds r5, r5, r2 + 13cc: subs r6, r3, #0x3 + 13ce: mov r2, r5 + 13d0: ldr r1, [sp, #0x8] + 13d2: cmp r1, #0x3 + 13d4: ldr r1, [sp, #0x4] + 13d6: blo 0x1406 @ imm = #0x2c + 13d8: mov r5, r2 + 13da: lsls r2, r5, #0x1 + 13dc: subs r2, r2, r4 + 13de: asrs r5, r2, #0x1f + 13e0: ands r5, r4 + 13e2: adds r2, r5, r2 + 13e4: lsls r2, r2, #0x1 + 13e6: subs r2, r2, r4 + 13e8: asrs r5, r2, #0x1f + 13ea: ands r5, r4 + 13ec: adds r2, r5, r2 + 13ee: lsls r2, r2, #0x1 + 13f0: subs r2, r2, r4 + 13f2: asrs r5, r2, #0x1f + 13f4: ands r5, r4 + 13f6: adds r2, r5, r2 + 13f8: lsls r2, r2, #0x1 + 13fa: subs r2, r2, r4 + 13fc: asrs r5, r2, #0x1f + 13fe: ands r5, r4 + 1400: adds r5, r5, r2 + 1402: subs r6, r6, #0x4 + 1404: bne 0x13da @ imm = #-0x2e + 1406: movs r2, #0x1f + 1408: ands r3, r2 + 140a: mov r2, r5 + 140c: lsrs r2, r3 + 140e: ands r1, r5 + 1410: orrs r0, r1 + 1412: mov r1, r2 + 1414: add sp, #0xc + 1416: pop {r4, r5, r6, r7, pc} + +00001418 : + 1418: mov r0, lr + 141a: movs r1, #0x4 + 141c: tst r0, r1 + 141e: bne 0x1426 @ imm = #0x4 + 1420: mrs r0, msp + 1424: b 0x142c @ imm = #0x4 + 1426: mrs r0, psp + 142a: b 0x142c @ imm = #-0x2 + +0000142c : + 142c: b 0x142c @ imm = #-0x4 + 142e: bmi 0x13da @ imm = #-0x58 diff --git a/vorago-reb1-rs b/vorago-reb1-rs index 623099b..3b0043e 160000 --- a/vorago-reb1-rs +++ b/vorago-reb1-rs @@ -1 +1 @@ -Subproject commit 623099b118e31fe087e43104ba3614ed55101816 +Subproject commit 3b0043ef66e67f17ffc1188f115c08ad47fa24fe