Advertisement
Guest User

non-masked-index_aa

a guest
Dec 29th, 2024
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 397.63 KB | None | 0 0
  1.  
  2. Disassembly of section .text:
  3.  
  4. 080000b8 <__udivsi3>:
  5. 80000b8: 2200 movs r2, #0
  6. 80000ba: 0843 lsrs r3, r0, #1
  7. 80000bc: 428b cmp r3, r1
  8. 80000be: d374 bcc.n 80001aa <__udivsi3+0xf2>
  9. 80000c0: 0903 lsrs r3, r0, #4
  10. 80000c2: 428b cmp r3, r1
  11. 80000c4: d35f bcc.n 8000186 <__udivsi3+0xce>
  12. 80000c6: 0a03 lsrs r3, r0, #8
  13. 80000c8: 428b cmp r3, r1
  14. 80000ca: d344 bcc.n 8000156 <__udivsi3+0x9e>
  15. 80000cc: 0b03 lsrs r3, r0, #12
  16. 80000ce: 428b cmp r3, r1
  17. 80000d0: d328 bcc.n 8000124 <__udivsi3+0x6c>
  18. 80000d2: 0c03 lsrs r3, r0, #16
  19. 80000d4: 428b cmp r3, r1
  20. 80000d6: d30d bcc.n 80000f4 <__udivsi3+0x3c>
  21. 80000d8: 22ff movs r2, #255 @ 0xff
  22. 80000da: 0209 lsls r1, r1, #8
  23. 80000dc: ba12 rev r2, r2
  24. 80000de: 0c03 lsrs r3, r0, #16
  25. 80000e0: 428b cmp r3, r1
  26. 80000e2: d302 bcc.n 80000ea <__udivsi3+0x32>
  27. 80000e4: 1212 asrs r2, r2, #8
  28. 80000e6: 0209 lsls r1, r1, #8
  29. 80000e8: d065 beq.n 80001b6 <__udivsi3+0xfe>
  30. 80000ea: 0b03 lsrs r3, r0, #12
  31. 80000ec: 428b cmp r3, r1
  32. 80000ee: d319 bcc.n 8000124 <__udivsi3+0x6c>
  33. 80000f0: e000 b.n 80000f4 <__udivsi3+0x3c>
  34. 80000f2: 0a09 lsrs r1, r1, #8
  35. 80000f4: 0bc3 lsrs r3, r0, #15
  36. 80000f6: 428b cmp r3, r1
  37. 80000f8: d301 bcc.n 80000fe <__udivsi3+0x46>
  38. 80000fa: 03cb lsls r3, r1, #15
  39. 80000fc: 1ac0 subs r0, r0, r3
  40. 80000fe: 4152 adcs r2, r2
  41. 8000100: 0b83 lsrs r3, r0, #14
  42. 8000102: 428b cmp r3, r1
  43. 8000104: d301 bcc.n 800010a <__udivsi3+0x52>
  44. 8000106: 038b lsls r3, r1, #14
  45. 8000108: 1ac0 subs r0, r0, r3
  46. 800010a: 4152 adcs r2, r2
  47. 800010c: 0b43 lsrs r3, r0, #13
  48. 800010e: 428b cmp r3, r1
  49. 8000110: d301 bcc.n 8000116 <__udivsi3+0x5e>
  50. 8000112: 034b lsls r3, r1, #13
  51. 8000114: 1ac0 subs r0, r0, r3
  52. 8000116: 4152 adcs r2, r2
  53. 8000118: 0b03 lsrs r3, r0, #12
  54. 800011a: 428b cmp r3, r1
  55. 800011c: d301 bcc.n 8000122 <__udivsi3+0x6a>
  56. 800011e: 030b lsls r3, r1, #12
  57. 8000120: 1ac0 subs r0, r0, r3
  58. 8000122: 4152 adcs r2, r2
  59. 8000124: 0ac3 lsrs r3, r0, #11
  60. 8000126: 428b cmp r3, r1
  61. 8000128: d301 bcc.n 800012e <__udivsi3+0x76>
  62. 800012a: 02cb lsls r3, r1, #11
  63. 800012c: 1ac0 subs r0, r0, r3
  64. 800012e: 4152 adcs r2, r2
  65. 8000130: 0a83 lsrs r3, r0, #10
  66. 8000132: 428b cmp r3, r1
  67. 8000134: d301 bcc.n 800013a <__udivsi3+0x82>
  68. 8000136: 028b lsls r3, r1, #10
  69. 8000138: 1ac0 subs r0, r0, r3
  70. 800013a: 4152 adcs r2, r2
  71. 800013c: 0a43 lsrs r3, r0, #9
  72. 800013e: 428b cmp r3, r1
  73. 8000140: d301 bcc.n 8000146 <__udivsi3+0x8e>
  74. 8000142: 024b lsls r3, r1, #9
  75. 8000144: 1ac0 subs r0, r0, r3
  76. 8000146: 4152 adcs r2, r2
  77. 8000148: 0a03 lsrs r3, r0, #8
  78. 800014a: 428b cmp r3, r1
  79. 800014c: d301 bcc.n 8000152 <__udivsi3+0x9a>
  80. 800014e: 020b lsls r3, r1, #8
  81. 8000150: 1ac0 subs r0, r0, r3
  82. 8000152: 4152 adcs r2, r2
  83. 8000154: d2cd bcs.n 80000f2 <__udivsi3+0x3a>
  84. 8000156: 09c3 lsrs r3, r0, #7
  85. 8000158: 428b cmp r3, r1
  86. 800015a: d301 bcc.n 8000160 <__udivsi3+0xa8>
  87. 800015c: 01cb lsls r3, r1, #7
  88. 800015e: 1ac0 subs r0, r0, r3
  89. 8000160: 4152 adcs r2, r2
  90. 8000162: 0983 lsrs r3, r0, #6
  91. 8000164: 428b cmp r3, r1
  92. 8000166: d301 bcc.n 800016c <__udivsi3+0xb4>
  93. 8000168: 018b lsls r3, r1, #6
  94. 800016a: 1ac0 subs r0, r0, r3
  95. 800016c: 4152 adcs r2, r2
  96. 800016e: 0943 lsrs r3, r0, #5
  97. 8000170: 428b cmp r3, r1
  98. 8000172: d301 bcc.n 8000178 <__udivsi3+0xc0>
  99. 8000174: 014b lsls r3, r1, #5
  100. 8000176: 1ac0 subs r0, r0, r3
  101. 8000178: 4152 adcs r2, r2
  102. 800017a: 0903 lsrs r3, r0, #4
  103. 800017c: 428b cmp r3, r1
  104. 800017e: d301 bcc.n 8000184 <__udivsi3+0xcc>
  105. 8000180: 010b lsls r3, r1, #4
  106. 8000182: 1ac0 subs r0, r0, r3
  107. 8000184: 4152 adcs r2, r2
  108. 8000186: 08c3 lsrs r3, r0, #3
  109. 8000188: 428b cmp r3, r1
  110. 800018a: d301 bcc.n 8000190 <__udivsi3+0xd8>
  111. 800018c: 00cb lsls r3, r1, #3
  112. 800018e: 1ac0 subs r0, r0, r3
  113. 8000190: 4152 adcs r2, r2
  114. 8000192: 0883 lsrs r3, r0, #2
  115. 8000194: 428b cmp r3, r1
  116. 8000196: d301 bcc.n 800019c <__udivsi3+0xe4>
  117. 8000198: 008b lsls r3, r1, #2
  118. 800019a: 1ac0 subs r0, r0, r3
  119. 800019c: 4152 adcs r2, r2
  120. 800019e: 0843 lsrs r3, r0, #1
  121. 80001a0: 428b cmp r3, r1
  122. 80001a2: d301 bcc.n 80001a8 <__udivsi3+0xf0>
  123. 80001a4: 004b lsls r3, r1, #1
  124. 80001a6: 1ac0 subs r0, r0, r3
  125. 80001a8: 4152 adcs r2, r2
  126. 80001aa: 1a41 subs r1, r0, r1
  127. 80001ac: d200 bcs.n 80001b0 <__udivsi3+0xf8>
  128. 80001ae: 4601 mov r1, r0
  129. 80001b0: 4152 adcs r2, r2
  130. 80001b2: 4610 mov r0, r2
  131. 80001b4: 4770 bx lr
  132. 80001b6: e7ff b.n 80001b8 <__udivsi3+0x100>
  133. 80001b8: b501 push {r0, lr}
  134. 80001ba: 2000 movs r0, #0
  135. 80001bc: f000 f806 bl 80001cc <__aeabi_idiv0>
  136. 80001c0: bd02 pop {r1, pc}
  137. 80001c2: 46c0 nop @ (mov r8, r8)
  138.  
  139. 080001c4 <__aeabi_uidivmod>:
  140. 80001c4: 2900 cmp r1, #0
  141. 80001c6: d0f7 beq.n 80001b8 <__udivsi3+0x100>
  142. 80001c8: e776 b.n 80000b8 <__udivsi3>
  143. 80001ca: 4770 bx lr
  144.  
  145. 080001cc <__aeabi_idiv0>:
  146. 80001cc: 4770 bx lr
  147. 80001ce: 46c0 nop @ (mov r8, r8)
  148.  
  149. 080001d0 <__ctzsi2>:
  150. 80001d0: 4241 negs r1, r0
  151. 80001d2: 4008 ands r0, r1
  152. 80001d4: 211c movs r1, #28
  153. 80001d6: 2301 movs r3, #1
  154. 80001d8: 041b lsls r3, r3, #16
  155. 80001da: 4298 cmp r0, r3
  156. 80001dc: d301 bcc.n 80001e2 <__ctzsi2+0x12>
  157. 80001de: 0c00 lsrs r0, r0, #16
  158. 80001e0: 3910 subs r1, #16
  159. 80001e2: 0a1b lsrs r3, r3, #8
  160. 80001e4: 4298 cmp r0, r3
  161. 80001e6: d301 bcc.n 80001ec <__ctzsi2+0x1c>
  162. 80001e8: 0a00 lsrs r0, r0, #8
  163. 80001ea: 3908 subs r1, #8
  164. 80001ec: 091b lsrs r3, r3, #4
  165. 80001ee: 4298 cmp r0, r3
  166. 80001f0: d301 bcc.n 80001f6 <__ctzsi2+0x26>
  167. 80001f2: 0900 lsrs r0, r0, #4
  168. 80001f4: 3904 subs r1, #4
  169. 80001f6: a202 add r2, pc, #8 @ (adr r2, 8000200 <__ctzsi2+0x30>)
  170. 80001f8: 5c10 ldrb r0, [r2, r0]
  171. 80001fa: 1a40 subs r0, r0, r1
  172. 80001fc: 4770 bx lr
  173. 80001fe: 46c0 nop @ (mov r8, r8)
  174. 8000200: 1d1d1c1b .word 0x1d1d1c1b
  175. 8000204: 1e1e1e1e .word 0x1e1e1e1e
  176. 8000208: 1f1f1f1f .word 0x1f1f1f1f
  177. 800020c: 1f1f1f1f .word 0x1f1f1f1f
  178.  
  179. 08000210 <__divsi3>:
  180. 8000210: 4603 mov r3, r0
  181. 8000212: 430b orrs r3, r1
  182. 8000214: d47f bmi.n 8000316 <__divsi3+0x106>
  183. 8000216: 2200 movs r2, #0
  184. 8000218: 0843 lsrs r3, r0, #1
  185. 800021a: 428b cmp r3, r1
  186. 800021c: d374 bcc.n 8000308 <__divsi3+0xf8>
  187. 800021e: 0903 lsrs r3, r0, #4
  188. 8000220: 428b cmp r3, r1
  189. 8000222: d35f bcc.n 80002e4 <__divsi3+0xd4>
  190. 8000224: 0a03 lsrs r3, r0, #8
  191. 8000226: 428b cmp r3, r1
  192. 8000228: d344 bcc.n 80002b4 <__divsi3+0xa4>
  193. 800022a: 0b03 lsrs r3, r0, #12
  194. 800022c: 428b cmp r3, r1
  195. 800022e: d328 bcc.n 8000282 <__divsi3+0x72>
  196. 8000230: 0c03 lsrs r3, r0, #16
  197. 8000232: 428b cmp r3, r1
  198. 8000234: d30d bcc.n 8000252 <__divsi3+0x42>
  199. 8000236: 22ff movs r2, #255 @ 0xff
  200. 8000238: 0209 lsls r1, r1, #8
  201. 800023a: ba12 rev r2, r2
  202. 800023c: 0c03 lsrs r3, r0, #16
  203. 800023e: 428b cmp r3, r1
  204. 8000240: d302 bcc.n 8000248 <__divsi3+0x38>
  205. 8000242: 1212 asrs r2, r2, #8
  206. 8000244: 0209 lsls r1, r1, #8
  207. 8000246: d065 beq.n 8000314 <__divsi3+0x104>
  208. 8000248: 0b03 lsrs r3, r0, #12
  209. 800024a: 428b cmp r3, r1
  210. 800024c: d319 bcc.n 8000282 <__divsi3+0x72>
  211. 800024e: e000 b.n 8000252 <__divsi3+0x42>
  212. 8000250: 0a09 lsrs r1, r1, #8
  213. 8000252: 0bc3 lsrs r3, r0, #15
  214. 8000254: 428b cmp r3, r1
  215. 8000256: d301 bcc.n 800025c <__divsi3+0x4c>
  216. 8000258: 03cb lsls r3, r1, #15
  217. 800025a: 1ac0 subs r0, r0, r3
  218. 800025c: 4152 adcs r2, r2
  219. 800025e: 0b83 lsrs r3, r0, #14
  220. 8000260: 428b cmp r3, r1
  221. 8000262: d301 bcc.n 8000268 <__divsi3+0x58>
  222. 8000264: 038b lsls r3, r1, #14
  223. 8000266: 1ac0 subs r0, r0, r3
  224. 8000268: 4152 adcs r2, r2
  225. 800026a: 0b43 lsrs r3, r0, #13
  226. 800026c: 428b cmp r3, r1
  227. 800026e: d301 bcc.n 8000274 <__divsi3+0x64>
  228. 8000270: 034b lsls r3, r1, #13
  229. 8000272: 1ac0 subs r0, r0, r3
  230. 8000274: 4152 adcs r2, r2
  231. 8000276: 0b03 lsrs r3, r0, #12
  232. 8000278: 428b cmp r3, r1
  233. 800027a: d301 bcc.n 8000280 <__divsi3+0x70>
  234. 800027c: 030b lsls r3, r1, #12
  235. 800027e: 1ac0 subs r0, r0, r3
  236. 8000280: 4152 adcs r2, r2
  237. 8000282: 0ac3 lsrs r3, r0, #11
  238. 8000284: 428b cmp r3, r1
  239. 8000286: d301 bcc.n 800028c <__divsi3+0x7c>
  240. 8000288: 02cb lsls r3, r1, #11
  241. 800028a: 1ac0 subs r0, r0, r3
  242. 800028c: 4152 adcs r2, r2
  243. 800028e: 0a83 lsrs r3, r0, #10
  244. 8000290: 428b cmp r3, r1
  245. 8000292: d301 bcc.n 8000298 <__divsi3+0x88>
  246. 8000294: 028b lsls r3, r1, #10
  247. 8000296: 1ac0 subs r0, r0, r3
  248. 8000298: 4152 adcs r2, r2
  249. 800029a: 0a43 lsrs r3, r0, #9
  250. 800029c: 428b cmp r3, r1
  251. 800029e: d301 bcc.n 80002a4 <__divsi3+0x94>
  252. 80002a0: 024b lsls r3, r1, #9
  253. 80002a2: 1ac0 subs r0, r0, r3
  254. 80002a4: 4152 adcs r2, r2
  255. 80002a6: 0a03 lsrs r3, r0, #8
  256. 80002a8: 428b cmp r3, r1
  257. 80002aa: d301 bcc.n 80002b0 <__divsi3+0xa0>
  258. 80002ac: 020b lsls r3, r1, #8
  259. 80002ae: 1ac0 subs r0, r0, r3
  260. 80002b0: 4152 adcs r2, r2
  261. 80002b2: d2cd bcs.n 8000250 <__divsi3+0x40>
  262. 80002b4: 09c3 lsrs r3, r0, #7
  263. 80002b6: 428b cmp r3, r1
  264. 80002b8: d301 bcc.n 80002be <__divsi3+0xae>
  265. 80002ba: 01cb lsls r3, r1, #7
  266. 80002bc: 1ac0 subs r0, r0, r3
  267. 80002be: 4152 adcs r2, r2
  268. 80002c0: 0983 lsrs r3, r0, #6
  269. 80002c2: 428b cmp r3, r1
  270. 80002c4: d301 bcc.n 80002ca <__divsi3+0xba>
  271. 80002c6: 018b lsls r3, r1, #6
  272. 80002c8: 1ac0 subs r0, r0, r3
  273. 80002ca: 4152 adcs r2, r2
  274. 80002cc: 0943 lsrs r3, r0, #5
  275. 80002ce: 428b cmp r3, r1
  276. 80002d0: d301 bcc.n 80002d6 <__divsi3+0xc6>
  277. 80002d2: 014b lsls r3, r1, #5
  278. 80002d4: 1ac0 subs r0, r0, r3
  279. 80002d6: 4152 adcs r2, r2
  280. 80002d8: 0903 lsrs r3, r0, #4
  281. 80002da: 428b cmp r3, r1
  282. 80002dc: d301 bcc.n 80002e2 <__divsi3+0xd2>
  283. 80002de: 010b lsls r3, r1, #4
  284. 80002e0: 1ac0 subs r0, r0, r3
  285. 80002e2: 4152 adcs r2, r2
  286. 80002e4: 08c3 lsrs r3, r0, #3
  287. 80002e6: 428b cmp r3, r1
  288. 80002e8: d301 bcc.n 80002ee <__divsi3+0xde>
  289. 80002ea: 00cb lsls r3, r1, #3
  290. 80002ec: 1ac0 subs r0, r0, r3
  291. 80002ee: 4152 adcs r2, r2
  292. 80002f0: 0883 lsrs r3, r0, #2
  293. 80002f2: 428b cmp r3, r1
  294. 80002f4: d301 bcc.n 80002fa <__divsi3+0xea>
  295. 80002f6: 008b lsls r3, r1, #2
  296. 80002f8: 1ac0 subs r0, r0, r3
  297. 80002fa: 4152 adcs r2, r2
  298. 80002fc: 0843 lsrs r3, r0, #1
  299. 80002fe: 428b cmp r3, r1
  300. 8000300: d301 bcc.n 8000306 <__divsi3+0xf6>
  301. 8000302: 004b lsls r3, r1, #1
  302. 8000304: 1ac0 subs r0, r0, r3
  303. 8000306: 4152 adcs r2, r2
  304. 8000308: 1a41 subs r1, r0, r1
  305. 800030a: d200 bcs.n 800030e <__divsi3+0xfe>
  306. 800030c: 4601 mov r1, r0
  307. 800030e: 4152 adcs r2, r2
  308. 8000310: 4610 mov r0, r2
  309. 8000312: 4770 bx lr
  310. 8000314: e05d b.n 80003d2 <__divsi3+0x1c2>
  311. 8000316: 0fca lsrs r2, r1, #31
  312. 8000318: d000 beq.n 800031c <__divsi3+0x10c>
  313. 800031a: 4249 negs r1, r1
  314. 800031c: 1003 asrs r3, r0, #32
  315. 800031e: d300 bcc.n 8000322 <__divsi3+0x112>
  316. 8000320: 4240 negs r0, r0
  317. 8000322: 4053 eors r3, r2
  318. 8000324: 2200 movs r2, #0
  319. 8000326: 469c mov ip, r3
  320. 8000328: 0903 lsrs r3, r0, #4
  321. 800032a: 428b cmp r3, r1
  322. 800032c: d32d bcc.n 800038a <__divsi3+0x17a>
  323. 800032e: 0a03 lsrs r3, r0, #8
  324. 8000330: 428b cmp r3, r1
  325. 8000332: d312 bcc.n 800035a <__divsi3+0x14a>
  326. 8000334: 22fc movs r2, #252 @ 0xfc
  327. 8000336: 0189 lsls r1, r1, #6
  328. 8000338: ba12 rev r2, r2
  329. 800033a: 0a03 lsrs r3, r0, #8
  330. 800033c: 428b cmp r3, r1
  331. 800033e: d30c bcc.n 800035a <__divsi3+0x14a>
  332. 8000340: 0189 lsls r1, r1, #6
  333. 8000342: 1192 asrs r2, r2, #6
  334. 8000344: 428b cmp r3, r1
  335. 8000346: d308 bcc.n 800035a <__divsi3+0x14a>
  336. 8000348: 0189 lsls r1, r1, #6
  337. 800034a: 1192 asrs r2, r2, #6
  338. 800034c: 428b cmp r3, r1
  339. 800034e: d304 bcc.n 800035a <__divsi3+0x14a>
  340. 8000350: 0189 lsls r1, r1, #6
  341. 8000352: d03a beq.n 80003ca <__divsi3+0x1ba>
  342. 8000354: 1192 asrs r2, r2, #6
  343. 8000356: e000 b.n 800035a <__divsi3+0x14a>
  344. 8000358: 0989 lsrs r1, r1, #6
  345. 800035a: 09c3 lsrs r3, r0, #7
  346. 800035c: 428b cmp r3, r1
  347. 800035e: d301 bcc.n 8000364 <__divsi3+0x154>
  348. 8000360: 01cb lsls r3, r1, #7
  349. 8000362: 1ac0 subs r0, r0, r3
  350. 8000364: 4152 adcs r2, r2
  351. 8000366: 0983 lsrs r3, r0, #6
  352. 8000368: 428b cmp r3, r1
  353. 800036a: d301 bcc.n 8000370 <__divsi3+0x160>
  354. 800036c: 018b lsls r3, r1, #6
  355. 800036e: 1ac0 subs r0, r0, r3
  356. 8000370: 4152 adcs r2, r2
  357. 8000372: 0943 lsrs r3, r0, #5
  358. 8000374: 428b cmp r3, r1
  359. 8000376: d301 bcc.n 800037c <__divsi3+0x16c>
  360. 8000378: 014b lsls r3, r1, #5
  361. 800037a: 1ac0 subs r0, r0, r3
  362. 800037c: 4152 adcs r2, r2
  363. 800037e: 0903 lsrs r3, r0, #4
  364. 8000380: 428b cmp r3, r1
  365. 8000382: d301 bcc.n 8000388 <__divsi3+0x178>
  366. 8000384: 010b lsls r3, r1, #4
  367. 8000386: 1ac0 subs r0, r0, r3
  368. 8000388: 4152 adcs r2, r2
  369. 800038a: 08c3 lsrs r3, r0, #3
  370. 800038c: 428b cmp r3, r1
  371. 800038e: d301 bcc.n 8000394 <__divsi3+0x184>
  372. 8000390: 00cb lsls r3, r1, #3
  373. 8000392: 1ac0 subs r0, r0, r3
  374. 8000394: 4152 adcs r2, r2
  375. 8000396: 0883 lsrs r3, r0, #2
  376. 8000398: 428b cmp r3, r1
  377. 800039a: d301 bcc.n 80003a0 <__divsi3+0x190>
  378. 800039c: 008b lsls r3, r1, #2
  379. 800039e: 1ac0 subs r0, r0, r3
  380. 80003a0: 4152 adcs r2, r2
  381. 80003a2: d2d9 bcs.n 8000358 <__divsi3+0x148>
  382. 80003a4: 0843 lsrs r3, r0, #1
  383. 80003a6: 428b cmp r3, r1
  384. 80003a8: d301 bcc.n 80003ae <__divsi3+0x19e>
  385. 80003aa: 004b lsls r3, r1, #1
  386. 80003ac: 1ac0 subs r0, r0, r3
  387. 80003ae: 4152 adcs r2, r2
  388. 80003b0: 1a41 subs r1, r0, r1
  389. 80003b2: d200 bcs.n 80003b6 <__divsi3+0x1a6>
  390. 80003b4: 4601 mov r1, r0
  391. 80003b6: 4663 mov r3, ip
  392. 80003b8: 4152 adcs r2, r2
  393. 80003ba: 105b asrs r3, r3, #1
  394. 80003bc: 4610 mov r0, r2
  395. 80003be: d301 bcc.n 80003c4 <__divsi3+0x1b4>
  396. 80003c0: 4240 negs r0, r0
  397. 80003c2: 2b00 cmp r3, #0
  398. 80003c4: d500 bpl.n 80003c8 <__divsi3+0x1b8>
  399. 80003c6: 4249 negs r1, r1
  400. 80003c8: 4770 bx lr
  401. 80003ca: 4663 mov r3, ip
  402. 80003cc: 105b asrs r3, r3, #1
  403. 80003ce: d300 bcc.n 80003d2 <__divsi3+0x1c2>
  404. 80003d0: 4240 negs r0, r0
  405. 80003d2: b501 push {r0, lr}
  406. 80003d4: 2000 movs r0, #0
  407. 80003d6: f7ff fef9 bl 80001cc <__aeabi_idiv0>
  408. 80003da: bd02 pop {r1, pc}
  409.  
  410. 080003dc <__aeabi_idivmod>:
  411. 80003dc: 2900 cmp r1, #0
  412. 80003de: d0f8 beq.n 80003d2 <__divsi3+0x1c2>
  413. 80003e0: e716 b.n 8000210 <__divsi3>
  414. 80003e2: 4770 bx lr
  415.  
  416. 080003e4 <__restore_core_regs>:
  417. 80003e4: 0001 movs r1, r0
  418. 80003e6: 3134 adds r1, #52 @ 0x34
  419. 80003e8: c938 ldmia r1!, {r3, r4, r5}
  420. 80003ea: 3b04 subs r3, #4
  421. 80003ec: 469c mov ip, r3
  422. 80003ee: 601d str r5, [r3, #0]
  423. 80003f0: 46a6 mov lr, r4
  424. 80003f2: 0001 movs r1, r0
  425. 80003f4: 3120 adds r1, #32
  426. 80003f6: c93c ldmia r1!, {r2, r3, r4, r5}
  427. 80003f8: 4690 mov r8, r2
  428. 80003fa: 4699 mov r9, r3
  429. 80003fc: 46a2 mov sl, r4
  430. 80003fe: 46ab mov fp, r5
  431. 8000400: 0001 movs r1, r0
  432. 8000402: 3108 adds r1, #8
  433. 8000404: c9fc ldmia r1!, {r2, r3, r4, r5, r6, r7}
  434. 8000406: 6841 ldr r1, [r0, #4]
  435. 8000408: 6800 ldr r0, [r0, #0]
  436. 800040a: 46e5 mov sp, ip
  437. 800040c: bd00 pop {pc}
  438. 800040e: 46c0 nop @ (mov r8, r8)
  439.  
  440. 08000410 <__gnu_Unwind_Restore_VFP>:
  441. 8000410: 4770 bx lr
  442. 8000412: 46c0 nop @ (mov r8, r8)
  443.  
  444. 08000414 <__gnu_Unwind_Save_VFP>:
  445. 8000414: 4770 bx lr
  446. 8000416: 46c0 nop @ (mov r8, r8)
  447.  
  448. 08000418 <__gnu_Unwind_Restore_VFP_D>:
  449. 8000418: 4770 bx lr
  450. 800041a: 46c0 nop @ (mov r8, r8)
  451.  
  452. 0800041c <__gnu_Unwind_Save_VFP_D>:
  453. 800041c: 4770 bx lr
  454. 800041e: 46c0 nop @ (mov r8, r8)
  455.  
  456. 08000420 <__gnu_Unwind_Restore_VFP_D_16_to_31>:
  457. 8000420: 4770 bx lr
  458. 8000422: 46c0 nop @ (mov r8, r8)
  459.  
  460. 08000424 <__gnu_Unwind_Save_VFP_D_16_to_31>:
  461. 8000424: 4770 bx lr
  462. 8000426: 46c0 nop @ (mov r8, r8)
  463.  
  464. 08000428 <__gnu_Unwind_Restore_WMMXD>:
  465. 8000428: 4770 bx lr
  466. 800042a: 46c0 nop @ (mov r8, r8)
  467.  
  468. 0800042c <__gnu_Unwind_Save_WMMXD>:
  469. 800042c: 4770 bx lr
  470. 800042e: 46c0 nop @ (mov r8, r8)
  471.  
  472. 08000430 <__gnu_Unwind_Restore_WMMXC>:
  473. 8000430: 4770 bx lr
  474. 8000432: 46c0 nop @ (mov r8, r8)
  475.  
  476. 08000434 <__gnu_Unwind_Save_WMMXC>:
  477. 8000434: 4770 bx lr
  478. 8000436: 46c0 nop @ (mov r8, r8)
  479.  
  480. 08000438 <_Unwind_RaiseException>:
  481. 8000438: b401 push {r0}
  482. 800043a: a801 add r0, sp, #4
  483. 800043c: b501 push {r0, lr}
  484. 800043e: b085 sub sp, #20
  485. 8000440: b4ff push {r0, r1, r2, r3, r4, r5, r6, r7}
  486. 8000442: a808 add r0, sp, #32
  487. 8000444: 4641 mov r1, r8
  488. 8000446: 464a mov r2, r9
  489. 8000448: 4653 mov r3, sl
  490. 800044a: 465c mov r4, fp
  491. 800044c: 4665 mov r5, ip
  492. 800044e: c03e stmia r0!, {r1, r2, r3, r4, r5}
  493. 8000450: a801 add r0, sp, #4
  494. 8000452: c83e ldmia r0!, {r1, r2, r3, r4, r5}
  495. 8000454: 980f ldr r0, [sp, #60] @ 0x3c
  496. 8000456: 9000 str r0, [sp, #0]
  497. 8000458: 2300 movs r3, #0
  498. 800045a: b40c push {r2, r3}
  499. 800045c: a901 add r1, sp, #4
  500. 800045e: f009 f82f bl 80094c0 <__gnu_Unwind_RaiseException>
  501. 8000462: 9b10 ldr r3, [sp, #64] @ 0x40
  502. 8000464: b012 add sp, #72 @ 0x48
  503. 8000466: 4718 bx r3
  504.  
  505. 08000468 <_Unwind_Resume>:
  506. 8000468: b401 push {r0}
  507. 800046a: a801 add r0, sp, #4
  508. 800046c: b501 push {r0, lr}
  509. 800046e: b085 sub sp, #20
  510. 8000470: b4ff push {r0, r1, r2, r3, r4, r5, r6, r7}
  511. 8000472: a808 add r0, sp, #32
  512. 8000474: 4641 mov r1, r8
  513. 8000476: 464a mov r2, r9
  514. 8000478: 4653 mov r3, sl
  515. 800047a: 465c mov r4, fp
  516. 800047c: 4665 mov r5, ip
  517. 800047e: c03e stmia r0!, {r1, r2, r3, r4, r5}
  518. 8000480: a801 add r0, sp, #4
  519. 8000482: c83e ldmia r0!, {r1, r2, r3, r4, r5}
  520. 8000484: 980f ldr r0, [sp, #60] @ 0x3c
  521. 8000486: 9000 str r0, [sp, #0]
  522. 8000488: 2300 movs r3, #0
  523. 800048a: b40c push {r2, r3}
  524. 800048c: a901 add r1, sp, #4
  525. 800048e: f009 f849 bl 8009524 <__gnu_Unwind_Resume>
  526. 8000492: 9b10 ldr r3, [sp, #64] @ 0x40
  527. 8000494: b012 add sp, #72 @ 0x48
  528. 8000496: 4718 bx r3
  529.  
  530. 08000498 <_Unwind_Resume_or_Rethrow>:
  531. 8000498: b401 push {r0}
  532. 800049a: a801 add r0, sp, #4
  533. 800049c: b501 push {r0, lr}
  534. 800049e: b085 sub sp, #20
  535. 80004a0: b4ff push {r0, r1, r2, r3, r4, r5, r6, r7}
  536. 80004a2: a808 add r0, sp, #32
  537. 80004a4: 4641 mov r1, r8
  538. 80004a6: 464a mov r2, r9
  539. 80004a8: 4653 mov r3, sl
  540. 80004aa: 465c mov r4, fp
  541. 80004ac: 4665 mov r5, ip
  542. 80004ae: c03e stmia r0!, {r1, r2, r3, r4, r5}
  543. 80004b0: a801 add r0, sp, #4
  544. 80004b2: c83e ldmia r0!, {r1, r2, r3, r4, r5}
  545. 80004b4: 980f ldr r0, [sp, #60] @ 0x3c
  546. 80004b6: 9000 str r0, [sp, #0]
  547. 80004b8: 2300 movs r3, #0
  548. 80004ba: b40c push {r2, r3}
  549. 80004bc: a901 add r1, sp, #4
  550. 80004be: f009 f855 bl 800956c <__gnu_Unwind_Resume_or_Rethrow>
  551. 80004c2: 9b10 ldr r3, [sp, #64] @ 0x40
  552. 80004c4: b012 add sp, #72 @ 0x48
  553. 80004c6: 4718 bx r3
  554.  
  555. 080004c8 <_Unwind_ForcedUnwind>:
  556. 80004c8: b401 push {r0}
  557. 80004ca: a801 add r0, sp, #4
  558. 80004cc: b501 push {r0, lr}
  559. 80004ce: b085 sub sp, #20
  560. 80004d0: b4ff push {r0, r1, r2, r3, r4, r5, r6, r7}
  561. 80004d2: a808 add r0, sp, #32
  562. 80004d4: 4641 mov r1, r8
  563. 80004d6: 464a mov r2, r9
  564. 80004d8: 4653 mov r3, sl
  565. 80004da: 465c mov r4, fp
  566. 80004dc: 4665 mov r5, ip
  567. 80004de: c03e stmia r0!, {r1, r2, r3, r4, r5}
  568. 80004e0: a801 add r0, sp, #4
  569. 80004e2: c83e ldmia r0!, {r1, r2, r3, r4, r5}
  570. 80004e4: 980f ldr r0, [sp, #60] @ 0x3c
  571. 80004e6: 9000 str r0, [sp, #0]
  572. 80004e8: 2300 movs r3, #0
  573. 80004ea: b40c push {r2, r3}
  574. 80004ec: ab01 add r3, sp, #4
  575. 80004ee: f009 f80f bl 8009510 <__gnu_Unwind_ForcedUnwind>
  576. 80004f2: 9b10 ldr r3, [sp, #64] @ 0x40
  577. 80004f4: b012 add sp, #72 @ 0x48
  578. 80004f6: 4718 bx r3
  579.  
  580. 080004f8 <_Unwind_Backtrace>:
  581. 80004f8: b401 push {r0}
  582. 80004fa: a801 add r0, sp, #4
  583. 80004fc: b501 push {r0, lr}
  584. 80004fe: b085 sub sp, #20
  585. 8000500: b4ff push {r0, r1, r2, r3, r4, r5, r6, r7}
  586. 8000502: a808 add r0, sp, #32
  587. 8000504: 4641 mov r1, r8
  588. 8000506: 464a mov r2, r9
  589. 8000508: 4653 mov r3, sl
  590. 800050a: 465c mov r4, fp
  591. 800050c: 4665 mov r5, ip
  592. 800050e: c03e stmia r0!, {r1, r2, r3, r4, r5}
  593. 8000510: a801 add r0, sp, #4
  594. 8000512: c83e ldmia r0!, {r1, r2, r3, r4, r5}
  595. 8000514: 980f ldr r0, [sp, #60] @ 0x3c
  596. 8000516: 9000 str r0, [sp, #0]
  597. 8000518: 2300 movs r3, #0
  598. 800051a: b40c push {r2, r3}
  599. 800051c: aa01 add r2, sp, #4
  600. 800051e: f009 f899 bl 8009654 <__gnu_Unwind_Backtrace>
  601. 8000522: 9b10 ldr r3, [sp, #64] @ 0x40
  602. 8000524: b012 add sp, #72 @ 0x48
  603. 8000526: 4718 bx r3
  604.  
  605. 08000528 <strcmp>:
  606. 8000528: 4602 mov r2, r0
  607. 800052a: b570 push {r4, r5, r6, lr}
  608. 800052c: 430a orrs r2, r1
  609. 800052e: 0792 lsls r2, r2, #30
  610. 8000530: d12a bne.n 8000588 <strcmp+0x60>
  611. 8000532: 4d1e ldr r5, [pc, #120] @ (80005ac <strcmp+0x84>)
  612. 8000534: 01ee lsls r6, r5, #7
  613. 8000536: c804 ldmia r0!, {r2}
  614. 8000538: c908 ldmia r1!, {r3}
  615. 800053a: 1b54 subs r4, r2, r5
  616. 800053c: 4394 bics r4, r2
  617. 800053e: 4034 ands r4, r6
  618. 8000540: d017 beq.n 8000572 <strcmp+0x4a>
  619. 8000542: b2d0 uxtb r0, r2
  620. 8000544: b2d9 uxtb r1, r3
  621. 8000546: 1a40 subs r0, r0, r1
  622. 8000548: 0621 lsls r1, r4, #24
  623. 800054a: 4301 orrs r1, r0
  624. 800054c: d110 bne.n 8000570 <strcmp+0x48>
  625. 800054e: b290 uxth r0, r2
  626. 8000550: b299 uxth r1, r3
  627. 8000552: 1a40 subs r0, r0, r1
  628. 8000554: 0421 lsls r1, r4, #16
  629. 8000556: 4301 orrs r1, r0
  630. 8000558: d10a bne.n 8000570 <strcmp+0x48>
  631. 800055a: 0210 lsls r0, r2, #8
  632. 800055c: 0219 lsls r1, r3, #8
  633. 800055e: 0a00 lsrs r0, r0, #8
  634. 8000560: 0a09 lsrs r1, r1, #8
  635. 8000562: 1a40 subs r0, r0, r1
  636. 8000564: 0221 lsls r1, r4, #8
  637. 8000566: 4301 orrs r1, r0
  638. 8000568: d102 bne.n 8000570 <strcmp+0x48>
  639. 800056a: 0e10 lsrs r0, r2, #24
  640. 800056c: 0e19 lsrs r1, r3, #24
  641. 800056e: 1a40 subs r0, r0, r1
  642. 8000570: bd70 pop {r4, r5, r6, pc}
  643. 8000572: 429a cmp r2, r3
  644. 8000574: d0df beq.n 8000536 <strcmp+0xe>
  645. 8000576: ba10 rev r0, r2
  646. 8000578: ba19 rev r1, r3
  647. 800057a: 4288 cmp r0, r1
  648. 800057c: d901 bls.n 8000582 <strcmp+0x5a>
  649. 800057e: 2001 movs r0, #1
  650. 8000580: bd70 pop {r4, r5, r6, pc}
  651. 8000582: 2000 movs r0, #0
  652. 8000584: 43c0 mvns r0, r0
  653. 8000586: bd70 pop {r4, r5, r6, pc}
  654. 8000588: 7802 ldrb r2, [r0, #0]
  655. 800058a: 780b ldrb r3, [r1, #0]
  656. 800058c: 3001 adds r0, #1
  657. 800058e: 3101 adds r1, #1
  658. 8000590: 2a00 cmp r2, #0
  659. 8000592: d009 beq.n 80005a8 <strcmp+0x80>
  660. 8000594: 429a cmp r2, r3
  661. 8000596: d107 bne.n 80005a8 <strcmp+0x80>
  662. 8000598: 7802 ldrb r2, [r0, #0]
  663. 800059a: 780b ldrb r3, [r1, #0]
  664. 800059c: 3001 adds r0, #1
  665. 800059e: 3101 adds r1, #1
  666. 80005a0: 2a00 cmp r2, #0
  667. 80005a2: d001 beq.n 80005a8 <strcmp+0x80>
  668. 80005a4: 429a cmp r2, r3
  669. 80005a6: d0ef beq.n 8000588 <strcmp+0x60>
  670. 80005a8: 1ad0 subs r0, r2, r3
  671. 80005aa: bd70 pop {r4, r5, r6, pc}
  672. 80005ac: 01010101 .word 0x01010101
  673.  
  674. 080005b0 <__aeabi_cdrcmple>:
  675. 80005b0: 4684 mov ip, r0
  676. 80005b2: 0010 movs r0, r2
  677. 80005b4: 4662 mov r2, ip
  678. 80005b6: 468c mov ip, r1
  679. 80005b8: 0019 movs r1, r3
  680. 80005ba: 4663 mov r3, ip
  681. 80005bc: e000 b.n 80005c0 <__aeabi_cdcmpeq>
  682. 80005be: 46c0 nop @ (mov r8, r8)
  683.  
  684. 080005c0 <__aeabi_cdcmpeq>:
  685. 80005c0: b51f push {r0, r1, r2, r3, r4, lr}
  686. 80005c2: f012 facd bl 8012b60 <__ledf2>
  687. 80005c6: 2800 cmp r0, #0
  688. 80005c8: d401 bmi.n 80005ce <__aeabi_cdcmpeq+0xe>
  689. 80005ca: 2100 movs r1, #0
  690. 80005cc: 42c8 cmn r0, r1
  691. 80005ce: bd1f pop {r0, r1, r2, r3, r4, pc}
  692.  
  693. 080005d0 <__aeabi_dcmpeq>:
  694. 80005d0: b510 push {r4, lr}
  695. 80005d2: f012 fa11 bl 80129f8 <__eqdf2>
  696. 80005d6: 4240 negs r0, r0
  697. 80005d8: 3001 adds r0, #1
  698. 80005da: bd10 pop {r4, pc}
  699.  
  700. 080005dc <__aeabi_dcmplt>:
  701. 80005dc: b510 push {r4, lr}
  702. 80005de: f012 fabf bl 8012b60 <__ledf2>
  703. 80005e2: 2800 cmp r0, #0
  704. 80005e4: db01 blt.n 80005ea <__aeabi_dcmplt+0xe>
  705. 80005e6: 2000 movs r0, #0
  706. 80005e8: bd10 pop {r4, pc}
  707. 80005ea: 2001 movs r0, #1
  708. 80005ec: bd10 pop {r4, pc}
  709. 80005ee: 46c0 nop @ (mov r8, r8)
  710.  
  711. 080005f0 <__aeabi_dcmple>:
  712. 80005f0: b510 push {r4, lr}
  713. 80005f2: f012 fab5 bl 8012b60 <__ledf2>
  714. 80005f6: 2800 cmp r0, #0
  715. 80005f8: dd01 ble.n 80005fe <__aeabi_dcmple+0xe>
  716. 80005fa: 2000 movs r0, #0
  717. 80005fc: bd10 pop {r4, pc}
  718. 80005fe: 2001 movs r0, #1
  719. 8000600: bd10 pop {r4, pc}
  720. 8000602: 46c0 nop @ (mov r8, r8)
  721.  
  722. 08000604 <__aeabi_dcmpgt>:
  723. 8000604: b510 push {r4, lr}
  724. 8000606: f012 fa3b bl 8012a80 <__gedf2>
  725. 800060a: 2800 cmp r0, #0
  726. 800060c: dc01 bgt.n 8000612 <__aeabi_dcmpgt+0xe>
  727. 800060e: 2000 movs r0, #0
  728. 8000610: bd10 pop {r4, pc}
  729. 8000612: 2001 movs r0, #1
  730. 8000614: bd10 pop {r4, pc}
  731. 8000616: 46c0 nop @ (mov r8, r8)
  732.  
  733. 08000618 <__aeabi_dcmpge>:
  734. 8000618: b510 push {r4, lr}
  735. 800061a: f012 fa31 bl 8012a80 <__gedf2>
  736. 800061e: 2800 cmp r0, #0
  737. 8000620: da01 bge.n 8000626 <__aeabi_dcmpge+0xe>
  738. 8000622: 2000 movs r0, #0
  739. 8000624: bd10 pop {r4, pc}
  740. 8000626: 2001 movs r0, #1
  741. 8000628: bd10 pop {r4, pc}
  742. 800062a: 46c0 nop @ (mov r8, r8)
  743.  
  744. 0800062c <__aeabi_uldivmod>:
  745. 800062c: 2b00 cmp r3, #0
  746. 800062e: d111 bne.n 8000654 <__aeabi_uldivmod+0x28>
  747. 8000630: 2a00 cmp r2, #0
  748. 8000632: d10f bne.n 8000654 <__aeabi_uldivmod+0x28>
  749. 8000634: 2900 cmp r1, #0
  750. 8000636: d100 bne.n 800063a <__aeabi_uldivmod+0xe>
  751. 8000638: 2800 cmp r0, #0
  752. 800063a: d002 beq.n 8000642 <__aeabi_uldivmod+0x16>
  753. 800063c: 2100 movs r1, #0
  754. 800063e: 43c9 mvns r1, r1
  755. 8000640: 0008 movs r0, r1
  756. 8000642: b407 push {r0, r1, r2}
  757. 8000644: 4802 ldr r0, [pc, #8] @ (8000650 <__aeabi_uldivmod+0x24>)
  758. 8000646: a102 add r1, pc, #8 @ (adr r1, 8000650 <__aeabi_uldivmod+0x24>)
  759. 8000648: 1840 adds r0, r0, r1
  760. 800064a: 9002 str r0, [sp, #8]
  761. 800064c: bd03 pop {r0, r1, pc}
  762. 800064e: 46c0 nop @ (mov r8, r8)
  763. 8000650: fffffb7d .word 0xfffffb7d
  764. 8000654: b403 push {r0, r1}
  765. 8000656: 4668 mov r0, sp
  766. 8000658: b501 push {r0, lr}
  767. 800065a: 9802 ldr r0, [sp, #8]
  768. 800065c: f011 fa66 bl 8011b2c <__udivmoddi4>
  769. 8000660: 9b01 ldr r3, [sp, #4]
  770. 8000662: 469e mov lr, r3
  771. 8000664: b002 add sp, #8
  772. 8000666: bc0c pop {r2, r3}
  773. 8000668: 4770 bx lr
  774. 800066a: 46c0 nop @ (mov r8, r8)
  775.  
  776. 0800066c <__clzsi2>:
  777. 800066c: 211c movs r1, #28
  778. 800066e: 2301 movs r3, #1
  779. 8000670: 041b lsls r3, r3, #16
  780. 8000672: 4298 cmp r0, r3
  781. 8000674: d301 bcc.n 800067a <__clzsi2+0xe>
  782. 8000676: 0c00 lsrs r0, r0, #16
  783. 8000678: 3910 subs r1, #16
  784. 800067a: 0a1b lsrs r3, r3, #8
  785. 800067c: 4298 cmp r0, r3
  786. 800067e: d301 bcc.n 8000684 <__clzsi2+0x18>
  787. 8000680: 0a00 lsrs r0, r0, #8
  788. 8000682: 3908 subs r1, #8
  789. 8000684: 091b lsrs r3, r3, #4
  790. 8000686: 4298 cmp r0, r3
  791. 8000688: d301 bcc.n 800068e <__clzsi2+0x22>
  792. 800068a: 0900 lsrs r0, r0, #4
  793. 800068c: 3904 subs r1, #4
  794. 800068e: a202 add r2, pc, #8 @ (adr r2, 8000698 <__clzsi2+0x2c>)
  795. 8000690: 5c10 ldrb r0, [r2, r0]
  796. 8000692: 1840 adds r0, r0, r1
  797. 8000694: 4770 bx lr
  798. 8000696: 46c0 nop @ (mov r8, r8)
  799. 8000698: 02020304 .word 0x02020304
  800. 800069c: 01010101 .word 0x01010101
  801. ...
  802.  
  803. 080006a8 <__clzdi2>:
  804. 80006a8: b510 push {r4, lr}
  805. 80006aa: 2900 cmp r1, #0
  806. 80006ac: d103 bne.n 80006b6 <__clzdi2+0xe>
  807. 80006ae: f7ff ffdd bl 800066c <__clzsi2>
  808. 80006b2: 3020 adds r0, #32
  809. 80006b4: e002 b.n 80006bc <__clzdi2+0x14>
  810. 80006b6: 0008 movs r0, r1
  811. 80006b8: f7ff ffd8 bl 800066c <__clzsi2>
  812. 80006bc: bd10 pop {r4, pc}
  813. 80006be: 46c0 nop @ (mov r8, r8)
  814.  
  815. 080006c0 <deregister_tm_clones>:
  816. 80006c0: 4804 ldr r0, [pc, #16] @ (80006d4 <deregister_tm_clones+0x14>)
  817. 80006c2: 4b05 ldr r3, [pc, #20] @ (80006d8 <deregister_tm_clones+0x18>)
  818. 80006c4: b510 push {r4, lr}
  819. 80006c6: 4283 cmp r3, r0
  820. 80006c8: d003 beq.n 80006d2 <deregister_tm_clones+0x12>
  821. 80006ca: 4b04 ldr r3, [pc, #16] @ (80006dc <deregister_tm_clones+0x1c>)
  822. 80006cc: 2b00 cmp r3, #0
  823. 80006ce: d000 beq.n 80006d2 <deregister_tm_clones+0x12>
  824. 80006d0: 4798 blx r3
  825. 80006d2: bd10 pop {r4, pc}
  826. 80006d4: 200006dc .word 0x200006dc
  827. 80006d8: 200006dc .word 0x200006dc
  828. 80006dc: 00000000 .word 0x00000000
  829.  
  830. 080006e0 <register_tm_clones>:
  831. 80006e0: 4806 ldr r0, [pc, #24] @ (80006fc <register_tm_clones+0x1c>)
  832. 80006e2: 4907 ldr r1, [pc, #28] @ (8000700 <register_tm_clones+0x20>)
  833. 80006e4: 1a09 subs r1, r1, r0
  834. 80006e6: 108b asrs r3, r1, #2
  835. 80006e8: 0fc9 lsrs r1, r1, #31
  836. 80006ea: 18c9 adds r1, r1, r3
  837. 80006ec: b510 push {r4, lr}
  838. 80006ee: 1049 asrs r1, r1, #1
  839. 80006f0: d003 beq.n 80006fa <register_tm_clones+0x1a>
  840. 80006f2: 4b04 ldr r3, [pc, #16] @ (8000704 <register_tm_clones+0x24>)
  841. 80006f4: 2b00 cmp r3, #0
  842. 80006f6: d000 beq.n 80006fa <register_tm_clones+0x1a>
  843. 80006f8: 4798 blx r3
  844. 80006fa: bd10 pop {r4, pc}
  845. 80006fc: 200006dc .word 0x200006dc
  846. 8000700: 200006dc .word 0x200006dc
  847. 8000704: 00000000 .word 0x00000000
  848.  
  849. 08000708 <__do_global_dtors_aux>:
  850. 8000708: b510 push {r4, lr}
  851. 800070a: 4c07 ldr r4, [pc, #28] @ (8000728 <__do_global_dtors_aux+0x20>)
  852. 800070c: 7823 ldrb r3, [r4, #0]
  853. 800070e: 2b00 cmp r3, #0
  854. 8000710: d109 bne.n 8000726 <__do_global_dtors_aux+0x1e>
  855. 8000712: f7ff ffd5 bl 80006c0 <deregister_tm_clones>
  856. 8000716: 4b05 ldr r3, [pc, #20] @ (800072c <__do_global_dtors_aux+0x24>)
  857. 8000718: 2b00 cmp r3, #0
  858. 800071a: d002 beq.n 8000722 <__do_global_dtors_aux+0x1a>
  859. 800071c: 4804 ldr r0, [pc, #16] @ (8000730 <__do_global_dtors_aux+0x28>)
  860. 800071e: e000 b.n 8000722 <__do_global_dtors_aux+0x1a>
  861. 8000720: bf00 nop
  862. 8000722: 2301 movs r3, #1
  863. 8000724: 7023 strb r3, [r4, #0]
  864. 8000726: bd10 pop {r4, pc}
  865. 8000728: 200006dc .word 0x200006dc
  866. 800072c: 00000000 .word 0x00000000
  867. 8000730: 08013a44 .word 0x08013a44
  868.  
  869. 08000734 <frame_dummy>:
  870. 8000734: 4b05 ldr r3, [pc, #20] @ (800074c <frame_dummy+0x18>)
  871. 8000736: b510 push {r4, lr}
  872. 8000738: 2b00 cmp r3, #0
  873. 800073a: d003 beq.n 8000744 <frame_dummy+0x10>
  874. 800073c: 4904 ldr r1, [pc, #16] @ (8000750 <frame_dummy+0x1c>)
  875. 800073e: 4805 ldr r0, [pc, #20] @ (8000754 <frame_dummy+0x20>)
  876. 8000740: e000 b.n 8000744 <frame_dummy+0x10>
  877. 8000742: bf00 nop
  878. 8000744: f7ff ffcc bl 80006e0 <register_tm_clones>
  879. 8000748: bd10 pop {r4, pc}
  880. 800074a: 46c0 nop @ (mov r8, r8)
  881. 800074c: 00000000 .word 0x00000000
  882. 8000750: 200006e0 .word 0x200006e0
  883. 8000754: 08013a44 .word 0x08013a44
  884.  
  885. 08000758 <(anonymous namespace)::HandleButtonPress(mcu::stm32g070::Gpio::GpioId)>:
  886. #include "platform/mcu-hal/gpio.hpp"
  887.  
  888. namespace {
  889. bool button_pressed = false;
  890. void HandleButtonPress([[maybe_unused]] GpioId pin) {
  891. button_pressed = true;
  892. 8000758: 4b01 ldr r3, [pc, #4] @ (8000760 <(anonymous namespace)::HandleButtonPress(mcu::stm32g070::Gpio::GpioId)+0x8>)
  893. 800075a: 2201 movs r2, #1
  894. 800075c: 701a strb r2, [r3, #0]
  895. }
  896. 800075e: 4770 bx lr
  897. 8000760: 200006f8 .word 0x200006f8
  898.  
  899. 08000764 <void rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::FunctionStub<&(anonymous namespace)::HandleButtonPress>(void*, mcu::stm32g070::Gpio::GpioId)>:
  900. using StubType = ReturnType (*)(void*, Args...);
  901. void* object_ptr = nullptr;
  902. StubType stub_ptr = nullptr;
  903.  
  904. template <ReturnType (*Function)(Args...)>
  905. static ReturnType FunctionStub(void*, Args... args) {
  906. 8000764: b510 push {r4, lr}
  907. 8000766: 0008 movs r0, r1
  908. return Function(std::forward<Args>(args)...);
  909. 8000768: f7ff fff6 bl 8000758 <(anonymous namespace)::HandleButtonPress(mcu::stm32g070::Gpio::GpioId)>
  910. }
  911. 800076c: bd10 pop {r4, pc}
  912.  
  913. 0800076e <mcu::hal::Uart<mcu::stm32g070::Uart>::Transmit(char const*)>:
  914.  
  915. void Transmit(const uint8_t *data, size_t len) {
  916. impl_.Transmit(data, len);
  917. }
  918.  
  919. void Transmit(const char *str) {
  920. 800076e: b570 push {r4, r5, r6, lr}
  921. 8000770: 0005 movs r5, r0
  922. 8000772: 000c movs r4, r1
  923. while (*str != '\0') {
  924. 8000774: e005 b.n 8000782 <mcu::hal::Uart<mcu::stm32g070::Uart>::Transmit(char const*)+0x14>
  925. impl_.Transmit(reinterpret_cast<const uint8_t *>(str), 1);
  926. 8000776: 2201 movs r2, #1
  927. 8000778: 0021 movs r1, r4
  928. 800077a: 0028 movs r0, r5
  929. 800077c: f000 fc17 bl 8000fae <mcu::stm32g070::Uart::Transmit(unsigned char const*, unsigned int)>
  930. str++;
  931. 8000780: 3401 adds r4, #1
  932. while (*str != '\0') {
  933. 8000782: 7823 ldrb r3, [r4, #0]
  934. 8000784: 2b00 cmp r3, #0
  935. 8000786: d1f6 bne.n 8000776 <mcu::hal::Uart<mcu::stm32g070::Uart>::Transmit(char const*)+0x8>
  936. }
  937. }
  938. 8000788: bd70 pop {r4, r5, r6, pc}
  939. ...
  940.  
  941. 0800078c <main>:
  942. } // namespace
  943.  
  944. extern "C" int main(void) {
  945. 800078c: b530 push {r4, r5, lr}
  946. 800078e: b087 sub sp, #28
  947. Board::Init();
  948. 8000790: f000 f87e bl 8000890 <Board::Init()>
  949. LogicLevel Read() {
  950. return Impl::Read(pinId);
  951. }
  952.  
  953. void Write(LogicLevel value) {
  954. Impl::Write(pinId, value);
  955. 8000794: 2100 movs r1, #0
  956. 8000796: 2005 movs r0, #5
  957. 8000798: f000 fa0f bl 8000bba <mcu::stm32g070::Gpio::Write(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::LogicLevel)>
  958. bool operator!=(const Delegate& other) const {
  959. return !(*this == other);
  960. }
  961.  
  962. private:
  963. Delegate(void* object, StubType stub) : object_ptr(object), stub_ptr(stub) {
  964. 800079c: 2200 movs r2, #0
  965. 800079e: 9200 str r2, [sp, #0]
  966. 80007a0: 4b16 ldr r3, [pc, #88] @ (80007fc <main+0x70>)
  967. 80007a2: 9301 str r3, [sp, #4]
  968. : object_ptr(other.object_ptr), stub_ptr(other.stub_ptr) {
  969. 80007a4: 9202 str r2, [sp, #8]
  970. 80007a6: 9303 str r3, [sp, #12]
  971. 80007a8: 9204 str r2, [sp, #16]
  972. 80007aa: 9305 str r3, [sp, #20]
  973. Impl::Toggle(pinId);
  974. }
  975.  
  976. void ConfigureInterrupt(InterruptEvent interrupt_mode,
  977. InterruptDelegate callback) {
  978. Impl::ConfigureInterrupt(pinId, interrupt_mode, callback);
  979. 80007ac: aa04 add r2, sp, #16
  980. 80007ae: 2101 movs r1, #1
  981. 80007b0: 202d movs r0, #45 @ 0x2d
  982. 80007b2: f000 fa2b bl 8000c0c <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)>
  983. IOPin<BoardPin::kButton> button;
  984. auto button_handler = GpioInterruptFunc::Create<HandleButtonPress>();
  985. button.ConfigureInterrupt(mcu::hal::gpio::InterruptEvent::kFallingEdge,
  986. button_handler);
  987.  
  988. auto &console_uart = Board::ConsoleUart();
  989. 80007b6: f000 f891 bl 80008dc <Board::ConsoleUart()>
  990. 80007ba: 0005 movs r5, r0
  991. impl_.Enable();
  992. 80007bc: f000 fbe8 bl 8000f90 <mcu::stm32g070::Uart::Enable()>
  993. console_uart.Enable();
  994. console_uart.Transmit("Board Init Complete\n");
  995. 80007c0: 490f ldr r1, [pc, #60] @ (8000800 <main+0x74>)
  996. 80007c2: 0028 movs r0, r5
  997. 80007c4: f7ff ffd3 bl 800076e <mcu::hal::Uart<mcu::stm32g070::Uart>::Transmit(char const*)>
  998.  
  999. uint32_t counter = 0;
  1000. 80007c8: 2400 movs r4, #0
  1001. while (true) {
  1002. if (counter == 0x1ffff0) {
  1003. 80007ca: 4b0e ldr r3, [pc, #56] @ (8000804 <main+0x78>)
  1004. 80007cc: 429c cmp r4, r3
  1005. 80007ce: d00c beq.n 80007ea <main+0x5e>
  1006. led.Toggle();
  1007. counter = 0;
  1008. console_uart.Transmit("Hello World!\n");
  1009. }
  1010. counter++;
  1011. 80007d0: 3401 adds r4, #1
  1012.  
  1013. if (button_pressed) {
  1014. 80007d2: 4b0d ldr r3, [pc, #52] @ (8000808 <main+0x7c>)
  1015. 80007d4: 781b ldrb r3, [r3, #0]
  1016. 80007d6: 2b00 cmp r3, #0
  1017. 80007d8: d0f7 beq.n 80007ca <main+0x3e>
  1018. console_uart.Transmit("Button pressed\n");
  1019. 80007da: 490c ldr r1, [pc, #48] @ (800080c <main+0x80>)
  1020. 80007dc: 0028 movs r0, r5
  1021. 80007de: f7ff ffc6 bl 800076e <mcu::hal::Uart<mcu::stm32g070::Uart>::Transmit(char const*)>
  1022. button_pressed = false;
  1023. 80007e2: 4b09 ldr r3, [pc, #36] @ (8000808 <main+0x7c>)
  1024. 80007e4: 2200 movs r2, #0
  1025. 80007e6: 701a strb r2, [r3, #0]
  1026. 80007e8: e7ef b.n 80007ca <main+0x3e>
  1027. Impl::Toggle(pinId);
  1028. 80007ea: 2005 movs r0, #5
  1029. 80007ec: f000 f9f8 bl 8000be0 <mcu::stm32g070::Gpio::Toggle(mcu::stm32g070::Gpio::GpioId)>
  1030. console_uart.Transmit("Hello World!\n");
  1031. 80007f0: 4907 ldr r1, [pc, #28] @ (8000810 <main+0x84>)
  1032. 80007f2: 0028 movs r0, r5
  1033. 80007f4: f7ff ffbb bl 800076e <mcu::hal::Uart<mcu::stm32g070::Uart>::Transmit(char const*)>
  1034. counter = 0;
  1035. 80007f8: 2400 movs r4, #0
  1036. 80007fa: e7e9 b.n 80007d0 <main+0x44>
  1037. 80007fc: 08000765 .word 0x08000765
  1038. 8000800: 08013a60 .word 0x08013a60
  1039. 8000804: 001ffff0 .word 0x001ffff0
  1040. 8000808: 200006f8 .word 0x200006f8
  1041. 800080c: 08013a88 .word 0x08013a88
  1042. 8000810: 08013a78 .word 0x08013a78
  1043.  
  1044. 08000814 <_sbrk>:
  1045. #include <sys/stat.h>
  1046. #include <errno.h>
  1047.  
  1048. extern "C" {
  1049. void* _sbrk([[maybe_unused]] int incr) {
  1050. 8000814: b510 push {r4, lr}
  1051. errno = ENOMEM;
  1052. 8000816: f00a fd95 bl 800b344 <__errno>
  1053. 800081a: 230c movs r3, #12
  1054. 800081c: 6003 str r3, [r0, #0]
  1055. return (void*)-1;
  1056. 800081e: 2001 movs r0, #1
  1057. }
  1058. 8000820: 4240 negs r0, r0
  1059. 8000822: bd10 pop {r4, pc}
  1060.  
  1061. 08000824 <_exit>:
  1062.  
  1063. void _exit([[maybe_unused]] int status) {
  1064. while (1) {
  1065. 8000824: e7fe b.n 8000824 <_exit>
  1066.  
  1067. 08000826 <_close>:
  1068. }
  1069. }
  1070.  
  1071. int _close([[maybe_unused]] int file) {
  1072. return -1;
  1073. 8000826: 2001 movs r0, #1
  1074. }
  1075. 8000828: 4240 negs r0, r0
  1076. 800082a: 4770 bx lr
  1077.  
  1078. 0800082c <_fstat>:
  1079.  
  1080. int _fstat([[maybe_unused]] int file, struct stat* st) {
  1081. st->st_mode = S_IFCHR;
  1082. 800082c: 2380 movs r3, #128 @ 0x80
  1083. 800082e: 019b lsls r3, r3, #6
  1084. 8000830: 604b str r3, [r1, #4]
  1085. return 0;
  1086. }
  1087. 8000832: 2000 movs r0, #0
  1088. 8000834: 4770 bx lr
  1089.  
  1090. 08000836 <_isatty>:
  1091.  
  1092. int _isatty([[maybe_unused]] int file) {
  1093. return 1;
  1094. }
  1095. 8000836: 2001 movs r0, #1
  1096. 8000838: 4770 bx lr
  1097.  
  1098. 0800083a <_lseek>:
  1099.  
  1100. int _lseek([[maybe_unused]] int file, [[maybe_unused]] int ptr,
  1101. [[maybe_unused]] int dir) {
  1102. return 0;
  1103. }
  1104. 800083a: 2000 movs r0, #0
  1105. 800083c: 4770 bx lr
  1106.  
  1107. 0800083e <_read>:
  1108.  
  1109. int _read([[maybe_unused]] int file, [[maybe_unused]] char* ptr,
  1110. [[maybe_unused]] int len) {
  1111. return 0;
  1112. }
  1113. 800083e: 2000 movs r0, #0
  1114. 8000840: 4770 bx lr
  1115.  
  1116. 08000842 <_write>:
  1117.  
  1118. int _write([[maybe_unused]] int file, [[maybe_unused]] char* ptr,
  1119. [[maybe_unused]] int len) {
  1120. return 0;
  1121. }
  1122. 8000842: 2000 movs r0, #0
  1123. 8000844: 4770 bx lr
  1124.  
  1125. 08000846 <_kill>:
  1126.  
  1127. int _kill([[maybe_unused]] int pid, [[maybe_unused]] int sig) {
  1128. 8000846: b510 push {r4, lr}
  1129. errno = EINVAL;
  1130. 8000848: f00a fd7c bl 800b344 <__errno>
  1131. 800084c: 2316 movs r3, #22
  1132. 800084e: 6003 str r3, [r0, #0]
  1133. return -1;
  1134. 8000850: 2001 movs r0, #1
  1135. }
  1136. 8000852: 4240 negs r0, r0
  1137. 8000854: bd10 pop {r4, pc}
  1138.  
  1139. 08000856 <_getpid>:
  1140.  
  1141. int _getpid(void) {
  1142. return 1;
  1143. }
  1144. 8000856: 2001 movs r0, #1
  1145. 8000858: 4770 bx lr
  1146.  
  1147. 0800085a <__assert_func>:
  1148.  
  1149. __attribute__((noreturn)) void __assert_func(
  1150. [[maybe_unused]] const char* file, [[maybe_unused]] int line,
  1151. [[maybe_unused]] const char* func,
  1152. [[maybe_unused]] const char* failedexpr) {
  1153. while (1) {
  1154. 800085a: e7fe b.n 800085a <__assert_func>
  1155.  
  1156. 0800085c <Board::Board()>:
  1157. .rx_pin = static_cast<GpioId>(BoardPin::kConsoleUartRx),
  1158. .baud_rate = BaudRate::k115200,
  1159. };
  1160. } // namespace
  1161.  
  1162. Board::Board()
  1163. 800085c: b530 push {r4, r5, lr}
  1164. 800085e: b083 sub sp, #12
  1165. 8000860: 0004 movs r4, r0
  1166. template<contiguous_iterator _It>
  1167. requires __is_compatible_ref<iter_reference_t<_It>>::value
  1168. constexpr explicit(extent != dynamic_extent)
  1169. span(_It __first, size_type __count)
  1170. noexcept
  1171. : _M_ptr(std::to_address(__first)), _M_extent(__count)
  1172. 8000862: 4b09 ldr r3, [pc, #36] @ (8000888 <Board::Board()+0x2c>)
  1173. 8000864: 6003 str r3, [r0, #0]
  1174. : _M_extent_value(__extent)
  1175. 8000866: 2304 movs r3, #4
  1176. 8000868: 6043 str r3, [r0, #4]
  1177. 800086a: 466b mov r3, sp
  1178. 800086c: c822 ldmia r0!, {r1, r5}
  1179. 800086e: c322 stmia r3!, {r1, r5}
  1180. : impl_(default_pin_configurations) {
  1181. 8000870: 9900 ldr r1, [sp, #0]
  1182. 8000872: 2204 movs r2, #4
  1183. 8000874: f000 f922 bl 8000abc <mcu::stm32g070::Gpio::Gpio(std::span<mcu::stm32g070::Gpio::GpioConfig const, 4294967295u>)>
  1184. Uart(UartConfig const &uart_config) : impl_(uart_config) {
  1185. 8000878: 4904 ldr r1, [pc, #16] @ (800088c <Board::Board()+0x30>)
  1186. 800087a: 0020 movs r0, r4
  1187. 800087c: 3010 adds r0, #16
  1188. 800087e: f000 fb57 bl 8000f30 <mcu::stm32g070::Uart::Uart(mcu::stm32g070::Uart::UartConfig const&)>
  1189. : gpio_config_{gpio_config},
  1190. gpio_(gpio_config_),
  1191. console_uart_(console_uart) {
  1192. }
  1193. 8000882: 0020 movs r0, r4
  1194. 8000884: b003 add sp, #12
  1195. 8000886: bd30 pop {r4, r5, pc}
  1196. 8000888: 08014b98 .word 0x08014b98
  1197. 800088c: 08014b90 .word 0x08014b90
  1198.  
  1199. 08000890 <Board::Init()>:
  1200.  
  1201. void Board::Init() {
  1202. 8000890: b570 push {r4, r5, r6, lr}
  1203. mcu::stm32g070::SysClock::Init();
  1204. 8000892: f000 faf3 bl 8000e7c <mcu::stm32g070::SysClock::Init()>
  1205. assert(instance_ptr == nullptr);
  1206. 8000896: 4b0c ldr r3, [pc, #48] @ (80008c8 <Board::Init()+0x38>)
  1207. 8000898: 681b ldr r3, [r3, #0]
  1208. 800089a: 2b00 cmp r3, #0
  1209. 800089c: d10e bne.n 80008bc <Board::Init()+0x2c>
  1210. instance_ptr = new (board_object_storage) Board();
  1211. 800089e: 4c0b ldr r4, [pc, #44] @ (80008cc <Board::Init()+0x3c>)
  1212. 80008a0: 0020 movs r0, r4
  1213. 80008a2: f7ff ffdb bl 800085c <Board::Board()>
  1214. 80008a6: 4d08 ldr r5, [pc, #32] @ (80008c8 <Board::Init()+0x38>)
  1215. 80008a8: 602c str r4, [r5, #0]
  1216. impl_.ConfigureAllToDefault();
  1217. 80008aa: 0020 movs r0, r4
  1218. 80008ac: 3008 adds r0, #8
  1219. 80008ae: f000 f973 bl 8000b98 <mcu::stm32g070::Gpio::ConfigureAllToDefault()>
  1220. instance_ptr->gpio_.ConfigureAllToDefault();
  1221. instance_ptr->console_uart_.Init();
  1222. 80008b2: 6828 ldr r0, [r5, #0]
  1223. impl_.Init();
  1224. 80008b4: 3010 adds r0, #16
  1225. 80008b6: f000 fb43 bl 8000f40 <mcu::stm32g070::Uart::Init()>
  1226. }
  1227. 80008ba: bd70 pop {r4, r5, r6, pc}
  1228. assert(instance_ptr == nullptr);
  1229. 80008bc: 4b04 ldr r3, [pc, #16] @ (80008d0 <Board::Init()+0x40>)
  1230. 80008be: 4a05 ldr r2, [pc, #20] @ (80008d4 <Board::Init()+0x44>)
  1231. 80008c0: 4805 ldr r0, [pc, #20] @ (80008d8 <Board::Init()+0x48>)
  1232. 80008c2: 2146 movs r1, #70 @ 0x46
  1233. 80008c4: f7ff ffc9 bl 800085a <__assert_func>
  1234. 80008c8: 200006fc .word 0x200006fc
  1235. 80008cc: 20000700 .word 0x20000700
  1236. 80008d0: 08013a98 .word 0x08013a98
  1237. 80008d4: 08013ab0 .word 0x08013ab0
  1238. 80008d8: 08013acc .word 0x08013acc
  1239.  
  1240. 080008dc <Board::ConsoleUart()>:
  1241. mcu::hal::Gpio<mcu::stm32g070::Gpio> &Board::Gpio() {
  1242. assert(instance_ptr != nullptr);
  1243. return instance_ptr->gpio_;
  1244. }
  1245.  
  1246. mcu::hal::Uart<mcu::stm32g070::Uart> &Board::ConsoleUart() {
  1247. 80008dc: b510 push {r4, lr}
  1248. assert(instance_ptr != nullptr);
  1249. 80008de: 4b06 ldr r3, [pc, #24] @ (80008f8 <Board::ConsoleUart()+0x1c>)
  1250. 80008e0: 6818 ldr r0, [r3, #0]
  1251. 80008e2: 2800 cmp r0, #0
  1252. 80008e4: d001 beq.n 80008ea <Board::ConsoleUart()+0xe>
  1253. return instance_ptr->console_uart_;
  1254. 80008e6: 3010 adds r0, #16
  1255. }
  1256. 80008e8: bd10 pop {r4, pc}
  1257. assert(instance_ptr != nullptr);
  1258. 80008ea: 4b04 ldr r3, [pc, #16] @ (80008fc <Board::ConsoleUart()+0x20>)
  1259. 80008ec: 4a04 ldr r2, [pc, #16] @ (8000900 <Board::ConsoleUart()+0x24>)
  1260. 80008ee: 4805 ldr r0, [pc, #20] @ (8000904 <Board::ConsoleUart()+0x28>)
  1261. 80008f0: 2152 movs r1, #82 @ 0x52
  1262. 80008f2: f7ff ffb2 bl 800085a <__assert_func>
  1263. 80008f6: 46c0 nop @ (mov r8, r8)
  1264. 80008f8: 200006fc .word 0x200006fc
  1265. 80008fc: 08013ae8 .word 0x08013ae8
  1266. 8000900: 08013b3c .word 0x08013b3c
  1267. 8000904: 08013acc .word 0x08013acc
  1268.  
  1269. 08000908 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)>:
  1270. };
  1271.  
  1272. std::array<GpioInterruptInfo, 16> irq_callback_table{};
  1273.  
  1274. GPIO_TypeDef *GetPortRegister(mcu::stm32g070::Gpio::GpioId pin) {
  1275. uint8_t port_num = pin >> kNumPinsPerPortShift;
  1276. 8000908: 0903 lsrs r3, r0, #4
  1277. switch (port_num) {
  1278. 800090a: 284f cmp r0, #79 @ 0x4f
  1279. 800090c: d80c bhi.n 8000928 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x20>
  1280. 800090e: 009b lsls r3, r3, #2
  1281. 8000910: 4a07 ldr r2, [pc, #28] @ (8000930 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x28>)
  1282. 8000912: 58d3 ldr r3, [r2, r3]
  1283. 8000914: 469f mov pc, r3
  1284. 8000916: 20a0 movs r0, #160 @ 0xa0
  1285. 8000918: 05c0 lsls r0, r0, #23
  1286. case 4:
  1287. return GPIOF;
  1288. default:
  1289. return nullptr;
  1290. }
  1291. }
  1292. 800091a: 4770 bx lr
  1293. return GPIOC;
  1294. 800091c: 4805 ldr r0, [pc, #20] @ (8000934 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x2c>)
  1295. 800091e: e7fc b.n 800091a <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x12>
  1296. return GPIOD;
  1297. 8000920: 4805 ldr r0, [pc, #20] @ (8000938 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x30>)
  1298. 8000922: e7fa b.n 800091a <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x12>
  1299. return GPIOF;
  1300. 8000924: 4805 ldr r0, [pc, #20] @ (800093c <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x34>)
  1301. 8000926: e7f8 b.n 800091a <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x12>
  1302. return nullptr;
  1303. 8000928: 2000 movs r0, #0
  1304. 800092a: e7f6 b.n 800091a <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x12>
  1305. return GPIOB;
  1306. 800092c: 4804 ldr r0, [pc, #16] @ (8000940 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x38>)
  1307. 800092e: e7f4 b.n 800091a <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)+0x12>
  1308. 8000930: 08014bb0 .word 0x08014bb0
  1309. 8000934: 50000800 .word 0x50000800
  1310. 8000938: 50000c00 .word 0x50000c00
  1311. 800093c: 50001400 .word 0x50001400
  1312. 8000940: 50000400 .word 0x50000400
  1313.  
  1314. 08000944 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)>:
  1315.  
  1316. void SetPullResistor(GPIO_TypeDef *port, uint8_t port_pin,
  1317. mcu::stm32g070::Gpio::GpioPullResistor mode) {
  1318. 8000944: b510 push {r4, lr}
  1319. uint8_t bit_value = (mode == mcu::stm32g070::Gpio::kPullNone) ? 0b00
  1320. 8000946: 2a02 cmp r2, #2
  1321. 8000948: d003 beq.n 8000952 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)+0xe>
  1322. 800094a: 2a00 cmp r2, #0
  1323. 800094c: d110 bne.n 8000970 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)+0x2c>
  1324. 800094e: 3201 adds r2, #1
  1325. 8000950: e000 b.n 8000954 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)+0x10>
  1326. 8000952: 2200 movs r2, #0
  1327. : (mode == mcu::stm32g070::Gpio::kPullUp)
  1328. ? 0b01
  1329. : 0b10; // pull-down
  1330. port->PUPDR &= ~(0b11 << (port_pin < 1));
  1331. 8000954: 68c4 ldr r4, [r0, #12]
  1332. 8000956: 2900 cmp r1, #0
  1333. 8000958: d10c bne.n 8000974 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)+0x30>
  1334. 800095a: 2307 movs r3, #7
  1335. 800095c: 425b negs r3, r3
  1336. 800095e: 4023 ands r3, r4
  1337. 8000960: 60c3 str r3, [r0, #12]
  1338. port->PUPDR |= bit_value << (port_pin < 1);
  1339. 8000962: 68c3 ldr r3, [r0, #12]
  1340. 8000964: 424c negs r4, r1
  1341. 8000966: 4161 adcs r1, r4
  1342. 8000968: 408a lsls r2, r1
  1343. 800096a: 4313 orrs r3, r2
  1344. 800096c: 60c3 str r3, [r0, #12]
  1345. }
  1346. 800096e: bd10 pop {r4, pc}
  1347. uint8_t bit_value = (mode == mcu::stm32g070::Gpio::kPullNone) ? 0b00
  1348. 8000970: 2202 movs r2, #2
  1349. 8000972: e7ef b.n 8000954 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)+0x10>
  1350. port->PUPDR &= ~(0b11 << (port_pin < 1));
  1351. 8000974: 2304 movs r3, #4
  1352. 8000976: 425b negs r3, r3
  1353. 8000978: e7f1 b.n 800095e <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)+0x1a>
  1354.  
  1355. 0800097a <(anonymous namespace)::SetOutputConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioOutputType, mcu::stm32g070::Gpio::GpioOutputSpeed)>:
  1356.  
  1357. void SetOutputConfig(GPIO_TypeDef *port, uint8_t port_pin,
  1358. mcu::stm32g070::Gpio::GpioOutputType output_type,
  1359. mcu::stm32g070::Gpio::GpioOutputSpeed speed) {
  1360. 800097a: b510 push {r4, lr}
  1361. 800097c: 001c movs r4, r3
  1362. if (output_type == mcu::stm32g070::Gpio::kPushPull) {
  1363. 800097e: 2a00 cmp r2, #0
  1364. 8000980: d10e bne.n 80009a0 <(anonymous namespace)::SetOutputConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioOutputType, mcu::stm32g070::Gpio::GpioOutputSpeed)+0x26>
  1365. port->OTYPER &= ~(0b1 << port_pin);
  1366. 8000982: 6843 ldr r3, [r0, #4]
  1367. 8000984: 3201 adds r2, #1
  1368. 8000986: 408a lsls r2, r1
  1369. 8000988: 4393 bics r3, r2
  1370. 800098a: 6043 str r3, [r0, #4]
  1371. } else {
  1372. port->OTYPER |= 0b1 << port_pin;
  1373. }
  1374. port->OSPEEDR &= ~(0b11 << port_pin);
  1375. 800098c: 6883 ldr r3, [r0, #8]
  1376. 800098e: 2203 movs r2, #3
  1377. 8000990: 408a lsls r2, r1
  1378. 8000992: 4393 bics r3, r2
  1379. 8000994: 6083 str r3, [r0, #8]
  1380. port->OSPEEDR |= speed << port_pin;
  1381. 8000996: 6883 ldr r3, [r0, #8]
  1382. 8000998: 408c lsls r4, r1
  1383. 800099a: 4323 orrs r3, r4
  1384. 800099c: 6083 str r3, [r0, #8]
  1385. }
  1386. 800099e: bd10 pop {r4, pc}
  1387. port->OTYPER |= 0b1 << port_pin;
  1388. 80009a0: 6843 ldr r3, [r0, #4]
  1389. 80009a2: 2201 movs r2, #1
  1390. 80009a4: 408a lsls r2, r1
  1391. 80009a6: 4313 orrs r3, r2
  1392. 80009a8: 6043 str r3, [r0, #4]
  1393. 80009aa: e7ef b.n 800098c <(anonymous namespace)::SetOutputConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioOutputType, mcu::stm32g070::Gpio::GpioOutputSpeed)+0x12>
  1394.  
  1395. 080009ac <(anonymous namespace)::SetAltConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioAltFunc)>:
  1396.  
  1397. void SetAltConfig(GPIO_TypeDef *port, uint8_t port_pin,
  1398. mcu::stm32g070::Gpio::GpioAltFunc af) {
  1399. 80009ac: b530 push {r4, r5, lr}
  1400. uint8_t low_hi_sel = port_pin >> 3;
  1401. 80009ae: 08cb lsrs r3, r1, #3
  1402. uint8_t af_pin_shift = (port_pin & 0x7) << 2;
  1403. 80009b0: 0089 lsls r1, r1, #2
  1404. 80009b2: 241c movs r4, #28
  1405. 80009b4: 4021 ands r1, r4
  1406. port->AFR[low_hi_sel] &= ~(0xf << af_pin_shift);
  1407. 80009b6: 3308 adds r3, #8
  1408. 80009b8: 009b lsls r3, r3, #2
  1409. 80009ba: 581c ldr r4, [r3, r0]
  1410. 80009bc: 250f movs r5, #15
  1411. 80009be: 408d lsls r5, r1
  1412. 80009c0: 43ac bics r4, r5
  1413. 80009c2: 501c str r4, [r3, r0]
  1414. port->AFR[low_hi_sel] |= (af << af_pin_shift);
  1415. 80009c4: 581c ldr r4, [r3, r0]
  1416. 80009c6: 408a lsls r2, r1
  1417. 80009c8: 4314 orrs r4, r2
  1418. 80009ca: 501c str r4, [r3, r0]
  1419. }
  1420. 80009cc: bd30 pop {r4, r5, pc}
  1421. ...
  1422.  
  1423. 080009d0 <(anonymous namespace)::EnablePortClockIfFirstUse((anonymous namespace)::GpioPortId)>:
  1424.  
  1425. GpioPortRefCounter io_port_ref_counters[kNumPorts];
  1426.  
  1427. void EnablePortClockIfFirstUse(GpioPortId port_id) {
  1428. GpioPortRefCounter *ref_counter = &io_port_ref_counters[port_id];
  1429. uint8_t ref_count = ref_counter->gpio_ref_count + ref_counter->adc_ref_count;
  1430. 80009d0: 4b08 ldr r3, [pc, #32] @ (80009f4 <(anonymous namespace)::EnablePortClockIfFirstUse((anonymous namespace)::GpioPortId)+0x24>)
  1431. 80009d2: 0041 lsls r1, r0, #1
  1432. 80009d4: 5cca ldrb r2, [r1, r3]
  1433. 80009d6: 185b adds r3, r3, r1
  1434. 80009d8: 785b ldrb r3, [r3, #1]
  1435. 80009da: 18d3 adds r3, r2, r3
  1436. 80009dc: b2db uxtb r3, r3
  1437. if (ref_count == 1) {
  1438. 80009de: 2b01 cmp r3, #1
  1439. 80009e0: d000 beq.n 80009e4 <(anonymous namespace)::EnablePortClockIfFirstUse((anonymous namespace)::GpioPortId)+0x14>
  1440. // First instance of IO port usage, enable RCC IO port clock
  1441. uint32_t mask = 0b1 << port_id;
  1442. RCC->IOPENR |= mask;
  1443. }
  1444. }
  1445. 80009e2: 4770 bx lr
  1446. uint32_t mask = 0b1 << port_id;
  1447. 80009e4: 2201 movs r2, #1
  1448. 80009e6: 4082 lsls r2, r0
  1449. RCC->IOPENR |= mask;
  1450. 80009e8: 4903 ldr r1, [pc, #12] @ (80009f8 <(anonymous namespace)::EnablePortClockIfFirstUse((anonymous namespace)::GpioPortId)+0x28>)
  1451. 80009ea: 6b4b ldr r3, [r1, #52] @ 0x34
  1452. 80009ec: 4313 orrs r3, r2
  1453. 80009ee: 634b str r3, [r1, #52] @ 0x34
  1454. }
  1455. 80009f0: e7f7 b.n 80009e2 <(anonymous namespace)::EnablePortClockIfFirstUse((anonymous namespace)::GpioPortId)+0x12>
  1456. 80009f2: 46c0 nop @ (mov r8, r8)
  1457. 80009f4: 20000728 .word 0x20000728
  1458. 80009f8: 40021000 .word 0x40021000
  1459.  
  1460. 080009fc <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)>:
  1461. GpioPortId GetPortIdFromPortRegisters(GPIO_TypeDef *port) {
  1462. 80009fc: b510 push {r4, lr}
  1463. if (port == GPIOA) {
  1464. 80009fe: 23a0 movs r3, #160 @ 0xa0
  1465. 8000a00: 05db lsls r3, r3, #23
  1466. 8000a02: 4298 cmp r0, r3
  1467. 8000a04: d013 beq.n 8000a2e <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x32>
  1468. } else if (port == GPIOB) {
  1469. 8000a06: 4b0e ldr r3, [pc, #56] @ (8000a40 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x44>)
  1470. 8000a08: 4298 cmp r0, r3
  1471. 8000a0a: d012 beq.n 8000a32 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x36>
  1472. } else if (port == GPIOC) {
  1473. 8000a0c: 4b0d ldr r3, [pc, #52] @ (8000a44 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x48>)
  1474. 8000a0e: 4298 cmp r0, r3
  1475. 8000a10: d011 beq.n 8000a36 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x3a>
  1476. } else if (port == GPIOD) {
  1477. 8000a12: 4b0d ldr r3, [pc, #52] @ (8000a48 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x4c>)
  1478. 8000a14: 4298 cmp r0, r3
  1479. 8000a16: d010 beq.n 8000a3a <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x3e>
  1480. } else if (port == GPIOF) {
  1481. 8000a18: 4b0c ldr r3, [pc, #48] @ (8000a4c <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x50>)
  1482. 8000a1a: 4298 cmp r0, r3
  1483. 8000a1c: d101 bne.n 8000a22 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x26>
  1484. return kPortF;
  1485. 8000a1e: 2004 movs r0, #4
  1486. }
  1487. 8000a20: bd10 pop {r4, pc}
  1488. assert(0);
  1489. 8000a22: 4b0b ldr r3, [pc, #44] @ (8000a50 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x54>)
  1490. 8000a24: 4a0b ldr r2, [pc, #44] @ (8000a54 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x58>)
  1491. 8000a26: 480c ldr r0, [pc, #48] @ (8000a58 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x5c>)
  1492. 8000a28: 2154 movs r1, #84 @ 0x54
  1493. 8000a2a: f7ff ff16 bl 800085a <__assert_func>
  1494. return kPortA;
  1495. 8000a2e: 2000 movs r0, #0
  1496. 8000a30: e7f6 b.n 8000a20 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x24>
  1497. return kPortB;
  1498. 8000a32: 2001 movs r0, #1
  1499. 8000a34: e7f4 b.n 8000a20 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x24>
  1500. return kPortC;
  1501. 8000a36: 2002 movs r0, #2
  1502. 8000a38: e7f2 b.n 8000a20 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x24>
  1503. return kPortD;
  1504. 8000a3a: 2003 movs r0, #3
  1505. 8000a3c: e7f0 b.n 8000a20 <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)+0x24>
  1506. 8000a3e: 46c0 nop @ (mov r8, r8)
  1507. 8000a40: 50000400 .word 0x50000400
  1508. 8000a44: 50000800 .word 0x50000800
  1509. 8000a48: 50000c00 .word 0x50000c00
  1510. 8000a4c: 50001400 .word 0x50001400
  1511. 8000a50: 08013b80 .word 0x08013b80
  1512. 8000a54: 08013b84 .word 0x08013b84
  1513. 8000a58: 08013bd4 .word 0x08013bd4
  1514.  
  1515. 08000a5c <(anonymous namespace)::IncrementPortClockRefCount(GPIO_TypeDef*)>:
  1516. if (ref_count == 0) {
  1517. // TODO: Disable RCC IO port clock
  1518. }
  1519. }
  1520.  
  1521. void IncrementPortClockRefCount(GPIO_TypeDef *port) {
  1522. 8000a5c: b510 push {r4, lr}
  1523. GpioPortId port_id = GetPortIdFromPortRegisters(port);
  1524. 8000a5e: f7ff ffcd bl 80009fc <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)>
  1525. io_port_ref_counters[port_id].gpio_ref_count++;
  1526. 8000a62: 4b04 ldr r3, [pc, #16] @ (8000a74 <(anonymous namespace)::IncrementPortClockRefCount(GPIO_TypeDef*)+0x18>)
  1527. 8000a64: 0041 lsls r1, r0, #1
  1528. 8000a66: 5cca ldrb r2, [r1, r3]
  1529. 8000a68: 3201 adds r2, #1
  1530. 8000a6a: 54ca strb r2, [r1, r3]
  1531. EnablePortClockIfFirstUse(port_id);
  1532. 8000a6c: f7ff ffb0 bl 80009d0 <(anonymous namespace)::EnablePortClockIfFirstUse((anonymous namespace)::GpioPortId)>
  1533. }
  1534. 8000a70: bd10 pop {r4, pc}
  1535. 8000a72: 46c0 nop @ (mov r8, r8)
  1536. 8000a74: 20000728 .word 0x20000728
  1537.  
  1538. 08000a78 <(anonymous namespace)::GetPortIdFromPin(mcu::stm32g070::Gpio::GpioId)>:
  1539. GpioPortId GetPortIdFromPin(mcu::stm32g070::Gpio::GpioId pin) {
  1540. 8000a78: b510 push {r4, lr}
  1541. return GetPortIdFromPortRegisters(GetPortRegister(pin));
  1542. 8000a7a: f7ff ff45 bl 8000908 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)>
  1543. 8000a7e: f7ff ffbd bl 80009fc <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)>
  1544. }
  1545. 8000a82: bd10 pop {r4, pc}
  1546.  
  1547. 08000a84 <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)>:
  1548.  
  1549. void DecrementPortClockRefCount(GPIO_TypeDef *port) {
  1550. 8000a84: b510 push {r4, lr}
  1551. GpioPortId port_id = GetPortIdFromPortRegisters(port);
  1552. 8000a86: f7ff ffb9 bl 80009fc <(anonymous namespace)::GetPortIdFromPortRegisters(GPIO_TypeDef*)>
  1553. assert(io_port_ref_counters[port_id].gpio_ref_count > 0);
  1554. 8000a8a: 4b08 ldr r3, [pc, #32] @ (8000aac <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)+0x28>)
  1555. 8000a8c: 0042 lsls r2, r0, #1
  1556. 8000a8e: 5cd3 ldrb r3, [r2, r3]
  1557. 8000a90: 2b00 cmp r3, #0
  1558. 8000a92: d004 beq.n 8000a9e <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)+0x1a>
  1559. io_port_ref_counters[port_id].gpio_ref_count--;
  1560. 8000a94: 4a05 ldr r2, [pc, #20] @ (8000aac <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)+0x28>)
  1561. 8000a96: 0040 lsls r0, r0, #1
  1562. 8000a98: 3b01 subs r3, #1
  1563. 8000a9a: 5483 strb r3, [r0, r2]
  1564. DisablePortClockIfUnused(port_id);
  1565. }
  1566. 8000a9c: bd10 pop {r4, pc}
  1567. assert(io_port_ref_counters[port_id].gpio_ref_count > 0);
  1568. 8000a9e: 4b04 ldr r3, [pc, #16] @ (8000ab0 <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)+0x2c>)
  1569. 8000aa0: 4a04 ldr r2, [pc, #16] @ (8000ab4 <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)+0x30>)
  1570. 8000aa2: 4805 ldr r0, [pc, #20] @ (8000ab8 <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)+0x34>)
  1571. 8000aa4: 217e movs r1, #126 @ 0x7e
  1572. 8000aa6: f7ff fed8 bl 800085a <__assert_func>
  1573. 8000aaa: 46c0 nop @ (mov r8, r8)
  1574. 8000aac: 20000728 .word 0x20000728
  1575. 8000ab0: 08013c04 .word 0x08013c04
  1576. 8000ab4: 08013c38 .word 0x08013c38
  1577. 8000ab8: 08013bd4 .word 0x08013bd4
  1578.  
  1579. 08000abc <mcu::stm32g070::Gpio::Gpio(std::span<mcu::stm32g070::Gpio::GpioConfig const, 4294967295u>)>:
  1580.  
  1581. } // namespace
  1582.  
  1583. namespace mcu::stm32g070 {
  1584.  
  1585. Gpio::Gpio(std::span<const GpioConfig> default_pin_configurations)
  1586. 8000abc: b510 push {r4, lr}
  1587. 8000abe: b082 sub sp, #8
  1588. 8000ac0: 466b mov r3, sp
  1589. 8000ac2: 9100 str r1, [sp, #0]
  1590. 8000ac4: 605a str r2, [r3, #4]
  1591. : default_pin_cfg_{default_pin_configurations} {
  1592. 8000ac6: 0002 movs r2, r0
  1593. 8000ac8: cb12 ldmia r3!, {r1, r4}
  1594. 8000aca: c212 stmia r2!, {r1, r4}
  1595. }
  1596. 8000acc: b002 add sp, #8
  1597. 8000ace: bd10 pop {r4, pc}
  1598.  
  1599. 08000ad0 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)>:
  1600. break;
  1601. }
  1602. }
  1603. }
  1604.  
  1605. void Gpio::Configure(GpioId pin, const GpioConfig &config) {
  1606. 8000ad0: b5f8 push {r3, r4, r5, r6, r7, lr}
  1607. 8000ad2: 0005 movs r5, r0
  1608. 8000ad4: 000e movs r6, r1
  1609. GPIO_TypeDef *port = GetPortRegister(pin);
  1610. 8000ad6: f7ff ff17 bl 8000908 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)>
  1611. 8000ada: 1e04 subs r4, r0, #0
  1612. assert(port != nullptr);
  1613. 8000adc: d00a beq.n 8000af4 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x24>
  1614. uint8_t port_pin = pin & kPinMask;
  1615. 8000ade: 200f movs r0, #15
  1616. 8000ae0: 4005 ands r5, r0
  1617.  
  1618. uint8_t mode_bit_value =
  1619. (config.mode == mcu::stm32g070::Gpio::kInput) ? 0b00
  1620. 8000ae2: 7873 ldrb r3, [r6, #1]
  1621. 8000ae4: 2b02 cmp r3, #2
  1622. 8000ae6: d00b beq.n 8000b00 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x30>
  1623. 8000ae8: 2b03 cmp r3, #3
  1624. 8000aea: d00b beq.n 8000b04 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x34>
  1625. 8000aec: 2b01 cmp r3, #1
  1626. 8000aee: d123 bne.n 8000b38 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x68>
  1627. 8000af0: 2700 movs r7, #0
  1628. 8000af2: e008 b.n 8000b06 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x36>
  1629. assert(port != nullptr);
  1630. 8000af4: 4b25 ldr r3, [pc, #148] @ (8000b8c <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0xbc>)
  1631. 8000af6: 4a26 ldr r2, [pc, #152] @ (8000b90 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0xc0>)
  1632. 8000af8: 4826 ldr r0, [pc, #152] @ (8000b94 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0xc4>)
  1633. 8000afa: 21c9 movs r1, #201 @ 0xc9
  1634. 8000afc: f7ff fead bl 800085a <__assert_func>
  1635. (config.mode == mcu::stm32g070::Gpio::kInput) ? 0b00
  1636. 8000b00: 2701 movs r7, #1
  1637. 8000b02: e000 b.n 8000b06 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x36>
  1638. 8000b04: 2702 movs r7, #2
  1639.  
  1640. // TODO: Need to implement reference counting policy to disable the port
  1641. // clock, but for now, just enable the port. Note that explicit setting to
  1642. // analog mode assumes that the pin is being disabled. Analog usage is a
  1643. // separate reference counting call that needs to be done in the ADC driver.
  1644. if (config.mode == mcu::stm32g070::Gpio::kAnalog) {
  1645. 8000b06: 2b00 cmp r3, #0
  1646. 8000b08: d118 bne.n 8000b3c <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x6c>
  1647. DecrementPortClockRefCount(port);
  1648. 8000b0a: 0020 movs r0, r4
  1649. 8000b0c: f7ff ffba bl 8000a84 <(anonymous namespace)::DecrementPortClockRefCount(GPIO_TypeDef*)>
  1650. } else {
  1651. IncrementPortClockRefCount(port);
  1652. }
  1653.  
  1654. if (config.mode == mcu::stm32g070::Gpio::kInput) {
  1655. 8000b10: 7873 ldrb r3, [r6, #1]
  1656. 8000b12: 2b01 cmp r3, #1
  1657. 8000b14: d016 beq.n 8000b44 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x74>
  1658. SetPullResistor(port, port_pin, config.input_cfg.pull_resistor);
  1659. } else if (config.mode == mcu::stm32g070::Gpio::kOutput) {
  1660. 8000b16: 2b02 cmp r3, #2
  1661. 8000b18: d01a beq.n 8000b50 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x80>
  1662. SetPullResistor(port, port_pin, config.output_cfg.pull_resistor);
  1663. SetOutputConfig(port, port_pin, config.output_cfg.output_type,
  1664. config.output_cfg.speed);
  1665. } else if (config.mode == mcu::stm32g070::Gpio::kAnalog) {
  1666. 8000b1a: 2b00 cmp r3, #0
  1667. 8000b1c: d001 beq.n 8000b22 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x52>
  1668. // No-op since pull up/down is automatically disconnected in analog mode
  1669. } else if (config.mode == mcu::stm32g070::Gpio::kAlternateFunc) {
  1670. 8000b1e: 2b03 cmp r3, #3
  1671. 8000b20: d022 beq.n 8000b68 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x98>
  1672. config.af_cfg.speed);
  1673. SetAltConfig(port, port_pin, config.af_cfg.alt_func);
  1674. }
  1675.  
  1676. // Set GPIO mode last to avoid glitching
  1677. port->MODER &= ~(0b11 << (port_pin << 1));
  1678. 8000b22: 6823 ldr r3, [r4, #0]
  1679. 8000b24: 006d lsls r5, r5, #1
  1680. 8000b26: 2203 movs r2, #3
  1681. 8000b28: 40aa lsls r2, r5
  1682. 8000b2a: 4393 bics r3, r2
  1683. 8000b2c: 6023 str r3, [r4, #0]
  1684. port->MODER |= (mode_bit_value << (port_pin << 1));
  1685. 8000b2e: 6823 ldr r3, [r4, #0]
  1686. 8000b30: 40af lsls r7, r5
  1687. 8000b32: 433b orrs r3, r7
  1688. 8000b34: 6023 str r3, [r4, #0]
  1689. }
  1690. 8000b36: bdf8 pop {r3, r4, r5, r6, r7, pc}
  1691. (config.mode == mcu::stm32g070::Gpio::kInput) ? 0b00
  1692. 8000b38: 2703 movs r7, #3
  1693. 8000b3a: e7e4 b.n 8000b06 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x36>
  1694. IncrementPortClockRefCount(port);
  1695. 8000b3c: 0020 movs r0, r4
  1696. 8000b3e: f7ff ff8d bl 8000a5c <(anonymous namespace)::IncrementPortClockRefCount(GPIO_TypeDef*)>
  1697. 8000b42: e7e5 b.n 8000b10 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x40>
  1698. SetPullResistor(port, port_pin, config.input_cfg.pull_resistor);
  1699. 8000b44: 78b2 ldrb r2, [r6, #2]
  1700. 8000b46: 0029 movs r1, r5
  1701. 8000b48: 0020 movs r0, r4
  1702. 8000b4a: f7ff fefb bl 8000944 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)>
  1703. 8000b4e: e7e8 b.n 8000b22 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x52>
  1704. SetPullResistor(port, port_pin, config.output_cfg.pull_resistor);
  1705. 8000b50: 7932 ldrb r2, [r6, #4]
  1706. 8000b52: 0029 movs r1, r5
  1707. 8000b54: 0020 movs r0, r4
  1708. 8000b56: f7ff fef5 bl 8000944 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)>
  1709. SetOutputConfig(port, port_pin, config.output_cfg.output_type,
  1710. 8000b5a: 78b2 ldrb r2, [r6, #2]
  1711. config.output_cfg.speed);
  1712. 8000b5c: 78f3 ldrb r3, [r6, #3]
  1713. SetOutputConfig(port, port_pin, config.output_cfg.output_type,
  1714. 8000b5e: 0029 movs r1, r5
  1715. 8000b60: 0020 movs r0, r4
  1716. 8000b62: f7ff ff0a bl 800097a <(anonymous namespace)::SetOutputConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioOutputType, mcu::stm32g070::Gpio::GpioOutputSpeed)>
  1717. 8000b66: e7dc b.n 8000b22 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x52>
  1718. SetPullResistor(port, port_pin, config.af_cfg.pull_resistor);
  1719. 8000b68: 7972 ldrb r2, [r6, #5]
  1720. 8000b6a: 0029 movs r1, r5
  1721. 8000b6c: 0020 movs r0, r4
  1722. 8000b6e: f7ff fee9 bl 8000944 <(anonymous namespace)::SetPullResistor(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioPullResistor)>
  1723. SetOutputConfig(port, port_pin, config.af_cfg.output_type,
  1724. 8000b72: 78f2 ldrb r2, [r6, #3]
  1725. config.af_cfg.speed);
  1726. 8000b74: 7933 ldrb r3, [r6, #4]
  1727. SetOutputConfig(port, port_pin, config.af_cfg.output_type,
  1728. 8000b76: 0029 movs r1, r5
  1729. 8000b78: 0020 movs r0, r4
  1730. 8000b7a: f7ff fefe bl 800097a <(anonymous namespace)::SetOutputConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioOutputType, mcu::stm32g070::Gpio::GpioOutputSpeed)>
  1731. SetAltConfig(port, port_pin, config.af_cfg.alt_func);
  1732. 8000b7e: 78b2 ldrb r2, [r6, #2]
  1733. 8000b80: 0029 movs r1, r5
  1734. 8000b82: 0020 movs r0, r4
  1735. 8000b84: f7ff ff12 bl 80009ac <(anonymous namespace)::SetAltConfig(GPIO_TypeDef*, unsigned char, mcu::stm32g070::Gpio::GpioAltFunc)>
  1736. 8000b88: e7cb b.n 8000b22 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)+0x52>
  1737. 8000b8a: 46c0 nop @ (mov r8, r8)
  1738. 8000b8c: 08013c74 .word 0x08013c74
  1739. 8000b90: 08013c84 .word 0x08013c84
  1740. 8000b94: 08013bd4 .word 0x08013bd4
  1741.  
  1742. 08000b98 <mcu::stm32g070::Gpio::ConfigureAllToDefault()>:
  1743. void Gpio::ConfigureAllToDefault() {
  1744. 8000b98: b570 push {r4, r5, r6, lr}
  1745. _GLIBCXX_CONSTEXPR __normal_iterator() _GLIBCXX_NOEXCEPT
  1746. : _M_current(_Iterator()) { }
  1747.  
  1748. explicit _GLIBCXX20_CONSTEXPR
  1749. __normal_iterator(const _Iterator& __i) _GLIBCXX_NOEXCEPT
  1750. : _M_current(__i) { }
  1751. 8000b9a: 6805 ldr r5, [r0, #0]
  1752. for (auto &config : default_pin_cfg_) {
  1753. 8000b9c: 002c movs r4, r5
  1754. { return this->_M_extent_value; }
  1755. 8000b9e: 6842 ldr r2, [r0, #4]
  1756. { return iterator(this->_M_ptr); }
  1757.  
  1758. [[nodiscard]]
  1759. constexpr iterator
  1760. end() const noexcept
  1761. { return iterator(this->_M_ptr + this->size()); }
  1762. 8000ba0: 0053 lsls r3, r2, #1
  1763. 8000ba2: 189b adds r3, r3, r2
  1764. 8000ba4: 005b lsls r3, r3, #1
  1765. 8000ba6: 18ed adds r5, r5, r3
  1766. 8000ba8: e004 b.n 8000bb4 <mcu::stm32g070::Gpio::ConfigureAllToDefault()+0x1c>
  1767. Gpio::Configure(config.pin, config);
  1768. 8000baa: 7820 ldrb r0, [r4, #0]
  1769. 8000bac: 0021 movs r1, r4
  1770. 8000bae: f7ff ff8f bl 8000ad0 <mcu::stm32g070::Gpio::Configure(mcu::stm32g070::Gpio::GpioId, mcu::stm32g070::Gpio::GpioConfig const&)>
  1771.  
  1772. _GLIBCXX20_CONSTEXPR
  1773. __normal_iterator&
  1774. operator++() _GLIBCXX_NOEXCEPT
  1775. {
  1776. ++_M_current;
  1777. 8000bb2: 3406 adds r4, #6
  1778. for (auto &config : default_pin_cfg_) {
  1779. 8000bb4: 42a5 cmp r5, r4
  1780. 8000bb6: d1f8 bne.n 8000baa <mcu::stm32g070::Gpio::ConfigureAllToDefault()+0x12>
  1781. }
  1782. 8000bb8: bd70 pop {r4, r5, r6, pc}
  1783.  
  1784. 08000bba <mcu::stm32g070::Gpio::Write(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::LogicLevel)>:
  1785. uint8_t port_pin = pin & kPinMask;
  1786. uint32_t value = port->IDR & (0b1 << port_pin);
  1787. return value ? Gpio::LogicLevel::kHigh : Gpio::LogicLevel::kLow;
  1788. }
  1789.  
  1790. void Gpio::Write(GpioId pin, Gpio::LogicLevel value) {
  1791. 8000bba: b570 push {r4, r5, r6, lr}
  1792. 8000bbc: 0004 movs r4, r0
  1793. 8000bbe: 000d movs r5, r1
  1794. GPIO_TypeDef *port = GetPortRegister(pin);
  1795. 8000bc0: f7ff fea2 bl 8000908 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)>
  1796. uint8_t port_pin = pin & kPinMask;
  1797. 8000bc4: 220f movs r2, #15
  1798. 8000bc6: 4022 ands r2, r4
  1799. uint32_t mask = 0b1 << port_pin;
  1800. 8000bc8: 2301 movs r3, #1
  1801. 8000bca: 4093 lsls r3, r2
  1802. if (value == Gpio::LogicLevel::kLow) {
  1803. 8000bcc: 2d01 cmp r5, #1
  1804. 8000bce: d003 beq.n 8000bd8 <mcu::stm32g070::Gpio::Write(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::LogicLevel)+0x1e>
  1805. port->ODR &= ~mask;
  1806. } else {
  1807. port->ODR |= mask;
  1808. 8000bd0: 6942 ldr r2, [r0, #20]
  1809. 8000bd2: 4313 orrs r3, r2
  1810. 8000bd4: 6143 str r3, [r0, #20]
  1811. }
  1812. }
  1813. 8000bd6: bd70 pop {r4, r5, r6, pc}
  1814. port->ODR &= ~mask;
  1815. 8000bd8: 6942 ldr r2, [r0, #20]
  1816. 8000bda: 439a bics r2, r3
  1817. 8000bdc: 6142 str r2, [r0, #20]
  1818. 8000bde: e7fa b.n 8000bd6 <mcu::stm32g070::Gpio::Write(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::LogicLevel)+0x1c>
  1819.  
  1820. 08000be0 <mcu::stm32g070::Gpio::Toggle(mcu::stm32g070::Gpio::GpioId)>:
  1821.  
  1822. Gpio::LogicLevel Gpio::Toggle(GpioId pin) {
  1823. 8000be0: b510 push {r4, lr}
  1824. 8000be2: 0004 movs r4, r0
  1825. GPIO_TypeDef *port = GetPortRegister(pin);
  1826. 8000be4: f7ff fe90 bl 8000908 <(anonymous namespace)::GetPortRegister(mcu::stm32g070::Gpio::GpioId)>
  1827. uint8_t port_pin = pin & kPinMask;
  1828. 8000be8: 220f movs r2, #15
  1829. 8000bea: 4022 ands r2, r4
  1830. uint32_t mask = 0b1 << port_pin;
  1831. 8000bec: 2301 movs r3, #1
  1832. 8000bee: 4093 lsls r3, r2
  1833. uint32_t current_output_value = port->ODR & mask;
  1834. 8000bf0: 6942 ldr r2, [r0, #20]
  1835. if (current_output_value) {
  1836. 8000bf2: 4213 tst r3, r2
  1837. 8000bf4: d004 beq.n 8000c00 <mcu::stm32g070::Gpio::Toggle(mcu::stm32g070::Gpio::GpioId)+0x20>
  1838. port->ODR &= ~mask;
  1839. 8000bf6: 6942 ldr r2, [r0, #20]
  1840. 8000bf8: 439a bics r2, r3
  1841. 8000bfa: 6142 str r2, [r0, #20]
  1842. return Gpio::LogicLevel::kLow;
  1843. 8000bfc: 2001 movs r0, #1
  1844. } else {
  1845. port->ODR |= mask;
  1846. return Gpio::LogicLevel::kHigh;
  1847. }
  1848. }
  1849. 8000bfe: bd10 pop {r4, pc}
  1850. port->ODR |= mask;
  1851. 8000c00: 6942 ldr r2, [r0, #20]
  1852. 8000c02: 4313 orrs r3, r2
  1853. 8000c04: 6143 str r3, [r0, #20]
  1854. return Gpio::LogicLevel::kHigh;
  1855. 8000c06: 2000 movs r0, #0
  1856. 8000c08: e7f9 b.n 8000bfe <mcu::stm32g070::Gpio::Toggle(mcu::stm32g070::Gpio::GpioId)+0x1e>
  1857. ...
  1858.  
  1859. 08000c0c <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)>:
  1860.  
  1861. void Gpio::ConfigureInterrupt(GpioId pin, InterruptEvent interrupt_mode,
  1862. InterruptDelegate callback) {
  1863. 8000c0c: b5f0 push {r4, r5, r6, r7, lr}
  1864. 8000c0e: 46c6 mov lr, r8
  1865. 8000c10: b500 push {lr}
  1866. 8000c12: 0006 movs r6, r0
  1867. 8000c14: 000d movs r5, r1
  1868. uint8_t port_pin = pin & kPinMask;
  1869. 8000c16: 240f movs r4, #15
  1870. 8000c18: 4004 ands r4, r0
  1871. return stub_ptr != nullptr;
  1872. 8000c1a: 4b2f ldr r3, [pc, #188] @ (8000cd8 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xcc>)
  1873. 8000c1c: 0061 lsls r1, r4, #1
  1874. 8000c1e: 1909 adds r1, r1, r4
  1875. 8000c20: 0089 lsls r1, r1, #2
  1876. 8000c22: 185b adds r3, r3, r1
  1877. 8000c24: 689b ldr r3, [r3, #8]
  1878. auto &gpio_irq_info = irq_callback_table[port_pin];
  1879. assert(!gpio_irq_info.callback.IsValid());
  1880. 8000c26: 2b00 cmp r3, #0
  1881. 8000c28: d13c bne.n 8000ca4 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0x98>
  1882. gpio_irq_info.pin = pin;
  1883. 8000c2a: 4b2b ldr r3, [pc, #172] @ (8000cd8 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xcc>)
  1884. 8000c2c: 0061 lsls r1, r4, #1
  1885. 8000c2e: 1908 adds r0, r1, r4
  1886. 8000c30: 0080 lsls r0, r0, #2
  1887. 8000c32: 54c6 strb r6, [r0, r3]
  1888. object_ptr = other.object_ptr;
  1889. 8000c34: 6817 ldr r7, [r2, #0]
  1890. 8000c36: 1908 adds r0, r1, r4
  1891. 8000c38: 0080 lsls r0, r0, #2
  1892. 8000c3a: 1818 adds r0, r3, r0
  1893. 8000c3c: 6047 str r7, [r0, #4]
  1894. stub_ptr = other.stub_ptr;
  1895. 8000c3e: 6852 ldr r2, [r2, #4]
  1896. 8000c40: 6082 str r2, [r0, #8]
  1897. gpio_irq_info.callback = callback;
  1898. RCC->APBENR2 |= RCC_APBENR2_SYSCFGEN;
  1899. 8000c42: 4a26 ldr r2, [pc, #152] @ (8000cdc <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd0>)
  1900. 8000c44: 6c13 ldr r3, [r2, #64] @ 0x40
  1901. 8000c46: 2101 movs r1, #1
  1902. 8000c48: 430b orrs r3, r1
  1903. 8000c4a: 6413 str r3, [r2, #64] @ 0x40
  1904.  
  1905. auto port_id = GetPortIdFromPin(pin);
  1906. 8000c4c: 0030 movs r0, r6
  1907. 8000c4e: f7ff ff13 bl 8000a78 <(anonymous namespace)::GetPortIdFromPin(mcu::stm32g070::Gpio::GpioId)>
  1908. 8000c52: 4680 mov r8, r0
  1909. auto quadrant = port_pin >> 2;
  1910. 8000c54: 08a3 lsrs r3, r4, #2
  1911. auto quadrant_line = port_pin & 0x3;
  1912. 8000c56: 2203 movs r2, #3
  1913. 8000c58: 4032 ands r2, r6
  1914. EXTI->EXTICR[quadrant] &= ~(0x2f << (quadrant_line << 3));
  1915. 8000c5a: 4921 ldr r1, [pc, #132] @ (8000ce0 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd4>)
  1916. 8000c5c: 3318 adds r3, #24
  1917. 8000c5e: 009b lsls r3, r3, #2
  1918. 8000c60: 585f ldr r7, [r3, r1]
  1919. 8000c62: 00d2 lsls r2, r2, #3
  1920. 8000c64: 202f movs r0, #47 @ 0x2f
  1921. 8000c66: 4090 lsls r0, r2
  1922. 8000c68: 4387 bics r7, r0
  1923. 8000c6a: 505f str r7, [r3, r1]
  1924. EXTI->EXTICR[quadrant] |= (port_id << (quadrant_line << 3));
  1925. 8000c6c: 585f ldr r7, [r3, r1]
  1926. 8000c6e: 4640 mov r0, r8
  1927. 8000c70: 4090 lsls r0, r2
  1928. 8000c72: 4307 orrs r7, r0
  1929. 8000c74: 505f str r7, [r3, r1]
  1930.  
  1931. if (interrupt_mode == InterruptEvent::kRisingEdge ||
  1932. 8000c76: 2d00 cmp r5, #0
  1933. 8000c78: d001 beq.n 8000c7e <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0x72>
  1934. 8000c7a: 2d02 cmp r5, #2
  1935. 8000c7c: d105 bne.n 8000c8a <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0x7e>
  1936. interrupt_mode == InterruptEvent::kBothEdges) {
  1937. EXTI->RTSR1 |= (1 << port_pin);
  1938. 8000c7e: 4918 ldr r1, [pc, #96] @ (8000ce0 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd4>)
  1939. 8000c80: 680b ldr r3, [r1, #0]
  1940. 8000c82: 2201 movs r2, #1
  1941. 8000c84: 40a2 lsls r2, r4
  1942. 8000c86: 4313 orrs r3, r2
  1943. 8000c88: 600b str r3, [r1, #0]
  1944. }
  1945.  
  1946. if (interrupt_mode == InterruptEvent::kFallingEdge ||
  1947. 8000c8a: 3d01 subs r5, #1
  1948. 8000c8c: b2ed uxtb r5, r5
  1949. 8000c8e: 2d01 cmp r5, #1
  1950. 8000c90: d90f bls.n 8000cb2 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xa6>
  1951. interrupt_mode == InterruptEvent::kBothEdges) {
  1952. EXTI->FTSR1 |= (1 << port_pin);
  1953. }
  1954.  
  1955. if (port_pin < 2) {
  1956. 8000c92: 230e movs r3, #14
  1957. 8000c94: 4233 tst r3, r6
  1958. 8000c96: d113 bne.n 8000cc0 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xb4>
  1959. __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
  1960. {
  1961. if ((int32_t)(IRQn) >= 0)
  1962. {
  1963. __COMPILER_BARRIER();
  1964. NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
  1965. 8000c98: 4b12 ldr r3, [pc, #72] @ (8000ce4 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd8>)
  1966. 8000c9a: 2220 movs r2, #32
  1967. 8000c9c: 601a str r2, [r3, #0]
  1968. } else if (port_pin < 4) {
  1969. NVIC_EnableIRQ(EXTI2_3_IRQn);
  1970. } else {
  1971. NVIC_EnableIRQ(EXTI4_15_IRQn);
  1972. }
  1973. }
  1974. 8000c9e: bc80 pop {r7}
  1975. 8000ca0: 46b8 mov r8, r7
  1976. 8000ca2: bdf0 pop {r4, r5, r6, r7, pc}
  1977. assert(!gpio_irq_info.callback.IsValid());
  1978. 8000ca4: 4b10 ldr r3, [pc, #64] @ (8000ce8 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xdc>)
  1979. 8000ca6: 4a11 ldr r2, [pc, #68] @ (8000cec <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xe0>)
  1980. 8000ca8: 218a movs r1, #138 @ 0x8a
  1981. 8000caa: 4811 ldr r0, [pc, #68] @ (8000cf0 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xe4>)
  1982. 8000cac: 0049 lsls r1, r1, #1
  1983. 8000cae: f7ff fdd4 bl 800085a <__assert_func>
  1984. EXTI->FTSR1 |= (1 << port_pin);
  1985. 8000cb2: 490b ldr r1, [pc, #44] @ (8000ce0 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd4>)
  1986. 8000cb4: 684b ldr r3, [r1, #4]
  1987. 8000cb6: 2201 movs r2, #1
  1988. 8000cb8: 40a2 lsls r2, r4
  1989. 8000cba: 4313 orrs r3, r2
  1990. 8000cbc: 604b str r3, [r1, #4]
  1991. 8000cbe: e7e8 b.n 8000c92 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0x86>
  1992. } else if (port_pin < 4) {
  1993. 8000cc0: 230c movs r3, #12
  1994. 8000cc2: 4233 tst r3, r6
  1995. 8000cc4: d103 bne.n 8000cce <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xc2>
  1996. 8000cc6: 4b07 ldr r3, [pc, #28] @ (8000ce4 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd8>)
  1997. 8000cc8: 2240 movs r2, #64 @ 0x40
  1998. 8000cca: 601a str r2, [r3, #0]
  1999. __COMPILER_BARRIER();
  2000. }
  2001. }
  2002. 8000ccc: e7e7 b.n 8000c9e <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0x92>
  2003. NVIC->ISER[0U] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
  2004. 8000cce: 4b05 ldr r3, [pc, #20] @ (8000ce4 <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0xd8>)
  2005. 8000cd0: 2280 movs r2, #128 @ 0x80
  2006. 8000cd2: 601a str r2, [r3, #0]
  2007. }
  2008. 8000cd4: e7e3 b.n 8000c9e <mcu::stm32g070::Gpio::ConfigureInterrupt(mcu::stm32g070::Gpio::GpioId, mcu::hal::gpio::InterruptEvent, rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>)+0x92>
  2009. 8000cd6: 46c0 nop @ (mov r8, r8)
  2010. 8000cd8: 20000734 .word 0x20000734
  2011. 8000cdc: 40021000 .word 0x40021000
  2012. 8000ce0: 40021800 .word 0x40021800
  2013. 8000ce4: e000e100 .word 0xe000e100
  2014. 8000ce8: 08013e34 .word 0x08013e34
  2015. 8000cec: 08013e58 .word 0x08013e58
  2016. 8000cf0: 08013bd4 .word 0x08013bd4
  2017.  
  2018. 08000cf4 <rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::operator()(mcu::stm32g070::Gpio::GpioId) const>:
  2019. ReturnType operator()(Args... args) const {
  2020. 8000cf4: b510 push {r4, lr}
  2021. assert(stub_ptr != nullptr);
  2022. 8000cf6: 6843 ldr r3, [r0, #4]
  2023. 8000cf8: 2b00 cmp r3, #0
  2024. 8000cfa: d002 beq.n 8000d02 <rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::operator()(mcu::stm32g070::Gpio::GpioId) const+0xe>
  2025. return (*stub_ptr)(object_ptr, std::forward<Args>(args)...);
  2026. 8000cfc: 6800 ldr r0, [r0, #0]
  2027. 8000cfe: 4798 blx r3
  2028. }
  2029. 8000d00: bd10 pop {r4, pc}
  2030. assert(stub_ptr != nullptr);
  2031. 8000d02: 4b03 ldr r3, [pc, #12] @ (8000d10 <rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::operator()(mcu::stm32g070::Gpio::GpioId) const+0x1c>)
  2032. 8000d04: 4a03 ldr r2, [pc, #12] @ (8000d14 <rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::operator()(mcu::stm32g070::Gpio::GpioId) const+0x20>)
  2033. 8000d06: 4804 ldr r0, [pc, #16] @ (8000d18 <rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::operator()(mcu::stm32g070::Gpio::GpioId) const+0x24>)
  2034. 8000d08: 214a movs r1, #74 @ 0x4a
  2035. 8000d0a: f7ff fda6 bl 800085a <__assert_func>
  2036. 8000d0e: 46c0 nop @ (mov r8, r8)
  2037. 8000d10: 08013eb8 .word 0x08013eb8
  2038. 8000d14: 08013ecc .word 0x08013ecc
  2039. 8000d18: 08013f5c .word 0x08013f5c
  2040.  
  2041. 08000d1c <(anonymous namespace)::CommonISRHandler(unsigned short)>:
  2042. void CommonISRHandler([[maybe_unused]] uint16_t exti_set_mask) {
  2043. 8000d1c: b570 push {r4, r5, r6, lr}
  2044. 8000d1e: 0005 movs r5, r0
  2045. while (exti_set_mask) {
  2046. 8000d20: e011 b.n 8000d46 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x2a>
  2047. // Element access.
  2048. [[__nodiscard__]]
  2049. _GLIBCXX17_CONSTEXPR reference
  2050. operator[](size_type __n) noexcept
  2051. {
  2052. __glibcxx_requires_subscript(__n);
  2053. 8000d22: 4b18 ldr r3, [pc, #96] @ (8000d84 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x68>)
  2054. 8000d24: 4a18 ldr r2, [pc, #96] @ (8000d88 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x6c>)
  2055. 8000d26: 4819 ldr r0, [pc, #100] @ (8000d8c <(anonymous namespace)::CommonISRHandler(unsigned short)+0x70>)
  2056. 8000d28: 21ca movs r1, #202 @ 0xca
  2057. 8000d2a: f000 f97d bl 8001028 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)>
  2058. EXTI->RPR1 &= (1 << index);
  2059. 8000d2e: 4a18 ldr r2, [pc, #96] @ (8000d90 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x74>)
  2060. 8000d30: 68d1 ldr r1, [r2, #12]
  2061. 8000d32: 2301 movs r3, #1
  2062. 8000d34: 40a3 lsls r3, r4
  2063. 8000d36: 4019 ands r1, r3
  2064. 8000d38: 60d1 str r1, [r2, #12]
  2065. EXTI->FPR1 &= (1 << index);
  2066. 8000d3a: 6911 ldr r1, [r2, #16]
  2067. 8000d3c: 4019 ands r1, r3
  2068. 8000d3e: 6111 str r1, [r2, #16]
  2069. exti_set_mask &= ~(1 << index);
  2070. 8000d40: 43db mvns r3, r3
  2071. 8000d42: b21b sxth r3, r3
  2072. 8000d44: 401d ands r5, r3
  2073. while (exti_set_mask) {
  2074. 8000d46: 2d00 cmp r5, #0
  2075. 8000d48: d01a beq.n 8000d80 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x64>
  2076. uint8_t index = __builtin_ctz(exti_set_mask);
  2077. 8000d4a: 0028 movs r0, r5
  2078. 8000d4c: f7ff fa40 bl 80001d0 <__ctzsi2>
  2079. auto &gpio_irq_info = irq_callback_table[index];
  2080. 8000d50: 24ff movs r4, #255 @ 0xff
  2081. 8000d52: 4004 ands r4, r0
  2082. 8000d54: 2c0f cmp r4, #15
  2083. 8000d56: d8e4 bhi.n 8000d22 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x6>
  2084. return stub_ptr != nullptr;
  2085. 8000d58: 4b0e ldr r3, [pc, #56] @ (8000d94 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x78>)
  2086. 8000d5a: 0062 lsls r2, r4, #1
  2087. 8000d5c: 1912 adds r2, r2, r4
  2088. 8000d5e: 0092 lsls r2, r2, #2
  2089. 8000d60: 189b adds r3, r3, r2
  2090. 8000d62: 689b ldr r3, [r3, #8]
  2091. if (gpio_irq_info.callback.IsValid()) {
  2092. 8000d64: 2b00 cmp r3, #0
  2093. 8000d66: d0e2 beq.n 8000d2e <(anonymous namespace)::CommonISRHandler(unsigned short)+0x12>
  2094. gpio_irq_info.callback(gpio_irq_info.pin);
  2095. 8000d68: 4a0a ldr r2, [pc, #40] @ (8000d94 <(anonymous namespace)::CommonISRHandler(unsigned short)+0x78>)
  2096. 8000d6a: 0060 lsls r0, r4, #1
  2097. 8000d6c: 1901 adds r1, r0, r4
  2098. 8000d6e: 0089 lsls r1, r1, #2
  2099. 8000d70: 5c89 ldrb r1, [r1, r2]
  2100. 8000d72: 1900 adds r0, r0, r4
  2101. 8000d74: 0080 lsls r0, r0, #2
  2102. 8000d76: 1880 adds r0, r0, r2
  2103. 8000d78: 3004 adds r0, #4
  2104. 8000d7a: f7ff ffbb bl 8000cf4 <rtlib::Delegate<void (mcu::stm32g070::Gpio::GpioId)>::operator()(mcu::stm32g070::Gpio::GpioId) const>
  2105. 8000d7e: e7d6 b.n 8000d2e <(anonymous namespace)::CommonISRHandler(unsigned short)+0x12>
  2106. }
  2107. 8000d80: bd70 pop {r4, r5, r6, pc}
  2108. 8000d82: 46c0 nop @ (mov r8, r8)
  2109. 8000d84: 08013ccc .word 0x08013ccc
  2110. 8000d88: 08013ce0 .word 0x08013ce0
  2111. 8000d8c: 08013dc4 .word 0x08013dc4
  2112. 8000d90: 40021800 .word 0x40021800
  2113. 8000d94: 20000734 .word 0x20000734
  2114.  
  2115. 08000d98 <EXTI0_1_IRQHandler>:
  2116. extern "C" void EXTI0_1_IRQHandler(void) {
  2117. 8000d98: b510 push {r4, lr}
  2118. uint16_t mask = SYSCFG->IT_LINE_SR[5] & 0b11;
  2119. 8000d9a: 4a04 ldr r2, [pc, #16] @ (8000dac <EXTI0_1_IRQHandler+0x14>)
  2120. 8000d9c: 2394 movs r3, #148 @ 0x94
  2121. 8000d9e: 58d0 ldr r0, [r2, r3]
  2122. 8000da0: 3b91 subs r3, #145 @ 0x91
  2123. 8000da2: 4018 ands r0, r3
  2124. CommonISRHandler(mask);
  2125. 8000da4: f7ff ffba bl 8000d1c <(anonymous namespace)::CommonISRHandler(unsigned short)>
  2126. }
  2127. 8000da8: bd10 pop {r4, pc}
  2128. 8000daa: 46c0 nop @ (mov r8, r8)
  2129. 8000dac: 40010000 .word 0x40010000
  2130.  
  2131. 08000db0 <EXTI2_3_IRQHandler>:
  2132. extern "C" void EXTI2_3_IRQHandler(void) {
  2133. 8000db0: b510 push {r4, lr}
  2134. uint16_t mask = (SYSCFG->IT_LINE_SR[6] & 0b11) << 2;
  2135. 8000db2: 4a04 ldr r2, [pc, #16] @ (8000dc4 <EXTI2_3_IRQHandler+0x14>)
  2136. 8000db4: 2398 movs r3, #152 @ 0x98
  2137. 8000db6: 58d0 ldr r0, [r2, r3]
  2138. 8000db8: 0080 lsls r0, r0, #2
  2139. 8000dba: 3b8c subs r3, #140 @ 0x8c
  2140. 8000dbc: 4018 ands r0, r3
  2141. CommonISRHandler(mask);
  2142. 8000dbe: f7ff ffad bl 8000d1c <(anonymous namespace)::CommonISRHandler(unsigned short)>
  2143. }
  2144. 8000dc2: bd10 pop {r4, pc}
  2145. 8000dc4: 40010000 .word 0x40010000
  2146.  
  2147. 08000dc8 <EXTI4_15_IRQHandler>:
  2148. extern "C" void EXTI4_15_IRQHandler(void) {
  2149. 8000dc8: b510 push {r4, lr}
  2150. uint16_t mask = (SYSCFG->IT_LINE_SR[7] & 0xfff) << 4;
  2151. 8000dca: 4a04 ldr r2, [pc, #16] @ (8000ddc <EXTI4_15_IRQHandler+0x14>)
  2152. 8000dcc: 239c movs r3, #156 @ 0x9c
  2153. 8000dce: 58d0 ldr r0, [r2, r3]
  2154. 8000dd0: b280 uxth r0, r0
  2155. 8000dd2: 0100 lsls r0, r0, #4
  2156. 8000dd4: b280 uxth r0, r0
  2157. CommonISRHandler(mask);
  2158. 8000dd6: f7ff ffa1 bl 8000d1c <(anonymous namespace)::CommonISRHandler(unsigned short)>
  2159. }
  2160. 8000dda: bd10 pop {r4, pc}
  2161. 8000ddc: 40010000 .word 0x40010000
  2162.  
  2163. 08000de0 <mcu::stm32g070::SysClock::Set64MHzSysClk()>:
  2164. // APB prescaled by 4 for 16 MHz PCLK
  2165. static void Set64MHzSysClk(void) {
  2166. // NOTE: Assume POR conditions at this point: SYSCLK = HSI @ 16 MHz
  2167.  
  2168. // Disable PLL
  2169. RCC->CR &= (uint32_t)(~RCC_CR_PLLON);
  2170. 8000de0: 4a21 ldr r2, [pc, #132] @ (8000e68 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x88>)
  2171. 8000de2: 6813 ldr r3, [r2, #0]
  2172. 8000de4: 4921 ldr r1, [pc, #132] @ (8000e6c <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x8c>)
  2173. 8000de6: 400b ands r3, r1
  2174. 8000de8: 6013 str r3, [r2, #0]
  2175. while ((RCC->CR & RCC_CR_PLLRDY) != 0);
  2176. 8000dea: 4b1f ldr r3, [pc, #124] @ (8000e68 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x88>)
  2177. 8000dec: 681b ldr r3, [r3, #0]
  2178. 8000dee: 019b lsls r3, r3, #6
  2179. 8000df0: d4fb bmi.n 8000dea <mcu::stm32g070::SysClock::Set64MHzSysClk()+0xa>
  2180.  
  2181. // Set flash latency to 2 wait states
  2182. FLASH->ACR &= (uint32_t)(~FLASH_ACR_LATENCY);
  2183. 8000df2: 4b1f ldr r3, [pc, #124] @ (8000e70 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x90>)
  2184. 8000df4: 681a ldr r2, [r3, #0]
  2185. 8000df6: 2107 movs r1, #7
  2186. 8000df8: 438a bics r2, r1
  2187. 8000dfa: 601a str r2, [r3, #0]
  2188. FLASH->ACR |= FLASH_ACR_LATENCY_1;
  2189. 8000dfc: 681a ldr r2, [r3, #0]
  2190. 8000dfe: 3905 subs r1, #5
  2191. 8000e00: 430a orrs r2, r1
  2192. 8000e02: 601a str r2, [r3, #0]
  2193. while ((FLASH->ACR & FLASH_ACR_LATENCY) != FLASH_ACR_LATENCY_1);
  2194. 8000e04: 4b1a ldr r3, [pc, #104] @ (8000e70 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x90>)
  2195. 8000e06: 681a ldr r2, [r3, #0]
  2196. 8000e08: 2307 movs r3, #7
  2197. 8000e0a: 4013 ands r3, r2
  2198. 8000e0c: 2b02 cmp r3, #2
  2199. 8000e0e: d1f9 bne.n 8000e04 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x24>
  2200.  
  2201. // Enable instruction prefech & cache
  2202. FLASH->ACR |= FLASH_ACR_PRFTEN;
  2203. 8000e10: 4b17 ldr r3, [pc, #92] @ (8000e70 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x90>)
  2204. 8000e12: 6819 ldr r1, [r3, #0]
  2205. 8000e14: 2280 movs r2, #128 @ 0x80
  2206. 8000e16: 0052 lsls r2, r2, #1
  2207. 8000e18: 430a orrs r2, r1
  2208. 8000e1a: 601a str r2, [r3, #0]
  2209. FLASH->ACR |= FLASH_ACR_ICEN;
  2210. 8000e1c: 6819 ldr r1, [r3, #0]
  2211. 8000e1e: 2280 movs r2, #128 @ 0x80
  2212. 8000e20: 0092 lsls r2, r2, #2
  2213. 8000e22: 430a orrs r2, r1
  2214. 8000e24: 601a str r2, [r3, #0]
  2215.  
  2216. // fVCO = HSI * (N/M) = 16 MHz * 16 = 256 MHz
  2217. // fPLLR = fVCO / 4 = 64 MHz
  2218. RCC->PLLCFGR = (0b011 << RCC_PLLCFGR_PLLR_Pos) | RCC_PLLCFGR_PLLREN |
  2219. 8000e26: 4b10 ldr r3, [pc, #64] @ (8000e68 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x88>)
  2220. 8000e28: 4a12 ldr r2, [pc, #72] @ (8000e74 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x94>)
  2221. 8000e2a: 60da str r2, [r3, #12]
  2222. (0b100000 << RCC_PLLCFGR_PLLN_Pos) |
  2223. (0b001 << RCC_PLLCFGR_PLLM_Pos) | RCC_PLLCFGR_PLLSRC_1;
  2224.  
  2225. // Set APB prescalar to /4 for PCLK = 16 Mhz
  2226. RCC->CFGR &= ~(RCC_CFGR_PPRE);
  2227. 8000e2c: 689a ldr r2, [r3, #8]
  2228. 8000e2e: 4912 ldr r1, [pc, #72] @ (8000e78 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x98>)
  2229. 8000e30: 400a ands r2, r1
  2230. 8000e32: 609a str r2, [r3, #8]
  2231. RCC->CFGR |= (0b101 << RCC_CFGR_PPRE_Pos);
  2232. 8000e34: 6899 ldr r1, [r3, #8]
  2233. 8000e36: 22a0 movs r2, #160 @ 0xa0
  2234. 8000e38: 01d2 lsls r2, r2, #7
  2235. 8000e3a: 430a orrs r2, r1
  2236. 8000e3c: 609a str r2, [r3, #8]
  2237.  
  2238. // Enable PLL
  2239. RCC->CR |= RCC_CR_PLLON;
  2240. 8000e3e: 6819 ldr r1, [r3, #0]
  2241. 8000e40: 2280 movs r2, #128 @ 0x80
  2242. 8000e42: 0452 lsls r2, r2, #17
  2243. 8000e44: 430a orrs r2, r1
  2244. 8000e46: 601a str r2, [r3, #0]
  2245. while ((RCC->CR & RCC_CR_PLLRDY) == 0);
  2246. 8000e48: 4b07 ldr r3, [pc, #28] @ (8000e68 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x88>)
  2247. 8000e4a: 681b ldr r3, [r3, #0]
  2248. 8000e4c: 019b lsls r3, r3, #6
  2249. 8000e4e: d5fb bpl.n 8000e48 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x68>
  2250.  
  2251. // Use PLLRCLK as clock source for SYSCLK
  2252. RCC->CFGR |= (uint32_t)(RCC_CFGR_SW_1);
  2253. 8000e50: 4a05 ldr r2, [pc, #20] @ (8000e68 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x88>)
  2254. 8000e52: 6893 ldr r3, [r2, #8]
  2255. 8000e54: 2102 movs r1, #2
  2256. 8000e56: 430b orrs r3, r1
  2257. 8000e58: 6093 str r3, [r2, #8]
  2258. while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1);
  2259. 8000e5a: 4b03 ldr r3, [pc, #12] @ (8000e68 <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x88>)
  2260. 8000e5c: 689a ldr r2, [r3, #8]
  2261. 8000e5e: 2338 movs r3, #56 @ 0x38
  2262. 8000e60: 4013 ands r3, r2
  2263. 8000e62: 2b10 cmp r3, #16
  2264. 8000e64: d1f9 bne.n 8000e5a <mcu::stm32g070::SysClock::Set64MHzSysClk()+0x7a>
  2265. }
  2266. 8000e66: 4770 bx lr
  2267. 8000e68: 40021000 .word 0x40021000
  2268. 8000e6c: feffffff .word 0xfeffffff
  2269. 8000e70: 40022000 .word 0x40022000
  2270. 8000e74: 70002012 .word 0x70002012
  2271. 8000e78: ffff8fff .word 0xffff8fff
  2272.  
  2273. 08000e7c <mcu::stm32g070::SysClock::Init()>:
  2274.  
  2275. void Init() {
  2276. 8000e7c: b510 push {r4, lr}
  2277. Set64MHzSysClk();
  2278. 8000e7e: f7ff ffaf bl 8000de0 <mcu::stm32g070::SysClock::Set64MHzSysClk()>
  2279. }
  2280. 8000e82: bd10 pop {r4, pc}
  2281.  
  2282. 08000e84 <(anonymous namespace)::GetUartController(mcu::stm32g070::Uart::UartId)>:
  2283.  
  2284. namespace {
  2285. USART_TypeDef *GetUartController(mcu::stm32g070::Uart::UartId id) {
  2286. static constexpr USART_TypeDef *table[mcu::stm32g070::Uart::kNumUartId] = {
  2287. USART1, USART2, USART3, USART4};
  2288. return table[id];
  2289. 8000e84: 4b01 ldr r3, [pc, #4] @ (8000e8c <(anonymous namespace)::GetUartController(mcu::stm32g070::Uart::UartId)+0x8>)
  2290. 8000e86: 0080 lsls r0, r0, #2
  2291. 8000e88: 58c0 ldr r0, [r0, r3]
  2292. }
  2293. 8000e8a: 4770 bx lr
  2294. 8000e8c: 08014bc4 .word 0x08014bc4
  2295.  
  2296. 08000e90 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)>:
  2297.  
  2298. void EnableUartClock(mcu::stm32g070::Uart::UartId id) {
  2299. if (id == mcu::stm32g070::Uart::kUart1) {
  2300. 8000e90: 2800 cmp r0, #0
  2301. 8000e92: d106 bne.n 8000ea2 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x12>
  2302. RCC->APBENR2 |= RCC_APBENR2_USART1EN;
  2303. 8000e94: 4a10 ldr r2, [pc, #64] @ (8000ed8 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x48>)
  2304. 8000e96: 6c11 ldr r1, [r2, #64] @ 0x40
  2305. 8000e98: 2380 movs r3, #128 @ 0x80
  2306. 8000e9a: 01db lsls r3, r3, #7
  2307. 8000e9c: 430b orrs r3, r1
  2308. 8000e9e: 6413 str r3, [r2, #64] @ 0x40
  2309. } else if (id == mcu::stm32g070::Uart::kUart3) {
  2310. RCC->APBENR1 |= RCC_APBENR1_USART3EN;
  2311. } else if (id == mcu::stm32g070::Uart::kUart4) {
  2312. RCC->APBENR1 |= RCC_APBENR1_USART4EN;
  2313. }
  2314. }
  2315. 8000ea0: 4770 bx lr
  2316. } else if (id == mcu::stm32g070::Uart::kUart2) {
  2317. 8000ea2: 2801 cmp r0, #1
  2318. 8000ea4: d00a beq.n 8000ebc <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x2c>
  2319. } else if (id == mcu::stm32g070::Uart::kUart3) {
  2320. 8000ea6: 2802 cmp r0, #2
  2321. 8000ea8: d00f beq.n 8000eca <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x3a>
  2322. } else if (id == mcu::stm32g070::Uart::kUart4) {
  2323. 8000eaa: 2803 cmp r0, #3
  2324. 8000eac: d1f8 bne.n 8000ea0 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x10>
  2325. RCC->APBENR1 |= RCC_APBENR1_USART4EN;
  2326. 8000eae: 4a0a ldr r2, [pc, #40] @ (8000ed8 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x48>)
  2327. 8000eb0: 6bd1 ldr r1, [r2, #60] @ 0x3c
  2328. 8000eb2: 2380 movs r3, #128 @ 0x80
  2329. 8000eb4: 031b lsls r3, r3, #12
  2330. 8000eb6: 430b orrs r3, r1
  2331. 8000eb8: 63d3 str r3, [r2, #60] @ 0x3c
  2332. }
  2333. 8000eba: e7f1 b.n 8000ea0 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x10>
  2334. RCC->APBENR1 |= RCC_APBENR1_USART2EN;
  2335. 8000ebc: 4a06 ldr r2, [pc, #24] @ (8000ed8 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x48>)
  2336. 8000ebe: 6bd1 ldr r1, [r2, #60] @ 0x3c
  2337. 8000ec0: 2380 movs r3, #128 @ 0x80
  2338. 8000ec2: 029b lsls r3, r3, #10
  2339. 8000ec4: 430b orrs r3, r1
  2340. 8000ec6: 63d3 str r3, [r2, #60] @ 0x3c
  2341. 8000ec8: e7ea b.n 8000ea0 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x10>
  2342. RCC->APBENR1 |= RCC_APBENR1_USART3EN;
  2343. 8000eca: 4a03 ldr r2, [pc, #12] @ (8000ed8 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x48>)
  2344. 8000ecc: 6bd1 ldr r1, [r2, #60] @ 0x3c
  2345. 8000ece: 2380 movs r3, #128 @ 0x80
  2346. 8000ed0: 02db lsls r3, r3, #11
  2347. 8000ed2: 430b orrs r3, r1
  2348. 8000ed4: 63d3 str r3, [r2, #60] @ 0x3c
  2349. 8000ed6: e7e3 b.n 8000ea0 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)+0x10>
  2350. 8000ed8: 40021000 .word 0x40021000
  2351.  
  2352. 08000edc <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)>:
  2353.  
  2354. void DisableUartClock(mcu::stm32g070::Uart::UartId id) {
  2355. if (id == mcu::stm32g070::Uart::kUart1) {
  2356. 8000edc: 2800 cmp r0, #0
  2357. 8000ede: d105 bne.n 8000eec <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x10>
  2358. RCC->APBENR2 &= ~RCC_APBENR2_USART1EN;
  2359. 8000ee0: 4a0e ldr r2, [pc, #56] @ (8000f1c <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x40>)
  2360. 8000ee2: 6c13 ldr r3, [r2, #64] @ 0x40
  2361. 8000ee4: 490e ldr r1, [pc, #56] @ (8000f20 <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x44>)
  2362. 8000ee6: 400b ands r3, r1
  2363. 8000ee8: 6413 str r3, [r2, #64] @ 0x40
  2364. } else if (id == mcu::stm32g070::Uart::kUart3) {
  2365. RCC->APBENR1 &= ~RCC_APBENR1_USART3EN;
  2366. } else if (id == mcu::stm32g070::Uart::kUart4) {
  2367. RCC->APBENR1 &= ~RCC_APBENR1_USART4EN;
  2368. }
  2369. }
  2370. 8000eea: 4770 bx lr
  2371. } else if (id == mcu::stm32g070::Uart::kUart2) {
  2372. 8000eec: 2801 cmp r0, #1
  2373. 8000eee: d009 beq.n 8000f04 <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x28>
  2374. } else if (id == mcu::stm32g070::Uart::kUart3) {
  2375. 8000ef0: 2802 cmp r0, #2
  2376. 8000ef2: d00d beq.n 8000f10 <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x34>
  2377. } else if (id == mcu::stm32g070::Uart::kUart4) {
  2378. 8000ef4: 2803 cmp r0, #3
  2379. 8000ef6: d1f8 bne.n 8000eea <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0xe>
  2380. RCC->APBENR1 &= ~RCC_APBENR1_USART4EN;
  2381. 8000ef8: 4a08 ldr r2, [pc, #32] @ (8000f1c <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x40>)
  2382. 8000efa: 6bd3 ldr r3, [r2, #60] @ 0x3c
  2383. 8000efc: 4909 ldr r1, [pc, #36] @ (8000f24 <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x48>)
  2384. 8000efe: 400b ands r3, r1
  2385. 8000f00: 63d3 str r3, [r2, #60] @ 0x3c
  2386. }
  2387. 8000f02: e7f2 b.n 8000eea <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0xe>
  2388. RCC->APBENR1 &= ~RCC_APBENR1_USART2EN;
  2389. 8000f04: 4a05 ldr r2, [pc, #20] @ (8000f1c <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x40>)
  2390. 8000f06: 6bd3 ldr r3, [r2, #60] @ 0x3c
  2391. 8000f08: 4907 ldr r1, [pc, #28] @ (8000f28 <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x4c>)
  2392. 8000f0a: 400b ands r3, r1
  2393. 8000f0c: 63d3 str r3, [r2, #60] @ 0x3c
  2394. 8000f0e: e7ec b.n 8000eea <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0xe>
  2395. RCC->APBENR1 &= ~RCC_APBENR1_USART3EN;
  2396. 8000f10: 4a02 ldr r2, [pc, #8] @ (8000f1c <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x40>)
  2397. 8000f12: 6bd3 ldr r3, [r2, #60] @ 0x3c
  2398. 8000f14: 4905 ldr r1, [pc, #20] @ (8000f2c <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0x50>)
  2399. 8000f16: 400b ands r3, r1
  2400. 8000f18: 63d3 str r3, [r2, #60] @ 0x3c
  2401. 8000f1a: e7e6 b.n 8000eea <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)+0xe>
  2402. 8000f1c: 40021000 .word 0x40021000
  2403. 8000f20: ffffbfff .word 0xffffbfff
  2404. 8000f24: fff7ffff .word 0xfff7ffff
  2405. 8000f28: fffdffff .word 0xfffdffff
  2406. 8000f2c: fffbffff .word 0xfffbffff
  2407.  
  2408. 08000f30 <mcu::stm32g070::Uart::Uart(mcu::stm32g070::Uart::UartConfig const&)>:
  2409. } // namespace
  2410.  
  2411. namespace mcu::stm32g070 {
  2412. Uart::Uart(UartConfig const &config) : config_{config}, tx_busy_{false} {
  2413. 8000f30: 6001 str r1, [r0, #0]
  2414. 8000f32: 2300 movs r3, #0
  2415. 8000f34: 7103 strb r3, [r0, #4]
  2416. Delegate() = default;
  2417. 8000f36: 6083 str r3, [r0, #8]
  2418. 8000f38: 60c3 str r3, [r0, #12]
  2419. 8000f3a: 6103 str r3, [r0, #16]
  2420. 8000f3c: 6143 str r3, [r0, #20]
  2421. }
  2422. 8000f3e: 4770 bx lr
  2423.  
  2424. 08000f40 <mcu::stm32g070::Uart::Init()>:
  2425.  
  2426. void Uart::Init() {
  2427. 8000f40: b570 push {r4, r5, r6, lr}
  2428. 8000f42: 0004 movs r4, r0
  2429. auto *uart_ctrl = GetUartController(config_.uart_id);
  2430. 8000f44: 6803 ldr r3, [r0, #0]
  2431. 8000f46: 781e ldrb r6, [r3, #0]
  2432. 8000f48: 0030 movs r0, r6
  2433. 8000f4a: f7ff ff9b bl 8000e84 <(anonymous namespace)::GetUartController(mcu::stm32g070::Uart::UartId)>
  2434. 8000f4e: 0005 movs r5, r0
  2435. EnableUartClock(config_.uart_id);
  2436. 8000f50: 0030 movs r0, r6
  2437. 8000f52: f7ff ff9d bl 8000e90 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)>
  2438. uart_ctrl->CR1 &= ~USART_CR1_UE;
  2439. 8000f56: 682b ldr r3, [r5, #0]
  2440. 8000f58: 2201 movs r2, #1
  2441. 8000f5a: 4393 bics r3, r2
  2442. 8000f5c: 602b str r3, [r5, #0]
  2443. assert(config_.baud_rate == mcu::hal::uart::k115200);
  2444. 8000f5e: 6823 ldr r3, [r4, #0]
  2445. 8000f60: 685a ldr r2, [r3, #4]
  2446. 8000f62: 23e1 movs r3, #225 @ 0xe1
  2447. 8000f64: 025b lsls r3, r3, #9
  2448. 8000f66: 429a cmp r2, r3
  2449. 8000f68: d106 bne.n 8000f78 <mcu::stm32g070::Uart::Init()+0x38>
  2450. uart_ctrl->BRR = 138; // For PCLK = 16 MHz
  2451. 8000f6a: 238a movs r3, #138 @ 0x8a
  2452. 8000f6c: 60eb str r3, [r5, #12]
  2453. DisableUartClock(config_.uart_id);
  2454. 8000f6e: 6823 ldr r3, [r4, #0]
  2455. 8000f70: 7818 ldrb r0, [r3, #0]
  2456. 8000f72: f7ff ffb3 bl 8000edc <(anonymous namespace)::DisableUartClock(mcu::stm32g070::Uart::UartId)>
  2457. }
  2458. 8000f76: bd70 pop {r4, r5, r6, pc}
  2459. assert(config_.baud_rate == mcu::hal::uart::k115200);
  2460. 8000f78: 4b02 ldr r3, [pc, #8] @ (8000f84 <mcu::stm32g070::Uart::Init()+0x44>)
  2461. 8000f7a: 4a03 ldr r2, [pc, #12] @ (8000f88 <mcu::stm32g070::Uart::Init()+0x48>)
  2462. 8000f7c: 4803 ldr r0, [pc, #12] @ (8000f8c <mcu::stm32g070::Uart::Init()+0x4c>)
  2463. 8000f7e: 212d movs r1, #45 @ 0x2d
  2464. 8000f80: f7ff fc6b bl 800085a <__assert_func>
  2465. 8000f84: 08013f84 .word 0x08013f84
  2466. 8000f88: 08013fb4 .word 0x08013fb4
  2467. 8000f8c: 08013fd8 .word 0x08013fd8
  2468.  
  2469. 08000f90 <mcu::stm32g070::Uart::Enable()>:
  2470.  
  2471. void Uart::Enable() {
  2472. 8000f90: b510 push {r4, lr}
  2473. 8000f92: 0004 movs r4, r0
  2474. EnableUartClock(config_.uart_id);
  2475. 8000f94: 6803 ldr r3, [r0, #0]
  2476. 8000f96: 7818 ldrb r0, [r3, #0]
  2477. 8000f98: f7ff ff7a bl 8000e90 <(anonymous namespace)::EnableUartClock(mcu::stm32g070::Uart::UartId)>
  2478. auto *uart_ctrl = GetUartController(config_.uart_id);
  2479. 8000f9c: 6823 ldr r3, [r4, #0]
  2480. 8000f9e: 7818 ldrb r0, [r3, #0]
  2481. 8000fa0: f7ff ff70 bl 8000e84 <(anonymous namespace)::GetUartController(mcu::stm32g070::Uart::UartId)>
  2482. uart_ctrl->CR1 |= USART_CR1_UE | USART_CR1_TE;
  2483. 8000fa4: 6803 ldr r3, [r0, #0]
  2484. 8000fa6: 2209 movs r2, #9
  2485. 8000fa8: 4313 orrs r3, r2
  2486. 8000faa: 6003 str r3, [r0, #0]
  2487. }
  2488. 8000fac: bd10 pop {r4, pc}
  2489.  
  2490. 08000fae <mcu::stm32g070::Uart::Transmit(unsigned char const*, unsigned int)>:
  2491. auto *uart_ctrl = GetUartController(config_.uart_id);
  2492. uart_ctrl->CR1 &= ~(USART_CR1_UE | USART_CR1_TE);
  2493. DisableUartClock(config_.uart_id);
  2494. }
  2495.  
  2496. void Uart::Transmit(const uint8_t *data, size_t len) {
  2497. 8000fae: b570 push {r4, r5, r6, lr}
  2498. 8000fb0: 000d movs r5, r1
  2499. 8000fb2: 0014 movs r4, r2
  2500. auto *uart_ctrl = GetUartController(config_.uart_id);
  2501. 8000fb4: 6803 ldr r3, [r0, #0]
  2502. 8000fb6: 7818 ldrb r0, [r3, #0]
  2503. 8000fb8: f7ff ff64 bl 8000e84 <(anonymous namespace)::GetUartController(mcu::stm32g070::Uart::UartId)>
  2504. while (len--) {
  2505. 8000fbc: e006 b.n 8000fcc <mcu::stm32g070::Uart::Transmit(unsigned char const*, unsigned int)+0x1e>
  2506. while ((uart_ctrl->ISR & USART_ISR_TXE_TXFNF) == 0);
  2507. 8000fbe: 69c3 ldr r3, [r0, #28]
  2508. 8000fc0: 061b lsls r3, r3, #24
  2509. 8000fc2: d5fc bpl.n 8000fbe <mcu::stm32g070::Uart::Transmit(unsigned char const*, unsigned int)+0x10>
  2510. uart_ctrl->TDR = *data++;
  2511. 8000fc4: 782b ldrb r3, [r5, #0]
  2512. 8000fc6: 6283 str r3, [r0, #40] @ 0x28
  2513. while (len--) {
  2514. 8000fc8: 0014 movs r4, r2
  2515. uart_ctrl->TDR = *data++;
  2516. 8000fca: 3501 adds r5, #1
  2517. while (len--) {
  2518. 8000fcc: 1e62 subs r2, r4, #1
  2519. 8000fce: 2c00 cmp r4, #0
  2520. 8000fd0: d1f5 bne.n 8000fbe <mcu::stm32g070::Uart::Transmit(unsigned char const*, unsigned int)+0x10>
  2521. }
  2522. }
  2523. 8000fd2: bd70 pop {r4, r5, r6, pc}
  2524.  
  2525. 08000fd4 <Reset_Handler>:
  2526.  
  2527. .section .text.Reset_Handler
  2528. .weak Reset_Handler
  2529. .type Reset_Handler, %function
  2530. Reset_Handler:
  2531. ldr r0, =_estack
  2532. 8000fd4: 480d ldr r0, [pc, #52] @ (800100c <LoopForever+0x2>)
  2533. mov sp, r0 /* set stack pointer */
  2534. 8000fd6: 4685 mov sp, r0
  2535.  
  2536. /* Call the clock system initialization function.*/
  2537. bl SystemInit
  2538. 8000fd8: f000 f825 bl 8001026 <SystemInit>
  2539.  
  2540. /* Copy the data segment initializers from flash to SRAM */
  2541. ldr r0, =_sdata
  2542. 8000fdc: 480c ldr r0, [pc, #48] @ (8001010 <LoopForever+0x6>)
  2543. ldr r1, =_edata
  2544. 8000fde: 490d ldr r1, [pc, #52] @ (8001014 <LoopForever+0xa>)
  2545. ldr r2, =_sidata
  2546. 8000fe0: 4a0d ldr r2, [pc, #52] @ (8001018 <LoopForever+0xe>)
  2547. movs r3, #0
  2548. 8000fe2: 2300 movs r3, #0
  2549. b LoopCopyDataInit
  2550. 8000fe4: e002 b.n 8000fec <LoopCopyDataInit>
  2551.  
  2552. 08000fe6 <CopyDataInit>:
  2553.  
  2554. CopyDataInit:
  2555. ldr r4, [r2, r3]
  2556. 8000fe6: 58d4 ldr r4, [r2, r3]
  2557. str r4, [r0, r3]
  2558. 8000fe8: 50c4 str r4, [r0, r3]
  2559. adds r3, r3, #4
  2560. 8000fea: 3304 adds r3, #4
  2561.  
  2562. 08000fec <LoopCopyDataInit>:
  2563.  
  2564. LoopCopyDataInit:
  2565. adds r4, r0, r3
  2566. 8000fec: 18c4 adds r4, r0, r3
  2567. cmp r4, r1
  2568. 8000fee: 428c cmp r4, r1
  2569. bcc CopyDataInit
  2570. 8000ff0: d3f9 bcc.n 8000fe6 <CopyDataInit>
  2571.  
  2572. /* Zero fill the bss segment. */
  2573. ldr r2, =_sbss
  2574. 8000ff2: 4a0a ldr r2, [pc, #40] @ (800101c <LoopForever+0x12>)
  2575. ldr r4, =_ebss
  2576. 8000ff4: 4c0a ldr r4, [pc, #40] @ (8001020 <LoopForever+0x16>)
  2577. movs r3, #0
  2578. 8000ff6: 2300 movs r3, #0
  2579. b LoopFillZerobss
  2580. 8000ff8: e001 b.n 8000ffe <LoopFillZerobss>
  2581.  
  2582. 08000ffa <FillZerobss>:
  2583.  
  2584. FillZerobss:
  2585. str r3, [r2]
  2586. 8000ffa: 6013 str r3, [r2, #0]
  2587. adds r2, r2, #4
  2588. 8000ffc: 3204 adds r2, #4
  2589.  
  2590. 08000ffe <LoopFillZerobss>:
  2591.  
  2592. LoopFillZerobss:
  2593. cmp r2, r4
  2594. 8000ffe: 42a2 cmp r2, r4
  2595. bcc FillZerobss
  2596. 8001000: d3fb bcc.n 8000ffa <FillZerobss>
  2597.  
  2598. /* Call static constructors */
  2599. bl __libc_init_array
  2600. 8001002: f00a f9b3 bl 800b36c <__libc_init_array>
  2601. /* Call the application s entry point.*/
  2602. bl main
  2603. 8001006: f7ff fbc1 bl 800078c <main>
  2604.  
  2605. 0800100a <LoopForever>:
  2606.  
  2607. LoopForever:
  2608. b LoopForever
  2609. 800100a: e7fe b.n 800100a <LoopForever>
  2610. ldr r0, =_estack
  2611. 800100c: 20009000 .word 0x20009000
  2612. ldr r0, =_sdata
  2613. 8001010: 20000000 .word 0x20000000
  2614. ldr r1, =_edata
  2615. 8001014: 200006dc .word 0x200006dc
  2616. ldr r2, =_sidata
  2617. 8001018: 08016620 .word 0x08016620
  2618. ldr r2, =_sbss
  2619. 800101c: 200006dc .word 0x200006dc
  2620. ldr r4, =_ebss
  2621. 8001020: 20000b30 .word 0x20000b30
  2622.  
  2623. 08001024 <ADC1_IRQHandler>:
  2624. * @retval None
  2625. */
  2626. .section .text.Default_Handler,"ax",%progbits
  2627. Default_Handler:
  2628. Infinite_Loop:
  2629. b Infinite_Loop
  2630. 8001024: e7fe b.n 8001024 <ADC1_IRQHandler>
  2631.  
  2632. 08001026 <SystemInit>:
  2633. {
  2634. /* Configure the Vector Table location -------------------------------------*/
  2635. #if defined(USER_VECT_TAB_ADDRESS)
  2636. SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation */
  2637. #endif /* USER_VECT_TAB_ADDRESS */
  2638. }
  2639. 8001026: 4770 bx lr
  2640.  
  2641. 08001028 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)>:
  2642. 8001028: b530 push {r4, r5, lr}
  2643. 800102a: b083 sub sp, #12
  2644. 800102c: 2800 cmp r0, #0
  2645. 800102e: d00f beq.n 8001050 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x28>
  2646. 8001030: 2a00 cmp r2, #0
  2647. 8001032: d015 beq.n 8001060 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x38>
  2648. 8001034: 2b00 cmp r3, #0
  2649. 8001036: d00d beq.n 8001054 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x2c>
  2650. 8001038: 4d0a ldr r5, [pc, #40] @ (8001064 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x3c>)
  2651. 800103a: 4c0b ldr r4, [pc, #44] @ (8001068 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x40>)
  2652. 800103c: 682d ldr r5, [r5, #0]
  2653. 800103e: 9301 str r3, [sp, #4]
  2654. 8001040: 9200 str r2, [sp, #0]
  2655. 8001042: 000b movs r3, r1
  2656. 8001044: 0002 movs r2, r0
  2657. 8001046: 0021 movs r1, r4
  2658. 8001048: 68e8 ldr r0, [r5, #12]
  2659. 800104a: f009 ff25 bl 800ae98 <fprintf>
  2660. 800104e: e007 b.n 8001060 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x38>
  2661. 8001050: 2a00 cmp r2, #0
  2662. 8001052: d005 beq.n 8001060 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x38>
  2663. 8001054: 4b03 ldr r3, [pc, #12] @ (8001064 <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x3c>)
  2664. 8001056: 4905 ldr r1, [pc, #20] @ (800106c <std::__glibcxx_assert_fail(char const*, int, char const*, char const*)+0x44>)
  2665. 8001058: 681b ldr r3, [r3, #0]
  2666. 800105a: 68d8 ldr r0, [r3, #12]
  2667. 800105c: f009 ff1c bl 800ae98 <fprintf>
  2668. 8001060: f008 ffd6 bl 800a010 <abort>
  2669. 8001064: 20000424 .word 0x20000424
  2670. 8001068: 08014008 .word 0x08014008
  2671. 800106c: 0801402c .word 0x0801402c
  2672.  
  2673. 08001070 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)>:
  2674. 8001070: b5f0 push {r4, r5, r6, r7, lr}
  2675. 8001072: 46d6 mov lr, sl
  2676. 8001074: 4646 mov r6, r8
  2677. 8001076: 464f mov r7, r9
  2678. 8001078: 468a mov sl, r1
  2679. 800107a: b5c0 push {r6, r7, lr}
  2680. 800107c: 0006 movs r6, r0
  2681. 800107e: 2850 cmp r0, #80 @ 0x50
  2682. 8001080: d024 beq.n 80010cc <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x5c>
  2683. 8001082: 240f movs r4, #15
  2684. 8001084: 4004 ands r4, r0
  2685. 8001086: 2c0c cmp r4, #12
  2686. 8001088: d900 bls.n 800108c <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x1c>
  2687. 800108a: e06f b.n 800116c <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0xfc>
  2688. 800108c: 4838 ldr r0, [pc, #224] @ (8001170 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x100>)
  2689. 800108e: 00a4 lsls r4, r4, #2
  2690. 8001090: 5900 ldr r0, [r0, r4]
  2691. 8001092: 4687 mov pc, r0
  2692. 8001094: 7854 ldrb r4, [r2, #1]
  2693. 8001096: 7810 ldrb r0, [r2, #0]
  2694. 8001098: 0224 lsls r4, r4, #8
  2695. 800109a: 4304 orrs r4, r0
  2696. 800109c: 7890 ldrb r0, [r2, #2]
  2697. 800109e: 0400 lsls r0, r0, #16
  2698. 80010a0: 4320 orrs r0, r4
  2699. 80010a2: 78d4 ldrb r4, [r2, #3]
  2700. 80010a4: 0624 lsls r4, r4, #24
  2701. 80010a6: 4304 orrs r4, r0
  2702. 80010a8: 1d10 adds r0, r2, #4
  2703. 80010aa: 2c00 cmp r4, #0
  2704. 80010ac: d008 beq.n 80010c0 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x50>
  2705. 80010ae: 2570 movs r5, #112 @ 0x70
  2706. 80010b0: 4035 ands r5, r6
  2707. 80010b2: 2d10 cmp r5, #16
  2708. 80010b4: d100 bne.n 80010b8 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x48>
  2709. 80010b6: 4692 mov sl, r2
  2710. 80010b8: b276 sxtb r6, r6
  2711. 80010ba: 4454 add r4, sl
  2712. 80010bc: 2e00 cmp r6, #0
  2713. 80010be: db0a blt.n 80010d6 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x66>
  2714. 80010c0: 601c str r4, [r3, #0]
  2715. 80010c2: bce0 pop {r5, r6, r7}
  2716. 80010c4: 46ba mov sl, r7
  2717. 80010c6: 46b1 mov r9, r6
  2718. 80010c8: 46a8 mov r8, r5
  2719. 80010ca: bdf0 pop {r4, r5, r6, r7, pc}
  2720. 80010cc: 1cd0 adds r0, r2, #3
  2721. 80010ce: 2203 movs r2, #3
  2722. 80010d0: 4390 bics r0, r2
  2723. 80010d2: c810 ldmia r0!, {r4}
  2724. 80010d4: e7f4 b.n 80010c0 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x50>
  2725. 80010d6: 6824 ldr r4, [r4, #0]
  2726. 80010d8: e7f2 b.n 80010c0 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x50>
  2727. 80010da: 7854 ldrb r4, [r2, #1]
  2728. 80010dc: 7810 ldrb r0, [r2, #0]
  2729. 80010de: 0224 lsls r4, r4, #8
  2730. 80010e0: 4304 orrs r4, r0
  2731. 80010e2: 7890 ldrb r0, [r2, #2]
  2732. 80010e4: 0400 lsls r0, r0, #16
  2733. 80010e6: 4320 orrs r0, r4
  2734. 80010e8: 78d4 ldrb r4, [r2, #3]
  2735. 80010ea: 0624 lsls r4, r4, #24
  2736. 80010ec: 4304 orrs r4, r0
  2737. 80010ee: 0010 movs r0, r2
  2738. 80010f0: 3008 adds r0, #8
  2739. 80010f2: e7da b.n 80010aa <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3a>
  2740. 80010f4: 7854 ldrb r4, [r2, #1]
  2741. 80010f6: 7810 ldrb r0, [r2, #0]
  2742. 80010f8: 0224 lsls r4, r4, #8
  2743. 80010fa: 4304 orrs r4, r0
  2744. 80010fc: 1c90 adds r0, r2, #2
  2745. 80010fe: e7d4 b.n 80010aa <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3a>
  2746. 8001100: 7854 ldrb r4, [r2, #1]
  2747. 8001102: 7810 ldrb r0, [r2, #0]
  2748. 8001104: 0224 lsls r4, r4, #8
  2749. 8001106: 4304 orrs r4, r0
  2750. 8001108: 0424 lsls r4, r4, #16
  2751. 800110a: 1424 asrs r4, r4, #16
  2752. 800110c: 1c90 adds r0, r2, #2
  2753. 800110e: e7cc b.n 80010aa <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3a>
  2754. 8001110: 217f movs r1, #127 @ 0x7f
  2755. 8001112: 0015 movs r5, r2
  2756. 8001114: 2400 movs r4, #0
  2757. 8001116: 2700 movs r7, #0
  2758. 8001118: 4688 mov r8, r1
  2759. 800111a: 4640 mov r0, r8
  2760. 800111c: 7829 ldrb r1, [r5, #0]
  2761. 800111e: 3501 adds r5, #1
  2762. 8001120: 4008 ands r0, r1
  2763. 8001122: 40b8 lsls r0, r7
  2764. 8001124: 4304 orrs r4, r0
  2765. 8001126: b248 sxtb r0, r1
  2766. 8001128: 3707 adds r7, #7
  2767. 800112a: 2800 cmp r0, #0
  2768. 800112c: dbf5 blt.n 800111a <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0xaa>
  2769. 800112e: 0028 movs r0, r5
  2770. 8001130: 2f1f cmp r7, #31
  2771. 8001132: d8ba bhi.n 80010aa <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3a>
  2772. 8001134: 064d lsls r5, r1, #25
  2773. 8001136: d5b8 bpl.n 80010aa <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3a>
  2774. 8001138: 2501 movs r5, #1
  2775. 800113a: 40bd lsls r5, r7
  2776. 800113c: 426d negs r5, r5
  2777. 800113e: 432c orrs r4, r5
  2778. 8001140: e7b5 b.n 80010ae <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3e>
  2779. 8001142: 2100 movs r1, #0
  2780. 8001144: 468c mov ip, r1
  2781. 8001146: 317f adds r1, #127 @ 0x7f
  2782. 8001148: 0015 movs r5, r2
  2783. 800114a: 2400 movs r4, #0
  2784. 800114c: 4688 mov r8, r1
  2785. 800114e: 4647 mov r7, r8
  2786. 8001150: 4661 mov r1, ip
  2787. 8001152: 7828 ldrb r0, [r5, #0]
  2788. 8001154: 3501 adds r5, #1
  2789. 8001156: 4007 ands r7, r0
  2790. 8001158: 408f lsls r7, r1
  2791. 800115a: 2107 movs r1, #7
  2792. 800115c: 4689 mov r9, r1
  2793. 800115e: b240 sxtb r0, r0
  2794. 8001160: 433c orrs r4, r7
  2795. 8001162: 44cc add ip, r9
  2796. 8001164: 2800 cmp r0, #0
  2797. 8001166: dbf2 blt.n 800114e <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0xde>
  2798. 8001168: 0028 movs r0, r5
  2799. 800116a: e79e b.n 80010aa <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)+0x3a>
  2800. 800116c: f008 ff50 bl 800a010 <abort>
  2801. 8001170: 08014bd4 .word 0x08014bd4
  2802.  
  2803. 08001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>:
  2804. 8001174: 0003 movs r3, r0
  2805. 8001176: b510 push {r4, lr}
  2806. 8001178: 0008 movs r0, r1
  2807. 800117a: 2bff cmp r3, #255 @ 0xff
  2808. 800117c: d010 beq.n 80011a0 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x2c>
  2809. 800117e: 2270 movs r2, #112 @ 0x70
  2810. 8001180: 4013 ands r3, r2
  2811. 8001182: 2b30 cmp r3, #48 @ 0x30
  2812. 8001184: d013 beq.n 80011ae <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x3a>
  2813. 8001186: d804 bhi.n 8001192 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x1e>
  2814. 8001188: 2b20 cmp r3, #32
  2815. 800118a: d107 bne.n 800119c <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x28>
  2816. 800118c: f008 ff3d bl 800a00a <_Unwind_GetTextRelBase>
  2817. 8001190: e007 b.n 80011a2 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x2e>
  2818. 8001192: 2b40 cmp r3, #64 @ 0x40
  2819. 8001194: d106 bne.n 80011a4 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x30>
  2820. 8001196: f008 ff25 bl 8009fe4 <_Unwind_GetRegionStart>
  2821. 800119a: e002 b.n 80011a2 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x2e>
  2822. 800119c: 2b20 cmp r3, #32
  2823. 800119e: d804 bhi.n 80011aa <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x36>
  2824. 80011a0: 2000 movs r0, #0
  2825. 80011a2: bd10 pop {r4, pc}
  2826. 80011a4: 2000 movs r0, #0
  2827. 80011a6: 2b50 cmp r3, #80 @ 0x50
  2828. 80011a8: d0fb beq.n 80011a2 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x2e>
  2829. 80011aa: f008 ff31 bl 800a010 <abort>
  2830. 80011ae: f008 ff29 bl 800a004 <_Unwind_GetDataRelBase>
  2831. 80011b2: e7f6 b.n 80011a2 <base_of_encoded_value(unsigned char, _Unwind_Context*)+0x2e>
  2832.  
  2833. 080011b4 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)>:
  2834. 80011b4: b5f8 push {r3, r4, r5, r6, r7, lr}
  2835. 80011b6: 0005 movs r5, r0
  2836. 80011b8: 000e movs r6, r1
  2837. 80011ba: 0014 movs r4, r2
  2838. 80011bc: 2000 movs r0, #0
  2839. 80011be: 2d00 cmp r5, #0
  2840. 80011c0: d002 beq.n 80011c8 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x14>
  2841. 80011c2: 0028 movs r0, r5
  2842. 80011c4: f008 ff0e bl 8009fe4 <_Unwind_GetRegionStart>
  2843. 80011c8: 6020 str r0, [r4, #0]
  2844. 80011ca: 1c77 adds r7, r6, #1
  2845. 80011cc: 7836 ldrb r6, [r6, #0]
  2846. 80011ce: 2eff cmp r6, #255 @ 0xff
  2847. 80011d0: d128 bne.n 8001224 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x70>
  2848. 80011d2: 6060 str r0, [r4, #4]
  2849. 80011d4: 783b ldrb r3, [r7, #0]
  2850. 80011d6: 1c78 adds r0, r7, #1
  2851. 80011d8: 2bff cmp r3, #255 @ 0xff
  2852. 80011da: d032 beq.n 8001242 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x8e>
  2853. 80011dc: 2310 movs r3, #16
  2854. 80011de: 2500 movs r5, #0
  2855. 80011e0: 2100 movs r1, #0
  2856. 80011e2: 267f movs r6, #127 @ 0x7f
  2857. 80011e4: 7523 strb r3, [r4, #20]
  2858. 80011e6: 0032 movs r2, r6
  2859. 80011e8: 7803 ldrb r3, [r0, #0]
  2860. 80011ea: 3001 adds r0, #1
  2861. 80011ec: 401a ands r2, r3
  2862. 80011ee: 408a lsls r2, r1
  2863. 80011f0: b25b sxtb r3, r3
  2864. 80011f2: 4315 orrs r5, r2
  2865. 80011f4: 3107 adds r1, #7
  2866. 80011f6: 2b00 cmp r3, #0
  2867. 80011f8: dbf5 blt.n 80011e6 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x32>
  2868. 80011fa: 1945 adds r5, r0, r5
  2869. 80011fc: 60e5 str r5, [r4, #12]
  2870. 80011fe: 2200 movs r2, #0
  2871. 8001200: 2500 movs r5, #0
  2872. 8001202: 267f movs r6, #127 @ 0x7f
  2873. 8001204: 7803 ldrb r3, [r0, #0]
  2874. 8001206: 3001 adds r0, #1
  2875. 8001208: 7563 strb r3, [r4, #21]
  2876. 800120a: 0031 movs r1, r6
  2877. 800120c: 7803 ldrb r3, [r0, #0]
  2878. 800120e: 3001 adds r0, #1
  2879. 8001210: 4019 ands r1, r3
  2880. 8001212: 4091 lsls r1, r2
  2881. 8001214: b25b sxtb r3, r3
  2882. 8001216: 430d orrs r5, r1
  2883. 8001218: 3207 adds r2, #7
  2884. 800121a: 2b00 cmp r3, #0
  2885. 800121c: dbf5 blt.n 800120a <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x56>
  2886. 800121e: 1945 adds r5, r0, r5
  2887. 8001220: 6125 str r5, [r4, #16]
  2888. 8001222: bdf8 pop {r3, r4, r5, r6, r7, pc}
  2889. 8001224: 0029 movs r1, r5
  2890. 8001226: 0030 movs r0, r6
  2891. 8001228: f7ff ffa4 bl 8001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>
  2892. 800122c: 003a movs r2, r7
  2893. 800122e: 0001 movs r1, r0
  2894. 8001230: 1d23 adds r3, r4, #4
  2895. 8001232: 0030 movs r0, r6
  2896. 8001234: f7ff ff1c bl 8001070 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)>
  2897. 8001238: 0007 movs r7, r0
  2898. 800123a: 783b ldrb r3, [r7, #0]
  2899. 800123c: 1c78 adds r0, r7, #1
  2900. 800123e: 2bff cmp r3, #255 @ 0xff
  2901. 8001240: d1cc bne.n 80011dc <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x28>
  2902. 8001242: 2500 movs r5, #0
  2903. 8001244: 7523 strb r3, [r4, #20]
  2904. 8001246: e7d9 b.n 80011fc <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)+0x48>
  2905.  
  2906. 08001248 <__gxx_personality_v0>:
  2907. 8001248: b5f0 push {r4, r5, r6, r7, lr}
  2908. 800124a: 4657 mov r7, sl
  2909. 800124c: 4645 mov r5, r8
  2910. 800124e: 46de mov lr, fp
  2911. 8001250: 464e mov r6, r9
  2912. 8001252: 2300 movs r3, #0
  2913. 8001254: b5e0 push {r5, r6, r7, lr}
  2914. 8001256: b097 sub sp, #92 @ 0x5c
  2915. 8001258: 930c str r3, [sp, #48] @ 0x30
  2916. 800125a: 3303 adds r3, #3
  2917. 800125c: 000f movs r7, r1
  2918. 800125e: 4690 mov r8, r2
  2919. 8001260: 4003 ands r3, r0
  2920. 8001262: 2b01 cmp r3, #1
  2921. 8001264: d100 bne.n 8001268 <__gxx_personality_v0+0x20>
  2922. 8001266: e0ae b.n 80013c6 <__gxx_personality_v0+0x17e>
  2923. 8001268: 2b02 cmp r3, #2
  2924. 800126a: d10e bne.n 800128a <__gxx_personality_v0+0x42>
  2925. 800126c: 4641 mov r1, r8
  2926. 800126e: 0038 movs r0, r7
  2927. 8001270: f008 fea4 bl 8009fbc <__gnu_unwind_frame>
  2928. 8001274: 2800 cmp r0, #0
  2929. 8001276: d000 beq.n 800127a <__gxx_personality_v0+0x32>
  2930. 8001278: e0a3 b.n 80013c2 <__gxx_personality_v0+0x17a>
  2931. 800127a: 2008 movs r0, #8
  2932. 800127c: b017 add sp, #92 @ 0x5c
  2933. 800127e: bcf0 pop {r4, r5, r6, r7}
  2934. 8001280: 46bb mov fp, r7
  2935. 8001282: 46b2 mov sl, r6
  2936. 8001284: 46a9 mov r9, r5
  2937. 8001286: 46a0 mov r8, r4
  2938. 8001288: bdf0 pop {r4, r5, r6, r7, pc}
  2939. 800128a: 2b00 cmp r3, #0
  2940. 800128c: d000 beq.n 8001290 <__gxx_personality_v0+0x48>
  2941. 800128e: e235 b.n 80016fc <__gxx_personality_v0+0x4b4>
  2942. 8001290: 3308 adds r3, #8
  2943. 8001292: 001c movs r4, r3
  2944. 8001294: 4004 ands r4, r0
  2945. 8001296: 4203 tst r3, r0
  2946. 8001298: d1e8 bne.n 800126c <__gxx_personality_v0+0x24>
  2947. 800129a: 2501 movs r5, #1
  2948. 800129c: ab10 add r3, sp, #64 @ 0x40
  2949. 800129e: 9303 str r3, [sp, #12]
  2950. 80012a0: 9b03 ldr r3, [sp, #12]
  2951. 80012a2: 220c movs r2, #12
  2952. 80012a4: 2100 movs r1, #0
  2953. 80012a6: 9300 str r3, [sp, #0]
  2954. 80012a8: 4640 mov r0, r8
  2955. 80012aa: 2300 movs r3, #0
  2956. 80012ac: 9710 str r7, [sp, #64] @ 0x40
  2957. 80012ae: f008 f9a3 bl 80095f8 <_Unwind_VRS_Set>
  2958. 80012b2: 4640 mov r0, r8
  2959. 80012b4: f008 fe9c bl 8009ff0 <_Unwind_GetLanguageSpecificData>
  2960. 80012b8: 9004 str r0, [sp, #16]
  2961. 80012ba: 2800 cmp r0, #0
  2962. 80012bc: d0d6 beq.n 800126c <__gxx_personality_v0+0x24>
  2963. 80012be: 432c orrs r4, r5
  2964. 80012c0: 9d03 ldr r5, [sp, #12]
  2965. 80012c2: 9904 ldr r1, [sp, #16]
  2966. 80012c4: 002a movs r2, r5
  2967. 80012c6: 4640 mov r0, r8
  2968. 80012c8: 9405 str r4, [sp, #20]
  2969. 80012ca: f7ff ff73 bl 80011b4 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)>
  2970. 80012ce: 7d2b ldrb r3, [r5, #20]
  2971. 80012d0: 4641 mov r1, r8
  2972. 80012d2: 0004 movs r4, r0
  2973. 80012d4: 0018 movs r0, r3
  2974. 80012d6: 9306 str r3, [sp, #24]
  2975. 80012d8: f7ff ff4c bl 8001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>
  2976. 80012dc: ab0f add r3, sp, #60 @ 0x3c
  2977. 80012de: 60a8 str r0, [r5, #8]
  2978. 80012e0: 220f movs r2, #15
  2979. 80012e2: 9007 str r0, [sp, #28]
  2980. 80012e4: 9300 str r3, [sp, #0]
  2981. 80012e6: 469b mov fp, r3
  2982. 80012e8: 2100 movs r1, #0
  2983. 80012ea: 2300 movs r3, #0
  2984. 80012ec: 4640 mov r0, r8
  2985. 80012ee: f008 f955 bl 800959c <_Unwind_VRS_Get>
  2986. 80012f2: 2201 movs r2, #1
  2987. 80012f4: 9b0f ldr r3, [sp, #60] @ 0x3c
  2988. 80012f6: 4393 bics r3, r2
  2989. 80012f8: 3b01 subs r3, #1
  2990. 80012fa: 4699 mov r9, r3
  2991. 80012fc: 692b ldr r3, [r5, #16]
  2992. 80012fe: 469a mov sl, r3
  2993. 8001300: 429c cmp r4, r3
  2994. 8001302: d242 bcs.n 800138a <__gxx_personality_v0+0x142>
  2995. 8001304: 9b10 ldr r3, [sp, #64] @ 0x40
  2996. 8001306: 7d6e ldrb r6, [r5, #21]
  2997. 8001308: 9302 str r3, [sp, #8]
  2998. 800130a: 003b movs r3, r7
  2999. 800130c: 257f movs r5, #127 @ 0x7f
  3000. 800130e: 0027 movs r7, r4
  3001. 8001310: 464c mov r4, r9
  3002. 8001312: 4699 mov r9, r3
  3003. 8001314: 2100 movs r1, #0
  3004. 8001316: 0030 movs r0, r6
  3005. 8001318: f7ff ff2c bl 8001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>
  3006. 800131c: 003a movs r2, r7
  3007. 800131e: 0001 movs r1, r0
  3008. 8001320: ab0d add r3, sp, #52 @ 0x34
  3009. 8001322: 0030 movs r0, r6
  3010. 8001324: f7ff fea4 bl 8001070 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)>
  3011. 8001328: 2100 movs r1, #0
  3012. 800132a: 0007 movs r7, r0
  3013. 800132c: 0030 movs r0, r6
  3014. 800132e: f7ff ff21 bl 8001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>
  3015. 8001332: 003a movs r2, r7
  3016. 8001334: 0001 movs r1, r0
  3017. 8001336: ab0e add r3, sp, #56 @ 0x38
  3018. 8001338: 0030 movs r0, r6
  3019. 800133a: f7ff fe99 bl 8001070 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)>
  3020. 800133e: 2100 movs r1, #0
  3021. 8001340: 0007 movs r7, r0
  3022. 8001342: 0030 movs r0, r6
  3023. 8001344: f7ff ff16 bl 8001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>
  3024. 8001348: 003a movs r2, r7
  3025. 800134a: 0001 movs r1, r0
  3026. 800134c: 465b mov r3, fp
  3027. 800134e: 0030 movs r0, r6
  3028. 8001350: f7ff fe8e bl 8001070 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)>
  3029. 8001354: 2100 movs r1, #0
  3030. 8001356: 2200 movs r2, #0
  3031. 8001358: 002f movs r7, r5
  3032. 800135a: 7803 ldrb r3, [r0, #0]
  3033. 800135c: 3001 adds r0, #1
  3034. 800135e: 401f ands r7, r3
  3035. 8001360: 4097 lsls r7, r2
  3036. 8001362: b25b sxtb r3, r3
  3037. 8001364: 4339 orrs r1, r7
  3038. 8001366: 3207 adds r2, #7
  3039. 8001368: 2b00 cmp r3, #0
  3040. 800136a: dbf5 blt.n 8001358 <__gxx_personality_v0+0x110>
  3041. 800136c: 9a02 ldr r2, [sp, #8]
  3042. 800136e: 9b0d ldr r3, [sp, #52] @ 0x34
  3043. 8001370: 4694 mov ip, r2
  3044. 8001372: 4463 add r3, ip
  3045. 8001374: 42a3 cmp r3, r4
  3046. 8001376: d807 bhi.n 8001388 <__gxx_personality_v0+0x140>
  3047. 8001378: 9a0e ldr r2, [sp, #56] @ 0x38
  3048. 800137a: 189b adds r3, r3, r2
  3049. 800137c: 42a3 cmp r3, r4
  3050. 800137e: d900 bls.n 8001382 <__gxx_personality_v0+0x13a>
  3051. 8001380: e085 b.n 800148e <__gxx_personality_v0+0x246>
  3052. 8001382: 0007 movs r7, r0
  3053. 8001384: 4582 cmp sl, r0
  3054. 8001386: d8c5 bhi.n 8001314 <__gxx_personality_v0+0xcc>
  3055. 8001388: 464f mov r7, r9
  3056. 800138a: 2300 movs r3, #0
  3057. 800138c: 2500 movs r5, #0
  3058. 800138e: 469a mov sl, r3
  3059. 8001390: 3301 adds r3, #1
  3060. 8001392: 9a05 ldr r2, [sp, #20]
  3061. 8001394: 07d2 lsls r2, r2, #31
  3062. 8001396: d571 bpl.n 800147c <__gxx_personality_v0+0x234>
  3063. 8001398: 9b0c ldr r3, [sp, #48] @ 0x30
  3064. 800139a: 930b str r3, [sp, #44] @ 0x2c
  3065. 800139c: 465b mov r3, fp
  3066. 800139e: 220d movs r2, #13
  3067. 80013a0: 9300 str r3, [sp, #0]
  3068. 80013a2: 2100 movs r1, #0
  3069. 80013a4: 2300 movs r3, #0
  3070. 80013a6: 4640 mov r0, r8
  3071. 80013a8: f008 f8f8 bl 800959c <_Unwind_VRS_Get>
  3072. 80013ac: 9b0f ldr r3, [sp, #60] @ 0x3c
  3073. 80013ae: 2006 movs r0, #6
  3074. 80013b0: 623b str r3, [r7, #32]
  3075. 80013b2: 9b0b ldr r3, [sp, #44] @ 0x2c
  3076. 80013b4: 633d str r5, [r7, #48] @ 0x30
  3077. 80013b6: 627b str r3, [r7, #36] @ 0x24
  3078. 80013b8: 4653 mov r3, sl
  3079. 80013ba: 62bb str r3, [r7, #40] @ 0x28
  3080. 80013bc: 9b04 ldr r3, [sp, #16]
  3081. 80013be: 62fb str r3, [r7, #44] @ 0x2c
  3082. 80013c0: e75c b.n 800127c <__gxx_personality_v0+0x34>
  3083. 80013c2: 2009 movs r0, #9
  3084. 80013c4: e75a b.n 800127c <__gxx_personality_v0+0x34>
  3085. 80013c6: 2308 movs r3, #8
  3086. 80013c8: 001c movs r4, r3
  3087. 80013ca: aa10 add r2, sp, #64 @ 0x40
  3088. 80013cc: 4004 ands r4, r0
  3089. 80013ce: 9203 str r2, [sp, #12]
  3090. 80013d0: 4203 tst r3, r0
  3091. 80013d2: d001 beq.n 80013d8 <__gxx_personality_v0+0x190>
  3092. 80013d4: 2502 movs r5, #2
  3093. 80013d6: e763 b.n 80012a0 <__gxx_personality_v0+0x58>
  3094. 80013d8: 6a0d ldr r5, [r1, #32]
  3095. 80013da: 2300 movs r3, #0
  3096. 80013dc: 9200 str r2, [sp, #0]
  3097. 80013de: 2100 movs r1, #0
  3098. 80013e0: 220d movs r2, #13
  3099. 80013e2: 4640 mov r0, r8
  3100. 80013e4: f008 f8da bl 800959c <_Unwind_VRS_Get>
  3101. 80013e8: 9b10 ldr r3, [sp, #64] @ 0x40
  3102. 80013ea: 429d cmp r5, r3
  3103. 80013ec: d1f2 bne.n 80013d4 <__gxx_personality_v0+0x18c>
  3104. 80013ee: 9b03 ldr r3, [sp, #12]
  3105. 80013f0: 220c movs r2, #12
  3106. 80013f2: 9300 str r3, [sp, #0]
  3107. 80013f4: 2100 movs r1, #0
  3108. 80013f6: 2300 movs r3, #0
  3109. 80013f8: 4640 mov r0, r8
  3110. 80013fa: 9710 str r7, [sp, #64] @ 0x40
  3111. 80013fc: f008 f8fc bl 80095f8 <_Unwind_VRS_Set>
  3112. 8001400: 6b3d ldr r5, [r7, #48] @ 0x30
  3113. 8001402: 6abc ldr r4, [r7, #40] @ 0x28
  3114. 8001404: 6afb ldr r3, [r7, #44] @ 0x2c
  3115. 8001406: 2d00 cmp r5, #0
  3116. 8001408: d03e beq.n 8001488 <__gxx_personality_v0+0x240>
  3117. 800140a: 9304 str r3, [sp, #16]
  3118. 800140c: ab0f add r3, sp, #60 @ 0x3c
  3119. 800140e: 46a2 mov sl, r4
  3120. 8001410: 469b mov fp, r3
  3121. 8001412: 4653 mov r3, sl
  3122. 8001414: 2b00 cmp r3, #0
  3123. 8001416: da00 bge.n 800141a <__gxx_personality_v0+0x1d2>
  3124. 8001418: e0b8 b.n 800158c <__gxx_personality_v0+0x344>
  3125. 800141a: 2603 movs r6, #3
  3126. 800141c: 465b mov r3, fp
  3127. 800141e: 2200 movs r2, #0
  3128. 8001420: 2100 movs r1, #0
  3129. 8001422: 9300 str r3, [sp, #0]
  3130. 8001424: 4640 mov r0, r8
  3131. 8001426: 2300 movs r3, #0
  3132. 8001428: 970f str r7, [sp, #60] @ 0x3c
  3133. 800142a: f008 f8e5 bl 80095f8 <_Unwind_VRS_Set>
  3134. 800142e: 465b mov r3, fp
  3135. 8001430: 2201 movs r2, #1
  3136. 8001432: 2100 movs r1, #0
  3137. 8001434: 9300 str r3, [sp, #0]
  3138. 8001436: 4640 mov r0, r8
  3139. 8001438: 2300 movs r3, #0
  3140. 800143a: 940f str r4, [sp, #60] @ 0x3c
  3141. 800143c: f008 f8dc bl 80095f8 <_Unwind_VRS_Set>
  3142. 8001440: 465b mov r3, fp
  3143. 8001442: 220f movs r2, #15
  3144. 8001444: 2100 movs r1, #0
  3145. 8001446: 9300 str r3, [sp, #0]
  3146. 8001448: 4640 mov r0, r8
  3147. 800144a: 2300 movs r3, #0
  3148. 800144c: f008 f8a6 bl 800959c <_Unwind_VRS_Get>
  3149. 8001450: 2301 movs r3, #1
  3150. 8001452: 9a0f ldr r2, [sp, #60] @ 0x3c
  3151. 8001454: 2100 movs r1, #0
  3152. 8001456: 4013 ands r3, r2
  3153. 8001458: 432b orrs r3, r5
  3154. 800145a: 930f str r3, [sp, #60] @ 0x3c
  3155. 800145c: 465b mov r3, fp
  3156. 800145e: 220f movs r2, #15
  3157. 8001460: 9300 str r3, [sp, #0]
  3158. 8001462: 4640 mov r0, r8
  3159. 8001464: 2300 movs r3, #0
  3160. 8001466: f008 f8c7 bl 80095f8 <_Unwind_VRS_Set>
  3161. 800146a: 2e02 cmp r6, #2
  3162. 800146c: d001 beq.n 8001472 <__gxx_personality_v0+0x22a>
  3163. 800146e: 2007 movs r0, #7
  3164. 8001470: e704 b.n 800127c <__gxx_personality_v0+0x34>
  3165. 8001472: 0038 movs r0, r7
  3166. 8001474: f007 fa46 bl 8008904 <__cxa_begin_cleanup>
  3167. 8001478: 2007 movs r0, #7
  3168. 800147a: e6ff b.n 800127c <__gxx_personality_v0+0x34>
  3169. 800147c: 2208 movs r2, #8
  3170. 800147e: 9905 ldr r1, [sp, #20]
  3171. 8001480: 420a tst r2, r1
  3172. 8001482: d16d bne.n 8001560 <__gxx_personality_v0+0x318>
  3173. 8001484: 2b01 cmp r3, #1
  3174. 8001486: d17f bne.n 8001588 <__gxx_personality_v0+0x340>
  3175. 8001488: 0038 movs r0, r7
  3176. 800148a: f007 fac1 bl 8008a10 <__cxa_call_terminate>
  3177. 800148e: 9b0f ldr r3, [sp, #60] @ 0x3c
  3178. 8001490: 464f mov r7, r9
  3179. 8001492: 2b00 cmp r3, #0
  3180. 8001494: d100 bne.n 8001498 <__gxx_personality_v0+0x250>
  3181. 8001496: e6e9 b.n 800126c <__gxx_personality_v0+0x24>
  3182. 8001498: 9a03 ldr r2, [sp, #12]
  3183. 800149a: 6855 ldr r5, [r2, #4]
  3184. 800149c: 195d adds r5, r3, r5
  3185. 800149e: 2900 cmp r1, #0
  3186. 80014a0: d100 bne.n 80014a4 <__gxx_personality_v0+0x25c>
  3187. 80014a2: e10c b.n 80016be <__gxx_personality_v0+0x476>
  3188. 80014a4: 1e4c subs r4, r1, #1
  3189. 80014a6: 4454 add r4, sl
  3190. 80014a8: 2d00 cmp r5, #0
  3191. 80014aa: d100 bne.n 80014ae <__gxx_personality_v0+0x266>
  3192. 80014ac: e6de b.n 800126c <__gxx_personality_v0+0x24>
  3193. 80014ae: 9a05 ldr r2, [sp, #20]
  3194. 80014b0: 2308 movs r3, #8
  3195. 80014b2: 0011 movs r1, r2
  3196. 80014b4: 4019 ands r1, r3
  3197. 80014b6: 910a str r1, [sp, #40] @ 0x28
  3198. 80014b8: 4213 tst r3, r2
  3199. 80014ba: d100 bne.n 80014be <__gxx_personality_v0+0x276>
  3200. 80014bc: e102 b.n 80016c4 <__gxx_personality_v0+0x47c>
  3201. 80014be: 333f adds r3, #63 @ 0x3f
  3202. 80014c0: 703b strb r3, [r7, #0]
  3203. 80014c2: 3307 adds r3, #7
  3204. 80014c4: 707b strb r3, [r7, #1]
  3205. 80014c6: 3307 adds r3, #7
  3206. 80014c8: 70bb strb r3, [r7, #2]
  3207. 80014ca: 3b12 subs r3, #18
  3208. 80014cc: 70fb strb r3, [r7, #3]
  3209. 80014ce: 3303 adds r3, #3
  3210. 80014d0: 713b strb r3, [r7, #4]
  3211. 80014d2: 3309 adds r3, #9
  3212. 80014d4: 717b strb r3, [r7, #5]
  3213. 80014d6: 3303 adds r3, #3
  3214. 80014d8: 71bb strb r3, [r7, #6]
  3215. 80014da: 2300 movs r3, #0
  3216. 80014dc: 71fb strb r3, [r7, #7]
  3217. 80014de: 2300 movs r3, #0
  3218. 80014e0: 9a06 ldr r2, [sp, #24]
  3219. 80014e2: 4699 mov r9, r3
  3220. 80014e4: 3307 adds r3, #7
  3221. 80014e6: 401a ands r2, r3
  3222. 80014e8: 4643 mov r3, r8
  3223. 80014ea: 9309 str r3, [sp, #36] @ 0x24
  3224. 80014ec: 9b03 ldr r3, [sp, #12]
  3225. 80014ee: 46ba mov sl, r7
  3226. 80014f0: 4698 mov r8, r3
  3227. 80014f2: 9202 str r2, [sp, #8]
  3228. 80014f4: 9508 str r5, [sp, #32]
  3229. 80014f6: 2300 movs r3, #0
  3230. 80014f8: 2100 movs r1, #0
  3231. 80014fa: 257f movs r5, #127 @ 0x7f
  3232. 80014fc: 002a movs r2, r5
  3233. 80014fe: 7820 ldrb r0, [r4, #0]
  3234. 8001500: 3401 adds r4, #1
  3235. 8001502: 4002 ands r2, r0
  3236. 8001504: 408a lsls r2, r1
  3237. 8001506: 4313 orrs r3, r2
  3238. 8001508: b242 sxtb r2, r0
  3239. 800150a: 3107 adds r1, #7
  3240. 800150c: 2a00 cmp r2, #0
  3241. 800150e: dbf5 blt.n 80014fc <__gxx_personality_v0+0x2b4>
  3242. 8001510: 291f cmp r1, #31
  3243. 8001512: d805 bhi.n 8001520 <__gxx_personality_v0+0x2d8>
  3244. 8001514: 0640 lsls r0, r0, #25
  3245. 8001516: d503 bpl.n 8001520 <__gxx_personality_v0+0x2d8>
  3246. 8001518: 2201 movs r2, #1
  3247. 800151a: 408a lsls r2, r1
  3248. 800151c: 4252 negs r2, r2
  3249. 800151e: 4313 orrs r3, r2
  3250. 8001520: 001e movs r6, r3
  3251. 8001522: 0020 movs r0, r4
  3252. 8001524: 2500 movs r5, #0
  3253. 8001526: 2200 movs r2, #0
  3254. 8001528: 277f movs r7, #127 @ 0x7f
  3255. 800152a: 469c mov ip, r3
  3256. 800152c: 0039 movs r1, r7
  3257. 800152e: 7803 ldrb r3, [r0, #0]
  3258. 8001530: 3001 adds r0, #1
  3259. 8001532: 4019 ands r1, r3
  3260. 8001534: 4091 lsls r1, r2
  3261. 8001536: 430d orrs r5, r1
  3262. 8001538: b259 sxtb r1, r3
  3263. 800153a: 3207 adds r2, #7
  3264. 800153c: 2900 cmp r1, #0
  3265. 800153e: dbf5 blt.n 800152c <__gxx_personality_v0+0x2e4>
  3266. 8001540: 0019 movs r1, r3
  3267. 8001542: 4663 mov r3, ip
  3268. 8001544: 2a1f cmp r2, #31
  3269. 8001546: d83e bhi.n 80015c6 <__gxx_personality_v0+0x37e>
  3270. 8001548: 0649 lsls r1, r1, #25
  3271. 800154a: d53c bpl.n 80015c6 <__gxx_personality_v0+0x37e>
  3272. 800154c: 2101 movs r1, #1
  3273. 800154e: 4091 lsls r1, r2
  3274. 8001550: 424a negs r2, r1
  3275. 8001552: 4315 orrs r5, r2
  3276. 8001554: 2b00 cmp r3, #0
  3277. 8001556: d14b bne.n 80015f0 <__gxx_personality_v0+0x3a8>
  3278. 8001558: 2301 movs r3, #1
  3279. 800155a: 4699 mov r9, r3
  3280. 800155c: 1964 adds r4, r4, r5
  3281. 800155e: e7ca b.n 80014f6 <__gxx_personality_v0+0x2ae>
  3282. 8001560: 2b01 cmp r3, #1
  3283. 8001562: d100 bne.n 8001566 <__gxx_personality_v0+0x31e>
  3284. 8001564: e0c8 b.n 80016f8 <__gxx_personality_v0+0x4b0>
  3285. 8001566: 4653 mov r3, sl
  3286. 8001568: 2b00 cmp r3, #0
  3287. 800156a: da00 bge.n 800156e <__gxx_personality_v0+0x326>
  3288. 800156c: e0c0 b.n 80016f0 <__gxx_personality_v0+0x4a8>
  3289. 800156e: 4654 mov r4, sl
  3290. 8001570: 2603 movs r6, #3
  3291. 8001572: e753 b.n 800141c <__gxx_personality_v0+0x1d4>
  3292. 8001574: 9b09 ldr r3, [sp, #36] @ 0x24
  3293. 8001576: 46ab mov fp, r5
  3294. 8001578: 4698 mov r8, r3
  3295. 800157a: 9b05 ldr r3, [sp, #20]
  3296. 800157c: 46b2 mov sl, r6
  3297. 800157e: 0027 movs r7, r4
  3298. 8001580: 9d08 ldr r5, [sp, #32]
  3299. 8001582: 07db lsls r3, r3, #31
  3300. 8001584: d500 bpl.n 8001588 <__gxx_personality_v0+0x340>
  3301. 8001586: e707 b.n 8001398 <__gxx_personality_v0+0x150>
  3302. 8001588: 4654 mov r4, sl
  3303. 800158a: e742 b.n 8001412 <__gxx_personality_v0+0x1ca>
  3304. 800158c: 9e03 ldr r6, [sp, #12]
  3305. 800158e: 9904 ldr r1, [sp, #16]
  3306. 8001590: 0032 movs r2, r6
  3307. 8001592: 4640 mov r0, r8
  3308. 8001594: f7ff fe0e bl 80011b4 <parse_lsda_header(_Unwind_Context*, unsigned char const*, lsda_header_info*)>
  3309. 8001598: 4641 mov r1, r8
  3310. 800159a: 7d30 ldrb r0, [r6, #20]
  3311. 800159c: f7ff fdea bl 8001174 <base_of_encoded_value(unsigned char, _Unwind_Context*)>
  3312. 80015a0: 43e3 mvns r3, r4
  3313. 80015a2: 68f1 ldr r1, [r6, #12]
  3314. 80015a4: 009b lsls r3, r3, #2
  3315. 80015a6: 18c9 adds r1, r1, r3
  3316. 80015a8: 680b ldr r3, [r1, #0]
  3317. 80015aa: 2b00 cmp r3, #0
  3318. 80015ac: d005 beq.n 80015ba <__gxx_personality_v0+0x372>
  3319. 80015ae: 2300 movs r3, #0
  3320. 80015b0: 3301 adds r3, #1
  3321. 80015b2: 009a lsls r2, r3, #2
  3322. 80015b4: 588a ldr r2, [r1, r2]
  3323. 80015b6: 2a00 cmp r2, #0
  3324. 80015b8: d1fa bne.n 80015b0 <__gxx_personality_v0+0x368>
  3325. 80015ba: 62bb str r3, [r7, #40] @ 0x28
  3326. 80015bc: 2304 movs r3, #4
  3327. 80015be: 62f8 str r0, [r7, #44] @ 0x2c
  3328. 80015c0: 633b str r3, [r7, #48] @ 0x30
  3329. 80015c2: 6379 str r1, [r7, #52] @ 0x34
  3330. 80015c4: e729 b.n 800141a <__gxx_personality_v0+0x1d2>
  3331. 80015c6: 2b00 cmp r3, #0
  3332. 80015c8: d112 bne.n 80015f0 <__gxx_personality_v0+0x3a8>
  3333. 80015ca: 2301 movs r3, #1
  3334. 80015cc: 4699 mov r9, r3
  3335. 80015ce: 2d00 cmp r5, #0
  3336. 80015d0: d1c4 bne.n 800155c <__gxx_personality_v0+0x314>
  3337. 80015d2: 9b09 ldr r3, [sp, #36] @ 0x24
  3338. 80015d4: 4657 mov r7, sl
  3339. 80015d6: 4698 mov r8, r3
  3340. 80015d8: 464b mov r3, r9
  3341. 80015da: 9d08 ldr r5, [sp, #32]
  3342. 80015dc: 2b00 cmp r3, #0
  3343. 80015de: d100 bne.n 80015e2 <__gxx_personality_v0+0x39a>
  3344. 80015e0: e644 b.n 800126c <__gxx_personality_v0+0x24>
  3345. 80015e2: 9b05 ldr r3, [sp, #20]
  3346. 80015e4: 07db lsls r3, r3, #31
  3347. 80015e6: d500 bpl.n 80015ea <__gxx_personality_v0+0x3a2>
  3348. 80015e8: e640 b.n 800126c <__gxx_personality_v0+0x24>
  3349. 80015ea: 2400 movs r4, #0
  3350. 80015ec: 2602 movs r6, #2
  3351. 80015ee: e715 b.n 800141c <__gxx_personality_v0+0x1d4>
  3352. 80015f0: 2b00 cmp r3, #0
  3353. 80015f2: dc13 bgt.n 800161c <__gxx_personality_v0+0x3d4>
  3354. 80015f4: 43db mvns r3, r3
  3355. 80015f6: 4652 mov r2, sl
  3356. 80015f8: 009b lsls r3, r3, #2
  3357. 80015fa: 2a00 cmp r2, #0
  3358. 80015fc: d002 beq.n 8001604 <__gxx_personality_v0+0x3bc>
  3359. 80015fe: 9a0a ldr r2, [sp, #40] @ 0x28
  3360. 8001600: 2a00 cmp r2, #0
  3361. 8001602: d02f beq.n 8001664 <__gxx_personality_v0+0x41c>
  3362. 8001604: 4642 mov r2, r8
  3363. 8001606: 68d2 ldr r2, [r2, #12]
  3364. 8001608: 58d3 ldr r3, [r2, r3]
  3365. 800160a: 2b00 cmp r3, #0
  3366. 800160c: d1df bne.n 80015ce <__gxx_personality_v0+0x386>
  3367. 800160e: 9b09 ldr r3, [sp, #36] @ 0x24
  3368. 8001610: 4657 mov r7, sl
  3369. 8001612: 4698 mov r8, r3
  3370. 8001614: 46b2 mov sl, r6
  3371. 8001616: 2303 movs r3, #3
  3372. 8001618: 9d08 ldr r5, [sp, #32]
  3373. 800161a: e6ba b.n 8001392 <__gxx_personality_v0+0x14a>
  3374. 800161c: 9a06 ldr r2, [sp, #24]
  3375. 800161e: 2aff cmp r2, #255 @ 0xff
  3376. 8001620: d04b beq.n 80016ba <__gxx_personality_v0+0x472>
  3377. 8001622: 9a02 ldr r2, [sp, #8]
  3378. 8001624: 2a02 cmp r2, #2
  3379. 8001626: d045 beq.n 80016b4 <__gxx_personality_v0+0x46c>
  3380. 8001628: d93f bls.n 80016aa <__gxx_personality_v0+0x462>
  3381. 800162a: 9a02 ldr r2, [sp, #8]
  3382. 800162c: 2a03 cmp r2, #3
  3383. 800162e: d03e beq.n 80016ae <__gxx_personality_v0+0x466>
  3384. 8001630: 2a04 cmp r2, #4
  3385. 8001632: d163 bne.n 80016fc <__gxx_personality_v0+0x4b4>
  3386. 8001634: 00db lsls r3, r3, #3
  3387. 8001636: 425b negs r3, r3
  3388. 8001638: 4642 mov r2, r8
  3389. 800163a: 68d2 ldr r2, [r2, #12]
  3390. 800163c: 9907 ldr r1, [sp, #28]
  3391. 800163e: 18d2 adds r2, r2, r3
  3392. 8001640: 9806 ldr r0, [sp, #24]
  3393. 8001642: 465b mov r3, fp
  3394. 8001644: f7ff fd14 bl 8001070 <read_encoded_value_with_base(unsigned char, unsigned int, unsigned char const*, unsigned int*)>
  3395. 8001648: 990f ldr r1, [sp, #60] @ 0x3c
  3396. 800164a: 2900 cmp r1, #0
  3397. 800164c: d0df beq.n 800160e <__gxx_personality_v0+0x3c6>
  3398. 800164e: 4653 mov r3, sl
  3399. 8001650: 2b00 cmp r3, #0
  3400. 8001652: d0bc beq.n 80015ce <__gxx_personality_v0+0x386>
  3401. 8001654: 2200 movs r2, #0
  3402. 8001656: 4650 mov r0, sl
  3403. 8001658: ab0c add r3, sp, #48 @ 0x30
  3404. 800165a: f007 f8f3 bl 8008844 <__cxa_type_match>
  3405. 800165e: 2800 cmp r0, #0
  3406. 8001660: d0b5 beq.n 80015ce <__gxx_personality_v0+0x386>
  3407. 8001662: e7d4 b.n 800160e <__gxx_personality_v0+0x3c6>
  3408. 8001664: 9f13 ldr r7, [sp, #76] @ 0x4c
  3409. 8001666: 9a0c ldr r2, [sp, #48] @ 0x30
  3410. 8001668: 18ff adds r7, r7, r3
  3411. 800166a: 6839 ldr r1, [r7, #0]
  3412. 800166c: 920b str r2, [sp, #44] @ 0x2c
  3413. 800166e: 920f str r2, [sp, #60] @ 0x3c
  3414. 8001670: 2900 cmp r1, #0
  3415. 8001672: d032 beq.n 80016da <__gxx_personality_v0+0x492>
  3416. 8001674: 4653 mov r3, sl
  3417. 8001676: 465a mov r2, fp
  3418. 8001678: 46a2 mov sl, r4
  3419. 800167a: 46ab mov fp, r5
  3420. 800167c: 001c movs r4, r3
  3421. 800167e: 0015 movs r5, r2
  3422. 8001680: e004 b.n 800168c <__gxx_personality_v0+0x444>
  3423. 8001682: 6879 ldr r1, [r7, #4]
  3424. 8001684: 3704 adds r7, #4
  3425. 8001686: 2900 cmp r1, #0
  3426. 8001688: d100 bne.n 800168c <__gxx_personality_v0+0x444>
  3427. 800168a: e773 b.n 8001574 <__gxx_personality_v0+0x32c>
  3428. 800168c: 002b movs r3, r5
  3429. 800168e: 2200 movs r2, #0
  3430. 8001690: 0020 movs r0, r4
  3431. 8001692: 1879 adds r1, r7, r1
  3432. 8001694: f007 f8d6 bl 8008844 <__cxa_type_match>
  3433. 8001698: 2800 cmp r0, #0
  3434. 800169a: d0f2 beq.n 8001682 <__gxx_personality_v0+0x43a>
  3435. 800169c: 0022 movs r2, r4
  3436. 800169e: 002b movs r3, r5
  3437. 80016a0: 4654 mov r4, sl
  3438. 80016a2: 465d mov r5, fp
  3439. 80016a4: 4692 mov sl, r2
  3440. 80016a6: 469b mov fp, r3
  3441. 80016a8: e791 b.n 80015ce <__gxx_personality_v0+0x386>
  3442. 80016aa: 2a00 cmp r2, #0
  3443. 80016ac: d126 bne.n 80016fc <__gxx_personality_v0+0x4b4>
  3444. 80016ae: 009b lsls r3, r3, #2
  3445. 80016b0: 425b negs r3, r3
  3446. 80016b2: e7c1 b.n 8001638 <__gxx_personality_v0+0x3f0>
  3447. 80016b4: 005b lsls r3, r3, #1
  3448. 80016b6: 425b negs r3, r3
  3449. 80016b8: e7be b.n 8001638 <__gxx_personality_v0+0x3f0>
  3450. 80016ba: 2300 movs r3, #0
  3451. 80016bc: e7bc b.n 8001638 <__gxx_personality_v0+0x3f0>
  3452. 80016be: 2d00 cmp r5, #0
  3453. 80016c0: d18f bne.n 80015e2 <__gxx_personality_v0+0x39a>
  3454. 80016c2: e5d3 b.n 800126c <__gxx_personality_v0+0x24>
  3455. 80016c4: 003b movs r3, r7
  3456. 80016c6: 79fa ldrb r2, [r7, #7]
  3457. 80016c8: 3358 adds r3, #88 @ 0x58
  3458. 80016ca: 2a01 cmp r2, #1
  3459. 80016cc: d001 beq.n 80016d2 <__gxx_personality_v0+0x48a>
  3460. 80016ce: 930c str r3, [sp, #48] @ 0x30
  3461. 80016d0: e705 b.n 80014de <__gxx_personality_v0+0x296>
  3462. 80016d2: 3b78 subs r3, #120 @ 0x78
  3463. 80016d4: 681b ldr r3, [r3, #0]
  3464. 80016d6: 930c str r3, [sp, #48] @ 0x30
  3465. 80016d8: e701 b.n 80014de <__gxx_personality_v0+0x296>
  3466. 80016da: 9b09 ldr r3, [sp, #36] @ 0x24
  3467. 80016dc: 4657 mov r7, sl
  3468. 80016de: 4698 mov r8, r3
  3469. 80016e0: 9b05 ldr r3, [sp, #20]
  3470. 80016e2: 46b2 mov sl, r6
  3471. 80016e4: 9d08 ldr r5, [sp, #32]
  3472. 80016e6: 07db lsls r3, r3, #31
  3473. 80016e8: d500 bpl.n 80016ec <__gxx_personality_v0+0x4a4>
  3474. 80016ea: e657 b.n 800139c <__gxx_personality_v0+0x154>
  3475. 80016ec: 4654 mov r4, sl
  3476. 80016ee: e690 b.n 8001412 <__gxx_personality_v0+0x1ca>
  3477. 80016f0: f000 f81a bl 8001728 <std::unexpected()>
  3478. 80016f4: f007 fa1a bl 8008b2c <__cxa_begin_catch>
  3479. 80016f8: f000 f80a bl 8001710 <std::terminate()>
  3480. 80016fc: f008 fc88 bl 800a010 <abort>
  3481.  
  3482. 08001700 <__cxxabiv1::__terminate(void (*)())>:
  3483. 8001700: b510 push {r4, lr}
  3484. 8001702: 4780 blx r0
  3485. 8001704: f008 fc84 bl 800a010 <abort>
  3486. 8001708: f007 fa10 bl 8008b2c <__cxa_begin_catch>
  3487. 800170c: f008 fc80 bl 800a010 <abort>
  3488.  
  3489. 08001710 <std::terminate()>:
  3490. 8001710: 4b02 ldr r3, [pc, #8] @ (800171c <std::terminate()+0xc>)
  3491. 8001712: b510 push {r4, lr}
  3492. 8001714: 6818 ldr r0, [r3, #0]
  3493. 8001716: f7ff fff3 bl 8001700 <__cxxabiv1::__terminate(void (*)())>
  3494. 800171a: 46c0 nop @ (mov r8, r8)
  3495. 800171c: 20000004 .word 0x20000004
  3496.  
  3497. 08001720 <__cxxabiv1::__unexpected(void (*)())>:
  3498. 8001720: b510 push {r4, lr}
  3499. 8001722: 4780 blx r0
  3500. 8001724: f7ff fff4 bl 8001710 <std::terminate()>
  3501.  
  3502. 08001728 <std::unexpected()>:
  3503. 8001728: 4b02 ldr r3, [pc, #8] @ (8001734 <std::unexpected()+0xc>)
  3504. 800172a: b510 push {r4, lr}
  3505. 800172c: 6818 ldr r0, [r3, #0]
  3506. 800172e: f7ff fff7 bl 8001720 <__cxxabiv1::__unexpected(void (*)())>
  3507. 8001732: 46c0 nop @ (mov r8, r8)
  3508. 8001734: 20000000 .word 0x20000000
  3509.  
  3510. 08001738 <std::get_terminate()>:
  3511. 8001738: 4b01 ldr r3, [pc, #4] @ (8001740 <std::get_terminate()+0x8>)
  3512. 800173a: 6818 ldr r0, [r3, #0]
  3513. 800173c: 4770 bx lr
  3514. 800173e: 46c0 nop @ (mov r8, r8)
  3515. 8001740: 20000004 .word 0x20000004
  3516.  
  3517. 08001744 <std::get_unexpected()>:
  3518. 8001744: 4b01 ldr r3, [pc, #4] @ (800174c <std::get_unexpected()+0x8>)
  3519. 8001746: 6818 ldr r0, [r3, #0]
  3520. 8001748: 4770 bx lr
  3521. 800174a: 46c0 nop @ (mov r8, r8)
  3522. 800174c: 20000000 .word 0x20000000
  3523.  
  3524. 08001750 <__gnu_cxx::__verbose_terminate_handler()>:
  3525. 8001750: b570 push {r4, r5, r6, lr}
  3526. 8001752: 4b3d ldr r3, [pc, #244] @ (8001848 <__gnu_cxx::__verbose_terminate_handler()+0xf8>)
  3527. 8001754: b082 sub sp, #8
  3528. 8001756: 781a ldrb r2, [r3, #0]
  3529. 8001758: 2a00 cmp r2, #0
  3530. 800175a: d144 bne.n 80017e6 <__gnu_cxx::__verbose_terminate_handler()+0x96>
  3531. 800175c: 2201 movs r2, #1
  3532. 800175e: 701a strb r2, [r3, #0]
  3533. 8001760: f007 fb0e bl 8008d80 <__cxa_current_exception_type>
  3534. 8001764: 2800 cmp r0, #0
  3535. 8001766: d034 beq.n 80017d2 <__gnu_cxx::__verbose_terminate_handler()+0x82>
  3536. 8001768: 6844 ldr r4, [r0, #4]
  3537. 800176a: 2100 movs r1, #0
  3538. 800176c: 7823 ldrb r3, [r4, #0]
  3539. 800176e: 3b2a subs r3, #42 @ 0x2a
  3540. 8001770: 425a negs r2, r3
  3541. 8001772: 4153 adcs r3, r2
  3542. 8001774: 18e4 adds r4, r4, r3
  3543. 8001776: 2301 movs r3, #1
  3544. 8001778: 425b negs r3, r3
  3545. 800177a: 2200 movs r2, #0
  3546. 800177c: 9301 str r3, [sp, #4]
  3547. 800177e: 0020 movs r0, r4
  3548. 8001780: ab01 add r3, sp, #4
  3549. 8001782: f006 fff1 bl 8008768 <__cxa_demangle>
  3550. 8001786: 4d31 ldr r5, [pc, #196] @ (800184c <__gnu_cxx::__verbose_terminate_handler()+0xfc>)
  3551. 8001788: 0006 movs r6, r0
  3552. 800178a: 682b ldr r3, [r5, #0]
  3553. 800178c: 2230 movs r2, #48 @ 0x30
  3554. 800178e: 68db ldr r3, [r3, #12]
  3555. 8001790: 2101 movs r1, #1
  3556. 8001792: 482f ldr r0, [pc, #188] @ (8001850 <__gnu_cxx::__verbose_terminate_handler()+0x100>)
  3557. 8001794: f009 f808 bl 800a7a8 <fwrite>
  3558. 8001798: 9b01 ldr r3, [sp, #4]
  3559. 800179a: 2b00 cmp r3, #0
  3560. 800179c: d013 beq.n 80017c6 <__gnu_cxx::__verbose_terminate_handler()+0x76>
  3561. 800179e: 682b ldr r3, [r5, #0]
  3562. 80017a0: 0020 movs r0, r4
  3563. 80017a2: 68d9 ldr r1, [r3, #12]
  3564. 80017a4: f009 fbfe bl 800afa4 <fputs>
  3565. 80017a8: 682b ldr r3, [r5, #0]
  3566. 80017aa: 2202 movs r2, #2
  3567. 80017ac: 68db ldr r3, [r3, #12]
  3568. 80017ae: 2101 movs r1, #1
  3569. 80017b0: 4828 ldr r0, [pc, #160] @ (8001854 <__gnu_cxx::__verbose_terminate_handler()+0x104>)
  3570. 80017b2: f008 fff9 bl 800a7a8 <fwrite>
  3571. 80017b6: 9b01 ldr r3, [sp, #4]
  3572. 80017b8: 2b00 cmp r3, #0
  3573. 80017ba: d102 bne.n 80017c2 <__gnu_cxx::__verbose_terminate_handler()+0x72>
  3574. 80017bc: 0030 movs r0, r6
  3575. 80017be: f008 fc8b bl 800a0d8 <free>
  3576. 80017c2: f007 faa5 bl 8008d10 <__cxa_rethrow>
  3577. 80017c6: 682b ldr r3, [r5, #0]
  3578. 80017c8: 0030 movs r0, r6
  3579. 80017ca: 68d9 ldr r1, [r3, #12]
  3580. 80017cc: f009 fbea bl 800afa4 <fputs>
  3581. 80017d0: e7ea b.n 80017a8 <__gnu_cxx::__verbose_terminate_handler()+0x58>
  3582. 80017d2: 4b1e ldr r3, [pc, #120] @ (800184c <__gnu_cxx::__verbose_terminate_handler()+0xfc>)
  3583. 80017d4: 222d movs r2, #45 @ 0x2d
  3584. 80017d6: 681b ldr r3, [r3, #0]
  3585. 80017d8: 2101 movs r1, #1
  3586. 80017da: 481f ldr r0, [pc, #124] @ (8001858 <__gnu_cxx::__verbose_terminate_handler()+0x108>)
  3587. 80017dc: 68db ldr r3, [r3, #12]
  3588. 80017de: f008 ffe3 bl 800a7a8 <fwrite>
  3589. 80017e2: f008 fc15 bl 800a010 <abort>
  3590. 80017e6: 4b19 ldr r3, [pc, #100] @ (800184c <__gnu_cxx::__verbose_terminate_handler()+0xfc>)
  3591. 80017e8: 221d movs r2, #29
  3592. 80017ea: 681b ldr r3, [r3, #0]
  3593. 80017ec: 2101 movs r1, #1
  3594. 80017ee: 68db ldr r3, [r3, #12]
  3595. 80017f0: 481a ldr r0, [pc, #104] @ (800185c <__gnu_cxx::__verbose_terminate_handler()+0x10c>)
  3596. 80017f2: f008 ffd9 bl 800a7a8 <fwrite>
  3597. 80017f6: f008 fc0b bl 800a010 <abort>
  3598. 80017fa: 000c movs r4, r1
  3599. 80017fc: 2901 cmp r1, #1
  3600. 80017fe: d119 bne.n 8001834 <__gnu_cxx::__verbose_terminate_handler()+0xe4>
  3601. 8001800: f007 f994 bl 8008b2c <__cxa_begin_catch>
  3602. 8001804: 6803 ldr r3, [r0, #0]
  3603. 8001806: 689b ldr r3, [r3, #8]
  3604. 8001808: 4798 blx r3
  3605. 800180a: 682b ldr r3, [r5, #0]
  3606. 800180c: 0006 movs r6, r0
  3607. 800180e: 220b movs r2, #11
  3608. 8001810: 0021 movs r1, r4
  3609. 8001812: 4813 ldr r0, [pc, #76] @ (8001860 <__gnu_cxx::__verbose_terminate_handler()+0x110>)
  3610. 8001814: 68db ldr r3, [r3, #12]
  3611. 8001816: f008 ffc7 bl 800a7a8 <fwrite>
  3612. 800181a: 682b ldr r3, [r5, #0]
  3613. 800181c: 0030 movs r0, r6
  3614. 800181e: 68d9 ldr r1, [r3, #12]
  3615. 8001820: f009 fbc0 bl 800afa4 <fputs>
  3616. 8001824: 682b ldr r3, [r5, #0]
  3617. 8001826: 200a movs r0, #10
  3618. 8001828: 68d9 ldr r1, [r3, #12]
  3619. 800182a: f009 fb47 bl 800aebc <fputc>
  3620. 800182e: f007 f9b7 bl 8008ba0 <__cxa_end_catch>
  3621. 8001832: e7d6 b.n 80017e2 <__gnu_cxx::__verbose_terminate_handler()+0x92>
  3622. 8001834: f007 f97a bl 8008b2c <__cxa_begin_catch>
  3623. 8001838: f007 f9b2 bl 8008ba0 <__cxa_end_catch>
  3624. 800183c: e7d1 b.n 80017e2 <__gnu_cxx::__verbose_terminate_handler()+0x92>
  3625. 800183e: f007 f9af bl 8008ba0 <__cxa_end_catch>
  3626. 8001842: f006 fff9 bl 8008838 <__cxa_end_cleanup>
  3627. 8001846: 46c0 nop @ (mov r8, r8)
  3628. 8001848: 200007f4 .word 0x200007f4
  3629. 800184c: 20000424 .word 0x20000424
  3630. 8001850: 08014070 .word 0x08014070
  3631. 8001854: 080140a4 .word 0x080140a4
  3632. 8001858: 080140a8 .word 0x080140a8
  3633. 800185c: 08014050 .word 0x08014050
  3634. 8001860: 080140d8 .word 0x080140d8
  3635.  
  3636. 08001864 <d_make_comp>:
  3637. 8001864: b570 push {r4, r5, r6, lr}
  3638. 8001866: 0005 movs r5, r0
  3639. 8001868: 2931 cmp r1, #49 @ 0x31
  3640. 800186a: d835 bhi.n 80018d8 <d_make_comp+0x74>
  3641. 800186c: 2928 cmp r1, #40 @ 0x28
  3642. 800186e: d908 bls.n 8001882 <d_make_comp+0x1e>
  3643. 8001870: 0008 movs r0, r1
  3644. 8001872: 3829 subs r0, #41 @ 0x29
  3645. 8001874: b2c0 uxtb r0, r0
  3646. 8001876: 2808 cmp r0, #8
  3647. 8001878: d814 bhi.n 80018a4 <d_make_comp+0x40>
  3648. 800187a: 4c2a ldr r4, [pc, #168] @ (8001924 <d_make_comp+0xc0>)
  3649. 800187c: 0080 lsls r0, r0, #2
  3650. 800187e: 5820 ldr r0, [r4, r0]
  3651. 8001880: 4687 mov pc, r0
  3652. 8001882: 290a cmp r1, #10
  3653. 8001884: d910 bls.n 80018a8 <d_make_comp+0x44>
  3654. 8001886: 000c movs r4, r1
  3655. 8001888: 2001 movs r0, #1
  3656. 800188a: 3c0b subs r4, #11
  3657. 800188c: b2e4 uxtb r4, r4
  3658. 800188e: 40a0 lsls r0, r4
  3659. 8001890: 4c25 ldr r4, [pc, #148] @ (8001928 <d_make_comp+0xc4>)
  3660. 8001892: 4220 tst r0, r4
  3661. 8001894: d12c bne.n 80018f0 <d_make_comp+0x8c>
  3662. 8001896: 24ff movs r4, #255 @ 0xff
  3663. 8001898: 03a4 lsls r4, r4, #14
  3664. 800189a: 4220 tst r0, r4
  3665. 800189c: d10a bne.n 80018b4 <d_make_comp+0x50>
  3666. 800189e: 4c23 ldr r4, [pc, #140] @ (800192c <d_make_comp+0xc8>)
  3667. 80018a0: 4220 tst r0, r4
  3668. 80018a2: d103 bne.n 80018ac <d_make_comp+0x48>
  3669. 80018a4: 2000 movs r0, #0
  3670. 80018a6: e016 b.n 80018d6 <d_make_comp+0x72>
  3671. 80018a8: 2904 cmp r1, #4
  3672. 80018aa: d835 bhi.n 8001918 <d_make_comp+0xb4>
  3673. 80018ac: 2a00 cmp r2, #0
  3674. 80018ae: d0f9 beq.n 80018a4 <d_make_comp+0x40>
  3675. 80018b0: 2b00 cmp r3, #0
  3676. 80018b2: d0f7 beq.n 80018a4 <d_make_comp+0x40>
  3677. 80018b4: 696e ldr r6, [r5, #20]
  3678. 80018b6: 69a8 ldr r0, [r5, #24]
  3679. 80018b8: 4286 cmp r6, r0
  3680. 80018ba: daf3 bge.n 80018a4 <d_make_comp+0x40>
  3681. 80018bc: 00b0 lsls r0, r6, #2
  3682. 80018be: 692c ldr r4, [r5, #16]
  3683. 80018c0: 1980 adds r0, r0, r6
  3684. 80018c2: 0080 lsls r0, r0, #2
  3685. 80018c4: 1820 adds r0, r4, r0
  3686. 80018c6: 2400 movs r4, #0
  3687. 80018c8: 3601 adds r6, #1
  3688. 80018ca: 6044 str r4, [r0, #4]
  3689. 80018cc: 6084 str r4, [r0, #8]
  3690. 80018ce: 616e str r6, [r5, #20]
  3691. 80018d0: 7001 strb r1, [r0, #0]
  3692. 80018d2: 60c2 str r2, [r0, #12]
  3693. 80018d4: 6103 str r3, [r0, #16]
  3694. 80018d6: bd70 pop {r4, r5, r6, pc}
  3695. 80018d8: 294f cmp r1, #79 @ 0x4f
  3696. 80018da: d80d bhi.n 80018f8 <d_make_comp+0x94>
  3697. 80018dc: 2933 cmp r1, #51 @ 0x33
  3698. 80018de: d9e1 bls.n 80018a4 <d_make_comp+0x40>
  3699. 80018e0: 000c movs r4, r1
  3700. 80018e2: 2001 movs r0, #1
  3701. 80018e4: 3c34 subs r4, #52 @ 0x34
  3702. 80018e6: b2e4 uxtb r4, r4
  3703. 80018e8: 40a0 lsls r0, r4
  3704. 80018ea: 4c11 ldr r4, [pc, #68] @ (8001930 <d_make_comp+0xcc>)
  3705. 80018ec: 4220 tst r0, r4
  3706. 80018ee: d00c beq.n 800190a <d_make_comp+0xa6>
  3707. 80018f0: 2a00 cmp r2, #0
  3708. 80018f2: d1df bne.n 80018b4 <d_make_comp+0x50>
  3709. 80018f4: 2000 movs r0, #0
  3710. 80018f6: e7ee b.n 80018d6 <d_make_comp+0x72>
  3711. 80018f8: 0008 movs r0, r1
  3712. 80018fa: 3852 subs r0, #82 @ 0x52
  3713. 80018fc: b2c0 uxtb r0, r0
  3714. 80018fe: 2809 cmp r0, #9
  3715. 8001900: d8d8 bhi.n 80018b4 <d_make_comp+0x50>
  3716. 8001902: 4c0c ldr r4, [pc, #48] @ (8001934 <d_make_comp+0xd0>)
  3717. 8001904: 0080 lsls r0, r0, #2
  3718. 8001906: 5820 ldr r0, [r4, r0]
  3719. 8001908: 4687 mov pc, r0
  3720. 800190a: 4c0b ldr r4, [pc, #44] @ (8001938 <d_make_comp+0xd4>)
  3721. 800190c: 4220 tst r0, r4
  3722. 800190e: d1cd bne.n 80018ac <d_make_comp+0x48>
  3723. 8001910: 294e cmp r1, #78 @ 0x4e
  3724. 8001912: d0cf beq.n 80018b4 <d_make_comp+0x50>
  3725. 8001914: 2000 movs r0, #0
  3726. 8001916: e7de b.n 80018d6 <d_make_comp+0x72>
  3727. 8001918: 000c movs r4, r1
  3728. 800191a: 3c09 subs r4, #9
  3729. 800191c: 2000 movs r0, #0
  3730. 800191e: 2c01 cmp r4, #1
  3731. 8001920: d8d9 bhi.n 80018d6 <d_make_comp+0x72>
  3732. 8001922: e7e5 b.n 80018f0 <d_make_comp+0x8c>
  3733. 8001924: 08014c08 .word 0x08014c08
  3734. 8001928: 2f801ffe .word 0x2f801ffe
  3735. 800192c: 00400001 .word 0x00400001
  3736. 8001930: 01c71107 .word 0x01c71107
  3737. 8001934: 08014c2c .word 0x08014c2c
  3738. 8001938: 0a002ef8 .word 0x0a002ef8
  3739.  
  3740. 0800193c <d_number>:
  3741. 800193c: b5f8 push {r3, r4, r5, r6, r7, lr}
  3742. 800193e: 46ce mov lr, r9
  3743. 8001940: 4647 mov r7, r8
  3744. 8001942: b580 push {r7, lr}
  3745. 8001944: 68c5 ldr r5, [r0, #12]
  3746. 8001946: 0006 movs r6, r0
  3747. 8001948: 782c ldrb r4, [r5, #0]
  3748. 800194a: 2c6e cmp r4, #110 @ 0x6e
  3749. 800194c: d027 beq.n 800199e <d_number+0x62>
  3750. 800194e: 3c30 subs r4, #48 @ 0x30
  3751. 8001950: b2e3 uxtb r3, r4
  3752. 8001952: 2b09 cmp r3, #9
  3753. 8001954: d82e bhi.n 80019b4 <d_number+0x78>
  3754. 8001956: 2300 movs r3, #0
  3755. 8001958: 4698 mov r8, r3
  3756. 800195a: 4b17 ldr r3, [pc, #92] @ (80019b8 <d_number+0x7c>)
  3757. 800195c: 2700 movs r7, #0
  3758. 800195e: 4699 mov r9, r3
  3759. 8001960: 3501 adds r5, #1
  3760. 8001962: e007 b.n 8001974 <d_number+0x38>
  3761. 8001964: 464b mov r3, r9
  3762. 8001966: 210a movs r1, #10
  3763. 8001968: 1b18 subs r0, r3, r4
  3764. 800196a: 3501 adds r5, #1
  3765. 800196c: f7fe fc50 bl 8000210 <__divsi3>
  3766. 8001970: 42b8 cmp r0, r7
  3767. 8001972: db12 blt.n 800199a <d_number+0x5e>
  3768. 8001974: 00bb lsls r3, r7, #2
  3769. 8001976: 19db adds r3, r3, r7
  3770. 8001978: 005b lsls r3, r3, #1
  3771. 800197a: 60f5 str r5, [r6, #12]
  3772. 800197c: 191f adds r7, r3, r4
  3773. 800197e: 782c ldrb r4, [r5, #0]
  3774. 8001980: 3c30 subs r4, #48 @ 0x30
  3775. 8001982: b2e3 uxtb r3, r4
  3776. 8001984: 2b09 cmp r3, #9
  3777. 8001986: d9ed bls.n 8001964 <d_number+0x28>
  3778. 8001988: 4643 mov r3, r8
  3779. 800198a: 2b00 cmp r3, #0
  3780. 800198c: d000 beq.n 8001990 <d_number+0x54>
  3781. 800198e: 427f negs r7, r7
  3782. 8001990: 0038 movs r0, r7
  3783. 8001992: bcc0 pop {r6, r7}
  3784. 8001994: 46b9 mov r9, r7
  3785. 8001996: 46b0 mov r8, r6
  3786. 8001998: bdf8 pop {r3, r4, r5, r6, r7, pc}
  3787. 800199a: 2701 movs r7, #1
  3788. 800199c: e7f7 b.n 800198e <d_number+0x52>
  3789. 800199e: 1c6b adds r3, r5, #1
  3790. 80019a0: 60c3 str r3, [r0, #12]
  3791. 80019a2: 786c ldrb r4, [r5, #1]
  3792. 80019a4: 3c30 subs r4, #48 @ 0x30
  3793. 80019a6: b2e2 uxtb r2, r4
  3794. 80019a8: 2a09 cmp r2, #9
  3795. 80019aa: d803 bhi.n 80019b4 <d_number+0x78>
  3796. 80019ac: 001d movs r5, r3
  3797. 80019ae: 2301 movs r3, #1
  3798. 80019b0: 4698 mov r8, r3
  3799. 80019b2: e7d2 b.n 800195a <d_number+0x1e>
  3800. 80019b4: 2700 movs r7, #0
  3801. 80019b6: e7eb b.n 8001990 <d_number+0x54>
  3802. 80019b8: 7fffffff .word 0x7fffffff
  3803.  
  3804. 080019bc <d_call_offset>:
  3805. 80019bc: b510 push {r4, lr}
  3806. 80019be: 0004 movs r4, r0
  3807. 80019c0: 2900 cmp r1, #0
  3808. 80019c2: d108 bne.n 80019d6 <d_call_offset+0x1a>
  3809. 80019c4: 68c3 ldr r3, [r0, #12]
  3810. 80019c6: 781a ldrb r2, [r3, #0]
  3811. 80019c8: 2a00 cmp r2, #0
  3812. 80019ca: d101 bne.n 80019d0 <d_call_offset+0x14>
  3813. 80019cc: 2000 movs r0, #0
  3814. 80019ce: bd10 pop {r4, pc}
  3815. 80019d0: 1c5a adds r2, r3, #1
  3816. 80019d2: 60c2 str r2, [r0, #12]
  3817. 80019d4: 7819 ldrb r1, [r3, #0]
  3818. 80019d6: 2968 cmp r1, #104 @ 0x68
  3819. 80019d8: d00a beq.n 80019f0 <d_call_offset+0x34>
  3820. 80019da: 2976 cmp r1, #118 @ 0x76
  3821. 80019dc: d1f6 bne.n 80019cc <d_call_offset+0x10>
  3822. 80019de: 0020 movs r0, r4
  3823. 80019e0: f7ff ffac bl 800193c <d_number>
  3824. 80019e4: 68e3 ldr r3, [r4, #12]
  3825. 80019e6: 781a ldrb r2, [r3, #0]
  3826. 80019e8: 2a5f cmp r2, #95 @ 0x5f
  3827. 80019ea: d1ef bne.n 80019cc <d_call_offset+0x10>
  3828. 80019ec: 3301 adds r3, #1
  3829. 80019ee: 60e3 str r3, [r4, #12]
  3830. 80019f0: 0020 movs r0, r4
  3831. 80019f2: f7ff ffa3 bl 800193c <d_number>
  3832. 80019f6: 68e3 ldr r3, [r4, #12]
  3833. 80019f8: 781a ldrb r2, [r3, #0]
  3834. 80019fa: 2a5f cmp r2, #95 @ 0x5f
  3835. 80019fc: d1e6 bne.n 80019cc <d_call_offset+0x10>
  3836. 80019fe: 3301 adds r3, #1
  3837. 8001a00: 2001 movs r0, #1
  3838. 8001a02: 60e3 str r3, [r4, #12]
  3839. 8001a04: e7e3 b.n 80019ce <d_call_offset+0x12>
  3840. 8001a06: 46c0 nop @ (mov r8, r8)
  3841.  
  3842. 08001a08 <d_discriminator>:
  3843. 8001a08: b510 push {r4, lr}
  3844. 8001a0a: 68c3 ldr r3, [r0, #12]
  3845. 8001a0c: 0004 movs r4, r0
  3846. 8001a0e: 781a ldrb r2, [r3, #0]
  3847. 8001a10: 2a5f cmp r2, #95 @ 0x5f
  3848. 8001a12: d001 beq.n 8001a18 <d_discriminator+0x10>
  3849. 8001a14: 2001 movs r0, #1
  3850. 8001a16: e008 b.n 8001a2a <d_discriminator+0x22>
  3851. 8001a18: 1c5a adds r2, r3, #1
  3852. 8001a1a: 60c2 str r2, [r0, #12]
  3853. 8001a1c: 785a ldrb r2, [r3, #1]
  3854. 8001a1e: 2a5f cmp r2, #95 @ 0x5f
  3855. 8001a20: d004 beq.n 8001a2c <d_discriminator+0x24>
  3856. 8001a22: f7ff ff8b bl 800193c <d_number>
  3857. 8001a26: 43c0 mvns r0, r0
  3858. 8001a28: 0fc0 lsrs r0, r0, #31
  3859. 8001a2a: bd10 pop {r4, pc}
  3860. 8001a2c: 3302 adds r3, #2
  3861. 8001a2e: 60c3 str r3, [r0, #12]
  3862. 8001a30: f7ff ff84 bl 800193c <d_number>
  3863. 8001a34: 2800 cmp r0, #0
  3864. 8001a36: db0a blt.n 8001a4e <d_discriminator+0x46>
  3865. 8001a38: 2809 cmp r0, #9
  3866. 8001a3a: ddeb ble.n 8001a14 <d_discriminator+0xc>
  3867. 8001a3c: 68e3 ldr r3, [r4, #12]
  3868. 8001a3e: 2000 movs r0, #0
  3869. 8001a40: 781a ldrb r2, [r3, #0]
  3870. 8001a42: 2a5f cmp r2, #95 @ 0x5f
  3871. 8001a44: d1f1 bne.n 8001a2a <d_discriminator+0x22>
  3872. 8001a46: 3301 adds r3, #1
  3873. 8001a48: 2001 movs r0, #1
  3874. 8001a4a: 60e3 str r3, [r4, #12]
  3875. 8001a4c: e7ed b.n 8001a2a <d_discriminator+0x22>
  3876. 8001a4e: 2000 movs r0, #0
  3877. 8001a50: e7eb b.n 8001a2a <d_discriminator+0x22>
  3878. 8001a52: 46c0 nop @ (mov r8, r8)
  3879.  
  3880. 08001a54 <d_count_templates_scopes>:
  3881. 8001a54: b5f8 push {r3, r4, r5, r6, r7, lr}
  3882. 8001a56: 0005 movs r5, r0
  3883. 8001a58: 1e0c subs r4, r1, #0
  3884. 8001a5a: d026 beq.n 8001aaa <d_count_templates_scopes+0x56>
  3885. 8001a5c: 268e movs r6, #142 @ 0x8e
  3886. 8001a5e: 2080 movs r0, #128 @ 0x80
  3887. 8001a60: 0076 lsls r6, r6, #1
  3888. 8001a62: 00c0 lsls r0, r0, #3
  3889. 8001a64: 68a3 ldr r3, [r4, #8]
  3890. 8001a66: 2b01 cmp r3, #1
  3891. 8001a68: dc1f bgt.n 8001aaa <d_count_templates_scopes+0x56>
  3892. 8001a6a: 59aa ldr r2, [r5, r6]
  3893. 8001a6c: 4282 cmp r2, r0
  3894. 8001a6e: dc1c bgt.n 8001aaa <d_count_templates_scopes+0x56>
  3895. 8001a70: 3301 adds r3, #1
  3896. 8001a72: 60a3 str r3, [r4, #8]
  3897. 8001a74: 7823 ldrb r3, [r4, #0]
  3898. 8001a76: 2b41 cmp r3, #65 @ 0x41
  3899. 8001a78: d818 bhi.n 8001aac <d_count_templates_scopes+0x58>
  3900. 8001a7a: 2b22 cmp r3, #34 @ 0x22
  3901. 8001a7c: d806 bhi.n 8001a8c <d_count_templates_scopes+0x38>
  3902. 8001a7e: 1e59 subs r1, r3, #1
  3903. 8001a80: 2921 cmp r1, #33 @ 0x21
  3904. 8001a82: d812 bhi.n 8001aaa <d_count_templates_scopes+0x56>
  3905. 8001a84: 491e ldr r1, [pc, #120] @ (8001b00 <d_count_templates_scopes+0xac>)
  3906. 8001a86: 009b lsls r3, r3, #2
  3907. 8001a88: 58cb ldr r3, [r1, r3]
  3908. 8001a8a: 469f mov pc, r3
  3909. 8001a8c: 001f movs r7, r3
  3910. 8001a8e: 2101 movs r1, #1
  3911. 8001a90: 3f23 subs r7, #35 @ 0x23
  3912. 8001a92: b2ff uxtb r7, r7
  3913. 8001a94: 40b9 lsls r1, r7
  3914. 8001a96: 4f1b ldr r7, [pc, #108] @ (8001b04 <d_count_templates_scopes+0xb0>)
  3915. 8001a98: 4239 tst r1, r7
  3916. 8001a9a: d114 bne.n 8001ac6 <d_count_templates_scopes+0x72>
  3917. 8001a9c: 0789 lsls r1, r1, #30
  3918. 8001a9e: d124 bne.n 8001aea <d_count_templates_scopes+0x96>
  3919. 8001aa0: 2b33 cmp r3, #51 @ 0x33
  3920. 8001aa2: d102 bne.n 8001aaa <d_count_templates_scopes+0x56>
  3921. 8001aa4: 6924 ldr r4, [r4, #16]
  3922. 8001aa6: 2c00 cmp r4, #0
  3923. 8001aa8: d1dc bne.n 8001a64 <d_count_templates_scopes+0x10>
  3924. 8001aaa: bdf8 pop {r3, r4, r5, r6, r7, pc}
  3925. 8001aac: 3b44 subs r3, #68 @ 0x44
  3926. 8001aae: b2db uxtb r3, r3
  3927. 8001ab0: 2b11 cmp r3, #17
  3928. 8001ab2: d8fa bhi.n 8001aaa <d_count_templates_scopes+0x56>
  3929. 8001ab4: 4914 ldr r1, [pc, #80] @ (8001b08 <d_count_templates_scopes+0xb4>)
  3930. 8001ab6: 009b lsls r3, r3, #2
  3931. 8001ab8: 58cb ldr r3, [r1, r3]
  3932. 8001aba: 469f mov pc, r3
  3933. 8001abc: 21a2 movs r1, #162 @ 0xa2
  3934. 8001abe: 0049 lsls r1, r1, #1
  3935. 8001ac0: 586b ldr r3, [r5, r1]
  3936. 8001ac2: 3301 adds r3, #1
  3937. 8001ac4: 506b str r3, [r5, r1]
  3938. 8001ac6: 68e1 ldr r1, [r4, #12]
  3939. 8001ac8: 268e movs r6, #142 @ 0x8e
  3940. 8001aca: 3201 adds r2, #1
  3941. 8001acc: 0076 lsls r6, r6, #1
  3942. 8001ace: 0028 movs r0, r5
  3943. 8001ad0: 51aa str r2, [r5, r6]
  3944. 8001ad2: f7ff ffbf bl 8001a54 <d_count_templates_scopes>
  3945. 8001ad6: 0028 movs r0, r5
  3946. 8001ad8: 6921 ldr r1, [r4, #16]
  3947. 8001ada: f7ff ffbb bl 8001a54 <d_count_templates_scopes>
  3948. 8001ade: 59ab ldr r3, [r5, r6]
  3949. 8001ae0: 3b01 subs r3, #1
  3950. 8001ae2: 51ab str r3, [r5, r6]
  3951. 8001ae4: e7e1 b.n 8001aaa <d_count_templates_scopes+0x56>
  3952. 8001ae6: 68e4 ldr r4, [r4, #12]
  3953. 8001ae8: e7dd b.n 8001aa6 <d_count_templates_scopes+0x52>
  3954. 8001aea: 68e1 ldr r1, [r4, #12]
  3955. 8001aec: 780b ldrb r3, [r1, #0]
  3956. 8001aee: 2b05 cmp r3, #5
  3957. 8001af0: d1ea bne.n 8001ac8 <d_count_templates_scopes+0x74>
  3958. 8001af2: 209c movs r0, #156 @ 0x9c
  3959. 8001af4: 0040 lsls r0, r0, #1
  3960. 8001af6: 582b ldr r3, [r5, r0]
  3961. 8001af8: 3301 adds r3, #1
  3962. 8001afa: 502b str r3, [r5, r0]
  3963. 8001afc: e7e4 b.n 8001ac8 <d_count_templates_scopes+0x74>
  3964. 8001afe: 46c0 nop @ (mov r8, r8)
  3965. 8001b00: 08014c54 .word 0x08014c54
  3966. 8001b04: 7ffe7dec .word 0x7ffe7dec
  3967. 8001b08: 08014ce0 .word 0x08014ce0
  3968.  
  3969. 08001b0c <d_index_template_argument.part.0>:
  3970. 8001b0c: 2800 cmp r0, #0
  3971. 8001b0e: d106 bne.n 8001b1e <d_index_template_argument.part.0+0x12>
  3972. 8001b10: e008 b.n 8001b24 <d_index_template_argument.part.0+0x18>
  3973. 8001b12: 2900 cmp r1, #0
  3974. 8001b14: d008 beq.n 8001b28 <d_index_template_argument.part.0+0x1c>
  3975. 8001b16: 6900 ldr r0, [r0, #16]
  3976. 8001b18: 3901 subs r1, #1
  3977. 8001b1a: 2800 cmp r0, #0
  3978. 8001b1c: d003 beq.n 8001b26 <d_index_template_argument.part.0+0x1a>
  3979. 8001b1e: 7803 ldrb r3, [r0, #0]
  3980. 8001b20: 2b2f cmp r3, #47 @ 0x2f
  3981. 8001b22: d0f6 beq.n 8001b12 <d_index_template_argument.part.0+0x6>
  3982. 8001b24: 2000 movs r0, #0
  3983. 8001b26: 4770 bx lr
  3984. 8001b28: 68c0 ldr r0, [r0, #12]
  3985. 8001b2a: e7fc b.n 8001b26 <d_index_template_argument.part.0+0x1a>
  3986.  
  3987. 08001b2c <d_growable_string_callback_adapter>:
  3988. 8001b2c: b5f0 push {r4, r5, r6, r7, lr}
  3989. 8001b2e: 0014 movs r4, r2
  3990. 8001b30: 46c6 mov lr, r8
  3991. 8001b32: 6852 ldr r2, [r2, #4]
  3992. 8001b34: 1c4b adds r3, r1, #1
  3993. 8001b36: 68a5 ldr r5, [r4, #8]
  3994. 8001b38: 189b adds r3, r3, r2
  3995. 8001b3a: 4680 mov r8, r0
  3996. 8001b3c: 000e movs r6, r1
  3997. 8001b3e: b500 push {lr}
  3998. 8001b40: 68e7 ldr r7, [r4, #12]
  3999. 8001b42: 42ab cmp r3, r5
  4000. 8001b44: d812 bhi.n 8001b6c <d_growable_string_callback_adapter+0x40>
  4001. 8001b46: 2f00 cmp r7, #0
  4002. 8001b48: d10d bne.n 8001b66 <d_growable_string_callback_adapter+0x3a>
  4003. 8001b4a: 6863 ldr r3, [r4, #4]
  4004. 8001b4c: 6820 ldr r0, [r4, #0]
  4005. 8001b4e: 0032 movs r2, r6
  4006. 8001b50: 18c0 adds r0, r0, r3
  4007. 8001b52: 4641 mov r1, r8
  4008. 8001b54: f009 fc36 bl 800b3c4 <memcpy>
  4009. 8001b58: 6823 ldr r3, [r4, #0]
  4010. 8001b5a: 6862 ldr r2, [r4, #4]
  4011. 8001b5c: 199b adds r3, r3, r6
  4012. 8001b5e: 549f strb r7, [r3, r2]
  4013. 8001b60: 6863 ldr r3, [r4, #4]
  4014. 8001b62: 199b adds r3, r3, r6
  4015. 8001b64: 6063 str r3, [r4, #4]
  4016. 8001b66: bc80 pop {r7}
  4017. 8001b68: 46b8 mov r8, r7
  4018. 8001b6a: bdf0 pop {r4, r5, r6, r7, pc}
  4019. 8001b6c: 2f00 cmp r7, #0
  4020. 8001b6e: d1fa bne.n 8001b66 <d_growable_string_callback_adapter+0x3a>
  4021. 8001b70: 2d00 cmp r5, #0
  4022. 8001b72: d102 bne.n 8001b7a <d_growable_string_callback_adapter+0x4e>
  4023. 8001b74: 2b02 cmp r3, #2
  4024. 8001b76: d90d bls.n 8001b94 <d_growable_string_callback_adapter+0x68>
  4025. 8001b78: 3502 adds r5, #2
  4026. 8001b7a: 006d lsls r5, r5, #1
  4027. 8001b7c: 42ab cmp r3, r5
  4028. 8001b7e: d8fc bhi.n 8001b7a <d_growable_string_callback_adapter+0x4e>
  4029. 8001b80: 0029 movs r1, r5
  4030. 8001b82: 6820 ldr r0, [r4, #0]
  4031. 8001b84: f008 fe20 bl 800a7c8 <realloc>
  4032. 8001b88: 1e07 subs r7, r0, #0
  4033. 8001b8a: d005 beq.n 8001b98 <d_growable_string_callback_adapter+0x6c>
  4034. 8001b8c: 68e7 ldr r7, [r4, #12]
  4035. 8001b8e: 6020 str r0, [r4, #0]
  4036. 8001b90: 60a5 str r5, [r4, #8]
  4037. 8001b92: e7d8 b.n 8001b46 <d_growable_string_callback_adapter+0x1a>
  4038. 8001b94: 2502 movs r5, #2
  4039. 8001b96: e7f3 b.n 8001b80 <d_growable_string_callback_adapter+0x54>
  4040. 8001b98: 6820 ldr r0, [r4, #0]
  4041. 8001b9a: f008 fa9d bl 800a0d8 <free>
  4042. 8001b9e: 2301 movs r3, #1
  4043. 8001ba0: 6027 str r7, [r4, #0]
  4044. 8001ba2: 6067 str r7, [r4, #4]
  4045. 8001ba4: 60a7 str r7, [r4, #8]
  4046. 8001ba6: 60e3 str r3, [r4, #12]
  4047. 8001ba8: e7dd b.n 8001b66 <d_growable_string_callback_adapter+0x3a>
  4048. 8001baa: 46c0 nop @ (mov r8, r8)
  4049.  
  4050. 08001bac <next_is_type_qual.isra.0>:
  4051. 8001bac: 7802 ldrb r2, [r0, #0]
  4052. 8001bae: 0003 movs r3, r0
  4053. 8001bb0: 2a72 cmp r2, #114 @ 0x72
  4054. 8001bb2: d011 beq.n 8001bd8 <next_is_type_qual.isra.0+0x2c>
  4055. 8001bb4: 2a56 cmp r2, #86 @ 0x56
  4056. 8001bb6: d00f beq.n 8001bd8 <next_is_type_qual.isra.0+0x2c>
  4057. 8001bb8: 2a4b cmp r2, #75 @ 0x4b
  4058. 8001bba: d00d beq.n 8001bd8 <next_is_type_qual.isra.0+0x2c>
  4059. 8001bbc: 2000 movs r0, #0
  4060. 8001bbe: 2a44 cmp r2, #68 @ 0x44
  4061. 8001bc0: d10b bne.n 8001bda <next_is_type_qual.isra.0+0x2e>
  4062. 8001bc2: 7858 ldrb r0, [r3, #1]
  4063. 8001bc4: 0003 movs r3, r0
  4064. 8001bc6: 3b77 subs r3, #119 @ 0x77
  4065. 8001bc8: 2b01 cmp r3, #1
  4066. 8001bca: d905 bls.n 8001bd8 <next_is_type_qual.isra.0+0x2c>
  4067. 8001bcc: 2320 movs r3, #32
  4068. 8001bce: 4398 bics r0, r3
  4069. 8001bd0: 384f subs r0, #79 @ 0x4f
  4070. 8001bd2: 4243 negs r3, r0
  4071. 8001bd4: 4158 adcs r0, r3
  4072. 8001bd6: e000 b.n 8001bda <next_is_type_qual.isra.0+0x2e>
  4073. 8001bd8: 2001 movs r0, #1
  4074. 8001bda: 4770 bx lr
  4075.  
  4076. 08001bdc <d_append_char>:
  4077. 8001bdc: 2380 movs r3, #128 @ 0x80
  4078. 8001bde: 005b lsls r3, r3, #1
  4079. 8001be0: 58c3 ldr r3, [r0, r3]
  4080. 8001be2: b570 push {r4, r5, r6, lr}
  4081. 8001be4: 0004 movs r4, r0
  4082. 8001be6: 000d movs r5, r1
  4083. 8001be8: 2bff cmp r3, #255 @ 0xff
  4084. 8001bea: d008 beq.n 8001bfe <d_append_char+0x22>
  4085. 8001bec: 1c59 adds r1, r3, #1
  4086. 8001bee: 2280 movs r2, #128 @ 0x80
  4087. 8001bf0: 0052 lsls r2, r2, #1
  4088. 8001bf2: 50a1 str r1, [r4, r2]
  4089. 8001bf4: 54e5 strb r5, [r4, r3]
  4090. 8001bf6: 2382 movs r3, #130 @ 0x82
  4091. 8001bf8: 005b lsls r3, r3, #1
  4092. 8001bfa: 54e5 strb r5, [r4, r3]
  4093. 8001bfc: bd70 pop {r4, r5, r6, pc}
  4094. 8001bfe: 2200 movs r2, #0
  4095. 8001c00: 54c2 strb r2, [r0, r3]
  4096. 8001c02: 2386 movs r3, #134 @ 0x86
  4097. 8001c04: 005b lsls r3, r3, #1
  4098. 8001c06: 58c2 ldr r2, [r0, r3]
  4099. 8001c08: 3b04 subs r3, #4
  4100. 8001c0a: 21ff movs r1, #255 @ 0xff
  4101. 8001c0c: 58c3 ldr r3, [r0, r3]
  4102. 8001c0e: 4798 blx r3
  4103. 8001c10: 2294 movs r2, #148 @ 0x94
  4104. 8001c12: 0052 lsls r2, r2, #1
  4105. 8001c14: 58a3 ldr r3, [r4, r2]
  4106. 8001c16: 2101 movs r1, #1
  4107. 8001c18: 3301 adds r3, #1
  4108. 8001c1a: 50a3 str r3, [r4, r2]
  4109. 8001c1c: 2300 movs r3, #0
  4110. 8001c1e: e7e6 b.n 8001bee <d_append_char+0x12>
  4111.  
  4112. 08001c20 <d_lookup_template_argument>:
  4113. 8001c20: 2388 movs r3, #136 @ 0x88
  4114. 8001c22: 005b lsls r3, r3, #1
  4115. 8001c24: 58c3 ldr r3, [r0, r3]
  4116. 8001c26: 2b00 cmp r3, #0
  4117. 8001c28: d014 beq.n 8001c54 <d_lookup_template_argument+0x34>
  4118. 8001c2a: 685b ldr r3, [r3, #4]
  4119. 8001c2c: 6918 ldr r0, [r3, #16]
  4120. 8001c2e: 68cb ldr r3, [r1, #12]
  4121. 8001c30: 2b00 cmp r3, #0
  4122. 8001c32: db0c blt.n 8001c4e <d_lookup_template_argument+0x2e>
  4123. 8001c34: 2800 cmp r0, #0
  4124. 8001c36: d106 bne.n 8001c46 <d_lookup_template_argument+0x26>
  4125. 8001c38: e008 b.n 8001c4c <d_lookup_template_argument+0x2c>
  4126. 8001c3a: 2b00 cmp r3, #0
  4127. 8001c3c: d008 beq.n 8001c50 <d_lookup_template_argument+0x30>
  4128. 8001c3e: 6900 ldr r0, [r0, #16]
  4129. 8001c40: 3b01 subs r3, #1
  4130. 8001c42: 2800 cmp r0, #0
  4131. 8001c44: d002 beq.n 8001c4c <d_lookup_template_argument+0x2c>
  4132. 8001c46: 7802 ldrb r2, [r0, #0]
  4133. 8001c48: 2a2f cmp r2, #47 @ 0x2f
  4134. 8001c4a: d0f6 beq.n 8001c3a <d_lookup_template_argument+0x1a>
  4135. 8001c4c: 2000 movs r0, #0
  4136. 8001c4e: 4770 bx lr
  4137. 8001c50: 68c0 ldr r0, [r0, #12]
  4138. 8001c52: e7fc b.n 8001c4e <d_lookup_template_argument+0x2e>
  4139. 8001c54: 2201 movs r2, #1
  4140. 8001c56: 3319 adds r3, #25
  4141. 8001c58: 33ff adds r3, #255 @ 0xff
  4142. 8001c5a: 50c2 str r2, [r0, r3]
  4143. 8001c5c: 2000 movs r0, #0
  4144. 8001c5e: e7f6 b.n 8001c4e <d_lookup_template_argument+0x2e>
  4145.  
  4146. 08001c60 <d_find_pack>:
  4147. 8001c60: b570 push {r4, r5, r6, lr}
  4148. 8001c62: 0005 movs r5, r0
  4149. 8001c64: 1e0c subs r4, r1, #0
  4150. 8001c66: d017 beq.n 8001c98 <d_find_pack+0x38>
  4151. 8001c68: 4e11 ldr r6, [pc, #68] @ (8001cb0 <d_find_pack+0x50>)
  4152. 8001c6a: 7823 ldrb r3, [r4, #0]
  4153. 8001c6c: 2b33 cmp r3, #51 @ 0x33
  4154. 8001c6e: d802 bhi.n 8001c76 <d_find_pack+0x16>
  4155. 8001c70: 009b lsls r3, r3, #2
  4156. 8001c72: 58f3 ldr r3, [r6, r3]
  4157. 8001c74: 469f mov pc, r3
  4158. 8001c76: 3b42 subs r3, #66 @ 0x42
  4159. 8001c78: b2db uxtb r3, r3
  4160. 8001c7a: 2b1a cmp r3, #26
  4161. 8001c7c: d803 bhi.n 8001c86 <d_find_pack+0x26>
  4162. 8001c7e: 4a0d ldr r2, [pc, #52] @ (8001cb4 <d_find_pack+0x54>)
  4163. 8001c80: 40da lsrs r2, r3
  4164. 8001c82: 07d2 lsls r2, r2, #31
  4165. 8001c84: d408 bmi.n 8001c98 <d_find_pack+0x38>
  4166. 8001c86: 0028 movs r0, r5
  4167. 8001c88: 68e1 ldr r1, [r4, #12]
  4168. 8001c8a: f7ff ffe9 bl 8001c60 <d_find_pack>
  4169. 8001c8e: 2800 cmp r0, #0
  4170. 8001c90: d103 bne.n 8001c9a <d_find_pack+0x3a>
  4171. 8001c92: 6924 ldr r4, [r4, #16]
  4172. 8001c94: 2c00 cmp r4, #0
  4173. 8001c96: d1e8 bne.n 8001c6a <d_find_pack+0xa>
  4174. 8001c98: 2000 movs r0, #0
  4175. 8001c9a: bd70 pop {r4, r5, r6, pc}
  4176. 8001c9c: 0021 movs r1, r4
  4177. 8001c9e: 0028 movs r0, r5
  4178. 8001ca0: f7ff ffbe bl 8001c20 <d_lookup_template_argument>
  4179. 8001ca4: 2800 cmp r0, #0
  4180. 8001ca6: d0f7 beq.n 8001c98 <d_find_pack+0x38>
  4181. 8001ca8: 7803 ldrb r3, [r0, #0]
  4182. 8001caa: 2b2f cmp r3, #47 @ 0x2f
  4183. 8001cac: d1f4 bne.n 8001c98 <d_find_pack+0x38>
  4184. 8001cae: e7f4 b.n 8001c9a <d_find_pack+0x3a>
  4185. 8001cb0: 08014d28 .word 0x08014d28
  4186. 8001cb4: 04000ce3 .word 0x04000ce3
  4187.  
  4188. 08001cb8 <d_append_string>:
  4189. 8001cb8: b5f0 push {r4, r5, r6, r7, lr}
  4190. 8001cba: 46d6 mov lr, sl
  4191. 8001cbc: 464f mov r7, r9
  4192. 8001cbe: 4646 mov r6, r8
  4193. 8001cc0: 0005 movs r5, r0
  4194. 8001cc2: b5c0 push {r6, r7, lr}
  4195. 8001cc4: 0008 movs r0, r1
  4196. 8001cc6: 000c movs r4, r1
  4197. 8001cc8: f009 fbc2 bl 800b450 <strlen>
  4198. 8001ccc: 2800 cmp r0, #0
  4199. 8001cce: d02a beq.n 8001d26 <d_append_string+0x6e>
  4200. 8001cd0: 2200 movs r2, #0
  4201. 8001cd2: 2380 movs r3, #128 @ 0x80
  4202. 8001cd4: 4692 mov sl, r2
  4203. 8001cd6: 320d adds r2, #13
  4204. 8001cd8: 32ff adds r2, #255 @ 0xff
  4205. 8001cda: 4691 mov r9, r2
  4206. 8001cdc: 005b lsls r3, r3, #1
  4207. 8001cde: 3a04 subs r2, #4
  4208. 8001ce0: 4690 mov r8, r2
  4209. 8001ce2: 58eb ldr r3, [r5, r3]
  4210. 8001ce4: 1827 adds r7, r4, r0
  4211. 8001ce6: e00a b.n 8001cfe <d_append_string+0x46>
  4212. 8001ce8: 0019 movs r1, r3
  4213. 8001cea: 3301 adds r3, #1
  4214. 8001cec: 2280 movs r2, #128 @ 0x80
  4215. 8001cee: 0052 lsls r2, r2, #1
  4216. 8001cf0: 50ab str r3, [r5, r2]
  4217. 8001cf2: 3401 adds r4, #1
  4218. 8001cf4: 3204 adds r2, #4
  4219. 8001cf6: 546e strb r6, [r5, r1]
  4220. 8001cf8: 54ae strb r6, [r5, r2]
  4221. 8001cfa: 42bc cmp r4, r7
  4222. 8001cfc: d013 beq.n 8001d26 <d_append_string+0x6e>
  4223. 8001cfe: 7826 ldrb r6, [r4, #0]
  4224. 8001d00: 2bff cmp r3, #255 @ 0xff
  4225. 8001d02: d1f1 bne.n 8001ce8 <d_append_string+0x30>
  4226. 8001d04: 4652 mov r2, sl
  4227. 8001d06: 54ea strb r2, [r5, r3]
  4228. 8001d08: 464b mov r3, r9
  4229. 8001d0a: 58ea ldr r2, [r5, r3]
  4230. 8001d0c: 4643 mov r3, r8
  4231. 8001d0e: 21ff movs r1, #255 @ 0xff
  4232. 8001d10: 58eb ldr r3, [r5, r3]
  4233. 8001d12: 0028 movs r0, r5
  4234. 8001d14: 4798 blx r3
  4235. 8001d16: 2294 movs r2, #148 @ 0x94
  4236. 8001d18: 0052 lsls r2, r2, #1
  4237. 8001d1a: 58ab ldr r3, [r5, r2]
  4238. 8001d1c: 2100 movs r1, #0
  4239. 8001d1e: 3301 adds r3, #1
  4240. 8001d20: 50ab str r3, [r5, r2]
  4241. 8001d22: 2301 movs r3, #1
  4242. 8001d24: e7e2 b.n 8001cec <d_append_string+0x34>
  4243. 8001d26: bce0 pop {r5, r6, r7}
  4244. 8001d28: 46ba mov sl, r7
  4245. 8001d2a: 46b1 mov r9, r6
  4246. 8001d2c: 46a8 mov r8, r5
  4247. 8001d2e: bdf0 pop {r4, r5, r6, r7, pc}
  4248.  
  4249. 08001d30 <d_template_param>:
  4250. 8001d30: b570 push {r4, r5, r6, lr}
  4251. 8001d32: 68c2 ldr r2, [r0, #12]
  4252. 8001d34: 0004 movs r4, r0
  4253. 8001d36: 7813 ldrb r3, [r2, #0]
  4254. 8001d38: 2b54 cmp r3, #84 @ 0x54
  4255. 8001d3a: d122 bne.n 8001d82 <d_template_param+0x52>
  4256. 8001d3c: 1c53 adds r3, r2, #1
  4257. 8001d3e: 60c3 str r3, [r0, #12]
  4258. 8001d40: 7852 ldrb r2, [r2, #1]
  4259. 8001d42: 2a5f cmp r2, #95 @ 0x5f
  4260. 8001d44: d01f beq.n 8001d86 <d_template_param+0x56>
  4261. 8001d46: 2a6e cmp r2, #110 @ 0x6e
  4262. 8001d48: d01b beq.n 8001d82 <d_template_param+0x52>
  4263. 8001d4a: f7ff fdf7 bl 800193c <d_number>
  4264. 8001d4e: 1c45 adds r5, r0, #1
  4265. 8001d50: d417 bmi.n 8001d82 <d_template_param+0x52>
  4266. 8001d52: 68e3 ldr r3, [r4, #12]
  4267. 8001d54: 781a ldrb r2, [r3, #0]
  4268. 8001d56: 2a5f cmp r2, #95 @ 0x5f
  4269. 8001d58: d113 bne.n 8001d82 <d_template_param+0x52>
  4270. 8001d5a: 3301 adds r3, #1
  4271. 8001d5c: 60e3 str r3, [r4, #12]
  4272. 8001d5e: 6962 ldr r2, [r4, #20]
  4273. 8001d60: 69a3 ldr r3, [r4, #24]
  4274. 8001d62: 429a cmp r2, r3
  4275. 8001d64: da0d bge.n 8001d82 <d_template_param+0x52>
  4276. 8001d66: 2300 movs r3, #0
  4277. 8001d68: 0091 lsls r1, r2, #2
  4278. 8001d6a: 6920 ldr r0, [r4, #16]
  4279. 8001d6c: 1889 adds r1, r1, r2
  4280. 8001d6e: 0089 lsls r1, r1, #2
  4281. 8001d70: 1840 adds r0, r0, r1
  4282. 8001d72: 6043 str r3, [r0, #4]
  4283. 8001d74: 6083 str r3, [r0, #8]
  4284. 8001d76: 3201 adds r2, #1
  4285. 8001d78: 3305 adds r3, #5
  4286. 8001d7a: 6162 str r2, [r4, #20]
  4287. 8001d7c: 7003 strb r3, [r0, #0]
  4288. 8001d7e: 60c5 str r5, [r0, #12]
  4289. 8001d80: e000 b.n 8001d84 <d_template_param+0x54>
  4290. 8001d82: 2000 movs r0, #0
  4291. 8001d84: bd70 pop {r4, r5, r6, pc}
  4292. 8001d86: 2500 movs r5, #0
  4293. 8001d88: e7e7 b.n 8001d5a <d_template_param+0x2a>
  4294. 8001d8a: 46c0 nop @ (mov r8, r8)
  4295.  
  4296. 08001d8c <d_append_num>:
  4297. 8001d8c: b5f0 push {r4, r5, r6, r7, lr}
  4298. 8001d8e: 46d6 mov lr, sl
  4299. 8001d90: 464f mov r7, r9
  4300. 8001d92: 4646 mov r6, r8
  4301. 8001d94: b5c0 push {r6, r7, lr}
  4302. 8001d96: 4b1f ldr r3, [pc, #124] @ (8001e14 <d_append_num+0x88>)
  4303. 8001d98: b088 sub sp, #32
  4304. 8001d9a: 000a movs r2, r1
  4305. 8001d9c: 0005 movs r5, r0
  4306. 8001d9e: 0019 movs r1, r3
  4307. 8001da0: a801 add r0, sp, #4
  4308. 8001da2: f008 ff73 bl 800ac8c <sprintf>
  4309. 8001da6: a801 add r0, sp, #4
  4310. 8001da8: f009 fb52 bl 800b450 <strlen>
  4311. 8001dac: 2800 cmp r0, #0
  4312. 8001dae: d02b beq.n 8001e08 <d_append_num+0x7c>
  4313. 8001db0: 2200 movs r2, #0
  4314. 8001db2: 2380 movs r3, #128 @ 0x80
  4315. 8001db4: 4692 mov sl, r2
  4316. 8001db6: 320d adds r2, #13
  4317. 8001db8: 32ff adds r2, #255 @ 0xff
  4318. 8001dba: 4691 mov r9, r2
  4319. 8001dbc: 005b lsls r3, r3, #1
  4320. 8001dbe: ac01 add r4, sp, #4
  4321. 8001dc0: 3a04 subs r2, #4
  4322. 8001dc2: 4690 mov r8, r2
  4323. 8001dc4: 58eb ldr r3, [r5, r3]
  4324. 8001dc6: 1827 adds r7, r4, r0
  4325. 8001dc8: e00a b.n 8001de0 <d_append_num+0x54>
  4326. 8001dca: 0019 movs r1, r3
  4327. 8001dcc: 3301 adds r3, #1
  4328. 8001dce: 2280 movs r2, #128 @ 0x80
  4329. 8001dd0: 0052 lsls r2, r2, #1
  4330. 8001dd2: 50ab str r3, [r5, r2]
  4331. 8001dd4: 3401 adds r4, #1
  4332. 8001dd6: 3204 adds r2, #4
  4333. 8001dd8: 546e strb r6, [r5, r1]
  4334. 8001dda: 54ae strb r6, [r5, r2]
  4335. 8001ddc: 42bc cmp r4, r7
  4336. 8001dde: d013 beq.n 8001e08 <d_append_num+0x7c>
  4337. 8001de0: 7826 ldrb r6, [r4, #0]
  4338. 8001de2: 2bff cmp r3, #255 @ 0xff
  4339. 8001de4: d1f1 bne.n 8001dca <d_append_num+0x3e>
  4340. 8001de6: 4652 mov r2, sl
  4341. 8001de8: 54ea strb r2, [r5, r3]
  4342. 8001dea: 464b mov r3, r9
  4343. 8001dec: 58ea ldr r2, [r5, r3]
  4344. 8001dee: 4643 mov r3, r8
  4345. 8001df0: 21ff movs r1, #255 @ 0xff
  4346. 8001df2: 58eb ldr r3, [r5, r3]
  4347. 8001df4: 0028 movs r0, r5
  4348. 8001df6: 4798 blx r3
  4349. 8001df8: 2294 movs r2, #148 @ 0x94
  4350. 8001dfa: 0052 lsls r2, r2, #1
  4351. 8001dfc: 58ab ldr r3, [r5, r2]
  4352. 8001dfe: 2100 movs r1, #0
  4353. 8001e00: 3301 adds r3, #1
  4354. 8001e02: 50ab str r3, [r5, r2]
  4355. 8001e04: 2301 movs r3, #1
  4356. 8001e06: e7e2 b.n 8001dce <d_append_num+0x42>
  4357. 8001e08: b008 add sp, #32
  4358. 8001e0a: bce0 pop {r5, r6, r7}
  4359. 8001e0c: 46ba mov sl, r7
  4360. 8001e0e: 46b1 mov r9, r6
  4361. 8001e10: 46a8 mov r8, r5
  4362. 8001e12: bdf0 pop {r4, r5, r6, r7, pc}
  4363. 8001e14: 080140e4 .word 0x080140e4
  4364.  
  4365. 08001e18 <d_source_name>:
  4366. 8001e18: b5f0 push {r4, r5, r6, r7, lr}
  4367. 8001e1a: 46c6 mov lr, r8
  4368. 8001e1c: b500 push {lr}
  4369. 8001e1e: 0004 movs r4, r0
  4370. 8001e20: f7ff fd8c bl 800193c <d_number>
  4371. 8001e24: 1e05 subs r5, r0, #0
  4372. 8001e26: dd45 ble.n 8001eb4 <d_source_name+0x9c>
  4373. 8001e28: 68e7 ldr r7, [r4, #12]
  4374. 8001e2a: 6863 ldr r3, [r4, #4]
  4375. 8001e2c: 1bdb subs r3, r3, r7
  4376. 8001e2e: 4298 cmp r0, r3
  4377. 8001e30: dc3e bgt.n 8001eb0 <d_source_name+0x98>
  4378. 8001e32: 68a2 ldr r2, [r4, #8]
  4379. 8001e34: 183b adds r3, r7, r0
  4380. 8001e36: 60e3 str r3, [r4, #12]
  4381. 8001e38: 0752 lsls r2, r2, #29
  4382. 8001e3a: d502 bpl.n 8001e42 <d_source_name+0x2a>
  4383. 8001e3c: 781a ldrb r2, [r3, #0]
  4384. 8001e3e: 2a24 cmp r2, #36 @ 0x24
  4385. 8001e40: d03a beq.n 8001eb8 <d_source_name+0xa0>
  4386. 8001e42: 69a3 ldr r3, [r4, #24]
  4387. 8001e44: 6966 ldr r6, [r4, #20]
  4388. 8001e46: 4698 mov r8, r3
  4389. 8001e48: 2d09 cmp r5, #9
  4390. 8001e4a: dd23 ble.n 8001e94 <d_source_name+0x7c>
  4391. 8001e4c: 2208 movs r2, #8
  4392. 8001e4e: 0038 movs r0, r7
  4393. 8001e50: 492a ldr r1, [pc, #168] @ (8001efc <d_source_name+0xe4>)
  4394. 8001e52: f009 f8b3 bl 800afbc <memcmp>
  4395. 8001e56: 2800 cmp r0, #0
  4396. 8001e58: d106 bne.n 8001e68 <d_source_name+0x50>
  4397. 8001e5a: 7a3b ldrb r3, [r7, #8]
  4398. 8001e5c: 2b2e cmp r3, #46 @ 0x2e
  4399. 8001e5e: d033 beq.n 8001ec8 <d_source_name+0xb0>
  4400. 8001e60: 2b5f cmp r3, #95 @ 0x5f
  4401. 8001e62: d031 beq.n 8001ec8 <d_source_name+0xb0>
  4402. 8001e64: 2b24 cmp r3, #36 @ 0x24
  4403. 8001e66: d02f beq.n 8001ec8 <d_source_name+0xb0>
  4404. 8001e68: 4546 cmp r6, r8
  4405. 8001e6a: da21 bge.n 8001eb0 <d_source_name+0x98>
  4406. 8001e6c: 00b3 lsls r3, r6, #2
  4407. 8001e6e: 6920 ldr r0, [r4, #16]
  4408. 8001e70: 199b adds r3, r3, r6
  4409. 8001e72: 009b lsls r3, r3, #2
  4410. 8001e74: 18c0 adds r0, r0, r3
  4411. 8001e76: 2300 movs r3, #0
  4412. 8001e78: 3601 adds r6, #1
  4413. 8001e7a: 6043 str r3, [r0, #4]
  4414. 8001e7c: 6083 str r3, [r0, #8]
  4415. 8001e7e: 6166 str r6, [r4, #20]
  4416. 8001e80: 2300 movs r3, #0
  4417. 8001e82: 60c7 str r7, [r0, #12]
  4418. 8001e84: 6043 str r3, [r0, #4]
  4419. 8001e86: 6083 str r3, [r0, #8]
  4420. 8001e88: 7003 strb r3, [r0, #0]
  4421. 8001e8a: 6105 str r5, [r0, #16]
  4422. 8001e8c: 62a0 str r0, [r4, #40] @ 0x28
  4423. 8001e8e: bc80 pop {r7}
  4424. 8001e90: 46b8 mov r8, r7
  4425. 8001e92: bdf0 pop {r4, r5, r6, r7, pc}
  4426. 8001e94: 429e cmp r6, r3
  4427. 8001e96: da0b bge.n 8001eb0 <d_source_name+0x98>
  4428. 8001e98: 00b3 lsls r3, r6, #2
  4429. 8001e9a: 6920 ldr r0, [r4, #16]
  4430. 8001e9c: 199b adds r3, r3, r6
  4431. 8001e9e: 009b lsls r3, r3, #2
  4432. 8001ea0: 18c0 adds r0, r0, r3
  4433. 8001ea2: 2300 movs r3, #0
  4434. 8001ea4: 3601 adds r6, #1
  4435. 8001ea6: 6043 str r3, [r0, #4]
  4436. 8001ea8: 6083 str r3, [r0, #8]
  4437. 8001eaa: 6166 str r6, [r4, #20]
  4438. 8001eac: 2f00 cmp r7, #0
  4439. 8001eae: d1e7 bne.n 8001e80 <d_source_name+0x68>
  4440. 8001eb0: 2000 movs r0, #0
  4441. 8001eb2: e7eb b.n 8001e8c <d_source_name+0x74>
  4442. 8001eb4: 2000 movs r0, #0
  4443. 8001eb6: e7ea b.n 8001e8e <d_source_name+0x76>
  4444. 8001eb8: 3301 adds r3, #1
  4445. 8001eba: 60e3 str r3, [r4, #12]
  4446. 8001ebc: 69a3 ldr r3, [r4, #24]
  4447. 8001ebe: 6966 ldr r6, [r4, #20]
  4448. 8001ec0: 4698 mov r8, r3
  4449. 8001ec2: 2d09 cmp r5, #9
  4450. 8001ec4: dcc2 bgt.n 8001e4c <d_source_name+0x34>
  4451. 8001ec6: e7e5 b.n 8001e94 <d_source_name+0x7c>
  4452. 8001ec8: 7a7b ldrb r3, [r7, #9]
  4453. 8001eca: 2b4e cmp r3, #78 @ 0x4e
  4454. 8001ecc: d1cc bne.n 8001e68 <d_source_name+0x50>
  4455. 8001ece: 6ae3 ldr r3, [r4, #44] @ 0x2c
  4456. 8001ed0: 3316 adds r3, #22
  4457. 8001ed2: 1b5b subs r3, r3, r5
  4458. 8001ed4: 62e3 str r3, [r4, #44] @ 0x2c
  4459. 8001ed6: 4546 cmp r6, r8
  4460. 8001ed8: daea bge.n 8001eb0 <d_source_name+0x98>
  4461. 8001eda: 00b3 lsls r3, r6, #2
  4462. 8001edc: 6920 ldr r0, [r4, #16]
  4463. 8001ede: 199b adds r3, r3, r6
  4464. 8001ee0: 009b lsls r3, r3, #2
  4465. 8001ee2: 18c0 adds r0, r0, r3
  4466. 8001ee4: 2300 movs r3, #0
  4467. 8001ee6: 3601 adds r6, #1
  4468. 8001ee8: 6166 str r6, [r4, #20]
  4469. 8001eea: 6043 str r3, [r0, #4]
  4470. 8001eec: 6083 str r3, [r0, #8]
  4471. 8001eee: 7003 strb r3, [r0, #0]
  4472. 8001ef0: 4b03 ldr r3, [pc, #12] @ (8001f00 <d_source_name+0xe8>)
  4473. 8001ef2: 60c3 str r3, [r0, #12]
  4474. 8001ef4: 2315 movs r3, #21
  4475. 8001ef6: 6103 str r3, [r0, #16]
  4476. 8001ef8: e7c8 b.n 8001e8c <d_source_name+0x74>
  4477. 8001efa: 46c0 nop @ (mov r8, r8)
  4478. 8001efc: 080140e8 .word 0x080140e8
  4479. 8001f00: 080140f4 .word 0x080140f4
  4480.  
  4481. 08001f04 <d_substitution>:
  4482. 8001f04: b5f8 push {r3, r4, r5, r6, r7, lr}
  4483. 8001f06: 68c3 ldr r3, [r0, #12]
  4484. 8001f08: 0004 movs r4, r0
  4485. 8001f0a: 781a ldrb r2, [r3, #0]
  4486. 8001f0c: 2a53 cmp r2, #83 @ 0x53
  4487. 8001f0e: d124 bne.n 8001f5a <d_substitution+0x56>
  4488. 8001f10: 1c5a adds r2, r3, #1
  4489. 8001f12: 60c2 str r2, [r0, #12]
  4490. 8001f14: 785a ldrb r2, [r3, #1]
  4491. 8001f16: 2a00 cmp r2, #0
  4492. 8001f18: d00e beq.n 8001f38 <d_substitution+0x34>
  4493. 8001f1a: 1c9a adds r2, r3, #2
  4494. 8001f1c: 60c2 str r2, [r0, #12]
  4495. 8001f1e: 785a ldrb r2, [r3, #1]
  4496. 8001f20: 2a5f cmp r2, #95 @ 0x5f
  4497. 8001f22: d046 beq.n 8001fb2 <d_substitution+0xae>
  4498. 8001f24: 0013 movs r3, r2
  4499. 8001f26: 3b30 subs r3, #48 @ 0x30
  4500. 8001f28: b2dd uxtb r5, r3
  4501. 8001f2a: 2000 movs r0, #0
  4502. 8001f2c: 2d09 cmp r5, #9
  4503. 8001f2e: d91f bls.n 8001f70 <d_substitution+0x6c>
  4504. 8001f30: 0015 movs r5, r2
  4505. 8001f32: 3d41 subs r5, #65 @ 0x41
  4506. 8001f34: 2d19 cmp r5, #25
  4507. 8001f36: d91b bls.n 8001f70 <d_substitution+0x6c>
  4508. 8001f38: 68a0 ldr r0, [r4, #8]
  4509. 8001f3a: 2308 movs r3, #8
  4510. 8001f3c: 0005 movs r5, r0
  4511. 8001f3e: 401d ands r5, r3
  4512. 8001f40: 4218 tst r0, r3
  4513. 8001f42: d138 bne.n 8001fb6 <d_substitution+0xb2>
  4514. 8001f44: 2900 cmp r1, #0
  4515. 8001f46: d138 bne.n 8001fba <d_substitution+0xb6>
  4516. 8001f48: 4b4e ldr r3, [pc, #312] @ (8002084 <d_substitution+0x180>)
  4517. 8001f4a: 001d movs r5, r3
  4518. 8001f4c: 35c4 adds r5, #196 @ 0xc4
  4519. 8001f4e: 7818 ldrb r0, [r3, #0]
  4520. 8001f50: 4290 cmp r0, r2
  4521. 8001f52: d03b beq.n 8001fcc <d_substitution+0xc8>
  4522. 8001f54: 331c adds r3, #28
  4523. 8001f56: 42ab cmp r3, r5
  4524. 8001f58: d1f9 bne.n 8001f4e <d_substitution+0x4a>
  4525. 8001f5a: 2500 movs r5, #0
  4526. 8001f5c: 0028 movs r0, r5
  4527. 8001f5e: bdf8 pop {r3, r4, r5, r6, r7, pc}
  4528. 8001f60: 1c51 adds r1, r2, #1
  4529. 8001f62: 60e1 str r1, [r4, #12]
  4530. 8001f64: 7812 ldrb r2, [r2, #0]
  4531. 8001f66: 2a5f cmp r2, #95 @ 0x5f
  4532. 8001f68: d01b beq.n 8001fa2 <d_substitution+0x9e>
  4533. 8001f6a: 0018 movs r0, r3
  4534. 8001f6c: 0013 movs r3, r2
  4535. 8001f6e: 3b30 subs r3, #48 @ 0x30
  4536. 8001f70: b2db uxtb r3, r3
  4537. 8001f72: 2b09 cmp r3, #9
  4538. 8001f74: d80b bhi.n 8001f8e <d_substitution+0x8a>
  4539. 8001f76: 00c3 lsls r3, r0, #3
  4540. 8001f78: 181b adds r3, r3, r0
  4541. 8001f7a: 009b lsls r3, r3, #2
  4542. 8001f7c: 189b adds r3, r3, r2
  4543. 8001f7e: 3b30 subs r3, #48 @ 0x30
  4544. 8001f80: 4298 cmp r0, r3
  4545. 8001f82: d8ea bhi.n 8001f5a <d_substitution+0x56>
  4546. 8001f84: 68e2 ldr r2, [r4, #12]
  4547. 8001f86: 7811 ldrb r1, [r2, #0]
  4548. 8001f88: 2900 cmp r1, #0
  4549. 8001f8a: d0e6 beq.n 8001f5a <d_substitution+0x56>
  4550. 8001f8c: e7e8 b.n 8001f60 <d_substitution+0x5c>
  4551. 8001f8e: 0013 movs r3, r2
  4552. 8001f90: 3b41 subs r3, #65 @ 0x41
  4553. 8001f92: 2b19 cmp r3, #25
  4554. 8001f94: d8e1 bhi.n 8001f5a <d_substitution+0x56>
  4555. 8001f96: 00c3 lsls r3, r0, #3
  4556. 8001f98: 181b adds r3, r3, r0
  4557. 8001f9a: 009b lsls r3, r3, #2
  4558. 8001f9c: 189b adds r3, r3, r2
  4559. 8001f9e: 3b37 subs r3, #55 @ 0x37
  4560. 8001fa0: e7ee b.n 8001f80 <d_substitution+0x7c>
  4561. 8001fa2: 3301 adds r3, #1
  4562. 8001fa4: 6a22 ldr r2, [r4, #32]
  4563. 8001fa6: 429a cmp r2, r3
  4564. 8001fa8: d9d7 bls.n 8001f5a <d_substitution+0x56>
  4565. 8001faa: 69e2 ldr r2, [r4, #28]
  4566. 8001fac: 009b lsls r3, r3, #2
  4567. 8001fae: 589d ldr r5, [r3, r2]
  4568. 8001fb0: e7d4 b.n 8001f5c <d_substitution+0x58>
  4569. 8001fb2: 2300 movs r3, #0
  4570. 8001fb4: e7f6 b.n 8001fa4 <d_substitution+0xa0>
  4571. 8001fb6: 2101 movs r1, #1
  4572. 8001fb8: e7c6 b.n 8001f48 <d_substitution+0x44>
  4573. 8001fba: 2101 movs r1, #1
  4574. 8001fbc: 68e3 ldr r3, [r4, #12]
  4575. 8001fbe: 781b ldrb r3, [r3, #0]
  4576. 8001fc0: 3b43 subs r3, #67 @ 0x43
  4577. 8001fc2: b2db uxtb r3, r3
  4578. 8001fc4: 4299 cmp r1, r3
  4579. 8001fc6: 416d adcs r5, r5
  4580. 8001fc8: 0029 movs r1, r5
  4581. 8001fca: e7bd b.n 8001f48 <d_substitution+0x44>
  4582. 8001fcc: 695e ldr r6, [r3, #20]
  4583. 8001fce: 6962 ldr r2, [r4, #20]
  4584. 8001fd0: 69a5 ldr r5, [r4, #24]
  4585. 8001fd2: 2e00 cmp r6, #0
  4586. 8001fd4: d013 beq.n 8001ffe <d_substitution+0xfa>
  4587. 8001fd6: 6998 ldr r0, [r3, #24]
  4588. 8001fd8: 4684 mov ip, r0
  4589. 8001fda: 4295 cmp r5, r2
  4590. 8001fdc: dd50 ble.n 8002080 <d_substitution+0x17c>
  4591. 8001fde: 0097 lsls r7, r2, #2
  4592. 8001fe0: 6920 ldr r0, [r4, #16]
  4593. 8001fe2: 18bf adds r7, r7, r2
  4594. 8001fe4: 00bf lsls r7, r7, #2
  4595. 8001fe6: 19c0 adds r0, r0, r7
  4596. 8001fe8: 2700 movs r7, #0
  4597. 8001fea: 3201 adds r2, #1
  4598. 8001fec: 6047 str r7, [r0, #4]
  4599. 8001fee: 6087 str r7, [r0, #8]
  4600. 8001ff0: 6162 str r2, [r4, #20]
  4601. 8001ff2: 60c6 str r6, [r0, #12]
  4602. 8001ff4: 4666 mov r6, ip
  4603. 8001ff6: 3718 adds r7, #24
  4604. 8001ff8: 7007 strb r7, [r0, #0]
  4605. 8001ffa: 6106 str r6, [r0, #16]
  4606. 8001ffc: 62a0 str r0, [r4, #40] @ 0x28
  4607. 8001ffe: 2900 cmp r1, #0
  4608. 8002000: d039 beq.n 8002076 <d_substitution+0x172>
  4609. 8002002: 68d8 ldr r0, [r3, #12]
  4610. 8002004: 6919 ldr r1, [r3, #16]
  4611. 8002006: 6ae3 ldr r3, [r4, #44] @ 0x2c
  4612. 8002008: 185b adds r3, r3, r1
  4613. 800200a: 62e3 str r3, [r4, #44] @ 0x2c
  4614. 800200c: 42aa cmp r2, r5
  4615. 800200e: da35 bge.n 800207c <d_substitution+0x178>
  4616. 8002010: 0093 lsls r3, r2, #2
  4617. 8002012: 6925 ldr r5, [r4, #16]
  4618. 8002014: 189b adds r3, r3, r2
  4619. 8002016: 009b lsls r3, r3, #2
  4620. 8002018: 18ed adds r5, r5, r3
  4621. 800201a: 2300 movs r3, #0
  4622. 800201c: 3201 adds r2, #1
  4623. 800201e: 606b str r3, [r5, #4]
  4624. 8002020: 60ab str r3, [r5, #8]
  4625. 8002022: 3318 adds r3, #24
  4626. 8002024: 6162 str r2, [r4, #20]
  4627. 8002026: 702b strb r3, [r5, #0]
  4628. 8002028: 60e8 str r0, [r5, #12]
  4629. 800202a: 6129 str r1, [r5, #16]
  4630. 800202c: 68e3 ldr r3, [r4, #12]
  4631. 800202e: 781a ldrb r2, [r3, #0]
  4632. 8002030: 2a42 cmp r2, #66 @ 0x42
  4633. 8002032: d000 beq.n 8002036 <d_substitution+0x132>
  4634. 8002034: e792 b.n 8001f5c <d_substitution+0x58>
  4635. 8002036: 6aa6 ldr r6, [r4, #40] @ 0x28
  4636. 8002038: 3301 adds r3, #1
  4637. 800203a: 60e3 str r3, [r4, #12]
  4638. 800203c: 0020 movs r0, r4
  4639. 800203e: f7ff feeb bl 8001e18 <d_source_name>
  4640. 8002042: 002a movs r2, r5
  4641. 8002044: 0003 movs r3, r0
  4642. 8002046: 214d movs r1, #77 @ 0x4d
  4643. 8002048: 0020 movs r0, r4
  4644. 800204a: f7ff fc0b bl 8001864 <d_make_comp>
  4645. 800204e: 68e3 ldr r3, [r4, #12]
  4646. 8002050: 0005 movs r5, r0
  4647. 8002052: 781a ldrb r2, [r3, #0]
  4648. 8002054: 2a42 cmp r2, #66 @ 0x42
  4649. 8002056: d0ef beq.n 8002038 <d_substitution+0x134>
  4650. 8002058: 62a6 str r6, [r4, #40] @ 0x28
  4651. 800205a: 2800 cmp r0, #0
  4652. 800205c: d100 bne.n 8002060 <d_substitution+0x15c>
  4653. 800205e: e77c b.n 8001f5a <d_substitution+0x56>
  4654. 8002060: 6a23 ldr r3, [r4, #32]
  4655. 8002062: 6a62 ldr r2, [r4, #36] @ 0x24
  4656. 8002064: 4293 cmp r3, r2
  4657. 8002066: db00 blt.n 800206a <d_substitution+0x166>
  4658. 8002068: e777 b.n 8001f5a <d_substitution+0x56>
  4659. 800206a: 69e2 ldr r2, [r4, #28]
  4660. 800206c: 0099 lsls r1, r3, #2
  4661. 800206e: 3301 adds r3, #1
  4662. 8002070: 5088 str r0, [r1, r2]
  4663. 8002072: 6223 str r3, [r4, #32]
  4664. 8002074: e772 b.n 8001f5c <d_substitution+0x58>
  4665. 8002076: 6858 ldr r0, [r3, #4]
  4666. 8002078: 6899 ldr r1, [r3, #8]
  4667. 800207a: e7c4 b.n 8002006 <d_substitution+0x102>
  4668. 800207c: 2500 movs r5, #0
  4669. 800207e: e7d5 b.n 800202c <d_substitution+0x128>
  4670. 8002080: 2000 movs r0, #0
  4671. 8002082: e7bb b.n 8001ffc <d_substitution+0xf8>
  4672. 8002084: 08015328 .word 0x08015328
  4673.  
  4674. 08002088 <d_maybe_module_name>:
  4675. 8002088: b5f8 push {r3, r4, r5, r6, r7, lr}
  4676. 800208a: 68c3 ldr r3, [r0, #12]
  4677. 800208c: 0004 movs r4, r0
  4678. 800208e: 781a ldrb r2, [r3, #0]
  4679. 8002090: 000d movs r5, r1
  4680. 8002092: 2a57 cmp r2, #87 @ 0x57
  4681. 8002094: d009 beq.n 80020aa <d_maybe_module_name+0x22>
  4682. 8002096: e024 b.n 80020e2 <d_maybe_module_name+0x5a>
  4683. 8002098: 69e2 ldr r2, [r4, #28]
  4684. 800209a: 0099 lsls r1, r3, #2
  4685. 800209c: 3301 adds r3, #1
  4686. 800209e: 5088 str r0, [r1, r2]
  4687. 80020a0: 6223 str r3, [r4, #32]
  4688. 80020a2: 68e3 ldr r3, [r4, #12]
  4689. 80020a4: 781a ldrb r2, [r3, #0]
  4690. 80020a6: 2a57 cmp r2, #87 @ 0x57
  4691. 80020a8: d11b bne.n 80020e2 <d_maybe_module_name+0x5a>
  4692. 80020aa: 1c5a adds r2, r3, #1
  4693. 80020ac: 60e2 str r2, [r4, #12]
  4694. 80020ae: 785a ldrb r2, [r3, #1]
  4695. 80020b0: 2653 movs r6, #83 @ 0x53
  4696. 80020b2: 2a50 cmp r2, #80 @ 0x50
  4697. 80020b4: d102 bne.n 80020bc <d_maybe_module_name+0x34>
  4698. 80020b6: 3302 adds r3, #2
  4699. 80020b8: 60e3 str r3, [r4, #12]
  4700. 80020ba: 3601 adds r6, #1
  4701. 80020bc: 0020 movs r0, r4
  4702. 80020be: 682f ldr r7, [r5, #0]
  4703. 80020c0: f7ff feaa bl 8001e18 <d_source_name>
  4704. 80020c4: 003a movs r2, r7
  4705. 80020c6: 0003 movs r3, r0
  4706. 80020c8: 0031 movs r1, r6
  4707. 80020ca: 0020 movs r0, r4
  4708. 80020cc: f7ff fbca bl 8001864 <d_make_comp>
  4709. 80020d0: 6028 str r0, [r5, #0]
  4710. 80020d2: 2800 cmp r0, #0
  4711. 80020d4: d003 beq.n 80020de <d_maybe_module_name+0x56>
  4712. 80020d6: 6a23 ldr r3, [r4, #32]
  4713. 80020d8: 6a62 ldr r2, [r4, #36] @ 0x24
  4714. 80020da: 4293 cmp r3, r2
  4715. 80020dc: dbdc blt.n 8002098 <d_maybe_module_name+0x10>
  4716. 80020de: 2000 movs r0, #0
  4717. 80020e0: bdf8 pop {r3, r4, r5, r6, r7, pc}
  4718. 80020e2: 2001 movs r0, #1
  4719. 80020e4: e7fc b.n 80020e0 <d_maybe_module_name+0x58>
  4720. 80020e6: 46c0 nop @ (mov r8, r8)
  4721.  
  4722. 080020e8 <d_type>:
  4723. 80020e8: b5f0 push {r4, r5, r6, r7, lr}
  4724. 80020ea: 46ce mov lr, r9
  4725. 80020ec: 4647 mov r7, r8
  4726. 80020ee: b580 push {r7, lr}
  4727. 80020f0: 68c5 ldr r5, [r0, #12]
  4728. 80020f2: 0004 movs r4, r0
  4729. 80020f4: b085 sub sp, #20
  4730. 80020f6: 0028 movs r0, r5
  4731. 80020f8: f7ff fd58 bl 8001bac <next_is_type_qual.isra.0>
  4732. 80020fc: 1e02 subs r2, r0, #0
  4733. 80020fe: d10c bne.n 800211a <d_type+0x32>
  4734. 8002100: 782b ldrb r3, [r5, #0]
  4735. 8002102: 2b55 cmp r3, #85 @ 0x55
  4736. 8002104: d83c bhi.n 8002180 <d_type+0x98>
  4737. 8002106: 2b40 cmp r3, #64 @ 0x40
  4738. 8002108: d962 bls.n 80021d0 <d_type+0xe8>
  4739. 800210a: 3b41 subs r3, #65 @ 0x41
  4740. 800210c: b2db uxtb r3, r3
  4741. 800210e: 2b14 cmp r3, #20
  4742. 8002110: d85e bhi.n 80021d0 <d_type+0xe8>
  4743. 8002112: 4ab8 ldr r2, [pc, #736] @ (80023f4 <d_type+0x30c>)
  4744. 8002114: 009b lsls r3, r3, #2
  4745. 8002116: 58d3 ldr r3, [r2, r3]
  4746. 8002118: 469f mov pc, r3
  4747. 800211a: 2200 movs r2, #0
  4748. 800211c: 4669 mov r1, sp
  4749. 800211e: 0020 movs r0, r4
  4750. 8002120: f001 f97e bl 8003420 <d_cv_qualifiers>
  4751. 8002124: 1e05 subs r5, r0, #0
  4752. 8002126: d100 bne.n 800212a <d_type+0x42>
  4753. 8002128: e123 b.n 8002372 <d_type+0x28a>
  4754. 800212a: 68e3 ldr r3, [r4, #12]
  4755. 800212c: 0020 movs r0, r4
  4756. 800212e: 781b ldrb r3, [r3, #0]
  4757. 8002130: 2b46 cmp r3, #70 @ 0x46
  4758. 8002132: d022 beq.n 800217a <d_type+0x92>
  4759. 8002134: f7ff ffd8 bl 80020e8 <d_type>
  4760. 8002138: 6028 str r0, [r5, #0]
  4761. 800213a: 2800 cmp r0, #0
  4762. 800213c: d100 bne.n 8002140 <d_type+0x58>
  4763. 800213e: e118 b.n 8002372 <d_type+0x28a>
  4764. 8002140: 7803 ldrb r3, [r0, #0]
  4765. 8002142: 3b1f subs r3, #31
  4766. 8002144: 2b01 cmp r3, #1
  4767. 8002146: d805 bhi.n 8002154 <d_type+0x6c>
  4768. 8002148: 9a00 ldr r2, [sp, #0]
  4769. 800214a: 68c3 ldr r3, [r0, #12]
  4770. 800214c: 60c2 str r2, [r0, #12]
  4771. 800214e: 682a ldr r2, [r5, #0]
  4772. 8002150: 9200 str r2, [sp, #0]
  4773. 8002152: 602b str r3, [r5, #0]
  4774. 8002154: 9800 ldr r0, [sp, #0]
  4775. 8002156: 2800 cmp r0, #0
  4776. 8002158: d100 bne.n 800215c <d_type+0x74>
  4777. 800215a: e10a b.n 8002372 <d_type+0x28a>
  4778. 800215c: 6a23 ldr r3, [r4, #32]
  4779. 800215e: 6a62 ldr r2, [r4, #36] @ 0x24
  4780. 8002160: 4293 cmp r3, r2
  4781. 8002162: db00 blt.n 8002166 <d_type+0x7e>
  4782. 8002164: e105 b.n 8002372 <d_type+0x28a>
  4783. 8002166: 69e2 ldr r2, [r4, #28]
  4784. 8002168: 0099 lsls r1, r3, #2
  4785. 800216a: 3301 adds r3, #1
  4786. 800216c: 5088 str r0, [r1, r2]
  4787. 800216e: 6223 str r3, [r4, #32]
  4788. 8002170: b005 add sp, #20
  4789. 8002172: bcc0 pop {r6, r7}
  4790. 8002174: 46b9 mov r9, r7
  4791. 8002176: 46b0 mov r8, r6
  4792. 8002178: bdf0 pop {r4, r5, r6, r7, pc}
  4793. 800217a: f000 fba1 bl 80028c0 <d_function_type>
  4794. 800217e: e7db b.n 8002138 <d_type+0x50>
  4795. 8002180: 3b61 subs r3, #97 @ 0x61
  4796. 8002182: b2d8 uxtb r0, r3
  4797. 8002184: 2819 cmp r0, #25
  4798. 8002186: d823 bhi.n 80021d0 <d_type+0xe8>
  4799. 8002188: 2101 movs r1, #1
  4800. 800218a: 4081 lsls r1, r0
  4801. 800218c: 4e9a ldr r6, [pc, #616] @ (80023f8 <d_type+0x310>)
  4802. 800218e: 4231 tst r1, r6
  4803. 8002190: d000 beq.n 8002194 <d_type+0xac>
  4804. 8002192: e287 b.n 80026a4 <d_type+0x5bc>
  4805. 8002194: 2814 cmp r0, #20
  4806. 8002196: d11b bne.n 80021d0 <d_type+0xe8>
  4807. 8002198: 3501 adds r5, #1
  4808. 800219a: 60e5 str r5, [r4, #12]
  4809. 800219c: 0020 movs r0, r4
  4810. 800219e: f7ff fe3b bl 8001e18 <d_source_name>
  4811. 80021a2: 2300 movs r3, #0
  4812. 80021a4: 0002 movs r2, r0
  4813. 80021a6: 2128 movs r1, #40 @ 0x28
  4814. 80021a8: 0020 movs r0, r4
  4815. 80021aa: f7ff fb5b bl 8001864 <d_make_comp>
  4816. 80021ae: 0005 movs r5, r0
  4817. 80021b0: 9000 str r0, [sp, #0]
  4818. 80021b2: 2d00 cmp r5, #0
  4819. 80021b4: d100 bne.n 80021b8 <d_type+0xd0>
  4820. 80021b6: e0dc b.n 8002372 <d_type+0x28a>
  4821. 80021b8: 6a23 ldr r3, [r4, #32]
  4822. 80021ba: 6a62 ldr r2, [r4, #36] @ 0x24
  4823. 80021bc: 4293 cmp r3, r2
  4824. 80021be: db00 blt.n 80021c2 <d_type+0xda>
  4825. 80021c0: e0d7 b.n 8002372 <d_type+0x28a>
  4826. 80021c2: 69e2 ldr r2, [r4, #28]
  4827. 80021c4: 0099 lsls r1, r3, #2
  4828. 80021c6: 3301 adds r3, #1
  4829. 80021c8: 508d str r5, [r1, r2]
  4830. 80021ca: 9800 ldr r0, [sp, #0]
  4831. 80021cc: 6223 str r3, [r4, #32]
  4832. 80021ce: e7cf b.n 8002170 <d_type+0x88>
  4833. 80021d0: 2101 movs r1, #1
  4834. 80021d2: 0020 movs r0, r4
  4835. 80021d4: f001 f9dc bl 8003590 <d_name>
  4836. 80021d8: e7ca b.n 8002170 <d_type+0x88>
  4837. 80021da: 3501 adds r5, #1
  4838. 80021dc: 60e5 str r5, [r4, #12]
  4839. 80021de: 0020 movs r0, r4
  4840. 80021e0: f7ff ff82 bl 80020e8 <d_type>
  4841. 80021e4: 2300 movs r3, #0
  4842. 80021e6: 0002 movs r2, r0
  4843. 80021e8: 2125 movs r1, #37 @ 0x25
  4844. 80021ea: 0020 movs r0, r4
  4845. 80021ec: f7ff fb3a bl 8001864 <d_make_comp>
  4846. 80021f0: 0005 movs r5, r0
  4847. 80021f2: 9000 str r0, [sp, #0]
  4848. 80021f4: e7dd b.n 80021b2 <d_type+0xca>
  4849. 80021f6: 1c6b adds r3, r5, #1
  4850. 80021f8: 60e3 str r3, [r4, #12]
  4851. 80021fa: 786b ldrb r3, [r5, #1]
  4852. 80021fc: 2b00 cmp r3, #0
  4853. 80021fe: d100 bne.n 8002202 <d_type+0x11a>
  4854. 8002200: e0b7 b.n 8002372 <d_type+0x28a>
  4855. 8002202: 1cab adds r3, r5, #2
  4856. 8002204: 60e3 str r3, [r4, #12]
  4857. 8002206: 786b ldrb r3, [r5, #1]
  4858. 8002208: 3b46 subs r3, #70 @ 0x46
  4859. 800220a: b2db uxtb r3, r3
  4860. 800220c: 2b30 cmp r3, #48 @ 0x30
  4861. 800220e: d900 bls.n 8002212 <d_type+0x12a>
  4862. 8002210: e0af b.n 8002372 <d_type+0x28a>
  4863. 8002212: 4a7a ldr r2, [pc, #488] @ (80023fc <d_type+0x314>)
  4864. 8002214: 009b lsls r3, r3, #2
  4865. 8002216: 58d3 ldr r3, [r2, r3]
  4866. 8002218: 469f mov pc, r3
  4867. 800221a: 0020 movs r0, r4
  4868. 800221c: f000 fb50 bl 80028c0 <d_function_type>
  4869. 8002220: 0005 movs r5, r0
  4870. 8002222: 9000 str r0, [sp, #0]
  4871. 8002224: e7c5 b.n 80021b2 <d_type+0xca>
  4872. 8002226: 3501 adds r5, #1
  4873. 8002228: 60e5 str r5, [r4, #12]
  4874. 800222a: 0020 movs r0, r4
  4875. 800222c: f7ff ff5c bl 80020e8 <d_type>
  4876. 8002230: 2300 movs r3, #0
  4877. 8002232: 0002 movs r2, r0
  4878. 8002234: 2126 movs r1, #38 @ 0x26
  4879. 8002236: 0020 movs r0, r4
  4880. 8002238: f7ff fb14 bl 8001864 <d_make_comp>
  4881. 800223c: 0005 movs r5, r0
  4882. 800223e: 9000 str r0, [sp, #0]
  4883. 8002240: e7b7 b.n 80021b2 <d_type+0xca>
  4884. 8002242: 3501 adds r5, #1
  4885. 8002244: 60e5 str r5, [r4, #12]
  4886. 8002246: 0020 movs r0, r4
  4887. 8002248: f7ff ff4e bl 80020e8 <d_type>
  4888. 800224c: 2300 movs r3, #0
  4889. 800224e: 0002 movs r2, r0
  4890. 8002250: 2124 movs r1, #36 @ 0x24
  4891. 8002252: 0020 movs r0, r4
  4892. 8002254: f7ff fb06 bl 8001864 <d_make_comp>
  4893. 8002258: 0005 movs r5, r0
  4894. 800225a: 9000 str r0, [sp, #0]
  4895. 800225c: e7a9 b.n 80021b2 <d_type+0xca>
  4896. 800225e: 3501 adds r5, #1
  4897. 8002260: 60e5 str r5, [r4, #12]
  4898. 8002262: 0020 movs r0, r4
  4899. 8002264: f7ff ff40 bl 80020e8 <d_type>
  4900. 8002268: 2300 movs r3, #0
  4901. 800226a: 0002 movs r2, r0
  4902. 800226c: 2122 movs r1, #34 @ 0x22
  4903. 800226e: 0020 movs r0, r4
  4904. 8002270: f7ff faf8 bl 8001864 <d_make_comp>
  4905. 8002274: 0005 movs r5, r0
  4906. 8002276: 9000 str r0, [sp, #0]
  4907. 8002278: e79b b.n 80021b2 <d_type+0xca>
  4908. 800227a: 3501 adds r5, #1
  4909. 800227c: 60e5 str r5, [r4, #12]
  4910. 800227e: 0020 movs r0, r4
  4911. 8002280: f7ff ff32 bl 80020e8 <d_type>
  4912. 8002284: 2300 movs r3, #0
  4913. 8002286: 0002 movs r2, r0
  4914. 8002288: 2123 movs r1, #35 @ 0x23
  4915. 800228a: 0020 movs r0, r4
  4916. 800228c: f7ff faea bl 8001864 <d_make_comp>
  4917. 8002290: 0005 movs r5, r0
  4918. 8002292: 9000 str r0, [sp, #0]
  4919. 8002294: e78d b.n 80021b2 <d_type+0xca>
  4920. 8002296: 0020 movs r0, r4
  4921. 8002298: f7ff fd4a bl 8001d30 <d_template_param>
  4922. 800229c: 68e6 ldr r6, [r4, #12]
  4923. 800229e: 0005 movs r5, r0
  4924. 80022a0: 7833 ldrb r3, [r6, #0]
  4925. 80022a2: 9000 str r0, [sp, #0]
  4926. 80022a4: 2b49 cmp r3, #73 @ 0x49
  4927. 80022a6: d184 bne.n 80021b2 <d_type+0xca>
  4928. 80022a8: 6b63 ldr r3, [r4, #52] @ 0x34
  4929. 80022aa: 2b00 cmp r3, #0
  4930. 80022ac: d000 beq.n 80022b0 <d_type+0x1c8>
  4931. 80022ae: e22f b.n 8002710 <d_type+0x628>
  4932. 80022b0: 2800 cmp r0, #0
  4933. 80022b2: d05e beq.n 8002372 <d_type+0x28a>
  4934. 80022b4: 6a23 ldr r3, [r4, #32]
  4935. 80022b6: 6a62 ldr r2, [r4, #36] @ 0x24
  4936. 80022b8: 4293 cmp r3, r2
  4937. 80022ba: da5a bge.n 8002372 <d_type+0x28a>
  4938. 80022bc: 69e2 ldr r2, [r4, #28]
  4939. 80022be: 0099 lsls r1, r3, #2
  4940. 80022c0: 3301 adds r3, #1
  4941. 80022c2: 5088 str r0, [r1, r2]
  4942. 80022c4: 6223 str r3, [r4, #32]
  4943. 80022c6: 7832 ldrb r2, [r6, #0]
  4944. 80022c8: 2300 movs r3, #0
  4945. 80022ca: 3a49 subs r2, #73 @ 0x49
  4946. 80022cc: 2a01 cmp r2, #1
  4947. 80022ce: d805 bhi.n 80022dc <d_type+0x1f4>
  4948. 80022d0: 3601 adds r6, #1
  4949. 80022d2: 0020 movs r0, r4
  4950. 80022d4: 60e6 str r6, [r4, #12]
  4951. 80022d6: f001 fe1b bl 8003f10 <d_template_args_1>
  4952. 80022da: 0003 movs r3, r0
  4953. 80022dc: 002a movs r2, r5
  4954. 80022de: 2104 movs r1, #4
  4955. 80022e0: 0020 movs r0, r4
  4956. 80022e2: f7ff fabf bl 8001864 <d_make_comp>
  4957. 80022e6: 0005 movs r5, r0
  4958. 80022e8: 9000 str r0, [sp, #0]
  4959. 80022ea: e762 b.n 80021b2 <d_type+0xca>
  4960. 80022ec: 3501 adds r5, #1
  4961. 80022ee: 60e5 str r5, [r4, #12]
  4962. 80022f0: 0020 movs r0, r4
  4963. 80022f2: f7ff fd91 bl 8001e18 <d_source_name>
  4964. 80022f6: 68e1 ldr r1, [r4, #12]
  4965. 80022f8: 0006 movs r6, r0
  4966. 80022fa: 780d ldrb r5, [r1, #0]
  4967. 80022fc: 9000 str r0, [sp, #0]
  4968. 80022fe: 2d49 cmp r5, #73 @ 0x49
  4969. 8002300: d100 bne.n 8002304 <d_type+0x21c>
  4970. 8002302: e1eb b.n 80026dc <d_type+0x5f4>
  4971. 8002304: 0020 movs r0, r4
  4972. 8002306: f7ff feef bl 80020e8 <d_type>
  4973. 800230a: 0033 movs r3, r6
  4974. 800230c: 0002 movs r2, r0
  4975. 800230e: 2121 movs r1, #33 @ 0x21
  4976. 8002310: 0020 movs r0, r4
  4977. 8002312: f7ff faa7 bl 8001864 <d_make_comp>
  4978. 8002316: 0005 movs r5, r0
  4979. 8002318: 9000 str r0, [sp, #0]
  4980. 800231a: e74a b.n 80021b2 <d_type+0xca>
  4981. 800231c: 1c68 adds r0, r5, #1
  4982. 800231e: 60e0 str r0, [r4, #12]
  4983. 8002320: 786a ldrb r2, [r5, #1]
  4984. 8002322: 2a5f cmp r2, #95 @ 0x5f
  4985. 8002324: d03b beq.n 800239e <d_type+0x2b6>
  4986. 8002326: 3a30 subs r2, #48 @ 0x30
  4987. 8002328: 2a09 cmp r2, #9
  4988. 800232a: d900 bls.n 800232e <d_type+0x246>
  4989. 800232c: e1e3 b.n 80026f6 <d_type+0x60e>
  4990. 800232e: 0001 movs r1, r0
  4991. 8002330: 000f movs r7, r1
  4992. 8002332: 3101 adds r1, #1
  4993. 8002334: 60e1 str r1, [r4, #12]
  4994. 8002336: 780b ldrb r3, [r1, #0]
  4995. 8002338: 3b30 subs r3, #48 @ 0x30
  4996. 800233a: 2b09 cmp r3, #9
  4997. 800233c: d9f8 bls.n 8002330 <d_type+0x248>
  4998. 800233e: 6962 ldr r2, [r4, #20]
  4999. 8002340: 69a3 ldr r3, [r4, #24]
  5000. 8002342: 1b7d subs r5, r7, r5
  5001. 8002344: 429a cmp r2, r3
  5002. 8002346: da14 bge.n 8002372 <d_type+0x28a>
  5003. 8002348: 0093 lsls r3, r2, #2
  5004. 800234a: 6926 ldr r6, [r4, #16]
  5005. 800234c: 189b adds r3, r3, r2
  5006. 800234e: 009b lsls r3, r3, #2
  5007. 8002350: 18f6 adds r6, r6, r3
  5008. 8002352: 2300 movs r3, #0
  5009. 8002354: 3201 adds r2, #1
  5010. 8002356: 6073 str r3, [r6, #4]
  5011. 8002358: 60b3 str r3, [r6, #8]
  5012. 800235a: 6162 str r2, [r4, #20]
  5013. 800235c: 2d00 cmp r5, #0
  5014. 800235e: dd08 ble.n 8002372 <d_type+0x28a>
  5015. 8002360: 60f0 str r0, [r6, #12]
  5016. 8002362: 0008 movs r0, r1
  5017. 8002364: 6073 str r3, [r6, #4]
  5018. 8002366: 60b3 str r3, [r6, #8]
  5019. 8002368: 7033 strb r3, [r6, #0]
  5020. 800236a: 6135 str r5, [r6, #16]
  5021. 800236c: 787b ldrb r3, [r7, #1]
  5022. 800236e: 2b5f cmp r3, #95 @ 0x5f
  5023. 8002370: d016 beq.n 80023a0 <d_type+0x2b8>
  5024. 8002372: 2000 movs r0, #0
  5025. 8002374: e6fc b.n 8002170 <d_type+0x88>
  5026. 8002376: 3501 adds r5, #1
  5027. 8002378: 60e5 str r5, [r4, #12]
  5028. 800237a: 0020 movs r0, r4
  5029. 800237c: f7ff feb4 bl 80020e8 <d_type>
  5030. 8002380: 1e05 subs r5, r0, #0
  5031. 8002382: d0f6 beq.n 8002372 <d_type+0x28a>
  5032. 8002384: 0020 movs r0, r4
  5033. 8002386: f7ff feaf bl 80020e8 <d_type>
  5034. 800238a: 1e03 subs r3, r0, #0
  5035. 800238c: d0f1 beq.n 8002372 <d_type+0x28a>
  5036. 800238e: 002a movs r2, r5
  5037. 8002390: 212b movs r1, #43 @ 0x2b
  5038. 8002392: 0020 movs r0, r4
  5039. 8002394: f7ff fa66 bl 8001864 <d_make_comp>
  5040. 8002398: 0005 movs r5, r0
  5041. 800239a: 9000 str r0, [sp, #0]
  5042. 800239c: e709 b.n 80021b2 <d_type+0xca>
  5043. 800239e: 2600 movs r6, #0
  5044. 80023a0: 3001 adds r0, #1
  5045. 80023a2: 60e0 str r0, [r4, #12]
  5046. 80023a4: 0020 movs r0, r4
  5047. 80023a6: f7ff fe9f bl 80020e8 <d_type>
  5048. 80023aa: 0032 movs r2, r6
  5049. 80023ac: 0003 movs r3, r0
  5050. 80023ae: 212a movs r1, #42 @ 0x2a
  5051. 80023b0: 0020 movs r0, r4
  5052. 80023b2: f7ff fa57 bl 8001864 <d_make_comp>
  5053. 80023b6: 0005 movs r5, r0
  5054. 80023b8: 9000 str r0, [sp, #0]
  5055. 80023ba: e6fa b.n 80021b2 <d_type+0xca>
  5056. 80023bc: 2301 movs r3, #1
  5057. 80023be: 6b25 ldr r5, [r4, #48] @ 0x30
  5058. 80023c0: 0020 movs r0, r4
  5059. 80023c2: 6323 str r3, [r4, #48] @ 0x30
  5060. 80023c4: f000 fd76 bl 8002eb4 <d_expression_1>
  5061. 80023c8: 6325 str r5, [r4, #48] @ 0x30
  5062. 80023ca: 0002 movs r2, r0
  5063. 80023cc: 2300 movs r3, #0
  5064. 80023ce: 2144 movs r1, #68 @ 0x44
  5065. 80023d0: 0020 movs r0, r4
  5066. 80023d2: f7ff fa47 bl 8001864 <d_make_comp>
  5067. 80023d6: 1e05 subs r5, r0, #0
  5068. 80023d8: 9000 str r0, [sp, #0]
  5069. 80023da: d0ca beq.n 8002372 <d_type+0x28a>
  5070. 80023dc: 68e3 ldr r3, [r4, #12]
  5071. 80023de: 781a ldrb r2, [r3, #0]
  5072. 80023e0: 2a00 cmp r2, #0
  5073. 80023e2: d0c6 beq.n 8002372 <d_type+0x28a>
  5074. 80023e4: 1c5a adds r2, r3, #1
  5075. 80023e6: 60e2 str r2, [r4, #12]
  5076. 80023e8: 781b ldrb r3, [r3, #0]
  5077. 80023ea: 2b45 cmp r3, #69 @ 0x45
  5078. 80023ec: d100 bne.n 80023f0 <d_type+0x308>
  5079. 80023ee: e6e3 b.n 80021b8 <d_type+0xd0>
  5080. 80023f0: 2000 movs r0, #0
  5081. 80023f2: e6bd b.n 8002170 <d_type+0x88>
  5082. 80023f4: 08014df8 .word 0x08014df8
  5083. 80023f8: 03ec7bff .word 0x03ec7bff
  5084. 80023fc: 08014e4c .word 0x08014e4c
  5085. 8002400: 0020 movs r0, r4
  5086. 8002402: f7ff fa9b bl 800193c <d_number>
  5087. 8002406: 68e3 ldr r3, [r4, #12]
  5088. 8002408: 0002 movs r2, r0
  5089. 800240a: 781d ldrb r5, [r3, #0]
  5090. 800240c: 2d62 cmp r5, #98 @ 0x62
  5091. 800240e: d100 bne.n 8002412 <d_type+0x32a>
  5092. 8002410: e1a1 b.n 8002756 <d_type+0x66e>
  5093. 8002412: 2d78 cmp r5, #120 @ 0x78
  5094. 8002414: d002 beq.n 800241c <d_type+0x334>
  5095. 8002416: 2d5f cmp r5, #95 @ 0x5f
  5096. 8002418: d1ab bne.n 8002372 <d_type+0x28a>
  5097. 800241a: 2500 movs r5, #0
  5098. 800241c: 6961 ldr r1, [r4, #20]
  5099. 800241e: 69a0 ldr r0, [r4, #24]
  5100. 8002420: b217 sxth r7, r2
  5101. 8002422: 3301 adds r3, #1
  5102. 8002424: 4281 cmp r1, r0
  5103. 8002426: db00 blt.n 800242a <d_type+0x342>
  5104. 8002428: e1bf b.n 80027aa <d_type+0x6c2>
  5105. 800242a: 2014 movs r0, #20
  5106. 800242c: 4348 muls r0, r1
  5107. 800242e: 6926 ldr r6, [r4, #16]
  5108. 8002430: 3101 adds r1, #1
  5109. 8002432: 1836 adds r6, r6, r0
  5110. 8002434: 2000 movs r0, #0
  5111. 8002436: 6070 str r0, [r6, #4]
  5112. 8002438: 60b0 str r0, [r6, #8]
  5113. 800243a: 6161 str r1, [r4, #20]
  5114. 800243c: 215c movs r1, #92 @ 0x5c
  5115. 800243e: 7031 strb r1, [r6, #0]
  5116. 8002440: 49de ldr r1, [pc, #888] @ (80027bc <d_type+0x6d4>)
  5117. 8002442: 74b5 strb r5, [r6, #18]
  5118. 8002444: 60f1 str r1, [r6, #12]
  5119. 8002446: 8237 strh r7, [r6, #16]
  5120. 8002448: 49dd ldr r1, [pc, #884] @ (80027c0 <d_type+0x6d8>)
  5121. 800244a: 60e3 str r3, [r4, #12]
  5122. 800244c: a801 add r0, sp, #4
  5123. 800244e: 9600 str r6, [sp, #0]
  5124. 8002450: f008 fc1c bl 800ac8c <sprintf>
  5125. 8002454: 1e69 subs r1, r5, #1
  5126. 8002456: 418d sbcs r5, r1
  5127. 8002458: a801 add r0, sp, #4
  5128. 800245a: f008 fff9 bl 800b450 <strlen>
  5129. 800245e: 68f3 ldr r3, [r6, #12]
  5130. 8002460: 6ae2 ldr r2, [r4, #44] @ 0x2c
  5131. 8002462: 685b ldr r3, [r3, #4]
  5132. 8002464: 189b adds r3, r3, r2
  5133. 8002466: 195b adds r3, r3, r5
  5134. 8002468: 1818 adds r0, r3, r0
  5135. 800246a: 62e0 str r0, [r4, #44] @ 0x2c
  5136. 800246c: 9800 ldr r0, [sp, #0]
  5137. 800246e: e67f b.n 8002170 <d_type+0x88>
  5138. 8002470: 6963 ldr r3, [r4, #20]
  5139. 8002472: 69a2 ldr r2, [r4, #24]
  5140. 8002474: 4293 cmp r3, r2
  5141. 8002476: db00 blt.n 800247a <d_type+0x392>
  5142. 8002478: e19c b.n 80027b4 <d_type+0x6cc>
  5143. 800247a: 009a lsls r2, r3, #2
  5144. 800247c: 6920 ldr r0, [r4, #16]
  5145. 800247e: 18d2 adds r2, r2, r3
  5146. 8002480: 0092 lsls r2, r2, #2
  5147. 8002482: 1880 adds r0, r0, r2
  5148. 8002484: 2200 movs r2, #0
  5149. 8002486: 3301 adds r3, #1
  5150. 8002488: 6042 str r2, [r0, #4]
  5151. 800248a: 6082 str r2, [r0, #8]
  5152. 800248c: 6163 str r3, [r4, #20]
  5153. 800248e: 2327 movs r3, #39 @ 0x27
  5154. 8002490: 7003 strb r3, [r0, #0]
  5155. 8002492: 4bcc ldr r3, [pc, #816] @ (80027c4 <d_type+0x6dc>)
  5156. 8002494: 60c3 str r3, [r0, #12]
  5157. 8002496: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5158. 8002498: 330a adds r3, #10
  5159. 800249a: 62e3 str r3, [r4, #44] @ 0x2c
  5160. 800249c: e668 b.n 8002170 <d_type+0x88>
  5161. 800249e: 78ab ldrb r3, [r5, #2]
  5162. 80024a0: 2b5f cmp r3, #95 @ 0x5f
  5163. 80024a2: d100 bne.n 80024a6 <d_type+0x3be>
  5164. 80024a4: e171 b.n 800278a <d_type+0x6a2>
  5165. 80024a6: 6963 ldr r3, [r4, #20]
  5166. 80024a8: 69a2 ldr r2, [r4, #24]
  5167. 80024aa: 4293 cmp r3, r2
  5168. 80024ac: db00 blt.n 80024b0 <d_type+0x3c8>
  5169. 80024ae: e760 b.n 8002372 <d_type+0x28a>
  5170. 80024b0: 009a lsls r2, r3, #2
  5171. 80024b2: 6925 ldr r5, [r4, #16]
  5172. 80024b4: 18d2 adds r2, r2, r3
  5173. 80024b6: 0092 lsls r2, r2, #2
  5174. 80024b8: 18ad adds r5, r5, r2
  5175. 80024ba: 2200 movs r2, #0
  5176. 80024bc: 3301 adds r3, #1
  5177. 80024be: 606a str r2, [r5, #4]
  5178. 80024c0: 60aa str r2, [r5, #8]
  5179. 80024c2: 6163 str r3, [r4, #20]
  5180. 80024c4: 2343 movs r3, #67 @ 0x43
  5181. 80024c6: 0020 movs r0, r4
  5182. 80024c8: 702b strb r3, [r5, #0]
  5183. 80024ca: f7ff fa37 bl 800193c <d_number>
  5184. 80024ce: 60e8 str r0, [r5, #12]
  5185. 80024d0: 68e3 ldr r3, [r4, #12]
  5186. 80024d2: 781a ldrb r2, [r3, #0]
  5187. 80024d4: 2a5f cmp r2, #95 @ 0x5f
  5188. 80024d6: d000 beq.n 80024da <d_type+0x3f2>
  5189. 80024d8: e74b b.n 8002372 <d_type+0x28a>
  5190. 80024da: 3301 adds r3, #1
  5191. 80024dc: 60e3 str r3, [r4, #12]
  5192. 80024de: 0020 movs r0, r4
  5193. 80024e0: f7ff fe02 bl 80020e8 <d_type>
  5194. 80024e4: 002a movs r2, r5
  5195. 80024e6: 0003 movs r3, r0
  5196. 80024e8: 212d movs r1, #45 @ 0x2d
  5197. 80024ea: 0020 movs r0, r4
  5198. 80024ec: f7ff f9ba bl 8001864 <d_make_comp>
  5199. 80024f0: 0005 movs r5, r0
  5200. 80024f2: 9000 str r0, [sp, #0]
  5201. 80024f4: e65d b.n 80021b2 <d_type+0xca>
  5202. 80024f6: 6963 ldr r3, [r4, #20]
  5203. 80024f8: 69a2 ldr r2, [r4, #24]
  5204. 80024fa: 4293 cmp r3, r2
  5205. 80024fc: db00 blt.n 8002500 <d_type+0x418>
  5206. 80024fe: e738 b.n 8002372 <d_type+0x28a>
  5207. 8002500: 009a lsls r2, r3, #2
  5208. 8002502: 18d2 adds r2, r2, r3
  5209. 8002504: 3301 adds r3, #1
  5210. 8002506: 6163 str r3, [r4, #20]
  5211. 8002508: 2300 movs r3, #0
  5212. 800250a: 6920 ldr r0, [r4, #16]
  5213. 800250c: 0092 lsls r2, r2, #2
  5214. 800250e: 1880 adds r0, r0, r2
  5215. 8002510: 6043 str r3, [r0, #4]
  5216. 8002512: 6083 str r3, [r0, #8]
  5217. 8002514: 7003 strb r3, [r0, #0]
  5218. 8002516: 4bac ldr r3, [pc, #688] @ (80027c8 <d_type+0x6e0>)
  5219. 8002518: 60c3 str r3, [r0, #12]
  5220. 800251a: 230e movs r3, #14
  5221. 800251c: 6103 str r3, [r0, #16]
  5222. 800251e: e627 b.n 8002170 <d_type+0x88>
  5223. 8002520: 6963 ldr r3, [r4, #20]
  5224. 8002522: 69a2 ldr r2, [r4, #24]
  5225. 8002524: 4293 cmp r3, r2
  5226. 8002526: db00 blt.n 800252a <d_type+0x442>
  5227. 8002528: e144 b.n 80027b4 <d_type+0x6cc>
  5228. 800252a: 009a lsls r2, r3, #2
  5229. 800252c: 6920 ldr r0, [r4, #16]
  5230. 800252e: 18d2 adds r2, r2, r3
  5231. 8002530: 0092 lsls r2, r2, #2
  5232. 8002532: 1880 adds r0, r0, r2
  5233. 8002534: 2200 movs r2, #0
  5234. 8002536: 3301 adds r3, #1
  5235. 8002538: 6042 str r2, [r0, #4]
  5236. 800253a: 6082 str r2, [r0, #8]
  5237. 800253c: 6163 str r3, [r4, #20]
  5238. 800253e: 2327 movs r3, #39 @ 0x27
  5239. 8002540: 7003 strb r3, [r0, #0]
  5240. 8002542: 4ba2 ldr r3, [pc, #648] @ (80027cc <d_type+0x6e4>)
  5241. 8002544: 60c3 str r3, [r0, #12]
  5242. 8002546: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5243. 8002548: 3311 adds r3, #17
  5244. 800254a: 62e3 str r3, [r4, #44] @ 0x2c
  5245. 800254c: e610 b.n 8002170 <d_type+0x88>
  5246. 800254e: 6963 ldr r3, [r4, #20]
  5247. 8002550: 69a2 ldr r2, [r4, #24]
  5248. 8002552: 4293 cmp r3, r2
  5249. 8002554: db00 blt.n 8002558 <d_type+0x470>
  5250. 8002556: e12d b.n 80027b4 <d_type+0x6cc>
  5251. 8002558: 009a lsls r2, r3, #2
  5252. 800255a: 6920 ldr r0, [r4, #16]
  5253. 800255c: 18d2 adds r2, r2, r3
  5254. 800255e: 0092 lsls r2, r2, #2
  5255. 8002560: 1880 adds r0, r0, r2
  5256. 8002562: 2200 movs r2, #0
  5257. 8002564: 3301 adds r3, #1
  5258. 8002566: 6042 str r2, [r0, #4]
  5259. 8002568: 6082 str r2, [r0, #8]
  5260. 800256a: 6163 str r3, [r4, #20]
  5261. 800256c: 2327 movs r3, #39 @ 0x27
  5262. 800256e: 7003 strb r3, [r0, #0]
  5263. 8002570: 4b97 ldr r3, [pc, #604] @ (80027d0 <d_type+0x6e8>)
  5264. 8002572: 60c3 str r3, [r0, #12]
  5265. 8002574: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5266. 8002576: 3308 adds r3, #8
  5267. 8002578: 62e3 str r3, [r4, #44] @ 0x2c
  5268. 800257a: e5f9 b.n 8002170 <d_type+0x88>
  5269. 800257c: 6963 ldr r3, [r4, #20]
  5270. 800257e: 69a2 ldr r2, [r4, #24]
  5271. 8002580: 4293 cmp r3, r2
  5272. 8002582: db00 blt.n 8002586 <d_type+0x49e>
  5273. 8002584: e116 b.n 80027b4 <d_type+0x6cc>
  5274. 8002586: 009a lsls r2, r3, #2
  5275. 8002588: 6920 ldr r0, [r4, #16]
  5276. 800258a: 18d2 adds r2, r2, r3
  5277. 800258c: 0092 lsls r2, r2, #2
  5278. 800258e: 1880 adds r0, r0, r2
  5279. 8002590: 2200 movs r2, #0
  5280. 8002592: 3301 adds r3, #1
  5281. 8002594: 6042 str r2, [r0, #4]
  5282. 8002596: 6082 str r2, [r0, #8]
  5283. 8002598: 6163 str r3, [r4, #20]
  5284. 800259a: 2327 movs r3, #39 @ 0x27
  5285. 800259c: 7003 strb r3, [r0, #0]
  5286. 800259e: 4b8d ldr r3, [pc, #564] @ (80027d4 <d_type+0x6ec>)
  5287. 80025a0: 60c3 str r3, [r0, #12]
  5288. 80025a2: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5289. 80025a4: 3304 adds r3, #4
  5290. 80025a6: 62e3 str r3, [r4, #44] @ 0x2c
  5291. 80025a8: e5e2 b.n 8002170 <d_type+0x88>
  5292. 80025aa: 6963 ldr r3, [r4, #20]
  5293. 80025ac: 69a2 ldr r2, [r4, #24]
  5294. 80025ae: 4293 cmp r3, r2
  5295. 80025b0: db00 blt.n 80025b4 <d_type+0x4cc>
  5296. 80025b2: e0ff b.n 80027b4 <d_type+0x6cc>
  5297. 80025b4: 009a lsls r2, r3, #2
  5298. 80025b6: 6920 ldr r0, [r4, #16]
  5299. 80025b8: 18d2 adds r2, r2, r3
  5300. 80025ba: 0092 lsls r2, r2, #2
  5301. 80025bc: 1880 adds r0, r0, r2
  5302. 80025be: 2200 movs r2, #0
  5303. 80025c0: 3301 adds r3, #1
  5304. 80025c2: 6042 str r2, [r0, #4]
  5305. 80025c4: 6082 str r2, [r0, #8]
  5306. 80025c6: 6163 str r3, [r4, #20]
  5307. 80025c8: 2327 movs r3, #39 @ 0x27
  5308. 80025ca: 7003 strb r3, [r0, #0]
  5309. 80025cc: 4b82 ldr r3, [pc, #520] @ (80027d8 <d_type+0x6f0>)
  5310. 80025ce: 60c3 str r3, [r0, #12]
  5311. 80025d0: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5312. 80025d2: 3309 adds r3, #9
  5313. 80025d4: 62e3 str r3, [r4, #44] @ 0x2c
  5314. 80025d6: e5cb b.n 8002170 <d_type+0x88>
  5315. 80025d8: 6963 ldr r3, [r4, #20]
  5316. 80025da: 69a2 ldr r2, [r4, #24]
  5317. 80025dc: 4293 cmp r3, r2
  5318. 80025de: db00 blt.n 80025e2 <d_type+0x4fa>
  5319. 80025e0: e0e8 b.n 80027b4 <d_type+0x6cc>
  5320. 80025e2: 009a lsls r2, r3, #2
  5321. 80025e4: 6920 ldr r0, [r4, #16]
  5322. 80025e6: 18d2 adds r2, r2, r3
  5323. 80025e8: 0092 lsls r2, r2, #2
  5324. 80025ea: 1880 adds r0, r0, r2
  5325. 80025ec: 2200 movs r2, #0
  5326. 80025ee: 3301 adds r3, #1
  5327. 80025f0: 6042 str r2, [r0, #4]
  5328. 80025f2: 6082 str r2, [r0, #8]
  5329. 80025f4: 6163 str r3, [r4, #20]
  5330. 80025f6: 2327 movs r3, #39 @ 0x27
  5331. 80025f8: 7003 strb r3, [r0, #0]
  5332. 80025fa: 4b78 ldr r3, [pc, #480] @ (80027dc <d_type+0x6f4>)
  5333. 80025fc: 60c3 str r3, [r0, #12]
  5334. 80025fe: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5335. 8002600: 3308 adds r3, #8
  5336. 8002602: 62e3 str r3, [r4, #44] @ 0x2c
  5337. 8002604: e5b4 b.n 8002170 <d_type+0x88>
  5338. 8002606: 0020 movs r0, r4
  5339. 8002608: f7ff fd6e bl 80020e8 <d_type>
  5340. 800260c: 2300 movs r3, #0
  5341. 800260e: 0002 movs r2, r0
  5342. 8002610: 214c movs r1, #76 @ 0x4c
  5343. 8002612: 0020 movs r0, r4
  5344. 8002614: f7ff f926 bl 8001864 <d_make_comp>
  5345. 8002618: 0005 movs r5, r0
  5346. 800261a: 9000 str r0, [sp, #0]
  5347. 800261c: e5c9 b.n 80021b2 <d_type+0xca>
  5348. 800261e: 6963 ldr r3, [r4, #20]
  5349. 8002620: 69a2 ldr r2, [r4, #24]
  5350. 8002622: 4293 cmp r3, r2
  5351. 8002624: db00 blt.n 8002628 <d_type+0x540>
  5352. 8002626: e0c5 b.n 80027b4 <d_type+0x6cc>
  5353. 8002628: 009a lsls r2, r3, #2
  5354. 800262a: 6920 ldr r0, [r4, #16]
  5355. 800262c: 18d2 adds r2, r2, r3
  5356. 800262e: 0092 lsls r2, r2, #2
  5357. 8002630: 1880 adds r0, r0, r2
  5358. 8002632: 2200 movs r2, #0
  5359. 8002634: 3301 adds r3, #1
  5360. 8002636: 6042 str r2, [r0, #4]
  5361. 8002638: 6082 str r2, [r0, #8]
  5362. 800263a: 6163 str r3, [r4, #20]
  5363. 800263c: 2327 movs r3, #39 @ 0x27
  5364. 800263e: 7003 strb r3, [r0, #0]
  5365. 8002640: 4b67 ldr r3, [pc, #412] @ (80027e0 <d_type+0x6f8>)
  5366. 8002642: 60c3 str r3, [r0, #12]
  5367. 8002644: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5368. 8002646: 3307 adds r3, #7
  5369. 8002648: 62e3 str r3, [r4, #44] @ 0x2c
  5370. 800264a: e591 b.n 8002170 <d_type+0x88>
  5371. 800264c: 6963 ldr r3, [r4, #20]
  5372. 800264e: 69a2 ldr r2, [r4, #24]
  5373. 8002650: 4293 cmp r3, r2
  5374. 8002652: db00 blt.n 8002656 <d_type+0x56e>
  5375. 8002654: e0ae b.n 80027b4 <d_type+0x6cc>
  5376. 8002656: 009a lsls r2, r3, #2
  5377. 8002658: 6920 ldr r0, [r4, #16]
  5378. 800265a: 18d2 adds r2, r2, r3
  5379. 800265c: 0092 lsls r2, r2, #2
  5380. 800265e: 1880 adds r0, r0, r2
  5381. 8002660: 2200 movs r2, #0
  5382. 8002662: 3301 adds r3, #1
  5383. 8002664: 6042 str r2, [r0, #4]
  5384. 8002666: 6082 str r2, [r0, #8]
  5385. 8002668: 6163 str r3, [r4, #20]
  5386. 800266a: 2327 movs r3, #39 @ 0x27
  5387. 800266c: 7003 strb r3, [r0, #0]
  5388. 800266e: 4b5d ldr r3, [pc, #372] @ (80027e4 <d_type+0x6fc>)
  5389. 8002670: 60c3 str r3, [r0, #12]
  5390. 8002672: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5391. 8002674: 3309 adds r3, #9
  5392. 8002676: 62e3 str r3, [r4, #44] @ 0x2c
  5393. 8002678: e57a b.n 8002170 <d_type+0x88>
  5394. 800267a: 6963 ldr r3, [r4, #20]
  5395. 800267c: 69a2 ldr r2, [r4, #24]
  5396. 800267e: 4293 cmp r3, r2
  5397. 8002680: db00 blt.n 8002684 <d_type+0x59c>
  5398. 8002682: e676 b.n 8002372 <d_type+0x28a>
  5399. 8002684: 009a lsls r2, r3, #2
  5400. 8002686: 18d2 adds r2, r2, r3
  5401. 8002688: 3301 adds r3, #1
  5402. 800268a: 6163 str r3, [r4, #20]
  5403. 800268c: 2300 movs r3, #0
  5404. 800268e: 6920 ldr r0, [r4, #16]
  5405. 8002690: 0092 lsls r2, r2, #2
  5406. 8002692: 1880 adds r0, r0, r2
  5407. 8002694: 6043 str r3, [r0, #4]
  5408. 8002696: 6083 str r3, [r0, #8]
  5409. 8002698: 7003 strb r3, [r0, #0]
  5410. 800269a: 4b53 ldr r3, [pc, #332] @ (80027e8 <d_type+0x700>)
  5411. 800269c: 60c3 str r3, [r0, #12]
  5412. 800269e: 2304 movs r3, #4
  5413. 80026a0: 6103 str r3, [r0, #16]
  5414. 80026a2: e565 b.n 8002170 <d_type+0x88>
  5415. 80026a4: 0099 lsls r1, r3, #2
  5416. 80026a6: 18cb adds r3, r1, r3
  5417. 80026a8: 4e50 ldr r6, [pc, #320] @ (80027ec <d_type+0x704>)
  5418. 80026aa: 009b lsls r3, r3, #2
  5419. 80026ac: 199e adds r6, r3, r6
  5420. 80026ae: 69a1 ldr r1, [r4, #24]
  5421. 80026b0: 6963 ldr r3, [r4, #20]
  5422. 80026b2: 428b cmp r3, r1
  5423. 80026b4: da77 bge.n 80027a6 <d_type+0x6be>
  5424. 80026b6: 0099 lsls r1, r3, #2
  5425. 80026b8: 6920 ldr r0, [r4, #16]
  5426. 80026ba: 18c9 adds r1, r1, r3
  5427. 80026bc: 0089 lsls r1, r1, #2
  5428. 80026be: 1840 adds r0, r0, r1
  5429. 80026c0: 3301 adds r3, #1
  5430. 80026c2: 6042 str r2, [r0, #4]
  5431. 80026c4: 6082 str r2, [r0, #8]
  5432. 80026c6: 6163 str r3, [r4, #20]
  5433. 80026c8: 2327 movs r3, #39 @ 0x27
  5434. 80026ca: 7003 strb r3, [r0, #0]
  5435. 80026cc: 6873 ldr r3, [r6, #4]
  5436. 80026ce: 6ae2 ldr r2, [r4, #44] @ 0x2c
  5437. 80026d0: 3501 adds r5, #1
  5438. 80026d2: 18d3 adds r3, r2, r3
  5439. 80026d4: 60c6 str r6, [r0, #12]
  5440. 80026d6: 62e3 str r3, [r4, #44] @ 0x2c
  5441. 80026d8: 60e5 str r5, [r4, #12]
  5442. 80026da: e549 b.n 8002170 <d_type+0x88>
  5443. 80026dc: 3101 adds r1, #1
  5444. 80026de: 60e1 str r1, [r4, #12]
  5445. 80026e0: 0020 movs r0, r4
  5446. 80026e2: f001 fc15 bl 8003f10 <d_template_args_1>
  5447. 80026e6: 0032 movs r2, r6
  5448. 80026e8: 0003 movs r3, r0
  5449. 80026ea: 2104 movs r1, #4
  5450. 80026ec: 0020 movs r0, r4
  5451. 80026ee: f7ff f8b9 bl 8001864 <d_make_comp>
  5452. 80026f2: 0006 movs r6, r0
  5453. 80026f4: e606 b.n 8002304 <d_type+0x21c>
  5454. 80026f6: 2301 movs r3, #1
  5455. 80026f8: 6b25 ldr r5, [r4, #48] @ 0x30
  5456. 80026fa: 0020 movs r0, r4
  5457. 80026fc: 6323 str r3, [r4, #48] @ 0x30
  5458. 80026fe: f000 fbd9 bl 8002eb4 <d_expression_1>
  5459. 8002702: 6325 str r5, [r4, #48] @ 0x30
  5460. 8002704: 1e06 subs r6, r0, #0
  5461. 8002706: d100 bne.n 800270a <d_type+0x622>
  5462. 8002708: e633 b.n 8002372 <d_type+0x28a>
  5463. 800270a: 68e0 ldr r0, [r4, #12]
  5464. 800270c: 7803 ldrb r3, [r0, #0]
  5465. 800270e: e62e b.n 800236e <d_type+0x286>
  5466. 8002710: 6963 ldr r3, [r4, #20]
  5467. 8002712: 0020 movs r0, r4
  5468. 8002714: 4699 mov r9, r3
  5469. 8002716: 6a23 ldr r3, [r4, #32]
  5470. 8002718: 6ae7 ldr r7, [r4, #44] @ 0x2c
  5471. 800271a: 4698 mov r8, r3
  5472. 800271c: 1c73 adds r3, r6, #1
  5473. 800271e: 60e3 str r3, [r4, #12]
  5474. 8002720: f001 fbf6 bl 8003f10 <d_template_args_1>
  5475. 8002724: 68e2 ldr r2, [r4, #12]
  5476. 8002726: 7812 ldrb r2, [r2, #0]
  5477. 8002728: 2a49 cmp r2, #73 @ 0x49
  5478. 800272a: d006 beq.n 800273a <d_type+0x652>
  5479. 800272c: 464b mov r3, r9
  5480. 800272e: 6163 str r3, [r4, #20]
  5481. 8002730: 4643 mov r3, r8
  5482. 8002732: 60e6 str r6, [r4, #12]
  5483. 8002734: 6223 str r3, [r4, #32]
  5484. 8002736: 62e7 str r7, [r4, #44] @ 0x2c
  5485. 8002738: e53b b.n 80021b2 <d_type+0xca>
  5486. 800273a: 2d00 cmp r5, #0
  5487. 800273c: d100 bne.n 8002740 <d_type+0x658>
  5488. 800273e: e618 b.n 8002372 <d_type+0x28a>
  5489. 8002740: 6a23 ldr r3, [r4, #32]
  5490. 8002742: 6a62 ldr r2, [r4, #36] @ 0x24
  5491. 8002744: 4293 cmp r3, r2
  5492. 8002746: db00 blt.n 800274a <d_type+0x662>
  5493. 8002748: e613 b.n 8002372 <d_type+0x28a>
  5494. 800274a: 69e2 ldr r2, [r4, #28]
  5495. 800274c: 0099 lsls r1, r3, #2
  5496. 800274e: 3301 adds r3, #1
  5497. 8002750: 508d str r5, [r1, r2]
  5498. 8002752: 6223 str r3, [r4, #32]
  5499. 8002754: e5c1 b.n 80022da <d_type+0x1f2>
  5500. 8002756: 2810 cmp r0, #16
  5501. 8002758: d000 beq.n 800275c <d_type+0x674>
  5502. 800275a: e60a b.n 8002372 <d_type+0x28a>
  5503. 800275c: 3301 adds r3, #1
  5504. 800275e: 60e3 str r3, [r4, #12]
  5505. 8002760: 6962 ldr r2, [r4, #20]
  5506. 8002762: 69a3 ldr r3, [r4, #24]
  5507. 8002764: 429a cmp r2, r3
  5508. 8002766: da25 bge.n 80027b4 <d_type+0x6cc>
  5509. 8002768: 2114 movs r1, #20
  5510. 800276a: 4351 muls r1, r2
  5511. 800276c: 6923 ldr r3, [r4, #16]
  5512. 800276e: 3201 adds r2, #1
  5513. 8002770: 185b adds r3, r3, r1
  5514. 8002772: 2100 movs r1, #0
  5515. 8002774: 6059 str r1, [r3, #4]
  5516. 8002776: 6099 str r1, [r3, #8]
  5517. 8002778: 6162 str r2, [r4, #20]
  5518. 800277a: 2227 movs r2, #39 @ 0x27
  5519. 800277c: 701a strb r2, [r3, #0]
  5520. 800277e: 6ae0 ldr r0, [r4, #44] @ 0x2c
  5521. 8002780: 4a1b ldr r2, [pc, #108] @ (80027f0 <d_type+0x708>)
  5522. 8002782: 9300 str r3, [sp, #0]
  5523. 8002784: 60da str r2, [r3, #12]
  5524. 8002786: 300f adds r0, #15
  5525. 8002788: e66f b.n 800246a <d_type+0x382>
  5526. 800278a: 3503 adds r5, #3
  5527. 800278c: 3b5e subs r3, #94 @ 0x5e
  5528. 800278e: 6b26 ldr r6, [r4, #48] @ 0x30
  5529. 8002790: 60e5 str r5, [r4, #12]
  5530. 8002792: 0020 movs r0, r4
  5531. 8002794: 6323 str r3, [r4, #48] @ 0x30
  5532. 8002796: f000 fb8d bl 8002eb4 <d_expression_1>
  5533. 800279a: 6326 str r6, [r4, #48] @ 0x30
  5534. 800279c: 1e05 subs r5, r0, #0
  5535. 800279e: d000 beq.n 80027a2 <d_type+0x6ba>
  5536. 80027a0: e696 b.n 80024d0 <d_type+0x3e8>
  5537. 80027a2: 2000 movs r0, #0
  5538. 80027a4: e4e4 b.n 8002170 <d_type+0x88>
  5539. 80027a6: 68d3 ldr r3, [r2, #12]
  5540. 80027a8: deff udf #255 @ 0xff
  5541. 80027aa: 4905 ldr r1, [pc, #20] @ (80027c0 <d_type+0x6d8>)
  5542. 80027ac: 60e3 str r3, [r4, #12]
  5543. 80027ae: a801 add r0, sp, #4
  5544. 80027b0: f008 fa6c bl 800ac8c <sprintf>
  5545. 80027b4: 2300 movs r3, #0
  5546. 80027b6: 68db ldr r3, [r3, #12]
  5547. 80027b8: deff udf #255 @ 0xff
  5548. 80027ba: 46c0 nop @ (mov r8, r8)
  5549. 80027bc: 08015b24 .word 0x08015b24
  5550. 80027c0: 080140e4 .word 0x080140e4
  5551. 80027c4: 08015aac .word 0x08015aac
  5552. 80027c8: 08014114 .word 0x08014114
  5553. 80027cc: 08015b10 .word 0x08015b10
  5554. 80027d0: 08015afc .word 0x08015afc
  5555. 80027d4: 08015ac0 .word 0x08015ac0
  5556. 80027d8: 08015a84 .word 0x08015a84
  5557. 80027dc: 08015ae8 .word 0x08015ae8
  5558. 80027e0: 08015ad4 .word 0x08015ad4
  5559. 80027e4: 08015a98 .word 0x08015a98
  5560. 80027e8: 0801410c .word 0x0801410c
  5561. 80027ec: 0801587c .word 0x0801587c
  5562. 80027f0: 08015b38 .word 0x08015b38
  5563.  
  5564. 080027f4 <d_parmlist>:
  5565. 80027f4: 2300 movs r3, #0
  5566. 80027f6: b530 push {r4, r5, lr}
  5567. 80027f8: 68c2 ldr r2, [r0, #12]
  5568. 80027fa: b083 sub sp, #12
  5569. 80027fc: 9301 str r3, [sp, #4]
  5570. 80027fe: 7813 ldrb r3, [r2, #0]
  5571. 8002800: 0004 movs r4, r0
  5572. 8002802: ad01 add r5, sp, #4
  5573. 8002804: 2b00 cmp r3, #0
  5574. 8002806: d115 bne.n 8002834 <d_parmlist+0x40>
  5575. 8002808: e025 b.n 8002856 <d_parmlist+0x62>
  5576. 800280a: 2b4f cmp r3, #79 @ 0x4f
  5577. 800280c: d018 beq.n 8002840 <d_parmlist+0x4c>
  5578. 800280e: 0020 movs r0, r4
  5579. 8002810: f7ff fc6a bl 80020e8 <d_type>
  5580. 8002814: 1e02 subs r2, r0, #0
  5581. 8002816: d01e beq.n 8002856 <d_parmlist+0x62>
  5582. 8002818: 2300 movs r3, #0
  5583. 800281a: 212e movs r1, #46 @ 0x2e
  5584. 800281c: 0020 movs r0, r4
  5585. 800281e: f7ff f821 bl 8001864 <d_make_comp>
  5586. 8002822: 6028 str r0, [r5, #0]
  5587. 8002824: 2800 cmp r0, #0
  5588. 8002826: d016 beq.n 8002856 <d_parmlist+0x62>
  5589. 8002828: 68e2 ldr r2, [r4, #12]
  5590. 800282a: 3010 adds r0, #16
  5591. 800282c: 7813 ldrb r3, [r2, #0]
  5592. 800282e: 0005 movs r5, r0
  5593. 8002830: 2b00 cmp r3, #0
  5594. 8002832: d008 beq.n 8002846 <d_parmlist+0x52>
  5595. 8002834: 2b45 cmp r3, #69 @ 0x45
  5596. 8002836: d006 beq.n 8002846 <d_parmlist+0x52>
  5597. 8002838: 2b2e cmp r3, #46 @ 0x2e
  5598. 800283a: d004 beq.n 8002846 <d_parmlist+0x52>
  5599. 800283c: 2b52 cmp r3, #82 @ 0x52
  5600. 800283e: d1e4 bne.n 800280a <d_parmlist+0x16>
  5601. 8002840: 7853 ldrb r3, [r2, #1]
  5602. 8002842: 2b45 cmp r3, #69 @ 0x45
  5603. 8002844: d1e3 bne.n 800280e <d_parmlist+0x1a>
  5604. 8002846: 9801 ldr r0, [sp, #4]
  5605. 8002848: 2800 cmp r0, #0
  5606. 800284a: d004 beq.n 8002856 <d_parmlist+0x62>
  5607. 800284c: 6903 ldr r3, [r0, #16]
  5608. 800284e: 2b00 cmp r3, #0
  5609. 8002850: d003 beq.n 800285a <d_parmlist+0x66>
  5610. 8002852: b003 add sp, #12
  5611. 8002854: bd30 pop {r4, r5, pc}
  5612. 8002856: 2000 movs r0, #0
  5613. 8002858: e7fb b.n 8002852 <d_parmlist+0x5e>
  5614. 800285a: 68c2 ldr r2, [r0, #12]
  5615. 800285c: 7811 ldrb r1, [r2, #0]
  5616. 800285e: 2927 cmp r1, #39 @ 0x27
  5617. 8002860: d1f7 bne.n 8002852 <d_parmlist+0x5e>
  5618. 8002862: 68d2 ldr r2, [r2, #12]
  5619. 8002864: 7c11 ldrb r1, [r2, #16]
  5620. 8002866: 2909 cmp r1, #9
  5621. 8002868: d1f3 bne.n 8002852 <d_parmlist+0x5e>
  5622. 800286a: 6ae1 ldr r1, [r4, #44] @ 0x2c
  5623. 800286c: 6852 ldr r2, [r2, #4]
  5624. 800286e: 1a8a subs r2, r1, r2
  5625. 8002870: 62e2 str r2, [r4, #44] @ 0x2c
  5626. 8002872: 60c3 str r3, [r0, #12]
  5627. 8002874: e7ed b.n 8002852 <d_parmlist+0x5e>
  5628. 8002876: 46c0 nop @ (mov r8, r8)
  5629.  
  5630. 08002878 <d_bare_function_type>:
  5631. 8002878: b570 push {r4, r5, r6, lr}
  5632. 800287a: 68c3 ldr r3, [r0, #12]
  5633. 800287c: 0004 movs r4, r0
  5634. 800287e: 781a ldrb r2, [r3, #0]
  5635. 8002880: 2a4a cmp r2, #74 @ 0x4a
  5636. 8002882: d019 beq.n 80028b8 <d_bare_function_type+0x40>
  5637. 8002884: 2900 cmp r1, #0
  5638. 8002886: d00f beq.n 80028a8 <d_bare_function_type+0x30>
  5639. 8002888: 0020 movs r0, r4
  5640. 800288a: f7ff fc2d bl 80020e8 <d_type>
  5641. 800288e: 1e05 subs r5, r0, #0
  5642. 8002890: d010 beq.n 80028b4 <d_bare_function_type+0x3c>
  5643. 8002892: 0020 movs r0, r4
  5644. 8002894: f7ff ffae bl 80027f4 <d_parmlist>
  5645. 8002898: 1e03 subs r3, r0, #0
  5646. 800289a: d00b beq.n 80028b4 <d_bare_function_type+0x3c>
  5647. 800289c: 002a movs r2, r5
  5648. 800289e: 2129 movs r1, #41 @ 0x29
  5649. 80028a0: 0020 movs r0, r4
  5650. 80028a2: f7fe ffdf bl 8001864 <d_make_comp>
  5651. 80028a6: bd70 pop {r4, r5, r6, pc}
  5652. 80028a8: 0020 movs r0, r4
  5653. 80028aa: f7ff ffa3 bl 80027f4 <d_parmlist>
  5654. 80028ae: 2500 movs r5, #0
  5655. 80028b0: 1e03 subs r3, r0, #0
  5656. 80028b2: d1f3 bne.n 800289c <d_bare_function_type+0x24>
  5657. 80028b4: 2000 movs r0, #0
  5658. 80028b6: e7f6 b.n 80028a6 <d_bare_function_type+0x2e>
  5659. 80028b8: 3301 adds r3, #1
  5660. 80028ba: 60c3 str r3, [r0, #12]
  5661. 80028bc: e7e4 b.n 8002888 <d_bare_function_type+0x10>
  5662. 80028be: 46c0 nop @ (mov r8, r8)
  5663.  
  5664. 080028c0 <d_function_type>:
  5665. 80028c0: 6883 ldr r3, [r0, #8]
  5666. 80028c2: b570 push {r4, r5, r6, lr}
  5667. 80028c4: 0004 movs r4, r0
  5668. 80028c6: 035b lsls r3, r3, #13
  5669. 80028c8: d40d bmi.n 80028e6 <d_function_type+0x26>
  5670. 80028ca: 2380 movs r3, #128 @ 0x80
  5671. 80028cc: 6bc2 ldr r2, [r0, #60] @ 0x3c
  5672. 80028ce: 011b lsls r3, r3, #4
  5673. 80028d0: 429a cmp r2, r3
  5674. 80028d2: d80c bhi.n 80028ee <d_function_type+0x2e>
  5675. 80028d4: 1c53 adds r3, r2, #1
  5676. 80028d6: 63c3 str r3, [r0, #60] @ 0x3c
  5677. 80028d8: 68c3 ldr r3, [r0, #12]
  5678. 80028da: 2000 movs r0, #0
  5679. 80028dc: 7819 ldrb r1, [r3, #0]
  5680. 80028de: 2946 cmp r1, #70 @ 0x46
  5681. 80028e0: d007 beq.n 80028f2 <d_function_type+0x32>
  5682. 80028e2: 63e2 str r2, [r4, #60] @ 0x3c
  5683. 80028e4: e004 b.n 80028f0 <d_function_type+0x30>
  5684. 80028e6: 68c3 ldr r3, [r0, #12]
  5685. 80028e8: 781a ldrb r2, [r3, #0]
  5686. 80028ea: 2a46 cmp r2, #70 @ 0x46
  5687. 80028ec: d001 beq.n 80028f2 <d_function_type+0x32>
  5688. 80028ee: 2000 movs r0, #0
  5689. 80028f0: bd70 pop {r4, r5, r6, pc}
  5690. 80028f2: 1c5a adds r2, r3, #1
  5691. 80028f4: 60e2 str r2, [r4, #12]
  5692. 80028f6: 785a ldrb r2, [r3, #1]
  5693. 80028f8: 2a59 cmp r2, #89 @ 0x59
  5694. 80028fa: d101 bne.n 8002900 <d_function_type+0x40>
  5695. 80028fc: 3302 adds r3, #2
  5696. 80028fe: 60e3 str r3, [r4, #12]
  5697. 8002900: 2101 movs r1, #1
  5698. 8002902: 0020 movs r0, r4
  5699. 8002904: f7ff ffb8 bl 8002878 <d_bare_function_type>
  5700. 8002908: 68e5 ldr r5, [r4, #12]
  5701. 800290a: 782b ldrb r3, [r5, #0]
  5702. 800290c: 2b52 cmp r3, #82 @ 0x52
  5703. 800290e: d01d beq.n 800294c <d_function_type+0x8c>
  5704. 8002910: 2b4f cmp r3, #79 @ 0x4f
  5705. 8002912: d009 beq.n 8002928 <d_function_type+0x68>
  5706. 8002914: 2b45 cmp r3, #69 @ 0x45
  5707. 8002916: d016 beq.n 8002946 <d_function_type+0x86>
  5708. 8002918: 2000 movs r0, #0
  5709. 800291a: 68a3 ldr r3, [r4, #8]
  5710. 800291c: 035b lsls r3, r3, #13
  5711. 800291e: d4e7 bmi.n 80028f0 <d_function_type+0x30>
  5712. 8002920: 6be2 ldr r2, [r4, #60] @ 0x3c
  5713. 8002922: 3a01 subs r2, #1
  5714. 8002924: 63e2 str r2, [r4, #60] @ 0x3c
  5715. 8002926: e7e3 b.n 80028f0 <d_function_type+0x30>
  5716. 8002928: 2120 movs r1, #32
  5717. 800292a: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5718. 800292c: 3303 adds r3, #3
  5719. 800292e: 1c6e adds r6, r5, #1
  5720. 8002930: 0002 movs r2, r0
  5721. 8002932: 62e3 str r3, [r4, #44] @ 0x2c
  5722. 8002934: 0020 movs r0, r4
  5723. 8002936: 2300 movs r3, #0
  5724. 8002938: 60e6 str r6, [r4, #12]
  5725. 800293a: f7fe ff93 bl 8001864 <d_make_comp>
  5726. 800293e: 786b ldrb r3, [r5, #1]
  5727. 8002940: 0035 movs r5, r6
  5728. 8002942: 2b45 cmp r3, #69 @ 0x45
  5729. 8002944: d1e8 bne.n 8002918 <d_function_type+0x58>
  5730. 8002946: 3501 adds r5, #1
  5731. 8002948: 60e5 str r5, [r4, #12]
  5732. 800294a: e7e6 b.n 800291a <d_function_type+0x5a>
  5733. 800294c: 6ae3 ldr r3, [r4, #44] @ 0x2c
  5734. 800294e: 211f movs r1, #31
  5735. 8002950: 3302 adds r3, #2
  5736. 8002952: e7ec b.n 800292e <d_function_type+0x6e>
  5737.  
  5738. 08002954 <d_template_parm>:
  5739. 8002954: b570 push {r4, r5, r6, lr}
  5740. 8002956: 68c3 ldr r3, [r0, #12]
  5741. 8002958: 0004 movs r4, r0
  5742. 800295a: 781a ldrb r2, [r3, #0]
  5743. 800295c: 000d movs r5, r1
  5744. 800295e: 2a54 cmp r2, #84 @ 0x54
  5745. 8002960: d110 bne.n 8002984 <d_template_parm+0x30>
  5746. 8002962: 785a ldrb r2, [r3, #1]
  5747. 8002964: 2a74 cmp r2, #116 @ 0x74
  5748. 8002966: d022 beq.n 80029ae <d_template_parm+0x5a>
  5749. 8002968: d80e bhi.n 8002988 <d_template_parm+0x34>
  5750. 800296a: 2a6e cmp r2, #110 @ 0x6e
  5751. 800296c: d017 beq.n 800299e <d_template_parm+0x4a>
  5752. 800296e: 2a70 cmp r2, #112 @ 0x70
  5753. 8002970: d108 bne.n 8002984 <d_template_parm+0x30>
  5754. 8002972: 3302 adds r3, #2
  5755. 8002974: 60c3 str r3, [r0, #12]
  5756. 8002976: f7ff ffed bl 8002954 <d_template_parm>
  5757. 800297a: 215b movs r1, #91 @ 0x5b
  5758. 800297c: 1e02 subs r2, r0, #0
  5759. 800297e: d109 bne.n 8002994 <d_template_parm+0x40>
  5760. 8002980: 2301 movs r3, #1
  5761. 8002982: 602b str r3, [r5, #0]
  5762. 8002984: 2000 movs r0, #0
  5763. 8002986: e009 b.n 800299c <d_template_parm+0x48>
  5764. 8002988: 2a79 cmp r2, #121 @ 0x79
  5765. 800298a: d1fb bne.n 8002984 <d_template_parm+0x30>
  5766. 800298c: 2158 movs r1, #88 @ 0x58
  5767. 800298e: 2200 movs r2, #0
  5768. 8002990: 3302 adds r3, #2
  5769. 8002992: 60c3 str r3, [r0, #12]
  5770. 8002994: 2300 movs r3, #0
  5771. 8002996: 0020 movs r0, r4
  5772. 8002998: f7fe ff64 bl 8001864 <d_make_comp>
  5773. 800299c: bd70 pop {r4, r5, r6, pc}
  5774. 800299e: 3302 adds r3, #2
  5775. 80029a0: 60c3 str r3, [r0, #12]
  5776. 80029a2: f7ff fba1 bl 80020e8 <d_type>
  5777. 80029a6: 1e02 subs r2, r0, #0
  5778. 80029a8: d0ea beq.n 8002980 <d_template_parm+0x2c>
  5779. 80029aa: 2159 movs r1, #89 @ 0x59
  5780. 80029ac: e7f2 b.n 8002994 <d_template_parm+0x40>
  5781. 80029ae: 3302 adds r3, #2
  5782. 80029b0: 60c3 str r3, [r0, #12]
  5783. 80029b2: f000 f80b bl 80029cc <d_template_head>
  5784. 80029b6: 1e02 subs r2, r0, #0
  5785. 80029b8: d0e2 beq.n 8002980 <d_template_parm+0x2c>
  5786. 80029ba: 68e3 ldr r3, [r4, #12]
  5787. 80029bc: 7819 ldrb r1, [r3, #0]
  5788. 80029be: 2945 cmp r1, #69 @ 0x45
  5789. 80029c0: d1de bne.n 8002980 <d_template_parm+0x2c>
  5790. 80029c2: 3301 adds r3, #1
  5791. 80029c4: 60e3 str r3, [r4, #12]
  5792. 80029c6: 3115 adds r1, #21
  5793. 80029c8: e7e4 b.n 8002994 <d_template_parm+0x40>
  5794. 80029ca: 46c0 nop @ (mov r8, r8)
  5795.  
  5796. 080029cc <d_template_head>:
  5797. 80029cc: 2300 movs r3, #0
  5798. 80029ce: b570 push {r4, r5, r6, lr}
  5799. 80029d0: b082 sub sp, #8
  5800. 80029d2: 0005 movs r5, r0
  5801. 80029d4: 000e movs r6, r1
  5802. 80029d6: 9301 str r3, [sp, #4]
  5803. 80029d8: ac01 add r4, sp, #4
  5804. 80029da: e002 b.n 80029e2 <d_template_head+0x16>
  5805. 80029dc: 6020 str r0, [r4, #0]
  5806. 80029de: 3010 adds r0, #16
  5807. 80029e0: 0004 movs r4, r0
  5808. 80029e2: 0031 movs r1, r6
  5809. 80029e4: 0028 movs r0, r5
  5810. 80029e6: f7ff ffb5 bl 8002954 <d_template_parm>
  5811. 80029ea: 2800 cmp r0, #0
  5812. 80029ec: d1f6 bne.n 80029dc <d_template_head+0x10>
  5813. 80029ee: 9801 ldr r0, [sp, #4]
  5814. 80029f0: 2800 cmp r0, #0
  5815. 80029f2: d005 beq.n 8002a00 <d_template_head+0x34>
  5816. 80029f4: 0002 movs r2, r0
  5817. 80029f6: 2300 movs r3, #0
  5818. 80029f8: 2157 movs r1, #87 @ 0x57
  5819. 80029fa: 0028 movs r0, r5
  5820. 80029fc: f7fe ff32 bl 8001864 <d_make_comp>
  5821. 8002a00: b002 add sp, #8
  5822. 8002a02: bd70 pop {r4, r5, r6, pc}
  5823.  
  5824. 08002a04 <d_operator_name>:
  5825. 8002a04: b5f0 push {r4, r5, r6, r7, lr}
  5826. 8002a06: 46c6 mov lr, r8
  5827. 8002a08: b500 push {lr}
  5828. 8002a0a: 68c3 ldr r3, [r0, #12]
  5829. 8002a0c: 4680 mov r8, r0
  5830. 8002a0e: 781e ldrb r6, [r3, #0]
  5831. 8002a10: 2e00 cmp r6, #0
  5832. 8002a12: d022 beq.n 8002a5a <d_operator_name+0x56>
  5833. 8002a14: 1c5a adds r2, r3, #1
  5834. 8002a16: 60c2 str r2, [r0, #12]
  5835. 8002a18: 785a ldrb r2, [r3, #1]
  5836. 8002a1a: 781e ldrb r6, [r3, #0]
  5837. 8002a1c: 4694 mov ip, r2
  5838. 8002a1e: 2a00 cmp r2, #0
  5839. 8002a20: d11e bne.n 8002a60 <d_operator_name+0x5c>
  5840. 8002a22: 2548 movs r5, #72 @ 0x48
  5841. 8002a24: 2100 movs r1, #0
  5842. 8002a26: 4f3d ldr r7, [pc, #244] @ (8002b1c <d_operator_name+0x118>)
  5843. 8002a28: 1a6a subs r2, r5, r1
  5844. 8002a2a: 0fd3 lsrs r3, r2, #31
  5845. 8002a2c: 189b adds r3, r3, r2
  5846. 8002a2e: 105b asrs r3, r3, #1
  5847. 8002a30: 185b adds r3, r3, r1
  5848. 8002a32: 011a lsls r2, r3, #4
  5849. 8002a34: 18ba adds r2, r7, r2
  5850. 8002a36: 6814 ldr r4, [r2, #0]
  5851. 8002a38: 7820 ldrb r0, [r4, #0]
  5852. 8002a3a: 42b0 cmp r0, r6
  5853. 8002a3c: d007 beq.n 8002a4e <d_operator_name+0x4a>
  5854. 8002a3e: d90a bls.n 8002a56 <d_operator_name+0x52>
  5855. 8002a40: 001d movs r5, r3
  5856. 8002a42: 42a9 cmp r1, r5
  5857. 8002a44: d1f0 bne.n 8002a28 <d_operator_name+0x24>
  5858. 8002a46: 2000 movs r0, #0
  5859. 8002a48: bc80 pop {r7}
  5860. 8002a4a: 46b8 mov r8, r7
  5861. 8002a4c: bdf0 pop {r4, r5, r6, r7, pc}
  5862. 8002a4e: 7860 ldrb r0, [r4, #1]
  5863. 8002a50: 4560 cmp r0, ip
  5864. 8002a52: d046 beq.n 8002ae2 <d_operator_name+0xde>
  5865. 8002a54: d8f4 bhi.n 8002a40 <d_operator_name+0x3c>
  5866. 8002a56: 1c59 adds r1, r3, #1
  5867. 8002a58: e7f3 b.n 8002a42 <d_operator_name+0x3e>
  5868. 8002a5a: 2300 movs r3, #0
  5869. 8002a5c: 469c mov ip, r3
  5870. 8002a5e: e7e0 b.n 8002a22 <d_operator_name+0x1e>
  5871. 8002a60: 1c9a adds r2, r3, #2
  5872. 8002a62: 60c2 str r2, [r0, #12]
  5873. 8002a64: 785b ldrb r3, [r3, #1]
  5874. 8002a66: 469c mov ip, r3
  5875. 8002a68: 2e76 cmp r6, #118 @ 0x76
  5876. 8002a6a: d122 bne.n 8002ab2 <d_operator_name+0xae>
  5877. 8002a6c: 001d movs r5, r3
  5878. 8002a6e: 3d30 subs r5, #48 @ 0x30
  5879. 8002a70: b2eb uxtb r3, r5
  5880. 8002a72: 2b09 cmp r3, #9
  5881. 8002a74: d8d5 bhi.n 8002a22 <d_operator_name+0x1e>
  5882. 8002a76: f7ff f9cf bl 8001e18 <d_source_name>
  5883. 8002a7a: 4643 mov r3, r8
  5884. 8002a7c: 4642 mov r2, r8
  5885. 8002a7e: 695b ldr r3, [r3, #20]
  5886. 8002a80: 6992 ldr r2, [r2, #24]
  5887. 8002a82: 0001 movs r1, r0
  5888. 8002a84: 4293 cmp r3, r2
  5889. 8002a86: dade bge.n 8002a46 <d_operator_name+0x42>
  5890. 8002a88: 4640 mov r0, r8
  5891. 8002a8a: 009a lsls r2, r3, #2
  5892. 8002a8c: 6900 ldr r0, [r0, #16]
  5893. 8002a8e: 18d2 adds r2, r2, r3
  5894. 8002a90: 0092 lsls r2, r2, #2
  5895. 8002a92: 1880 adds r0, r0, r2
  5896. 8002a94: 4644 mov r4, r8
  5897. 8002a96: 2200 movs r2, #0
  5898. 8002a98: 3301 adds r3, #1
  5899. 8002a9a: 6042 str r2, [r0, #4]
  5900. 8002a9c: 6082 str r2, [r0, #8]
  5901. 8002a9e: 6163 str r3, [r4, #20]
  5902. 8002aa0: 2900 cmp r1, #0
  5903. 8002aa2: d0d0 beq.n 8002a46 <d_operator_name+0x42>
  5904. 8002aa4: 2333 movs r3, #51 @ 0x33
  5905. 8002aa6: 6042 str r2, [r0, #4]
  5906. 8002aa8: 6082 str r2, [r0, #8]
  5907. 8002aaa: 7003 strb r3, [r0, #0]
  5908. 8002aac: 60c5 str r5, [r0, #12]
  5909. 8002aae: 6101 str r1, [r0, #16]
  5910. 8002ab0: e7ca b.n 8002a48 <d_operator_name+0x44>
  5911. 8002ab2: 2e63 cmp r6, #99 @ 0x63
  5912. 8002ab4: d1b5 bne.n 8002a22 <d_operator_name+0x1e>
  5913. 8002ab6: 2b76 cmp r3, #118 @ 0x76
  5914. 8002ab8: d1b3 bne.n 8002a22 <d_operator_name+0x1e>
  5915. 8002aba: 6b03 ldr r3, [r0, #48] @ 0x30
  5916. 8002abc: 6b45 ldr r5, [r0, #52] @ 0x34
  5917. 8002abe: 425a negs r2, r3
  5918. 8002ac0: 4153 adcs r3, r2
  5919. 8002ac2: 6343 str r3, [r0, #52] @ 0x34
  5920. 8002ac4: f7ff fb10 bl 80020e8 <d_type>
  5921. 8002ac8: 4643 mov r3, r8
  5922. 8002aca: 6b5b ldr r3, [r3, #52] @ 0x34
  5923. 8002acc: 0002 movs r2, r0
  5924. 8002ace: 2b00 cmp r3, #0
  5925. 8002ad0: d01d beq.n 8002b0e <d_operator_name+0x10a>
  5926. 8002ad2: 2300 movs r3, #0
  5927. 8002ad4: 2135 movs r1, #53 @ 0x35
  5928. 8002ad6: 4640 mov r0, r8
  5929. 8002ad8: f7fe fec4 bl 8001864 <d_make_comp>
  5930. 8002adc: 4643 mov r3, r8
  5931. 8002ade: 635d str r5, [r3, #52] @ 0x34
  5932. 8002ae0: e7b2 b.n 8002a48 <d_operator_name+0x44>
  5933. 8002ae2: 4643 mov r3, r8
  5934. 8002ae4: 4641 mov r1, r8
  5935. 8002ae6: 695b ldr r3, [r3, #20]
  5936. 8002ae8: 6989 ldr r1, [r1, #24]
  5937. 8002aea: 428b cmp r3, r1
  5938. 8002aec: daab bge.n 8002a46 <d_operator_name+0x42>
  5939. 8002aee: 4640 mov r0, r8
  5940. 8002af0: 0099 lsls r1, r3, #2
  5941. 8002af2: 6900 ldr r0, [r0, #16]
  5942. 8002af4: 18c9 adds r1, r1, r3
  5943. 8002af6: 0089 lsls r1, r1, #2
  5944. 8002af8: 1840 adds r0, r0, r1
  5945. 8002afa: 2100 movs r1, #0
  5946. 8002afc: 6041 str r1, [r0, #4]
  5947. 8002afe: 6081 str r1, [r0, #8]
  5948. 8002b00: 4641 mov r1, r8
  5949. 8002b02: 3301 adds r3, #1
  5950. 8002b04: 614b str r3, [r1, #20]
  5951. 8002b06: 2332 movs r3, #50 @ 0x32
  5952. 8002b08: 60c2 str r2, [r0, #12]
  5953. 8002b0a: 7003 strb r3, [r0, #0]
  5954. 8002b0c: e79c b.n 8002a48 <d_operator_name+0x44>
  5955. 8002b0e: 2300 movs r3, #0
  5956. 8002b10: 2134 movs r1, #52 @ 0x34
  5957. 8002b12: 4640 mov r0, r8
  5958. 8002b14: f7fe fea6 bl 8001864 <d_make_comp>
  5959. 8002b18: e7e0 b.n 8002adc <d_operator_name+0xd8>
  5960. 8002b1a: 46c0 nop @ (mov r8, r8)
  5961. 8002b1c: 080153ec .word 0x080153ec
  5962.  
  5963. 08002b20 <d_unqualified_name>:
  5964. 8002b20: b5f0 push {r4, r5, r6, r7, lr}
  5965. 8002b22: 46c6 mov lr, r8
  5966. 8002b24: b500 push {lr}
  5967. 8002b26: b084 sub sp, #16
  5968. 8002b28: 000e movs r6, r1
  5969. 8002b2a: a901 add r1, sp, #4
  5970. 8002b2c: 0004 movs r4, r0
  5971. 8002b2e: 9201 str r2, [sp, #4]
  5972. 8002b30: f7ff faaa bl 8002088 <d_maybe_module_name>
  5973. 8002b34: 2800 cmp r0, #0
  5974. 8002b36: d100 bne.n 8002b3a <d_unqualified_name+0x1a>
  5975. 8002b38: e0d8 b.n 8002cec <d_unqualified_name+0x1cc>
  5976. 8002b3a: 68e2 ldr r2, [r4, #12]
  5977. 8002b3c: 7813 ldrb r3, [r2, #0]
  5978. 8002b3e: 0019 movs r1, r3
  5979. 8002b40: 3930 subs r1, #48 @ 0x30
  5980. 8002b42: 2909 cmp r1, #9
  5981. 8002b44: d976 bls.n 8002c34 <d_unqualified_name+0x114>
  5982. 8002b46: 0019 movs r1, r3
  5983. 8002b48: 3961 subs r1, #97 @ 0x61
  5984. 8002b4a: 2919 cmp r1, #25
  5985. 8002b4c: d828 bhi.n 8002ba0 <d_unqualified_name+0x80>
  5986. 8002b4e: 6b27 ldr r7, [r4, #48] @ 0x30
  5987. 8002b50: 2b6f cmp r3, #111 @ 0x6f
  5988. 8002b52: d100 bne.n 8002b56 <d_unqualified_name+0x36>
  5989. 8002b54: e08d b.n 8002c72 <d_unqualified_name+0x152>
  5990. 8002b56: 0020 movs r0, r4
  5991. 8002b58: f7ff ff54 bl 8002a04 <d_operator_name>
  5992. 8002b5c: 6327 str r7, [r4, #48] @ 0x30
  5993. 8002b5e: 1e05 subs r5, r0, #0
  5994. 8002b60: d100 bne.n 8002b64 <d_unqualified_name+0x44>
  5995. 8002b62: e0a2 b.n 8002caa <d_unqualified_name+0x18a>
  5996. 8002b64: 7803 ldrb r3, [r0, #0]
  5997. 8002b66: 2b32 cmp r3, #50 @ 0x32
  5998. 8002b68: d168 bne.n 8002c3c <d_unqualified_name+0x11c>
  5999. 8002b6a: 68c2 ldr r2, [r0, #12]
  6000. 8002b6c: 6ae3 ldr r3, [r4, #44] @ 0x2c
  6001. 8002b6e: 6891 ldr r1, [r2, #8]
  6002. 8002b70: 3307 adds r3, #7
  6003. 8002b72: 185b adds r3, r3, r1
  6004. 8002b74: 62e3 str r3, [r4, #44] @ 0x2c
  6005. 8002b76: 6813 ldr r3, [r2, #0]
  6006. 8002b78: 781a ldrb r2, [r3, #0]
  6007. 8002b7a: 2a6c cmp r2, #108 @ 0x6c
  6008. 8002b7c: d15e bne.n 8002c3c <d_unqualified_name+0x11c>
  6009. 8002b7e: 785a ldrb r2, [r3, #1]
  6010. 8002b80: 2a69 cmp r2, #105 @ 0x69
  6011. 8002b82: d15b bne.n 8002c3c <d_unqualified_name+0x11c>
  6012. 8002b84: 789b ldrb r3, [r3, #2]
  6013. 8002b86: 2b00 cmp r3, #0
  6014. 8002b88: d158 bne.n 8002c3c <d_unqualified_name+0x11c>
  6015. 8002b8a: 0020 movs r0, r4
  6016. 8002b8c: f7ff f944 bl 8001e18 <d_source_name>
  6017. 8002b90: 002a movs r2, r5
  6018. 8002b92: 0003 movs r3, r0
  6019. 8002b94: 2137 movs r1, #55 @ 0x37
  6020. 8002b96: 0020 movs r0, r4
  6021. 8002b98: f7fe fe64 bl 8001864 <d_make_comp>
  6022. 8002b9c: 0005 movs r5, r0
  6023. 8002b9e: e04d b.n 8002c3c <d_unqualified_name+0x11c>
  6024. 8002ba0: 2b44 cmp r3, #68 @ 0x44
  6025. 8002ba2: d100 bne.n 8002ba6 <d_unqualified_name+0x86>
  6026. 8002ba4: e06e b.n 8002c84 <d_unqualified_name+0x164>
  6027. 8002ba6: 0019 movs r1, r3
  6028. 8002ba8: 3943 subs r1, #67 @ 0x43
  6029. 8002baa: 2901 cmp r1, #1
  6030. 8002bac: d800 bhi.n 8002bb0 <d_unqualified_name+0x90>
  6031. 8002bae: e0dc b.n 8002d6a <d_unqualified_name+0x24a>
  6032. 8002bb0: 2b4c cmp r3, #76 @ 0x4c
  6033. 8002bb2: d100 bne.n 8002bb6 <d_unqualified_name+0x96>
  6034. 8002bb4: e08e b.n 8002cd4 <d_unqualified_name+0x1b4>
  6035. 8002bb6: 2b55 cmp r3, #85 @ 0x55
  6036. 8002bb8: d000 beq.n 8002bbc <d_unqualified_name+0x9c>
  6037. 8002bba: e097 b.n 8002cec <d_unqualified_name+0x1cc>
  6038. 8002bbc: 7853 ldrb r3, [r2, #1]
  6039. 8002bbe: 2b6c cmp r3, #108 @ 0x6c
  6040. 8002bc0: d100 bne.n 8002bc4 <d_unqualified_name+0xa4>
  6041. 8002bc2: e0e5 b.n 8002d90 <d_unqualified_name+0x270>
  6042. 8002bc4: 2b74 cmp r3, #116 @ 0x74
  6043. 8002bc6: d000 beq.n 8002bca <d_unqualified_name+0xaa>
  6044. 8002bc8: e090 b.n 8002cec <d_unqualified_name+0x1cc>
  6045. 8002bca: 1c53 adds r3, r2, #1
  6046. 8002bcc: 60e3 str r3, [r4, #12]
  6047. 8002bce: 7853 ldrb r3, [r2, #1]
  6048. 8002bd0: 9d01 ldr r5, [sp, #4]
  6049. 8002bd2: 2b74 cmp r3, #116 @ 0x74
  6050. 8002bd4: d169 bne.n 8002caa <d_unqualified_name+0x18a>
  6051. 8002bd6: 1c93 adds r3, r2, #2
  6052. 8002bd8: 60e3 str r3, [r4, #12]
  6053. 8002bda: 7892 ldrb r2, [r2, #2]
  6054. 8002bdc: 2a5f cmp r2, #95 @ 0x5f
  6055. 8002bde: d100 bne.n 8002be2 <d_unqualified_name+0xc2>
  6056. 8002be0: e15b b.n 8002e9a <d_unqualified_name+0x37a>
  6057. 8002be2: 2a6e cmp r2, #110 @ 0x6e
  6058. 8002be4: d100 bne.n 8002be8 <d_unqualified_name+0xc8>
  6059. 8002be6: e15c b.n 8002ea2 <d_unqualified_name+0x382>
  6060. 8002be8: 0020 movs r0, r4
  6061. 8002bea: f7fe fea7 bl 800193c <d_number>
  6062. 8002bee: 3001 adds r0, #1
  6063. 8002bf0: d45b bmi.n 8002caa <d_unqualified_name+0x18a>
  6064. 8002bf2: 68e3 ldr r3, [r4, #12]
  6065. 8002bf4: 781a ldrb r2, [r3, #0]
  6066. 8002bf6: 2a5f cmp r2, #95 @ 0x5f
  6067. 8002bf8: d157 bne.n 8002caa <d_unqualified_name+0x18a>
  6068. 8002bfa: 3301 adds r3, #1
  6069. 8002bfc: 60e3 str r3, [r4, #12]
  6070. 8002bfe: 69a2 ldr r2, [r4, #24]
  6071. 8002c00: 6963 ldr r3, [r4, #20]
  6072. 8002c02: 4293 cmp r3, r2
  6073. 8002c04: da51 bge.n 8002caa <d_unqualified_name+0x18a>
  6074. 8002c06: 009a lsls r2, r3, #2
  6075. 8002c08: 6925 ldr r5, [r4, #16]
  6076. 8002c0a: 18d2 adds r2, r2, r3
  6077. 8002c0c: 0092 lsls r2, r2, #2
  6078. 8002c0e: 18ad adds r5, r5, r2
  6079. 8002c10: 2200 movs r2, #0
  6080. 8002c12: 3301 adds r3, #1
  6081. 8002c14: 606a str r2, [r5, #4]
  6082. 8002c16: 60aa str r2, [r5, #8]
  6083. 8002c18: 6163 str r3, [r4, #20]
  6084. 8002c1a: 2349 movs r3, #73 @ 0x49
  6085. 8002c1c: 702b strb r3, [r5, #0]
  6086. 8002c1e: 6a23 ldr r3, [r4, #32]
  6087. 8002c20: 6a62 ldr r2, [r4, #36] @ 0x24
  6088. 8002c22: 60e8 str r0, [r5, #12]
  6089. 8002c24: 4293 cmp r3, r2
  6090. 8002c26: da40 bge.n 8002caa <d_unqualified_name+0x18a>
  6091. 8002c28: 69e2 ldr r2, [r4, #28]
  6092. 8002c2a: 0099 lsls r1, r3, #2
  6093. 8002c2c: 3301 adds r3, #1
  6094. 8002c2e: 508d str r5, [r1, r2]
  6095. 8002c30: 6223 str r3, [r4, #32]
  6096. 8002c32: e003 b.n 8002c3c <d_unqualified_name+0x11c>
  6097. 8002c34: 0020 movs r0, r4
  6098. 8002c36: f7ff f8ef bl 8001e18 <d_source_name>
  6099. 8002c3a: 0005 movs r5, r0
  6100. 8002c3c: 9b01 ldr r3, [sp, #4]
  6101. 8002c3e: 2b00 cmp r3, #0
  6102. 8002c40: d005 beq.n 8002c4e <d_unqualified_name+0x12e>
  6103. 8002c42: 002a movs r2, r5
  6104. 8002c44: 2155 movs r1, #85 @ 0x55
  6105. 8002c46: 0020 movs r0, r4
  6106. 8002c48: f7fe fe0c bl 8001864 <d_make_comp>
  6107. 8002c4c: 0005 movs r5, r0
  6108. 8002c4e: 68e3 ldr r3, [r4, #12]
  6109. 8002c50: 781a ldrb r2, [r3, #0]
  6110. 8002c52: 2a42 cmp r2, #66 @ 0x42
  6111. 8002c54: d02b beq.n 8002cae <d_unqualified_name+0x18e>
  6112. 8002c56: 2e00 cmp r6, #0
  6113. 8002c58: d006 beq.n 8002c68 <d_unqualified_name+0x148>
  6114. 8002c5a: 002b movs r3, r5
  6115. 8002c5c: 0032 movs r2, r6
  6116. 8002c5e: 2101 movs r1, #1
  6117. 8002c60: 0020 movs r0, r4
  6118. 8002c62: f7fe fdff bl 8001864 <d_make_comp>
  6119. 8002c66: 0005 movs r5, r0
  6120. 8002c68: 0028 movs r0, r5
  6121. 8002c6a: b004 add sp, #16
  6122. 8002c6c: bc80 pop {r7}
  6123. 8002c6e: 46b8 mov r8, r7
  6124. 8002c70: bdf0 pop {r4, r5, r6, r7, pc}
  6125. 8002c72: 7853 ldrb r3, [r2, #1]
  6126. 8002c74: 2b6e cmp r3, #110 @ 0x6e
  6127. 8002c76: d000 beq.n 8002c7a <d_unqualified_name+0x15a>
  6128. 8002c78: e76d b.n 8002b56 <d_unqualified_name+0x36>
  6129. 8002c7a: 2300 movs r3, #0
  6130. 8002c7c: 3202 adds r2, #2
  6131. 8002c7e: 60e2 str r2, [r4, #12]
  6132. 8002c80: 6323 str r3, [r4, #48] @ 0x30
  6133. 8002c82: e768 b.n 8002b56 <d_unqualified_name+0x36>
  6134. 8002c84: 7853 ldrb r3, [r2, #1]
  6135. 8002c86: 2b43 cmp r3, #67 @ 0x43
  6136. 8002c88: d054 beq.n 8002d34 <d_unqualified_name+0x214>
  6137. 8002c8a: 6aa1 ldr r1, [r4, #40] @ 0x28
  6138. 8002c8c: 2900 cmp r1, #0
  6139. 8002c8e: d004 beq.n 8002c9a <d_unqualified_name+0x17a>
  6140. 8002c90: 7808 ldrb r0, [r1, #0]
  6141. 8002c92: 2800 cmp r0, #0
  6142. 8002c94: d071 beq.n 8002d7a <d_unqualified_name+0x25a>
  6143. 8002c96: 2818 cmp r0, #24
  6144. 8002c98: d06f beq.n 8002d7a <d_unqualified_name+0x25a>
  6145. 8002c9a: 3b30 subs r3, #48 @ 0x30
  6146. 8002c9c: b2db uxtb r3, r3
  6147. 8002c9e: 2b05 cmp r3, #5
  6148. 8002ca0: d803 bhi.n 8002caa <d_unqualified_name+0x18a>
  6149. 8002ca2: 4883 ldr r0, [pc, #524] @ (8002eb0 <d_unqualified_name+0x390>)
  6150. 8002ca4: 009b lsls r3, r3, #2
  6151. 8002ca6: 58c3 ldr r3, [r0, r3]
  6152. 8002ca8: 469f mov pc, r3
  6153. 8002caa: 2500 movs r5, #0
  6154. 8002cac: e7c6 b.n 8002c3c <d_unqualified_name+0x11c>
  6155. 8002cae: 6aa7 ldr r7, [r4, #40] @ 0x28
  6156. 8002cb0: 3301 adds r3, #1
  6157. 8002cb2: 60e3 str r3, [r4, #12]
  6158. 8002cb4: 0020 movs r0, r4
  6159. 8002cb6: f7ff f8af bl 8001e18 <d_source_name>
  6160. 8002cba: 002a movs r2, r5
  6161. 8002cbc: 0003 movs r3, r0
  6162. 8002cbe: 214d movs r1, #77 @ 0x4d
  6163. 8002cc0: 0020 movs r0, r4
  6164. 8002cc2: f7fe fdcf bl 8001864 <d_make_comp>
  6165. 8002cc6: 68e3 ldr r3, [r4, #12]
  6166. 8002cc8: 0005 movs r5, r0
  6167. 8002cca: 781a ldrb r2, [r3, #0]
  6168. 8002ccc: 2a42 cmp r2, #66 @ 0x42
  6169. 8002cce: d0ef beq.n 8002cb0 <d_unqualified_name+0x190>
  6170. 8002cd0: 62a7 str r7, [r4, #40] @ 0x28
  6171. 8002cd2: e7c0 b.n 8002c56 <d_unqualified_name+0x136>
  6172. 8002cd4: 3201 adds r2, #1
  6173. 8002cd6: 0020 movs r0, r4
  6174. 8002cd8: 60e2 str r2, [r4, #12]
  6175. 8002cda: f7ff f89d bl 8001e18 <d_source_name>
  6176. 8002cde: 1e05 subs r5, r0, #0
  6177. 8002ce0: d004 beq.n 8002cec <d_unqualified_name+0x1cc>
  6178. 8002ce2: 0020 movs r0, r4
  6179. 8002ce4: f7fe fe90 bl 8001a08 <d_discriminator>
  6180. 8002ce8: 2800 cmp r0, #0
  6181. 8002cea: d1a7 bne.n 8002c3c <d_unqualified_name+0x11c>
  6182. 8002cec: 2500 movs r5, #0
  6183. 8002cee: e7bb b.n 8002c68 <d_unqualified_name+0x148>
  6184. 8002cf0: 2002 movs r0, #2
  6185. 8002cf2: 3202 adds r2, #2
  6186. 8002cf4: 60e2 str r2, [r4, #12]
  6187. 8002cf6: 6963 ldr r3, [r4, #20]
  6188. 8002cf8: 69a2 ldr r2, [r4, #24]
  6189. 8002cfa: 4293 cmp r3, r2
  6190. 8002cfc: dad5 bge.n 8002caa <d_unqualified_name+0x18a>
  6191. 8002cfe: 009a lsls r2, r3, #2
  6192. 8002d00: 6925 ldr r5, [r4, #16]
  6193. 8002d02: 18d2 adds r2, r2, r3
  6194. 8002d04: 0092 lsls r2, r2, #2
  6195. 8002d06: 18ad adds r5, r5, r2
  6196. 8002d08: 2200 movs r2, #0
  6197. 8002d0a: 3301 adds r3, #1
  6198. 8002d0c: 606a str r2, [r5, #4]
  6199. 8002d0e: 60aa str r2, [r5, #8]
  6200. 8002d10: 6163 str r3, [r4, #20]
  6201. 8002d12: 2900 cmp r1, #0
  6202. 8002d14: d0c9 beq.n 8002caa <d_unqualified_name+0x18a>
  6203. 8002d16: 2308 movs r3, #8
  6204. 8002d18: 606a str r2, [r5, #4]
  6205. 8002d1a: 60aa str r2, [r5, #8]
  6206. 8002d1c: 702b strb r3, [r5, #0]
  6207. 8002d1e: 7328 strb r0, [r5, #12]
  6208. 8002d20: 6129 str r1, [r5, #16]
  6209. 8002d22: e78b b.n 8002c3c <d_unqualified_name+0x11c>
  6210. 8002d24: 2001 movs r0, #1
  6211. 8002d26: e7e4 b.n 8002cf2 <d_unqualified_name+0x1d2>
  6212. 8002d28: 2004 movs r0, #4
  6213. 8002d2a: e7e2 b.n 8002cf2 <d_unqualified_name+0x1d2>
  6214. 8002d2c: 2003 movs r0, #3
  6215. 8002d2e: e7e0 b.n 8002cf2 <d_unqualified_name+0x1d2>
  6216. 8002d30: 2005 movs r0, #5
  6217. 8002d32: e7de b.n 8002cf2 <d_unqualified_name+0x1d2>
  6218. 8002d34: 3202 adds r2, #2
  6219. 8002d36: 2700 movs r7, #0
  6220. 8002d38: 60e2 str r2, [r4, #12]
  6221. 8002d3a: e006 b.n 8002d4a <d_unqualified_name+0x22a>
  6222. 8002d3c: 6118 str r0, [r3, #16]
  6223. 8002d3e: 2f00 cmp r7, #0
  6224. 8002d40: d0b3 beq.n 8002caa <d_unqualified_name+0x18a>
  6225. 8002d42: 68e3 ldr r3, [r4, #12]
  6226. 8002d44: 781a ldrb r2, [r3, #0]
  6227. 8002d46: 2a45 cmp r2, #69 @ 0x45
  6228. 8002d48: d06e beq.n 8002e28 <d_unqualified_name+0x308>
  6229. 8002d4a: 0020 movs r0, r4
  6230. 8002d4c: f7ff f864 bl 8001e18 <d_source_name>
  6231. 8002d50: 46b8 mov r8, r7
  6232. 8002d52: 0002 movs r2, r0
  6233. 8002d54: 2300 movs r3, #0
  6234. 8002d56: 2152 movs r1, #82 @ 0x52
  6235. 8002d58: 0020 movs r0, r4
  6236. 8002d5a: f7fe fd83 bl 8001864 <d_make_comp>
  6237. 8002d5e: 4643 mov r3, r8
  6238. 8002d60: 0007 movs r7, r0
  6239. 8002d62: 2b00 cmp r3, #0
  6240. 8002d64: d1ea bne.n 8002d3c <d_unqualified_name+0x21c>
  6241. 8002d66: 0005 movs r5, r0
  6242. 8002d68: e7e9 b.n 8002d3e <d_unqualified_name+0x21e>
  6243. 8002d6a: 6aa1 ldr r1, [r4, #40] @ 0x28
  6244. 8002d6c: 2900 cmp r1, #0
  6245. 8002d6e: d05e beq.n 8002e2e <d_unqualified_name+0x30e>
  6246. 8002d70: 780b ldrb r3, [r1, #0]
  6247. 8002d72: 2b00 cmp r3, #0
  6248. 8002d74: d001 beq.n 8002d7a <d_unqualified_name+0x25a>
  6249. 8002d76: 2b18 cmp r3, #24
  6250. 8002d78: d159 bne.n 8002e2e <d_unqualified_name+0x30e>
  6251. 8002d7a: 6ae3 ldr r3, [r4, #44] @ 0x2c
  6252. 8002d7c: 6908 ldr r0, [r1, #16]
  6253. 8002d7e: 181b adds r3, r3, r0
  6254. 8002d80: 62e3 str r3, [r4, #44] @ 0x2c
  6255. 8002d82: 7813 ldrb r3, [r2, #0]
  6256. 8002d84: 2b43 cmp r3, #67 @ 0x43
  6257. 8002d86: d052 beq.n 8002e2e <d_unqualified_name+0x30e>
  6258. 8002d88: 2b44 cmp r3, #68 @ 0x44
  6259. 8002d8a: d18e bne.n 8002caa <d_unqualified_name+0x18a>
  6260. 8002d8c: 7853 ldrb r3, [r2, #1]
  6261. 8002d8e: e784 b.n 8002c9a <d_unqualified_name+0x17a>
  6262. 8002d90: 1c53 adds r3, r2, #1
  6263. 8002d92: 60e3 str r3, [r4, #12]
  6264. 8002d94: 7853 ldrb r3, [r2, #1]
  6265. 8002d96: 2b6c cmp r3, #108 @ 0x6c
  6266. 8002d98: d187 bne.n 8002caa <d_unqualified_name+0x18a>
  6267. 8002d9a: 2300 movs r3, #0
  6268. 8002d9c: 3202 adds r2, #2
  6269. 8002d9e: 0020 movs r0, r4
  6270. 8002da0: 60e2 str r2, [r4, #12]
  6271. 8002da2: a903 add r1, sp, #12
  6272. 8002da4: 9303 str r3, [sp, #12]
  6273. 8002da6: f7ff fe11 bl 80029cc <d_template_head>
  6274. 8002daa: 9b03 ldr r3, [sp, #12]
  6275. 8002dac: 0007 movs r7, r0
  6276. 8002dae: 4698 mov r8, r3
  6277. 8002db0: 2b00 cmp r3, #0
  6278. 8002db2: d000 beq.n 8002db6 <d_unqualified_name+0x296>
  6279. 8002db4: e779 b.n 8002caa <d_unqualified_name+0x18a>
  6280. 8002db6: 0020 movs r0, r4
  6281. 8002db8: f7ff fd1c bl 80027f4 <d_parmlist>
  6282. 8002dbc: 2800 cmp r0, #0
  6283. 8002dbe: d100 bne.n 8002dc2 <d_unqualified_name+0x2a2>
  6284. 8002dc0: e773 b.n 8002caa <d_unqualified_name+0x18a>
  6285. 8002dc2: 2f00 cmp r7, #0
  6286. 8002dc4: d06b beq.n 8002e9e <d_unqualified_name+0x37e>
  6287. 8002dc6: 6138 str r0, [r7, #16]
  6288. 8002dc8: 68e2 ldr r2, [r4, #12]
  6289. 8002dca: 7813 ldrb r3, [r2, #0]
  6290. 8002dcc: 2b45 cmp r3, #69 @ 0x45
  6291. 8002dce: d000 beq.n 8002dd2 <d_unqualified_name+0x2b2>
  6292. 8002dd0: e76b b.n 8002caa <d_unqualified_name+0x18a>
  6293. 8002dd2: 1c53 adds r3, r2, #1
  6294. 8002dd4: 60e3 str r3, [r4, #12]
  6295. 8002dd6: 7852 ldrb r2, [r2, #1]
  6296. 8002dd8: 2a5f cmp r2, #95 @ 0x5f
  6297. 8002dda: d00e beq.n 8002dfa <d_unqualified_name+0x2da>
  6298. 8002ddc: 2a6e cmp r2, #110 @ 0x6e
  6299. 8002dde: d100 bne.n 8002de2 <d_unqualified_name+0x2c2>
  6300. 8002de0: e763 b.n 8002caa <d_unqualified_name+0x18a>
  6301. 8002de2: 0020 movs r0, r4
  6302. 8002de4: f7fe fdaa bl 800193c <d_number>
  6303. 8002de8: 1c43 adds r3, r0, #1
  6304. 8002dea: d500 bpl.n 8002dee <d_unqualified_name+0x2ce>
  6305. 8002dec: e75d b.n 8002caa <d_unqualified_name+0x18a>
  6306. 8002dee: 4698 mov r8, r3
  6307. 8002df0: 68e3 ldr r3, [r4, #12]
  6308. 8002df2: 781a ldrb r2, [r3, #0]
  6309. 8002df4: 2a5f cmp r2, #95 @ 0x5f
  6310. 8002df6: d000 beq.n 8002dfa <d_unqualified_name+0x2da>
  6311. 8002df8: e757 b.n 8002caa <d_unqualified_name+0x18a>
  6312. 8002dfa: 3301 adds r3, #1
  6313. 8002dfc: 60e3 str r3, [r4, #12]
  6314. 8002dfe: 69a2 ldr r2, [r4, #24]
  6315. 8002e00: 6963 ldr r3, [r4, #20]
  6316. 8002e02: 4293 cmp r3, r2
  6317. 8002e04: db00 blt.n 8002e08 <d_unqualified_name+0x2e8>
  6318. 8002e06: e750 b.n 8002caa <d_unqualified_name+0x18a>
  6319. 8002e08: 009a lsls r2, r3, #2
  6320. 8002e0a: 6925 ldr r5, [r4, #16]
  6321. 8002e0c: 18d2 adds r2, r2, r3
  6322. 8002e0e: 0092 lsls r2, r2, #2
  6323. 8002e10: 18ad adds r5, r5, r2
  6324. 8002e12: 2200 movs r2, #0
  6325. 8002e14: 3301 adds r3, #1
  6326. 8002e16: 606a str r2, [r5, #4]
  6327. 8002e18: 60aa str r2, [r5, #8]
  6328. 8002e1a: 6163 str r3, [r4, #20]
  6329. 8002e1c: 2347 movs r3, #71 @ 0x47
  6330. 8002e1e: 702b strb r3, [r5, #0]
  6331. 8002e20: 4643 mov r3, r8
  6332. 8002e22: 60ef str r7, [r5, #12]
  6333. 8002e24: 612b str r3, [r5, #16]
  6334. 8002e26: e709 b.n 8002c3c <d_unqualified_name+0x11c>
  6335. 8002e28: 3301 adds r3, #1
  6336. 8002e2a: 60e3 str r3, [r4, #12]
  6337. 8002e2c: e706 b.n 8002c3c <d_unqualified_name+0x11c>
  6338. 8002e2e: 7853 ldrb r3, [r2, #1]
  6339. 8002e30: 2b49 cmp r3, #73 @ 0x49
  6340. 8002e32: d021 beq.n 8002e78 <d_unqualified_name+0x358>
  6341. 8002e34: 0018 movs r0, r3
  6342. 8002e36: 3831 subs r0, #49 @ 0x31
  6343. 8002e38: 2804 cmp r0, #4
  6344. 8002e3a: d900 bls.n 8002e3e <d_unqualified_name+0x31e>
  6345. 8002e3c: e735 b.n 8002caa <d_unqualified_name+0x18a>
  6346. 8002e3e: 3b30 subs r3, #48 @ 0x30
  6347. 8002e40: 3202 adds r2, #2
  6348. 8002e42: b2df uxtb r7, r3
  6349. 8002e44: 60e2 str r2, [r4, #12]
  6350. 8002e46: 6963 ldr r3, [r4, #20]
  6351. 8002e48: 69a2 ldr r2, [r4, #24]
  6352. 8002e4a: 4293 cmp r3, r2
  6353. 8002e4c: db00 blt.n 8002e50 <d_unqualified_name+0x330>
  6354. 8002e4e: e72c b.n 8002caa <d_unqualified_name+0x18a>
  6355. 8002e50: 009a lsls r2, r3, #2
  6356. 8002e52: 6925 ldr r5, [r4, #16]
  6357. 8002e54: 18d2 adds r2, r2, r3
  6358. 8002e56: 0092 lsls r2, r2, #2
  6359. 8002e58: 18ad adds r5, r5, r2
  6360. 8002e5a: 2200 movs r2, #0
  6361. 8002e5c: 3301 adds r3, #1
  6362. 8002e5e: 606a str r2, [r5, #4]
  6363. 8002e60: 60aa str r2, [r5, #8]
  6364. 8002e62: 6163 str r3, [r4, #20]
  6365. 8002e64: 2900 cmp r1, #0
  6366. 8002e66: d100 bne.n 8002e6a <d_unqualified_name+0x34a>
  6367. 8002e68: e71f b.n 8002caa <d_unqualified_name+0x18a>
  6368. 8002e6a: 2307 movs r3, #7
  6369. 8002e6c: 606a str r2, [r5, #4]
  6370. 8002e6e: 60aa str r2, [r5, #8]
  6371. 8002e70: 702b strb r3, [r5, #0]
  6372. 8002e72: 732f strb r7, [r5, #12]
  6373. 8002e74: 6129 str r1, [r5, #16]
  6374. 8002e76: e6e1 b.n 8002c3c <d_unqualified_name+0x11c>
  6375. 8002e78: 1c53 adds r3, r2, #1
  6376. 8002e7a: 60e3 str r3, [r4, #12]
  6377. 8002e7c: 7893 ldrb r3, [r2, #2]
  6378. 8002e7e: 0019 movs r1, r3
  6379. 8002e80: 3931 subs r1, #49 @ 0x31
  6380. 8002e82: 2904 cmp r1, #4
  6381. 8002e84: d900 bls.n 8002e88 <d_unqualified_name+0x368>
  6382. 8002e86: e710 b.n 8002caa <d_unqualified_name+0x18a>
  6383. 8002e88: 3203 adds r2, #3
  6384. 8002e8a: 3b30 subs r3, #48 @ 0x30
  6385. 8002e8c: 0020 movs r0, r4
  6386. 8002e8e: 60e2 str r2, [r4, #12]
  6387. 8002e90: b2df uxtb r7, r3
  6388. 8002e92: f7ff f929 bl 80020e8 <d_type>
  6389. 8002e96: 6aa1 ldr r1, [r4, #40] @ 0x28
  6390. 8002e98: e7d5 b.n 8002e46 <d_unqualified_name+0x326>
  6391. 8002e9a: 2000 movs r0, #0
  6392. 8002e9c: e6ad b.n 8002bfa <d_unqualified_name+0xda>
  6393. 8002e9e: 0007 movs r7, r0
  6394. 8002ea0: e792 b.n 8002dc8 <d_unqualified_name+0x2a8>
  6395. 8002ea2: 2d00 cmp r5, #0
  6396. 8002ea4: d100 bne.n 8002ea8 <d_unqualified_name+0x388>
  6397. 8002ea6: e6d6 b.n 8002c56 <d_unqualified_name+0x136>
  6398. 8002ea8: 002b movs r3, r5
  6399. 8002eaa: 2500 movs r5, #0
  6400. 8002eac: e6c9 b.n 8002c42 <d_unqualified_name+0x122>
  6401. 8002eae: 46c0 nop @ (mov r8, r8)
  6402. 8002eb0: 08014f10 .word 0x08014f10
  6403.  
  6404. 08002eb4 <d_expression_1>:
  6405. 8002eb4: b5f8 push {r3, r4, r5, r6, r7, lr}
  6406. 8002eb6: 68c2 ldr r2, [r0, #12]
  6407. 8002eb8: 0004 movs r4, r0
  6408. 8002eba: 7813 ldrb r3, [r2, #0]
  6409. 8002ebc: 2b4c cmp r3, #76 @ 0x4c
  6410. 8002ebe: d100 bne.n 8002ec2 <d_expression_1+0xe>
  6411. 8002ec0: e0e2 b.n 8003088 <d_expression_1+0x1d4>
  6412. 8002ec2: 2b54 cmp r3, #84 @ 0x54
  6413. 8002ec4: d100 bne.n 8002ec8 <d_expression_1+0x14>
  6414. 8002ec6: e0e3 b.n 8003090 <d_expression_1+0x1dc>
  6415. 8002ec8: 2b73 cmp r3, #115 @ 0x73
  6416. 8002eca: d025 beq.n 8002f18 <d_expression_1+0x64>
  6417. 8002ecc: 2b66 cmp r3, #102 @ 0x66
  6418. 8002ece: d064 beq.n 8002f9a <d_expression_1+0xe6>
  6419. 8002ed0: 0019 movs r1, r3
  6420. 8002ed2: 3930 subs r1, #48 @ 0x30
  6421. 8002ed4: 2909 cmp r1, #9
  6422. 8002ed6: d948 bls.n 8002f6a <d_expression_1+0xb6>
  6423. 8002ed8: 2b6f cmp r3, #111 @ 0x6f
  6424. 8002eda: d041 beq.n 8002f60 <d_expression_1+0xac>
  6425. 8002edc: 2b69 cmp r3, #105 @ 0x69
  6426. 8002ede: d000 beq.n 8002ee2 <d_expression_1+0x2e>
  6427. 8002ee0: e245 b.n 800336e <d_expression_1+0x4ba>
  6428. 8002ee2: 7853 ldrb r3, [r2, #1]
  6429. 8002ee4: 2b6c cmp r3, #108 @ 0x6c
  6430. 8002ee6: d11e bne.n 8002f26 <d_expression_1+0x72>
  6431. 8002ee8: 2500 movs r5, #0
  6432. 8002eea: 3202 adds r2, #2
  6433. 8002eec: 60c2 str r2, [r0, #12]
  6434. 8002eee: 7813 ldrb r3, [r2, #0]
  6435. 8002ef0: 2b00 cmp r3, #0
  6436. 8002ef2: d100 bne.n 8002ef6 <d_expression_1+0x42>
  6437. 8002ef4: e094 b.n 8003020 <d_expression_1+0x16c>
  6438. 8002ef6: 7853 ldrb r3, [r2, #1]
  6439. 8002ef8: 2b00 cmp r3, #0
  6440. 8002efa: d100 bne.n 8002efe <d_expression_1+0x4a>
  6441. 8002efc: e090 b.n 8003020 <d_expression_1+0x16c>
  6442. 8002efe: 2145 movs r1, #69 @ 0x45
  6443. 8002f00: 0020 movs r0, r4
  6444. 8002f02: f000 fa55 bl 80033b0 <d_exprlist>
  6445. 8002f06: 002a movs r2, r5
  6446. 8002f08: 0003 movs r3, r0
  6447. 8002f0a: 2131 movs r1, #49 @ 0x31
  6448. 8002f0c: 0020 movs r0, r4
  6449. 8002f0e: f7fe fca9 bl 8001864 <d_make_comp>
  6450. 8002f12: 0005 movs r5, r0
  6451. 8002f14: 0028 movs r0, r5
  6452. 8002f16: bdf8 pop {r3, r4, r5, r6, r7, pc}
  6453. 8002f18: 7853 ldrb r3, [r2, #1]
  6454. 8002f1a: 2b72 cmp r3, #114 @ 0x72
  6455. 8002f1c: d100 bne.n 8002f20 <d_expression_1+0x6c>
  6456. 8002f1e: e0fa b.n 8003116 <d_expression_1+0x262>
  6457. 8002f20: 2b70 cmp r3, #112 @ 0x70
  6458. 8002f22: d100 bne.n 8002f26 <d_expression_1+0x72>
  6459. 8002f24: e11f b.n 8003166 <d_expression_1+0x2b2>
  6460. 8002f26: 0020 movs r0, r4
  6461. 8002f28: f7ff fd6c bl 8002a04 <d_operator_name>
  6462. 8002f2c: 1e05 subs r5, r0, #0
  6463. 8002f2e: d077 beq.n 8003020 <d_expression_1+0x16c>
  6464. 8002f30: 7803 ldrb r3, [r0, #0]
  6465. 8002f32: 2b32 cmp r3, #50 @ 0x32
  6466. 8002f34: d05f beq.n 8002ff6 <d_expression_1+0x142>
  6467. 8002f36: 2b33 cmp r3, #51 @ 0x33
  6468. 8002f38: d100 bne.n 8002f3c <d_expression_1+0x88>
  6469. 8002f3a: e0ad b.n 8003098 <d_expression_1+0x1e4>
  6470. 8002f3c: 2b34 cmp r3, #52 @ 0x34
  6471. 8002f3e: d16f bne.n 8003020 <d_expression_1+0x16c>
  6472. 8002f40: 68e3 ldr r3, [r4, #12]
  6473. 8002f42: 781a ldrb r2, [r3, #0]
  6474. 8002f44: 2a5f cmp r2, #95 @ 0x5f
  6475. 8002f46: d100 bne.n 8002f4a <d_expression_1+0x96>
  6476. 8002f48: e1f5 b.n 8003336 <d_expression_1+0x482>
  6477. 8002f4a: 0020 movs r0, r4
  6478. 8002f4c: f7ff ffb2 bl 8002eb4 <d_expression_1>
  6479. 8002f50: 0003 movs r3, r0
  6480. 8002f52: 002a movs r2, r5
  6481. 8002f54: 2137 movs r1, #55 @ 0x37
  6482. 8002f56: 0020 movs r0, r4
  6483. 8002f58: f7fe fc84 bl 8001864 <d_make_comp>
  6484. 8002f5c: 0005 movs r5, r0
  6485. 8002f5e: e7d9 b.n 8002f14 <d_expression_1+0x60>
  6486. 8002f60: 7853 ldrb r3, [r2, #1]
  6487. 8002f62: 2b6e cmp r3, #110 @ 0x6e
  6488. 8002f64: d1df bne.n 8002f26 <d_expression_1+0x72>
  6489. 8002f66: 3202 adds r2, #2
  6490. 8002f68: 60c2 str r2, [r0, #12]
  6491. 8002f6a: 2200 movs r2, #0
  6492. 8002f6c: 2100 movs r1, #0
  6493. 8002f6e: 0020 movs r0, r4
  6494. 8002f70: f7ff fdd6 bl 8002b20 <d_unqualified_name>
  6495. 8002f74: 1e05 subs r5, r0, #0
  6496. 8002f76: d053 beq.n 8003020 <d_expression_1+0x16c>
  6497. 8002f78: 68e3 ldr r3, [r4, #12]
  6498. 8002f7a: 781a ldrb r2, [r3, #0]
  6499. 8002f7c: 2a49 cmp r2, #73 @ 0x49
  6500. 8002f7e: d1c9 bne.n 8002f14 <d_expression_1+0x60>
  6501. 8002f80: 3301 adds r3, #1
  6502. 8002f82: 60e3 str r3, [r4, #12]
  6503. 8002f84: 0020 movs r0, r4
  6504. 8002f86: f000 ffc3 bl 8003f10 <d_template_args_1>
  6505. 8002f8a: 002a movs r2, r5
  6506. 8002f8c: 0003 movs r3, r0
  6507. 8002f8e: 2104 movs r1, #4
  6508. 8002f90: 0020 movs r0, r4
  6509. 8002f92: f7fe fc67 bl 8001864 <d_make_comp>
  6510. 8002f96: 0005 movs r5, r0
  6511. 8002f98: e7bc b.n 8002f14 <d_expression_1+0x60>
  6512. 8002f9a: 7853 ldrb r3, [r2, #1]
  6513. 8002f9c: 2b70 cmp r3, #112 @ 0x70
  6514. 8002f9e: d1c2 bne.n 8002f26 <d_expression_1+0x72>
  6515. 8002fa0: 1c93 adds r3, r2, #2
  6516. 8002fa2: 60c3 str r3, [r0, #12]
  6517. 8002fa4: 7893 ldrb r3, [r2, #2]
  6518. 8002fa6: 2b54 cmp r3, #84 @ 0x54
  6519. 8002fa8: d100 bne.n 8002fac <d_expression_1+0xf8>
  6520. 8002faa: e0d3 b.n 8003154 <d_expression_1+0x2a0>
  6521. 8002fac: 2b5f cmp r3, #95 @ 0x5f
  6522. 8002fae: d100 bne.n 8002fb2 <d_expression_1+0xfe>
  6523. 8002fb0: e0a2 b.n 80030f8 <d_expression_1+0x244>
  6524. 8002fb2: 2b6e cmp r3, #110 @ 0x6e
  6525. 8002fb4: d034 beq.n 8003020 <d_expression_1+0x16c>
  6526. 8002fb6: f7fe fcc1 bl 800193c <d_number>
  6527. 8002fba: 1c41 adds r1, r0, #1
  6528. 8002fbc: d430 bmi.n 8003020 <d_expression_1+0x16c>
  6529. 8002fbe: 68e3 ldr r3, [r4, #12]
  6530. 8002fc0: 781a ldrb r2, [r3, #0]
  6531. 8002fc2: 2a5f cmp r2, #95 @ 0x5f
  6532. 8002fc4: d12c bne.n 8003020 <d_expression_1+0x16c>
  6533. 8002fc6: 3301 adds r3, #1
  6534. 8002fc8: 60e3 str r3, [r4, #12]
  6535. 8002fca: 4bc4 ldr r3, [pc, #784] @ (80032dc <d_expression_1+0x428>)
  6536. 8002fcc: 4299 cmp r1, r3
  6537. 8002fce: d027 beq.n 8003020 <d_expression_1+0x16c>
  6538. 8002fd0: 3002 adds r0, #2
  6539. 8002fd2: 6963 ldr r3, [r4, #20]
  6540. 8002fd4: 69a2 ldr r2, [r4, #24]
  6541. 8002fd6: 4293 cmp r3, r2
  6542. 8002fd8: da22 bge.n 8003020 <d_expression_1+0x16c>
  6543. 8002fda: 009a lsls r2, r3, #2
  6544. 8002fdc: 6925 ldr r5, [r4, #16]
  6545. 8002fde: 18d2 adds r2, r2, r3
  6546. 8002fe0: 0092 lsls r2, r2, #2
  6547. 8002fe2: 18ad adds r5, r5, r2
  6548. 8002fe4: 2200 movs r2, #0
  6549. 8002fe6: 3301 adds r3, #1
  6550. 8002fe8: 606a str r2, [r5, #4]
  6551. 8002fea: 60aa str r2, [r5, #8]
  6552. 8002fec: 6163 str r3, [r4, #20]
  6553. 8002fee: 2306 movs r3, #6
  6554. 8002ff0: 60e8 str r0, [r5, #12]
  6555. 8002ff2: 702b strb r3, [r5, #0]
  6556. 8002ff4: e78e b.n 8002f14 <d_expression_1+0x60>
  6557. 8002ff6: 68c1 ldr r1, [r0, #12]
  6558. 8002ff8: 6ae3 ldr r3, [r4, #44] @ 0x2c
  6559. 8002ffa: 688a ldr r2, [r1, #8]
  6560. 8002ffc: 680e ldr r6, [r1, #0]
  6561. 8002ffe: 3a02 subs r2, #2
  6562. 8003000: 189b adds r3, r3, r2
  6563. 8003002: 62e3 str r3, [r4, #44] @ 0x2c
  6564. 8003004: 7833 ldrb r3, [r6, #0]
  6565. 8003006: 2b73 cmp r3, #115 @ 0x73
  6566. 8003008: d10c bne.n 8003024 <d_expression_1+0x170>
  6567. 800300a: 7872 ldrb r2, [r6, #1]
  6568. 800300c: 2a74 cmp r2, #116 @ 0x74
  6569. 800300e: d109 bne.n 8003024 <d_expression_1+0x170>
  6570. 8003010: 78b2 ldrb r2, [r6, #2]
  6571. 8003012: 2a00 cmp r2, #0
  6572. 8003014: d106 bne.n 8003024 <d_expression_1+0x170>
  6573. 8003016: 0020 movs r0, r4
  6574. 8003018: f7ff f866 bl 80020e8 <d_type>
  6575. 800301c: 0003 movs r3, r0
  6576. 800301e: e798 b.n 8002f52 <d_expression_1+0x9e>
  6577. 8003020: 2500 movs r5, #0
  6578. 8003022: e777 b.n 8002f14 <d_expression_1+0x60>
  6579. 8003024: 68cf ldr r7, [r1, #12]
  6580. 8003026: 2f02 cmp r7, #2
  6581. 8003028: d100 bne.n 800302c <d_expression_1+0x178>
  6582. 800302a: e0a8 b.n 800317e <d_expression_1+0x2ca>
  6583. 800302c: dd44 ble.n 80030b8 <d_expression_1+0x204>
  6584. 800302e: 2f03 cmp r7, #3
  6585. 8003030: d1f6 bne.n 8003020 <d_expression_1+0x16c>
  6586. 8003032: 2b71 cmp r3, #113 @ 0x71
  6587. 8003034: d000 beq.n 8003038 <d_expression_1+0x184>
  6588. 8003036: e0d9 b.n 80031ec <d_expression_1+0x338>
  6589. 8003038: 7872 ldrb r2, [r6, #1]
  6590. 800303a: 2a75 cmp r2, #117 @ 0x75
  6591. 800303c: d000 beq.n 8003040 <d_expression_1+0x18c>
  6592. 800303e: e0d5 b.n 80031ec <d_expression_1+0x338>
  6593. 8003040: 78b2 ldrb r2, [r6, #2]
  6594. 8003042: 2a00 cmp r2, #0
  6595. 8003044: d000 beq.n 8003048 <d_expression_1+0x194>
  6596. 8003046: e0d1 b.n 80031ec <d_expression_1+0x338>
  6597. 8003048: 0020 movs r0, r4
  6598. 800304a: f7ff ff33 bl 8002eb4 <d_expression_1>
  6599. 800304e: 0006 movs r6, r0
  6600. 8003050: 0020 movs r0, r4
  6601. 8003052: f7ff ff2f bl 8002eb4 <d_expression_1>
  6602. 8003056: 0007 movs r7, r0
  6603. 8003058: 0020 movs r0, r4
  6604. 800305a: f7ff ff2b bl 8002eb4 <d_expression_1>
  6605. 800305e: 1e03 subs r3, r0, #0
  6606. 8003060: d0de beq.n 8003020 <d_expression_1+0x16c>
  6607. 8003062: 003a movs r2, r7
  6608. 8003064: 213c movs r1, #60 @ 0x3c
  6609. 8003066: 0020 movs r0, r4
  6610. 8003068: f7fe fbfc bl 8001864 <d_make_comp>
  6611. 800306c: 0032 movs r2, r6
  6612. 800306e: 0003 movs r3, r0
  6613. 8003070: 213b movs r1, #59 @ 0x3b
  6614. 8003072: 0020 movs r0, r4
  6615. 8003074: f7fe fbf6 bl 8001864 <d_make_comp>
  6616. 8003078: 002a movs r2, r5
  6617. 800307a: 0003 movs r3, r0
  6618. 800307c: 213a movs r1, #58 @ 0x3a
  6619. 800307e: 0020 movs r0, r4
  6620. 8003080: f7fe fbf0 bl 8001864 <d_make_comp>
  6621. 8003084: 0005 movs r5, r0
  6622. 8003086: e745 b.n 8002f14 <d_expression_1+0x60>
  6623. 8003088: f000 fe8c bl 8003da4 <d_expr_primary>
  6624. 800308c: 0005 movs r5, r0
  6625. 800308e: e741 b.n 8002f14 <d_expression_1+0x60>
  6626. 8003090: f7fe fe4e bl 8001d30 <d_template_param>
  6627. 8003094: 0005 movs r5, r0
  6628. 8003096: e73d b.n 8002f14 <d_expression_1+0x60>
  6629. 8003098: 68c3 ldr r3, [r0, #12]
  6630. 800309a: 2b01 cmp r3, #1
  6631. 800309c: d100 bne.n 80030a0 <d_expression_1+0x1ec>
  6632. 800309e: e754 b.n 8002f4a <d_expression_1+0x96>
  6633. 80030a0: 2b02 cmp r3, #2
  6634. 80030a2: d0bd beq.n 8003020 <d_expression_1+0x16c>
  6635. 80030a4: 2b00 cmp r3, #0
  6636. 80030a6: d1bb bne.n 8003020 <d_expression_1+0x16c>
  6637. 80030a8: 002a movs r2, r5
  6638. 80030aa: 2300 movs r3, #0
  6639. 80030ac: 2136 movs r1, #54 @ 0x36
  6640. 80030ae: 0020 movs r0, r4
  6641. 80030b0: f7fe fbd8 bl 8001864 <d_make_comp>
  6642. 80030b4: 0005 movs r5, r0
  6643. 80030b6: e72d b.n 8002f14 <d_expression_1+0x60>
  6644. 80030b8: 2f00 cmp r7, #0
  6645. 80030ba: d0f5 beq.n 80030a8 <d_expression_1+0x1f4>
  6646. 80030bc: 2f01 cmp r7, #1
  6647. 80030be: d1af bne.n 8003020 <d_expression_1+0x16c>
  6648. 80030c0: 7832 ldrb r2, [r6, #0]
  6649. 80030c2: 2a70 cmp r2, #112 @ 0x70
  6650. 80030c4: d01c beq.n 8003100 <d_expression_1+0x24c>
  6651. 80030c6: 2a6d cmp r2, #109 @ 0x6d
  6652. 80030c8: d01a beq.n 8003100 <d_expression_1+0x24c>
  6653. 80030ca: 2700 movs r7, #0
  6654. 80030cc: 2b73 cmp r3, #115 @ 0x73
  6655. 80030ce: d145 bne.n 800315c <d_expression_1+0x2a8>
  6656. 80030d0: 7873 ldrb r3, [r6, #1]
  6657. 80030d2: 2b50 cmp r3, #80 @ 0x50
  6658. 80030d4: d142 bne.n 800315c <d_expression_1+0x2a8>
  6659. 80030d6: 78b3 ldrb r3, [r6, #2]
  6660. 80030d8: 2b00 cmp r3, #0
  6661. 80030da: d13f bne.n 800315c <d_expression_1+0x2a8>
  6662. 80030dc: 0020 movs r0, r4
  6663. 80030de: f000 ff17 bl 8003f10 <d_template_args_1>
  6664. 80030e2: 0003 movs r3, r0
  6665. 80030e4: 2f00 cmp r7, #0
  6666. 80030e6: d100 bne.n 80030ea <d_expression_1+0x236>
  6667. 80030e8: e733 b.n 8002f52 <d_expression_1+0x9e>
  6668. 80030ea: 001a movs r2, r3
  6669. 80030ec: 2139 movs r1, #57 @ 0x39
  6670. 80030ee: 0020 movs r0, r4
  6671. 80030f0: f7fe fbb8 bl 8001864 <d_make_comp>
  6672. 80030f4: 0003 movs r3, r0
  6673. 80030f6: e72c b.n 8002f52 <d_expression_1+0x9e>
  6674. 80030f8: 3203 adds r2, #3
  6675. 80030fa: 60c2 str r2, [r0, #12]
  6676. 80030fc: 2001 movs r0, #1
  6677. 80030fe: e768 b.n 8002fd2 <d_expression_1+0x11e>
  6678. 8003100: 7871 ldrb r1, [r6, #1]
  6679. 8003102: 4291 cmp r1, r2
  6680. 8003104: d1e1 bne.n 80030ca <d_expression_1+0x216>
  6681. 8003106: 68e2 ldr r2, [r4, #12]
  6682. 8003108: 7811 ldrb r1, [r2, #0]
  6683. 800310a: 295f cmp r1, #95 @ 0x5f
  6684. 800310c: d1de bne.n 80030cc <d_expression_1+0x218>
  6685. 800310e: 3201 adds r2, #1
  6686. 8003110: 60e2 str r2, [r4, #12]
  6687. 8003112: 7833 ldrb r3, [r6, #0]
  6688. 8003114: e7d9 b.n 80030ca <d_expression_1+0x216>
  6689. 8003116: 1c93 adds r3, r2, #2
  6690. 8003118: 60c3 str r3, [r0, #12]
  6691. 800311a: 7893 ldrb r3, [r2, #2]
  6692. 800311c: 6b82 ldr r2, [r0, #56] @ 0x38
  6693. 800311e: 2a00 cmp r2, #0
  6694. 8003120: d009 beq.n 8003136 <d_expression_1+0x282>
  6695. 8003122: 2b55 cmp r3, #85 @ 0x55
  6696. 8003124: d900 bls.n 8003128 <d_expression_1+0x274>
  6697. 8003126: e0d3 b.n 80032d0 <d_expression_1+0x41c>
  6698. 8003128: 2b42 cmp r3, #66 @ 0x42
  6699. 800312a: d900 bls.n 800312e <d_expression_1+0x27a>
  6700. 800312c: e0b9 b.n 80032a2 <d_expression_1+0x3ee>
  6701. 800312e: 3b30 subs r3, #48 @ 0x30
  6702. 8003130: 2b09 cmp r3, #9
  6703. 8003132: d800 bhi.n 8003136 <d_expression_1+0x282>
  6704. 8003134: e0bc b.n 80032b0 <d_expression_1+0x3fc>
  6705. 8003136: 0020 movs r0, r4
  6706. 8003138: f7fe ffd6 bl 80020e8 <d_type>
  6707. 800313c: 0001 movs r1, r0
  6708. 800313e: 2200 movs r2, #0
  6709. 8003140: 0020 movs r0, r4
  6710. 8003142: f7ff fced bl 8002b20 <d_unqualified_name>
  6711. 8003146: 68e3 ldr r3, [r4, #12]
  6712. 8003148: 0005 movs r5, r0
  6713. 800314a: 781a ldrb r2, [r3, #0]
  6714. 800314c: 2a49 cmp r2, #73 @ 0x49
  6715. 800314e: d000 beq.n 8003152 <d_expression_1+0x29e>
  6716. 8003150: e6e0 b.n 8002f14 <d_expression_1+0x60>
  6717. 8003152: e715 b.n 8002f80 <d_expression_1+0xcc>
  6718. 8003154: 3203 adds r2, #3
  6719. 8003156: 60c2 str r2, [r0, #12]
  6720. 8003158: 2000 movs r0, #0
  6721. 800315a: e73a b.n 8002fd2 <d_expression_1+0x11e>
  6722. 800315c: 0020 movs r0, r4
  6723. 800315e: f7ff fea9 bl 8002eb4 <d_expression_1>
  6724. 8003162: 0003 movs r3, r0
  6725. 8003164: e7be b.n 80030e4 <d_expression_1+0x230>
  6726. 8003166: 3202 adds r2, #2
  6727. 8003168: 60c2 str r2, [r0, #12]
  6728. 800316a: f7ff fea3 bl 8002eb4 <d_expression_1>
  6729. 800316e: 2300 movs r3, #0
  6730. 8003170: 0002 movs r2, r0
  6731. 8003172: 214c movs r1, #76 @ 0x4c
  6732. 8003174: 0020 movs r0, r4
  6733. 8003176: f7fe fb75 bl 8001864 <d_make_comp>
  6734. 800317a: 0005 movs r5, r0
  6735. 800317c: e6ca b.n 8002f14 <d_expression_1+0x60>
  6736. 800317e: 68eb ldr r3, [r5, #12]
  6737. 8003180: 681b ldr r3, [r3, #0]
  6738. 8003182: 785a ldrb r2, [r3, #1]
  6739. 8003184: 2a63 cmp r2, #99 @ 0x63
  6740. 8003186: d100 bne.n 800318a <d_expression_1+0x2d6>
  6741. 8003188: e0ac b.n 80032e4 <d_expression_1+0x430>
  6742. 800318a: 7833 ldrb r3, [r6, #0]
  6743. 800318c: 2b66 cmp r3, #102 @ 0x66
  6744. 800318e: d100 bne.n 8003192 <d_expression_1+0x2de>
  6745. 8003190: e0cc b.n 800332c <d_expression_1+0x478>
  6746. 8003192: 2b64 cmp r3, #100 @ 0x64
  6747. 8003194: d000 beq.n 8003198 <d_expression_1+0x2e4>
  6748. 8003196: e0c0 b.n 800331a <d_expression_1+0x466>
  6749. 8003198: 7873 ldrb r3, [r6, #1]
  6750. 800319a: 2b69 cmp r3, #105 @ 0x69
  6751. 800319c: d000 beq.n 80031a0 <d_expression_1+0x2ec>
  6752. 800319e: e0bc b.n 800331a <d_expression_1+0x466>
  6753. 80031a0: 78b3 ldrb r3, [r6, #2]
  6754. 80031a2: 2b00 cmp r3, #0
  6755. 80031a4: d000 beq.n 80031a8 <d_expression_1+0x2f4>
  6756. 80031a6: e0b8 b.n 800331a <d_expression_1+0x466>
  6757. 80031a8: 2200 movs r2, #0
  6758. 80031aa: 2100 movs r1, #0
  6759. 80031ac: 0020 movs r0, r4
  6760. 80031ae: f7ff fcb7 bl 8002b20 <d_unqualified_name>
  6761. 80031b2: 0007 movs r7, r0
  6762. 80031b4: 7833 ldrb r3, [r6, #0]
  6763. 80031b6: 2b63 cmp r3, #99 @ 0x63
  6764. 80031b8: d14b bne.n 8003252 <d_expression_1+0x39e>
  6765. 80031ba: 7872 ldrb r2, [r6, #1]
  6766. 80031bc: 2a6c cmp r2, #108 @ 0x6c
  6767. 80031be: d148 bne.n 8003252 <d_expression_1+0x39e>
  6768. 80031c0: 78b2 ldrb r2, [r6, #2]
  6769. 80031c2: 2a00 cmp r2, #0
  6770. 80031c4: d145 bne.n 8003252 <d_expression_1+0x39e>
  6771. 80031c6: 2145 movs r1, #69 @ 0x45
  6772. 80031c8: 0020 movs r0, r4
  6773. 80031ca: f000 f8f1 bl 80033b0 <d_exprlist>
  6774. 80031ce: 0006 movs r6, r0
  6775. 80031d0: 0033 movs r3, r6
  6776. 80031d2: 003a movs r2, r7
  6777. 80031d4: 2139 movs r1, #57 @ 0x39
  6778. 80031d6: 0020 movs r0, r4
  6779. 80031d8: f7fe fb44 bl 8001864 <d_make_comp>
  6780. 80031dc: 002a movs r2, r5
  6781. 80031de: 0003 movs r3, r0
  6782. 80031e0: 2138 movs r1, #56 @ 0x38
  6783. 80031e2: 0020 movs r0, r4
  6784. 80031e4: f7fe fb3e bl 8001864 <d_make_comp>
  6785. 80031e8: 0005 movs r5, r0
  6786. 80031ea: e693 b.n 8002f14 <d_expression_1+0x60>
  6787. 80031ec: 2b64 cmp r3, #100 @ 0x64
  6788. 80031ee: d106 bne.n 80031fe <d_expression_1+0x34a>
  6789. 80031f0: 7873 ldrb r3, [r6, #1]
  6790. 80031f2: 2b58 cmp r3, #88 @ 0x58
  6791. 80031f4: d103 bne.n 80031fe <d_expression_1+0x34a>
  6792. 80031f6: 78b3 ldrb r3, [r6, #2]
  6793. 80031f8: 2b00 cmp r3, #0
  6794. 80031fa: d100 bne.n 80031fe <d_expression_1+0x34a>
  6795. 80031fc: e724 b.n 8003048 <d_expression_1+0x194>
  6796. 80031fe: 7833 ldrb r3, [r6, #0]
  6797. 8003200: 2b66 cmp r3, #102 @ 0x66
  6798. 8003202: d100 bne.n 8003206 <d_expression_1+0x352>
  6799. 8003204: e09f b.n 8003346 <d_expression_1+0x492>
  6800. 8003206: 2b6e cmp r3, #110 @ 0x6e
  6801. 8003208: d000 beq.n 800320c <d_expression_1+0x358>
  6802. 800320a: e709 b.n 8003020 <d_expression_1+0x16c>
  6803. 800320c: 7873 ldrb r3, [r6, #1]
  6804. 800320e: 2b77 cmp r3, #119 @ 0x77
  6805. 8003210: d002 beq.n 8003218 <d_expression_1+0x364>
  6806. 8003212: 2b61 cmp r3, #97 @ 0x61
  6807. 8003214: d000 beq.n 8003218 <d_expression_1+0x364>
  6808. 8003216: e703 b.n 8003020 <d_expression_1+0x16c>
  6809. 8003218: 215f movs r1, #95 @ 0x5f
  6810. 800321a: 0020 movs r0, r4
  6811. 800321c: f000 f8c8 bl 80033b0 <d_exprlist>
  6812. 8003220: 0006 movs r6, r0
  6813. 8003222: 0020 movs r0, r4
  6814. 8003224: f7fe ff60 bl 80020e8 <d_type>
  6815. 8003228: 68e3 ldr r3, [r4, #12]
  6816. 800322a: 0007 movs r7, r0
  6817. 800322c: 781a ldrb r2, [r3, #0]
  6818. 800322e: 2a45 cmp r2, #69 @ 0x45
  6819. 8003230: d100 bne.n 8003234 <d_expression_1+0x380>
  6820. 8003232: e098 b.n 8003366 <d_expression_1+0x4b2>
  6821. 8003234: 2a70 cmp r2, #112 @ 0x70
  6822. 8003236: d100 bne.n 800323a <d_expression_1+0x386>
  6823. 8003238: e089 b.n 800334e <d_expression_1+0x49a>
  6824. 800323a: 2a69 cmp r2, #105 @ 0x69
  6825. 800323c: d000 beq.n 8003240 <d_expression_1+0x38c>
  6826. 800323e: e6ef b.n 8003020 <d_expression_1+0x16c>
  6827. 8003240: 785b ldrb r3, [r3, #1]
  6828. 8003242: 2b6c cmp r3, #108 @ 0x6c
  6829. 8003244: d000 beq.n 8003248 <d_expression_1+0x394>
  6830. 8003246: e6eb b.n 8003020 <d_expression_1+0x16c>
  6831. 8003248: 0020 movs r0, r4
  6832. 800324a: f7ff fe33 bl 8002eb4 <d_expression_1>
  6833. 800324e: 0003 movs r3, r0
  6834. 8003250: e707 b.n 8003062 <d_expression_1+0x1ae>
  6835. 8003252: 2b64 cmp r3, #100 @ 0x64
  6836. 8003254: d154 bne.n 8003300 <d_expression_1+0x44c>
  6837. 8003256: 7872 ldrb r2, [r6, #1]
  6838. 8003258: 2a74 cmp r2, #116 @ 0x74
  6839. 800325a: d151 bne.n 8003300 <d_expression_1+0x44c>
  6840. 800325c: 78b2 ldrb r2, [r6, #2]
  6841. 800325e: 2a00 cmp r2, #0
  6842. 8003260: d14e bne.n 8003300 <d_expression_1+0x44c>
  6843. 8003262: 68e3 ldr r3, [r4, #12]
  6844. 8003264: 781a ldrb r2, [r3, #0]
  6845. 8003266: 2a67 cmp r2, #103 @ 0x67
  6846. 8003268: d05c beq.n 8003324 <d_expression_1+0x470>
  6847. 800326a: 2a73 cmp r2, #115 @ 0x73
  6848. 800326c: d102 bne.n 8003274 <d_expression_1+0x3c0>
  6849. 800326e: 785b ldrb r3, [r3, #1]
  6850. 8003270: 2b72 cmp r3, #114 @ 0x72
  6851. 8003272: d04d beq.n 8003310 <d_expression_1+0x45c>
  6852. 8003274: 2200 movs r2, #0
  6853. 8003276: 2100 movs r1, #0
  6854. 8003278: 0020 movs r0, r4
  6855. 800327a: f7ff fc51 bl 8002b20 <d_unqualified_name>
  6856. 800327e: 68e3 ldr r3, [r4, #12]
  6857. 8003280: 0006 movs r6, r0
  6858. 8003282: 781a ldrb r2, [r3, #0]
  6859. 8003284: 2a49 cmp r2, #73 @ 0x49
  6860. 8003286: d1a3 bne.n 80031d0 <d_expression_1+0x31c>
  6861. 8003288: 3301 adds r3, #1
  6862. 800328a: 60e3 str r3, [r4, #12]
  6863. 800328c: 0020 movs r0, r4
  6864. 800328e: f000 fe3f bl 8003f10 <d_template_args_1>
  6865. 8003292: 0032 movs r2, r6
  6866. 8003294: 0003 movs r3, r0
  6867. 8003296: 2104 movs r1, #4
  6868. 8003298: 0020 movs r0, r4
  6869. 800329a: f7fe fae3 bl 8001864 <d_make_comp>
  6870. 800329e: 0006 movs r6, r0
  6871. 80032a0: e796 b.n 80031d0 <d_expression_1+0x31c>
  6872. 80032a2: 4a0f ldr r2, [pc, #60] @ (80032e0 <d_expression_1+0x42c>)
  6873. 80032a4: 3b43 subs r3, #67 @ 0x43
  6874. 80032a6: b2db uxtb r3, r3
  6875. 80032a8: 40da lsrs r2, r3
  6876. 80032aa: 07d2 lsls r2, r2, #31
  6877. 80032ac: d400 bmi.n 80032b0 <d_expression_1+0x3fc>
  6878. 80032ae: e742 b.n 8003136 <d_expression_1+0x282>
  6879. 80032b0: 2301 movs r3, #1
  6880. 80032b2: 425b negs r3, r3
  6881. 80032b4: 2100 movs r1, #0
  6882. 80032b6: 63a3 str r3, [r4, #56] @ 0x38
  6883. 80032b8: 0020 movs r0, r4
  6884. 80032ba: f000 fe59 bl 8003f70 <d_prefix>
  6885. 80032be: 68e3 ldr r3, [r4, #12]
  6886. 80032c0: 0001 movs r1, r0
  6887. 80032c2: 781a ldrb r2, [r3, #0]
  6888. 80032c4: 2a45 cmp r2, #69 @ 0x45
  6889. 80032c6: d000 beq.n 80032ca <d_expression_1+0x416>
  6890. 80032c8: e739 b.n 800313e <d_expression_1+0x28a>
  6891. 80032ca: 3301 adds r3, #1
  6892. 80032cc: 60e3 str r3, [r4, #12]
  6893. 80032ce: e736 b.n 800313e <d_expression_1+0x28a>
  6894. 80032d0: 3b61 subs r3, #97 @ 0x61
  6895. 80032d2: 2b19 cmp r3, #25
  6896. 80032d4: d900 bls.n 80032d8 <d_expression_1+0x424>
  6897. 80032d6: e72e b.n 8003136 <d_expression_1+0x282>
  6898. 80032d8: e7ea b.n 80032b0 <d_expression_1+0x3fc>
  6899. 80032da: 46c0 nop @ (mov r8, r8)
  6900. 80032dc: 7fffffff .word 0x7fffffff
  6901. 80032e0: 00040201 .word 0x00040201
  6902. 80032e4: 781b ldrb r3, [r3, #0]
  6903. 80032e6: 001a movs r2, r3
  6904. 80032e8: 3a72 subs r2, #114 @ 0x72
  6905. 80032ea: 2a01 cmp r2, #1
  6906. 80032ec: d903 bls.n 80032f6 <d_expression_1+0x442>
  6907. 80032ee: 3b63 subs r3, #99 @ 0x63
  6908. 80032f0: 2b01 cmp r3, #1
  6909. 80032f2: d900 bls.n 80032f6 <d_expression_1+0x442>
  6910. 80032f4: e749 b.n 800318a <d_expression_1+0x2d6>
  6911. 80032f6: 0020 movs r0, r4
  6912. 80032f8: f7fe fef6 bl 80020e8 <d_type>
  6913. 80032fc: 0007 movs r7, r0
  6914. 80032fe: e759 b.n 80031b4 <d_expression_1+0x300>
  6915. 8003300: 2b70 cmp r3, #112 @ 0x70
  6916. 8003302: d105 bne.n 8003310 <d_expression_1+0x45c>
  6917. 8003304: 7873 ldrb r3, [r6, #1]
  6918. 8003306: 2b74 cmp r3, #116 @ 0x74
  6919. 8003308: d102 bne.n 8003310 <d_expression_1+0x45c>
  6920. 800330a: 78b3 ldrb r3, [r6, #2]
  6921. 800330c: 2b00 cmp r3, #0
  6922. 800330e: d0a8 beq.n 8003262 <d_expression_1+0x3ae>
  6923. 8003310: 0020 movs r0, r4
  6924. 8003312: f7ff fdcf bl 8002eb4 <d_expression_1>
  6925. 8003316: 0006 movs r6, r0
  6926. 8003318: e75a b.n 80031d0 <d_expression_1+0x31c>
  6927. 800331a: 0020 movs r0, r4
  6928. 800331c: f7ff fdca bl 8002eb4 <d_expression_1>
  6929. 8003320: 0007 movs r7, r0
  6930. 8003322: e747 b.n 80031b4 <d_expression_1+0x300>
  6931. 8003324: 785b ldrb r3, [r3, #1]
  6932. 8003326: 2b73 cmp r3, #115 @ 0x73
  6933. 8003328: d1a4 bne.n 8003274 <d_expression_1+0x3c0>
  6934. 800332a: e7f1 b.n 8003310 <d_expression_1+0x45c>
  6935. 800332c: 0020 movs r0, r4
  6936. 800332e: f7ff fb69 bl 8002a04 <d_operator_name>
  6937. 8003332: 0007 movs r7, r0
  6938. 8003334: e73e b.n 80031b4 <d_expression_1+0x300>
  6939. 8003336: 3301 adds r3, #1
  6940. 8003338: 60e3 str r3, [r4, #12]
  6941. 800333a: 2145 movs r1, #69 @ 0x45
  6942. 800333c: 0020 movs r0, r4
  6943. 800333e: f000 f837 bl 80033b0 <d_exprlist>
  6944. 8003342: 0003 movs r3, r0
  6945. 8003344: e605 b.n 8002f52 <d_expression_1+0x9e>
  6946. 8003346: 0020 movs r0, r4
  6947. 8003348: f7ff fb5c bl 8002a04 <d_operator_name>
  6948. 800334c: e67f b.n 800304e <d_expression_1+0x19a>
  6949. 800334e: 785a ldrb r2, [r3, #1]
  6950. 8003350: 2a69 cmp r2, #105 @ 0x69
  6951. 8003352: d000 beq.n 8003356 <d_expression_1+0x4a2>
  6952. 8003354: e664 b.n 8003020 <d_expression_1+0x16c>
  6953. 8003356: 3302 adds r3, #2
  6954. 8003358: 60e3 str r3, [r4, #12]
  6955. 800335a: 2145 movs r1, #69 @ 0x45
  6956. 800335c: 0020 movs r0, r4
  6957. 800335e: f000 f827 bl 80033b0 <d_exprlist>
  6958. 8003362: 0003 movs r3, r0
  6959. 8003364: e67d b.n 8003062 <d_expression_1+0x1ae>
  6960. 8003366: 3301 adds r3, #1
  6961. 8003368: 60e3 str r3, [r4, #12]
  6962. 800336a: 2300 movs r3, #0
  6963. 800336c: e679 b.n 8003062 <d_expression_1+0x1ae>
  6964. 800336e: 2b74 cmp r3, #116 @ 0x74
  6965. 8003370: d012 beq.n 8003398 <d_expression_1+0x4e4>
  6966. 8003372: 2b75 cmp r3, #117 @ 0x75
  6967. 8003374: d000 beq.n 8003378 <d_expression_1+0x4c4>
  6968. 8003376: e5d6 b.n 8002f26 <d_expression_1+0x72>
  6969. 8003378: 3201 adds r2, #1
  6970. 800337a: 60c2 str r2, [r0, #12]
  6971. 800337c: f7fe fd4c bl 8001e18 <d_source_name>
  6972. 8003380: 0005 movs r5, r0
  6973. 8003382: 0020 movs r0, r4
  6974. 8003384: f000 fdc4 bl 8003f10 <d_template_args_1>
  6975. 8003388: 002a movs r2, r5
  6976. 800338a: 0003 movs r3, r0
  6977. 800338c: 213f movs r1, #63 @ 0x3f
  6978. 800338e: 0020 movs r0, r4
  6979. 8003390: f7fe fa68 bl 8001864 <d_make_comp>
  6980. 8003394: 0005 movs r5, r0
  6981. 8003396: e5bd b.n 8002f14 <d_expression_1+0x60>
  6982. 8003398: 7853 ldrb r3, [r2, #1]
  6983. 800339a: 2b6c cmp r3, #108 @ 0x6c
  6984. 800339c: d000 beq.n 80033a0 <d_expression_1+0x4ec>
  6985. 800339e: e5c2 b.n 8002f26 <d_expression_1+0x72>
  6986. 80033a0: 3202 adds r2, #2
  6987. 80033a2: 60c2 str r2, [r0, #12]
  6988. 80033a4: f7fe fea0 bl 80020e8 <d_type>
  6989. 80033a8: 68e2 ldr r2, [r4, #12]
  6990. 80033aa: 0005 movs r5, r0
  6991. 80033ac: e59f b.n 8002eee <d_expression_1+0x3a>
  6992. 80033ae: 46c0 nop @ (mov r8, r8)
  6993.  
  6994. 080033b0 <d_exprlist>:
  6995. 80033b0: b5f0 push {r4, r5, r6, r7, lr}
  6996. 80033b2: 46c6 mov lr, r8
  6997. 80033b4: 2300 movs r3, #0
  6998. 80033b6: b500 push {lr}
  6999. 80033b8: b082 sub sp, #8
  7000. 80033ba: 9301 str r3, [sp, #4]
  7001. 80033bc: 68c3 ldr r3, [r0, #12]
  7002. 80033be: 0004 movs r4, r0
  7003. 80033c0: 781a ldrb r2, [r3, #0]
  7004. 80033c2: 000e movs r6, r1
  7005. 80033c4: 428a cmp r2, r1
  7006. 80033c6: d023 beq.n 8003410 <d_exprlist+0x60>
  7007. 80033c8: 6b03 ldr r3, [r0, #48] @ 0x30
  7008. 80033ca: 2701 movs r7, #1
  7009. 80033cc: 4698 mov r8, r3
  7010. 80033ce: ad01 add r5, sp, #4
  7011. 80033d0: e00d b.n 80033ee <d_exprlist+0x3e>
  7012. 80033d2: 2300 movs r3, #0
  7013. 80033d4: 212e movs r1, #46 @ 0x2e
  7014. 80033d6: 0020 movs r0, r4
  7015. 80033d8: f7fe fa44 bl 8001864 <d_make_comp>
  7016. 80033dc: 6028 str r0, [r5, #0]
  7017. 80033de: 2800 cmp r0, #0
  7018. 80033e0: d00d beq.n 80033fe <d_exprlist+0x4e>
  7019. 80033e2: 68e3 ldr r3, [r4, #12]
  7020. 80033e4: 3010 adds r0, #16
  7021. 80033e6: 781a ldrb r2, [r3, #0]
  7022. 80033e8: 0005 movs r5, r0
  7023. 80033ea: 42b2 cmp r2, r6
  7024. 80033ec: d00c beq.n 8003408 <d_exprlist+0x58>
  7025. 80033ee: 0020 movs r0, r4
  7026. 80033f0: 6327 str r7, [r4, #48] @ 0x30
  7027. 80033f2: f7ff fd5f bl 8002eb4 <d_expression_1>
  7028. 80033f6: 4643 mov r3, r8
  7029. 80033f8: 1e02 subs r2, r0, #0
  7030. 80033fa: 6323 str r3, [r4, #48] @ 0x30
  7031. 80033fc: d1e9 bne.n 80033d2 <d_exprlist+0x22>
  7032. 80033fe: 2000 movs r0, #0
  7033. 8003400: b002 add sp, #8
  7034. 8003402: bc80 pop {r7}
  7035. 8003404: 46b8 mov r8, r7
  7036. 8003406: bdf0 pop {r4, r5, r6, r7, pc}
  7037. 8003408: 3301 adds r3, #1
  7038. 800340a: 9801 ldr r0, [sp, #4]
  7039. 800340c: 60e3 str r3, [r4, #12]
  7040. 800340e: e7f7 b.n 8003400 <d_exprlist+0x50>
  7041. 8003410: 3301 adds r3, #1
  7042. 8003412: 2200 movs r2, #0
  7043. 8003414: 212e movs r1, #46 @ 0x2e
  7044. 8003416: 60c3 str r3, [r0, #12]
  7045. 8003418: 2300 movs r3, #0
  7046. 800341a: f7fe fa23 bl 8001864 <d_make_comp>
  7047. 800341e: e7ef b.n 8003400 <d_exprlist+0x50>
  7048.  
  7049. 08003420 <d_cv_qualifiers>:
  7050. 8003420: b5f0 push {r4, r5, r6, r7, lr}
  7051. 8003422: 4657 mov r7, sl
  7052. 8003424: 464e mov r6, r9
  7053. 8003426: 4645 mov r5, r8
  7054. 8003428: 46de mov lr, fp
  7055. 800342a: 0004 movs r4, r0
  7056. 800342c: 0010 movs r0, r2
  7057. 800342e: b5e0 push {r5, r6, r7, lr}
  7058. 8003430: b083 sub sp, #12
  7059. 8003432: 0003 movs r3, r0
  7060. 8003434: 9201 str r2, [sp, #4]
  7061. 8003436: 2201 movs r2, #1
  7062. 8003438: 68e5 ldr r5, [r4, #12]
  7063. 800343a: 468a mov sl, r1
  7064. 800343c: 782e ldrb r6, [r5, #0]
  7065. 800343e: 211b movs r1, #27
  7066. 8003440: 4013 ands r3, r2
  7067. 8003442: 4202 tst r2, r0
  7068. 8003444: d000 beq.n 8003448 <d_cv_qualifiers+0x28>
  7069. 8003446: 211e movs r1, #30
  7070. 8003448: b2ca uxtb r2, r1
  7071. 800344a: 4693 mov fp, r2
  7072. 800344c: 221a movs r2, #26
  7073. 800344e: 2b00 cmp r3, #0
  7074. 8003450: d000 beq.n 8003454 <d_cv_qualifiers+0x34>
  7075. 8003452: 221d movs r2, #29
  7076. 8003454: b2d2 uxtb r2, r2
  7077. 8003456: 4691 mov r9, r2
  7078. 8003458: 2219 movs r2, #25
  7079. 800345a: 2b00 cmp r3, #0
  7080. 800345c: d000 beq.n 8003460 <d_cv_qualifiers+0x40>
  7081. 800345e: 221c movs r2, #28
  7082. 8003460: b2d3 uxtb r3, r2
  7083. 8003462: 4698 mov r8, r3
  7084. 8003464: 4657 mov r7, sl
  7085. 8003466: e01d b.n 80034a4 <d_cv_qualifiers+0x84>
  7086. 8003468: 2e56 cmp r6, #86 @ 0x56
  7087. 800346a: d039 beq.n 80034e0 <d_cv_qualifiers+0xc0>
  7088. 800346c: 2e4b cmp r6, #75 @ 0x4b
  7089. 800346e: d03d beq.n 80034ec <d_cv_qualifiers+0xcc>
  7090. 8003470: 786b ldrb r3, [r5, #1]
  7091. 8003472: 2b00 cmp r3, #0
  7092. 8003474: d02b beq.n 80034ce <d_cv_qualifiers+0xae>
  7093. 8003476: 1cab adds r3, r5, #2
  7094. 8003478: 60e3 str r3, [r4, #12]
  7095. 800347a: 786b ldrb r3, [r5, #1]
  7096. 800347c: 2b78 cmp r3, #120 @ 0x78
  7097. 800347e: d03b beq.n 80034f8 <d_cv_qualifiers+0xd8>
  7098. 8003480: 2b6f cmp r3, #111 @ 0x6f
  7099. 8003482: d15b bne.n 800353c <d_cv_qualifiers+0x11c>
  7100. 8003484: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7101. 8003486: 2150 movs r1, #80 @ 0x50
  7102. 8003488: 3309 adds r3, #9
  7103. 800348a: 62e3 str r3, [r4, #44] @ 0x2c
  7104. 800348c: 2300 movs r3, #0
  7105. 800348e: 2200 movs r2, #0
  7106. 8003490: 0020 movs r0, r4
  7107. 8003492: f7fe f9e7 bl 8001864 <d_make_comp>
  7108. 8003496: 6038 str r0, [r7, #0]
  7109. 8003498: 2800 cmp r0, #0
  7110. 800349a: d018 beq.n 80034ce <d_cv_qualifiers+0xae>
  7111. 800349c: 300c adds r0, #12
  7112. 800349e: 0007 movs r7, r0
  7113. 80034a0: 68e5 ldr r5, [r4, #12]
  7114. 80034a2: 782e ldrb r6, [r5, #0]
  7115. 80034a4: 0028 movs r0, r5
  7116. 80034a6: f7fe fb81 bl 8001bac <next_is_type_qual.isra.0>
  7117. 80034aa: 2800 cmp r0, #0
  7118. 80034ac: d02a beq.n 8003504 <d_cv_qualifiers+0xe4>
  7119. 80034ae: 1c6b adds r3, r5, #1
  7120. 80034b0: 60e3 str r3, [r4, #12]
  7121. 80034b2: 2e72 cmp r6, #114 @ 0x72
  7122. 80034b4: d1d8 bne.n 8003468 <d_cv_qualifiers+0x48>
  7123. 80034b6: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7124. 80034b8: 4641 mov r1, r8
  7125. 80034ba: 3309 adds r3, #9
  7126. 80034bc: 62e3 str r3, [r4, #44] @ 0x2c
  7127. 80034be: 2200 movs r2, #0
  7128. 80034c0: 2300 movs r3, #0
  7129. 80034c2: 0020 movs r0, r4
  7130. 80034c4: f7fe f9ce bl 8001864 <d_make_comp>
  7131. 80034c8: 6038 str r0, [r7, #0]
  7132. 80034ca: 2800 cmp r0, #0
  7133. 80034cc: d1e6 bne.n 800349c <d_cv_qualifiers+0x7c>
  7134. 80034ce: 2700 movs r7, #0
  7135. 80034d0: 0038 movs r0, r7
  7136. 80034d2: b003 add sp, #12
  7137. 80034d4: bcf0 pop {r4, r5, r6, r7}
  7138. 80034d6: 46bb mov fp, r7
  7139. 80034d8: 46b2 mov sl, r6
  7140. 80034da: 46a9 mov r9, r5
  7141. 80034dc: 46a0 mov r8, r4
  7142. 80034de: bdf0 pop {r4, r5, r6, r7, pc}
  7143. 80034e0: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7144. 80034e2: 4649 mov r1, r9
  7145. 80034e4: 3309 adds r3, #9
  7146. 80034e6: 62e3 str r3, [r4, #44] @ 0x2c
  7147. 80034e8: 2300 movs r3, #0
  7148. 80034ea: e7d0 b.n 800348e <d_cv_qualifiers+0x6e>
  7149. 80034ec: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7150. 80034ee: 4659 mov r1, fp
  7151. 80034f0: 3306 adds r3, #6
  7152. 80034f2: 62e3 str r3, [r4, #44] @ 0x2c
  7153. 80034f4: 2300 movs r3, #0
  7154. 80034f6: e7ca b.n 800348e <d_cv_qualifiers+0x6e>
  7155. 80034f8: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7156. 80034fa: 214e movs r1, #78 @ 0x4e
  7157. 80034fc: 3311 adds r3, #17
  7158. 80034fe: 62e3 str r3, [r4, #44] @ 0x2c
  7159. 8003500: 2300 movs r3, #0
  7160. 8003502: e7c4 b.n 800348e <d_cv_qualifiers+0x6e>
  7161. 8003504: 9b01 ldr r3, [sp, #4]
  7162. 8003506: 2b00 cmp r3, #0
  7163. 8003508: d1e2 bne.n 80034d0 <d_cv_qualifiers+0xb0>
  7164. 800350a: 2e46 cmp r6, #70 @ 0x46
  7165. 800350c: d1e0 bne.n 80034d0 <d_cv_qualifiers+0xb0>
  7166. 800350e: 4557 cmp r7, sl
  7167. 8003510: d0de beq.n 80034d0 <d_cv_qualifiers+0xb0>
  7168. 8003512: 241d movs r4, #29
  7169. 8003514: 211c movs r1, #28
  7170. 8003516: 301e adds r0, #30
  7171. 8003518: e009 b.n 800352e <d_cv_qualifiers+0x10e>
  7172. 800351a: 2a1b cmp r2, #27
  7173. 800351c: d036 beq.n 800358c <d_cv_qualifiers+0x16c>
  7174. 800351e: 2a19 cmp r2, #25
  7175. 8003520: d100 bne.n 8003524 <d_cv_qualifiers+0x104>
  7176. 8003522: 7019 strb r1, [r3, #0]
  7177. 8003524: 220c movs r2, #12
  7178. 8003526: 4692 mov sl, r2
  7179. 8003528: 449a add sl, r3
  7180. 800352a: 4557 cmp r7, sl
  7181. 800352c: d0d0 beq.n 80034d0 <d_cv_qualifiers+0xb0>
  7182. 800352e: 4653 mov r3, sl
  7183. 8003530: 681b ldr r3, [r3, #0]
  7184. 8003532: 781a ldrb r2, [r3, #0]
  7185. 8003534: 2a1a cmp r2, #26
  7186. 8003536: d1f0 bne.n 800351a <d_cv_qualifiers+0xfa>
  7187. 8003538: 701c strb r4, [r3, #0]
  7188. 800353a: e7f3 b.n 8003524 <d_cv_qualifiers+0x104>
  7189. 800353c: 2b4f cmp r3, #79 @ 0x4f
  7190. 800353e: d113 bne.n 8003568 <d_cv_qualifiers+0x148>
  7191. 8003540: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7192. 8003542: 6b25 ldr r5, [r4, #48] @ 0x30
  7193. 8003544: 3309 adds r3, #9
  7194. 8003546: 62e3 str r3, [r4, #44] @ 0x2c
  7195. 8003548: 2301 movs r3, #1
  7196. 800354a: 0020 movs r0, r4
  7197. 800354c: 6323 str r3, [r4, #48] @ 0x30
  7198. 800354e: f7ff fcb1 bl 8002eb4 <d_expression_1>
  7199. 8003552: 6325 str r5, [r4, #48] @ 0x30
  7200. 8003554: 1e03 subs r3, r0, #0
  7201. 8003556: d0ba beq.n 80034ce <d_cv_qualifiers+0xae>
  7202. 8003558: 68e2 ldr r2, [r4, #12]
  7203. 800355a: 7811 ldrb r1, [r2, #0]
  7204. 800355c: 2945 cmp r1, #69 @ 0x45
  7205. 800355e: d1b6 bne.n 80034ce <d_cv_qualifiers+0xae>
  7206. 8003560: 3201 adds r2, #1
  7207. 8003562: 60e2 str r2, [r4, #12]
  7208. 8003564: 310b adds r1, #11
  7209. 8003566: e792 b.n 800348e <d_cv_qualifiers+0x6e>
  7210. 8003568: 2b77 cmp r3, #119 @ 0x77
  7211. 800356a: d1b0 bne.n 80034ce <d_cv_qualifiers+0xae>
  7212. 800356c: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7213. 800356e: 0020 movs r0, r4
  7214. 8003570: 3306 adds r3, #6
  7215. 8003572: 62e3 str r3, [r4, #44] @ 0x2c
  7216. 8003574: f7ff f93e bl 80027f4 <d_parmlist>
  7217. 8003578: 1e03 subs r3, r0, #0
  7218. 800357a: d0a8 beq.n 80034ce <d_cv_qualifiers+0xae>
  7219. 800357c: 68e2 ldr r2, [r4, #12]
  7220. 800357e: 7811 ldrb r1, [r2, #0]
  7221. 8003580: 2945 cmp r1, #69 @ 0x45
  7222. 8003582: d1a4 bne.n 80034ce <d_cv_qualifiers+0xae>
  7223. 8003584: 3201 adds r2, #1
  7224. 8003586: 60e2 str r2, [r4, #12]
  7225. 8003588: 310c adds r1, #12
  7226. 800358a: e780 b.n 800348e <d_cv_qualifiers+0x6e>
  7227. 800358c: 7018 strb r0, [r3, #0]
  7228. 800358e: e7c9 b.n 8003524 <d_cv_qualifiers+0x104>
  7229.  
  7230. 08003590 <d_name>:
  7231. 8003590: b5f0 push {r4, r5, r6, r7, lr}
  7232. 8003592: 46ce mov lr, r9
  7233. 8003594: 4647 mov r7, r8
  7234. 8003596: b580 push {r7, lr}
  7235. 8003598: 68c2 ldr r2, [r0, #12]
  7236. 800359a: 0004 movs r4, r0
  7237. 800359c: 7813 ldrb r3, [r2, #0]
  7238. 800359e: 000e movs r6, r1
  7239. 80035a0: b083 sub sp, #12
  7240. 80035a2: 2b55 cmp r3, #85 @ 0x55
  7241. 80035a4: d100 bne.n 80035a8 <d_name+0x18>
  7242. 80035a6: e079 b.n 800369c <d_name+0x10c>
  7243. 80035a8: d838 bhi.n 800361c <d_name+0x8c>
  7244. 80035aa: 2b4e cmp r3, #78 @ 0x4e
  7245. 80035ac: d100 bne.n 80035b0 <d_name+0x20>
  7246. 80035ae: e08f b.n 80036d0 <d_name+0x140>
  7247. 80035b0: 2b53 cmp r3, #83 @ 0x53
  7248. 80035b2: d164 bne.n 800367e <d_name+0xee>
  7249. 80035b4: 7853 ldrb r3, [r2, #1]
  7250. 80035b6: 2700 movs r7, #0
  7251. 80035b8: 2b74 cmp r3, #116 @ 0x74
  7252. 80035ba: d100 bne.n 80035be <d_name+0x2e>
  7253. 80035bc: e0ae b.n 800371c <d_name+0x18c>
  7254. 80035be: 2100 movs r1, #0
  7255. 80035c0: 0020 movs r0, r4
  7256. 80035c2: f7fe fc9f bl 8001f04 <d_substitution>
  7257. 80035c6: 1e05 subs r5, r0, #0
  7258. 80035c8: d057 beq.n 800367a <d_name+0xea>
  7259. 80035ca: 7803 ldrb r3, [r0, #0]
  7260. 80035cc: 3b53 subs r3, #83 @ 0x53
  7261. 80035ce: 2b01 cmp r3, #1
  7262. 80035d0: d957 bls.n 8003682 <d_name+0xf2>
  7263. 80035d2: 2f00 cmp r7, #0
  7264. 80035d4: d151 bne.n 800367a <d_name+0xea>
  7265. 80035d6: 68e2 ldr r2, [r4, #12]
  7266. 80035d8: 7813 ldrb r3, [r2, #0]
  7267. 80035da: 2b49 cmp r3, #73 @ 0x49
  7268. 80035dc: d118 bne.n 8003610 <d_name+0x80>
  7269. 80035de: 3201 adds r2, #1
  7270. 80035e0: 0020 movs r0, r4
  7271. 80035e2: 60e2 str r2, [r4, #12]
  7272. 80035e4: f000 fc94 bl 8003f10 <d_template_args_1>
  7273. 80035e8: 0003 movs r3, r0
  7274. 80035ea: 002a movs r2, r5
  7275. 80035ec: 2104 movs r1, #4
  7276. 80035ee: 0020 movs r0, r4
  7277. 80035f0: f7fe f938 bl 8001864 <d_make_comp>
  7278. 80035f4: 0005 movs r5, r0
  7279. 80035f6: 2e00 cmp r6, #0
  7280. 80035f8: d00a beq.n 8003610 <d_name+0x80>
  7281. 80035fa: 2d00 cmp r5, #0
  7282. 80035fc: d03d beq.n 800367a <d_name+0xea>
  7283. 80035fe: 6a23 ldr r3, [r4, #32]
  7284. 8003600: 6a62 ldr r2, [r4, #36] @ 0x24
  7285. 8003602: 4293 cmp r3, r2
  7286. 8003604: da39 bge.n 800367a <d_name+0xea>
  7287. 8003606: 69e2 ldr r2, [r4, #28]
  7288. 8003608: 0099 lsls r1, r3, #2
  7289. 800360a: 3301 adds r3, #1
  7290. 800360c: 508d str r5, [r1, r2]
  7291. 800360e: 6223 str r3, [r4, #32]
  7292. 8003610: 0028 movs r0, r5
  7293. 8003612: b003 add sp, #12
  7294. 8003614: bcc0 pop {r6, r7}
  7295. 8003616: 46b9 mov r9, r7
  7296. 8003618: 46b0 mov r8, r6
  7297. 800361a: bdf0 pop {r4, r5, r6, r7, pc}
  7298. 800361c: 2b5a cmp r3, #90 @ 0x5a
  7299. 800361e: d12e bne.n 800367e <d_name+0xee>
  7300. 8003620: 1c53 adds r3, r2, #1
  7301. 8003622: 60c3 str r3, [r0, #12]
  7302. 8003624: 7853 ldrb r3, [r2, #1]
  7303. 8003626: 2b47 cmp r3, #71 @ 0x47
  7304. 8003628: d001 beq.n 800362e <d_name+0x9e>
  7305. 800362a: 2b54 cmp r3, #84 @ 0x54
  7306. 800362c: d171 bne.n 8003712 <d_name+0x182>
  7307. 800362e: 0020 movs r0, r4
  7308. 8003630: f000 f9a0 bl 8003974 <d_special_name>
  7309. 8003634: 0005 movs r5, r0
  7310. 8003636: 2d00 cmp r5, #0
  7311. 8003638: d01f beq.n 800367a <d_name+0xea>
  7312. 800363a: 68e3 ldr r3, [r4, #12]
  7313. 800363c: 781a ldrb r2, [r3, #0]
  7314. 800363e: 2a45 cmp r2, #69 @ 0x45
  7315. 8003640: d11b bne.n 800367a <d_name+0xea>
  7316. 8003642: 1c5a adds r2, r3, #1
  7317. 8003644: 60e2 str r2, [r4, #12]
  7318. 8003646: 785a ldrb r2, [r3, #1]
  7319. 8003648: 2a73 cmp r2, #115 @ 0x73
  7320. 800364a: d100 bne.n 800364e <d_name+0xbe>
  7321. 800364c: e0f4 b.n 8003838 <d_name+0x2a8>
  7322. 800364e: 2a64 cmp r2, #100 @ 0x64
  7323. 8003650: d100 bne.n 8003654 <d_name+0xc4>
  7324. 8003652: e09a b.n 800378a <d_name+0x1fa>
  7325. 8003654: 2100 movs r1, #0
  7326. 8003656: 0020 movs r0, r4
  7327. 8003658: f7ff ff9a bl 8003590 <d_name>
  7328. 800365c: 1e07 subs r7, r0, #0
  7329. 800365e: d100 bne.n 8003662 <d_name+0xd2>
  7330. 8003660: e0e8 b.n 8003834 <d_name+0x2a4>
  7331. 8003662: 22fd movs r2, #253 @ 0xfd
  7332. 8003664: 7803 ldrb r3, [r0, #0]
  7333. 8003666: 3b47 subs r3, #71 @ 0x47
  7334. 8003668: 4213 tst r3, r2
  7335. 800366a: d100 bne.n 800366e <d_name+0xde>
  7336. 800366c: e0c9 b.n 8003802 <d_name+0x272>
  7337. 800366e: 0020 movs r0, r4
  7338. 8003670: f7fe f9ca bl 8001a08 <d_discriminator>
  7339. 8003674: 2800 cmp r0, #0
  7340. 8003676: d000 beq.n 800367a <d_name+0xea>
  7341. 8003678: e0c3 b.n 8003802 <d_name+0x272>
  7342. 800367a: 2500 movs r5, #0
  7343. 800367c: e7c8 b.n 8003610 <d_name+0x80>
  7344. 800367e: 2500 movs r5, #0
  7345. 8003680: 2700 movs r7, #0
  7346. 8003682: 002a movs r2, r5
  7347. 8003684: 0039 movs r1, r7
  7348. 8003686: 0020 movs r0, r4
  7349. 8003688: f7ff fa4a bl 8002b20 <d_unqualified_name>
  7350. 800368c: 68e2 ldr r2, [r4, #12]
  7351. 800368e: 0005 movs r5, r0
  7352. 8003690: 7813 ldrb r3, [r2, #0]
  7353. 8003692: 2b49 cmp r3, #73 @ 0x49
  7354. 8003694: d00a beq.n 80036ac <d_name+0x11c>
  7355. 8003696: 2e00 cmp r6, #0
  7356. 8003698: d0ba beq.n 8003610 <d_name+0x80>
  7357. 800369a: e7ae b.n 80035fa <d_name+0x6a>
  7358. 800369c: 2200 movs r2, #0
  7359. 800369e: 2100 movs r1, #0
  7360. 80036a0: f7ff fa3e bl 8002b20 <d_unqualified_name>
  7361. 80036a4: 0005 movs r5, r0
  7362. 80036a6: 2e00 cmp r6, #0
  7363. 80036a8: d1a7 bne.n 80035fa <d_name+0x6a>
  7364. 80036aa: e7b1 b.n 8003610 <d_name+0x80>
  7365. 80036ac: 2800 cmp r0, #0
  7366. 80036ae: d0e4 beq.n 800367a <d_name+0xea>
  7367. 80036b0: 6a23 ldr r3, [r4, #32]
  7368. 80036b2: 6a61 ldr r1, [r4, #36] @ 0x24
  7369. 80036b4: 428b cmp r3, r1
  7370. 80036b6: dae0 bge.n 800367a <d_name+0xea>
  7371. 80036b8: 69e1 ldr r1, [r4, #28]
  7372. 80036ba: 0098 lsls r0, r3, #2
  7373. 80036bc: 3301 adds r3, #1
  7374. 80036be: 5045 str r5, [r0, r1]
  7375. 80036c0: 6223 str r3, [r4, #32]
  7376. 80036c2: 7811 ldrb r1, [r2, #0]
  7377. 80036c4: 2300 movs r3, #0
  7378. 80036c6: 3949 subs r1, #73 @ 0x49
  7379. 80036c8: 2901 cmp r1, #1
  7380. 80036ca: d900 bls.n 80036ce <d_name+0x13e>
  7381. 80036cc: e78d b.n 80035ea <d_name+0x5a>
  7382. 80036ce: e786 b.n 80035de <d_name+0x4e>
  7383. 80036d0: 3201 adds r2, #1
  7384. 80036d2: 60c2 str r2, [r0, #12]
  7385. 80036d4: a901 add r1, sp, #4
  7386. 80036d6: 2201 movs r2, #1
  7387. 80036d8: f7ff fea2 bl 8003420 <d_cv_qualifiers>
  7388. 80036dc: 1e05 subs r5, r0, #0
  7389. 80036de: d0cc beq.n 800367a <d_name+0xea>
  7390. 80036e0: 68e3 ldr r3, [r4, #12]
  7391. 80036e2: 781a ldrb r2, [r3, #0]
  7392. 80036e4: 2a52 cmp r2, #82 @ 0x52
  7393. 80036e6: d100 bne.n 80036ea <d_name+0x15a>
  7394. 80036e8: e099 b.n 800381e <d_name+0x28e>
  7395. 80036ea: 2a4f cmp r2, #79 @ 0x4f
  7396. 80036ec: d033 beq.n 8003756 <d_name+0x1c6>
  7397. 80036ee: 2101 movs r1, #1
  7398. 80036f0: 0020 movs r0, r4
  7399. 80036f2: f000 fc3d bl 8003f70 <d_prefix>
  7400. 80036f6: 6028 str r0, [r5, #0]
  7401. 80036f8: 2800 cmp r0, #0
  7402. 80036fa: d0be beq.n 800367a <d_name+0xea>
  7403. 80036fc: 68e3 ldr r3, [r4, #12]
  7404. 80036fe: 781a ldrb r2, [r3, #0]
  7405. 8003700: 2a45 cmp r2, #69 @ 0x45
  7406. 8003702: d1ba bne.n 800367a <d_name+0xea>
  7407. 8003704: 3301 adds r3, #1
  7408. 8003706: 9d01 ldr r5, [sp, #4]
  7409. 8003708: 60e3 str r3, [r4, #12]
  7410. 800370a: 2e00 cmp r6, #0
  7411. 800370c: d000 beq.n 8003710 <d_name+0x180>
  7412. 800370e: e774 b.n 80035fa <d_name+0x6a>
  7413. 8003710: e77e b.n 8003610 <d_name+0x80>
  7414. 8003712: 2100 movs r1, #0
  7415. 8003714: f000 f8b4 bl 8003880 <d_encoding.part.0>
  7416. 8003718: 0005 movs r5, r0
  7417. 800371a: e78c b.n 8003636 <d_name+0xa6>
  7418. 800371c: 1c93 adds r3, r2, #2
  7419. 800371e: 60c3 str r3, [r0, #12]
  7420. 8003720: 6981 ldr r1, [r0, #24]
  7421. 8003722: 6943 ldr r3, [r0, #20]
  7422. 8003724: 428b cmp r3, r1
  7423. 8003726: da0e bge.n 8003746 <d_name+0x1b6>
  7424. 8003728: 0099 lsls r1, r3, #2
  7425. 800372a: 18c9 adds r1, r1, r3
  7426. 800372c: 3301 adds r3, #1
  7427. 800372e: 6143 str r3, [r0, #20]
  7428. 8003730: 2300 movs r3, #0
  7429. 8003732: 6907 ldr r7, [r0, #16]
  7430. 8003734: 0089 lsls r1, r1, #2
  7431. 8003736: 187f adds r7, r7, r1
  7432. 8003738: 607b str r3, [r7, #4]
  7433. 800373a: 60bb str r3, [r7, #8]
  7434. 800373c: 703b strb r3, [r7, #0]
  7435. 800373e: 4b4e ldr r3, [pc, #312] @ (8003878 <d_name+0x2e8>)
  7436. 8003740: 60fb str r3, [r7, #12]
  7437. 8003742: 2303 movs r3, #3
  7438. 8003744: 613b str r3, [r7, #16]
  7439. 8003746: 6ae3 ldr r3, [r4, #44] @ 0x2c
  7440. 8003748: 2500 movs r5, #0
  7441. 800374a: 3303 adds r3, #3
  7442. 800374c: 62e3 str r3, [r4, #44] @ 0x2c
  7443. 800374e: 7893 ldrb r3, [r2, #2]
  7444. 8003750: 2b53 cmp r3, #83 @ 0x53
  7445. 8003752: d196 bne.n 8003682 <d_name+0xf2>
  7446. 8003754: e733 b.n 80035be <d_name+0x2e>
  7447. 8003756: 2120 movs r1, #32
  7448. 8003758: 6ae2 ldr r2, [r4, #44] @ 0x2c
  7449. 800375a: 3203 adds r2, #3
  7450. 800375c: 3301 adds r3, #1
  7451. 800375e: 62e2 str r2, [r4, #44] @ 0x2c
  7452. 8003760: 60e3 str r3, [r4, #12]
  7453. 8003762: 2200 movs r2, #0
  7454. 8003764: 2300 movs r3, #0
  7455. 8003766: 0020 movs r0, r4
  7456. 8003768: f7fe f87c bl 8001864 <d_make_comp>
  7457. 800376c: 2101 movs r1, #1
  7458. 800376e: 0007 movs r7, r0
  7459. 8003770: 0020 movs r0, r4
  7460. 8003772: f000 fbfd bl 8003f70 <d_prefix>
  7461. 8003776: 6028 str r0, [r5, #0]
  7462. 8003778: 2800 cmp r0, #0
  7463. 800377a: d100 bne.n 800377e <d_name+0x1ee>
  7464. 800377c: e77d b.n 800367a <d_name+0xea>
  7465. 800377e: 2f00 cmp r7, #0
  7466. 8003780: d0bc beq.n 80036fc <d_name+0x16c>
  7467. 8003782: 9b01 ldr r3, [sp, #4]
  7468. 8003784: 9701 str r7, [sp, #4]
  7469. 8003786: 60fb str r3, [r7, #12]
  7470. 8003788: e7b8 b.n 80036fc <d_name+0x16c>
  7471. 800378a: 1c9a adds r2, r3, #2
  7472. 800378c: 60e2 str r2, [r4, #12]
  7473. 800378e: 789b ldrb r3, [r3, #2]
  7474. 8003790: 2b5f cmp r3, #95 @ 0x5f
  7475. 8003792: d06d beq.n 8003870 <d_name+0x2e0>
  7476. 8003794: 2b6e cmp r3, #110 @ 0x6e
  7477. 8003796: d100 bne.n 800379a <d_name+0x20a>
  7478. 8003798: e76f b.n 800367a <d_name+0xea>
  7479. 800379a: 0020 movs r0, r4
  7480. 800379c: f7fe f8ce bl 800193c <d_number>
  7481. 80037a0: 1c43 adds r3, r0, #1
  7482. 80037a2: d500 bpl.n 80037a6 <d_name+0x216>
  7483. 80037a4: e769 b.n 800367a <d_name+0xea>
  7484. 80037a6: 68e2 ldr r2, [r4, #12]
  7485. 80037a8: 4699 mov r9, r3
  7486. 80037aa: 7813 ldrb r3, [r2, #0]
  7487. 80037ac: 2b5f cmp r3, #95 @ 0x5f
  7488. 80037ae: d000 beq.n 80037b2 <d_name+0x222>
  7489. 80037b0: e763 b.n 800367a <d_name+0xea>
  7490. 80037b2: 3201 adds r2, #1
  7491. 80037b4: 2100 movs r1, #0
  7492. 80037b6: 0020 movs r0, r4
  7493. 80037b8: 60e2 str r2, [r4, #12]
  7494. 80037ba: f7ff fee9 bl 8003590 <d_name>
  7495. 80037be: 4680 mov r8, r0
  7496. 80037c0: 2800 cmp r0, #0
  7497. 80037c2: d00a beq.n 80037da <d_name+0x24a>
  7498. 80037c4: 22fd movs r2, #253 @ 0xfd
  7499. 80037c6: 7803 ldrb r3, [r0, #0]
  7500. 80037c8: 3b47 subs r3, #71 @ 0x47
  7501. 80037ca: 4213 tst r3, r2
  7502. 80037cc: d005 beq.n 80037da <d_name+0x24a>
  7503. 80037ce: 0020 movs r0, r4
  7504. 80037d0: f7fe f91a bl 8001a08 <d_discriminator>
  7505. 80037d4: 2800 cmp r0, #0
  7506. 80037d6: d100 bne.n 80037da <d_name+0x24a>
  7507. 80037d8: e74f b.n 800367a <d_name+0xea>
  7508. 80037da: 6963 ldr r3, [r4, #20]
  7509. 80037dc: 69a2 ldr r2, [r4, #24]
  7510. 80037de: 4293 cmp r3, r2
  7511. 80037e0: da28 bge.n 8003834 <d_name+0x2a4>
  7512. 80037e2: 009a lsls r2, r3, #2
  7513. 80037e4: 6927 ldr r7, [r4, #16]
  7514. 80037e6: 18d2 adds r2, r2, r3
  7515. 80037e8: 0092 lsls r2, r2, #2
  7516. 80037ea: 18bf adds r7, r7, r2
  7517. 80037ec: 2200 movs r2, #0
  7518. 80037ee: 3301 adds r3, #1
  7519. 80037f0: 607a str r2, [r7, #4]
  7520. 80037f2: 60ba str r2, [r7, #8]
  7521. 80037f4: 6163 str r3, [r4, #20]
  7522. 80037f6: 2348 movs r3, #72 @ 0x48
  7523. 80037f8: 703b strb r3, [r7, #0]
  7524. 80037fa: 464b mov r3, r9
  7525. 80037fc: 613b str r3, [r7, #16]
  7526. 80037fe: 4643 mov r3, r8
  7527. 8003800: 60fb str r3, [r7, #12]
  7528. 8003802: 782b ldrb r3, [r5, #0]
  7529. 8003804: 2b03 cmp r3, #3
  7530. 8003806: d00e beq.n 8003826 <d_name+0x296>
  7531. 8003808: 002a movs r2, r5
  7532. 800380a: 003b movs r3, r7
  7533. 800380c: 2102 movs r1, #2
  7534. 800380e: 0020 movs r0, r4
  7535. 8003810: f7fe f828 bl 8001864 <d_make_comp>
  7536. 8003814: 0005 movs r5, r0
  7537. 8003816: 2e00 cmp r6, #0
  7538. 8003818: d000 beq.n 800381c <d_name+0x28c>
  7539. 800381a: e6ee b.n 80035fa <d_name+0x6a>
  7540. 800381c: e6f8 b.n 8003610 <d_name+0x80>
  7541. 800381e: 6ae2 ldr r2, [r4, #44] @ 0x2c
  7542. 8003820: 211f movs r1, #31
  7543. 8003822: 3202 adds r2, #2
  7544. 8003824: e79a b.n 800375c <d_name+0x1cc>
  7545. 8003826: 692b ldr r3, [r5, #16]
  7546. 8003828: 781a ldrb r2, [r3, #0]
  7547. 800382a: 2a29 cmp r2, #41 @ 0x29
  7548. 800382c: d1ec bne.n 8003808 <d_name+0x278>
  7549. 800382e: 2200 movs r2, #0
  7550. 8003830: 60da str r2, [r3, #12]
  7551. 8003832: e7e9 b.n 8003808 <d_name+0x278>
  7552. 8003834: 2700 movs r7, #0
  7553. 8003836: e7e4 b.n 8003802 <d_name+0x272>
  7554. 8003838: 3302 adds r3, #2
  7555. 800383a: 0020 movs r0, r4
  7556. 800383c: 60e3 str r3, [r4, #12]
  7557. 800383e: f7fe f8e3 bl 8001a08 <d_discriminator>
  7558. 8003842: 2800 cmp r0, #0
  7559. 8003844: d100 bne.n 8003848 <d_name+0x2b8>
  7560. 8003846: e718 b.n 800367a <d_name+0xea>
  7561. 8003848: 6963 ldr r3, [r4, #20]
  7562. 800384a: 69a2 ldr r2, [r4, #24]
  7563. 800384c: 4293 cmp r3, r2
  7564. 800384e: daf1 bge.n 8003834 <d_name+0x2a4>
  7565. 8003850: 009a lsls r2, r3, #2
  7566. 8003852: 18d2 adds r2, r2, r3
  7567. 8003854: 3301 adds r3, #1
  7568. 8003856: 6163 str r3, [r4, #20]
  7569. 8003858: 2300 movs r3, #0
  7570. 800385a: 6927 ldr r7, [r4, #16]
  7571. 800385c: 0092 lsls r2, r2, #2
  7572. 800385e: 18bf adds r7, r7, r2
  7573. 8003860: 607b str r3, [r7, #4]
  7574. 8003862: 60bb str r3, [r7, #8]
  7575. 8003864: 703b strb r3, [r7, #0]
  7576. 8003866: 4b05 ldr r3, [pc, #20] @ (800387c <d_name+0x2ec>)
  7577. 8003868: 60fb str r3, [r7, #12]
  7578. 800386a: 230e movs r3, #14
  7579. 800386c: 613b str r3, [r7, #16]
  7580. 800386e: e7c8 b.n 8003802 <d_name+0x272>
  7581. 8003870: 2300 movs r3, #0
  7582. 8003872: 4699 mov r9, r3
  7583. 8003874: e79d b.n 80037b2 <d_name+0x222>
  7584. 8003876: 46c0 nop @ (mov r8, r8)
  7585. 8003878: 08014134 .word 0x08014134
  7586. 800387c: 08014124 .word 0x08014124
  7587.  
  7588. 08003880 <d_encoding.part.0>:
  7589. 8003880: b570 push {r4, r5, r6, lr}
  7590. 8003882: 000e movs r6, r1
  7591. 8003884: 2100 movs r1, #0
  7592. 8003886: 0005 movs r5, r0
  7593. 8003888: f7ff fe82 bl 8003590 <d_name>
  7594. 800388c: 1e04 subs r4, r0, #0
  7595. 800388e: d048 beq.n 8003922 <d_encoding.part.0+0xa2>
  7596. 8003890: 2e00 cmp r6, #0
  7597. 8003892: d018 beq.n 80038c6 <d_encoding.part.0+0x46>
  7598. 8003894: 68ab ldr r3, [r5, #8]
  7599. 8003896: 07db lsls r3, r3, #31
  7600. 8003898: d415 bmi.n 80038c6 <d_encoding.part.0+0x46>
  7601. 800389a: 7823 ldrb r3, [r4, #0]
  7602. 800389c: 2b4e cmp r3, #78 @ 0x4e
  7603. 800389e: d037 beq.n 8003910 <d_encoding.part.0+0x90>
  7604. 80038a0: d833 bhi.n 800390a <d_encoding.part.0+0x8a>
  7605. 80038a2: 001a movs r2, r3
  7606. 80038a4: 3a1c subs r2, #28
  7607. 80038a6: 2a04 cmp r2, #4
  7608. 80038a8: d932 bls.n 8003910 <d_encoding.part.0+0x90>
  7609. 80038aa: 2b02 cmp r3, #2
  7610. 80038ac: d109 bne.n 80038c2 <d_encoding.part.0+0x42>
  7611. 80038ae: 6922 ldr r2, [r4, #16]
  7612. 80038b0: 2a00 cmp r2, #0
  7613. 80038b2: d036 beq.n 8003922 <d_encoding.part.0+0xa2>
  7614. 80038b4: 7813 ldrb r3, [r2, #0]
  7615. 80038b6: 2b4e cmp r3, #78 @ 0x4e
  7616. 80038b8: d02f beq.n 800391a <d_encoding.part.0+0x9a>
  7617. 80038ba: d82b bhi.n 8003914 <d_encoding.part.0+0x94>
  7618. 80038bc: 3b1c subs r3, #28
  7619. 80038be: 2b04 cmp r3, #4
  7620. 80038c0: d92b bls.n 800391a <d_encoding.part.0+0x9a>
  7621. 80038c2: 0020 movs r0, r4
  7622. 80038c4: bd70 pop {r4, r5, r6, pc}
  7623. 80038c6: 68eb ldr r3, [r5, #12]
  7624. 80038c8: 781b ldrb r3, [r3, #0]
  7625. 80038ca: 2b00 cmp r3, #0
  7626. 80038cc: d0f9 beq.n 80038c2 <d_encoding.part.0+0x42>
  7627. 80038ce: 2b45 cmp r3, #69 @ 0x45
  7628. 80038d0: d0f7 beq.n 80038c2 <d_encoding.part.0+0x42>
  7629. 80038d2: 0022 movs r2, r4
  7630. 80038d4: 7813 ldrb r3, [r2, #0]
  7631. 80038d6: 2b04 cmp r3, #4
  7632. 80038d8: d02d beq.n 8003936 <d_encoding.part.0+0xb6>
  7633. 80038da: d824 bhi.n 8003926 <d_encoding.part.0+0xa6>
  7634. 80038dc: 2b02 cmp r3, #2
  7635. 80038de: d102 bne.n 80038e6 <d_encoding.part.0+0x66>
  7636. 80038e0: 6912 ldr r2, [r2, #16]
  7637. 80038e2: 2a00 cmp r2, #0
  7638. 80038e4: d1f6 bne.n 80038d4 <d_encoding.part.0+0x54>
  7639. 80038e6: 2100 movs r1, #0
  7640. 80038e8: 0028 movs r0, r5
  7641. 80038ea: f7fe ffc5 bl 8002878 <d_bare_function_type>
  7642. 80038ee: 1e03 subs r3, r0, #0
  7643. 80038f0: d017 beq.n 8003922 <d_encoding.part.0+0xa2>
  7644. 80038f2: 2e00 cmp r6, #0
  7645. 80038f4: d102 bne.n 80038fc <d_encoding.part.0+0x7c>
  7646. 80038f6: 7822 ldrb r2, [r4, #0]
  7647. 80038f8: 2a02 cmp r2, #2
  7648. 80038fa: d031 beq.n 8003960 <d_encoding.part.0+0xe0>
  7649. 80038fc: 0022 movs r2, r4
  7650. 80038fe: 2103 movs r1, #3
  7651. 8003900: 0028 movs r0, r5
  7652. 8003902: f7fd ffaf bl 8001864 <d_make_comp>
  7653. 8003906: 0004 movs r4, r0
  7654. 8003908: e7db b.n 80038c2 <d_encoding.part.0+0x42>
  7655. 800390a: 3b50 subs r3, #80 @ 0x50
  7656. 800390c: 2b01 cmp r3, #1
  7657. 800390e: d8d8 bhi.n 80038c2 <d_encoding.part.0+0x42>
  7658. 8003910: 68e4 ldr r4, [r4, #12]
  7659. 8003912: e7c2 b.n 800389a <d_encoding.part.0+0x1a>
  7660. 8003914: 3b50 subs r3, #80 @ 0x50
  7661. 8003916: 2b01 cmp r3, #1
  7662. 8003918: d8d3 bhi.n 80038c2 <d_encoding.part.0+0x42>
  7663. 800391a: 68d2 ldr r2, [r2, #12]
  7664. 800391c: 6122 str r2, [r4, #16]
  7665. 800391e: 2a00 cmp r2, #0
  7666. 8003920: d1c8 bne.n 80038b4 <d_encoding.part.0+0x34>
  7667. 8003922: 2400 movs r4, #0
  7668. 8003924: e7cd b.n 80038c2 <d_encoding.part.0+0x42>
  7669. 8003926: 2b4e cmp r3, #78 @ 0x4e
  7670. 8003928: d003 beq.n 8003932 <d_encoding.part.0+0xb2>
  7671. 800392a: d814 bhi.n 8003956 <d_encoding.part.0+0xd6>
  7672. 800392c: 3b1c subs r3, #28
  7673. 800392e: 2b04 cmp r3, #4
  7674. 8003930: d8d9 bhi.n 80038e6 <d_encoding.part.0+0x66>
  7675. 8003932: 68d2 ldr r2, [r2, #12]
  7676. 8003934: e7d5 b.n 80038e2 <d_encoding.part.0+0x62>
  7677. 8003936: 68d3 ldr r3, [r2, #12]
  7678. 8003938: 2b00 cmp r3, #0
  7679. 800393a: d00a beq.n 8003952 <d_encoding.part.0+0xd2>
  7680. 800393c: 7819 ldrb r1, [r3, #0]
  7681. 800393e: 2908 cmp r1, #8
  7682. 8003940: d813 bhi.n 800396a <d_encoding.part.0+0xea>
  7683. 8003942: 2906 cmp r1, #6
  7684. 8003944: d8cf bhi.n 80038e6 <d_encoding.part.0+0x66>
  7685. 8003946: 3901 subs r1, #1
  7686. 8003948: 2901 cmp r1, #1
  7687. 800394a: d802 bhi.n 8003952 <d_encoding.part.0+0xd2>
  7688. 800394c: 691b ldr r3, [r3, #16]
  7689. 800394e: 2b00 cmp r3, #0
  7690. 8003950: d1f4 bne.n 800393c <d_encoding.part.0+0xbc>
  7691. 8003952: 2101 movs r1, #1
  7692. 8003954: e7c8 b.n 80038e8 <d_encoding.part.0+0x68>
  7693. 8003956: 3b50 subs r3, #80 @ 0x50
  7694. 8003958: 2b01 cmp r3, #1
  7695. 800395a: d8c4 bhi.n 80038e6 <d_encoding.part.0+0x66>
  7696. 800395c: 68d2 ldr r2, [r2, #12]
  7697. 800395e: e7c0 b.n 80038e2 <d_encoding.part.0+0x62>
  7698. 8003960: 7802 ldrb r2, [r0, #0]
  7699. 8003962: 2a29 cmp r2, #41 @ 0x29
  7700. 8003964: d1ca bne.n 80038fc <d_encoding.part.0+0x7c>
  7701. 8003966: 60c6 str r6, [r0, #12]
  7702. 8003968: e7c8 b.n 80038fc <d_encoding.part.0+0x7c>
  7703. 800396a: 3935 subs r1, #53 @ 0x35
  7704. 800396c: 1e4b subs r3, r1, #1
  7705. 800396e: 4199 sbcs r1, r3
  7706. 8003970: e7ba b.n 80038e8 <d_encoding.part.0+0x68>
  7707. 8003972: 46c0 nop @ (mov r8, r8)
  7708.  
  7709. 08003974 <d_special_name>:
  7710. 8003974: b5f0 push {r4, r5, r6, r7, lr}
  7711. 8003976: 46ce mov lr, r9
  7712. 8003978: 4647 mov r7, r8
  7713. 800397a: 6ac1 ldr r1, [r0, #44] @ 0x2c
  7714. 800397c: b580 push {r7, lr}
  7715. 800397e: 000b movs r3, r1
  7716. 8003980: 3314 adds r3, #20
  7717. 8003982: b083 sub sp, #12
  7718. 8003984: 62c3 str r3, [r0, #44] @ 0x2c
  7719. 8003986: 68c3 ldr r3, [r0, #12]
  7720. 8003988: 0004 movs r4, r0
  7721. 800398a: 781a ldrb r2, [r3, #0]
  7722. 800398c: 2a54 cmp r2, #84 @ 0x54
  7723. 800398e: d01a beq.n 80039c6 <d_special_name+0x52>
  7724. 8003990: 2a47 cmp r2, #71 @ 0x47
  7725. 8003992: d000 beq.n 8003996 <d_special_name+0x22>
  7726. 8003994: e0dc b.n 8003b50 <d_special_name+0x1dc>
  7727. 8003996: 1c5a adds r2, r3, #1
  7728. 8003998: 60c2 str r2, [r0, #12]
  7729. 800399a: 785a ldrb r2, [r3, #1]
  7730. 800399c: 2a00 cmp r2, #0
  7731. 800399e: d100 bne.n 80039a2 <d_special_name+0x2e>
  7732. 80039a0: e0d6 b.n 8003b50 <d_special_name+0x1dc>
  7733. 80039a2: 1c9a adds r2, r3, #2
  7734. 80039a4: 60c2 str r2, [r0, #12]
  7735. 80039a6: 785a ldrb r2, [r3, #1]
  7736. 80039a8: 2a56 cmp r2, #86 @ 0x56
  7737. 80039aa: d900 bls.n 80039ae <d_special_name+0x3a>
  7738. 80039ac: e085 b.n 8003aba <d_special_name+0x146>
  7739. 80039ae: 2a40 cmp r2, #64 @ 0x40
  7740. 80039b0: d800 bhi.n 80039b4 <d_special_name+0x40>
  7741. 80039b2: e0cd b.n 8003b50 <d_special_name+0x1dc>
  7742. 80039b4: 3a41 subs r2, #65 @ 0x41
  7743. 80039b6: b2d2 uxtb r2, r2
  7744. 80039b8: 2a15 cmp r2, #21
  7745. 80039ba: d900 bls.n 80039be <d_special_name+0x4a>
  7746. 80039bc: e0c8 b.n 8003b50 <d_special_name+0x1dc>
  7747. 80039be: 49ce ldr r1, [pc, #824] @ (8003cf8 <d_special_name+0x384>)
  7748. 80039c0: 0092 lsls r2, r2, #2
  7749. 80039c2: 588a ldr r2, [r1, r2]
  7750. 80039c4: 4697 mov pc, r2
  7751. 80039c6: 1c5a adds r2, r3, #1
  7752. 80039c8: 60c2 str r2, [r0, #12]
  7753. 80039ca: 785a ldrb r2, [r3, #1]
  7754. 80039cc: 2a00 cmp r2, #0
  7755. 80039ce: d100 bne.n 80039d2 <d_special_name+0x5e>
  7756. 80039d0: e0be b.n 8003b50 <d_special_name+0x1dc>
  7757. 80039d2: 1c9a adds r2, r3, #2
  7758. 80039d4: 60c2 str r2, [r0, #12]
  7759. 80039d6: 785b ldrb r3, [r3, #1]
  7760. 80039d8: 3b41 subs r3, #65 @ 0x41
  7761. 80039da: b2db uxtb r3, r3
  7762. 80039dc: 2b35 cmp r3, #53 @ 0x35
  7763. 80039de: d900 bls.n 80039e2 <d_special_name+0x6e>
  7764. 80039e0: e0b6 b.n 8003b50 <d_special_name+0x1dc>
  7765. 80039e2: 4ac6 ldr r2, [pc, #792] @ (8003cfc <d_special_name+0x388>)
  7766. 80039e4: 009b lsls r3, r3, #2
  7767. 80039e6: 58d3 ldr r3, [r2, r3]
  7768. 80039e8: 469f mov pc, r3
  7769. 80039ea: 2100 movs r1, #0
  7770. 80039ec: f7ff fdd0 bl 8003590 <d_name>
  7771. 80039f0: 2300 movs r3, #0
  7772. 80039f2: 0002 movs r2, r0
  7773. 80039f4: 2113 movs r1, #19
  7774. 80039f6: 0020 movs r0, r4
  7775. 80039f8: f7fd ff34 bl 8001864 <d_make_comp>
  7776. 80039fc: b003 add sp, #12
  7777. 80039fe: bcc0 pop {r6, r7}
  7778. 8003a00: 46b9 mov r9, r7
  7779. 8003a02: 46b0 mov r8, r6
  7780. 8003a04: bdf0 pop {r4, r5, r6, r7, pc}
  7781. 8003a06: 789a ldrb r2, [r3, #2]
  7782. 8003a08: 2a00 cmp r2, #0
  7783. 8003a0a: d100 bne.n 8003a0e <d_special_name+0x9a>
  7784. 8003a0c: e0a7 b.n 8003b5e <d_special_name+0x1ea>
  7785. 8003a0e: 1cda adds r2, r3, #3
  7786. 8003a10: 60c2 str r2, [r0, #12]
  7787. 8003a12: 789a ldrb r2, [r3, #2]
  7788. 8003a14: 78db ldrb r3, [r3, #3]
  7789. 8003a16: 2a6e cmp r2, #110 @ 0x6e
  7790. 8003a18: d100 bne.n 8003a1c <d_special_name+0xa8>
  7791. 8003a1a: e1a1 b.n 8003d60 <d_special_name+0x3ec>
  7792. 8003a1c: 2b47 cmp r3, #71 @ 0x47
  7793. 8003a1e: d002 beq.n 8003a26 <d_special_name+0xb2>
  7794. 8003a20: 2b54 cmp r3, #84 @ 0x54
  7795. 8003a22: d000 beq.n 8003a26 <d_special_name+0xb2>
  7796. 8003a24: e09b b.n 8003b5e <d_special_name+0x1ea>
  7797. 8003a26: 0020 movs r0, r4
  7798. 8003a28: f7ff ffa4 bl 8003974 <d_special_name>
  7799. 8003a2c: 0002 movs r2, r0
  7800. 8003a2e: 2300 movs r3, #0
  7801. 8003a30: 214a movs r1, #74 @ 0x4a
  7802. 8003a32: 0020 movs r0, r4
  7803. 8003a34: f7fd ff16 bl 8001864 <d_make_comp>
  7804. 8003a38: e7e0 b.n 80039fc <d_special_name+0x88>
  7805. 8003a3a: 2100 movs r1, #0
  7806. 8003a3c: f7ff fda8 bl 8003590 <d_name>
  7807. 8003a40: 6963 ldr r3, [r4, #20]
  7808. 8003a42: 69a2 ldr r2, [r4, #24]
  7809. 8003a44: 0006 movs r6, r0
  7810. 8003a46: 4293 cmp r3, r2
  7811. 8003a48: db00 blt.n 8003a4c <d_special_name+0xd8>
  7812. 8003a4a: e08e b.n 8003b6a <d_special_name+0x1f6>
  7813. 8003a4c: 2200 movs r2, #0
  7814. 8003a4e: 0099 lsls r1, r3, #2
  7815. 8003a50: 6925 ldr r5, [r4, #16]
  7816. 8003a52: 18c9 adds r1, r1, r3
  7817. 8003a54: 0089 lsls r1, r1, #2
  7818. 8003a56: 186d adds r5, r5, r1
  7819. 8003a58: 3301 adds r3, #1
  7820. 8003a5a: 606a str r2, [r5, #4]
  7821. 8003a5c: 60aa str r2, [r5, #8]
  7822. 8003a5e: 6163 str r3, [r4, #20]
  7823. 8003a60: 2343 movs r3, #67 @ 0x43
  7824. 8003a62: 0020 movs r0, r4
  7825. 8003a64: 702b strb r3, [r5, #0]
  7826. 8003a66: f7fd ff69 bl 800193c <d_number>
  7827. 8003a6a: 60e8 str r0, [r5, #12]
  7828. 8003a6c: 002b movs r3, r5
  7829. 8003a6e: 0032 movs r2, r6
  7830. 8003a70: 2116 movs r1, #22
  7831. 8003a72: 0020 movs r0, r4
  7832. 8003a74: f7fd fef6 bl 8001864 <d_make_comp>
  7833. 8003a78: e7c0 b.n 80039fc <d_special_name+0x88>
  7834. 8003a7a: 2300 movs r3, #0
  7835. 8003a7c: a901 add r1, sp, #4
  7836. 8003a7e: 9301 str r3, [sp, #4]
  7837. 8003a80: f7fe fb02 bl 8002088 <d_maybe_module_name>
  7838. 8003a84: 2800 cmp r0, #0
  7839. 8003a86: d063 beq.n 8003b50 <d_special_name+0x1dc>
  7840. 8003a88: 9801 ldr r0, [sp, #4]
  7841. 8003a8a: 2800 cmp r0, #0
  7842. 8003a8c: d0b6 beq.n 80039fc <d_special_name+0x88>
  7843. 8003a8e: 0002 movs r2, r0
  7844. 8003a90: 2300 movs r3, #0
  7845. 8003a92: 2156 movs r1, #86 @ 0x56
  7846. 8003a94: 0020 movs r0, r4
  7847. 8003a96: f7fd fee5 bl 8001864 <d_make_comp>
  7848. 8003a9a: e7af b.n 80039fc <d_special_name+0x88>
  7849. 8003a9c: 789b ldrb r3, [r3, #2]
  7850. 8003a9e: 2b47 cmp r3, #71 @ 0x47
  7851. 8003aa0: d058 beq.n 8003b54 <d_special_name+0x1e0>
  7852. 8003aa2: 2b54 cmp r3, #84 @ 0x54
  7853. 8003aa4: d056 beq.n 8003b54 <d_special_name+0x1e0>
  7854. 8003aa6: 2100 movs r1, #0
  7855. 8003aa8: f7ff feea bl 8003880 <d_encoding.part.0>
  7856. 8003aac: 0002 movs r2, r0
  7857. 8003aae: 2300 movs r3, #0
  7858. 8003ab0: 2117 movs r1, #23
  7859. 8003ab2: 0020 movs r0, r4
  7860. 8003ab4: f7fd fed6 bl 8001864 <d_make_comp>
  7861. 8003ab8: e7a0 b.n 80039fc <d_special_name+0x88>
  7862. 8003aba: 2a72 cmp r2, #114 @ 0x72
  7863. 8003abc: d148 bne.n 8003b50 <d_special_name+0x1dc>
  7864. 8003abe: f7fd ff3d bl 800193c <d_number>
  7865. 8003ac2: 2801 cmp r0, #1
  7866. 8003ac4: dd44 ble.n 8003b50 <d_special_name+0x1dc>
  7867. 8003ac6: 68e3 ldr r3, [r4, #12]
  7868. 8003ac8: 781a ldrb r2, [r3, #0]
  7869. 8003aca: 2a00 cmp r2, #0
  7870. 8003acc: d040 beq.n 8003b50 <d_special_name+0x1dc>
  7871. 8003ace: 1c5d adds r5, r3, #1
  7872. 8003ad0: 60e5 str r5, [r4, #12]
  7873. 8003ad2: 781b ldrb r3, [r3, #0]
  7874. 8003ad4: 2b5f cmp r3, #95 @ 0x5f
  7875. 8003ad6: d13b bne.n 8003b50 <d_special_name+0x1dc>
  7876. 8003ad8: 3b1d subs r3, #29
  7877. 8003ada: 2200 movs r2, #0
  7878. 8003adc: 2700 movs r7, #0
  7879. 8003ade: 4698 mov r8, r3
  7880. 8003ae0: 1e46 subs r6, r0, #1
  7881. 8003ae2: 782b ldrb r3, [r5, #0]
  7882. 8003ae4: 2b00 cmp r3, #0
  7883. 8003ae6: d033 beq.n 8003b50 <d_special_name+0x1dc>
  7884. 8003ae8: 2b24 cmp r3, #36 @ 0x24
  7885. 8003aea: d000 beq.n 8003aee <d_special_name+0x17a>
  7886. 8003aec: e101 b.n 8003cf2 <d_special_name+0x37e>
  7887. 8003aee: 786b ldrb r3, [r5, #1]
  7888. 8003af0: 2b53 cmp r3, #83 @ 0x53
  7889. 8003af2: d100 bne.n 8003af6 <d_special_name+0x182>
  7890. 8003af4: e12c b.n 8003d50 <d_special_name+0x3dc>
  7891. 8003af6: 2b5f cmp r3, #95 @ 0x5f
  7892. 8003af8: d100 bne.n 8003afc <d_special_name+0x188>
  7893. 8003afa: e127 b.n 8003d4c <d_special_name+0x3d8>
  7894. 8003afc: 2b24 cmp r3, #36 @ 0x24
  7895. 8003afe: d127 bne.n 8003b50 <d_special_name+0x1dc>
  7896. 8003b00: 469c mov ip, r3
  7897. 8003b02: 68e5 ldr r5, [r4, #12]
  7898. 8003b04: 6961 ldr r1, [r4, #20]
  7899. 8003b06: 69a3 ldr r3, [r4, #24]
  7900. 8003b08: 3502 adds r5, #2
  7901. 8003b0a: 4299 cmp r1, r3
  7902. 8003b0c: da1f bge.n 8003b4e <d_special_name+0x1da>
  7903. 8003b0e: 0088 lsls r0, r1, #2
  7904. 8003b10: 6923 ldr r3, [r4, #16]
  7905. 8003b12: 1840 adds r0, r0, r1
  7906. 8003b14: 0080 lsls r0, r0, #2
  7907. 8003b16: 181b adds r3, r3, r0
  7908. 8003b18: 3101 adds r1, #1
  7909. 8003b1a: 605f str r7, [r3, #4]
  7910. 8003b1c: 609f str r7, [r3, #8]
  7911. 8003b1e: 6161 str r1, [r4, #20]
  7912. 8003b20: 4641 mov r1, r8
  7913. 8003b22: 7019 strb r1, [r3, #0]
  7914. 8003b24: 4661 mov r1, ip
  7915. 8003b26: 3e02 subs r6, #2
  7916. 8003b28: 60d9 str r1, [r3, #12]
  7917. 8003b2a: 60e5 str r5, [r4, #12]
  7918. 8003b2c: 2a00 cmp r2, #0
  7919. 8003b2e: d100 bne.n 8003b32 <d_special_name+0x1be>
  7920. 8003b30: e10a b.n 8003d48 <d_special_name+0x3d4>
  7921. 8003b32: 2141 movs r1, #65 @ 0x41
  7922. 8003b34: 0020 movs r0, r4
  7923. 8003b36: f7fd fe95 bl 8001864 <d_make_comp>
  7924. 8003b3a: 1e02 subs r2, r0, #0
  7925. 8003b3c: d008 beq.n 8003b50 <d_special_name+0x1dc>
  7926. 8003b3e: 2e00 cmp r6, #0
  7927. 8003b40: dccf bgt.n 8003ae2 <d_special_name+0x16e>
  7928. 8003b42: 2300 movs r3, #0
  7929. 8003b44: 2140 movs r1, #64 @ 0x40
  7930. 8003b46: 0020 movs r0, r4
  7931. 8003b48: f7fd fe8c bl 8001864 <d_make_comp>
  7932. 8003b4c: e756 b.n 80039fc <d_special_name+0x88>
  7933. 8003b4e: 60e5 str r5, [r4, #12]
  7934. 8003b50: 2000 movs r0, #0
  7935. 8003b52: e753 b.n 80039fc <d_special_name+0x88>
  7936. 8003b54: 0020 movs r0, r4
  7937. 8003b56: f7ff ff0d bl 8003974 <d_special_name>
  7938. 8003b5a: 0002 movs r2, r0
  7939. 8003b5c: e7a7 b.n 8003aae <d_special_name+0x13a>
  7940. 8003b5e: 2100 movs r1, #0
  7941. 8003b60: 0020 movs r0, r4
  7942. 8003b62: f7ff fe8d bl 8003880 <d_encoding.part.0>
  7943. 8003b66: 0002 movs r2, r0
  7944. 8003b68: e761 b.n 8003a2e <d_special_name+0xba>
  7945. 8003b6a: 2500 movs r5, #0
  7946. 8003b6c: e77e b.n 8003a6c <d_special_name+0xf8>
  7947. 8003b6e: 2176 movs r1, #118 @ 0x76
  7948. 8003b70: f7fd ff24 bl 80019bc <d_call_offset>
  7949. 8003b74: 2800 cmp r0, #0
  7950. 8003b76: d0eb beq.n 8003b50 <d_special_name+0x1dc>
  7951. 8003b78: 68e3 ldr r3, [r4, #12]
  7952. 8003b7a: 781b ldrb r3, [r3, #0]
  7953. 8003b7c: 2b47 cmp r3, #71 @ 0x47
  7954. 8003b7e: d100 bne.n 8003b82 <d_special_name+0x20e>
  7955. 8003b80: e0fc b.n 8003d7c <d_special_name+0x408>
  7956. 8003b82: 2b54 cmp r3, #84 @ 0x54
  7957. 8003b84: d100 bne.n 8003b88 <d_special_name+0x214>
  7958. 8003b86: e0f9 b.n 8003d7c <d_special_name+0x408>
  7959. 8003b88: 2100 movs r1, #0
  7960. 8003b8a: 0020 movs r0, r4
  7961. 8003b8c: f7ff fe78 bl 8003880 <d_encoding.part.0>
  7962. 8003b90: 0002 movs r2, r0
  7963. 8003b92: 2300 movs r3, #0
  7964. 8003b94: 2110 movs r1, #16
  7965. 8003b96: 0020 movs r0, r4
  7966. 8003b98: f7fd fe64 bl 8001864 <d_make_comp>
  7967. 8003b9c: e72e b.n 80039fc <d_special_name+0x88>
  7968. 8003b9e: 2168 movs r1, #104 @ 0x68
  7969. 8003ba0: f7fd ff0c bl 80019bc <d_call_offset>
  7970. 8003ba4: 2800 cmp r0, #0
  7971. 8003ba6: d0d3 beq.n 8003b50 <d_special_name+0x1dc>
  7972. 8003ba8: 68e3 ldr r3, [r4, #12]
  7973. 8003baa: 781b ldrb r3, [r3, #0]
  7974. 8003bac: 2b47 cmp r3, #71 @ 0x47
  7975. 8003bae: d100 bne.n 8003bb2 <d_special_name+0x23e>
  7976. 8003bb0: e0e9 b.n 8003d86 <d_special_name+0x412>
  7977. 8003bb2: 2b54 cmp r3, #84 @ 0x54
  7978. 8003bb4: d100 bne.n 8003bb8 <d_special_name+0x244>
  7979. 8003bb6: e0e6 b.n 8003d86 <d_special_name+0x412>
  7980. 8003bb8: 2100 movs r1, #0
  7981. 8003bba: 0020 movs r0, r4
  7982. 8003bbc: f7ff fe60 bl 8003880 <d_encoding.part.0>
  7983. 8003bc0: 0002 movs r2, r0
  7984. 8003bc2: 2300 movs r3, #0
  7985. 8003bc4: 210f movs r1, #15
  7986. 8003bc6: 0020 movs r0, r4
  7987. 8003bc8: f7fd fe4c bl 8001864 <d_make_comp>
  7988. 8003bcc: e716 b.n 80039fc <d_special_name+0x88>
  7989. 8003bce: 310a adds r1, #10
  7990. 8003bd0: 62c1 str r1, [r0, #44] @ 0x2c
  7991. 8003bd2: f7fe fa89 bl 80020e8 <d_type>
  7992. 8003bd6: 2300 movs r3, #0
  7993. 8003bd8: 0002 movs r2, r0
  7994. 8003bda: 210a movs r1, #10
  7995. 8003bdc: 0020 movs r0, r4
  7996. 8003bde: f7fd fe41 bl 8001864 <d_make_comp>
  7997. 8003be2: e70b b.n 80039fc <d_special_name+0x88>
  7998. 8003be4: 2100 movs r1, #0
  7999. 8003be6: f7ff fcd3 bl 8003590 <d_name>
  8000. 8003bea: 2300 movs r3, #0
  8001. 8003bec: 0002 movs r2, r0
  8002. 8003bee: 2115 movs r1, #21
  8003. 8003bf0: 0020 movs r0, r4
  8004. 8003bf2: f7fd fe37 bl 8001864 <d_make_comp>
  8005. 8003bf6: e701 b.n 80039fc <d_special_name+0x88>
  8006. 8003bf8: 310f adds r1, #15
  8007. 8003bfa: 62c1 str r1, [r0, #44] @ 0x2c
  8008. 8003bfc: f7fe fa74 bl 80020e8 <d_type>
  8009. 8003c00: 2300 movs r3, #0
  8010. 8003c02: 0002 movs r2, r0
  8011. 8003c04: 2109 movs r1, #9
  8012. 8003c06: 0020 movs r0, r4
  8013. 8003c08: f7fd fe2c bl 8001864 <d_make_comp>
  8014. 8003c0c: e6f6 b.n 80039fc <d_special_name+0x88>
  8015. 8003c0e: 2100 movs r1, #0
  8016. 8003c10: f7fd fed4 bl 80019bc <d_call_offset>
  8017. 8003c14: 2800 cmp r0, #0
  8018. 8003c16: d09b beq.n 8003b50 <d_special_name+0x1dc>
  8019. 8003c18: 2100 movs r1, #0
  8020. 8003c1a: 0020 movs r0, r4
  8021. 8003c1c: f7fd fece bl 80019bc <d_call_offset>
  8022. 8003c20: 2800 cmp r0, #0
  8023. 8003c22: d095 beq.n 8003b50 <d_special_name+0x1dc>
  8024. 8003c24: 68e3 ldr r3, [r4, #12]
  8025. 8003c26: 781b ldrb r3, [r3, #0]
  8026. 8003c28: 2b47 cmp r3, #71 @ 0x47
  8027. 8003c2a: d100 bne.n 8003c2e <d_special_name+0x2ba>
  8028. 8003c2c: e0b5 b.n 8003d9a <d_special_name+0x426>
  8029. 8003c2e: 2b54 cmp r3, #84 @ 0x54
  8030. 8003c30: d100 bne.n 8003c34 <d_special_name+0x2c0>
  8031. 8003c32: e0b2 b.n 8003d9a <d_special_name+0x426>
  8032. 8003c34: 2100 movs r1, #0
  8033. 8003c36: 0020 movs r0, r4
  8034. 8003c38: f7ff fe22 bl 8003880 <d_encoding.part.0>
  8035. 8003c3c: 0002 movs r2, r0
  8036. 8003c3e: 2300 movs r3, #0
  8037. 8003c40: 2111 movs r1, #17
  8038. 8003c42: 0020 movs r0, r4
  8039. 8003c44: f7fd fe0e bl 8001864 <d_make_comp>
  8040. 8003c48: e6d8 b.n 80039fc <d_special_name+0x88>
  8041. 8003c4a: 2100 movs r1, #0
  8042. 8003c4c: f7ff fca0 bl 8003590 <d_name>
  8043. 8003c50: 2300 movs r3, #0
  8044. 8003c52: 0002 movs r2, r0
  8045. 8003c54: 2114 movs r1, #20
  8046. 8003c56: 0020 movs r0, r4
  8047. 8003c58: f7fd fe04 bl 8001864 <d_make_comp>
  8048. 8003c5c: e6ce b.n 80039fc <d_special_name+0x88>
  8049. 8003c5e: f7fe fa43 bl 80020e8 <d_type>
  8050. 8003c62: 2300 movs r3, #0
  8051. 8003c64: 0002 movs r2, r0
  8052. 8003c66: 2112 movs r1, #18
  8053. 8003c68: 0020 movs r0, r4
  8054. 8003c6a: f7fd fdfb bl 8001864 <d_make_comp>
  8055. 8003c6e: e6c5 b.n 80039fc <d_special_name+0x88>
  8056. 8003c70: f7fe fa3a bl 80020e8 <d_type>
  8057. 8003c74: 2300 movs r3, #0
  8058. 8003c76: 0002 movs r2, r0
  8059. 8003c78: 210c movs r1, #12
  8060. 8003c7a: 0020 movs r0, r4
  8061. 8003c7c: f7fd fdf2 bl 8001864 <d_make_comp>
  8062. 8003c80: e6bc b.n 80039fc <d_special_name+0x88>
  8063. 8003c82: f7fe fa31 bl 80020e8 <d_type>
  8064. 8003c86: 2300 movs r3, #0
  8065. 8003c88: 0002 movs r2, r0
  8066. 8003c8a: 210d movs r1, #13
  8067. 8003c8c: 0020 movs r0, r4
  8068. 8003c8e: f7fd fde9 bl 8001864 <d_make_comp>
  8069. 8003c92: e6b3 b.n 80039fc <d_special_name+0x88>
  8070. 8003c94: f7fe fa28 bl 80020e8 <d_type>
  8071. 8003c98: 0005 movs r5, r0
  8072. 8003c9a: 0020 movs r0, r4
  8073. 8003c9c: f7fd fe4e bl 800193c <d_number>
  8074. 8003ca0: 2800 cmp r0, #0
  8075. 8003ca2: da00 bge.n 8003ca6 <d_special_name+0x332>
  8076. 8003ca4: e754 b.n 8003b50 <d_special_name+0x1dc>
  8077. 8003ca6: 68e2 ldr r2, [r4, #12]
  8078. 8003ca8: 7813 ldrb r3, [r2, #0]
  8079. 8003caa: 2b5f cmp r3, #95 @ 0x5f
  8080. 8003cac: d000 beq.n 8003cb0 <d_special_name+0x33c>
  8081. 8003cae: e74f b.n 8003b50 <d_special_name+0x1dc>
  8082. 8003cb0: 3201 adds r2, #1
  8083. 8003cb2: 60e2 str r2, [r4, #12]
  8084. 8003cb4: 0020 movs r0, r4
  8085. 8003cb6: f7fe fa17 bl 80020e8 <d_type>
  8086. 8003cba: 6ae3 ldr r3, [r4, #44] @ 0x2c
  8087. 8003cbc: 0002 movs r2, r0
  8088. 8003cbe: 3305 adds r3, #5
  8089. 8003cc0: 62e3 str r3, [r4, #44] @ 0x2c
  8090. 8003cc2: 210b movs r1, #11
  8091. 8003cc4: 002b movs r3, r5
  8092. 8003cc6: 0020 movs r0, r4
  8093. 8003cc8: f7fd fdcc bl 8001864 <d_make_comp>
  8094. 8003ccc: e696 b.n 80039fc <d_special_name+0x88>
  8095. 8003cce: f000 f8f5 bl 8003ebc <d_template_arg>
  8096. 8003cd2: 2300 movs r3, #0
  8097. 8003cd4: 0002 movs r2, r0
  8098. 8003cd6: 2130 movs r1, #48 @ 0x30
  8099. 8003cd8: 0020 movs r0, r4
  8100. 8003cda: f7fd fdc3 bl 8001864 <d_make_comp>
  8101. 8003cde: e68d b.n 80039fc <d_special_name+0x88>
  8102. 8003ce0: f7fe fa02 bl 80020e8 <d_type>
  8103. 8003ce4: 2300 movs r3, #0
  8104. 8003ce6: 0002 movs r2, r0
  8105. 8003ce8: 210e movs r1, #14
  8106. 8003cea: 0020 movs r0, r4
  8107. 8003cec: f7fd fdba bl 8001864 <d_make_comp>
  8108. 8003cf0: e684 b.n 80039fc <d_special_name+0x88>
  8109. 8003cf2: 2100 movs r1, #0
  8110. 8003cf4: e009 b.n 8003d0a <d_special_name+0x396>
  8111. 8003cf6: 46c0 nop @ (mov r8, r8)
  8112. 8003cf8: 08014f28 .word 0x08014f28
  8113. 8003cfc: 08014f80 .word 0x08014f80
  8114. 8003d00: 2b24 cmp r3, #36 @ 0x24
  8115. 8003d02: d005 beq.n 8003d10 <d_special_name+0x39c>
  8116. 8003d04: 3101 adds r1, #1
  8117. 8003d06: 42b1 cmp r1, r6
  8118. 8003d08: d002 beq.n 8003d10 <d_special_name+0x39c>
  8119. 8003d0a: 5c6b ldrb r3, [r5, r1]
  8120. 8003d0c: 2b00 cmp r3, #0
  8121. 8003d0e: d1f7 bne.n 8003d00 <d_special_name+0x38c>
  8122. 8003d10: 6960 ldr r0, [r4, #20]
  8123. 8003d12: 69a3 ldr r3, [r4, #24]
  8124. 8003d14: 4298 cmp r0, r3
  8125. 8003d16: da1e bge.n 8003d56 <d_special_name+0x3e2>
  8126. 8003d18: 0083 lsls r3, r0, #2
  8127. 8003d1a: 181b adds r3, r3, r0
  8128. 8003d1c: 009b lsls r3, r3, #2
  8129. 8003d1e: 4699 mov r9, r3
  8130. 8003d20: 6923 ldr r3, [r4, #16]
  8131. 8003d22: 3001 adds r0, #1
  8132. 8003d24: 469c mov ip, r3
  8133. 8003d26: 464b mov r3, r9
  8134. 8003d28: 4463 add r3, ip
  8135. 8003d2a: 605f str r7, [r3, #4]
  8136. 8003d2c: 609f str r7, [r3, #8]
  8137. 8003d2e: 6160 str r0, [r4, #20]
  8138. 8003d30: 2900 cmp r1, #0
  8139. 8003d32: d100 bne.n 8003d36 <d_special_name+0x3c2>
  8140. 8003d34: e70c b.n 8003b50 <d_special_name+0x1dc>
  8141. 8003d36: 701f strb r7, [r3, #0]
  8142. 8003d38: 60dd str r5, [r3, #12]
  8143. 8003d3a: 68e5 ldr r5, [r4, #12]
  8144. 8003d3c: 605f str r7, [r3, #4]
  8145. 8003d3e: 609f str r7, [r3, #8]
  8146. 8003d40: 6119 str r1, [r3, #16]
  8147. 8003d42: 186d adds r5, r5, r1
  8148. 8003d44: 1a76 subs r6, r6, r1
  8149. 8003d46: e6f0 b.n 8003b2a <d_special_name+0x1b6>
  8150. 8003d48: 001a movs r2, r3
  8151. 8003d4a: e6f8 b.n 8003b3e <d_special_name+0x1ca>
  8152. 8003d4c: 232e movs r3, #46 @ 0x2e
  8153. 8003d4e: e6d7 b.n 8003b00 <d_special_name+0x18c>
  8154. 8003d50: 232f movs r3, #47 @ 0x2f
  8155. 8003d52: 469c mov ip, r3
  8156. 8003d54: e6d5 b.n 8003b02 <d_special_name+0x18e>
  8157. 8003d56: 68e3 ldr r3, [r4, #12]
  8158. 8003d58: 2000 movs r0, #0
  8159. 8003d5a: 185b adds r3, r3, r1
  8160. 8003d5c: 60e3 str r3, [r4, #12]
  8161. 8003d5e: e64d b.n 80039fc <d_special_name+0x88>
  8162. 8003d60: 2b47 cmp r3, #71 @ 0x47
  8163. 8003d62: d015 beq.n 8003d90 <d_special_name+0x41c>
  8164. 8003d64: 2b54 cmp r3, #84 @ 0x54
  8165. 8003d66: d013 beq.n 8003d90 <d_special_name+0x41c>
  8166. 8003d68: 2100 movs r1, #0
  8167. 8003d6a: f7ff fd89 bl 8003880 <d_encoding.part.0>
  8168. 8003d6e: 0002 movs r2, r0
  8169. 8003d70: 2300 movs r3, #0
  8170. 8003d72: 214b movs r1, #75 @ 0x4b
  8171. 8003d74: 0020 movs r0, r4
  8172. 8003d76: f7fd fd75 bl 8001864 <d_make_comp>
  8173. 8003d7a: e63f b.n 80039fc <d_special_name+0x88>
  8174. 8003d7c: 0020 movs r0, r4
  8175. 8003d7e: f7ff fdf9 bl 8003974 <d_special_name>
  8176. 8003d82: 0002 movs r2, r0
  8177. 8003d84: e705 b.n 8003b92 <d_special_name+0x21e>
  8178. 8003d86: 0020 movs r0, r4
  8179. 8003d88: f7ff fdf4 bl 8003974 <d_special_name>
  8180. 8003d8c: 0002 movs r2, r0
  8181. 8003d8e: e718 b.n 8003bc2 <d_special_name+0x24e>
  8182. 8003d90: 0020 movs r0, r4
  8183. 8003d92: f7ff fdef bl 8003974 <d_special_name>
  8184. 8003d96: 0002 movs r2, r0
  8185. 8003d98: e7ea b.n 8003d70 <d_special_name+0x3fc>
  8186. 8003d9a: 0020 movs r0, r4
  8187. 8003d9c: f7ff fdea bl 8003974 <d_special_name>
  8188. 8003da0: 0002 movs r2, r0
  8189. 8003da2: e74c b.n 8003c3e <d_special_name+0x2ca>
  8190.  
  8191. 08003da4 <d_expr_primary>:
  8192. 8003da4: b5f8 push {r3, r4, r5, r6, r7, lr}
  8193. 8003da6: 68c2 ldr r2, [r0, #12]
  8194. 8003da8: 0004 movs r4, r0
  8195. 8003daa: 7813 ldrb r3, [r2, #0]
  8196. 8003dac: 2b4c cmp r3, #76 @ 0x4c
  8197. 8003dae: d132 bne.n 8003e16 <d_expr_primary+0x72>
  8198. 8003db0: 1c53 adds r3, r2, #1
  8199. 8003db2: 60c3 str r3, [r0, #12]
  8200. 8003db4: 7851 ldrb r1, [r2, #1]
  8201. 8003db6: 295f cmp r1, #95 @ 0x5f
  8202. 8003db8: d04c beq.n 8003e54 <d_expr_primary+0xb0>
  8203. 8003dba: 295a cmp r1, #90 @ 0x5a
  8204. 8003dbc: d112 bne.n 8003de4 <d_expr_primary+0x40>
  8205. 8003dbe: 1c5a adds r2, r3, #1
  8206. 8003dc0: 60e2 str r2, [r4, #12]
  8207. 8003dc2: 785b ldrb r3, [r3, #1]
  8208. 8003dc4: 2b47 cmp r3, #71 @ 0x47
  8209. 8003dc6: d03e beq.n 8003e46 <d_expr_primary+0xa2>
  8210. 8003dc8: 2b54 cmp r3, #84 @ 0x54
  8211. 8003dca: d03c beq.n 8003e46 <d_expr_primary+0xa2>
  8212. 8003dcc: 2100 movs r1, #0
  8213. 8003dce: 0020 movs r0, r4
  8214. 8003dd0: f7ff fd56 bl 8003880 <d_encoding.part.0>
  8215. 8003dd4: 0005 movs r5, r0
  8216. 8003dd6: 68e3 ldr r3, [r4, #12]
  8217. 8003dd8: 781a ldrb r2, [r3, #0]
  8218. 8003dda: 2a45 cmp r2, #69 @ 0x45
  8219. 8003ddc: d11b bne.n 8003e16 <d_expr_primary+0x72>
  8220. 8003dde: 3301 adds r3, #1
  8221. 8003de0: 60e3 str r3, [r4, #12]
  8222. 8003de2: e019 b.n 8003e18 <d_expr_primary+0x74>
  8223. 8003de4: f7fe f980 bl 80020e8 <d_type>
  8224. 8003de8: 1e05 subs r5, r0, #0
  8225. 8003dea: d014 beq.n 8003e16 <d_expr_primary+0x72>
  8226. 8003dec: 7803 ldrb r3, [r0, #0]
  8227. 8003dee: 68e6 ldr r6, [r4, #12]
  8228. 8003df0: 2b27 cmp r3, #39 @ 0x27
  8229. 8003df2: d013 beq.n 8003e1c <d_expr_primary+0x78>
  8230. 8003df4: 7832 ldrb r2, [r6, #0]
  8231. 8003df6: 213d movs r1, #61 @ 0x3d
  8232. 8003df8: 2a6e cmp r2, #110 @ 0x6e
  8233. 8003dfa: d050 beq.n 8003e9e <d_expr_primary+0xfa>
  8234. 8003dfc: 2a45 cmp r2, #69 @ 0x45
  8235. 8003dfe: d054 beq.n 8003eaa <d_expr_primary+0x106>
  8236. 8003e00: 1c73 adds r3, r6, #1
  8237. 8003e02: e006 b.n 8003e12 <d_expr_primary+0x6e>
  8238. 8003e04: 60e3 str r3, [r4, #12]
  8239. 8003e06: 0018 movs r0, r3
  8240. 8003e08: 3301 adds r3, #1
  8241. 8003e0a: 1e5a subs r2, r3, #1
  8242. 8003e0c: 7812 ldrb r2, [r2, #0]
  8243. 8003e0e: 2a45 cmp r2, #69 @ 0x45
  8244. 8003e10: d027 beq.n 8003e62 <d_expr_primary+0xbe>
  8245. 8003e12: 2a00 cmp r2, #0
  8246. 8003e14: d1f6 bne.n 8003e04 <d_expr_primary+0x60>
  8247. 8003e16: 2500 movs r5, #0
  8248. 8003e18: 0028 movs r0, r5
  8249. 8003e1a: bdf8 pop {r3, r4, r5, r6, r7, pc}
  8250. 8003e1c: 68c3 ldr r3, [r0, #12]
  8251. 8003e1e: 7c1a ldrb r2, [r3, #16]
  8252. 8003e20: 2a00 cmp r2, #0
  8253. 8003e22: d003 beq.n 8003e2c <d_expr_primary+0x88>
  8254. 8003e24: 6ae2 ldr r2, [r4, #44] @ 0x2c
  8255. 8003e26: 6859 ldr r1, [r3, #4]
  8256. 8003e28: 1a52 subs r2, r2, r1
  8257. 8003e2a: 62e2 str r2, [r4, #44] @ 0x2c
  8258. 8003e2c: 4922 ldr r1, [pc, #136] @ (8003eb8 <d_expr_primary+0x114>)
  8259. 8003e2e: 6818 ldr r0, [r3, #0]
  8260. 8003e30: f7fc fb7a bl 8000528 <strcmp>
  8261. 8003e34: 7832 ldrb r2, [r6, #0]
  8262. 8003e36: 2800 cmp r0, #0
  8263. 8003e38: d1dd bne.n 8003df6 <d_expr_primary+0x52>
  8264. 8003e3a: 2a45 cmp r2, #69 @ 0x45
  8265. 8003e3c: d039 beq.n 8003eb2 <d_expr_primary+0x10e>
  8266. 8003e3e: 2a6e cmp r2, #110 @ 0x6e
  8267. 8003e40: d02d beq.n 8003e9e <d_expr_primary+0xfa>
  8268. 8003e42: 213d movs r1, #61 @ 0x3d
  8269. 8003e44: e7dc b.n 8003e00 <d_expr_primary+0x5c>
  8270. 8003e46: 0020 movs r0, r4
  8271. 8003e48: f7ff fd94 bl 8003974 <d_special_name>
  8272. 8003e4c: 68e3 ldr r3, [r4, #12]
  8273. 8003e4e: 0005 movs r5, r0
  8274. 8003e50: 781a ldrb r2, [r3, #0]
  8275. 8003e52: e7c2 b.n 8003dda <d_expr_primary+0x36>
  8276. 8003e54: 1c93 adds r3, r2, #2
  8277. 8003e56: 60c3 str r3, [r0, #12]
  8278. 8003e58: 7892 ldrb r2, [r2, #2]
  8279. 8003e5a: 2500 movs r5, #0
  8280. 8003e5c: 2a5a cmp r2, #90 @ 0x5a
  8281. 8003e5e: d1bc bne.n 8003dda <d_expr_primary+0x36>
  8282. 8003e60: e7ad b.n 8003dbe <d_expr_primary+0x1a>
  8283. 8003e62: 1b80 subs r0, r0, r6
  8284. 8003e64: 6962 ldr r2, [r4, #20]
  8285. 8003e66: 69a3 ldr r3, [r4, #24]
  8286. 8003e68: 429a cmp r2, r3
  8287. 8003e6a: da20 bge.n 8003eae <d_expr_primary+0x10a>
  8288. 8003e6c: 0097 lsls r7, r2, #2
  8289. 8003e6e: 6923 ldr r3, [r4, #16]
  8290. 8003e70: 18bf adds r7, r7, r2
  8291. 8003e72: 00bf lsls r7, r7, #2
  8292. 8003e74: 19db adds r3, r3, r7
  8293. 8003e76: 2700 movs r7, #0
  8294. 8003e78: 3201 adds r2, #1
  8295. 8003e7a: 605f str r7, [r3, #4]
  8296. 8003e7c: 609f str r7, [r3, #8]
  8297. 8003e7e: 6162 str r2, [r4, #20]
  8298. 8003e80: 2800 cmp r0, #0
  8299. 8003e82: dd14 ble.n 8003eae <d_expr_primary+0x10a>
  8300. 8003e84: 605f str r7, [r3, #4]
  8301. 8003e86: 609f str r7, [r3, #8]
  8302. 8003e88: 701f strb r7, [r3, #0]
  8303. 8003e8a: 60de str r6, [r3, #12]
  8304. 8003e8c: 6118 str r0, [r3, #16]
  8305. 8003e8e: 002a movs r2, r5
  8306. 8003e90: 0020 movs r0, r4
  8307. 8003e92: f7fd fce7 bl 8001864 <d_make_comp>
  8308. 8003e96: 68e3 ldr r3, [r4, #12]
  8309. 8003e98: 0005 movs r5, r0
  8310. 8003e9a: 781a ldrb r2, [r3, #0]
  8311. 8003e9c: e79d b.n 8003dda <d_expr_primary+0x36>
  8312. 8003e9e: 1c73 adds r3, r6, #1
  8313. 8003ea0: 60e3 str r3, [r4, #12]
  8314. 8003ea2: 7872 ldrb r2, [r6, #1]
  8315. 8003ea4: 213e movs r1, #62 @ 0x3e
  8316. 8003ea6: 001e movs r6, r3
  8317. 8003ea8: e7a8 b.n 8003dfc <d_expr_primary+0x58>
  8318. 8003eaa: 2000 movs r0, #0
  8319. 8003eac: e7da b.n 8003e64 <d_expr_primary+0xc0>
  8320. 8003eae: 2300 movs r3, #0
  8321. 8003eb0: e7ed b.n 8003e8e <d_expr_primary+0xea>
  8322. 8003eb2: 3601 adds r6, #1
  8323. 8003eb4: 60e6 str r6, [r4, #12]
  8324. 8003eb6: e7af b.n 8003e18 <d_expr_primary+0x74>
  8325. 8003eb8: 08014138 .word 0x08014138
  8326.  
  8327. 08003ebc <d_template_arg>:
  8328. 8003ebc: b570 push {r4, r5, r6, lr}
  8329. 8003ebe: 68c2 ldr r2, [r0, #12]
  8330. 8003ec0: 0004 movs r4, r0
  8331. 8003ec2: 7813 ldrb r3, [r2, #0]
  8332. 8003ec4: 2b4c cmp r3, #76 @ 0x4c
  8333. 8003ec6: d019 beq.n 8003efc <d_template_arg+0x40>
  8334. 8003ec8: d807 bhi.n 8003eda <d_template_arg+0x1e>
  8335. 8003eca: 3b49 subs r3, #73 @ 0x49
  8336. 8003ecc: 2b01 cmp r3, #1
  8337. 8003ece: d818 bhi.n 8003f02 <d_template_arg+0x46>
  8338. 8003ed0: 3201 adds r2, #1
  8339. 8003ed2: 60c2 str r2, [r0, #12]
  8340. 8003ed4: f000 f81c bl 8003f10 <d_template_args_1>
  8341. 8003ed8: bd70 pop {r4, r5, r6, pc}
  8342. 8003eda: 2b58 cmp r3, #88 @ 0x58
  8343. 8003edc: d111 bne.n 8003f02 <d_template_arg+0x46>
  8344. 8003ede: 3201 adds r2, #1
  8345. 8003ee0: 3b57 subs r3, #87 @ 0x57
  8346. 8003ee2: 6b05 ldr r5, [r0, #48] @ 0x30
  8347. 8003ee4: 60c2 str r2, [r0, #12]
  8348. 8003ee6: 6303 str r3, [r0, #48] @ 0x30
  8349. 8003ee8: f7fe ffe4 bl 8002eb4 <d_expression_1>
  8350. 8003eec: 68e3 ldr r3, [r4, #12]
  8351. 8003eee: 6325 str r5, [r4, #48] @ 0x30
  8352. 8003ef0: 781a ldrb r2, [r3, #0]
  8353. 8003ef2: 2a45 cmp r2, #69 @ 0x45
  8354. 8003ef4: d109 bne.n 8003f0a <d_template_arg+0x4e>
  8355. 8003ef6: 3301 adds r3, #1
  8356. 8003ef8: 60e3 str r3, [r4, #12]
  8357. 8003efa: e7ed b.n 8003ed8 <d_template_arg+0x1c>
  8358. 8003efc: f7ff ff52 bl 8003da4 <d_expr_primary>
  8359. 8003f00: e7ea b.n 8003ed8 <d_template_arg+0x1c>
  8360. 8003f02: 0020 movs r0, r4
  8361. 8003f04: f7fe f8f0 bl 80020e8 <d_type>
  8362. 8003f08: e7e6 b.n 8003ed8 <d_template_arg+0x1c>
  8363. 8003f0a: 2000 movs r0, #0
  8364. 8003f0c: e7e4 b.n 8003ed8 <d_template_arg+0x1c>
  8365. 8003f0e: 46c0 nop @ (mov r8, r8)
  8366.  
  8367. 08003f10 <d_template_args_1>:
  8368. 8003f10: b570 push {r4, r5, r6, lr}
  8369. 8003f12: 68c3 ldr r3, [r0, #12]
  8370. 8003f14: 0004 movs r4, r0
  8371. 8003f16: 781a ldrb r2, [r3, #0]
  8372. 8003f18: 6a86 ldr r6, [r0, #40] @ 0x28
  8373. 8003f1a: b082 sub sp, #8
  8374. 8003f1c: 2a45 cmp r2, #69 @ 0x45
  8375. 8003f1e: d01e beq.n 8003f5e <d_template_args_1+0x4e>
  8376. 8003f20: 2300 movs r3, #0
  8377. 8003f22: ad01 add r5, sp, #4
  8378. 8003f24: 9301 str r3, [sp, #4]
  8379. 8003f26: e00d b.n 8003f44 <d_template_args_1+0x34>
  8380. 8003f28: 2300 movs r3, #0
  8381. 8003f2a: 212f movs r1, #47 @ 0x2f
  8382. 8003f2c: 0020 movs r0, r4
  8383. 8003f2e: f7fd fc99 bl 8001864 <d_make_comp>
  8384. 8003f32: 6028 str r0, [r5, #0]
  8385. 8003f34: 2800 cmp r0, #0
  8386. 8003f36: d00a beq.n 8003f4e <d_template_args_1+0x3e>
  8387. 8003f38: 68e3 ldr r3, [r4, #12]
  8388. 8003f3a: 3010 adds r0, #16
  8389. 8003f3c: 781a ldrb r2, [r3, #0]
  8390. 8003f3e: 0005 movs r5, r0
  8391. 8003f40: 2a45 cmp r2, #69 @ 0x45
  8392. 8003f42: d007 beq.n 8003f54 <d_template_args_1+0x44>
  8393. 8003f44: 0020 movs r0, r4
  8394. 8003f46: f7ff ffb9 bl 8003ebc <d_template_arg>
  8395. 8003f4a: 1e02 subs r2, r0, #0
  8396. 8003f4c: d1ec bne.n 8003f28 <d_template_args_1+0x18>
  8397. 8003f4e: 2000 movs r0, #0
  8398. 8003f50: b002 add sp, #8
  8399. 8003f52: bd70 pop {r4, r5, r6, pc}
  8400. 8003f54: 3301 adds r3, #1
  8401. 8003f56: 9801 ldr r0, [sp, #4]
  8402. 8003f58: 60e3 str r3, [r4, #12]
  8403. 8003f5a: 62a6 str r6, [r4, #40] @ 0x28
  8404. 8003f5c: e7f8 b.n 8003f50 <d_template_args_1+0x40>
  8405. 8003f5e: 3301 adds r3, #1
  8406. 8003f60: 2200 movs r2, #0
  8407. 8003f62: 212f movs r1, #47 @ 0x2f
  8408. 8003f64: 60c3 str r3, [r0, #12]
  8409. 8003f66: 2300 movs r3, #0
  8410. 8003f68: f7fd fc7c bl 8001864 <d_make_comp>
  8411. 8003f6c: e7f0 b.n 8003f50 <d_template_args_1+0x40>
  8412. 8003f6e: 46c0 nop @ (mov r8, r8)
  8413.  
  8414. 08003f70 <d_prefix>:
  8415. 8003f70: b5f8 push {r3, r4, r5, r6, r7, lr}
  8416. 8003f72: 0005 movs r5, r0
  8417. 8003f74: 000e movs r6, r1
  8418. 8003f76: 2400 movs r4, #0
  8419. 8003f78: 2720 movs r7, #32
  8420. 8003f7a: 68eb ldr r3, [r5, #12]
  8421. 8003f7c: 7819 ldrb r1, [r3, #0]
  8422. 8003f7e: 2944 cmp r1, #68 @ 0x44
  8423. 8003f80: d039 beq.n 8003ff6 <d_prefix+0x86>
  8424. 8003f82: 2949 cmp r1, #73 @ 0x49
  8425. 8003f84: d04c beq.n 8004020 <d_prefix+0xb0>
  8426. 8003f86: 2954 cmp r1, #84 @ 0x54
  8427. 8003f88: d120 bne.n 8003fcc <d_prefix+0x5c>
  8428. 8003f8a: 2c00 cmp r4, #0
  8429. 8003f8c: d14a bne.n 8004024 <d_prefix+0xb4>
  8430. 8003f8e: 0028 movs r0, r5
  8431. 8003f90: f7fd fece bl 8001d30 <d_template_param>
  8432. 8003f94: 0004 movs r4, r0
  8433. 8003f96: 2c00 cmp r4, #0
  8434. 8003f98: d044 beq.n 8004024 <d_prefix+0xb4>
  8435. 8003f9a: 68eb ldr r3, [r5, #12]
  8436. 8003f9c: 781a ldrb r2, [r3, #0]
  8437. 8003f9e: 2a45 cmp r2, #69 @ 0x45
  8438. 8003fa0: d041 beq.n 8004026 <d_prefix+0xb6>
  8439. 8003fa2: 2e00 cmp r6, #0
  8440. 8003fa4: d132 bne.n 800400c <d_prefix+0x9c>
  8441. 8003fa6: 7819 ldrb r1, [r3, #0]
  8442. 8003fa8: 2944 cmp r1, #68 @ 0x44
  8443. 8003faa: d024 beq.n 8003ff6 <d_prefix+0x86>
  8444. 8003fac: 2949 cmp r1, #73 @ 0x49
  8445. 8003fae: d1ea bne.n 8003f86 <d_prefix+0x16>
  8446. 8003fb0: 3301 adds r3, #1
  8447. 8003fb2: 60eb str r3, [r5, #12]
  8448. 8003fb4: 0028 movs r0, r5
  8449. 8003fb6: f7ff ffab bl 8003f10 <d_template_args_1>
  8450. 8003fba: 1e03 subs r3, r0, #0
  8451. 8003fbc: d032 beq.n 8004024 <d_prefix+0xb4>
  8452. 8003fbe: 0022 movs r2, r4
  8453. 8003fc0: 2104 movs r1, #4
  8454. 8003fc2: 0028 movs r0, r5
  8455. 8003fc4: f7fd fc4e bl 8001864 <d_make_comp>
  8456. 8003fc8: 0004 movs r4, r0
  8457. 8003fca: e7e4 b.n 8003f96 <d_prefix+0x26>
  8458. 8003fcc: 294d cmp r1, #77 @ 0x4d
  8459. 8003fce: d02c beq.n 800402a <d_prefix+0xba>
  8460. 8003fd0: 2953 cmp r1, #83 @ 0x53
  8461. 8003fd2: d134 bne.n 800403e <d_prefix+0xce>
  8462. 8003fd4: 0028 movs r0, r5
  8463. 8003fd6: 3952 subs r1, #82 @ 0x52
  8464. 8003fd8: f7fd ff94 bl 8001f04 <d_substitution>
  8465. 8003fdc: 1e02 subs r2, r0, #0
  8466. 8003fde: d021 beq.n 8004024 <d_prefix+0xb4>
  8467. 8003fe0: 7803 ldrb r3, [r0, #0]
  8468. 8003fe2: 3b53 subs r3, #83 @ 0x53
  8469. 8003fe4: 2b01 cmp r3, #1
  8470. 8003fe6: d90b bls.n 8004000 <d_prefix+0x90>
  8471. 8003fe8: 2c00 cmp r4, #0
  8472. 8003fea: d11b bne.n 8004024 <d_prefix+0xb4>
  8473. 8003fec: 68eb ldr r3, [r5, #12]
  8474. 8003fee: 0014 movs r4, r2
  8475. 8003ff0: 7819 ldrb r1, [r3, #0]
  8476. 8003ff2: 2944 cmp r1, #68 @ 0x44
  8477. 8003ff4: d1da bne.n 8003fac <d_prefix+0x3c>
  8478. 8003ff6: 785b ldrb r3, [r3, #1]
  8479. 8003ff8: 2200 movs r2, #0
  8480. 8003ffa: 43bb bics r3, r7
  8481. 8003ffc: 2b54 cmp r3, #84 @ 0x54
  8482. 8003ffe: d017 beq.n 8004030 <d_prefix+0xc0>
  8483. 8004000: 0021 movs r1, r4
  8484. 8004002: 0028 movs r0, r5
  8485. 8004004: f7fe fd8c bl 8002b20 <d_unqualified_name>
  8486. 8004008: 0004 movs r4, r0
  8487. 800400a: e7c4 b.n 8003f96 <d_prefix+0x26>
  8488. 800400c: 6a2a ldr r2, [r5, #32]
  8489. 800400e: 6a69 ldr r1, [r5, #36] @ 0x24
  8490. 8004010: 428a cmp r2, r1
  8491. 8004012: da07 bge.n 8004024 <d_prefix+0xb4>
  8492. 8004014: 69e9 ldr r1, [r5, #28]
  8493. 8004016: 0090 lsls r0, r2, #2
  8494. 8004018: 3201 adds r2, #1
  8495. 800401a: 5044 str r4, [r0, r1]
  8496. 800401c: 622a str r2, [r5, #32]
  8497. 800401e: e7c2 b.n 8003fa6 <d_prefix+0x36>
  8498. 8004020: 2c00 cmp r4, #0
  8499. 8004022: d1c5 bne.n 8003fb0 <d_prefix+0x40>
  8500. 8004024: 2400 movs r4, #0
  8501. 8004026: 0020 movs r0, r4
  8502. 8004028: bdf8 pop {r3, r4, r5, r6, r7, pc}
  8503. 800402a: 3301 adds r3, #1
  8504. 800402c: 60eb str r3, [r5, #12]
  8505. 800402e: e7a4 b.n 8003f7a <d_prefix+0xa>
  8506. 8004030: 2c00 cmp r4, #0
  8507. 8004032: d1f7 bne.n 8004024 <d_prefix+0xb4>
  8508. 8004034: 0028 movs r0, r5
  8509. 8004036: f7fe f857 bl 80020e8 <d_type>
  8510. 800403a: 0004 movs r4, r0
  8511. 800403c: e7ab b.n 8003f96 <d_prefix+0x26>
  8512. 800403e: 2200 movs r2, #0
  8513. 8004040: e7de b.n 8004000 <d_prefix+0x90>
  8514. 8004042: 46c0 nop @ (mov r8, r8)
  8515.  
  8516. 08004044 <d_print_comp_inner>:
  8517. 8004044: b5f0 push {r4, r5, r6, r7, lr}
  8518. 8004046: 46de mov lr, fp
  8519. 8004048: 4657 mov r7, sl
  8520. 800404a: 464e mov r6, r9
  8521. 800404c: 4645 mov r5, r8
  8522. 800404e: b5e0 push {r5, r6, r7, lr}
  8523. 8004050: b09b sub sp, #108 @ 0x6c
  8524. 8004052: 0004 movs r4, r0
  8525. 8004054: 9201 str r2, [sp, #4]
  8526. 8004056: 2a00 cmp r2, #0
  8527. 8004058: d02b beq.n 80040b2 <d_print_comp_inner+0x6e>
  8528. 800405a: 238c movs r3, #140 @ 0x8c
  8529. 800405c: 005b lsls r3, r3, #1
  8530. 800405e: 58c7 ldr r7, [r0, r3]
  8531. 8004060: 2f00 cmp r7, #0
  8532. 8004062: d12a bne.n 80040ba <d_print_comp_inner+0x76>
  8533. 8004064: 9b01 ldr r3, [sp, #4]
  8534. 8004066: 781d ldrb r5, [r3, #0]
  8535. 8004068: 2d5c cmp r5, #92 @ 0x5c
  8536. 800406a: d858 bhi.n 800411e <d_print_comp_inner+0xda>
  8537. 800406c: 4adb ldr r2, [pc, #876] @ (80043dc <d_print_comp_inner+0x398>)
  8538. 800406e: 00ab lsls r3, r5, #2
  8539. 8004070: 58d3 ldr r3, [r2, r3]
  8540. 8004072: 469f mov pc, r3
  8541. 8004074: 2390 movs r3, #144 @ 0x90
  8542. 8004076: 9a01 ldr r2, [sp, #4]
  8543. 8004078: 005b lsls r3, r3, #1
  8544. 800407a: 68d2 ldr r2, [r2, #12]
  8545. 800407c: 58c3 ldr r3, [r0, r3]
  8546. 800407e: 4690 mov r8, r2
  8547. 8004080: 3201 adds r2, #1
  8548. 8004082: 4293 cmp r3, r2
  8549. 8004084: dc01 bgt.n 800408a <d_print_comp_inner+0x46>
  8550. 8004086: f002 f831 bl 80060ec <d_print_comp_inner+0x20a8>
  8551. 800408a: 2388 movs r3, #136 @ 0x88
  8552. 800408c: 005b lsls r3, r3, #1
  8553. 800408e: 58c3 ldr r3, [r0, r3]
  8554. 8004090: 4642 mov r2, r8
  8555. 8004092: 685b ldr r3, [r3, #4]
  8556. 8004094: 68db ldr r3, [r3, #12]
  8557. 8004096: 2b00 cmp r3, #0
  8558. 8004098: d00b beq.n 80040b2 <d_print_comp_inner+0x6e>
  8559. 800409a: 2a00 cmp r2, #0
  8560. 800409c: d105 bne.n 80040aa <d_print_comp_inner+0x66>
  8561. 800409e: f002 f861 bl 8006164 <d_print_comp_inner+0x2120>
  8562. 80040a2: 2a00 cmp r2, #0
  8563. 80040a4: d101 bne.n 80040aa <d_print_comp_inner+0x66>
  8564. 80040a6: f002 f85d bl 8006164 <d_print_comp_inner+0x2120>
  8565. 80040aa: 691b ldr r3, [r3, #16]
  8566. 80040ac: 3a01 subs r2, #1
  8567. 80040ae: 2b00 cmp r3, #0
  8568. 80040b0: d1f7 bne.n 80040a2 <d_print_comp_inner+0x5e>
  8569. 80040b2: 238c movs r3, #140 @ 0x8c
  8570. 80040b4: 2201 movs r2, #1
  8571. 80040b6: 005b lsls r3, r3, #1
  8572. 80040b8: 50e2 str r2, [r4, r3]
  8573. 80040ba: b01b add sp, #108 @ 0x6c
  8574. 80040bc: bcf0 pop {r4, r5, r6, r7}
  8575. 80040be: 46bb mov fp, r7
  8576. 80040c0: 46b2 mov sl, r6
  8577. 80040c2: 46a9 mov r9, r5
  8578. 80040c4: 46a0 mov r8, r4
  8579. 80040c6: bdf0 pop {r4, r5, r6, r7, pc}
  8580. 80040c8: 238a movs r3, #138 @ 0x8a
  8581. 80040ca: 005b lsls r3, r3, #1
  8582. 80040cc: 58c1 ldr r1, [r0, r3]
  8583. 80040ce: ab0a add r3, sp, #40 @ 0x28
  8584. 80040d0: 469b mov fp, r3
  8585. 80040d2: 238a movs r3, #138 @ 0x8a
  8586. 80040d4: 465a mov r2, fp
  8587. 80040d6: 005b lsls r3, r3, #1
  8588. 80040d8: 50e2 str r2, [r4, r3]
  8589. 80040da: 465b mov r3, fp
  8590. 80040dc: 9a01 ldr r2, [sp, #4]
  8591. 80040de: 910a str r1, [sp, #40] @ 0x28
  8592. 80040e0: 605a str r2, [r3, #4]
  8593. 80040e2: 2300 movs r3, #0
  8594. 80040e4: 465a mov r2, fp
  8595. 80040e6: 6093 str r3, [r2, #8]
  8596. 80040e8: 3311 adds r3, #17
  8597. 80040ea: 33ff adds r3, #255 @ 0xff
  8598. 80040ec: 58e3 ldr r3, [r4, r3]
  8599. 80040ee: 60d3 str r3, [r2, #12]
  8600. 80040f0: 9b01 ldr r3, [sp, #4]
  8601. 80040f2: 68de ldr r6, [r3, #12]
  8602. 80040f4: 0032 movs r2, r6
  8603. 80040f6: 2111 movs r1, #17
  8604. 80040f8: 0020 movs r0, r4
  8605. 80040fa: f002 ff39 bl 8006f70 <d_print_comp>
  8606. 80040fe: 465b mov r3, fp
  8607. 8004100: 689b ldr r3, [r3, #8]
  8608. 8004102: 2b00 cmp r3, #0
  8609. 8004104: d101 bne.n 800410a <d_print_comp_inner+0xc6>
  8610. 8004106: f001 ff5f bl 8005fc8 <d_print_comp_inner+0x1f84>
  8611. 800410a: 238a movs r3, #138 @ 0x8a
  8612. 800410c: 9a0a ldr r2, [sp, #40] @ 0x28
  8613. 800410e: 005b lsls r3, r3, #1
  8614. 8004110: 50e2 str r2, [r4, r3]
  8615. 8004112: 2f00 cmp r7, #0
  8616. 8004114: d0d1 beq.n 80040ba <d_print_comp_inner+0x76>
  8617. 8004116: 464a mov r2, r9
  8618. 8004118: 3b04 subs r3, #4
  8619. 800411a: 50e2 str r2, [r4, r3]
  8620. 800411c: e7cd b.n 80040ba <d_print_comp_inner+0x76>
  8621. 800411e: 238c movs r3, #140 @ 0x8c
  8622. 8004120: 2201 movs r2, #1
  8623. 8004122: 005b lsls r3, r3, #1
  8624. 8004124: 50e2 str r2, [r4, r3]
  8625. 8004126: e7c8 b.n 80040ba <d_print_comp_inner+0x76>
  8626. 8004128: 238a movs r3, #138 @ 0x8a
  8627. 800412a: 005b lsls r3, r3, #1
  8628. 800412c: 58c1 ldr r1, [r0, r3]
  8629. 800412e: 2900 cmp r1, #0
  8630. 8004130: d101 bne.n 8004136 <d_print_comp_inner+0xf2>
  8631. 8004132: f002 fe87 bl 8006e44 <d_print_comp_inner+0x2e00>
  8632. 8004136: 000b movs r3, r1
  8633. 8004138: e002 b.n 8004140 <d_print_comp_inner+0xfc>
  8634. 800413a: 681b ldr r3, [r3, #0]
  8635. 800413c: 2b00 cmp r3, #0
  8636. 800413e: d0c6 beq.n 80040ce <d_print_comp_inner+0x8a>
  8637. 8004140: 689a ldr r2, [r3, #8]
  8638. 8004142: 2a00 cmp r2, #0
  8639. 8004144: d1f9 bne.n 800413a <d_print_comp_inner+0xf6>
  8640. 8004146: 685a ldr r2, [r3, #4]
  8641. 8004148: 7812 ldrb r2, [r2, #0]
  8642. 800414a: 0010 movs r0, r2
  8643. 800414c: 3819 subs r0, #25
  8644. 800414e: 2802 cmp r0, #2
  8645. 8004150: d8bd bhi.n 80040ce <d_print_comp_inner+0x8a>
  8646. 8004152: 4295 cmp r5, r2
  8647. 8004154: d1f1 bne.n 800413a <d_print_comp_inner+0xf6>
  8648. 8004156: 9b01 ldr r3, [sp, #4]
  8649. 8004158: 2111 movs r1, #17
  8650. 800415a: 0020 movs r0, r4
  8651. 800415c: 68da ldr r2, [r3, #12]
  8652. 800415e: f002 ff07 bl 8006f70 <d_print_comp>
  8653. 8004162: e7aa b.n 80040ba <d_print_comp_inner+0x76>
  8654. 8004164: 9b01 ldr r3, [sp, #4]
  8655. 8004166: 2111 movs r1, #17
  8656. 8004168: 68da ldr r2, [r3, #12]
  8657. 800416a: f002 ff01 bl 8006f70 <d_print_comp>
  8658. 800416e: e7a4 b.n 80040ba <d_print_comp_inner+0x76>
  8659. 8004170: 9b01 ldr r3, [sp, #4]
  8660. 8004172: 68de ldr r6, [r3, #12]
  8661. 8004174: 2390 movs r3, #144 @ 0x90
  8662. 8004176: 005b lsls r3, r3, #1
  8663. 8004178: 58c3 ldr r3, [r0, r3]
  8664. 800417a: 0030 movs r0, r6
  8665. 800417c: 4698 mov r8, r3
  8666. 800417e: 4642 mov r2, r8
  8667. 8004180: 7833 ldrb r3, [r6, #0]
  8668. 8004182: 2a00 cmp r2, #0
  8669. 8004184: d104 bne.n 8004190 <d_print_comp_inner+0x14c>
  8670. 8004186: 2700 movs r7, #0
  8671. 8004188: 2b05 cmp r3, #5
  8672. 800418a: d101 bne.n 8004190 <d_print_comp_inner+0x14c>
  8673. 800418c: f002 fc0e bl 80069ac <d_print_comp_inner+0x2968>
  8674. 8004190: 2b23 cmp r3, #35 @ 0x23
  8675. 8004192: d101 bne.n 8004198 <d_print_comp_inner+0x154>
  8676. 8004194: f001 ff54 bl 8006040 <d_print_comp_inner+0x1ffc>
  8677. 8004198: 228a movs r2, #138 @ 0x8a
  8678. 800419a: 0052 lsls r2, r2, #1
  8679. 800419c: 58a1 ldr r1, [r4, r2]
  8680. 800419e: 429d cmp r5, r3
  8681. 80041a0: d101 bne.n 80041a6 <d_print_comp_inner+0x162>
  8682. 80041a2: f001 ff4d bl 8006040 <d_print_comp_inner+0x1ffc>
  8683. 80041a6: 2b24 cmp r3, #36 @ 0x24
  8684. 80041a8: d101 bne.n 80041ae <d_print_comp_inner+0x16a>
  8685. 80041aa: f001 fc43 bl 8005a34 <d_print_comp_inner+0x19f0>
  8686. 80041ae: ab0a add r3, sp, #40 @ 0x28
  8687. 80041b0: 469b mov fp, r3
  8688. 80041b2: 238a movs r3, #138 @ 0x8a
  8689. 80041b4: 005b lsls r3, r3, #1
  8690. 80041b6: 58e2 ldr r2, [r4, r3]
  8691. 80041b8: 920a str r2, [sp, #40] @ 0x28
  8692. 80041ba: 465a mov r2, fp
  8693. 80041bc: 50e2 str r2, [r4, r3]
  8694. 80041be: 465b mov r3, fp
  8695. 80041c0: 9a01 ldr r2, [sp, #4]
  8696. 80041c2: 605a str r2, [r3, #4]
  8697. 80041c4: 2300 movs r3, #0
  8698. 80041c6: 465a mov r2, fp
  8699. 80041c8: 6093 str r3, [r2, #8]
  8700. 80041ca: 3311 adds r3, #17
  8701. 80041cc: 33ff adds r3, #255 @ 0xff
  8702. 80041ce: 58e3 ldr r3, [r4, r3]
  8703. 80041d0: 60d3 str r3, [r2, #12]
  8704. 80041d2: e78f b.n 80040f4 <d_print_comp_inner+0xb0>
  8705. 80041d4: 9b01 ldr r3, [sp, #4]
  8706. 80041d6: 68da ldr r2, [r3, #12]
  8707. 80041d8: 2a00 cmp r2, #0
  8708. 80041da: d002 beq.n 80041e2 <d_print_comp_inner+0x19e>
  8709. 80041dc: 2111 movs r1, #17
  8710. 80041de: f002 fec7 bl 8006f70 <d_print_comp>
  8711. 80041e2: 9b01 ldr r3, [sp, #4]
  8712. 80041e4: 691b ldr r3, [r3, #16]
  8713. 80041e6: 2b00 cmp r3, #0
  8714. 80041e8: d100 bne.n 80041ec <d_print_comp_inner+0x1a8>
  8715. 80041ea: e766 b.n 80040ba <d_print_comp_inner+0x76>
  8716. 80041ec: 2580 movs r5, #128 @ 0x80
  8717. 80041ee: 006d lsls r5, r5, #1
  8718. 80041f0: 5961 ldr r1, [r4, r5]
  8719. 80041f2: 29fd cmp r1, #253 @ 0xfd
  8720. 80041f4: d901 bls.n 80041fa <d_print_comp_inner+0x1b6>
  8721. 80041f6: f002 f983 bl 8006500 <d_print_comp_inner+0x24bc>
  8722. 80041fa: 2780 movs r7, #128 @ 0x80
  8723. 80041fc: 2594 movs r5, #148 @ 0x94
  8724. 80041fe: 0020 movs r0, r4
  8725. 8004200: 4977 ldr r1, [pc, #476] @ (80043e0 <d_print_comp_inner+0x39c>)
  8726. 8004202: 007f lsls r7, r7, #1
  8727. 8004204: f7fd fd58 bl 8001cb8 <d_append_string>
  8728. 8004208: 59e3 ldr r3, [r4, r7]
  8729. 800420a: 006d lsls r5, r5, #1
  8730. 800420c: 4699 mov r9, r3
  8731. 800420e: 5963 ldr r3, [r4, r5]
  8732. 8004210: 2111 movs r1, #17
  8733. 8004212: 4698 mov r8, r3
  8734. 8004214: 9b01 ldr r3, [sp, #4]
  8735. 8004216: 0020 movs r0, r4
  8736. 8004218: 691a ldr r2, [r3, #16]
  8737. 800421a: f002 fea9 bl 8006f70 <d_print_comp>
  8738. 800421e: 5963 ldr r3, [r4, r5]
  8739. 8004220: 4543 cmp r3, r8
  8740. 8004222: d000 beq.n 8004226 <d_print_comp_inner+0x1e2>
  8741. 8004224: e749 b.n 80040ba <d_print_comp_inner+0x76>
  8742. 8004226: 59e3 ldr r3, [r4, r7]
  8743. 8004228: 454b cmp r3, r9
  8744. 800422a: d000 beq.n 800422e <d_print_comp_inner+0x1ea>
  8745. 800422c: e745 b.n 80040ba <d_print_comp_inner+0x76>
  8746. 800422e: 3b02 subs r3, #2
  8747. 8004230: 51e3 str r3, [r4, r7]
  8748. 8004232: e742 b.n 80040ba <d_print_comp_inner+0x76>
  8749. 8004234: 238a movs r3, #138 @ 0x8a
  8750. 8004236: ad0a add r5, sp, #40 @ 0x28
  8751. 8004238: 005b lsls r3, r3, #1
  8752. 800423a: 58c2 ldr r2, [r0, r3]
  8753. 800423c: 50c5 str r5, [r0, r3]
  8754. 800423e: 2300 movs r3, #0
  8755. 8004240: 930c str r3, [sp, #48] @ 0x30
  8756. 8004242: 3311 adds r3, #17
  8757. 8004244: 920a str r2, [sp, #40] @ 0x28
  8758. 8004246: 33ff adds r3, #255 @ 0xff
  8759. 8004248: 9a01 ldr r2, [sp, #4]
  8760. 800424a: 58c3 ldr r3, [r0, r3]
  8761. 800424c: 920b str r2, [sp, #44] @ 0x2c
  8762. 800424e: 2111 movs r1, #17
  8763. 8004250: 6912 ldr r2, [r2, #16]
  8764. 8004252: 930d str r3, [sp, #52] @ 0x34
  8765. 8004254: f002 fe8c bl 8006f70 <d_print_comp>
  8766. 8004258: 9b0c ldr r3, [sp, #48] @ 0x30
  8767. 800425a: 2b00 cmp r3, #0
  8768. 800425c: d101 bne.n 8004262 <d_print_comp_inner+0x21e>
  8769. 800425e: f002 f87c bl 800635a <d_print_comp_inner+0x2316>
  8770. 8004262: 238a movs r3, #138 @ 0x8a
  8771. 8004264: 9a0a ldr r2, [sp, #40] @ 0x28
  8772. 8004266: 005b lsls r3, r3, #1
  8773. 8004268: 50e2 str r2, [r4, r3]
  8774. 800426a: e726 b.n 80040ba <d_print_comp_inner+0x76>
  8775. 800426c: 9e01 ldr r6, [sp, #4]
  8776. 800426e: 68f2 ldr r2, [r6, #12]
  8777. 8004270: 2a00 cmp r2, #0
  8778. 8004272: d101 bne.n 8004278 <d_print_comp_inner+0x234>
  8779. 8004274: f001 ff6f bl 8006156 <d_print_comp_inner+0x2112>
  8780. 8004278: 2111 movs r1, #17
  8781. 800427a: f002 fe79 bl 8006f70 <d_print_comp>
  8782. 800427e: 7833 ldrb r3, [r6, #0]
  8783. 8004280: 2b54 cmp r3, #84 @ 0x54
  8784. 8004282: d101 bne.n 8004288 <d_print_comp_inner+0x244>
  8785. 8004284: f001 ff6b bl 800615e <d_print_comp_inner+0x211a>
  8786. 8004288: 9b01 ldr r3, [sp, #4]
  8787. 800428a: 252e movs r5, #46 @ 0x2e
  8788. 800428c: 68db ldr r3, [r3, #12]
  8789. 800428e: 2b00 cmp r3, #0
  8790. 8004290: d00e beq.n 80042b0 <d_print_comp_inner+0x26c>
  8791. 8004292: 2380 movs r3, #128 @ 0x80
  8792. 8004294: 005b lsls r3, r3, #1
  8793. 8004296: 58e3 ldr r3, [r4, r3]
  8794. 8004298: 2bff cmp r3, #255 @ 0xff
  8795. 800429a: d101 bne.n 80042a0 <d_print_comp_inner+0x25c>
  8796. 800429c: f002 fbf0 bl 8006a80 <d_print_comp_inner+0x2a3c>
  8797. 80042a0: 1c59 adds r1, r3, #1
  8798. 80042a2: 2280 movs r2, #128 @ 0x80
  8799. 80042a4: 0052 lsls r2, r2, #1
  8800. 80042a6: 50a1 str r1, [r4, r2]
  8801. 80042a8: 54e5 strb r5, [r4, r3]
  8802. 80042aa: 2382 movs r3, #130 @ 0x82
  8803. 80042ac: 005b lsls r3, r3, #1
  8804. 80042ae: 54e5 strb r5, [r4, r3]
  8805. 80042b0: 9b01 ldr r3, [sp, #4]
  8806. 80042b2: 2111 movs r1, #17
  8807. 80042b4: 0020 movs r0, r4
  8808. 80042b6: 691a ldr r2, [r3, #16]
  8809. 80042b8: f002 fe5a bl 8006f70 <d_print_comp>
  8810. 80042bc: e6fd b.n 80040ba <d_print_comp_inner+0x76>
  8811. 80042be: 9b01 ldr r3, [sp, #4]
  8812. 80042c0: 68da ldr r2, [r3, #12]
  8813. 80042c2: 7813 ldrb r3, [r2, #0]
  8814. 80042c4: 2b27 cmp r3, #39 @ 0x27
  8815. 80042c6: d001 beq.n 80042cc <d_print_comp_inner+0x288>
  8816. 80042c8: f001 ff42 bl 8006150 <d_print_comp_inner+0x210c>
  8817. 80042cc: 68d3 ldr r3, [r2, #12]
  8818. 80042ce: 7c1f ldrb r7, [r3, #16]
  8819. 80042d0: 2f06 cmp r7, #6
  8820. 80042d2: d901 bls.n 80042d8 <d_print_comp_inner+0x294>
  8821. 80042d4: f002 f894 bl 8006400 <d_print_comp_inner+0x23bc>
  8822. 80042d8: 2f00 cmp r7, #0
  8823. 80042da: d006 beq.n 80042ea <d_print_comp_inner+0x2a6>
  8824. 80042dc: 9b01 ldr r3, [sp, #4]
  8825. 80042de: 691b ldr r3, [r3, #16]
  8826. 80042e0: 781b ldrb r3, [r3, #0]
  8827. 80042e2: 2b00 cmp r3, #0
  8828. 80042e4: d101 bne.n 80042ea <d_print_comp_inner+0x2a6>
  8829. 80042e6: f002 fd15 bl 8006d14 <d_print_comp_inner+0x2cd0>
  8830. 80042ea: 2380 movs r3, #128 @ 0x80
  8831. 80042ec: 005b lsls r3, r3, #1
  8832. 80042ee: 58e3 ldr r3, [r4, r3]
  8833. 80042f0: 2bff cmp r3, #255 @ 0xff
  8834. 80042f2: d101 bne.n 80042f8 <d_print_comp_inner+0x2b4>
  8835. 80042f4: f002 fb1a bl 800692c <d_print_comp_inner+0x28e8>
  8836. 80042f8: 1c59 adds r1, r3, #1
  8837. 80042fa: 2580 movs r5, #128 @ 0x80
  8838. 80042fc: 006d lsls r5, r5, #1
  8839. 80042fe: 5161 str r1, [r4, r5]
  8840. 8004300: 2128 movs r1, #40 @ 0x28
  8841. 8004302: 54e1 strb r1, [r4, r3]
  8842. 8004304: 2382 movs r3, #130 @ 0x82
  8843. 8004306: 005b lsls r3, r3, #1
  8844. 8004308: 54e1 strb r1, [r4, r3]
  8845. 800430a: 0020 movs r0, r4
  8846. 800430c: 3917 subs r1, #23
  8847. 800430e: f002 fe2f bl 8006f70 <d_print_comp>
  8848. 8004312: 5963 ldr r3, [r4, r5]
  8849. 8004314: 2bff cmp r3, #255 @ 0xff
  8850. 8004316: d101 bne.n 800431c <d_print_comp_inner+0x2d8>
  8851. 8004318: f002 faf5 bl 8006906 <d_print_comp_inner+0x28c2>
  8852. 800431c: 1c59 adds r1, r3, #1
  8853. 800431e: 2280 movs r2, #128 @ 0x80
  8854. 8004320: 0052 lsls r2, r2, #1
  8855. 8004322: 50a1 str r1, [r4, r2]
  8856. 8004324: 3ad7 subs r2, #215 @ 0xd7
  8857. 8004326: 54e2 strb r2, [r4, r3]
  8858. 8004328: 2382 movs r3, #130 @ 0x82
  8859. 800432a: 005b lsls r3, r3, #1
  8860. 800432c: 54e2 strb r2, [r4, r3]
  8861. 800432e: 9b01 ldr r3, [sp, #4]
  8862. 8004330: 781b ldrb r3, [r3, #0]
  8863. 8004332: 2b3e cmp r3, #62 @ 0x3e
  8864. 8004334: d101 bne.n 800433a <d_print_comp_inner+0x2f6>
  8865. 8004336: f002 fb0e bl 8006956 <d_print_comp_inner+0x2912>
  8866. 800433a: 2f08 cmp r7, #8
  8867. 800433c: d101 bne.n 8004342 <d_print_comp_inner+0x2fe>
  8868. 800433e: f002 fad2 bl 80068e6 <d_print_comp_inner+0x28a2>
  8869. 8004342: 9b01 ldr r3, [sp, #4]
  8870. 8004344: 2111 movs r1, #17
  8871. 8004346: 0020 movs r0, r4
  8872. 8004348: 691a ldr r2, [r3, #16]
  8873. 800434a: f002 fe11 bl 8006f70 <d_print_comp>
  8874. 800434e: e6b4 b.n 80040ba <d_print_comp_inner+0x76>
  8875. 8004350: 9d01 ldr r5, [sp, #4]
  8876. 8004352: 2111 movs r1, #17
  8877. 8004354: 68ea ldr r2, [r5, #12]
  8878. 8004356: f002 fe0b bl 8006f70 <d_print_comp>
  8879. 800435a: 0020 movs r0, r4
  8880. 800435c: 4921 ldr r1, [pc, #132] @ (80043e4 <d_print_comp_inner+0x3a0>)
  8881. 800435e: f7fd fcab bl 8001cb8 <d_append_string>
  8882. 8004362: 692f ldr r7, [r5, #16]
  8883. 8004364: 783b ldrb r3, [r7, #0]
  8884. 8004366: 2b48 cmp r3, #72 @ 0x48
  8885. 8004368: d101 bne.n 800436e <d_print_comp_inner+0x32a>
  8886. 800436a: f002 f8ed bl 8006548 <d_print_comp_inner+0x2504>
  8887. 800436e: 003a movs r2, r7
  8888. 8004370: 2111 movs r1, #17
  8889. 8004372: 0020 movs r0, r4
  8890. 8004374: f002 fdfc bl 8006f70 <d_print_comp>
  8891. 8004378: e69f b.n 80040ba <d_print_comp_inner+0x76>
  8892. 800437a: 220e movs r2, #14
  8893. 800437c: 4691 mov r9, r2
  8894. 800437e: 2200 movs r2, #0
  8895. 8004380: 2380 movs r3, #128 @ 0x80
  8896. 8004382: 4693 mov fp, r2
  8897. 8004384: 4d18 ldr r5, [pc, #96] @ (80043e8 <d_print_comp_inner+0x3a4>)
  8898. 8004386: 320d adds r2, #13
  8899. 8004388: 005b lsls r3, r3, #1
  8900. 800438a: 32ff adds r2, #255 @ 0xff
  8901. 800438c: 4692 mov sl, r2
  8902. 800438e: 58c3 ldr r3, [r0, r3]
  8903. 8004390: 44a9 add r9, r5
  8904. 8004392: e00e b.n 80043b2 <d_print_comp_inner+0x36e>
  8905. 8004394: 001a movs r2, r3
  8906. 8004396: 3301 adds r3, #1
  8907. 8004398: 2180 movs r1, #128 @ 0x80
  8908. 800439a: 0049 lsls r1, r1, #1
  8909. 800439c: 5063 str r3, [r4, r1]
  8910. 800439e: 54a6 strb r6, [r4, r2]
  8911. 80043a0: 2282 movs r2, #130 @ 0x82
  8912. 80043a2: 3501 adds r5, #1
  8913. 80043a4: 0052 lsls r2, r2, #1
  8914. 80043a6: 4688 mov r8, r1
  8915. 80043a8: 54a6 strb r6, [r4, r2]
  8916. 80043aa: 454d cmp r5, r9
  8917. 80043ac: d101 bne.n 80043b2 <d_print_comp_inner+0x36e>
  8918. 80043ae: f001 fc03 bl 8005bb8 <d_print_comp_inner+0x1b74>
  8919. 80043b2: 782e ldrb r6, [r5, #0]
  8920. 80043b4: 2bff cmp r3, #255 @ 0xff
  8921. 80043b6: d1ed bne.n 8004394 <d_print_comp_inner+0x350>
  8922. 80043b8: 465a mov r2, fp
  8923. 80043ba: 54e2 strb r2, [r4, r3]
  8924. 80043bc: 4653 mov r3, sl
  8925. 80043be: 58e2 ldr r2, [r4, r3]
  8926. 80043c0: 2384 movs r3, #132 @ 0x84
  8927. 80043c2: 005b lsls r3, r3, #1
  8928. 80043c4: 58e3 ldr r3, [r4, r3]
  8929. 80043c6: 21ff movs r1, #255 @ 0xff
  8930. 80043c8: 0020 movs r0, r4
  8931. 80043ca: 4798 blx r3
  8932. 80043cc: 2294 movs r2, #148 @ 0x94
  8933. 80043ce: 0052 lsls r2, r2, #1
  8934. 80043d0: 58a3 ldr r3, [r4, r2]
  8935. 80043d2: 3301 adds r3, #1
  8936. 80043d4: 50a3 str r3, [r4, r2]
  8937. 80043d6: 2301 movs r3, #1
  8938. 80043d8: 2200 movs r2, #0
  8939. 80043da: e7dd b.n 8004398 <d_print_comp_inner+0x354>
  8940. 80043dc: 08015058 .word 0x08015058
  8941. 80043e0: 08014154 .word 0x08014154
  8942. 80043e4: 08014158 .word 0x08014158
  8943. 80043e8: 080143c4 .word 0x080143c4
  8944. 80043ec: 2209 movs r2, #9
  8945. 80043ee: 4690 mov r8, r2
  8946. 80043f0: 2200 movs r2, #0
  8947. 80043f2: 2380 movs r3, #128 @ 0x80
  8948. 80043f4: 4693 mov fp, r2
  8949. 80043f6: 320d adds r2, #13
  8950. 80043f8: 32ff adds r2, #255 @ 0xff
  8951. 80043fa: 4de4 ldr r5, [pc, #912] @ (800478c <d_print_comp_inner+0x748>)
  8952. 80043fc: 4692 mov sl, r2
  8953. 80043fe: 005b lsls r3, r3, #1
  8954. 8004400: 3a04 subs r2, #4
  8955. 8004402: 4691 mov r9, r2
  8956. 8004404: 58c3 ldr r3, [r0, r3]
  8957. 8004406: 44a8 add r8, r5
  8958. 8004408: e00d b.n 8004426 <d_print_comp_inner+0x3e2>
  8959. 800440a: 001a movs r2, r3
  8960. 800440c: 3301 adds r3, #1
  8961. 800440e: 2180 movs r1, #128 @ 0x80
  8962. 8004410: 0049 lsls r1, r1, #1
  8963. 8004412: 5063 str r3, [r4, r1]
  8964. 8004414: 54a6 strb r6, [r4, r2]
  8965. 8004416: 2282 movs r2, #130 @ 0x82
  8966. 8004418: 3501 adds r5, #1
  8967. 800441a: 0052 lsls r2, r2, #1
  8968. 800441c: 54a6 strb r6, [r4, r2]
  8969. 800441e: 4545 cmp r5, r8
  8970. 8004420: d101 bne.n 8004426 <d_print_comp_inner+0x3e2>
  8971. 8004422: f001 fbb9 bl 8005b98 <d_print_comp_inner+0x1b54>
  8972. 8004426: 782e ldrb r6, [r5, #0]
  8973. 8004428: 2bff cmp r3, #255 @ 0xff
  8974. 800442a: d1ee bne.n 800440a <d_print_comp_inner+0x3c6>
  8975. 800442c: 465a mov r2, fp
  8976. 800442e: 54e2 strb r2, [r4, r3]
  8977. 8004430: 4653 mov r3, sl
  8978. 8004432: 58e2 ldr r2, [r4, r3]
  8979. 8004434: 464b mov r3, r9
  8980. 8004436: 21ff movs r1, #255 @ 0xff
  8981. 8004438: 58e3 ldr r3, [r4, r3]
  8982. 800443a: 0020 movs r0, r4
  8983. 800443c: 4798 blx r3
  8984. 800443e: 2294 movs r2, #148 @ 0x94
  8985. 8004440: 0052 lsls r2, r2, #1
  8986. 8004442: 58a3 ldr r3, [r4, r2]
  8987. 8004444: 3301 adds r3, #1
  8988. 8004446: 50a3 str r3, [r4, r2]
  8989. 8004448: 2301 movs r3, #1
  8990. 800444a: 2200 movs r2, #0
  8991. 800444c: e7df b.n 800440e <d_print_comp_inner+0x3ca>
  8992. 800444e: 9b01 ldr r3, [sp, #4]
  8993. 8004450: 49cf ldr r1, [pc, #828] @ (8004790 <d_print_comp_inner+0x74c>)
  8994. 8004452: 68de ldr r6, [r3, #12]
  8995. 8004454: 68b7 ldr r7, [r6, #8]
  8996. 8004456: f7fd fc2f bl 8001cb8 <d_append_string>
  8997. 800445a: 6875 ldr r5, [r6, #4]
  8998. 800445c: 782b ldrb r3, [r5, #0]
  8999. 800445e: 3b61 subs r3, #97 @ 0x61
  9000. 8004460: 2b19 cmp r3, #25
  9001. 8004462: d801 bhi.n 8004468 <d_print_comp_inner+0x424>
  9002. 8004464: f001 ff72 bl 800634c <d_print_comp_inner+0x2308>
  9003. 8004468: 1e7b subs r3, r7, #1
  9004. 800446a: 5cea ldrb r2, [r5, r3]
  9005. 800446c: 2a20 cmp r2, #32
  9006. 800446e: d100 bne.n 8004472 <d_print_comp_inner+0x42e>
  9007. 8004470: 001f movs r7, r3
  9008. 8004472: 2f00 cmp r7, #0
  9009. 8004474: d100 bne.n 8004478 <d_print_comp_inner+0x434>
  9010. 8004476: e620 b.n 80040ba <d_print_comp_inner+0x76>
  9011. 8004478: 2200 movs r2, #0
  9012. 800447a: 2380 movs r3, #128 @ 0x80
  9013. 800447c: 4692 mov sl, r2
  9014. 800447e: 320d adds r2, #13
  9015. 8004480: 32ff adds r2, #255 @ 0xff
  9016. 8004482: 4691 mov r9, r2
  9017. 8004484: 005b lsls r3, r3, #1
  9018. 8004486: 3a04 subs r2, #4
  9019. 8004488: 4690 mov r8, r2
  9020. 800448a: 58e3 ldr r3, [r4, r3]
  9021. 800448c: 19ef adds r7, r5, r7
  9022. 800448e: e00c b.n 80044aa <d_print_comp_inner+0x466>
  9023. 8004490: 001a movs r2, r3
  9024. 8004492: 3301 adds r3, #1
  9025. 8004494: 2180 movs r1, #128 @ 0x80
  9026. 8004496: 0049 lsls r1, r1, #1
  9027. 8004498: 5063 str r3, [r4, r1]
  9028. 800449a: 54a6 strb r6, [r4, r2]
  9029. 800449c: 2282 movs r2, #130 @ 0x82
  9030. 800449e: 3501 adds r5, #1
  9031. 80044a0: 0052 lsls r2, r2, #1
  9032. 80044a2: 54a6 strb r6, [r4, r2]
  9033. 80044a4: 42af cmp r7, r5
  9034. 80044a6: d100 bne.n 80044aa <d_print_comp_inner+0x466>
  9035. 80044a8: e607 b.n 80040ba <d_print_comp_inner+0x76>
  9036. 80044aa: 782e ldrb r6, [r5, #0]
  9037. 80044ac: 2bff cmp r3, #255 @ 0xff
  9038. 80044ae: d1ef bne.n 8004490 <d_print_comp_inner+0x44c>
  9039. 80044b0: 4652 mov r2, sl
  9040. 80044b2: 54e2 strb r2, [r4, r3]
  9041. 80044b4: 464b mov r3, r9
  9042. 80044b6: 58e2 ldr r2, [r4, r3]
  9043. 80044b8: 4643 mov r3, r8
  9044. 80044ba: 21ff movs r1, #255 @ 0xff
  9045. 80044bc: 58e3 ldr r3, [r4, r3]
  9046. 80044be: 0020 movs r0, r4
  9047. 80044c0: 4798 blx r3
  9048. 80044c2: 2294 movs r2, #148 @ 0x94
  9049. 80044c4: 0052 lsls r2, r2, #1
  9050. 80044c6: 58a3 ldr r3, [r4, r2]
  9051. 80044c8: 3301 adds r3, #1
  9052. 80044ca: 50a3 str r3, [r4, r2]
  9053. 80044cc: 2301 movs r3, #1
  9054. 80044ce: 2200 movs r2, #0
  9055. 80044d0: e7e0 b.n 8004494 <d_print_comp_inner+0x450>
  9056. 80044d2: 9b01 ldr r3, [sp, #4]
  9057. 80044d4: 68da ldr r2, [r3, #12]
  9058. 80044d6: 691e ldr r6, [r3, #16]
  9059. 80044d8: 2a00 cmp r2, #0
  9060. 80044da: d002 beq.n 80044e2 <d_print_comp_inner+0x49e>
  9061. 80044dc: 2111 movs r1, #17
  9062. 80044de: f002 fd47 bl 8006f70 <d_print_comp>
  9063. 80044e2: 2380 movs r3, #128 @ 0x80
  9064. 80044e4: 005b lsls r3, r3, #1
  9065. 80044e6: 58e3 ldr r3, [r4, r3]
  9066. 80044e8: 2bff cmp r3, #255 @ 0xff
  9067. 80044ea: d101 bne.n 80044f0 <d_print_comp_inner+0x4ac>
  9068. 80044ec: f002 f91b bl 8006726 <d_print_comp_inner+0x26e2>
  9069. 80044f0: 1c5a adds r2, r3, #1
  9070. 80044f2: 2580 movs r5, #128 @ 0x80
  9071. 80044f4: 006d lsls r5, r5, #1
  9072. 80044f6: 5162 str r2, [r4, r5]
  9073. 80044f8: 227b movs r2, #123 @ 0x7b
  9074. 80044fa: 54e2 strb r2, [r4, r3]
  9075. 80044fc: 2382 movs r3, #130 @ 0x82
  9076. 80044fe: 005b lsls r3, r3, #1
  9077. 8004500: 54e2 strb r2, [r4, r3]
  9078. 8004502: 2111 movs r1, #17
  9079. 8004504: 0032 movs r2, r6
  9080. 8004506: 0020 movs r0, r4
  9081. 8004508: f002 fd32 bl 8006f70 <d_print_comp>
  9082. 800450c: 5963 ldr r3, [r4, r5]
  9083. 800450e: 2bff cmp r3, #255 @ 0xff
  9084. 8004510: d101 bne.n 8004516 <d_print_comp_inner+0x4d2>
  9085. 8004512: f002 f8f5 bl 8006700 <d_print_comp_inner+0x26bc>
  9086. 8004516: 1c59 adds r1, r3, #1
  9087. 8004518: 2280 movs r2, #128 @ 0x80
  9088. 800451a: 0052 lsls r2, r2, #1
  9089. 800451c: 50a1 str r1, [r4, r2]
  9090. 800451e: 3a83 subs r2, #131 @ 0x83
  9091. 8004520: 54e2 strb r2, [r4, r3]
  9092. 8004522: 2382 movs r3, #130 @ 0x82
  9093. 8004524: 005b lsls r3, r3, #1
  9094. 8004526: 54e2 strb r2, [r4, r3]
  9095. 8004528: e5c7 b.n 80040ba <d_print_comp_inner+0x76>
  9096. 800452a: 499a ldr r1, [pc, #616] @ (8004794 <d_print_comp_inner+0x750>)
  9097. 800452c: f7fd fbc4 bl 8001cb8 <d_append_string>
  9098. 8004530: 9b01 ldr r3, [sp, #4]
  9099. 8004532: 2111 movs r1, #17
  9100. 8004534: 0020 movs r0, r4
  9101. 8004536: 68da ldr r2, [r3, #12]
  9102. 8004538: f002 fd1a bl 8006f70 <d_print_comp>
  9103. 800453c: e5bd b.n 80040ba <d_print_comp_inner+0x76>
  9104. 800453e: 2219 movs r2, #25
  9105. 8004540: 4690 mov r8, r2
  9106. 8004542: 2200 movs r2, #0
  9107. 8004544: 2380 movs r3, #128 @ 0x80
  9108. 8004546: 4693 mov fp, r2
  9109. 8004548: 320d adds r2, #13
  9110. 800454a: 32ff adds r2, #255 @ 0xff
  9111. 800454c: 4d92 ldr r5, [pc, #584] @ (8004798 <d_print_comp_inner+0x754>)
  9112. 800454e: 4692 mov sl, r2
  9113. 8004550: 005b lsls r3, r3, #1
  9114. 8004552: 3a04 subs r2, #4
  9115. 8004554: 4691 mov r9, r2
  9116. 8004556: 58c3 ldr r3, [r0, r3]
  9117. 8004558: 44a8 add r8, r5
  9118. 800455a: e00d b.n 8004578 <d_print_comp_inner+0x534>
  9119. 800455c: 001a movs r2, r3
  9120. 800455e: 3301 adds r3, #1
  9121. 8004560: 2180 movs r1, #128 @ 0x80
  9122. 8004562: 0049 lsls r1, r1, #1
  9123. 8004564: 5063 str r3, [r4, r1]
  9124. 8004566: 54a6 strb r6, [r4, r2]
  9125. 8004568: 2282 movs r2, #130 @ 0x82
  9126. 800456a: 3501 adds r5, #1
  9127. 800456c: 0052 lsls r2, r2, #1
  9128. 800456e: 54a6 strb r6, [r4, r2]
  9129. 8004570: 45a8 cmp r8, r5
  9130. 8004572: d101 bne.n 8004578 <d_print_comp_inner+0x534>
  9131. 8004574: f001 fc2c bl 8005dd0 <d_print_comp_inner+0x1d8c>
  9132. 8004578: 782e ldrb r6, [r5, #0]
  9133. 800457a: 2bff cmp r3, #255 @ 0xff
  9134. 800457c: d1ee bne.n 800455c <d_print_comp_inner+0x518>
  9135. 800457e: 465a mov r2, fp
  9136. 8004580: 54e2 strb r2, [r4, r3]
  9137. 8004582: 4653 mov r3, sl
  9138. 8004584: 58e2 ldr r2, [r4, r3]
  9139. 8004586: 464b mov r3, r9
  9140. 8004588: 21ff movs r1, #255 @ 0xff
  9141. 800458a: 58e3 ldr r3, [r4, r3]
  9142. 800458c: 0020 movs r0, r4
  9143. 800458e: 4798 blx r3
  9144. 8004590: 2294 movs r2, #148 @ 0x94
  9145. 8004592: 0052 lsls r2, r2, #1
  9146. 8004594: 58a3 ldr r3, [r4, r2]
  9147. 8004596: 3301 adds r3, #1
  9148. 8004598: 50a3 str r3, [r4, r2]
  9149. 800459a: 2301 movs r3, #1
  9150. 800459c: 2200 movs r2, #0
  9151. 800459e: e7df b.n 8004560 <d_print_comp_inner+0x51c>
  9152. 80045a0: 2216 movs r2, #22
  9153. 80045a2: 4690 mov r8, r2
  9154. 80045a4: 2200 movs r2, #0
  9155. 80045a6: 2380 movs r3, #128 @ 0x80
  9156. 80045a8: 4693 mov fp, r2
  9157. 80045aa: 320d adds r2, #13
  9158. 80045ac: 32ff adds r2, #255 @ 0xff
  9159. 80045ae: 4d7b ldr r5, [pc, #492] @ (800479c <d_print_comp_inner+0x758>)
  9160. 80045b0: 4692 mov sl, r2
  9161. 80045b2: 005b lsls r3, r3, #1
  9162. 80045b4: 3a04 subs r2, #4
  9163. 80045b6: 4691 mov r9, r2
  9164. 80045b8: 58c3 ldr r3, [r0, r3]
  9165. 80045ba: 44a8 add r8, r5
  9166. 80045bc: e00d b.n 80045da <d_print_comp_inner+0x596>
  9167. 80045be: 001a movs r2, r3
  9168. 80045c0: 3301 adds r3, #1
  9169. 80045c2: 2180 movs r1, #128 @ 0x80
  9170. 80045c4: 0049 lsls r1, r1, #1
  9171. 80045c6: 5063 str r3, [r4, r1]
  9172. 80045c8: 54a6 strb r6, [r4, r2]
  9173. 80045ca: 2282 movs r2, #130 @ 0x82
  9174. 80045cc: 3501 adds r5, #1
  9175. 80045ce: 0052 lsls r2, r2, #1
  9176. 80045d0: 54a6 strb r6, [r4, r2]
  9177. 80045d2: 45a8 cmp r8, r5
  9178. 80045d4: d101 bne.n 80045da <d_print_comp_inner+0x596>
  9179. 80045d6: f001 fbf3 bl 8005dc0 <d_print_comp_inner+0x1d7c>
  9180. 80045da: 782e ldrb r6, [r5, #0]
  9181. 80045dc: 2bff cmp r3, #255 @ 0xff
  9182. 80045de: d1ee bne.n 80045be <d_print_comp_inner+0x57a>
  9183. 80045e0: 465a mov r2, fp
  9184. 80045e2: 54e2 strb r2, [r4, r3]
  9185. 80045e4: 4653 mov r3, sl
  9186. 80045e6: 58e2 ldr r2, [r4, r3]
  9187. 80045e8: 464b mov r3, r9
  9188. 80045ea: 21ff movs r1, #255 @ 0xff
  9189. 80045ec: 58e3 ldr r3, [r4, r3]
  9190. 80045ee: 0020 movs r0, r4
  9191. 80045f0: 4798 blx r3
  9192. 80045f2: 2294 movs r2, #148 @ 0x94
  9193. 80045f4: 0052 lsls r2, r2, #1
  9194. 80045f6: 58a3 ldr r3, [r4, r2]
  9195. 80045f8: 3301 adds r3, #1
  9196. 80045fa: 50a3 str r3, [r4, r2]
  9197. 80045fc: 2301 movs r3, #1
  9198. 80045fe: 2200 movs r2, #0
  9199. 8004600: e7df b.n 80045c2 <d_print_comp_inner+0x57e>
  9200. 8004602: 2213 movs r2, #19
  9201. 8004604: 4690 mov r8, r2
  9202. 8004606: 2200 movs r2, #0
  9203. 8004608: 2380 movs r3, #128 @ 0x80
  9204. 800460a: 4693 mov fp, r2
  9205. 800460c: 320d adds r2, #13
  9206. 800460e: 32ff adds r2, #255 @ 0xff
  9207. 8004610: 4d63 ldr r5, [pc, #396] @ (80047a0 <d_print_comp_inner+0x75c>)
  9208. 8004612: 4692 mov sl, r2
  9209. 8004614: 005b lsls r3, r3, #1
  9210. 8004616: 3a04 subs r2, #4
  9211. 8004618: 4691 mov r9, r2
  9212. 800461a: 58c3 ldr r3, [r0, r3]
  9213. 800461c: 44a8 add r8, r5
  9214. 800461e: e00d b.n 800463c <d_print_comp_inner+0x5f8>
  9215. 8004620: 001a movs r2, r3
  9216. 8004622: 3301 adds r3, #1
  9217. 8004624: 2180 movs r1, #128 @ 0x80
  9218. 8004626: 0049 lsls r1, r1, #1
  9219. 8004628: 5063 str r3, [r4, r1]
  9220. 800462a: 54a6 strb r6, [r4, r2]
  9221. 800462c: 2282 movs r2, #130 @ 0x82
  9222. 800462e: 3501 adds r5, #1
  9223. 8004630: 0052 lsls r2, r2, #1
  9224. 8004632: 54a6 strb r6, [r4, r2]
  9225. 8004634: 45a8 cmp r8, r5
  9226. 8004636: d101 bne.n 800463c <d_print_comp_inner+0x5f8>
  9227. 8004638: f001 fbba bl 8005db0 <d_print_comp_inner+0x1d6c>
  9228. 800463c: 782e ldrb r6, [r5, #0]
  9229. 800463e: 2bff cmp r3, #255 @ 0xff
  9230. 8004640: d1ee bne.n 8004620 <d_print_comp_inner+0x5dc>
  9231. 8004642: 465a mov r2, fp
  9232. 8004644: 54e2 strb r2, [r4, r3]
  9233. 8004646: 4653 mov r3, sl
  9234. 8004648: 58e2 ldr r2, [r4, r3]
  9235. 800464a: 464b mov r3, r9
  9236. 800464c: 21ff movs r1, #255 @ 0xff
  9237. 800464e: 58e3 ldr r3, [r4, r3]
  9238. 8004650: 0020 movs r0, r4
  9239. 8004652: 4798 blx r3
  9240. 8004654: 2294 movs r2, #148 @ 0x94
  9241. 8004656: 0052 lsls r2, r2, #1
  9242. 8004658: 58a3 ldr r3, [r4, r2]
  9243. 800465a: 3301 adds r3, #1
  9244. 800465c: 50a3 str r3, [r4, r2]
  9245. 800465e: 2301 movs r3, #1
  9246. 8004660: 2200 movs r2, #0
  9247. 8004662: e7df b.n 8004624 <d_print_comp_inner+0x5e0>
  9248. 8004664: 220f movs r2, #15
  9249. 8004666: 4690 mov r8, r2
  9250. 8004668: 2200 movs r2, #0
  9251. 800466a: 2380 movs r3, #128 @ 0x80
  9252. 800466c: 4693 mov fp, r2
  9253. 800466e: 320d adds r2, #13
  9254. 8004670: 32ff adds r2, #255 @ 0xff
  9255. 8004672: 4d4c ldr r5, [pc, #304] @ (80047a4 <d_print_comp_inner+0x760>)
  9256. 8004674: 4692 mov sl, r2
  9257. 8004676: 005b lsls r3, r3, #1
  9258. 8004678: 3a04 subs r2, #4
  9259. 800467a: 4691 mov r9, r2
  9260. 800467c: 58c3 ldr r3, [r0, r3]
  9261. 800467e: 44a8 add r8, r5
  9262. 8004680: e00d b.n 800469e <d_print_comp_inner+0x65a>
  9263. 8004682: 001a movs r2, r3
  9264. 8004684: 3301 adds r3, #1
  9265. 8004686: 2180 movs r1, #128 @ 0x80
  9266. 8004688: 0049 lsls r1, r1, #1
  9267. 800468a: 5063 str r3, [r4, r1]
  9268. 800468c: 54a6 strb r6, [r4, r2]
  9269. 800468e: 2282 movs r2, #130 @ 0x82
  9270. 8004690: 3501 adds r5, #1
  9271. 8004692: 0052 lsls r2, r2, #1
  9272. 8004694: 54a6 strb r6, [r4, r2]
  9273. 8004696: 45a8 cmp r8, r5
  9274. 8004698: d101 bne.n 800469e <d_print_comp_inner+0x65a>
  9275. 800469a: f001 fb81 bl 8005da0 <d_print_comp_inner+0x1d5c>
  9276. 800469e: 782e ldrb r6, [r5, #0]
  9277. 80046a0: 2bff cmp r3, #255 @ 0xff
  9278. 80046a2: d1ee bne.n 8004682 <d_print_comp_inner+0x63e>
  9279. 80046a4: 465a mov r2, fp
  9280. 80046a6: 54e2 strb r2, [r4, r3]
  9281. 80046a8: 4653 mov r3, sl
  9282. 80046aa: 58e2 ldr r2, [r4, r3]
  9283. 80046ac: 464b mov r3, r9
  9284. 80046ae: 21ff movs r1, #255 @ 0xff
  9285. 80046b0: 58e3 ldr r3, [r4, r3]
  9286. 80046b2: 0020 movs r0, r4
  9287. 80046b4: 4798 blx r3
  9288. 80046b6: 2294 movs r2, #148 @ 0x94
  9289. 80046b8: 0052 lsls r2, r2, #1
  9290. 80046ba: 58a3 ldr r3, [r4, r2]
  9291. 80046bc: 3301 adds r3, #1
  9292. 80046be: 50a3 str r3, [r4, r2]
  9293. 80046c0: 2301 movs r3, #1
  9294. 80046c2: 2200 movs r2, #0
  9295. 80046c4: e7df b.n 8004686 <d_print_comp_inner+0x642>
  9296. 80046c6: 221a movs r2, #26
  9297. 80046c8: 4690 mov r8, r2
  9298. 80046ca: 2200 movs r2, #0
  9299. 80046cc: 2380 movs r3, #128 @ 0x80
  9300. 80046ce: 4693 mov fp, r2
  9301. 80046d0: 320d adds r2, #13
  9302. 80046d2: 32ff adds r2, #255 @ 0xff
  9303. 80046d4: 4d34 ldr r5, [pc, #208] @ (80047a8 <d_print_comp_inner+0x764>)
  9304. 80046d6: 4692 mov sl, r2
  9305. 80046d8: 005b lsls r3, r3, #1
  9306. 80046da: 3a04 subs r2, #4
  9307. 80046dc: 4691 mov r9, r2
  9308. 80046de: 58c3 ldr r3, [r0, r3]
  9309. 80046e0: 44a8 add r8, r5
  9310. 80046e2: e00d b.n 8004700 <d_print_comp_inner+0x6bc>
  9311. 80046e4: 001a movs r2, r3
  9312. 80046e6: 3301 adds r3, #1
  9313. 80046e8: 2180 movs r1, #128 @ 0x80
  9314. 80046ea: 0049 lsls r1, r1, #1
  9315. 80046ec: 5063 str r3, [r4, r1]
  9316. 80046ee: 54a6 strb r6, [r4, r2]
  9317. 80046f0: 2282 movs r2, #130 @ 0x82
  9318. 80046f2: 3501 adds r5, #1
  9319. 80046f4: 0052 lsls r2, r2, #1
  9320. 80046f6: 54a6 strb r6, [r4, r2]
  9321. 80046f8: 45a8 cmp r8, r5
  9322. 80046fa: d101 bne.n 8004700 <d_print_comp_inner+0x6bc>
  9323. 80046fc: f001 fb48 bl 8005d90 <d_print_comp_inner+0x1d4c>
  9324. 8004700: 782e ldrb r6, [r5, #0]
  9325. 8004702: 2bff cmp r3, #255 @ 0xff
  9326. 8004704: d1ee bne.n 80046e4 <d_print_comp_inner+0x6a0>
  9327. 8004706: 465a mov r2, fp
  9328. 8004708: 54e2 strb r2, [r4, r3]
  9329. 800470a: 4653 mov r3, sl
  9330. 800470c: 58e2 ldr r2, [r4, r3]
  9331. 800470e: 464b mov r3, r9
  9332. 8004710: 21ff movs r1, #255 @ 0xff
  9333. 8004712: 58e3 ldr r3, [r4, r3]
  9334. 8004714: 0020 movs r0, r4
  9335. 8004716: 4798 blx r3
  9336. 8004718: 2294 movs r2, #148 @ 0x94
  9337. 800471a: 0052 lsls r2, r2, #1
  9338. 800471c: 58a3 ldr r3, [r4, r2]
  9339. 800471e: 3301 adds r3, #1
  9340. 8004720: 50a3 str r3, [r4, r2]
  9341. 8004722: 2301 movs r3, #1
  9342. 8004724: 2200 movs r2, #0
  9343. 8004726: e7df b.n 80046e8 <d_print_comp_inner+0x6a4>
  9344. 8004728: 2211 movs r2, #17
  9345. 800472a: 4690 mov r8, r2
  9346. 800472c: 2200 movs r2, #0
  9347. 800472e: 2380 movs r3, #128 @ 0x80
  9348. 8004730: 4693 mov fp, r2
  9349. 8004732: 320d adds r2, #13
  9350. 8004734: 32ff adds r2, #255 @ 0xff
  9351. 8004736: 4d1d ldr r5, [pc, #116] @ (80047ac <d_print_comp_inner+0x768>)
  9352. 8004738: 4692 mov sl, r2
  9353. 800473a: 005b lsls r3, r3, #1
  9354. 800473c: 3a04 subs r2, #4
  9355. 800473e: 4691 mov r9, r2
  9356. 8004740: 58c3 ldr r3, [r0, r3]
  9357. 8004742: 44a8 add r8, r5
  9358. 8004744: e00d b.n 8004762 <d_print_comp_inner+0x71e>
  9359. 8004746: 001a movs r2, r3
  9360. 8004748: 3301 adds r3, #1
  9361. 800474a: 2180 movs r1, #128 @ 0x80
  9362. 800474c: 0049 lsls r1, r1, #1
  9363. 800474e: 5063 str r3, [r4, r1]
  9364. 8004750: 54a6 strb r6, [r4, r2]
  9365. 8004752: 2282 movs r2, #130 @ 0x82
  9366. 8004754: 3501 adds r5, #1
  9367. 8004756: 0052 lsls r2, r2, #1
  9368. 8004758: 54a6 strb r6, [r4, r2]
  9369. 800475a: 45a8 cmp r8, r5
  9370. 800475c: d101 bne.n 8004762 <d_print_comp_inner+0x71e>
  9371. 800475e: f001 fb0f bl 8005d80 <d_print_comp_inner+0x1d3c>
  9372. 8004762: 782e ldrb r6, [r5, #0]
  9373. 8004764: 2bff cmp r3, #255 @ 0xff
  9374. 8004766: d1ee bne.n 8004746 <d_print_comp_inner+0x702>
  9375. 8004768: 465a mov r2, fp
  9376. 800476a: 54e2 strb r2, [r4, r3]
  9377. 800476c: 4653 mov r3, sl
  9378. 800476e: 58e2 ldr r2, [r4, r3]
  9379. 8004770: 464b mov r3, r9
  9380. 8004772: 21ff movs r1, #255 @ 0xff
  9381. 8004774: 58e3 ldr r3, [r4, r3]
  9382. 8004776: 0020 movs r0, r4
  9383. 8004778: 4798 blx r3
  9384. 800477a: 2294 movs r2, #148 @ 0x94
  9385. 800477c: 0052 lsls r2, r2, #1
  9386. 800477e: 58a3 ldr r3, [r4, r2]
  9387. 8004780: 3301 adds r3, #1
  9388. 8004782: 50a3 str r3, [r4, r2]
  9389. 8004784: 2301 movs r3, #1
  9390. 8004786: 2200 movs r2, #0
  9391. 8004788: e7df b.n 800474a <d_print_comp_inner+0x706>
  9392. 800478a: 46c0 nop @ (mov r8, r8)
  9393. 800478c: 08014304 .word 0x08014304
  9394. 8004790: 080142f8 .word 0x080142f8
  9395. 8004794: 08014178 .word 0x08014178
  9396. 8004798: 08014294 .word 0x08014294
  9397. 800479c: 0801427c .word 0x0801427c
  9398. 80047a0: 08014268 .word 0x08014268
  9399. 80047a4: 08014258 .word 0x08014258
  9400. 80047a8: 0801423c .word 0x0801423c
  9401. 80047ac: 08014228 .word 0x08014228
  9402. 80047b0: 2215 movs r2, #21
  9403. 80047b2: 4690 mov r8, r2
  9404. 80047b4: 2200 movs r2, #0
  9405. 80047b6: 2380 movs r3, #128 @ 0x80
  9406. 80047b8: 4693 mov fp, r2
  9407. 80047ba: 320d adds r2, #13
  9408. 80047bc: 32ff adds r2, #255 @ 0xff
  9409. 80047be: 4dea ldr r5, [pc, #936] @ (8004b68 <d_print_comp_inner+0xb24>)
  9410. 80047c0: 4692 mov sl, r2
  9411. 80047c2: 005b lsls r3, r3, #1
  9412. 80047c4: 3a04 subs r2, #4
  9413. 80047c6: 4691 mov r9, r2
  9414. 80047c8: 58c3 ldr r3, [r0, r3]
  9415. 80047ca: 44a8 add r8, r5
  9416. 80047cc: e00d b.n 80047ea <d_print_comp_inner+0x7a6>
  9417. 80047ce: 001a movs r2, r3
  9418. 80047d0: 3301 adds r3, #1
  9419. 80047d2: 2180 movs r1, #128 @ 0x80
  9420. 80047d4: 0049 lsls r1, r1, #1
  9421. 80047d6: 5063 str r3, [r4, r1]
  9422. 80047d8: 54a6 strb r6, [r4, r2]
  9423. 80047da: 2282 movs r2, #130 @ 0x82
  9424. 80047dc: 3501 adds r5, #1
  9425. 80047de: 0052 lsls r2, r2, #1
  9426. 80047e0: 54a6 strb r6, [r4, r2]
  9427. 80047e2: 4545 cmp r5, r8
  9428. 80047e4: d101 bne.n 80047ea <d_print_comp_inner+0x7a6>
  9429. 80047e6: f001 fac3 bl 8005d70 <d_print_comp_inner+0x1d2c>
  9430. 80047ea: 782e ldrb r6, [r5, #0]
  9431. 80047ec: 2bff cmp r3, #255 @ 0xff
  9432. 80047ee: d1ee bne.n 80047ce <d_print_comp_inner+0x78a>
  9433. 80047f0: 465a mov r2, fp
  9434. 80047f2: 54e2 strb r2, [r4, r3]
  9435. 80047f4: 4653 mov r3, sl
  9436. 80047f6: 58e2 ldr r2, [r4, r3]
  9437. 80047f8: 464b mov r3, r9
  9438. 80047fa: 21ff movs r1, #255 @ 0xff
  9439. 80047fc: 58e3 ldr r3, [r4, r3]
  9440. 80047fe: 0020 movs r0, r4
  9441. 8004800: 4798 blx r3
  9442. 8004802: 2294 movs r2, #148 @ 0x94
  9443. 8004804: 0052 lsls r2, r2, #1
  9444. 8004806: 58a3 ldr r3, [r4, r2]
  9445. 8004808: 3301 adds r3, #1
  9446. 800480a: 50a3 str r3, [r4, r2]
  9447. 800480c: 2301 movs r3, #1
  9448. 800480e: 2200 movs r2, #0
  9449. 8004810: e7df b.n 80047d2 <d_print_comp_inner+0x78e>
  9450. 8004812: 2210 movs r2, #16
  9451. 8004814: 4690 mov r8, r2
  9452. 8004816: 2200 movs r2, #0
  9453. 8004818: 2380 movs r3, #128 @ 0x80
  9454. 800481a: 4693 mov fp, r2
  9455. 800481c: 320d adds r2, #13
  9456. 800481e: 32ff adds r2, #255 @ 0xff
  9457. 8004820: 4dd2 ldr r5, [pc, #840] @ (8004b6c <d_print_comp_inner+0xb28>)
  9458. 8004822: 4692 mov sl, r2
  9459. 8004824: 005b lsls r3, r3, #1
  9460. 8004826: 3a04 subs r2, #4
  9461. 8004828: 4691 mov r9, r2
  9462. 800482a: 58c3 ldr r3, [r0, r3]
  9463. 800482c: 44a8 add r8, r5
  9464. 800482e: e00d b.n 800484c <d_print_comp_inner+0x808>
  9465. 8004830: 001a movs r2, r3
  9466. 8004832: 3301 adds r3, #1
  9467. 8004834: 2180 movs r1, #128 @ 0x80
  9468. 8004836: 0049 lsls r1, r1, #1
  9469. 8004838: 5063 str r3, [r4, r1]
  9470. 800483a: 54a6 strb r6, [r4, r2]
  9471. 800483c: 2282 movs r2, #130 @ 0x82
  9472. 800483e: 3501 adds r5, #1
  9473. 8004840: 0052 lsls r2, r2, #1
  9474. 8004842: 54a6 strb r6, [r4, r2]
  9475. 8004844: 4545 cmp r5, r8
  9476. 8004846: d101 bne.n 800484c <d_print_comp_inner+0x808>
  9477. 8004848: f001 fada bl 8005e00 <d_print_comp_inner+0x1dbc>
  9478. 800484c: 782e ldrb r6, [r5, #0]
  9479. 800484e: 2bff cmp r3, #255 @ 0xff
  9480. 8004850: d1ee bne.n 8004830 <d_print_comp_inner+0x7ec>
  9481. 8004852: 465a mov r2, fp
  9482. 8004854: 54e2 strb r2, [r4, r3]
  9483. 8004856: 4653 mov r3, sl
  9484. 8004858: 58e2 ldr r2, [r4, r3]
  9485. 800485a: 464b mov r3, r9
  9486. 800485c: 21ff movs r1, #255 @ 0xff
  9487. 800485e: 58e3 ldr r3, [r4, r3]
  9488. 8004860: 0020 movs r0, r4
  9489. 8004862: 4798 blx r3
  9490. 8004864: 2294 movs r2, #148 @ 0x94
  9491. 8004866: 0052 lsls r2, r2, #1
  9492. 8004868: 58a3 ldr r3, [r4, r2]
  9493. 800486a: 3301 adds r3, #1
  9494. 800486c: 50a3 str r3, [r4, r2]
  9495. 800486e: 2301 movs r3, #1
  9496. 8004870: 2200 movs r2, #0
  9497. 8004872: e7df b.n 8004834 <d_print_comp_inner+0x7f0>
  9498. 8004874: 2212 movs r2, #18
  9499. 8004876: 4690 mov r8, r2
  9500. 8004878: 2200 movs r2, #0
  9501. 800487a: 2380 movs r3, #128 @ 0x80
  9502. 800487c: 4693 mov fp, r2
  9503. 800487e: 320d adds r2, #13
  9504. 8004880: 32ff adds r2, #255 @ 0xff
  9505. 8004882: 4dbb ldr r5, [pc, #748] @ (8004b70 <d_print_comp_inner+0xb2c>)
  9506. 8004884: 4692 mov sl, r2
  9507. 8004886: 005b lsls r3, r3, #1
  9508. 8004888: 3a04 subs r2, #4
  9509. 800488a: 4691 mov r9, r2
  9510. 800488c: 58c3 ldr r3, [r0, r3]
  9511. 800488e: 44a8 add r8, r5
  9512. 8004890: e00d b.n 80048ae <d_print_comp_inner+0x86a>
  9513. 8004892: 001a movs r2, r3
  9514. 8004894: 3301 adds r3, #1
  9515. 8004896: 2180 movs r1, #128 @ 0x80
  9516. 8004898: 0049 lsls r1, r1, #1
  9517. 800489a: 5063 str r3, [r4, r1]
  9518. 800489c: 54a6 strb r6, [r4, r2]
  9519. 800489e: 2282 movs r2, #130 @ 0x82
  9520. 80048a0: 3501 adds r5, #1
  9521. 80048a2: 0052 lsls r2, r2, #1
  9522. 80048a4: 54a6 strb r6, [r4, r2]
  9523. 80048a6: 4545 cmp r5, r8
  9524. 80048a8: d101 bne.n 80048ae <d_print_comp_inner+0x86a>
  9525. 80048aa: f001 f9cc bl 8005c46 <d_print_comp_inner+0x1c02>
  9526. 80048ae: 782e ldrb r6, [r5, #0]
  9527. 80048b0: 2bff cmp r3, #255 @ 0xff
  9528. 80048b2: d1ee bne.n 8004892 <d_print_comp_inner+0x84e>
  9529. 80048b4: 465a mov r2, fp
  9530. 80048b6: 54e2 strb r2, [r4, r3]
  9531. 80048b8: 4653 mov r3, sl
  9532. 80048ba: 58e2 ldr r2, [r4, r3]
  9533. 80048bc: 464b mov r3, r9
  9534. 80048be: 21ff movs r1, #255 @ 0xff
  9535. 80048c0: 58e3 ldr r3, [r4, r3]
  9536. 80048c2: 0020 movs r0, r4
  9537. 80048c4: 4798 blx r3
  9538. 80048c6: 2294 movs r2, #148 @ 0x94
  9539. 80048c8: 0052 lsls r2, r2, #1
  9540. 80048ca: 58a3 ldr r3, [r4, r2]
  9541. 80048cc: 3301 adds r3, #1
  9542. 80048ce: 50a3 str r3, [r4, r2]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement