7764060325e062d16869a39a17590f2eda3997dc
[hw/altusmetrum] / datasheets / nxp / lpc11u14 / bios
1 LPC11U14 BIOS
2
3 Interrupt vectors (we assume)
4
5 0x1fff0000:     0x10000ffc      0x1fff0041      0x1fff00e1      0x1fff00e3
6 0x1fff0010:     0x1fff00e5      0x1fff00e7      0x1fff00e9      0xffffffff
7 0x1fff0020:     0xffffffff      0xffffffff      0xffffffff      0x1fff00eb
8 0x1fff0030:     0x1fff00ed      0xffffffff      0x1fff00ef      0x1fff00f1
9
10
11 Call graph
12 1fff0040
13         1fff0048        Load CRP value to SCB register
14                 1fff0350        Checks the pins PIN0_1 for ISP force
15                         1fff0348
16                                 1fff02f6        Validate application and jump
17                                         
18                                         Unless something is weird, you'll get to here. This
19                                         checksums the first bit of the application interrupt table
20                                         and jumps to the application if it's ok.
21
22                                         1fff008c        jump to other system
23                                 1fff02e4
24
25                                         This looks like the ISP bits, which we're going to ignore
26
27                                         1fff02b0        setup clocks
28                                         1fff0264
29                                                 1fff022c
30                                                 1fff0e54
31                                                 1fff019c
32                                                 1fff0d9c        setup_serial
33                                                 1fff0e04
34                                                 1fff0d9c        setup_serial
35                                                 1fff00f4
36
37
38 boot:
39
40         boot() {
41                 start();
42         }
43
44
45    0x1fff0040:  ldr     r2, [pc, #0]    ; (0x1fff0044)  1fff0049
46    0x1fff0042:  bx      r2
47
48 0x1fff0040:     0x47104a00      0x1fff0049      0x4b1b4a1a      0x4d1c681b
49
50    0x1fff0044:  lsls    r1, r1, #1
51    0x1fff0046:  subs    r7, r7, #7
52
53 start:
54
55         Check Code Read Protection values
56
57    0x1fff0048:  ldr     r2, [pc, #104]  ; (0x1fff00b4)  400483f0
58    0x1fff004a:  ldr     r3, [pc, #108]  ; (0x1fff00b8)  1fff00c8
59    0x1fff004c:  ldr     r3, [r3, #0]                    000002fc
60    0x1fff004e:  ldr     r5, [pc, #112]  ; (0x1fff00c0)  1fff00d0
61    0x1fff0050:  ldr     r5, [r5, #0]                    43218765        CRP3
62    0x1fff0052:  ldr     r6, [pc, #112]  ; (0x1fff00c4)  1fff00d4
63    0x1fff0054:  ldr     r6, [r6, #0]                    12345678        CRP1
64    0x1fff0056:  ldr     r4, [r3, #0]                    (000002fc)      CRP
65
66         if CRP == CRP3
67
68    0x1fff0058:  cmp     r4, r5
69    0x1fff005a:  beq.n   0x1fff0060
70
71         if CRP == CRP1
72
73 => 0x1fff005c:  cmp     r4, r6
74    0x1fff005e:  bne.n   0x1fff0064
75
76         if (r4 == r5 || r4 == r6) {
77
78    0x1fff0060:  ldr     r4, [pc, #88]   ; (0x1fff00bc)  1fff00cc
79    0x1fff0062:  ldr     r4, [r4, #0]                    87654321        CRP2
80
81                 r4 = 0x87654321;
82         }
83
84
85         Write the resulting CRP value to the SCB register
86
87    0x1fff0064:  str     r4, [r2, #0]                                    SCB register before DEVICE_ID
88
89         This pretty clearly changes the memory mapping so that low
90         addresses (higher than the interrupt vector) come from rom
91
92    0x1fff0066:  ldr     r2, [pc, #52]   ; (0x1fff009c)  4003c000        FLASHCFG
93    0x1fff0068:  ldr     r3, [r2, #0]
94    0x1fff006a:  movs    r4, #64 ; 0x40
95    0x1fff006c:  orrs    r3, r4
96    0x1fff006e:  str     r3, [r2, #0]
97
98         Check and see if the memory mapping changes worked
99
100    0x1fff0070:  ldr     r3, [pc, #44]   ; (0x1fff00a0)  0000043c
101    0x1fff0072:  ldr     r2, [r3, #0]
102    0x1fff0074:  ldr     r4, [pc, #44]   ; (0x1fff00a4)  000005d0
103    0x1fff0076:  ldr     r4, [r4, #0]
104    0x1fff0078:  ldr     r5, [pc, #44]   ; (0x1fff00a8)  1fff00dc
105    0x1fff007a:  ldr     r5, [r5, #0]                    3456abcd
106    0x1fff007c:  cmp     r4, r5
107    0x1fff007e:  beq.n   0x1fff0084
108
109         Initialize stack
110
111    0x1fff0080:  ldr     r2, [pc, #40]   ; (0x1fff00ac)  1fff00d8
112    0x1fff0082:  ldr     r2, [r2, #0]                    10000fff
113    0x1fff0084:  subs    r2, #31
114    0x1fff0086:  mov     sp, r2
115
116         Jump to main function
117
118    0x1fff0088:  ldr     r2, [pc, #36]   ; (0x1fff00b0)  1fff0351
119    0x1fff008a:  bx      r2
120
121         Load stack/pc from address pointed at by r0 and jump
122
123    0x1fff008c:  ldr     r1, [r0, #0]
124    0x1fff008e:  mov     sp, r1
125    0x1fff0090:  ldr     r1, [r0, #4]
126    0x1fff0092:  bx      r1
127
128         This is the same.
129
130    0x1fff0094:  ldr     r1, [r0, #0]
131    0x1fff0096:  mov     sp, r1
132    0x1fff0098:  ldr     r1, [r0, #4]
133    0x1fff009a:  bx      r1
134
135 0x1fff0090:     0x47086841      0x468d6801      0x47086841      0x4003c000
136 0x1fff00a0:     0x0000043c      0x000005d0      0x1fff00dc      0x1fff00d8
137 0x1fff00b0:     0x1fff0351      0x400483f0      0x1fff00c8      0x1fff00cc
138 0x1fff00c0:     0x1fff00d0      0x1fff00d4      0x000002fc      0x87654321
139 0x1fff00d0:     0x43218765      0x12345678      0x10000fff      0x3456abcd
140 0x1fff00e0:     0xe7fe4770      0xe7fee7fe      0x4770e7fe      0x47704770
141 0x1fff00f0:     0xffff4770      0x4eddb51c      0x4dde4fdd      0x48dd2401
142 0x1fff0100:     0x2146aa01      0xf0003898      0x2800fe7d      0x217ad1f7
143
144    0x1fff009c:  stmia   r0!, {}
145    0x1fff009e:  ands    r3, r0
146    0x1fff00a0:  lsls    r4, r7, #16
147    0x1fff00a2:  movs    r0, r0
148    0x1fff00a4:  lsls    r0, r2, #23
149    0x1fff00a6:  movs    r0, r0
150    0x1fff00a8:  lsls    r4, r3, #3
151    0x1fff00aa:  subs    r7, r7, #7
152    0x1fff00ac:  lsls    r0, r3, #3
153    0x1fff00ae:  subs    r7, r7, #7
154    0x1fff00b0:  lsls    r1, r2, #13
155    0x1fff00b2:  subs    r7, r7, #7
156    0x1fff00b4:  strh    r0, [r6, #30]
157    0x1fff00b6:  ands    r4, r0
158    0x1fff00b8:  lsls    r0, r1, #3
159    0x1fff00ba:  subs    r7, r7, #7
160    0x1fff00bc:  lsls    r4, r1, #3
161    0x1fff00be:  subs    r7, r7, #7
162    0x1fff00c0:  lsls    r0, r2, #3
163    0x1fff00c2:  subs    r7, r7, #7
164    0x1fff00c4:  lsls    r4, r2, #3
165    0x1fff00c6:  subs    r7, r7, #7
166    0x1fff00c8:  lsls    r4, r7, #11
167    0x1fff00ca:  movs    r0, r0
168    0x1fff00cc:  orrs    r1, r4
169    0x1fff00ce:  strh    r5, [r4, #58]   ; 0x3a
170    0x1fff00d0:  strh    r5, [r4, #58]   ; 0x3a
171    0x1fff00d2:  orrs    r1, r4
172    0x1fff00d4:  ldrsb   r0, [r7, r1]
173    0x1fff00d6:  asrs    r4, r6, #8
174    0x1fff00d8:  lsrs    r7, r7, #31
175    0x1fff00da:  asrs    r0, r0, #32
176    0x1fff00dc:  add     r3, sp, #820    ; 0x334
177    0x1fff00de:  adds    r4, #86 ; 0x56
178    0x1fff00e0:  bx      lr
179    0x1fff00e2:  b.n     0x1fff00e2
180    0x1fff00e4:  b.n     0x1fff00e4
181    0x1fff00e6:  b.n     0x1fff00e6
182    0x1fff00e8:  b.n     0x1fff00e8
183    0x1fff00ea:  bx      lr
184    0x1fff00ec:  bx      lr
185    0x1fff00ee:  bx      lr
186    0x1fff00f0:  bx      lr
187    0x1fff00f2:  vsli.32 d27, d12, #31
188
189
190
191    0x1fff00f4:  push    {r2, r3, r4, lr}
192    0x1fff00f6:  ldr     r6, [pc, #884]  ; (0x1fff046c)
193    0x1fff00f8:  ldr     r7, [pc, #884]  ; (0x1fff0470)
194    0x1fff00fa:  ldr     r5, [pc, #888]  ; (0x1fff0474)
195    0x1fff00fc:  movs    r4, #1
196    0x1fff00fe:  ldr     r0, [pc, #884]  ; (0x1fff0474)
197    0x1fff0100:  add     r2, sp, #4
198    0x1fff0102:  movs    r1, #70 ; 0x46
199    0x1fff0104:  subs    r0, #152        ; 0x98
200    0x1fff0106:  bl      0x1fff0e04
201    0x1fff010a:  cmp     r0, #0
202    0x1fff010c:  bne.n   0x1fff00fe
203    0x1fff010e:  movs    r1, #122        ; 0x7a
204    0x1fff0110:  lsls    r2, r0, #2
205    0x1fff0112:  ldr     r2, [r5, r2]
206    0x1fff0114:  adds    r0, r0, #1
207    0x1fff0116:  strb    r1, [r2, #0]
208    0x1fff0118:  cmp     r0, #5
209    0x1fff011a:  blt.n   0x1fff0110
210    0x1fff011c:  movs    r0, #15
211    0x1fff011e:  ldr     r2, [pc, #852]  ; (0x1fff0474)
212    0x1fff0120:  str     r0, [sp, #0]
213    0x1fff0122:  mov     r0, r2
214    0x1fff0124:  movs    r3, #5
215    0x1fff0126:  subs    r0, #152        ; 0x98
216    0x1fff0128:  ldr     r1, [sp, #4]
217    0x1fff012a:  bl      0x1fff0fd8
218    0x1fff012e:  cmp     r0, #0
219    0x1fff0130:  beq.n   0x1fff00fe
220    0x1fff0132:  ldr     r1, [r5, #0]
221    0x1fff0134:  ldrb    r1, [r1, #0]
222    0x1fff0136:  cmp     r1, #82 ; 0x52
223    0x1fff0138:  beq.n   0x1fff0184
224    0x1fff013a:  cmp     r1, #84 ; 0x54
225    0x1fff013c:  beq.n   0x1fff0184
226    0x1fff013e:  cmp     r1, #71 ; 0x47
227    0x1fff0140:  beq.n   0x1fff0184
228    0x1fff0142:  cmp     r1, #77 ; 0x4d
229    0x1fff0144:  beq.n   0x1fff0184
230    0x1fff0146:  movs    r2, #0
231    0x1fff0148:  cmp     r1, #87 ; 0x57
232    0x1fff014a:  beq.n   0x1fff0188
233    0x1fff014c:  cmp     r1, #67 ; 0x43
234    0x1fff014e:  beq.n   0x1fff0188
235    0x1fff0150:  movs    r4, #0
236    0x1fff0152:  ldr     r1, [pc, #804]  ; (0x1fff0478)
237    0x1fff0154:  ldr     r3, [r6, #0]
238    0x1fff0156:  ldr     r1, [r1, #8]
239    0x1fff0158:  cmp     r1, r3
240    0x1fff015a:  beq.n   0x1fff016a
241    0x1fff015c:  ldr     r3, [r7, #0]
242    0x1fff015e:  cmp     r1, r3
243    0x1fff0160:  beq.n   0x1fff016a
244    0x1fff0162:  ldr     r3, [pc, #792]  ; (0x1fff047c)
245    0x1fff0164:  ldr     r3, [r3, #0]
246    0x1fff0166:  cmp     r1, r3
247    0x1fff0168:  bne.n   0x1fff016e
248    0x1fff016a:  cmp     r2, #1
249    0x1fff016c:  beq.n   0x1fff018c
250    0x1fff016e:  ldr     r2, [r6, #0]
251    0x1fff0170:  cmp     r1, r2
252    0x1fff0172:  beq.n   0x1fff017a
253    0x1fff0174:  ldr     r2, [r7, #0]
254    0x1fff0176:  cmp     r1, r2
255    0x1fff0178:  bne.n   0x1fff017e
256    0x1fff017a:  cmp     r4, #1
257    0x1fff017c:  beq.n   0x1fff018c
258    0x1fff017e:  bl      0x1fff0bcc
259    0x1fff0182:  b.n     0x1fff00fe
260    0x1fff0184:  movs    r2, #1
261    0x1fff0186:  b.n     0x1fff0152
262    0x1fff0188:  movs    r4, #1
263    0x1fff018a:  b.n     0x1fff0152
264    0x1fff018c:  movs    r2, #15
265    0x1fff018e:  movs    r0, #19
266    0x1fff0190:  ldr     r1, [r5, #4]
267    0x1fff0192:  bl      0x1fff1064
268    0x1fff0196:  bl      0x1ff0d9c       setup_serial
269    0x1fff019a:  b.n     0x1fff00fe
270
271
272
273    0x1fff019c:  push    {r3, r4, r5, r6, r7, lr}
274    0x1fff019e:  ldr     r6, [pc, #736]  ; (0x1fff0480)
275    0x1fff01a0:  ldr     r7, [pc, #736]  ; (0x1fff0484)
276    0x1fff01a2:  ldr     r4, [pc, #740]  ; (0x1fff0488)
277    0x1fff01a4:  movs    r5, #1
278    0x1fff01a6:  movs    r0, #2
279    0x1fff01a8:  str     r0, [r7, #4]
280    0x1fff01aa:  ldr     r0, [r6, #0]
281    0x1fff01ac:  lsls    r0, r0, #13
282    0x1fff01ae:  bmi.n   0x1fff01aa
283    0x1fff01b0:  ldr     r0, [r6, #0]
284    0x1fff01b2:  lsls    r0, r0, #13
285    0x1fff01b4:  bpl.n   0x1fff01b0
286    0x1fff01b6:  str     r5, [r7, #4]
287    0x1fff01b8:  ldr     r0, [r6, #0]
288    0x1fff01ba:  lsls    r0, r0, #13
289    0x1fff01bc:  bmi.n   0x1fff01b8
290    0x1fff01be:  ldr     r0, [r6, #0]
291    0x1fff01c0:  lsls    r0, r0, #13
292    0x1fff01c2:  bpl.n   0x1fff01be
293    0x1fff01c4:  movs    r0, #0
294    0x1fff01c6:  str     r0, [r7, #4]
295    0x1fff01c8:  ldr     r0, [r7, #8]
296    0x1fff01ca:  movs    r1, #208        ; 0xd0
297    0x1fff01cc:  bl      0x1fff11d4
298    0x1fff01d0:  movs    r2, #0
299    0x1fff01d2:  movs    r1, #3
300    0x1fff01d4:  bl      0x1fff0d28
301    0x1fff01d8:  ldr     r0, [r4, #8]
302    0x1fff01da:  lsrs    r0, r0, #3
303    0x1fff01dc:  lsls    r0, r0, #3
304    0x1fff01de:  str     r0, [r4, #8]
305    0x1fff01e0:  ldr     r0, [r4, #8]
306    0x1fff01e2:  orrs    r0, r5
307    0x1fff01e4:  str     r0, [r4, #8]
308    0x1fff01e6:  ldr     r0, [r4, #12]
309    0x1fff01e8:  lsrs    r0, r0, #3
310    0x1fff01ea:  lsls    r0, r0, #3
311    0x1fff01ec:  str     r0, [r4, #12]
312    0x1fff01ee:  ldr     r0, [r4, #12]
313    0x1fff01f0:  orrs    r0, r5
314    0x1fff01f2:  str     r0, [r4, #12]
315    0x1fff01f4:  ldr     r0, [pc, #660]  ; (0x1fff048c)
316    0x1fff01f6:  bl      0x1ff0d9c       setup_serial
317    0x1fff01fa:  bl      0x1fff0de2
318    0x1fff01fe:  ldr     r0, [pc, #628]  ; (0x1fff0474)
319    0x1fff0200:  movs    r2, #0
320    0x1fff0202:  movs    r1, #70 ; 0x46
321    0x1fff0204:  subs    r0, #152        ; 0x98
322    0x1fff0206:  bl      0x1fff0e04
323    0x1fff020a:  ldr     r0, [pc, #616]  ; (0x1fff0474)
324    0x1fff020c:  ldr     r1, [pc, #636]  ; (0x1fff048c)
325    0x1fff020e:  subs    r0, #152        ; 0x98
326    0x1fff0210:  bl      0x1fff0fb8
327    0x1fff0214:  cmp     r0, #0
328    0x1fff0216:  beq.n   0x1fff022a
329    0x1fff0218:  ldr     r0, [r4, #8]
330    0x1fff021a:  lsrs    r0, r0, #3
331    0x1fff021c:  lsls    r0, r0, #3
332    0x1fff021e:  str     r0, [r4, #8]
333    0x1fff0220:  ldr     r0, [r4, #12]
334    0x1fff0222:  lsrs    r0, r0, #3
335    0x1fff0224:  lsls    r0, r0, #3
336    0x1fff0226:  str     r0, [r4, #12]
337    0x1fff0228:  b.n     0x1fff01a6
338    0x1fff022a:  pop     {r3, r4, r5, r6, r7, pc}
339    0x1fff022c:  ldr     r0, [pc, #608]  ; (0x1fff0490)
340    0x1fff022e:  ldr     r1, [r0, #0]
341    0x1fff0230:  movs    r2, #1
342    0x1fff0232:  lsls    r2, r2, #12
343    0x1fff0234:  orrs    r1, r2
344    0x1fff0236:  str     r1, [r0, #0]
345    0x1fff0238:  movs    r1, #1
346    0x1fff023a:  str     r1, [r0, #24]
347    0x1fff023c:  ldr     r1, [pc, #596]  ; (0x1fff0494)
348    0x1fff023e:  movs    r0, #133        ; 0x85
349    0x1fff0240:  str     r0, [r1, #40]   ; 0x28
350    0x1fff0242:  ldr     r0, [pc, #596]  ; (0x1fff0498)
351    0x1fff0244:  ldr     r1, [r0, #0]
352    0x1fff0246:  lsls    r2, r2, #6
353    0x1fff0248:  bics    r1, r2
354    0x1fff024a:  str     r1, [r0, #0]
355    0x1fff024c:  ldr     r0, [pc, #568]  ; (0x1fff0488)
356    0x1fff024e:  ldr     r1, [r0, #8]
357    0x1fff0250:  lsrs    r1, r1, #3
358    0x1fff0252:  lsls    r1, r1, #3
359    0x1fff0254:  str     r1, [r0, #8]
360    0x1fff0256:  ldr     r1, [r0, #8]
361    0x1fff0258:  str     r1, [r0, #8]
362    0x1fff025a:  ldr     r0, [pc, #576]  ; (0x1fff049c)
363    0x1fff025c:  ldr     r1, [r0, #0]
364    0x1fff025e:  bics    r1, r2
365    0x1fff0260:  str     r1, [r0, #0]
366    0x1fff0262:  bx      lr
367
368
369         {
370
371    0x1fff0264:  bl      0x1fff022c
372    0x1fff0268:  movs    r0, #1
373    0x1fff026a:  bl      0x1fff0e54
374    0x1fff026e:  bl      0x1fff019c
375    0x1fff0272:  ldr     r0, [pc, #556]  ; (0x1fff04a0)  1fff1f24
376    0x1fff0274:  bl      0x1ff0d9c       setup_serial
377
378
379    0x1fff0278:  ldr     r0, [pc, #504]  ; (0x1fff0474)  100000f8
380    0x1fff027a:  movs    r2, #0
381    0x1fff027c:  movs    r1, #70 ; 0x46
382    0x1fff027e:  subs    r0, #152        ; 0x98
383    0x1fff0280:  bl      0x1fff0e04
384    0x1fff0284:  ldr     r4, [pc, #496]  ; (0x1fff0478)
385    0x1fff0286:  ldr     r0, [pc, #540]  ; (0x1fff04a4)
386    0x1fff0288:  str     r0, [r4, #0]
387    0x1fff028a:  ldr     r0, [pc, #532]  ; (0x1fff04a0)
388    0x1fff028c:  bl      0x1ff0d9c       setup_serial
389    0x1fff0290:  movs    r0, #1
390    0x1fff0292:  ldr     r1, [pc, #480]  ; (0x1fff0474)
391    0x1fff0294:  str     r0, [r4, #4]
392    0x1fff0296:  ldr     r0, [pc, #476]  ; (0x1fff0474)
393    0x1fff0298:  subs    r1, #80 ; 0x50
394    0x1fff029a:  str     r1, [r0, #0]
395    0x1fff029c:  adds    r1, #16
396    0x1fff029e:  str     r1, [r0, #4]
397    0x1fff02a0:  adds    r1, #16
398    0x1fff02a2:  str     r1, [r0, #8]
399    0x1fff02a4:  adds    r1, #16
400    0x1fff02a6:  str     r1, [r0, #12]
401    0x1fff02a8:  adds    r1, #16
402    0x1fff02aa:  str     r1, [r0, #16]
403    0x1fff02ac:  bl      0x1fff00f4
404
405         }
406
407
408 Set up clocks
409
410         {
411
412    0x1fff02b0:  ldr     r0, [pc, #476]  ; (0x1fff0490)  40048080        SYSAHBCLKCTRL
413    0x1fff02b2:  subs    r0, #64 ; 0x40                                  SYSPLLCLKSEL
414    0x1fff02b4:  ldr     r3, [r0, #48]   ; 0x30                          MAINCLKSEL
415
416         R1 = 0
417         R1 = 1
418         R3 = 0
419
420    0x1fff02b6:  movs    r1, #0
421    0x1fff02b8:  movs    r2, #1
422    0x1fff02ba:  cmp     r3, #0
423    0x1fff02bc:  beq.n   0x1fff02c4
424
425         {
426
427                 Switch to IRC osc
428
429    0x1fff02be:  str     r1, [r0, #48]   ; 0x30                          MAINCLKSEL
430    0x1fff02c0:  str     r1, [r0, #52]   ; 0x34                          MAINCLKUEN
431    0x1fff02c2:  str     r2, [r0, #52]   ; 0x34                          MAINCLKUEN
432
433         }
434
435                 SYSAHBCLKDIV = 1
436
437    0x1fff02c4:  str     r2, [r0, #56]   ; 0x38                          SYSAHBCLKDIV
438
439         SYSAHBCLKCTRL |= 0x02010040
440
441    0x1fff02c6:  ldr     r0, [pc, #456]  ; (0x1fff0490)  40048080        SYSAHBCLKCTRL
442    0x1fff02c8:  ldr     r2, [r0, #0]
443    0x1fff02ca:  ldr     r3, [pc, #476]  ; (0x1fff04a8)  02010040
444    0x1fff02cc:  orrs    r2, r3
445    0x1fff02ce:  str     r2, [r0, #0]
446
447         CT32B1
448                 Prescale = 0
449                 Prescale counter = 0
450                 CTCR |= 0xc;
451
452
453    0x1fff02d0:  ldr     r0, [pc, #432]  ; (0x1fff0484)  40018000        CT32B1
454    0x1fff02d2:  str     r1, [r0, #12]
455    0x1fff02d4:  str     r1, [r0, #16]
456    0x1fff02d6:  ldr     r0, [pc, #428]  ; (0x1fff0484)  40018000        CT32B1
457    0x1fff02d8:  adds    r0, #64 ; 0x40
458    0x1fff02da:  ldr     r1, [r0, #48]   ; 0x30
459    0x1fff02dc:  movs    r2, #12
460    0x1fff02de:  ands    r1, r2
461    0x1fff02e0:  str     r1, [r0, #48]   ; 0x30
462    0x1fff02e2:  bx      lr
463
464         }
465         {
466
467    0x1fff02e4:  ldr     r0, [pc, #452]  ; (0x1fff04ac)  1fff00c8
468    0x1fff02e6:  ldr     r1, [pc, #400]  ; (0x1fff0478)  10000050
469    0x1fff02e8:  ldr     r0, [r0, #0]                    000002fc
470    0x1fff02ea:  ldr     r0, [r0, #0]
471    0x1fff02ec:  str     r0, [r1, #8]
472    0x1fff02ee:  bl      0x1fff02b0      ; Set up clocks
473    0x1fff02f2:  bl      0x1fff0264
474
475         }
476         
477         {
478
479    0x1fff02f6:  push    {r4, r5, r6, lr}
480
481         Mash flash controller to change memory mapping around again
482    
483    0x1fff02f8:  ldr     r1, [pc, #436]  ; (0x1fff04b0)  4003c000        flash controller
484    0x1fff02fa:  ldr     r0, [r1, #0]
485    0x1fff02fc:  movs    r2, #64 ; 0x40
486    0x1fff02fe:  orrs    r0, r2
487    0x1fff0300:  str     r0, [r1, #0]
488    0x1fff0302:  ldr     r0, [pc, #432]  ; (0x1fff04b4)  00000458
489    0x1fff0304:  ldr     r5, [pc, #392]  ; (0x1fff0490)  40048080        system control block + 0x80
490    0x1fff0306:  movs    r3, #2
491    0x1fff0308:  subs    r5, #128        ; 0x80                          system control block
492    0x1fff030a:  ldr     r4, [r0, #0]                    (00000458)
493    0x1fff030c:  str     r3, [r5, #0]                    scb[0]          system memory remap
494    0x1fff030e:  ldr     r3, [pc, #424]  ; (0x1fff04b8)  000005fc
495    0x1fff0310:  ldr     r0, [r0, #0]                    (00000458)
496    0x1fff0312:  ldr     r3, [r3, #0]                    (000005fc)
497
498
499         Mash flash controller to revert memory mapping change
500
501    0x1fff0314:  ldr     r6, [r1, #0]                    (4003c000)
502    0x1fff0316:  bics    r6, r2
503    0x1fff0318:  str     r6, [r1, #0]
504
505
506         Compute the application checksum
507
508         sum = 0
509         for (i = 0; i < 8; i++) {
510                 v = addr[i];
511                 sum += v;
512         }
513
514    0x1fff031a:  movs    r2, #0
515    0x1fff031c:  mov     r1, r2
516    0x1fff031e:  lsls    r6, r1, #2
517    0x1fff0320:  ldr     r6, [r0, r6]
518    0x1fff0322:  adds    r1, r1, #1
519    0x1fff0324:  adds    r2, r6, r2
520    0x1fff0326:  cmp     r1, #8
521    0x1fff0328:  blt.n   0x1fff031e
522
523         Check and see if the application checksum is zero
524
525    0x1fff032a:  cmp     r2, #0
526    0x1fff032c:  beq.n   0x1fff0334
527    0x1fff032e:  movs    r0, #0
528    0x1fff0330:  str     r0, [r5, #0]
529
530         Bail if the application isn't valid
531
532         return;
533
534    0x1fff0332:  pop     {r4, r5, r6, pc}
535
536
537         Go start the application
538         
539    0x1fff0334:  ldr     r0, [pc, #388]  ; (0x1fff04bc)  1fff1ff8
540    0x1fff0336:  ldr     r0, [r0, #0]                    1fff1f54
541    0x1fff0338:  ldr     r0, [r0, #12]                   (1fff1f60)      1fff1f34
542    0x1fff033a:  ldr     r1, [r0, #8]                    1fff13dd
543    0x1fff033c:  mov     r0, r3
544    0x1fff033e:  blx     r1
545    0x1fff0340:  mov     r0, r4
546    0x1fff0342:  bl      0x1fff008c
547    0x1fff0346:  pop     {r4, r5, r6, pc}
548
549         }
550
551    0x1fff0348:  bl      0x1fff02f6
552    0x1fff034c:  bl      0x1fff02e4
553
554 called from 1fff0088. Appears to be the main entry, called
555 after the memory system and stack are set up
556
557 main() {
558 }
559
560    0x1fff0350:  push    {r0, r1, r2, r3, r4, lr}
561
562         Mash the flash cfg again to change memory mapping around
563
564    0x1fff0352:  ldr     r4, [pc, #348]  ; (0x1fff04b0)  4003c000
565    0x1fff0354:  ldr     r0, [r4, #0]
566    0x1fff0356:  movs    r5, #64 ; 0x40
567    0x1fff0358:  bics    r0, r5
568    0x1fff035a:  str     r0, [r4, #0]
569
570
571    0x1fff035c:  ldr     r0, [pc, #332]  ; (0x1fff04ac)  1fff00c8
572    0x1fff035e:  ldr     r0, [r0, #0]                    000005ec
573    0x1fff0360:  ldr     r1, [r0, #0]
574    0x1fff0362:  ldr     r0, [pc, #276]  ; (0x1fff0478)  10000050
575    0x1fff0364:  str     r1, [r0, #8]
576    0x1fff0366:  ldr     r0, [r4, #0]
577    0x1fff0368:  orrs    r0, r5
578    0x1fff036a:  str     r0, [r4, #0]
579    0x1fff036c:  ldr     r0, [pc, #336]  ; (0x1fff04c0)  000005d0
580    0x1fff036e:  ldr     r1, [pc, #340]  ; (0x1fff04c4)  3456abcd
581    0x1fff0370:  ldr     r0, [r0, #0]
582    0x1fff0372:  cmp     r0, r1
583    0x1fff0374:  beq.n   0x1fff037e
584    0x1fff0376:  ldr     r0, [r4, #0]
585    0x1fff0378:  bics    r0, r5
586    0x1fff037a:  str     r0, [r4, #0]
587    0x1fff037c:  b.n     0x1fff037c
588
589
590    0x1fff037e:  ldr     r0, [pc, #328]  ; (0x1fff04c8)  000005ec
591    0x1fff0380:  ldr     r6, [pc, #268]  ; (0x1fff0490)  40048080
592    0x1fff0382:  ldr     r0, [r0, #0]
593    0x1fff0384:  ldr     r1, [pc, #324]  ; (0x1fff04cc)  534b4950
594    0x1fff0386:  ldr     r7, [pc, #328]  ; (0x1fff04d0)  400483c0
595    0x1fff0388:  adds    r6, #192        ; 0xc0
596    0x1fff038a:  cmp     r0, r1
597    0x1fff038c:  bne.n   0x1fff039e
598    0x1fff038e:  ldr     r0, [pc, #324]  ; (0x1fff04d4)  12345678
599    0x1fff0390:  str     r0, [r7, #16]
600    0x1fff0392:  ldr     r0, [pc, #324]  ; (0x1fff04d8)  000005e8
601    0x1fff0394:  ldr     r0, [r0, #0]
602    0x1fff0396:  str     r0, [r6, #32]
603    0x1fff0398:  movs    r0, #0
604    0x1fff039a:  str     r0, [r7, #16]
605    0x1fff039c:  b.n     0x1fff03be
606         {
607
608    0x1fff039e:  movs    r1, #12
609    0x1fff03a0:  ldr     r0, [pc, #312]  ; (0x1fff04dc)  000005f0
610    0x1fff03a2:  str     r1, [sp, #0]
611    0x1fff03a4:  ldr     r0, [r0, #0]
612    0x1fff03a6:  str     r0, [sp, #4]
613    0x1fff03a8:  ldr     r0, [pc, #272]  ; (0x1fff04bc)  1fff1ff8
614    0x1fff03aa:  str     r1, [sp, #8]
615    0x1fff03ac:  ldr     r0, [r0, #0]                    1fff1f54
616    0x1fff03ae:  add     r1, sp, #12
617    0x1fff03b0:  ldr     r0, [r0, #12]                   1fff1f34
618    0x1fff03b2:  ldr     r2, [r0, #4]                    1fff161d        
619    0x1fff03b4:  mov     r0, sp
620    0x1fff03b6:  blx     r2
621    0x1fff03b8:  ldr     r0, [r4, #0]
622    0x1fff03ba:  orrs    r0, r5
623    0x1fff03bc:  str     r0, [r4, #0]
624         }
625
626
627    0x1fff03be:  ldr     r0, [pc, #288]  ; (0x1fff04e0)
628    0x1fff03c0:  ldr     r0, [r0, #0]
629    0x1fff03c2:  str     r0, [r7, #56]   ; 0x38
630    0x1fff03c4:  ldr     r0, [pc, #284]  ; (0x1fff04e4)
631    0x1fff03c6:  ldr     r0, [r0, #0]
632    0x1fff03c8:  str     r0, [r7, #60]   ; 0x3c
633    0x1fff03ca:  ldr     r0, [pc, #284]  ; (0x1fff04e8)
634    0x1fff03cc:  movs    r1, #0
635    0x1fff03ce:  ldr     r0, [r0, #0]
636    0x1fff03d0:  mvns    r1, r1
637    0x1fff03d2:  subs    r0, #63 ; 0x3f
638    0x1fff03d4:  str     r1, [r0, #60]   ; 0x3c
639    0x1fff03d6:  ldr     r2, [pc, #276]  ; (0x1fff04ec)
640    0x1fff03d8:  ldr     r1, [pc, #180]  ; (0x1fff0490)
641    0x1fff03da:  ldr     r0, [r2, #0]
642    0x1fff03dc:  str     r0, [r1, #0]
643    0x1fff03de:  ldr     r0, [pc, #272]  ; (0x1fff04f0)
644    0x1fff03e0:  ldr     r0, [r0, #0]
645    0x1fff03e2:  str     r0, [r6, #20]
646    0x1fff03e4:  ldr     r0, [pc, #268]  ; (0x1fff04f4)
647    0x1fff03e6:  ldr     r6, [pc, #168]  ; (0x1fff0490)
648    0x1fff03e8:  ldr     r0, [r0, #0]
649    0x1fff03ea:  subs    r6, #128        ; 0x80
650    0x1fff03ec:  str     r0, [r6, #40]   ; 0x28
651    0x1fff03ee:  ldr     r0, [r2, #0]
652    0x1fff03f0:  lsls    r3, r0, #20
653    0x1fff03f2:  movs    r0, #1
654    0x1fff03f4:  cmp     r3, #0
655    0x1fff03f6:  bge.n   0x1fff03fa
656    0x1fff03f8:  str     r0, [r1, #20]
657    0x1fff03fa:  ldr     r3, [r2, #0]
658    0x1fff03fc:  lsls    r3, r3, #19
659    0x1fff03fe:  bpl.n   0x1fff0402
660    0x1fff0400:  str     r0, [r1, #24]
661    0x1fff0402:  ldr     r1, [r2, #0]
662    0x1fff0404:  lsls    r3, r1, #17
663    0x1fff0406:  ldr     r1, [pc, #240]  ; (0x1fff04f8)
664    0x1fff0408:  bpl.n   0x1fff040c
665    0x1fff040a:  str     r0, [r1, #8]
666    0x1fff040c:  ldr     r2, [r2, #0]
667    0x1fff040e:  lsls    r2, r2, #16
668    0x1fff0410:  bpl.n   0x1fff0414
669    0x1fff0412:  str     r0, [r1, #24]
670    0x1fff0414:  ldr     r0, [pc, #228]  ; (0x1fff04fc)  000005c8
671    0x1fff0416:  ldr     r2, [r4, #0]
672    0x1fff0418:  ldr     r1, [r0, #0]                    
673    0x1fff041a:  ldr     r0, [pc, #228]  ; (0x1fff0500)  000005cc
674    0x1fff041c:  ldr     r0, [r0, #0]
675    0x1fff041e:  bics    r2, r5
676    0x1fff0420:  str     r2, [r4, #0]
677    0x1fff0422:  ldr     r2, [pc, #224]  ; (0x1fff0504)  20080620
678    0x1fff0424:  cmp     r1, r2
679    0x1fff0426:  bne.n   0x1fff042c
680    0x1fff0428:  bl      0x1fff0094      ; set sp to r0[0], jump to r0[4]
681
682    0x1fff042c:  ldr     r0, [r6, #48]   ; 0x30
683    0x1fff042e:  lsls    r0, r0, #29
684    0x1fff0430:  bmi.n   0x1fff0450
685
686         {
687
688    0x1fff0432:  ldr     r0, [pc, #76]   ; (0x1fff0480)  50002100        GPIO PIN0 register
689    0x1fff0434:  ldr     r0, [r0, #0]
690    0x1fff0436:  lsls    r0, r0, #30
691    0x1fff0438:  bmi.n   0x1fff0450
692    0x1fff043a:  ldr     r0, [pc, #60]   ; (0x1fff0478)
693    0x1fff043c:  ldr     r1, [pc, #48]   ; (0x1fff0470)
694    0x1fff043e:  ldr     r0, [r0, #8]
695    0x1fff0440:  ldr     r1, [r1, #0]
696    0x1fff0442:  cmp     r0, r1
697    0x1fff0444:  beq.n   0x1fff0450
698    0x1fff0446:  ldr     r1, [pc, #192]  ; (0x1fff0508)
699    0x1fff0448:  cmp     r0, r1
700    0x1fff044a:  beq.n   0x1fff0450
701    0x1fff044c:  bl      0x1fff02e4
702
703         }
704
705    0x1fff0450:  bl      0x1fff0348
706    0x1fff0454:  ldr     r2, [pc, #44]   ; (0x1fff0484)
707    0x1fff0456:  movs    r3, #2
708    0x1fff0458:  str     r3, [r2, #4]
709    0x1fff045a:  movs    r3, #1
710    0x1fff045c:  str     r3, [r2, #4]
711    0x1fff045e:  muls    r1, r0
712    0x1fff0460:  ldr     r0, [r2, #8]
713    0x1fff0462:  cmp     r0, r1
714    0x1fff0464:  bcc.n   0x1fff0460
715    0x1fff0466:  movs    r0, #0
716    0x1fff0468:  str     r0, [r2, #4]
717    0x1fff046a:  bx      lr
718
719 0x1fff0460:     0x42886890      0x2000d3fc      0x47706050      0x1fff00cc
720 0x1fff0470:     0x1fff00d0      0x100000f8      0x10000050      0x1fff00d4
721 0x1fff0480:     0x50002100      0x40018000      0x40044040      0x1fff1f10
722 0x1fff0490:     0x40048080      0x40008000      0x50002400      0x50002000
723 0x1fff04a0:     0x1fff1f24      0x00002ee0      0x02010440      0x1fff00c8
724 0x1fff04b0:     0x4003c000      0x00000458      0x000005fc      0x1fff1ff8
725 0x1fff04c0:     0x000005d0      0x3456abcd      0x000005ec      0x534b4950
726 0x1fff04d0:     0x400483c0      0x12345678      0x000005e8      0x000005f0
727 0x1fff04e0:     0x00000430      0x000005e0      0x0000043c      0x000005b0
728 0x1fff04f0:     0x000005b4      0x000005bc      0x400480c0      0x000005c8
729 0x1fff0500:     0x000005cc      0x20080620      0x4e697370      0x4dffb57f
730 0x1fff0510:     0x68a82264      0x9b004669      0xfdc5f000      0x0e240604
731 0x1fff0520:     0x6868d11d      0xa9012267      0xf0009b00      0x0604fdbc
732 0x1fff0530:     0xd1140e24      0x22692300      0x68e8a902      0xfdb3f000
733 0x1fff0540:     0x9802b2c4      0xd0012808      0xe008240c      0xd1062c00
734 0x1fff0550:     0x22692300      0x6928a903      0xfda5f000      0x220fb2c4
735
736    0x1fff046c:  lsls    r4, r1, #3
737    0x1fff046e:  subs    r7, r7, #7
738    0x1fff0470:  lsls    r0, r2, #3
739    0x1fff0472:  subs    r7, r7, #7
740    0x1fff0474:  lsls    r0, r7, #3
741    0x1fff0476:  asrs    r0, r0, #32
742    0x1fff0478:  lsls    r0, r2, #1
743    0x1fff047a:  asrs    r0, r0, #32
744    0x1fff047c:  lsls    r4, r2, #3
745    0x1fff047e:  subs    r7, r7, #7
746    0x1fff0480:  movs    r1, #0
747    0x1fff0482:  str     r0, [r0, r0]
748    0x1fff0484:  strh    r0, [r0, #0]
749    0x1fff0486:  ands    r1, r0
750    0x1fff0488:  eors    r0, r0
751    0x1fff048a:  ands    r4, r0
752    0x1fff048c:  subs    r0, r2, #4
753    0x1fff048e:  subs    r7, r7, #7
754    0x1fff0490:  strh    r0, [r0, #4]
755    0x1fff0492:  ands    r4, r0
756    0x1fff0494:  strh    r0, [r0, #0]
757    0x1fff0496:  ands    r0, r0
758    0x1fff0498:  movs    r4, #0
759    0x1fff049a:  str     r0, [r0, r0]
760    0x1fff049c:  movs    r0, #0
761    0x1fff049e:  str     r0, [r0, r0]
762    0x1fff04a0:  subs    r4, r4, #4
763    0x1fff04a2:  subs    r7, r7, #7
764    0x1fff04a4:  cmp     r6, #224        ; 0xe0
765    0x1fff04a6:  movs    r0, r0
766    0x1fff04a8:  lsls    r0, r0, #17
767    0x1fff04aa:  lsls    r1, r0, #8
768    0x1fff04ac:  lsls    r0, r1, #3
769    0x1fff04ae:  subs    r7, r7, #7
770    0x1fff04b0:  stmia   r0!, {}
771    0x1fff04b2:  ands    r3, r0
772    0x1fff04b4:  lsls    r0, r3, #17
773    0x1fff04b6:  movs    r0, r0
774    0x1fff04b8:  lsls    r4, r7, #23
775    0x1fff04ba:  movs    r0, r0
776    0x1fff04bc:  subs    r0, r7, #7
777    0x1fff04be:  subs    r7, r7, #7
778    0x1fff04c0:  lsls    r0, r2, #23
779    0x1fff04c2:  movs    r0, r0
780    0x1fff04c4:  add     r3, sp, #820    ; 0x334
781    0x1fff04c6:  adds    r4, #86 ; 0x56
782    0x1fff04c8:  lsls    r4, r5, #23
783    0x1fff04ca:  movs    r0, r0
784    0x1fff04cc:  ldr     r1, [pc, #320]  ; (0x1fff0610)
785    0x1fff04ce:  strh    r3, [r1, r5]
786    0x1fff04d0:  strh    r0, [r0, #30]
787    0x1fff04d2:  ands    r4, r0
788    0x1fff04d4:  ldrsb   r0, [r7, r1]
789    0x1fff04d6:  asrs    r4, r6, #8
790    0x1fff04d8:  lsls    r0, r5, #23
791    0x1fff04da:  movs    r0, r0
792    0x1fff04dc:  lsls    r0, r6, #23
793    0x1fff04de:  movs    r0, r0
794    0x1fff04e0:  lsls    r0, r6, #16
795    0x1fff04e2:  movs    r0, r0
796    0x1fff04e4:  lsls    r0, r4, #23
797    0x1fff04e6:  movs    r0, r0
798    0x1fff04e8:  lsls    r4, r7, #16
799    0x1fff04ea:  movs    r0, r0
800    0x1fff04ec:  lsls    r0, r6, #22
801    0x1fff04ee:  movs    r0, r0
802    0x1fff04f0:  lsls    r4, r6, #22
803    0x1fff04f2:  movs    r0, r0
804    0x1fff04f4:  lsls    r4, r7, #22
805    0x1fff04f6:  movs    r0, r0
806    0x1fff04f8:  strh    r0, [r0, #6]
807    0x1fff04fa:  ands    r4, r0
808    0x1fff04fc:  lsls    r0, r1, #23
809    0x1fff04fe:  movs    r0, r0
810    0x1fff0500:  lsls    r4, r1, #23
811    0x1fff0502:  movs    r0, r0
812    0x1fff0504:  lsls    r0, r4, #24
813    0x1fff0506:  movs    r0, #8
814    0x1fff0508:  strb    r0, [r6, #13]
815    0x1fff050a:  ldr     r6, [pc, #420]  ; (0x1fff06b0)
816
817         {
818
819
820    0x1fff050c:  push    {r0, r1, r2, r3, r4, r5, r6, lr}
821    0x1fff050e:  ldr     r5, [pc, #1020] ; (0x1fff090c)
822    0x1fff0510:  movs    r2, #100        ; 0x64
823    0x1fff0512:  ldr     r0, [r5, #8]
824    0x1fff0514:  mov     r1, sp
825    0x1fff0516:  ldr     r3, [sp, #0]
826    0x1fff0518:  bl      0x1fff10a6
827    0x1fff051c:  lsls    r4, r0, #24
828    0x1fff051e:  lsrs    r4, r4, #24
829    0x1fff0520:  bne.n   0x1fff055e
830    0x1fff0522:  ldr     r0, [r5, #4]
831    0x1fff0524:  movs    r2, #103        ; 0x67
832    0x1fff0526:  add     r1, sp, #4
833    0x1fff0528:  ldr     r3, [sp, #0]
834    0x1fff052a:  bl      0x1fff10a6
835    0x1fff052e:  lsls    r4, r0, #24
836    0x1fff0530:  lsrs    r4, r4, #24
837    0x1fff0532:  bne.n   0x1fff055e
838    0x1fff0534:  movs    r3, #0
839    0x1fff0536:  movs    r2, #105        ; 0x69
840    0x1fff0538:  add     r1, sp, #8
841    0x1fff053a:  ldr     r0, [r5, #12]
842    0x1fff053c:  bl      0x1fff10a6
843    0x1fff0540:  uxtb    r4, r0
844    0x1fff0542:  ldr     r0, [sp, #8]
845    0x1fff0544:  cmp     r0, #8
846    0x1fff0546:  beq.n   0x1fff054c
847    0x1fff0548:  movs    r4, #12
848    0x1fff054a:  b.n     0x1fff055e
849    0x1fff054c:  cmp     r4, #0
850    0x1fff054e:  bne.n   0x1fff055e
851    0x1fff0550:  movs    r3, #0
852    0x1fff0552:  movs    r2, #105        ; 0x69
853    0x1fff0554:  add     r1, sp, #12
854    0x1fff0556:  ldr     r0, [r5, #16]
855    0x1fff0558:  bl      0x1fff10a6
856    0x1fff055c:  uxtb    r4, r0
857    0x1fff055e:  movs    r2, #15
858    0x1fff0560:  mov     r0, r4
859    0x1fff0562:  ldr     r1, [r5, #0]
860    0x1fff0564:  bl      0x1fff1064
861    0x1fff0568:  bl      0x1ff0d9c       setup_serial
862    0x1fff056c:  ldr     r0, [pc, #928]  ; (0x1fff0910)
863    0x1fff056e:  cmp     r4, #0
864    0x1fff0570:  bne.n   0x1fff05a2
865    0x1fff0572:  b.n     0x1fff059c
866    0x1fff0574:  ldr     r1, [sp, #12]
867    0x1fff0576:  cmp     r1, #0
868    0x1fff0578:  beq.n   0x1fff0586
869    0x1fff057a:  ldr     r1, [r0, #4]
870    0x1fff057c:  lsls    r1, r1, #23
871    0x1fff057e:  bpl.n   0x1fff057a
872    0x1fff0580:  ldr     r1, [r0, #4]
873    0x1fff0582:  lsls    r1, r1, #23
874    0x1fff0584:  bmi.n   0x1fff0580
875    0x1fff0586:  ldr     r1, [sp, #8]
876    0x1fff0588:  cmp     r1, #8
877    0x1fff058a:  bne.n   0x1fff059c
878    0x1fff058c:  ldr     r2, [r0, #4]
879    0x1fff058e:  ldr     r1, [sp, #4]
880    0x1fff0590:  strb    r2, [r1, #0]
881    0x1fff0592:  adds    r1, r1, #1
882    0x1fff0594:  str     r1, [sp, #4]
883    0x1fff0596:  ldr     r1, [sp, #0]
884    0x1fff0598:  subs    r1, r1, #1
885    0x1fff059a:  str     r1, [sp, #0]
886    0x1fff059c:  ldr     r1, [sp, #0]
887    0x1fff059e:  cmp     r1, #0
888    0x1fff05a0:  bne.n   0x1fff0574
889    0x1fff05a2:  pop     {r0, r1, r2, r3, r4, r5, r6, pc}
890
891         }
892
893
894    0x1fff05a4:  push    {r4, r5, r6, lr}
895    0x1fff05a6:  ldr     r5, [pc, #868]  ; (0x1fff090c)
896    0x1fff05a8:  ldr     r6, [pc, #872]  ; (0x1fff0914)
897    0x1fff05aa:  movs    r3, #0
898    0x1fff05ac:  movs    r2, #105        ; 0x69
899    0x1fff05ae:  adds    r1, r6, #4
900    0x1fff05b0:  ldr     r0, [r5, #4]
901    0x1fff05b2:  bl      0x1fff10a6
902    0x1fff05b6:  mov     r4, r6
903    0x1fff05b8:  adds    r4, #20
904    0x1fff05ba:  str     r0, [r4, #0]
905    0x1fff05bc:  cmp     r0, #0
906    0x1fff05be:  bne.n   0x1fff05f4
907    0x1fff05c0:  mov     r1, r4
908    0x1fff05c2:  movs    r3, #0
909    0x1fff05c4:  movs    r2, #105        ; 0x69
910    0x1fff05c6:  subs    r1, #12
911    0x1fff05c8:  ldr     r0, [r5, #8]
912    0x1fff05ca:  bl      0x1fff10a6
913    0x1fff05ce:  str     r0, [r4, #0]
914    0x1fff05d0:  cmp     r0, #0
915    0x1fff05d2:  bne.n   0x1fff05f4
916    0x1fff05d4:  mov     r1, r4
917    0x1fff05d6:  movs    r3, #0
918    0x1fff05d8:  movs    r2, #105        ; 0x69
919    0x1fff05da:  subs    r1, #8
920    0x1fff05dc:  ldr     r0, [r5, #12]
921    0x1fff05de:  bl      0x1fff10a6
922    0x1fff05e2:  str     r0, [r4, #0]
923    0x1fff05e4:  cmp     r0, #0
924    0x1fff05e6:  bne.n   0x1fff05f4
925    0x1fff05e8:  movs    r0, #56 ; 0x38
926    0x1fff05ea:  str     r0, [r6, #0]
927    0x1fff05ec:  mov     r1, r4
928    0x1fff05ee:  mov     r0, r6
929    0x1fff05f0:  bl      0x1fff1ff0
930    0x1fff05f4:  ldr     r1, [r5, #4]
931    0x1fff05f6:  movs    r2, #15
932    0x1fff05f8:  ldr     r0, [r4, #0]
933    0x1fff05fa:  bl      0x1fff1064
934    0x1fff05fe:  bl      0x1ff0d9c       setup_serial
935    0x1fff0602:  ldr     r0, [r4, #0]
936    0x1fff0604:  cmp     r0, #10
937    0x1fff0606:  bne.n   0x1fff0616
938    0x1fff0608:  ldr     r1, [r5, #4]
939    0x1fff060a:  movs    r2, #15
940    0x1fff060c:  ldr     r0, [r4, #4]
941    0x1fff060e:  bl      0x1fff1064
942    0x1fff0612:  bl      0x1ff0d9c       setup_serial
943    0x1fff0616:  pop     {r4, r5, r6, pc}
944
945
946
947    0x1fff0618:  push    {r4, r5, r6, lr}
948    0x1fff061a:  ldr     r5, [pc, #752]  ; (0x1fff090c)
949    0x1fff061c:  ldr     r6, [pc, #756]  ; (0x1fff0914)
950    0x1fff061e:  movs    r3, #0
951    0x1fff0620:  movs    r2, #105        ; 0x69
952    0x1fff0622:  adds    r1, r6, #4
953    0x1fff0624:  ldr     r0, [r5, #4]
954    0x1fff0626:  bl      0x1fff10a6
955    0x1fff062a:  mov     r4, r6
956    0x1fff062c:  adds    r4, #20
957    0x1fff062e:  str     r0, [r4, #0]
958    0x1fff0630:  cmp     r0, #0
959    0x1fff0632:  bne.n   0x1fff0654
960    0x1fff0634:  mov     r1, r4
961    0x1fff0636:  movs    r3, #0
962    0x1fff0638:  movs    r2, #105        ; 0x69
963    0x1fff063a:  subs    r1, #12
964    0x1fff063c:  ldr     r0, [r5, #8]
965    0x1fff063e:  bl      0x1fff10a6
966    0x1fff0642:  str     r0, [r4, #0]
967    0x1fff0644:  cmp     r0, #0
968    0x1fff0646:  bne.n   0x1fff0654
969    0x1fff0648:  movs    r0, #53 ; 0x35
970    0x1fff064a:  str     r0, [r6, #0]
971    0x1fff064c:  mov     r1, r4
972    0x1fff064e:  mov     r0, r6
973    0x1fff0650:  bl      0x1fff1ff0
974    0x1fff0654:  ldr     r1, [r5, #4]
975    0x1fff0656:  movs    r2, #15
976    0x1fff0658:  ldr     r0, [r4, #0]
977    0x1fff065a:  bl      0x1fff1064
978    0x1fff065e:  bl      0x1ff0d9c       setup_serial
979    0x1fff0662:  ldr     r0, [r4, #0]
980    0x1fff0664:  cmp     r0, #8
981    0x1fff0666:  bne.n   0x1fff06a6
982    0x1fff0668:  ldr     r0, [pc, #684]  ; (0x1fff0918)
983    0x1fff066a:  ldr     r1, [pc, #688]  ; (0x1fff091c)
984    0x1fff066c:  ldr     r0, [r0, #0]
985    0x1fff066e:  ldr     r1, [r1, #0]
986    0x1fff0670:  cmp     r0, r1
987    0x1fff0672:  beq.n   0x1fff0684
988    0x1fff0674:  ldr     r1, [pc, #680]  ; (0x1fff0920)
989    0x1fff0676:  ldr     r1, [r1, #0]
990    0x1fff0678:  cmp     r0, r1
991    0x1fff067a:  beq.n   0x1fff0684
992    0x1fff067c:  ldr     r1, [pc, #676]  ; (0x1fff0924)
993    0x1fff067e:  ldr     r1, [r1, #0]
994    0x1fff0680:  cmp     r0, r1
995    0x1fff0682:  bne.n   0x1fff068a
996    0x1fff0684:  movs    r0, #0
997    0x1fff0686:  str     r0, [r4, #4]
998    0x1fff0688:  str     r0, [r4, #8]
999    0x1fff068a:  ldr     r1, [r5, #4]
1000    0x1fff068c:  movs    r2, #15
1001    0x1fff068e:  ldr     r0, [r4, #4]
1002    0x1fff0690:  bl      0x1fff1064
1003    0x1fff0694:  bl      0x1ff0d9c       setup_serial
1004    0x1fff0698:  ldr     r1, [r5, #4]
1005    0x1fff069a:  movs    r2, #15
1006    0x1fff069c:  ldr     r0, [r4, #8]
1007    0x1fff069e:  bl      0x1fff1064
1008    0x1fff06a2:  bl      0x1ff0d9c       setup_serial
1009    0x1fff06a6:  pop     {r4, r5, r6, pc}
1010
1011
1012
1013    0x1fff06a8:  push    {r3, r4, r5, r6, r7, lr}
1014    0x1fff06aa:  ldr     r0, [pc, #636]  ; (0x1fff0928)
1015    0x1fff06ac:  ldr     r1, [pc, #604]  ; (0x1fff090c)
1016    0x1fff06ae:  ldr     r2, [r0, #0]
1017    0x1fff06b0:  ldr     r0, [r1, #4]
1018    0x1fff06b2:  cmp     r2, #1
1019    0x1fff06b4:  beq.n   0x1fff06ce
1020    0x1fff06b6:  ldr     r4, [pc, #604]  ; (0x1fff0914)
1021    0x1fff06b8:  movs    r3, #0
1022    0x1fff06ba:  movs    r2, #105        ; 0x69
1023    0x1fff06bc:  adds    r1, r4, #4
1024    0x1fff06be:  bl      0x1fff10a6
1025    0x1fff06c2:  mov     r5, r4
1026    0x1fff06c4:  adds    r5, #20
1027    0x1fff06c6:  str     r0, [r5, #0]
1028    0x1fff06c8:  cmp     r0, #0
1029    0x1fff06ca:  beq.n   0x1fff06d6
1030    0x1fff06cc:  b.n     0x1fff06e8
1031    0x1fff06ce:  movs    r2, #15
1032    0x1fff06d0:  mov     r1, r0
1033    0x1fff06d2:  mov     r0, r2
1034    0x1fff06d4:  b.n     0x1fff0784
1035    0x1fff06d6:  ldr     r0, [pc, #564]  ; (0x1fff090c)
1036    0x1fff06d8:  ldr     r1, [pc, #568]  ; (0x1fff0914)
1037    0x1fff06da:  ldr     r0, [r0, #8]
1038    0x1fff06dc:  movs    r3, #0
1039    0x1fff06de:  movs    r2, #105        ; 0x69
1040    0x1fff06e0:  adds    r1, #8
1041    0x1fff06e2:  bl      0x1fff10a6
1042    0x1fff06e6:  str     r0, [r5, #0]
1043    0x1fff06e8:  ldr     r0, [pc, #556]  ; (0x1fff0918)
1044    0x1fff06ea:  ldr     r1, [pc, #560]  ; (0x1fff091c)
1045    0x1fff06ec:  ldr     r0, [r0, #0]
1046    0x1fff06ee:  ldr     r1, [r1, #0]
1047    0x1fff06f0:  movs    r2, #19
1048    0x1fff06f2:  ldr     r6, [pc, #568]  ; (0x1fff092c)
1049    0x1fff06f4:  movs    r7, #64 ; 0x40
1050    0x1fff06f6:  cmp     r0, r1
1051    0x1fff06f8:  beq.n   0x1fff0702
1052    0x1fff06fa:  ldr     r1, [pc, #548]  ; (0x1fff0920)
1053    0x1fff06fc:  ldr     r1, [r1, #0]
1054    0x1fff06fe:  cmp     r0, r1
1055    0x1fff0700:  bne.n   0x1fff071c
1056    0x1fff0702:  ldr     r0, [r6, #0]
1057    0x1fff0704:  orrs    r0, r7
1058    0x1fff0706:  str     r0, [r6, #0]
1059    0x1fff0708:  ldr     r0, [r4, #4]
1060    0x1fff070a:  cmp     r0, #0
1061    0x1fff070c:  bne.n   0x1fff0718
1062    0x1fff070e:  ldr     r0, [pc, #544]  ; (0x1fff0930)
1063    0x1fff0710:  ldr     r1, [r4, #8]
1064    0x1fff0712:  ldr     r0, [r0, #0]
1065    0x1fff0714:  cmp     r1, r0
1066    0x1fff0716:  beq.n   0x1fff0730
1067    0x1fff0718:  str     r2, [r5, #0]
1068    0x1fff071a:  b.n     0x1fff0730
1069    0x1fff071c:  ldr     r1, [pc, #516]  ; (0x1fff0924)
1070    0x1fff071e:  ldr     r1, [r1, #0]
1071    0x1fff0720:  cmp     r0, r1
1072    0x1fff0722:  bne.n   0x1fff0736
1073    0x1fff0724:  ldr     r0, [r6, #0]
1074    0x1fff0726:  orrs    r0, r7
1075    0x1fff0728:  str     r0, [r6, #0]
1076    0x1fff072a:  ldr     r0, [r4, #4]
1077    0x1fff072c:  cmp     r0, #0
1078    0x1fff072e:  beq.n   0x1fff070e
1079    0x1fff0730:  ldr     r0, [r6, #0]
1080    0x1fff0732:  bics    r0, r7
1081    0x1fff0734:  str     r0, [r6, #0]
1082    0x1fff0736:  ldr     r0, [r5, #0]
1083    0x1fff0738:  cmp     r0, #0
1084    0x1fff073a:  bne.n   0x1fff0750
1085    0x1fff073c:  movs    r0, #52 ; 0x34
1086    0x1fff073e:  str     r0, [r4, #0]
1087    0x1fff0740:  ldr     r0, [pc, #496]  ; (0x1fff0934)
1088    0x1fff0742:  ldr     r1, [pc, #464]  ; (0x1fff0914)
1089    0x1fff0744:  ldr     r0, [r0, #0]
1090    0x1fff0746:  str     r0, [r4, #12]
1091    0x1fff0748:  adds    r1, #20
1092    0x1fff074a:  ldr     r0, [pc, #456]  ; (0x1fff0914)
1093    0x1fff074c:  bl      0x1fff1ff0
1094    0x1fff0750:  ldr     r0, [r6, #0]
1095    0x1fff0752:  orrs    r0, r7
1096    0x1fff0754:  str     r0, [r6, #0]
1097    0x1fff0756:  ldr     r0, [r4, #4]
1098    0x1fff0758:  cmp     r0, #0
1099    0x1fff075a:  bne.n   0x1fff0776
1100    0x1fff075c:  ldr     r0, [pc, #464]  ; (0x1fff0930)
1101    0x1fff075e:  ldr     r1, [r4, #8]
1102    0x1fff0760:  ldr     r0, [r0, #0]
1103    0x1fff0762:  cmp     r1, r0
1104    0x1fff0764:  bne.n   0x1fff0776
1105    0x1fff0766:  ldr     r0, [r6, #0]
1106    0x1fff0768:  bics    r0, r7
1107    0x1fff076a:  str     r0, [r6, #0]
1108    0x1fff076c:  ldr     r0, [pc, #456]  ; (0x1fff0938)
1109    0x1fff076e:  ldr     r0, [r0, #0]
1110    0x1fff0770:  ldr     r1, [r0, #0]
1111    0x1fff0772:  ldr     r0, [pc, #420]  ; (0x1fff0918)
1112    0x1fff0774:  str     r1, [r0, #0]
1113    0x1fff0776:  ldr     r0, [r6, #0]
1114    0x1fff0778:  bics    r0, r7
1115    0x1fff077a:  str     r0, [r6, #0]
1116    0x1fff077c:  ldr     r0, [pc, #396]  ; (0x1fff090c)
1117    0x1fff077e:  movs    r2, #15
1118    0x1fff0780:  ldr     r1, [r0, #4]
1119    0x1fff0782:  ldr     r0, [r5, #0]
1120    0x1fff0784:  bl      0x1fff1064
1121    0x1fff0788:  bl      0x1ff0d9c       setup_serial
1122    0x1fff078c:  pop     {r3, r4, r5, r6, r7, pc}
1123
1124
1125
1126    0x1fff078e:  push    {r4, r5, r6, lr}
1127    0x1fff0790:  ldr     r0, [pc, #404]  ; (0x1fff0928)
1128    0x1fff0792:  ldr     r5, [pc, #376]  ; (0x1fff090c)
1129    0x1fff0794:  ldr     r1, [r0, #0]
1130    0x1fff0796:  ldr     r0, [r5, #4]
1131    0x1fff0798:  cmp     r1, #1
1132    0x1fff079a:  beq.n   0x1fff07b4
1133    0x1fff079c:  ldr     r4, [pc, #372]  ; (0x1fff0914)
1134    0x1fff079e:  movs    r3, #0
1135    0x1fff07a0:  movs    r2, #105        ; 0x69
1136    0x1fff07a2:  adds    r1, r4, #4
1137    0x1fff07a4:  bl      0x1fff10a6
1138    0x1fff07a8:  mov     r6, r4
1139    0x1fff07aa:  adds    r6, #20
1140    0x1fff07ac:  str     r0, [r6, #0]
1141    0x1fff07ae:  cmp     r0, #0
1142    0x1fff07b0:  beq.n   0x1fff07bc
1143    0x1fff07b2:  b.n     0x1fff07e0
1144    0x1fff07b4:  movs    r2, #15
1145    0x1fff07b6:  mov     r1, r0
1146    0x1fff07b8:  mov     r0, r2
1147    0x1fff07ba:  b.n     0x1fff082a
1148    0x1fff07bc:  ldr     r1, [pc, #340]  ; (0x1fff0914)
1149    0x1fff07be:  movs    r3, #0
1150    0x1fff07c0:  movs    r2, #105        ; 0x69
1151    0x1fff07c2:  adds    r1, #8
1152    0x1fff07c4:  ldr     r0, [r5, #8]
1153    0x1fff07c6:  bl      0x1fff10a6
1154    0x1fff07ca:  str     r0, [r6, #0]
1155    0x1fff07cc:  cmp     r0, #0
1156    0x1fff07ce:  bne.n   0x1fff07e0
1157    0x1fff07d0:  ldr     r1, [pc, #320]  ; (0x1fff0914)
1158    0x1fff07d2:  movs    r3, #0
1159    0x1fff07d4:  movs    r2, #105        ; 0x69
1160    0x1fff07d6:  adds    r1, #12
1161    0x1fff07d8:  ldr     r0, [r5, #12]
1162    0x1fff07da:  bl      0x1fff10a6
1163    0x1fff07de:  str     r0, [r6, #0]
1164    0x1fff07e0:  ldr     r0, [pc, #308]  ; (0x1fff0918)
1165    0x1fff07e2:  ldr     r1, [pc, #320]  ; (0x1fff0924)
1166    0x1fff07e4:  ldr     r0, [r0, #0]
1167    0x1fff07e6:  ldr     r1, [r1, #0]
1168    0x1fff07e8:  cmp     r0, r1
1169    0x1fff07ea:  bne.n   0x1fff080a
1170    0x1fff07ec:  ldr     r0, [pc, #316]  ; (0x1fff092c)
1171    0x1fff07ee:  ldr     r1, [r0, #0]
1172    0x1fff07f0:  movs    r2, #64 ; 0x40
1173    0x1fff07f2:  orrs    r1, r2
1174    0x1fff07f4:  str     r1, [r0, #0]
1175    0x1fff07f6:  ldr     r3, [pc, #324]  ; (0x1fff093c)
1176    0x1fff07f8:  ldr     r1, [r4, #4]
1177    0x1fff07fa:  ldr     r3, [r3, #0]
1178    0x1fff07fc:  cmp     r1, r3
1179    0x1fff07fe:  bcs.n   0x1fff0804
1180    0x1fff0800:  movs    r1, #19
1181    0x1fff0802:  str     r1, [r6, #0]
1182    0x1fff0804:  ldr     r1, [r0, #0]
1183    0x1fff0806:  bics    r1, r2
1184    0x1fff0808:  str     r1, [r0, #0]
1185    0x1fff080a:  ldr     r0, [r6, #0]
1186    0x1fff080c:  cmp     r0, #0
1187    0x1fff080e:  bne.n   0x1fff0824
1188    0x1fff0810:  movs    r0, #51 ; 0x33
1189    0x1fff0812:  str     r0, [r4, #0]
1190    0x1fff0814:  ldr     r0, [pc, #284]  ; (0x1fff0934)
1191    0x1fff0816:  ldr     r1, [pc, #252]  ; (0x1fff0914)
1192    0x1fff0818:  ldr     r0, [r0, #0]
1193    0x1fff081a:  str     r0, [r4, #16]
1194    0x1fff081c:  adds    r1, #20
1195    0x1fff081e:  ldr     r0, [pc, #244]  ; (0x1fff0914)
1196    0x1fff0820:  bl      0x1fff1ff0
1197    0x1fff0824:  ldr     r1, [r5, #4]
1198    0x1fff0826:  movs    r2, #15
1199    0x1fff0828:  ldr     r0, [r6, #0]
1200    0x1fff082a:  bl      0x1fff1064
1201    0x1fff082e:  bl      0x1ff0d9c       setup_serial
1202    0x1fff0832:  pop     {r4, r5, r6, pc}
1203
1204         {
1205
1206    0x1fff0834:  push    {r4, r5, r6, lr}
1207    0x1fff0836:  ldr     r5, [pc, #212]  ; (0x1fff090c)
1208    0x1fff0838:  ldr     r6, [pc, #216]  ; (0x1fff0914)
1209    0x1fff083a:  movs    r3, #0
1210    0x1fff083c:  movs    r2, #105        ; 0x69
1211    0x1fff083e:  adds    r1, r6, #4
1212    0x1fff0840:  ldr     r0, [r5, #4]
1213    0x1fff0842:  bl      0x1fff10a6
1214    0x1fff0846:  mov     r4, r6
1215    0x1fff0848:  adds    r4, #20
1216    0x1fff084a:  str     r0, [r4, #0]
1217    0x1fff084c:  cmp     r0, #0
1218    0x1fff084e:  bne.n   0x1fff0870
1219    0x1fff0850:  mov     r1, r4
1220    0x1fff0852:  movs    r3, #0
1221    0x1fff0854:  movs    r2, #105        ; 0x69
1222    0x1fff0856:  subs    r1, #12
1223    0x1fff0858:  ldr     r0, [r5, #8]
1224    0x1fff085a:  bl      0x1fff10a6
1225    0x1fff085e:  str     r0, [r4, #0]
1226    0x1fff0860:  cmp     r0, #0
1227    0x1fff0862:  bne.n   0x1fff0870
1228    0x1fff0864:  movs    r0, #50 ; 0x32
1229    0x1fff0866:  str     r0, [r6, #0]
1230    0x1fff0868:  mov     r1, r4
1231    0x1fff086a:  mov     r0, r6
1232    0x1fff086c:  bl      0x1fff1ff0
1233    0x1fff0870:  ldr     r1, [r5, #4]
1234    0x1fff0872:  movs    r2, #15
1235    0x1fff0874:  ldr     r0, [r4, #0]
1236    0x1fff0876:  bl      0x1fff1064
1237    0x1fff087a:  bl      0x1ff0d9c       setup_serial
1238    0x1fff087e:  pop     {r4, r5, r6, pc}
1239
1240         }
1241         {
1242
1243    0x1fff0880:  push    {r3, r4, r5, lr}
1244    0x1fff0882:  ldr     r5, [pc, #136]  ; (0x1fff090c)
1245    0x1fff0884:  movs    r3, #0
1246    0x1fff0886:  movs    r2, #105        ; 0x69
1247    0x1fff0888:  mov     r1, sp
1248    0x1fff088a:  ldr     r0, [r5, #4]
1249    0x1fff088c:  bl      0x1fff10a6
1250    0x1fff0890:  uxtb    r4, r0
1251    0x1fff0892:  movs    r2, #15
1252    0x1fff0894:  mov     r0, r4
1253    0x1fff0896:  ldr     r1, [r5, #4]
1254    0x1fff0898:  bl      0x1fff1064
1255    0x1fff089c:  bl      0x1ff0d9c       setup_serial
1256    0x1fff08a0:  cmp     r4, #0
1257    0x1fff08a2:  bne.n   0x1fff08b0
1258    0x1fff08a4:  ldr     r0, [sp, #0]
1259    0x1fff08a6:  cmp     r0, #0
1260    0x1fff08a8:  beq.n   0x1fff08ac
1261    0x1fff08aa:  movs    r0, #1
1262    0x1fff08ac:  bl      0x1fff0e54
1263    0x1fff08b0:  pop     {r3, r4, r5, pc}
1264
1265         }
1266         {
1267
1268    0x1fff08b2:  push    {r2, r3, r4, r5, r6, lr}
1269    0x1fff08b4:  ldr     r5, [pc, #84]   ; (0x1fff090c)  100000f8
1270    0x1fff08b6:  movs    r3, #0
1271    0x1fff08b8:  movs    r2, #105        ; 0x69
1272    0x1fff08ba:  add     r1, sp, #4
1273    0x1fff08bc:  ldr     r0, [r5, #4]
1274    0x1fff08be:  bl      0x1fff10a6
1275    0x1fff08c2:  movs    r3, #0
1276    0x1fff08c4:  movs    r2, #105        ; 0x69
1277    0x1fff08c6:  mov     r1, sp
1278    0x1fff08c8:  ldr     r0, [r5, #8]
1279    0x1fff08ca:  bl      0x1fff10a6
1280    0x1fff08ce:  lsls    r4, r0, #24
1281    0x1fff08d0:  lsrs    r4, r4, #24
1282    0x1fff08d2:  bne.n   0x1fff0942
1283    0x1fff08d4:  movs    r0, #75 ; 0x4b
1284    0x1fff08d6:  ldr     r1, [sp, #4]
1285    0x1fff08d8:  lsls    r0, r0, #7
1286    0x1fff08da:  cmp     r1, r0
1287    0x1fff08dc:  beq.n   0x1fff0900
1288    0x1fff08de:  lsls    r0, r0, #1
1289    0x1fff08e0:  cmp     r1, r0
1290    0x1fff08e2:  beq.n   0x1fff0900
1291    0x1fff08e4:  lsls    r0, r0, #1
1292    0x1fff08e6:  cmp     r1, r0
1293    0x1fff08e8:  beq.n   0x1fff0900
1294    0x1fff08ea:  movs    r0, #225        ; 0xe1
1295    0x1fff08ec:  lsls    r0, r0, #8
1296    0x1fff08ee:  cmp     r1, r0
1297    0x1fff08f0:  beq.n   0x1fff0900
1298    0x1fff08f2:  lsls    r0, r0, #1
1299    0x1fff08f4:  cmp     r1, r0
1300    0x1fff08f6:  beq.n   0x1fff0900
1301    0x1fff08f8:  lsls    r0, r0, #1
1302    0x1fff08fa:  cmp     r1, r0
1303    0x1fff08fc:  beq.n   0x1fff0900
1304    0x1fff08fe:  movs    r4, #17
1305    0x1fff0900:  ldr     r0, [sp, #0]
1306    0x1fff0902:  cmp     r0, #1
1307    0x1fff0904:  beq.n   0x1fff0942
1308    0x1fff0906:  cmp     r0, #2
1309    0x1fff0908:  beq.n   0x1fff0942
1310    0x1fff090a:  b.n     0x1fff0940
1311
1312         }
1313
1314 0x1fff0900:     0x28019800      0x2802d01d      0xe019d01b      0x100000f8
1315 0x1fff0910:     0x50002100      0x1000010c      0x10000058      0x1fff00cc
1316 0x1fff0920:     0x1fff00d0      0x1fff00d4      0x10000054      0x4003c000
1317 0x1fff0930:     0x00000440      0x10000050      0x1fff00c8      0x00000520
1318 0x1fff0940:     0x220f2412      0x68694620      0xfb8cf000      0xfa26f000
1319
1320    0x1fff090c:  lsls    r0, r7, #3
1321    0x1fff090e:  asrs    r0, r0, #32
1322    0x1fff0910:  movs    r1, #0
1323    0x1fff0912:  str     r0, [r0, r0]
1324    0x1fff0914:  lsls    r4, r1, #4
1325    0x1fff0916:  asrs    r0, r0, #32
1326    0x1fff0918:  lsls    r0, r3, #1
1327    0x1fff091a:  asrs    r0, r0, #32
1328    0x1fff091c:  lsls    r4, r1, #3
1329    0x1fff091e:  subs    r7, r7, #7
1330    0x1fff0920:  lsls    r0, r2, #3
1331    0x1fff0922:  subs    r7, r7, #7
1332    0x1fff0924:  lsls    r4, r2, #3
1333    0x1fff0926:  subs    r7, r7, #7
1334    0x1fff0928:  lsls    r4, r2, #1
1335    0x1fff092a:  asrs    r0, r0, #32
1336    0x1fff092c:  stmia   r0!, {}
1337    0x1fff092e:  ands    r3, r0
1338    0x1fff0930:  lsls    r0, r0, #17
1339    0x1fff0932:  movs    r0, r0
1340    0x1fff0934:  lsls    r0, r2, #1
1341    0x1fff0936:  asrs    r0, r0, #32
1342    0x1fff0938:  lsls    r0, r1, #3
1343    0x1fff093a:  subs    r7, r7, #7
1344    0x1fff093c:  lsls    r0, r4, #20
1345    0x1fff093e:  movs    r0, r0
1346
1347    0x1fff0940:  movs    r4, #18
1348    0x1fff0942:  movs    r2, #15
1349    0x1fff0944:  mov     r0, r4
1350    0x1fff0946:  ldr     r1, [r5, #4]
1351    0x1fff0948:  bl      0x1fff1064
1352    0x1fff094c:  bl      0x1ff0d9c       setup_serial
1353    0x1fff0950:  cmp     r4, #0
1354    0x1fff0952:  bne.n   0x1fff0960
1355    0x1fff0954:  ldr     r0, [pc, #920]  ; (0x1fff0cf0)
1356    0x1fff0956:  ldr     r1, [sp, #0]
1357    0x1fff0958:  ldr     r2, [r0, #0]
1358    0x1fff095a:  ldr     r0, [sp, #4]
1359    0x1fff095c:  bl      0x1fff0d28
1360    0x1fff0960:  pop     {r2, r3, r4, r5, r6, pc}
1361
1362
1363
1364    0x1fff0962:  push    {r3, r4, r5, lr}
1365    0x1fff0964:  ldr     r4, [pc, #908]  ; (0x1fff0cf4)
1366    0x1fff0966:  movs    r3, #0
1367    0x1fff0968:  movs    r2, #105        ; 0x69
1368    0x1fff096a:  mov     r1, sp
1369    0x1fff096c:  ldr     r0, [r4, #4]
1370    0x1fff096e:  bl      0x1fff10a6
1371    0x1fff0972:  lsls    r0, r0, #24
1372    0x1fff0974:  lsrs    r0, r0, #24
1373    0x1fff0976:  bne.n   0x1fff098a
1374    0x1fff0978:  ldr     r2, [pc, #892]  ; (0x1fff0cf8)
1375    0x1fff097a:  ldr     r1, [sp, #0]
1376    0x1fff097c:  cmp     r1, r2
1377    0x1fff097e:  bne.n   0x1fff0988
1378    0x1fff0980:  ldr     r2, [pc, #888]  ; (0x1fff0cfc)
1379    0x1fff0982:  movs    r1, #0
1380    0x1fff0984:  str     r1, [r2, #0]
1381    0x1fff0986:  b.n     0x1fff098a
1382    0x1fff0988:  movs    r0, #16
1383    0x1fff098a:  movs    r2, #15
1384    0x1fff098c:  ldr     r1, [r4, #4]
1385    0x1fff098e:  bl      0x1fff1064
1386    0x1fff0992:  bl      0x1ff0d9c       setup_serial
1387    0x1fff0996:  pop     {r3, r4, r5, pc}
1388
1389
1390
1391    0x1fff0998:  push    {r3, r4, r5, lr}
1392    0x1fff099a:  ldr     r0, [pc, #864]  ; (0x1fff0cfc)
1393    0x1fff099c:  ldr     r5, [pc, #852]  ; (0x1fff0cf4)
1394    0x1fff099e:  ldr     r0, [r0, #0]
1395    0x1fff09a0:  cmp     r0, #0
1396    0x1fff09a2:  beq.n   0x1fff09a8
1397    0x1fff09a4:  movs    r4, #15
1398    0x1fff09a6:  b.n     0x1fff09dc
1399    0x1fff09a8:  movs    r4, #0
1400    0x1fff09aa:  ldr     r0, [pc, #852]  ; (0x1fff0d00)
1401    0x1fff09ac:  ldr     r1, [r5, #4]
1402    0x1fff09ae:  bl      0x1fff0fb8
1403    0x1fff09b2:  cmp     r0, #0
1404    0x1fff09b4:  beq.n   0x1fff09ca
1405    0x1fff09b6:  movs    r3, #0
1406    0x1fff09b8:  movs    r2, #102        ; 0x66
1407    0x1fff09ba:  mov     r1, sp
1408    0x1fff09bc:  ldr     r0, [r5, #4]
1409    0x1fff09be:  bl      0x1fff10a6
1410    0x1fff09c2:  lsls    r4, r0, #24
1411    0x1fff09c4:  lsrs    r4, r4, #24
1412    0x1fff09c6:  beq.n   0x1fff09ce
1413    0x1fff09c8:  b.n     0x1fff09dc
1414    0x1fff09ca:  ldr     r0, [pc, #824]  ; (0x1fff0d04)
1415    0x1fff09cc:  str     r0, [sp, #0]
1416    0x1fff09ce:  ldr     r0, [r5, #8]
1417    0x1fff09d0:  ldrb    r0, [r0, #0]
1418    0x1fff09d2:  cmp     r0, #84 ; 0x54
1419    0x1fff09d4:  beq.n   0x1fff09f4
1420    0x1fff09d6:  cmp     r0, #65 ; 0x41
1421    0x1fff09d8:  beq.n   0x1fff09dc
1422    0x1fff09da:  movs    r4, #12
1423    0x1fff09dc:  movs    r2, #15
1424    0x1fff09de:  mov     r0, r4
1425    0x1fff09e0:  ldr     r1, [r5, #4]
1426    0x1fff09e2:  bl      0x1fff1064
1427    0x1fff09e6:  bl      0x1ff0d9c       setup_serial
1428    0x1fff09ea:  cmp     r4, #0
1429    0x1fff09ec:  bne.n   0x1fff09f2
1430    0x1fff09ee:  ldr     r0, [sp, #0]
1431    0x1fff09f0:  blx     r0
1432    0x1fff09f2:  pop     {r3, r4, r5, pc}
1433    0x1fff09f4:  ldr     r0, [sp, #0]
1434    0x1fff09f6:  movs    r1, #1
1435    0x1fff09f8:  orrs    r0, r1
1436    0x1fff09fa:  str     r0, [sp, #0]
1437    0x1fff09fc:  b.n     0x1fff09dc
1438
1439
1440
1441    0x1fff09fe:  push    {r4, r5, r6, r7, lr}
1442    0x1fff0a00:  ldr     r5, [pc, #752]  ; (0x1fff0cf4)
1443    0x1fff0a02:  sub     sp, #20
1444    0x1fff0a04:  movs    r3, #0
1445    0x1fff0a06:  movs    r2, #100        ; 0x64
1446    0x1fff0a08:  add     r1, sp, #4
1447    0x1fff0a0a:  ldr     r0, [r5, #8]
1448    0x1fff0a0c:  bl      0x1fff10a6
1449    0x1fff0a10:  lsls    r4, r0, #24
1450    0x1fff0a12:  lsrs    r4, r4, #24
1451    0x1fff0a14:  bne.n   0x1fff0a24
1452    0x1fff0a16:  ldr     r0, [r5, #4]
1453    0x1fff0a18:  movs    r2, #102        ; 0x66
1454    0x1fff0a1a:  add     r1, sp, #8
1455    0x1fff0a1c:  ldr     r3, [sp, #4]
1456    0x1fff0a1e:  bl      0x1fff10a6
1457    0x1fff0a22:  uxtb    r4, r0
1458    0x1fff0a24:  movs    r2, #15
1459    0x1fff0a26:  mov     r0, r4
1460    0x1fff0a28:  ldr     r1, [r5, #0]
1461    0x1fff0a2a:  bl      0x1fff1064
1462    0x1fff0a2e:  bl      0x1ff0d9c       setup_serial
1463    0x1fff0a32:  cmp     r4, #0
1464    0x1fff0a34:  bne.n   0x1fff0abe
1465    0x1fff0a36:  movs    r1, #1
1466    0x1fff0a38:  ldr     r0, [sp, #8]
1467    0x1fff0a3a:  lsls    r1, r1, #15
1468    0x1fff0a3c:  cmp     r0, r1
1469    0x1fff0a3e:  bcs.n   0x1fff0a44
1470    0x1fff0a40:  adds    r0, r0, r1
1471    0x1fff0a42:  str     r0, [sp, #8]
1472    0x1fff0a44:  mov     r7, r0
1473    0x1fff0a46:  movs    r6, #0
1474    0x1fff0a48:  ldr     r0, [sp, #4]
1475    0x1fff0a4a:  mov     r4, r6
1476    0x1fff0a4c:  str     r0, [sp, #12]
1477    0x1fff0a4e:  b.n     0x1fff0ab8
1478    0x1fff0a50:  cmp     r5, #45 ; 0x2d
1479    0x1fff0a52:  ble.n   0x1fff0a56
1480    0x1fff0a54:  movs    r5, #45 ; 0x2d
1481    0x1fff0a56:  mov     r2, r5
1482    0x1fff0a58:  ldr     r1, [pc, #684]  ; (0x1fff0d08)
1483    0x1fff0a5a:  ldr     r0, [sp, #8]
1484    0x1fff0a5c:  bl      0x1fff0e76
1485    0x1fff0a60:  adds    r6, r0, r6
1486    0x1fff0a62:  ldr     r0, [pc, #676]  ; (0x1fff0d08)
1487    0x1fff0a64:  bl      0x1ff0d9c       setup_serial
1488    0x1fff0a68:  cmp     r0, #0
1489    0x1fff0a6a:  bne.n   0x1fff0abe
1490    0x1fff0a6c:  ldr     r0, [sp, #8]
1491    0x1fff0a6e:  adds    r4, r4, #1
1492    0x1fff0a70:  adds    r0, r0, r5
1493    0x1fff0a72:  str     r0, [sp, #8]
1494    0x1fff0a74:  ldr     r0, [sp, #4]
1495    0x1fff0a76:  subs    r0, r0, r5
1496    0x1fff0a78:  str     r0, [sp, #4]
1497    0x1fff0a7a:  cmp     r4, #20
1498    0x1fff0a7c:  beq.n   0x1fff0a82
1499    0x1fff0a7e:  cmp     r0, #0
1500    0x1fff0a80:  bne.n   0x1fff0ab8
1501    0x1fff0a82:  movs    r2, #15
1502    0x1fff0a84:  ldr     r1, [pc, #640]  ; (0x1fff0d08)
1503    0x1fff0a86:  mov     r0, r6
1504    0x1fff0a88:  bl      0x1fff1064
1505    0x1fff0a8c:  bl      0x1ff0d9c       setup_serial
1506    0x1fff0a90:  movs    r2, #0
1507    0x1fff0a92:  movs    r1, #70 ; 0x46
1508    0x1fff0a94:  ldr     r0, [pc, #624]  ; (0x1fff0d08)
1509    0x1fff0a96:  bl      0x1fff0e04
1510    0x1fff0a9a:  lsls    r0, r0, #24
1511    0x1fff0a9c:  lsrs    r0, r0, #24
1512    0x1fff0a9e:  bne.n   0x1fff0abe
1513    0x1fff0aa0:  ldr     r1, [pc, #604]  ; (0x1fff0d00)
1514    0x1fff0aa2:  ldr     r0, [pc, #612]  ; (0x1fff0d08)
1515    0x1fff0aa4:  subs    r1, r1, #3
1516    0x1fff0aa6:  bl      0x1fff0fb8
1517    0x1fff0aaa:  cmp     r0, #0
1518    0x1fff0aac:  beq.n   0x1fff0ac2
1519    0x1fff0aae:  ldr     r0, [sp, #12]
1520    0x1fff0ab0:  str     r7, [sp, #8]
1521    0x1fff0ab2:  str     r0, [sp, #4]
1522    0x1fff0ab4:  movs    r4, #0
1523    0x1fff0ab6:  mov     r6, r4
1524    0x1fff0ab8:  ldr     r5, [sp, #4]
1525    0x1fff0aba:  cmp     r5, #0
1526    0x1fff0abc:  bgt.n   0x1fff0a50
1527    0x1fff0abe:  add     sp, #20
1528    0x1fff0ac0:  pop     {r4, r5, r6, r7, pc}
1529    0x1fff0ac2:  ldr     r0, [sp, #4]
1530    0x1fff0ac4:  str     r0, [sp, #12]
1531    0x1fff0ac6:  ldr     r7, [sp, #8]
1532    0x1fff0ac8:  b.n     0x1fff0ab4
1533
1534
1535
1536    0x1fff0aca:  push    {r4, r5, r6, r7, lr}
1537    0x1fff0acc:  sub     sp, #20
1538    0x1fff0ace:  ldr     r5, [pc, #548]  ; (0x1fff0cf4)
1539    0x1fff0ad0:  movs    r2, #100        ; 0x64
1540    0x1fff0ad2:  ldr     r0, [r5, #8]
1541    0x1fff0ad4:  add     r1, sp, #4
1542    0x1fff0ad6:  ldr     r3, [sp, #4]
1543    0x1fff0ad8:  bl      0x1fff10a6
1544    0x1fff0adc:  lsls    r4, r0, #24
1545    0x1fff0ade:  lsrs    r4, r4, #24
1546    0x1fff0ae0:  bne.n   0x1fff0b00
1547    0x1fff0ae2:  ldr     r0, [r5, #4]
1548    0x1fff0ae4:  movs    r2, #103        ; 0x67
1549    0x1fff0ae6:  add     r1, sp, #8
1550    0x1fff0ae8:  ldr     r3, [sp, #4]
1551    0x1fff0aea:  bl      0x1fff10a6
1552    0x1fff0aee:  uxtb    r4, r0
1553    0x1fff0af0:  cmp     r4, #4
1554    0x1fff0af2:  beq.n   0x1fff0afa
1555    0x1fff0af4:  cmp     r4, #2
1556    0x1fff0af6:  beq.n   0x1fff0afe
1557    0x1fff0af8:  b.n     0x1fff0b00
1558    0x1fff0afa:  movs    r4, #14
1559    0x1fff0afc:  b.n     0x1fff0b00
1560    0x1fff0afe:  movs    r4, #13
1561    0x1fff0b00:  ldr     r0, [pc, #520]  ; (0x1fff0d0c)
1562    0x1fff0b02:  ldr     r1, [r0, #0]
1563    0x1fff0b04:  movs    r2, #64 ; 0x40
1564    0x1fff0b06:  orrs    r1, r2
1565    0x1fff0b08:  str     r1, [r0, #0]
1566    0x1fff0b0a:  ldr     r1, [pc, #516]  ; (0x1fff0d10)
1567    0x1fff0b0c:  ldr     r3, [pc, #516]  ; (0x1fff0d14)
1568    0x1fff0b0e:  ldr     r1, [r1, #0]
1569    0x1fff0b10:  ldr     r3, [r3, #0]
1570    0x1fff0b12:  cmp     r1, r3
1571    0x1fff0b14:  bne.n   0x1fff0b28
1572    0x1fff0b16:  ldr     r1, [pc, #512]  ; (0x1fff0d18)
1573    0x1fff0b18:  ldr     r3, [sp, #8]
1574    0x1fff0b1a:  ldr     r1, [r1, #0]
1575    0x1fff0b1c:  adds    r1, #255        ; 0xff
1576    0x1fff0b1e:  adds    r1, #255        ; 0xff
1577    0x1fff0b20:  adds    r1, #2
1578    0x1fff0b22:  cmp     r3, r1
1579    0x1fff0b24:  bcs.n   0x1fff0b28
1580    0x1fff0b26:  movs    r4, #19
1581    0x1fff0b28:  ldr     r1, [r0, #0]
1582    0x1fff0b2a:  bics    r1, r2
1583    0x1fff0b2c:  str     r1, [r0, #0]
1584    0x1fff0b2e:  movs    r2, #15
1585    0x1fff0b30:  mov     r0, r4
1586    0x1fff0b32:  ldr     r1, [r5, #0]
1587    0x1fff0b34:  bl      0x1fff1064
1588    0x1fff0b38:  bl      0x1ff0d9c       setup_serial
1589    0x1fff0b3c:  cmp     r4, #0
1590    0x1fff0b3e:  bne.n   0x1fff0abe
1591    0x1fff0b40:  mov     r5, r4
1592    0x1fff0b42:  ldr     r7, [sp, #4]
1593    0x1fff0b44:  ldr     r6, [sp, #8]
1594    0x1fff0b46:  b.n     0x1fff0bc4
1595    0x1fff0b48:  mov     r2, sp
1596    0x1fff0b4a:  movs    r1, #70 ; 0x46
1597    0x1fff0b4c:  ldr     r0, [pc, #440]  ; (0x1fff0d08)
1598    0x1fff0b4e:  bl      0x1fff0e04
1599    0x1fff0b52:  cmp     r0, #0
1600    0x1fff0b54:  bne.n   0x1fff0abe
1601    0x1fff0b56:  ldr     r0, [sp, #0]
1602    0x1fff0b58:  cmp     r0, #0
1603    0x1fff0b5a:  beq.n   0x1fff0b78
1604    0x1fff0b5c:  adds    r5, r5, #1
1605    0x1fff0b5e:  add     r2, sp, #12
1606    0x1fff0b60:  ldr     r0, [pc, #420]  ; (0x1fff0d08)
1607    0x1fff0b62:  ldr     r1, [sp, #8]
1608    0x1fff0b64:  bl      0x1fff0f00
1609    0x1fff0b68:  adds    r4, r0, r4
1610    0x1fff0b6a:  ldr     r1, [sp, #8]
1611    0x1fff0b6c:  ldr     r0, [sp, #12]
1612    0x1fff0b6e:  adds    r1, r1, r0
1613    0x1fff0b70:  str     r1, [sp, #8]
1614    0x1fff0b72:  ldr     r1, [sp, #4]
1615    0x1fff0b74:  subs    r0, r1, r0
1616    0x1fff0b76:  str     r0, [sp, #4]
1617    0x1fff0b78:  cmp     r5, #20
1618    0x1fff0b7a:  beq.n   0x1fff0b82
1619    0x1fff0b7c:  ldr     r0, [sp, #4]
1620    0x1fff0b7e:  cmp     r0, #0
1621    0x1fff0b80:  bne.n   0x1fff0bc4
1622    0x1fff0b82:  movs    r0, #0
1623    0x1fff0b84:  str     r0, [sp, #0]
1624    0x1fff0b86:  mov     r2, sp
1625    0x1fff0b88:  movs    r1, #70 ; 0x46
1626    0x1fff0b8a:  ldr     r0, [pc, #380]  ; (0x1fff0d08)
1627    0x1fff0b8c:  bl      0x1fff0e04
1628    0x1fff0b90:  ldr     r1, [sp, #0]
1629    0x1fff0b92:  uxtb    r0, r0
1630    0x1fff0b94:  cmp     r1, #0
1631    0x1fff0b96:  beq.n   0x1fff0b86
1632    0x1fff0b98:  cmp     r0, #0
1633    0x1fff0b9a:  bne.n   0x1fff0abe
1634    0x1fff0b9c:  add     r1, sp, #16
1635    0x1fff0b9e:  ldr     r0, [pc, #360]  ; (0x1fff0d08)
1636    0x1fff0ba0:  bl      0x1fff103a
1637    0x1fff0ba4:  ldr     r0, [sp, #16]
1638    0x1fff0ba6:  cmp     r4, r0
1639    0x1fff0ba8:  bne.n   0x1fff0bb4
1640    0x1fff0baa:  ldr     r0, [pc, #340]  ; (0x1fff0d00)
1641    0x1fff0bac:  ldr     r7, [sp, #4]
1642    0x1fff0bae:  subs    r0, r0, #3
1643    0x1fff0bb0:  ldr     r6, [sp, #8]
1644    0x1fff0bb2:  b.n     0x1fff0bbc
1645    0x1fff0bb4:  ldr     r0, [pc, #328]  ; (0x1fff0d00)
1646    0x1fff0bb6:  str     r7, [sp, #4]
1647    0x1fff0bb8:  adds    r0, r0, #5
1648    0x1fff0bba:  str     r6, [sp, #8]
1649    0x1fff0bbc:  bl      0x1ff0d9c       setup_serial
1650    0x1fff0bc0:  movs    r5, #0
1651    0x1fff0bc2:  mov     r4, r5
1652    0x1fff0bc4:  ldr     r0, [sp, #4]
1653    0x1fff0bc6:  cmp     r0, #0
1654    0x1fff0bc8:  bgt.n   0x1fff0b48
1655    0x1fff0bca:  b.n     0x1fff0abe
1656
1657
1658
1659    0x1fff0bcc:  push    {r3, r4, r5, r6, r7, lr}
1660    0x1fff0bce:  ldr     r4, [pc, #292]  ; (0x1fff0cf4)
1661    0x1fff0bd0:  ldr     r5, [pc, #312]  ; (0x1fff0d0c)
1662    0x1fff0bd2:  ldr     r0, [r4, #0]
1663    0x1fff0bd4:  movs    r6, #64 ; 0x40
1664    0x1fff0bd6:  ldrb    r3, [r0, #0]
1665    0x1fff0bd8:  mov     r0, r4
1666    0x1fff0bda:  subs    r3, #65 ; 0x41
1667    0x1fff0bdc:  ldr     r1, [r0, #4]
1668    0x1fff0bde:  bl      0x1fff19b0
1669    0x1fff0be2:  adds    r7, r2, #0
1670    0x1fff0be4:  strb    r1, [r3, #20]
1671    0x1fff0be6:  ldrb    r4, [r0, #2]
1672    0x1fff0be8:  asrs    r4, r0, #14
1673    0x1fff0bea:  ldrb    r4, [r0, #14]
1674    0x1fff0bec:  strb    r7, [r3, r0]
1675    0x1fff0bee:  ldrb    r4, [r0, #26]
1676    0x1fff0bf0:  strh    r1, [r5, #32]
1677    0x1fff0bf2:  strh    r2, [r6, #34]   ; 0x22
1678    0x1fff0bf4:  strh    r0, [r2, #32]
1679    0x1fff0bf6:  asrs    r1, r0, #26
1680    0x1fff0bf8:  lsrs    r4, r0, #22
1681    0x1fff0bfa:  lsls    r4, r0, #2
1682    0x1fff0bfc:  bl      0x1fff0aca
1683    0x1fff0c00:  pop     {r3, r4, r5, r6, r7, pc}
1684    0x1fff0c02:  bl      0x1fff09fe
1685    0x1fff0c06:  pop     {r3, r4, r5, r6, r7, pc}
1686    0x1fff0c08:  bl      0x1fff0998
1687    0x1fff0c0c:  pop     {r3, r4, r5, r6, r7, pc}
1688    0x1fff0c0e:  bl      0x1fff0962
1689    0x1fff0c12:  pop     {r3, r4, r5, r6, r7, pc}
1690    0x1fff0c14:  bl      0x1fff08b2
1691    0x1fff0c18:  pop     {r3, r4, r5, r6, r7, pc}
1692    0x1fff0c1a:  bl      0x1fff0880
1693    0x1fff0c1e:  pop     {r3, r4, r5, r6, r7, pc}
1694    0x1fff0c20:  movs    r2, #15
1695    0x1fff0c22:  movs    r0, #0
1696    0x1fff0c24:  bl      0x1fff1064
1697    0x1fff0c28:  bl      0x1ff0d9c       setup_serial
1698    0x1fff0c2c:  ldr     r0, [pc, #236]  ; (0x1fff0d1c)
1699    0x1fff0c2e:  ldr     r1, [r4, #4]
1700    0x1fff0c30:  ldr     r0, [r0, #52]   ; 0x34
1701    0x1fff0c32:  b.n     0x1fff0cba
1702    0x1fff0c34:  ldr     r0, [r5, #0]
1703    0x1fff0c36:  orrs    r0, r6
1704    0x1fff0c38:  str     r0, [r5, #0]
1705    0x1fff0c3a:  ldr     r0, [pc, #228]  ; (0x1fff0d20)
1706    0x1fff0c3c:  movs    r2, #15
1707    0x1fff0c3e:  ldr     r7, [r0, #0]
1708    0x1fff0c40:  movs    r0, #0
1709    0x1fff0c42:  bl      0x1fff1064
1710    0x1fff0c46:  bl      0x1ff0d9c       setup_serial
1711    0x1fff0c4a:  ldr     r1, [r4, #4]
1712    0x1fff0c4c:  movs    r2, #15
1713    0x1fff0c4e:  ldr     r0, [r7, #0]
1714    0x1fff0c50:  bl      0x1fff1064
1715    0x1fff0c54:  bl      0x1ff0d9c       setup_serial
1716    0x1fff0c58:  ldr     r1, [r4, #4]
1717    0x1fff0c5a:  movs    r2, #15
1718    0x1fff0c5c:  ldr     r0, [r7, #4]
1719    0x1fff0c5e:  bl      0x1fff1064
1720    0x1fff0c62:  bl      0x1ff0d9c       setup_serial
1721    0x1fff0c66:  ldr     r1, [r4, #4]
1722    0x1fff0c68:  movs    r2, #15
1723    0x1fff0c6a:  ldr     r0, [r7, #8]
1724    0x1fff0c6c:  bl      0x1fff1064
1725    0x1fff0c70:  bl      0x1ff0d9c       setup_serial
1726    0x1fff0c74:  ldr     r1, [r4, #4]
1727    0x1fff0c76:  movs    r2, #15
1728    0x1fff0c78:  ldr     r0, [r7, #12]
1729    0x1fff0c7a:  bl      0x1fff1064
1730    0x1fff0c7e:  bl      0x1ff0d9c       setup_serial
1731    0x1fff0c82:  ldr     r0, [r5, #0]
1732    0x1fff0c84:  bics    r0, r6
1733    0x1fff0c86:  str     r0, [r5, #0]
1734    0x1fff0c88:  pop     {r3, r4, r5, r6, r7, pc}
1735    0x1fff0c8a:  ldr     r0, [r5, #0]
1736    0x1fff0c8c:  orrs    r0, r6
1737    0x1fff0c8e:  str     r0, [r5, #0]
1738    0x1fff0c90:  ldr     r0, [pc, #144]  ; (0x1fff0d24)
1739    0x1fff0c92:  ldr     r7, [r0, #0]
1740    0x1fff0c94:  ldr     r0, [r5, #0]
1741    0x1fff0c96:  bics    r0, r6
1742    0x1fff0c98:  str     r0, [r5, #0]
1743    0x1fff0c9a:  movs    r2, #15
1744    0x1fff0c9c:  movs    r0, #0
1745    0x1fff0c9e:  bl      0x1fff1064
1746    0x1fff0ca2:  bl      0x1ff0d9c       setup_serial
1747    0x1fff0ca6:  uxtb    r0, r7
1748    0x1fff0ca8:  movs    r2, #15
1749    0x1fff0caa:  ldr     r1, [r4, #4]
1750    0x1fff0cac:  bl      0x1fff1064
1751    0x1fff0cb0:  bl      0x1ff0d9c       setup_serial
1752    0x1fff0cb4:  lsls    r0, r7, #16
1753    0x1fff0cb6:  ldr     r1, [r4, #4]
1754    0x1fff0cb8:  lsrs    r0, r0, #24
1755    0x1fff0cba:  movs    r2, #15
1756    0x1fff0cbc:  bl      0x1fff1064
1757    0x1fff0cc0:  bl      0x1ff0d9c       setup_serial
1758    0x1fff0cc4:  pop     {r3, r4, r5, r6, r7, pc}
1759    0x1fff0cc6:  bl      0x1fff0834
1760    0x1fff0cca:  pop     {r3, r4, r5, r6, r7, pc}
1761    0x1fff0ccc:  bl      0x1fff078e
1762    0x1fff0cd0:  pop     {r3, r4, r5, r6, r7, pc}
1763    0x1fff0cd2:  bl      0x1fff06a8
1764    0x1fff0cd6:  pop     {r3, r4, r5, r6, r7, pc}
1765    0x1fff0cd8:  bl      0x1fff0618
1766    0x1fff0cdc:  pop     {r3, r4, r5, r6, r7, pc}
1767    0x1fff0cde:  bl      0x1fff05a4
1768    0x1fff0ce2:  pop     {r3, r4, r5, r6, r7, pc}
1769    0x1fff0ce4:  bl      0x1fff050c
1770    0x1fff0ce8:  pop     {r3, r4, r5, r6, r7, pc}
1771    0x1fff0cea:  movs    r2, #15
1772    0x1fff0cec:  movs    r0, #1
1773    0x1fff0cee:  b.n     0x1fff0cbc
1774    0x1fff0cf0:  lsls    r0, r2, #1
1775    0x1fff0cf2:  asrs    r0, r0, #32
1776    0x1fff0cf4:  lsls    r0, r7, #3
1777    0x1fff0cf6:  asrs    r0, r0, #32
1778    0x1fff0cf8:  ldrh    r2, [r3, r1]
1779    0x1fff0cfa:  movs    r0, r0
1780    0x1fff0cfc:  lsls    r4, r2, #1
1781    0x1fff0cfe:  asrs    r0, r0, #32
1782    0x1fff0d00:  subs    r7, r4, #4
1783    0x1fff0d02:  subs    r7, r7, #7
1784    0x1fff0d04:  lsls    r0, r6, #17
1785    0x1fff0d06:  movs    r0, r0
1786    0x1fff0d08:  lsls    r0, r4, #1
1787    0x1fff0d0a:  asrs    r0, r0, #32
1788    0x1fff0d0c:  stmia   r0!, {}
1789    0x1fff0d0e:  ands    r3, r0
1790    0x1fff0d10:  lsls    r0, r3, #1
1791    0x1fff0d12:  asrs    r0, r0, #32
1792    0x1fff0d14:  lsls    r4, r2, #3
1793    0x1fff0d16:  subs    r7, r7, #7
1794    0x1fff0d18:  lsls    r0, r7, #16
1795    0x1fff0d1a:  movs    r0, r0
1796    0x1fff0d1c:  strh    r0, [r0, #30]
1797    0x1fff0d1e:  ands    r4, r0
1798    0x1fff0d20:  lsls    r4, r3, #23
1799    0x1fff0d22:  movs    r0, r0
1800    0x1fff0d24:  lsls    r4, r6, #16
1801    0x1fff0d26:  movs    r0, r0
1802
1803
1804
1805    0x1fff0d28:  push    {r4, lr}
1806    0x1fff0d2a:  mov     r4, r1
1807    0x1fff0d2c:  cmp     r2, #0
1808    0x1fff0d2e:  beq.n   0x1fff0d44
1809    0x1fff0d30:  movs    r1, #26
1810    0x1fff0d32:  muls    r1, r0
1811    0x1fff0d34:  movs    r0, #125        ; 0x7d
1812    0x1fff0d36:  lsls    r0, r0, #3
1813    0x1fff0d38:  muls    r0, r2
1814    0x1fff0d3a:  bl      0x1fff11d4
1815    0x1fff0d3e:  cmp     r4, #1
1816    0x1fff0d40:  beq.n   0x1fff0d62
1817    0x1fff0d42:  movs    r4, #7
1818    0x1fff0d44:  ldr     r1, [pc, #276]  ; (0x1fff0e5c)
1819    0x1fff0d46:  ldr     r2, [r1, #20]
1820    0x1fff0d48:  lsls    r2, r2, #25
1821    0x1fff0d4a:  bpl.n   0x1fff0d46
1822    0x1fff0d4c:  movs    r2, #128        ; 0x80
1823    0x1fff0d4e:  str     r2, [r1, #12]
1824    0x1fff0d50:  str     r0, [r1, #0]
1825    0x1fff0d52:  asrs    r0, r0, #8
1826    0x1fff0d54:  str     r0, [r1, #4]
1827    0x1fff0d56:  movs    r0, #0
1828    0x1fff0d58:  str     r0, [r1, #12]
1829    0x1fff0d5a:  movs    r0, #1
1830    0x1fff0d5c:  str     r0, [r1, #8]
1831    0x1fff0d5e:  str     r4, [r1, #12]
1832    0x1fff0d60:  pop     {r4, pc}
1833    0x1fff0d62:  movs    r4, #3
1834    0x1fff0d64:  b.n     0x1fff0d44
1835
1836         serial_wait_autobaud()
1837         {
1838
1839    0x1fff0d66:  ldr     r1, [pc, #244]  ; (0x1fff0e5c)  40008000
1840    0x1fff0d68:  ldr     r2, [r1, #20]                   40008020        ACR (autobaud control register)
1841    0x1fff0d6a:  lsls    r2, r2, #26
1842    0x1fff0d6c:  bpl.n   0x1fff0d68
1843    0x1fff0d6e:  str     r0, [r1, #0]
1844    0x1fff0d70:  bx      lr
1845
1846         }
1847
1848    0x1fff0d72:  ldr     r1, [pc, #232]  ; (0x1fff0e5c)
1849    0x1fff0d74:  ldr     r0, [r1, #20]
1850    0x1fff0d76:  lsls    r0, r0, #31
1851    0x1fff0d78:  beq.n   0x1fff0d74
1852    0x1fff0d7a:  ldr     r0, [r1, #0]
1853    0x1fff0d7c:  ldr     r2, [pc, #224]  ; (0x1fff0e60)
1854    0x1fff0d7e:  uxtb    r0, r0
1855    0x1fff0d80:  ldr     r2, [r2, #0]
1856    0x1fff0d82:  cmp     r2, #0
1857    0x1fff0d84:  beq.n   0x1fff0d8e
1858    0x1fff0d86:  ldr     r2, [r1, #20]
1859    0x1fff0d88:  lsls    r2, r2, #26
1860    0x1fff0d8a:  bpl.n   0x1fff0d86
1861    0x1fff0d8c:  str     r0, [r1, #0]
1862    0x1fff0d8e:  bx      lr
1863
1864
1865
1866    0x1fff0d90:  push    {lr}
1867    0x1fff0d92:  bl      0x1fff0d72
1868    0x1fff0d96:  cmp     r0, #17
1869    0x1fff0d98:  bne.n   0x1fff0d92
1870    0x1fff0d9a:  pop     {pc}
1871
1872         /*
1873          * Detect baud rate on the USART and configure
1874          */
1875
1876         setup_serial()
1877         {
1878
1879    0x1fff0d9c:  push    {r4, lr}
1880    0x1fff0d9e:  ldr     r4, [pc, #188]  ; (0x1fff0e5c)  40008000        USART
1881    0x1fff0da0:  movs    r3, r0
1882    0x1fff0da2:  bne.n   0x1fff0dcc
1883    0x1fff0da4:  b.n     0x1fff0dd2
1884    0x1fff0da6:  adds    r3, r3, #1
1885    0x1fff0da8:  bl      0x1fff0d66
1886    0x1fff0dac:  ldr     r0, [r4, #20]                   40008020        ACR (autobaud control)
1887    0x1fff0dae:  lsls    r0, r0, #31
1888    0x1fff0db0:  beq.n   0x1fff0dcc
1889
1890
1891    0x1fff0db2:  ldr     r0, [r4, #0]
1892    0x1fff0db4:  uxtb    r0, r0
1893    0x1fff0db6:  cmp     r0, #27
1894    0x1fff0db8:  beq.n   0x1fff0dc0
1895    0x1fff0dba:  cmp     r0, #19
1896    0x1fff0dbc:  bne.n   0x1fff0dcc
1897    0x1fff0dbe:  b.n     0x1fff0dc4
1898
1899                 return 1;
1900
1901    0x1fff0dc0:  movs    r0, #1
1902    0x1fff0dc2:  pop     {r4, pc}
1903
1904    0x1fff0dc4:  bl      0x1fff0d72
1905    0x1fff0dc8:  cmp     r0, #17
1906    0x1fff0dca:  bne.n   0x1fff0dc4
1907
1908    0x1fff0dcc:  ldrb    r0, [r3, #0]
1909    0x1fff0dce:  cmp     r0, #0
1910    0x1fff0dd0:  bne.n   0x1fff0da6
1911    0x1fff0dd2:  movs    r0, #13
1912    0x1fff0dd4:  bl      0x1fff0d66
1913    0x1fff0dd8:  movs    r0, #10
1914    0x1fff0dda:  bl      0x1fff0d66
1915    0x1fff0dde:  movs    r0, #0
1916    0x1fff0de0:  pop     {r4, pc}
1917    0x1fff0de2:  ldr     r0, [pc, #120]  ; (0x1fff0e5c)
1918    0x1fff0de4:  ldr     r1, [r0, #20]
1919    0x1fff0de6:  lsls    r1, r1, #31
1920    0x1fff0de8:  beq.n   0x1fff0df0
1921    0x1fff0dea:  ldr     r0, [r0, #0]
1922    0x1fff0dec:  movs    r0, #1
1923    0x1fff0dee:  bx      lr
1924    0x1fff0df0:  movs    r0, #0
1925    0x1fff0df2:  bx      lr
1926    0x1fff0df4:  ldr     r0, [pc, #108]  ; (0x1fff0e64)
1927    0x1fff0df6:  ldr     r0, [r0, #8]
1928    0x1fff0df8:  lsrs    r0, r0, #2
1929    0x1fff0dfa:  b.n     0x1fff0dfe
1930    0x1fff0dfc:  subs    r0, r0, #1
1931    0x1fff0dfe:  cmp     r0, #0
1932    0x1fff0e00:  bne.n   0x1fff0dfc
1933    0x1fff0e02:  bx      lr
1934
1935         }
1936
1937    0x1fff0e04:  push    {r4, r5, r6, lr}
1938    0x1fff0e06:  mov     r5, r0
1939    0x1fff0e08:  mov     r6, r2
1940    0x1fff0e0a:  movs    r3, #0
1941    0x1fff0e0c:  subs    r4, r1, #1
1942    0x1fff0e0e:  bl      0x1fff0d72
1943    0x1fff0e12:  cmp     r0, #27
1944    0x1fff0e14:  beq.n   0x1fff0e4a
1945    0x1fff0e16:  cmp     r0, #13
1946    0x1fff0e18:  beq.n   0x1fff0e22
1947    0x1fff0e1a:  cmp     r0, #10
1948    0x1fff0e1c:  beq.n   0x1fff0e22
1949    0x1fff0e1e:  cmp     r3, r4
1950    0x1fff0e20:  bne.n   0x1fff0e4e
1951    0x1fff0e22:  movs    r0, #0
1952    0x1fff0e24:  strb    r0, [r5, r3]
1953    0x1fff0e26:  cmp     r6, #0
1954    0x1fff0e28:  beq.n   0x1fff0e2c
1955    0x1fff0e2a:  str     r3, [r6, #0]
1956    0x1fff0e2c:  bl      0x1fff0df4
1957    0x1fff0e30:  ldr     r0, [pc, #44]   ; (0x1fff0e60)
1958    0x1fff0e32:  ldr     r0, [r0, #0]
1959    0x1fff0e34:  cmp     r0, #0
1960    0x1fff0e36:  beq.n   0x1fff0e46
1961    0x1fff0e38:  bl      0x1fff0de2
1962    0x1fff0e3c:  cmp     r0, #0
1963    0x1fff0e3e:  beq.n   0x1fff0e46
1964    0x1fff0e40:  movs    r0, #10
1965    0x1fff0e42:  bl      0x1fff0d66
1966    0x1fff0e46:  movs    r0, #0
1967    0x1fff0e48:  pop     {r4, r5, r6, pc}
1968    0x1fff0e4a:  movs    r0, #1
1969    0x1fff0e4c:  pop     {r4, r5, r6, pc}
1970
1971 0x1fff0e40:     0xf7ff200a      0x2000ff90      0x2001bd70      0x54e8bd70
1972 0x1fff0e50:     0xe7dc1c5b      0x60084902      0x00004770      0x40008000
1973 0x1fff0e60:     0x1000005c      0x40018000      0xd0022800      0xb2c03020
1974 0x1fff0e70:     0x20604770      0xb5f04770      0x24004603      0xf7ffb2d0
1975 0x1fff0e80:     0x7008fff3      0xe0281c49      0xdb052a03      0x7818785d
1976
1977    0x1fff0e4e:  strb    r0, [r5, r3]
1978    0x1fff0e50:  adds    r3, r3, #1
1979    0x1fff0e52:  b.n     0x1fff0e0e
1980    0x1fff0e54:  ldr     r1, [pc, #8]    ; (0x1fff0e60)
1981    0x1fff0e56:  str     r0, [r1, #0]
1982    0x1fff0e58:  bx      lr
1983    0x1fff0e5a:  movs    r0, r0
1984    0x1fff0e5c:  strh    r0, [r0, #0]
1985    0x1fff0e5e:  ands    r0, r0
1986    0x1fff0e60:  lsls    r4, r3, #1
1987    0x1fff0e62:  asrs    r0, r0, #32
1988    0x1fff0e64:  strh    r0, [r0, #0]
1989    0x1fff0e66:  ands    r1, r0
1990    0x1fff0e68:  cmp     r0, #0
1991    0x1fff0e6a:  beq.n   0x1fff0e72
1992    0x1fff0e6c:  adds    r0, #32
1993    0x1fff0e6e:  uxtb    r0, r0
1994    0x1fff0e70:  bx      lr
1995    0x1fff0e72:  movs    r0, #96 ; 0x60
1996    0x1fff0e74:  bx      lr
1997
1998
1999
2000    0x1fff0e76:  push    {r4, r5, r6, r7, lr}
2001    0x1fff0e78:  mov     r3, r0
2002    0x1fff0e7a:  movs    r4, #0
2003    0x1fff0e7c:  uxtb    r0, r2
2004    0x1fff0e7e:  bl      0x1fff0e68
2005    0x1fff0e82:  strb    r0, [r1, #0]
2006    0x1fff0e84:  adds    r1, r1, #1
2007    0x1fff0e86:  b.n     0x1fff0eda
2008    0x1fff0e88:  cmp     r2, #3
2009    0x1fff0e8a:  blt.n   0x1fff0e98
2010    0x1fff0e8c:  ldrb    r5, [r3, #1]
2011    0x1fff0e8e:  ldrb    r0, [r3, #0]
2012    0x1fff0e90:  ldrb    r6, [r3, #2]
2013    0x1fff0e92:  adds    r0, r0, r5
2014    0x1fff0e94:  adds    r4, r6, r4
2015    0x1fff0e96:  b.n     0x1fff0eee
2016    0x1fff0e98:  cmp     r2, #2
2017    0x1fff0e9a:  beq.n   0x1fff0ee6
2018    0x1fff0e9c:  ldrb    r5, [r3, #0]
2019    0x1fff0e9e:  mov     r6, r5
2020    0x1fff0ea0:  adds    r4, r5, r4
2021    0x1fff0ea2:  ldrb    r0, [r3, #0]
2022    0x1fff0ea4:  lsrs    r0, r0, #2
2023    0x1fff0ea6:  bl      0x1fff0e68
2024    0x1fff0eaa:  strb    r0, [r1, #0]
2025    0x1fff0eac:  ldrb    r0, [r3, #0]
2026    0x1fff0eae:  lsrs    r7, r5, #4
2027    0x1fff0eb0:  lsls    r0, r0, #30
2028    0x1fff0eb2:  lsrs    r0, r0, #26
2029    0x1fff0eb4:  adds    r0, r0, r7
2030    0x1fff0eb6:  bl      0x1fff0e68
2031    0x1fff0eba:  strb    r0, [r1, #1]
2032    0x1fff0ebc:  lsls    r0, r5, #28
2033    0x1fff0ebe:  lsrs    r0, r0, #26
2034    0x1fff0ec0:  lsrs    r5, r6, #6
2035    0x1fff0ec2:  adds    r0, r0, r5
2036    0x1fff0ec4:  bl      0x1fff0e68
2037    0x1fff0ec8:  strb    r0, [r1, #2]
2038    0x1fff0eca:  lsls    r0, r6, #26
2039    0x1fff0ecc:  lsrs    r0, r0, #26
2040    0x1fff0ece:  bl      0x1fff0e68
2041    0x1fff0ed2:  strb    r0, [r1, #3]
2042    0x1fff0ed4:  adds    r1, r1, #4
2043    0x1fff0ed6:  adds    r3, r3, #3
2044    0x1fff0ed8:  subs    r2, r2, #3
2045    0x1fff0eda:  cmp     r2, #0
2046    0x1fff0edc:  bgt.n   0x1fff0e88
2047    0x1fff0ede:  movs    r0, #0
2048    0x1fff0ee0:  strb    r0, [r1, #0]
2049    0x1fff0ee2:  mov     r0, r4
2050    0x1fff0ee4:  pop     {r4, r5, r6, r7, pc}
2051    0x1fff0ee6:  ldrb    r5, [r3, #1]
2052    0x1fff0ee8:  ldrb    r0, [r3, #0]
2053    0x1fff0eea:  mov     r6, r5
2054    0x1fff0eec:  adds    r0, r0, r5
2055    0x1fff0eee:  adds    r4, r0, r4
2056    0x1fff0ef0:  b.n     0x1fff0ea2
2057    0x1fff0ef2:  cmp     r0, #96 ; 0x60
2058    0x1fff0ef4:  beq.n   0x1fff0efc
2059    0x1fff0ef6:  subs    r0, #32
2060    0x1fff0ef8:  uxtb    r0, r0
2061    0x1fff0efa:  bx      lr
2062    0x1fff0efc:  movs    r0, #0
2063    0x1fff0efe:  bx      lr
2064
2065
2066
2067    0x1fff0f00:  push    {r4, r5, r6, r7, lr}
2068    0x1fff0f02:  mov     r3, r0
2069    0x1fff0f04:  movs    r6, #0
2070    0x1fff0f06:  mov     r12, r2
2071    0x1fff0f08:  mov     r5, r6
2072    0x1fff0f0a:  ldrb    r0, [r0, #0]
2073    0x1fff0f0c:  bl      0x1fff0ef2
2074    0x1fff0f10:  mov     r4, r0
2075    0x1fff0f12:  subs    r0, r0, #1
2076    0x1fff0f14:  cmp     r0, #44 ; 0x2c
2077    0x1fff0f16:  bhi.n   0x1fff0fb0
2078    0x1fff0f18:  adds    r3, r3, #1
2079    0x1fff0f1a:  b.n     0x1fff0fac
2080    0x1fff0f1c:  cmp     r4, #3
2081    0x1fff0f1e:  blt.n   0x1fff0f6c
2082    0x1fff0f20:  ldrb    r0, [r3, #0]
2083    0x1fff0f22:  bl      0x1fff0ef2
2084    0x1fff0f26:  lsls    r2, r0, #2
2085    0x1fff0f28:  ldrb    r0, [r3, #1]
2086    0x1fff0f2a:  bl      0x1fff0ef2
2087    0x1fff0f2e:  lsrs    r0, r0, #4
2088    0x1fff0f30:  orrs    r2, r0
2089    0x1fff0f32:  strb    r2, [r1, #0]
2090    0x1fff0f34:  ldrb    r0, [r3, #1]
2091    0x1fff0f36:  bl      0x1fff0ef2
2092    0x1fff0f3a:  lsls    r2, r0, #4
2093    0x1fff0f3c:  ldrb    r0, [r3, #2]
2094    0x1fff0f3e:  bl      0x1fff0ef2
2095    0x1fff0f42:  lsrs    r0, r0, #2
2096    0x1fff0f44:  orrs    r2, r0
2097    0x1fff0f46:  strb    r2, [r1, #1]
2098    0x1fff0f48:  ldrb    r0, [r3, #2]
2099    0x1fff0f4a:  bl      0x1fff0ef2
2100    0x1fff0f4e:  lsls    r2, r0, #6
2101    0x1fff0f50:  ldrb    r0, [r3, #3]
2102    0x1fff0f52:  bl      0x1fff0ef2
2103    0x1fff0f56:  orrs    r2, r0
2104    0x1fff0f58:  uxtb    r0, r2
2105    0x1fff0f5a:  strb    r0, [r1, #2]
2106    0x1fff0f5c:  ldrb    r7, [r1, #0]
2107    0x1fff0f5e:  ldrb    r2, [r1, #1]
2108    0x1fff0f60:  adds    r0, r0, r6
2109    0x1fff0f62:  adds    r2, r7, r2
2110    0x1fff0f64:  adds    r5, r5, #3
2111    0x1fff0f66:  adds    r6, r2, r0
2112    0x1fff0f68:  adds    r1, r1, #3
2113    0x1fff0f6a:  b.n     0x1fff0fa8
2114    0x1fff0f6c:  cmp     r4, #1
2115    0x1fff0f6e:  blt.n   0x1fff0f8a
2116    0x1fff0f70:  ldrb    r0, [r3, #0]
2117    0x1fff0f72:  bl      0x1fff0ef2
2118    0x1fff0f76:  lsls    r2, r0, #2
2119    0x1fff0f78:  ldrb    r0, [r3, #1]
2120    0x1fff0f7a:  bl      0x1fff0ef2
2121    0x1fff0f7e:  lsrs    r0, r0, #4
2122    0x1fff0f80:  orrs    r2, r0
2123    0x1fff0f82:  uxtb    r0, r2
2124    0x1fff0f84:  adds    r5, r5, #1
2125    0x1fff0f86:  strb    r0, [r1, #0]
2126    0x1fff0f88:  adds    r6, r0, r6
2127    0x1fff0f8a:  cmp     r4, #2
2128    0x1fff0f8c:  blt.n   0x1fff0fa8
2129    0x1fff0f8e:  ldrb    r0, [r3, #1]
2130    0x1fff0f90:  bl      0x1fff0ef2
2131    0x1fff0f94:  lsls    r2, r0, #4
2132    0x1fff0f96:  ldrb    r0, [r3, #2]
2133    0x1fff0f98:  bl      0x1fff0ef2
2134    0x1fff0f9c:  lsrs    r0, r0, #2
2135    0x1fff0f9e:  orrs    r2, r0
2136    0x1fff0fa0:  uxtb    r0, r2
2137    0x1fff0fa2:  adds    r5, r5, #1
2138    0x1fff0fa4:  strb    r0, [r1, #1]
2139    0x1fff0fa6:  adds    r6, r0, r6
2140    0x1fff0fa8:  adds    r3, r3, #4
2141    0x1fff0faa:  subs    r4, r4, #3
2142    0x1fff0fac:  cmp     r4, #0
2143    0x1fff0fae:  bgt.n   0x1fff0f1c
2144    0x1fff0fb0:  mov     r0, r12
2145    0x1fff0fb2:  str     r5, [r0, #0]
2146    0x1fff0fb4:  mov     r0, r6
2147    0x1fff0fb6:  pop     {r4, r5, r6, r7, pc}
2148
2149
2150
2151    0x1fff0fb8:  push    {r4, lr}
2152    0x1fff0fba:  movs    r2, #0
2153    0x1fff0fbc:  b.n     0x1fff0fc4
2154    0x1fff0fbe:  cmp     r3, #0
2155    0x1fff0fc0:  beq.n   0x1fff0fd4
2156    0x1fff0fc2:  adds    r2, r2, #1
2157    0x1fff0fc4:  ldrb    r3, [r0, r2]
2158    0x1fff0fc6:  ldrb    r4, [r1, r2]
2159    0x1fff0fc8:  cmp     r3, r4
2160    0x1fff0fca:  beq.n   0x1fff0fbe
2161    0x1fff0fcc:  uxtb    r0, r3
2162    0x1fff0fce:  uxtb    r1, r4
2163    0x1fff0fd0:  subs    r0, r0, r1
2164    0x1fff0fd2:  pop     {r4, pc}
2165    0x1fff0fd4:  movs    r0, #0
2166    0x1fff0fd6:  pop     {r4, pc}
2167
2168
2169
2170    0x1fff0fd8:  push    {r0, r1, r2, r3, r4, r5, r6, r7, lr}
2171    0x1fff0fda:  mov     r5, r0
2172    0x1fff0fdc:  movs    r0, #0
2173    0x1fff0fde:  ldrb    r1, [r5, #0]
2174    0x1fff0fe0:  mov     lr, r3
2175    0x1fff0fe2:  ldr     r6, [sp, #36]   ; 0x24
2176    0x1fff0fe4:  mov     r3, r0
2177    0x1fff0fe6:  mov     r4, r0
2178    0x1fff0fe8:  cmp     r1, #0
2179    0x1fff0fea:  beq.n   0x1fff0ff4
2180    0x1fff0fec:  movs    r1, #0
2181    0x1fff0fee:  subs    r6, r6, #2
2182    0x1fff0ff0:  mov     r12, r6
2183    0x1fff0ff2:  b.n     0x1fff1030
2184    0x1fff0ff4:  movs    r0, #0
2185    0x1fff0ff6:  add     sp, #16
2186    0x1fff0ff8:  pop     {r4, r5, r6, r7, pc}
2187    0x1fff0ffa:  adds    r6, r0, #1
2188    0x1fff0ffc:  cmp     r6, lr
2189    0x1fff0ffe:  bgt.n   0x1fff1036
2190    0x1fff1000:  ldrb    r6, [r5, r1]
2191    0x1fff1002:  cmp     r6, #32
2192    0x1fff1004:  beq.n   0x1fff1016
2193    0x1fff1006:  cmp     r4, r12
2194    0x1fff1008:  bge.n   0x1fff1016
2195    0x1fff100a:  lsls    r7, r0, #2
2196    0x1fff100c:  ldr     r7, [r2, r7]
2197    0x1fff100e:  strb    r6, [r7, r3]
2198    0x1fff1010:  adds    r3, r3, #1
2199    0x1fff1012:  adds    r4, r4, #1
2200    0x1fff1014:  b.n     0x1fff102e
2201    0x1fff1016:  adds    r6, r5, r1
2202    0x1fff1018:  ldrb    r6, [r6, #1]
2203    0x1fff101a:  cmp     r6, #32
2204    0x1fff101c:  bne.n   0x1fff1022
2205    0x1fff101e:  cmp     r4, r12
2206    0x1fff1020:  bne.n   0x1fff102e
2207    0x1fff1022:  lsls    r6, r0, #2
2208    0x1fff1024:  movs    r4, #0
2209    0x1fff1026:  ldr     r6, [r2, r6]
2210    0x1fff1028:  adds    r0, r0, #1
2211    0x1fff102a:  strb    r4, [r6, r3]
2212    0x1fff102c:  mov     r3, r4
2213    0x1fff102e:  adds    r1, r1, #1
2214    0x1fff1030:  ldr     r6, [sp, #4]
2215    0x1fff1032:  cmp     r1, r6
2216    0x1fff1034:  ble.n   0x1fff0ffa
2217    0x1fff1036:  adds    r0, r0, #1
2218    0x1fff1038:  b.n     0x1fff0ff6
2219
2220
2221
2222    0x1fff103a:  push    {r4, r5, lr}
2223    0x1fff103c:  movs    r3, #0
2224    0x1fff103e:  mov     r2, r3
2225    0x1fff1040:  b.n     0x1fff1054
2226    0x1fff1042:  mov     r5, r4
2227    0x1fff1044:  subs    r5, #48 ; 0x30
2228    0x1fff1046:  cmp     r5, #9
2229    0x1fff1048:  bhi.n   0x1fff1060
2230    0x1fff104a:  movs    r5, #10
2231    0x1fff104c:  muls    r3, r5
2232    0x1fff104e:  subs    r3, #48 ; 0x30
2233    0x1fff1050:  adds    r3, r4, r3
2234    0x1fff1052:  adds    r2, r2, #1
2235    0x1fff1054:  ldrb    r4, [r0, r2]
2236    0x1fff1056:  cmp     r4, #0
2237    0x1fff1058:  bne.n   0x1fff1042
2238    0x1fff105a:  movs    r0, #0
2239    0x1fff105c:  str     r3, [r1, #0]
2240    0x1fff105e:  pop     {r4, r5, pc}
2241    0x1fff1060:  movs    r0, #1
2242    0x1fff1062:  pop     {r4, r5, pc}
2243
2244
2245
2246    0x1fff1064:  push    {r4, r5, r6, lr}
2247    0x1fff1066:  mov     r5, r1
2248    0x1fff1068:  movs    r1, #0
2249    0x1fff106a:  subs    r4, r2, #1
2250    0x1fff106c:  strb    r1, [r5, r4]
2251    0x1fff106e:  cmp     r0, #0
2252    0x1fff1070:  bne.n   0x1fff108e
2253    0x1fff1072:  movs    r0, #48 ; 0x30
2254    0x1fff1074:  subs    r4, r4, #1
2255    0x1fff1076:  strb    r0, [r5, r4]
2256    0x1fff1078:  b.n     0x1fff1096
2257    0x1fff107a:  subs    r4, r4, #1
2258    0x1fff107c:  movs    r1, #10
2259    0x1fff107e:  bl      0x1fff18a0
2260    0x1fff1082:  cmp     r1, #9
2261    0x1fff1084:  bhi.n   0x1fff108a
2262    0x1fff1086:  adds    r1, #48 ; 0x30
2263    0x1fff1088:  b.n     0x1fff108c
2264    0x1fff108a:  adds    r1, #55 ; 0x37
2265    0x1fff108c:  strb    r1, [r5, r4]
2266    0x1fff108e:  cmp     r4, #0
2267    0x1fff1090:  beq.n   0x1fff1096
2268    0x1fff1092:  cmp     r0, #0
2269    0x1fff1094:  bne.n   0x1fff107a
2270    0x1fff1096:  adds    r0, r5, r4
2271    0x1fff1098:  pop     {r4, r5, r6, pc}
2272
2273
2274    0x1fff109a:                  ; <UNDEFINED> instruction: 0xffff1e49
2275    0x1fff109e:  ands    r0, r1
2276    0x1fff10a0:  beq.n   0x1fff10a4
2277    0x1fff10a2:  movs    r0, #1
2278    0x1fff10a4:  bx      lr
2279
2280
2281
2282    0x1fff10a6:  push    {r3, r4, r5, r6, r7, lr}
2283    0x1fff10a8:  movs    r4, #0
2284    0x1fff10aa:  mov     r6, r1
2285    0x1fff10ac:  mov     r5, r2
2286    0x1fff10ae:  mov     r7, r3
2287    0x1fff10b0:  cmp     r0, #0
2288    0x1fff10b2:  beq.n   0x1fff10c0
2289    0x1fff10b4:  bl      0x1fff103a
2290    0x1fff10b8:  cmp     r0, #0
2291    0x1fff10ba:  beq.n   0x1fff10c0
2292    0x1fff10bc:  movs    r0, #12
2293    0x1fff10be:  pop     {r3, r4, r5, r6, r7, pc}
2294    0x1fff10c0:  cmp     r5, #105        ; 0x69
2295    0x1fff10c2:  beq.n   0x1fff10e4
2296    0x1fff10c4:  movs    r1, #4
2297    0x1fff10c6:  ldr     r0, [r6, #0]
2298    0x1fff10c8:  bl      0x1fff109c
2299    0x1fff10cc:  cmp     r0, #0
2300    0x1fff10ce:  beq.n   0x1fff10f4
2301    0x1fff10d0:  cmp     r5, #100        ; 0x64
2302    0x1fff10d2:  beq.n   0x1fff10e8
2303    0x1fff10d4:  movs    r4, #13
2304    0x1fff10d6:  cmp     r5, #103        ; 0x67
2305    0x1fff10d8:  beq.n   0x1fff10ec
2306    0x1fff10da:  cmp     r5, #104        ; 0x68
2307    0x1fff10dc:  beq.n   0x1fff10f0
2308    0x1fff10de:  cmp     r4, #0
2309    0x1fff10e0:  beq.n   0x1fff1118
2310    0x1fff10e2:  b.n     0x1fff1190
2311    0x1fff10e4:  movs    r0, #0
2312    0x1fff10e6:  pop     {r3, r4, r5, r6, r7, pc}
2313    0x1fff10e8:  movs    r4, #6
2314    0x1fff10ea:  b.n     0x1fff1190
2315    0x1fff10ec:  movs    r4, #2
2316    0x1fff10ee:  b.n     0x1fff1190
2317    0x1fff10f0:  movs    r4, #3
2318    0x1fff10f2:  b.n     0x1fff1190
2319    0x1fff10f4:  cmp     r5, #101        ; 0x65
2320    0x1fff10f6:  bne.n   0x1fff1118
2321    0x1fff10f8:  ldr     r0, [r6, #0]
2322    0x1fff10fa:  subs    r1, r0, #7
2323    0x1fff10fc:  subs    r1, #249        ; 0xf9
2324    0x1fff10fe:  beq.n   0x1fff1118
2325    0x1fff1100:  subs    r1, #255        ; 0xff
2326    0x1fff1102:  subs    r1, #1
2327    0x1fff1104:  beq.n   0x1fff1118
2328    0x1fff1106:  movs    r1, #1
2329    0x1fff1108:  lsls    r1, r1, #10
2330    0x1fff110a:  cmp     r0, r1
2331    0x1fff110c:  beq.n   0x1fff1118
2332    0x1fff110e:  lsls    r1, r1, #2
2333    0x1fff1110:  cmp     r0, r1
2334    0x1fff1112:  beq.n   0x1fff1118
2335    0x1fff1114:  movs    r0, #6
2336    0x1fff1116:  pop     {r3, r4, r5, r6, r7, pc}
2337    0x1fff1118:  ldr     r3, [pc, #204]  ; (0x1fff11e8)
2338    0x1fff111a:  ldr     r0, [r3, #0]
2339    0x1fff111c:  movs    r1, #64 ; 0x40
2340    0x1fff111e:  orrs    r0, r1
2341    0x1fff1120:  str     r0, [r3, #0]
2342    0x1fff1122:  ldr     r0, [pc, #200]  ; (0x1fff11ec)
2343    0x1fff1124:  ldr     r1, [r6, #0]
2344    0x1fff1126:  ldr     r0, [r0, #0]
2345    0x1fff1128:  cmp     r1, r0
2346    0x1fff112a:  bcc.n   0x1fff113c
2347    0x1fff112c:  ldr     r0, [pc, #192]  ; (0x1fff11f0)
2348    0x1fff112e:  adds    r2, r1, r7
2349    0x1fff1130:  ldr     r0, [r0, #0]
2350    0x1fff1132:  adds    r0, r0, #1
2351    0x1fff1134:  cmp     r2, r0
2352    0x1fff1136:  bhi.n   0x1fff113c
2353    0x1fff1138:  movs    r0, #1
2354    0x1fff113a:  b.n     0x1fff113e
2355    0x1fff113c:  movs    r0, #0
2356    0x1fff113e:  ldr     r2, [pc, #180]  ; (0x1fff11f4)
2357    0x1fff1140:  ldr     r2, [r2, #0]
2358    0x1fff1142:  cmp     r1, r2
2359    0x1fff1144:  bcc.n   0x1fff1156
2360    0x1fff1146:  adds    r2, r1, r7
2361    0x1fff1148:  ldr     r1, [pc, #172]  ; (0x1fff11f8)
2362    0x1fff114a:  ldr     r1, [r1, #0]
2363    0x1fff114c:  adds    r1, r1, #1
2364    0x1fff114e:  cmp     r2, r1
2365    0x1fff1150:  bhi.n   0x1fff1156
2366    0x1fff1152:  movs    r1, #1
2367    0x1fff1154:  b.n     0x1fff1158
2368    0x1fff1156:  movs    r1, #0
2369    0x1fff1158:  ldr     r2, [r3, #0]
2370    0x1fff115a:  movs    r7, #64 ; 0x40
2371    0x1fff115c:  bics    r2, r7
2372    0x1fff115e:  str     r2, [r3, #0]
2373    0x1fff1160:  cmp     r5, #102        ; 0x66
2374    0x1fff1162:  beq.n   0x1fff116e
2375    0x1fff1164:  cmp     r5, #103        ; 0x67
2376    0x1fff1166:  beq.n   0x1fff1176
2377    0x1fff1168:  cmp     r5, #104        ; 0x68
2378    0x1fff116a:  beq.n   0x1fff117e
2379    0x1fff116c:  b.n     0x1fff1190
2380    0x1fff116e:  orrs    r0, r1
2381    0x1fff1170:  bne.n   0x1fff1190
2382    0x1fff1172:  movs    r4, #14
2383    0x1fff1174:  b.n     0x1fff1190
2384    0x1fff1176:  cmp     r0, #0
2385    0x1fff1178:  bne.n   0x1fff1190
2386    0x1fff117a:  movs    r4, #4
2387    0x1fff117c:  b.n     0x1fff1190
2388    0x1fff117e:  cmp     r1, #0
2389    0x1fff1180:  beq.n   0x1fff1194
2390    0x1fff1182:  movs    r1, #255        ; 0xff
2391    0x1fff1184:  adds    r1, #1
2392    0x1fff1186:  ldr     r0, [r6, #0]
2393    0x1fff1188:  bl      0x1fff109c
2394    0x1fff118c:  cmp     r0, #0
2395    0x1fff118e:  bne.n   0x1fff10f0
2396    0x1fff1190:  mov     r0, r4
2397    0x1fff1192:  pop     {r3, r4, r5, r6, r7, pc}
2398    0x1fff1194:  movs    r4, #5
2399    0x1fff1196:  b.n     0x1fff1190
2400    0x1fff1198:  push    {r4, r5, r6, lr}
2401    0x1fff119a:  ldr     r3, [pc, #76]   ; (0x1fff11e8)
2402    0x1fff119c:  mov     r4, r0
2403    0x1fff119e:  ldr     r6, [r3, #0]
2404    0x1fff11a0:  movs    r0, #14
2405    0x1fff11a2:  movs    r5, #64 ; 0x40
2406    0x1fff11a4:  orrs    r6, r5
2407    0x1fff11a6:  str     r6, [r3, #0]
2408    0x1fff11a8:  ldr     r6, [pc, #64]   ; (0x1fff11ec)
2409    0x1fff11aa:  ldr     r6, [r6, #0]
2410    0x1fff11ac:  cmp     r1, r6
2411    0x1fff11ae:  bcc.n   0x1fff11ca
2412    0x1fff11b0:  adds    r6, r1, r2
2413    0x1fff11b2:  ldr     r1, [pc, #60]   ; (0x1fff11f0)
2414    0x1fff11b4:  ldr     r1, [r1, #0]
2415    0x1fff11b6:  adds    r1, r1, #1
2416    0x1fff11b8:  cmp     r6, r1
2417    0x1fff11ba:  bhi.n   0x1fff11ca
2418    0x1fff11bc:  ldr     r1, [pc, #60]   ; (0x1fff11fc)
2419    0x1fff11be:  adds    r2, r4, r2
2420    0x1fff11c0:  ldr     r1, [r1, #0]
2421    0x1fff11c2:  adds    r1, r1, #1
2422    0x1fff11c4:  cmp     r2, r1
2423    0x1fff11c6:  bhi.n   0x1fff11ca
2424    0x1fff11c8:  movs    r0, #0
2425    0x1fff11ca:  ldr     r1, [r3, #0]
2426    0x1fff11cc:  bics    r1, r5
2427    0x1fff11ce:  str     r1, [r3, #0]
2428    0x1fff11d0:  pop     {r4, r5, r6, pc}
2429    0x1fff11d2:  bx      lr
2430    0x1fff11d4:  push    {r4, lr}
2431    0x1fff11d6:  mov     r4, r1
2432    0x1fff11d8:  bl      0x1fff18a0
2433    0x1fff11dc:  lsrs    r2, r4, #1
2434    0x1fff11de:  cmp     r2, r1
2435    0x1fff11e0:  bcs.n   0x1fff11e4
2436    0x1fff11e2:  adds    r0, r0, #1
2437    0x1fff11e4:  pop     {r4, pc}
2438    0x1fff11e6:  movs    r0, r0
2439    0x1fff11e8:  stmia   r0!, {}
2440    0x1fff11ea:  ands    r3, r0
2441    0x1fff11ec:  lsls    r0, r7, #16
2442    0x1fff11ee:  movs    r0, r0
2443    0x1fff11f0:  lsls    r4, r7, #16
2444    0x1fff11f2:  movs    r0, r0
2445    0x1fff11f4:  lsls    r0, r3, #17
2446    0x1fff11f6:  movs    r0, r0
2447    0x1fff11f8:  lsls    r4, r3, #17
2448    0x1fff11fa:  movs    r0, r0
2449    0x1fff11fc:  lsls    r0, r7, #23
2450    0x1fff11fe:  movs    r0, r0
2451    0x1fff1200:  push    {r3, r4, r5, r6, r7, lr}
2452    0x1fff1202:  mov     r5, r0
2453    0x1fff1204:  ldr     r4, [pc, #460]  ; (0x1fff13d4)
2454    0x1fff1206:  movs    r0, #0
2455    0x1fff1208:  str     r0, [r4, #24]
2456    0x1fff120a:  movs    r1, #255        ; 0xff
2457    0x1fff120c:  adds    r1, #120        ; 0x78
2458    0x1fff120e:  mov     r0, r5
2459    0x1fff1210:  bl      0x1fff18a0
2460    0x1fff1214:  str     r0, [r4, #20]
2461    0x1fff1216:  ldr     r0, [r4, #20]
2462    0x1fff1218:  movs    r7, #125        ; 0x7d
2463    0x1fff121a:  lsls    r7, r7, #3
2464    0x1fff121c:  mov     r1, r7
2465    0x1fff121e:  mov     r0, r5
2466    0x1fff1220:  bl      0x1fff18a0
2467    0x1fff1224:  mov     r5, r0
2468    0x1fff1226:  lsls    r1, r0, #4
2469    0x1fff1228:  subs    r0, r1, r5
2470    0x1fff122a:  mov     r1, r7
2471    0x1fff122c:  bl      0x1fff18a0
2472    0x1fff1230:  adds    r6, r0, #1
2473    0x1fff1232:  mov     r0, r5
2474    0x1fff1234:  movs    r1, #55 ; 0x37
2475    0x1fff1236:  muls    r0, r1
2476    0x1fff1238:  mov     r1, r7
2477    0x1fff123a:  bl      0x1fff18a0
2478    0x1fff123e:  lsls    r1, r0, #8
2479    0x1fff1240:  adds    r1, #255        ; 0xff
2480    0x1fff1242:  adds    r1, #1
2481    0x1fff1244:  orrs    r6, r1
2482    0x1fff1246:  mov     r0, r5
2483    0x1fff1248:  movs    r1, #35 ; 0x23
2484    0x1fff124a:  muls    r0, r1
2485    0x1fff124c:  mov     r1, r7
2486    0x1fff124e:  bl      0x1fff18a0
2487    0x1fff1252:  movs    r1, #1
2488    0x1fff1254:  lsls    r0, r0, #16
2489    0x1fff1256:  lsls    r1, r1, #16
2490    0x1fff1258:  adds    r0, r0, r1
2491    0x1fff125a:  orrs    r0, r6
2492    0x1fff125c:  str     r0, [r4, #16]
2493    0x1fff125e:  pop     {r3, r4, r5, r6, r7, pc}
2494    0x1fff1260:  ldr     r3, [pc, #368]  ; (0x1fff13d4)
2495    0x1fff1262:  str     r2, [r3, #4]
2496    0x1fff1264:  cmp     r1, #0
2497    0x1fff1266:  beq.n   0x1fff1274
2498    0x1fff1268:  cmp     r1, #2
2499    0x1fff126a:  beq.n   0x1fff1282
2500    0x1fff126c:  cmp     r0, #0
2501    0x1fff126e:  beq.n   0x1fff128e
2502    0x1fff1270:  movs    r0, #4
2503    0x1fff1272:  b.n     0x1fff127a
2504    0x1fff1274:  cmp     r0, #0
2505    0x1fff1276:  beq.n   0x1fff127e
2506    0x1fff1278:  movs    r0, #3
2507    0x1fff127a:  str     r0, [r3, #0]
2508    0x1fff127c:  bx      lr
2509    0x1fff127e:  movs    r0, #8
2510    0x1fff1280:  b.n     0x1fff127a
2511    0x1fff1282:  cmp     r0, #0
2512    0x1fff1284:  beq.n   0x1fff128a
2513    0x1fff1286:  movs    r0, #5
2514    0x1fff1288:  b.n     0x1fff127a
2515    0x1fff128a:  movs    r0, #10
2516    0x1fff128c:  b.n     0x1fff127a
2517    0x1fff128e:  movs    r0, #9
2518    0x1fff1290:  b.n     0x1fff127a
2519    0x1fff1292:  movs    r2, #5
2520    0x1fff1294:  ldr     r1, [pc, #320]  ; (0x1fff13d8)
2521    0x1fff1296:  lsls    r2, r2, #26
2522    0x1fff1298:  str     r2, [r1, #40]   ; 0x28
2523    0x1fff129a:  ldr     r2, [pc, #312]  ; (0x1fff13d4)
2524    0x1fff129c:  str     r0, [r2, #4]
2525    0x1fff129e:  movs    r0, #6
2526    0x1fff12a0:  str     r0, [r2, #0]
2527    0x1fff12a2:  ldr     r0, [r1, #32]
2528    0x1fff12a4:  lsls    r0, r0, #3
2529    0x1fff12a6:  bpl.n   0x1fff12a2
2530    0x1fff12a8:  bx      lr
2531    0x1fff12aa:  push    {r4, r5, r6, lr}
2532    0x1fff12ac:  mov     r4, r1
2533    0x1fff12ae:  mov     r5, r2
2534    0x1fff12b0:  mov     r6, r0
2535    0x1fff12b2:  movs    r1, #4
2536    0x1fff12b4:  bl      0x1fff109c
2537    0x1fff12b8:  cmp     r0, #0
2538    0x1fff12ba:  bne.n   0x1fff12d4
2539    0x1fff12bc:  movs    r1, #4
2540    0x1fff12be:  mov     r0, r5
2541    0x1fff12c0:  bl      0x1fff109c
2542    0x1fff12c4:  cmp     r0, #0
2543    0x1fff12c6:  bne.n   0x1fff12d4
2544    0x1fff12c8:  movs    r1, #4
2545    0x1fff12ca:  mov     r0, r4
2546    0x1fff12cc:  bl      0x1fff109c
2547    0x1fff12d0:  cmp     r0, #0
2548    0x1fff12d2:  beq.n   0x1fff12e2
2549    0x1fff12d4:  movs    r1, #2
2550    0x1fff12d6:  mov     r0, r6
2551    0x1fff12d8:  bl      0x1fff109c
2552    0x1fff12dc:  cmp     r0, #0
2553    0x1fff12de:  beq.n   0x1fff12e6
2554    0x1fff12e0:  b.n     0x1fff12fe
2555    0x1fff12e2:  movs    r0, #2
2556    0x1fff12e4:  pop     {r4, r5, r6, pc}
2557    0x1fff12e6:  movs    r1, #2
2558    0x1fff12e8:  mov     r0, r5
2559    0x1fff12ea:  bl      0x1fff109c
2560    0x1fff12ee:  cmp     r0, #0
2561    0x1fff12f0:  bne.n   0x1fff12fe
2562    0x1fff12f2:  movs    r1, #2
2563    0x1fff12f4:  mov     r0, r4
2564    0x1fff12f6:  bl      0x1fff109c
2565    0x1fff12fa:  cmp     r0, #0
2566    0x1fff12fc:  beq.n   0x1fff1302
2567    0x1fff12fe:  movs    r0, #0
2568    0x1fff1300:  pop     {r4, r5, r6, pc}
2569    0x1fff1302:  movs    r0, #1
2570    0x1fff1304:  pop     {r4, r5, r6, pc}
2571    0x1fff1306:  push    {r1, r2, r3, r4, r5, r6, r7, lr}
2572    0x1fff1308:  mov     r5, r0
2573    0x1fff130a:  mov     r4, r1
2574    0x1fff130c:  mov     r6, r2
2575    0x1fff130e:  bl      0x1fff12aa
2576    0x1fff1312:  mov     r1, r0
2577    0x1fff1314:  str     r0, [sp, #0]
2578    0x1fff1316:  mov     r2, r5
2579    0x1fff1318:  movs    r0, #1
2580    0x1fff131a:  bl      0x1fff1260
2581    0x1fff131e:  ldr     r7, [pc, #180]  ; (0x1fff13d4)
2582    0x1fff1320:  str     r5, [sp, #4]
2583    0x1fff1322:  b.n     0x1fff136e
2584    0x1fff1324:  ldr     r0, [sp, #0]
2585    0x1fff1326:  cmp     r0, #0
2586    0x1fff1328:  beq.n   0x1fff1346
2587    0x1fff132a:  cmp     r0, #2
2588    0x1fff132c:  beq.n   0x1fff1352
2589    0x1fff132e:  ldrh    r0, [r4, #0]
2590    0x1fff1330:  adds    r4, r4, #2
2591    0x1fff1332:  str     r0, [r7, #8]
2592    0x1fff1334:  adds    r5, r5, #2
2593    0x1fff1336:  subs    r6, r6, #2
2594    0x1fff1338:  movs    r1, #64 ; 0x40
2595    0x1fff133a:  mov     r0, r5
2596    0x1fff133c:  bl      0x1fff109c
2597    0x1fff1340:  cmp     r0, #0
2598    0x1fff1342:  bne.n   0x1fff136e
2599    0x1fff1344:  b.n     0x1fff135c
2600    0x1fff1346:  ldrb    r0, [r4, #0]
2601    0x1fff1348:  adds    r4, r4, #1
2602    0x1fff134a:  str     r0, [r7, #8]
2603    0x1fff134c:  adds    r5, r5, #1
2604    0x1fff134e:  subs    r6, r6, #1
2605    0x1fff1350:  b.n     0x1fff1338
2606    0x1fff1352:  ldmia   r4!, {r0}
2607    0x1fff1354:  str     r0, [r7, #8]
2608    0x1fff1356:  adds    r5, r5, #4
2609    0x1fff1358:  subs    r6, r6, #4
2610    0x1fff135a:  b.n     0x1fff1338
2611    0x1fff135c:  ldr     r0, [sp, #4]
2612    0x1fff135e:  bl      0x1fff1292
2613    0x1fff1362:  mov     r2, r5
2614    0x1fff1364:  str     r5, [sp, #4]
2615    0x1fff1366:  movs    r0, #1
2616    0x1fff1368:  ldr     r1, [sp, #0]
2617    0x1fff136a:  bl      0x1fff1260
2618    0x1fff136e:  cmp     r6, #0
2619    0x1fff1370:  bne.n   0x1fff1324
2620    0x1fff1372:  movs    r1, #64 ; 0x40
2621    0x1fff1374:  mov     r0, r5
2622    0x1fff1376:  bl      0x1fff109c
2623    0x1fff137a:  cmp     r0, #0
2624    0x1fff137c:  beq.n   0x1fff1384
2625    0x1fff137e:  ldr     r0, [sp, #4]
2626    0x1fff1380:  bl      0x1fff1292
2627    0x1fff1384:  movs    r0, #0
2628    0x1fff1386:  str     r0, [r7, #0]
2629    0x1fff1388:  str     r0, [r7, #20]
2630    0x1fff138a:  pop     {r1, r2, r3, r4, r5, r6, r7, pc}
2631    0x1fff138c:  push    {r3, r4, r5, r6, r7, lr}
2632    0x1fff138e:  mov     r7, r0
2633    0x1fff1390:  mov     r4, r1
2634    0x1fff1392:  mov     r5, r2
2635    0x1fff1394:  bl      0x1fff12aa
2636    0x1fff1398:  mov     r6, r0
2637    0x1fff139a:  mov     r1, r0
2638    0x1fff139c:  mov     r2, r7
2639    0x1fff139e:  movs    r0, #0
2640    0x1fff13a0:  bl      0x1fff1260
2641    0x1fff13a4:  ldr     r0, [pc, #44]   ; (0x1fff13d4)
2642    0x1fff13a6:  b.n     0x1fff13b8
2643    0x1fff13a8:  cmp     r6, #0
2644    0x1fff13aa:  beq.n   0x1fff13c4
2645    0x1fff13ac:  ldr     r1, [r0, #12]
2646    0x1fff13ae:  cmp     r6, #2
2647    0x1fff13b0:  beq.n   0x1fff13ce
2648    0x1fff13b2:  strh    r1, [r4, #0]
2649    0x1fff13b4:  adds    r4, r4, #2
2650    0x1fff13b6:  subs    r5, r5, #2
2651    0x1fff13b8:  cmp     r5, #0
2652    0x1fff13ba:  bne.n   0x1fff13a8
2653    0x1fff13bc:  movs    r1, #0
2654    0x1fff13be:  str     r1, [r0, #0]
2655    0x1fff13c0:  str     r1, [r0, #20]
2656    0x1fff13c2:  pop     {r3, r4, r5, r6, r7, pc}
2657    0x1fff13c4:  ldr     r1, [r0, #12]
2658    0x1fff13c6:  strb    r1, [r4, #0]
2659    0x1fff13c8:  adds    r4, r4, #1
2660    0x1fff13ca:  subs    r5, r5, #1
2661    0x1fff13cc:  b.n     0x1fff13b8
2662    0x1fff13ce:  stmia   r4!, {r1}
2663    0x1fff13d0:  subs    r5, r5, #4
2664    0x1fff13d2:  b.n     0x1fff13b8
2665    0x1fff13d4:  stmia   r0!, {r7}
2666    0x1fff13d6:  ands    r3, r0
2667    0x1fff13d8:  ldmia   r7, {r6, r7}
2668    0x1fff13da:  ands    r3, r0
2669
2670         {
2671
2672    0x1fff13dc:  push    {r0, r1, r4, r5, r6, r7, lr}
2673    0x1fff13de:  sub     sp, #28
2674    0x1fff13e0:  movs    r0, #1
2675    0x1fff13e2:  movs    r6, #0
2676    0x1fff13e4:  str     r0, [sp, #12]
2677    0x1fff13e6:  bl      0x1fff1616
2678    0x1fff13ea:  mov     r4, r0
2679    0x1fff13ec:  bl      0x1fff1610
2680    0x1fff13f0:  ldr     r1, [pc, #496]  ; (0x1fff15e4)
2681    0x1fff13f2:  ldr     r0, [r1, #0]
2682    0x1fff13f4:  movs    r2, #64 ; 0x40
2683    0x1fff13f6:  orrs    r0, r2
2684    0x1fff13f8:  str     r0, [r1, #0]
2685    0x1fff13fa:  ldr     r0, [pc, #492]  ; (0x1fff15e8)
2686    0x1fff13fc:  ldr     r0, [r0, #0]
2687    0x1fff13fe:  str     r0, [sp, #8]
2688    0x1fff1400:  ldr     r0, [r1, #0]
2689    0x1fff1402:  bics    r0, r2
2690    0x1fff1404:  str     r0, [r1, #0]
2691    0x1fff1406:  mov     r0, r4
2692    0x1fff1408:  bl      0x1fff1600
2693    0x1fff140c:  ldr     r0, [sp, #28]
2694    0x1fff140e:  ldr     r1, [r0, #0]
2695    0x1fff1410:  ldr     r0, [sp, #32]
2696    0x1fff1412:  str     r1, [r0, #4]
2697    0x1fff1414:  ldr     r0, [sp, #28]
2698    0x1fff1416:  ldr     r1, [pc, #472]  ; (0x1fff15f0)
2699    0x1fff1418:  ldr     r7, [r0, #0]
2700    0x1fff141a:  ldr     r0, [pc, #464]  ; (0x1fff15ec)
2701    0x1fff141c:  adds    r0, r7, r0
2702    0x1fff141e:  cmp     r0, r1
2703    0x1fff1420:  bcs.n   0x1fff1434
2704    0x1fff1422:  ldr     r0, [sp, #28]
2705    0x1fff1424:  ldr     r1, [sp, #8]
2706    0x1fff1426:  ldr     r0, [r0, #4]
2707    0x1fff1428:  str     r0, [sp, #0]
2708    0x1fff142a:  cmp     r0, r1
2709    0x1fff142c:  bhi.n   0x1fff1434
2710    0x1fff142e:  lsls    r0, r0, #8
2711    0x1fff1430:  cmp     r0, r7
2712    0x1fff1432:  bcs.n   0x1fff143e
2713    0x1fff1434:  ldr     r1, [sp, #32]
2714    0x1fff1436:  movs    r0, #1
2715    0x1fff1438:  str     r0, [r1, #0]
2716    0x1fff143a:  add     sp, #36 ; 0x24
2717    0x1fff143c:  pop     {r4, r5, r6, r7, pc}
2718
2719         }
2720
2721    0x1fff143e:  ldr     r0, [sp, #28]
2722    0x1fff1440:  ldr     r0, [r0, #8]
2723    0x1fff1442:  str     r0, [sp, #20]
2724    0x1fff1444:  cmp     r0, #3
2725    0x1fff1446:  bls.n   0x1fff1450
2726    0x1fff1448:  ldr     r0, [sp, #32]
2727    0x1fff144a:  movs    r1, #2
2728    0x1fff144c:  str     r1, [r0, #0]
2729    0x1fff144e:  b.n     0x1fff143a
2730    0x1fff1450:  movs    r4, #1
2731    0x1fff1452:  movs    r5, #0
2732    0x1fff1454:  str     r7, [sp, #4]
2733    0x1fff1456:  str     r4, [sp, #16]
2734    0x1fff1458:  b.n     0x1fff14ea
2735    0x1fff145a:  ldr     r1, [sp, #0]
2736    0x1fff145c:  ldr     r0, [sp, #4]
2737    0x1fff145e:  bl      0x1fff18a0
2738    0x1fff1462:  ldr     r1, [sp, #0]
2739    0x1fff1464:  ldr     r2, [sp, #4]
2740    0x1fff1466:  muls    r1, r0
2741    0x1fff1468:  cmp     r1, r2
2742    0x1fff146a:  bne.n   0x1fff1474
2743    0x1fff146c:  str     r0, [sp, #16]
2744    0x1fff146e:  movs    r0, #0
2745    0x1fff1470:  str     r0, [sp, #12]
2746    0x1fff1472:  b.n     0x1fff14ea
2747    0x1fff1474:  ldr     r2, [sp, #20]
2748    0x1fff1476:  cmp     r2, #2
2749    0x1fff1478:  beq.n   0x1fff147e
2750    0x1fff147a:  cmp     r2, #3
2751    0x1fff147c:  bne.n   0x1fff14aa
2752    0x1fff147e:  cmp     r0, #0
2753    0x1fff1480:  beq.n   0x1fff14aa
2754    0x1fff1482:  cmp     r5, #0
2755    0x1fff1484:  beq.n   0x1fff14a6
2756    0x1fff1486:  ldr     r2, [sp, #0]
2757    0x1fff1488:  mov     r3, r7
2758    0x1fff148a:  muls    r3, r5
2759    0x1fff148c:  muls    r2, r6
2760    0x1fff148e:  subs    r2, r3, r2
2761    0x1fff1490:  bpl.n   0x1fff1494
2762    0x1fff1492:  negs    r2, r2
2763    0x1fff1494:  mov     r3, r7
2764    0x1fff1496:  muls    r2, r0
2765    0x1fff1498:  muls    r3, r4
2766    0x1fff149a:  subs    r1, r3, r1
2767    0x1fff149c:  bpl.n   0x1fff14a0
2768    0x1fff149e:  negs    r1, r1
2769    0x1fff14a0:  muls    r1, r6
2770    0x1fff14a2:  cmp     r1, r2
2771    0x1fff14a4:  bge.n   0x1fff14aa
2772    0x1fff14a6:  mov     r5, r4
2773    0x1fff14a8:  mov     r6, r0
2774    0x1fff14aa:  ldr     r1, [sp, #20]
2775    0x1fff14ac:  cmp     r1, #1
2776    0x1fff14ae:  beq.n   0x1fff14b4
2777    0x1fff14b0:  cmp     r1, #3
2778    0x1fff14b2:  bne.n   0x1fff14e2
2779    0x1fff14b4:  cmp     r5, #0
2780    0x1fff14b6:  beq.n   0x1fff1502
2781    0x1fff14b8:  ldr     r1, [sp, #0]
2782    0x1fff14ba:  mov     r2, r7
2783    0x1fff14bc:  adds    r0, r0, #1
2784    0x1fff14be:  muls    r2, r5
2785    0x1fff14c0:  muls    r1, r6
2786    0x1fff14c2:  subs    r2, r2, r1
2787    0x1fff14c4:  bpl.n   0x1fff14c8
2788    0x1fff14c6:  negs    r2, r2
2789    0x1fff14c8:  ldr     r1, [sp, #0]
2790    0x1fff14ca:  mov     r3, r7
2791    0x1fff14cc:  muls    r2, r0
2792    0x1fff14ce:  muls    r3, r4
2793    0x1fff14d0:  muls    r1, r0
2794    0x1fff14d2:  subs    r1, r3, r1
2795    0x1fff14d4:  bpl.n   0x1fff14d8
2796    0x1fff14d6:  negs    r1, r1
2797    0x1fff14d8:  muls    r1, r6
2798    0x1fff14da:  cmp     r1, r2
2799    0x1fff14dc:  bge.n   0x1fff14e2
2800    0x1fff14de:  mov     r5, r4
2801    0x1fff14e0:  mov     r6, r0
2802    0x1fff14e2:  ldr     r0, [sp, #4]
2803    0x1fff14e4:  adds    r0, r7, r0
2804    0x1fff14e6:  adds    r4, r4, #1
2805    0x1fff14e8:  str     r0, [sp, #4]
2806    0x1fff14ea:  ldr     r1, [sp, #8]
2807    0x1fff14ec:  ldr     r0, [sp, #4]
2808    0x1fff14ee:  cmp     r0, r1
2809    0x1fff14f0:  bhi.n   0x1fff14f8
2810    0x1fff14f2:  ldr     r0, [sp, #12]
2811    0x1fff14f4:  cmp     r0, #0
2812    0x1fff14f6:  bne.n   0x1fff145a
2813    0x1fff14f8:  ldr     r0, [sp, #20]
2814    0x1fff14fa:  movs    r7, #0
2815    0x1fff14fc:  cmp     r0, #0
2816    0x1fff14fe:  beq.n   0x1fff1508
2817    0x1fff1500:  b.n     0x1fff150e
2818    0x1fff1502:  mov     r5, r4
2819    0x1fff1504:  adds    r0, r0, #1
2820    0x1fff1506:  b.n     0x1fff14e0
2821    0x1fff1508:  ldr     r0, [sp, #12]
2822    0x1fff150a:  cmp     r0, #1
2823    0x1fff150c:  beq.n   0x1fff1532
2824    0x1fff150e:  cmp     r5, #0
2825    0x1fff1510:  bne.n   0x1fff1518
2826    0x1fff1512:  ldr     r0, [sp, #12]
2827    0x1fff1514:  cmp     r0, #1
2828    0x1fff1516:  beq.n   0x1fff1532
2829    0x1fff1518:  ldr     r1, [sp, #32]
2830    0x1fff151a:  movs    r0, #0
2831    0x1fff151c:  str     r0, [r1, #0]
2832    0x1fff151e:  ldr     r0, [sp, #12]
2833    0x1fff1520:  cmp     r0, #0
2834    0x1fff1522:  beq.n   0x1fff1544
2835    0x1fff1524:  mov     r4, r5
2836    0x1fff1526:  str     r6, [sp, #16]
2837    0x1fff1528:  ldr     r0, [sp, #28]
2838    0x1fff152a:  ldr     r2, [pc, #200]  ; (0x1fff15f4)
2839    0x1fff152c:  ldr     r0, [r0, #0]
2840    0x1fff152e:  muls    r0, r4
2841    0x1fff1530:  b.n     0x1fff155a
2842    0x1fff1532:  movs    r0, #1
2843    0x1fff1534:  movs    r4, #0
2844    0x1fff1536:  str     r0, [sp, #16]
2845    0x1fff1538:  ldr     r1, [sp, #32]
2846    0x1fff153a:  movs    r0, #3
2847    0x1fff153c:  str     r0, [r1, #0]
2848    0x1fff153e:  ldr     r0, [sp, #28]
2849    0x1fff1540:  ldr     r1, [r0, #0]
2850    0x1fff1542:  b.n     0x1fff154e
2851    0x1fff1544:  cmp     r4, #1
2852    0x1fff1546:  bne.n   0x1fff1528
2853    0x1fff1548:  ldr     r0, [sp, #28]
2854    0x1fff154a:  movs    r4, #0
2855    0x1fff154c:  ldr     r1, [r0, #4]
2856    0x1fff154e:  ldr     r0, [sp, #32]
2857    0x1fff1550:  str     r1, [r0, #4]
2858    0x1fff1552:  b.n     0x1fff156e
2859    0x1fff1554:  adds    r7, r7, #1
2860    0x1fff1556:  cmp     r7, #4
2861    0x1fff1558:  beq.n   0x1fff1564
2862    0x1fff155a:  mov     r1, r0
2863    0x1fff155c:  lsls    r1, r7
2864    0x1fff155e:  lsls    r1, r1, #1
2865    0x1fff1560:  cmp     r1, r2
2866    0x1fff1562:  bcc.n   0x1fff1554
2867    0x1fff1564:  ldr     r1, [sp, #16]
2868    0x1fff1566:  bl      0x1fff18a0
2869    0x1fff156a:  ldr     r1, [sp, #32]
2870    0x1fff156c:  str     r0, [r1, #4]
2871    0x1fff156e:  ldr     r1, [pc, #136]  ; (0x1fff15f8)
2872    0x1fff1570:  ldr     r0, [sp, #16]
2873    0x1fff1572:  str     r0, [r1, #56]   ; 0x38
2874    0x1fff1574:  ldr     r3, [pc, #132]  ; (0x1fff15fc)
2875    0x1fff1576:  movs    r5, #128        ; 0x80
2876    0x1fff1578:  ldr     r0, [r3, #56]   ; 0x38
2877    0x1fff157a:  cmp     r4, #0
2878    0x1fff157c:  beq.n   0x1fff1596
2879    0x1fff157e:  bics    r0, r5
2880    0x1fff1580:  str     r0, [r3, #56]   ; 0x38
2881    0x1fff1582:  lsls    r0, r7, #5
2882    0x1fff1584:  subs    r4, r4, #1
2883    0x1fff1586:  orrs    r0, r4
2884    0x1fff1588:  ldr     r4, [pc, #108]  ; (0x1fff15f8)
2885    0x1fff158a:  subs    r4, #64 ; 0x40
2886    0x1fff158c:  str     r0, [r4, #8]
2887    0x1fff158e:  ldr     r0, [sp, #28]
2888    0x1fff1590:  ldr     r2, [r0, #12]
2889    0x1fff1592:  adds    r0, r2, #1
2890    0x1fff1594:  b.n     0x1fff15a2
2891    0x1fff1596:  orrs    r0, r5
2892    0x1fff1598:  str     r0, [r3, #56]   ; 0x38
2893    0x1fff159a:  b.n     0x1fff143a
2894    0x1fff159c:  cmp     r2, #0
2895    0x1fff159e:  beq.n   0x1fff15a2
2896    0x1fff15a0:  subs    r0, r0, #1
2897    0x1fff15a2:  ldr     r6, [r4, #12]
2898    0x1fff15a4:  lsls    r6, r6, #31
2899    0x1fff15a6:  bne.n   0x1fff15ac
2900    0x1fff15a8:  cmp     r0, #0
2901    0x1fff15aa:  bne.n   0x1fff159c
2902    0x1fff15ac:  ldr     r0, [r4, #12]
2903    0x1fff15ae:  lsls    r0, r0, #31
2904    0x1fff15b0:  beq.n   0x1fff15c8
2905    0x1fff15b2:  movs    r0, #3
2906    0x1fff15b4:  str     r0, [r1, #48]   ; 0x30
2907    0x1fff15b6:  movs    r0, #1
2908    0x1fff15b8:  str     r0, [r1, #52]   ; 0x34
2909    0x1fff15ba:  movs    r2, #0
2910    0x1fff15bc:  str     r2, [r1, #52]   ; 0x34
2911    0x1fff15be:  str     r0, [r1, #52]   ; 0x34
2912    0x1fff15c0:  ldr     r0, [r1, #52]   ; 0x34
2913    0x1fff15c2:  lsls    r0, r0, #31
2914    0x1fff15c4:  beq.n   0x1fff15c0
2915    0x1fff15c6:  b.n     0x1fff143a
2916    0x1fff15c8:  ldr     r0, [r3, #56]   ; 0x38
2917    0x1fff15ca:  orrs    r0, r5
2918    0x1fff15cc:  str     r0, [r3, #56]   ; 0x38
2919    0x1fff15ce:  ldr     r0, [sp, #32]
2920    0x1fff15d0:  movs    r2, #4
2921    0x1fff15d2:  str     r2, [r0, #0]
2922    0x1fff15d4:  movs    r0, #1
2923    0x1fff15d6:  str     r0, [r1, #56]   ; 0x38
2924    0x1fff15d8:  ldr     r0, [sp, #28]
2925    0x1fff15da:  ldr     r1, [r0, #0]
2926    0x1fff15dc:  ldr     r0, [sp, #32]
2927    0x1fff15de:  str     r1, [r0, #4]
2928    0x1fff15e0:  b.n     0x1fff143a
2929    0x1fff15e2:  movs    r0, r0
2930    0x1fff15e4:  stmia   r0!, {}
2931    0x1fff15e6:  ands    r3, r0
2932    0x1fff15e8:  lsls    r4, r6, #23
2933    0x1fff15ea:  movs    r0, r0
2934    0x1fff15ec:  bhi.n   0x1fff15d0
2935    0x1fff15ee:                  ; <UNDEFINED> instruction: 0xffff3a99
2936    0x1fff15f2:  movs    r0, r0
2937    0x1fff15f4:  str     r0, [r4, #20]
2938    0x1fff15f6:  movs    r2, r0
2939    0x1fff15f8:  strh    r0, [r0, #2]
2940    0x1fff15fa:  ands    r4, r0
2941    0x1fff15fc:  strh    r0, [r0, #16]
2942    0x1fff15fe:  ands    r4, r0
2943
2944         Reset stuff in preparation for starting application
2945         {
2946
2947    0x1fff1600:  ldr     r1, [pc, #244]  ; (0x1fff16f8)  c0de0000
2948    0x1fff1602:  uxth    r0, r0
2949    0x1fff1604:  orrs    r0, r1
2950    0x1fff1606:  ldr     r1, [pc, #244]  ; (0x1fff16fc)  40048200        SCB + 0x200
2951    0x1fff1608:  str     r0, [r1, #36]   ; 0x24                          (SCB + 0x224)
2952    0x1fff160a:  ldr     r0, [pc, #244]  ; (0x1fff1700)  4003c000        flash controller
2953    0x1fff160c:  ldr     r0, [r0, #0]
2954    0x1fff160e:  bx      lr
2955
2956         }
2957
2958
2959    0x1fff1610:  movs    r1, #96 ; 0x60
2960    0x1fff1612:  orrs    r0, r1
2961    0x1fff1614:  b.n     0x1fff1600
2962    0x1fff1616:  ldr     r0, [pc, #228]  ; (0x1fff16fc)
2963    0x1fff1618:  ldr     r0, [r0, #36]   ; 0x24
2964    0x1fff161a:  bx      lr
2965
2966         }
2967         
2968         {
2969
2970    0x1fff161c:  push    {r3, r4, r5, r6, r7, lr}
2971    0x1fff161e:  mov     r2, r0
2972    0x1fff1620:  ldr     r0, [pc, #216]  ; (0x1fff16fc)
2973    0x1fff1622:  mov     r4, r1
2974    0x1fff1624:  ldr     r0, [r0, #36]   ; 0x24
2975    0x1fff1626:  str     r0, [sp, #0]
2976    0x1fff1628:  bl      0x1fff1610
2977    0x1fff162c:  ldr     r3, [pc, #208]  ; (0x1fff1700)
2978    0x1fff162e:  ldr     r0, [r3, #0]
2979    0x1fff1630:  movs    r1, #64 ; 0x40
2980    0x1fff1632:  orrs    r0, r1
2981    0x1fff1634:  str     r0, [r3, #0]
2982    0x1fff1636:  ldr     r0, [pc, #208]  ; (0x1fff1708)
2983    0x1fff1638:  ldr     r1, [pc, #200]  ; (0x1fff1704)
2984    0x1fff163a:  str     r1, [r0, #16]
2985    0x1fff163c:  ldr     r5, [pc, #204]  ; (0x1fff170c)
2986    0x1fff163e:  movs    r1, #125        ; 0x7d
2987    0x1fff1640:  ldr     r0, [r2, #0]
2988    0x1fff1642:  lsls    r1, r1, #3
2989    0x1fff1644:  ldr     r5, [r5, #0]
2990    0x1fff1646:  muls    r1, r0
2991    0x1fff1648:  cmp     r1, r5
2992    0x1fff164a:  bhi.n   0x1fff165c
2993    0x1fff164c:  cmp     r0, #0
2994    0x1fff164e:  beq.n   0x1fff165c
2995    0x1fff1650:  ldr     r0, [r2, #4]
2996    0x1fff1652:  cmp     r0, #3
2997    0x1fff1654:  bls.n   0x1fff1660
2998    0x1fff1656:  movs    r0, #2
2999    0x1fff1658:  str     r0, [r4, #0]
3000    0x1fff165a:  b.n     0x1fff16e2
3001    0x1fff165c:  movs    r0, #1
3002    0x1fff165e:  b.n     0x1fff1658
3003    0x1fff1660:  movs    r0, #0
3004    0x1fff1662:  str     r0, [r4, #0]
3005    0x1fff1664:  ldr     r4, [pc, #148]  ; (0x1fff16fc)
3006    0x1fff1666:  subs    r4, #192        ; 0xc0
3007    0x1fff1668:  ldr     r1, [r4, #32]
3008    0x1fff166a:  str     r0, [r4, #32]
3009    0x1fff166c:  uxtb    r1, r1
3010    0x1fff166e:  mov     r12, r1
3011    0x1fff1670:  ldr     r0, [r3, #16]
3012    0x1fff1672:  lsrs    r0, r0, #8
3013    0x1fff1674:  lsls    r0, r0, #8
3014    0x1fff1676:  adds    r0, r0, #2
3015    0x1fff1678:  str     r0, [r3, #16]
3016    0x1fff167a:  ldr     r0, [r3, #0]
3017    0x1fff167c:  ldr     r7, [pc, #144]  ; (0x1fff1710)
3018    0x1fff167e:  ands    r0, r7
3019    0x1fff1680:  str     r0, [r3, #0]
3020    0x1fff1682:  ldr     r0, [r2, #4]
3021    0x1fff1684:  cmp     r0, #0
3022    0x1fff1686:  beq.n   0x1fff16ce
3023    0x1fff1688:  ldr     r1, [r2, #0]
3024    0x1fff168a:  movs    r5, #6
3025    0x1fff168c:  muls    r1, r5
3026    0x1fff168e:  ldr     r5, [pc, #132]  ; (0x1fff1714)
3027    0x1fff1690:  lsls    r0, r0, #1
3028    0x1fff1692:  adds    r1, r1, r5
3029    0x1fff1694:  adds    r0, r1, r0
3030    0x1fff1696:  subs    r0, #8
3031    0x1fff1698:  ldrb    r1, [r0, #0]
3032    0x1fff169a:  ldrb    r0, [r0, #1]
3033    0x1fff169c:  str     r0, [r4, #32]
3034    0x1fff169e:  ldr     r5, [r3, #16]
3035    0x1fff16a0:  movs    r4, #3
3036    0x1fff16a2:  lsls    r4, r4, #14
3037    0x1fff16a4:  bics    r5, r4
3038    0x1fff16a6:  lsrs    r4, r1, #4
3039    0x1fff16a8:  ldr     r6, [pc, #108]  ; (0x1fff1718)
3040    0x1fff16aa:  lsls    r4, r4, #1
3041    0x1fff16ac:  ldrh    r6, [r6, r4]
3042    0x1fff16ae:  orrs    r5, r6
3043    0x1fff16b0:  str     r5, [r3, #16]
3044    0x1fff16b2:  ldr     r5, [r3, #0]
3045    0x1fff16b4:  ldr     r6, [pc, #96]   ; (0x1fff1718)
3046    0x1fff16b6:  ands    r5, r7
3047    0x1fff16b8:  subs    r6, #12
3048    0x1fff16ba:  ldrh    r4, [r6, r4]
3049    0x1fff16bc:  orrs    r5, r4
3050    0x1fff16be:  str     r5, [r3, #0]
3051    0x1fff16c0:  ldr     r4, [r3, #16]
3052    0x1fff16c2:  lsls    r1, r1, #28
3053    0x1fff16c4:  lsrs    r4, r4, #8
3054    0x1fff16c6:  lsls    r4, r4, #8
3055    0x1fff16c8:  lsrs    r1, r1, #28
3056    0x1fff16ca:  orrs    r4, r1
3057    0x1fff16cc:  str     r4, [r3, #16]
3058    0x1fff16ce:  cmp     r12, r0
3059    0x1fff16d0:  bls.n   0x1fff16e2
3060    0x1fff16d2:  ldr     r1, [r2, #8]
3061    0x1fff16d4:  movs    r0, #0
3062    0x1fff16d6:  movs    r2, #25
3063    0x1fff16d8:  muls    r1, r2
3064    0x1fff16da:  b.n     0x1fff16de
3065
3066    0x1fff16dc:  adds    r0, r0, #1
3067    0x1fff16de:  cmp     r1, r0
3068    0x1fff16e0:  bhi.n   0x1fff16dc
3069    0x1fff16e2:  ldr     r0, [pc, #36]   ; (0x1fff1708)
3070    0x1fff16e4:  movs    r1, #0
3071    0x1fff16e6:  str     r1, [r0, #16]
3072    0x1fff16e8:  ldr     r0, [r3, #0]
3073    0x1fff16ea:  movs    r1, #64 ; 0x40
3074    0x1fff16ec:  bics    r0, r1
3075    0x1fff16ee:  str     r0, [r3, #0]
3076    0x1fff16f0:  ldr     r0, [sp, #0]
3077    0x1fff16f2:  bl      0x1fff1600
3078    0x1fff16f6:  pop     {r3, r4, r5, r6, r7, pc}
3079
3080 0x1fff16f0:     0xf7ff9800      0xbdf8ff85      0xc0de0000      0x40048200
3081 0x1fff1700:     0x4003c000      0x12345678      0x400483c0      0x000005f4
3082 0x1fff1710:     0xffffdfef      0x00000680      0x1fff1f80      0x1c04b510
3083
3084    0x1fff16f8:  movs    r0, r0
3085    0x1fff16fa:  stmia   r0!, {r1, r2, r3, r4, r6, r7}
3086    0x1fff16fc:  strh    r0, [r0, #16]
3087    0x1fff16fe:  ands    r4, r0
3088    0x1fff1700:  stmia   r0!, {}
3089    0x1fff1702:  ands    r3, r0
3090    0x1fff1704:  ldrsb   r0, [r7, r1]
3091    0x1fff1706:  asrs    r4, r6, #8
3092    0x1fff1708:  strh    r0, [r0, #30]
3093    0x1fff170a:  ands    r4, r0
3094    0x1fff170c:  lsls    r4, r6, #23
3095    0x1fff170e:  movs    r0, r0
3096    0x1fff1710:  svc     239     ; 0xef
3097    0x1fff1712:  vcvt.f<illegal width 64>.u<illegal width 64>    d16, d0
3098    0x1fff1716:  movs    r0, r0
3099    0x1fff1718:  subs    r0, r0, #6
3100    0x1fff171a:  subs    r7, r7, #7
3101
3102
3103
3104    0x1fff171c:  push    {r4, lr}
3105    0x1fff171e:  adds    r4, r0, #0
3106    0x1fff1720:  adds    r0, r1, #0
3107    0x1fff1722:  adds    r1, r2, #0
3108    0x1fff1724:  bl      0x1fff173c
3109    0x1fff1728:  stmia   r4!, {r0, r1}
3110    0x1fff172a:  pop     {r4, pc}
3111    0x1fff172c:  push    {r4, lr}
3112    0x1fff172e:  adds    r4, r0, #0
3113    0x1fff1730:  adds    r0, r1, #0
3114    0x1fff1732:  adds    r1, r2, #0
3115    0x1fff1734:  bl      0x1fff1742
3116    0x1fff1738:  stmia   r4!, {r0, r1}
3117    0x1fff173a:  pop     {r4, pc}
3118    0x1fff173c:  adds    r3, r0, #0
3119    0x1fff173e:  orrs    r3, r1
3120    0x1fff1740:  bmi.n   0x1fff17d8
3121    0x1fff1742:  push    {r4, r5, lr}
3122    0x1fff1744:  mov     r12, r0
3123    0x1fff1746:  mov     lr, r1
3124    0x1fff1748:  subs    r2, r1, #1
3125    0x1fff174a:  bmi.n   0x1fff17cc
3126    0x1fff174c:  movs    r5, #30
3127    0x1fff174e:  lsrs    r2, r1, #15
3128    0x1fff1750:  bne.n   0x1fff1756
3129    0x1fff1752:  subs    r5, #16
3130    0x1fff1754:  lsls    r1, r1, #16
3131    0x1fff1756:  lsrs    r2, r1, #23
3132    0x1fff1758:  bne.n   0x1fff175e
3133    0x1fff175a:  subs    r5, #8
3134    0x1fff175c:  lsls    r1, r1, #8
3135    0x1fff175e:  lsrs    r2, r1, #27
3136    0x1fff1760:  bne.n   0x1fff1768
3137    0x1fff1762:  subs    r5, #4
3138    0x1fff1764:  lsls    r1, r1, #4
3139    0x1fff1766:  lsrs    r2, r1, #27
3140    0x1fff1768:  add     r3, pc, #160    ; (adr r3, 0x1fff180c)
3141    0x1fff176a:  ldrb    r2, [r3, r2]
3142    0x1fff176c:  subs    r5, r5, r2
3143    0x1fff176e:  lsls    r1, r2
3144    0x1fff1770:  subs    r3, #111        ; 0x6f
3145    0x1fff1772:  lsrs    r2, r1, #23
3146    0x1fff1774:  ldrb    r3, [r3, r2]
3147    0x1fff1776:  adds    r3, #255        ; 0xff
3148    0x1fff1778:  lsrs    r2, r1, #10
3149    0x1fff177a:  muls    r2, r3
3150    0x1fff177c:  asrs    r2, r2, #6
3151    0x1fff177e:  muls    r2, r3
3152    0x1fff1780:  lsls    r3, r3, #24
3153    0x1fff1782:  subs    r3, r3, r2
3154    0x1fff1784:  lsrs    r3, r3, #15
3155    0x1fff1786:  subs    r3, #1
3156    0x1fff1788:  lsrs    r2, r0, #17
3157    0x1fff178a:  muls    r2, r3
3158    0x1fff178c:  lsrs    r2, r2, #21
3159    0x1fff178e:  lsls    r4, r2, #11
3160    0x1fff1790:  lsls    r0, r0, #9
3161    0x1fff1792:  muls    r2, r1
3162    0x1fff1794:  subs    r0, r0, r2
3163    0x1fff1796:  lsrs    r2, r0, #16
3164    0x1fff1798:  muls    r2, r3
3165    0x1fff179a:  lsrs    r2, r2, #20
3166    0x1fff179c:  add     r4, r2
3167    0x1fff179e:  lsls    r4, r4, #10
3168    0x1fff17a0:  lsls    r0, r0, #11
3169    0x1fff17a2:  muls    r2, r1
3170    0x1fff17a4:  subs    r0, r0, r2
3171    0x1fff17a6:  lsrs    r2, r0, #16
3172    0x1fff17a8:  muls    r2, r3
3173    0x1fff17aa:  lsrs    r2, r2, #21
3174    0x1fff17ac:  add     r4, r2
3175    0x1fff17ae:  lsls    r0, r0, #10
3176    0x1fff17b0:  muls    r2, r1
3177    0x1fff17b2:  subs    r0, r0, r2
3178    0x1fff17b4:  movs    r2, #0
3179    0x1fff17b6:  cmp     r0, r1
3180    0x1fff17b8:  adcs    r4, r2
3181    0x1fff17ba:  lsrs    r4, r5
3182    0x1fff17bc:  asrs    r5, r5, #8
3183    0x1fff17be:  eors    r4, r5
3184    0x1fff17c0:  subs    r0, r4, r5
3185    0x1fff17c2:  mov     r1, lr
3186    0x1fff17c4:  muls    r1, r0
3187    0x1fff17c6:  mov     r2, r12
3188    0x1fff17c8:  subs    r1, r2, r1
3189    0x1fff17ca:  pop     {r4, r5, pc}
3190    0x1fff17cc:  cmp     r1, #0
3191    0x1fff17ce:  beq.n   0x1fff17f4
3192    0x1fff17d0:  movs    r4, #0
3193    0x1fff17d2:  cmp     r0, r1
3194    0x1fff17d4:  adcs    r4, r4
3195    0x1fff17d6:  b.n     0x1fff17bc
3196    0x1fff17d8:  push    {r4, r5, lr}
3197    0x1fff17da:  mov     r12, r0
3198    0x1fff17dc:  mov     lr, r1
3199    0x1fff17de:  asrs    r5, r1, #31
3200    0x1fff17e0:  eors    r1, r5
3201    0x1fff17e2:  subs    r1, r1, r5
3202    0x1fff17e4:  asrs    r2, r0, #31
3203    0x1fff17e6:  eors    r0, r2
3204    0x1fff17e8:  subs    r0, r0, r2
3205    0x1fff17ea:  eors    r5, r2
3206    0x1fff17ec:  lsls    r5, r5, #8
3207    0x1fff17ee:  adds    r5, #30
3208    0x1fff17f0:  cmp     r1, #0
3209    0x1fff17f2:  bne.n   0x1fff174e
3210    0x1fff17f4:  movs    r0, #0
3211    0x1fff17f6:  pop     {r4, r5, pc}
3212    0x1fff17f8:  strh    r3, [r0, r1]
3213    0x1fff17fa:  ldrsh   r4, [r2, r5]
3214    0x1fff17fc:  ldr     r1, [pc, #272]  ; (0x1fff1910)
3215    0x1fff17fe:  ldr     r1, [pc, #344]  ; (0x1fff1958)
3216    0x1fff1800:  cmp     r4, r8
3217    0x1fff1802:  strh    r7, [r3, r1]
3218    0x1fff1804:  ldr     r5, [pc, #316]  ; (0x1fff1944)
3219    0x1fff1806:  movs    r0, #32
3220    0x1fff1808:  movs    r1, r0
3221    0x1fff180a:  movs    r0, r0
3222    0x1fff180c:  lsls    r0, r0, #12
3223    0x1fff180e:  lsls    r2, r0, #8
3224    0x1fff1810:  lsls    r1, r0, #4
3225    0x1fff1812:  lsls    r1, r0, #4
3226    0x1fff1814:  movs    r0, r0
3227    0x1fff1816:  movs    r0, r0
3228    0x1fff1818:  movs    r0, r0
3229    0x1fff181a:  movs    r0, r0
3230    0x1fff181c:  vaba.u8 <illegal reg q7.5>, q8, <illegal reg q13.5>
3231    0x1fff1820:  blx     0x200e49fc
3232    0x1fff1824:  b.n     0x1fff1bf2
3233    0x1fff1826:  bge.n   0x1fff17e6
3234    0x1fff1828:  bcc.n   0x1fff17da
3235    0x1fff182a:  ldmia   r5!, {r4, r6, r7}
3236    0x1fff182c:  stmia   r7!, {r1, r3, r6, r7}
3237    0x1fff182e:  stmia   r0!, {r0, r1, r6, r7}
3238    0x1fff1830:  hlt     0x003d
3239    0x1fff1832:  push    {r0, r1, r2, r4, r5, r7}
3240    0x1fff1834:  add     r7, sp, #712    ; 0x2c8
3241    0x1fff1836:  add     r1, sp, #688    ; 0x2b0
3242    0x1fff1838:  add     r4, pc, #664    ; (adr r4, 0x1fff1ad4)
3243    0x1fff183a:  ldr     r6, [sp, #644]  ; 0x284
3244    0x1fff183c:  ldr     r1, [sp, #624]  ; 0x270
3245    0x1fff183e:  str     r4, [sp, #604]  ; 0x25c
3246    0x1fff1840:  ldrh    r2, [r2, #60]   ; 0x3c
3247    0x1fff1842:  ldrh    r5, [r1, #28]
3248    0x1fff1844:  strh    r0, [r1, #52]   ; 0x34
3249    0x1fff1846:  strh    r4, [r0, #12]
3250    0x1fff1848:  ldrb    r7, [r7, #21]
3251    0x1fff184a:  ldrb    r3, [r7, #5]
3252    0x1fff184c:  strb    r6, [r6, #17]
3253    0x1fff184e:  strb    r2, [r6, #1]
3254    0x1fff1850:  ldr     r6, [r5, #68]   ; 0x44
3255    0x1fff1852:  ldr     r2, [r5, #4]
3256    0x1fff1854:  str     r6, [r4, #68]   ; 0x44
3257    0x1fff1856:  str     r2, [r4, #4]
3258    0x1fff1858:  ldrb    r7, [r3, r5]
3259    0x1fff185a:  ldr     r3, [r3, r5]
3260    0x1fff185c:  ldrsb   r7, [r2, r1]
3261    0x1fff185e:  strh    r4, [r2, r1]
3262    0x1fff1860:  ldr     r7, [pc, #320]  ; (0x1fff19a4)
3263    0x1fff1862:  ldr     r3, [pc, #308]  ; (0x1fff1998)
3264    0x1fff1864:  ldr     r0, [pc, #296]  ; (0x1fff1990)
3265    0x1fff1866:  cmp     r6, r8
3266    0x1fff1868:  adcs    r3, r0
3267    0x1fff186a:  subs    r6, #64 ; 0x40
3268    0x1fff186c:  subs    r3, #61 ; 0x3d
3269    0x1fff186e:  subs    r0, #58 ; 0x3a
3270    0x1fff1870:  adds    r5, #55 ; 0x37
3271    0x1fff1872:  adds    r3, #52 ; 0x34
3272    0x1fff1874:  adds    r0, #49 ; 0x31
3273    0x1fff1876:  cmp     r5, #46 ; 0x2e
3274    0x1fff1878:  cmp     r2, #44 ; 0x2c
3275    0x1fff187a:  cmp     r0, #41 ; 0x29
3276    0x1fff187c:  movs    r5, #38 ; 0x26
3277    0x1fff187e:  movs    r2, #36 ; 0x24
3278    0x1fff1880:  movs    r0, #33 ; 0x21
3279    0x1fff1882:  adds    r7, r3, #4
3280    0x1fff1884:  subs    r4, r3, r4
3281    0x1fff1886:  adds    r2, r3, r0
3282    0x1fff1888:  asrs    r7, r2, #24
3283    0x1fff188a:  asrs    r5, r2, #16
3284    0x1fff188c:  asrs    r3, r2, #4
3285    0x1fff188e:  lsrs    r0, r2, #28
3286    0x1fff1890:  lsrs    r6, r1, #20
3287    0x1fff1892:  lsrs    r4, r1, #12
3288    0x1fff1894:  lsrs    r2, r1, #4
3289    0x1fff1896:  lsls    r0, r1, #28
3290    0x1fff1898:  lsls    r6, r0, #20
3291    0x1fff189a:  lsls    r4, r0, #12
3292    0x1fff189c:  lsls    r1, r0, #4
3293    0x1fff189e:  nop                     ; (mov r8, r8)
3294    0x1fff18a0:  push    {r4, r5, lr}
3295    0x1fff18a2:  mov     r3, r1
3296    0x1fff18a4:  mov     r1, r0
3297    0x1fff18a6:  movs    r0, #0
3298    0x1fff18a8:  movs    r2, #32
3299    0x1fff18aa:  movs    r4, #1
3300    0x1fff18ac:  b.n     0x1fff18c2
3301    0x1fff18ae:  mov     r5, r1
3302    0x1fff18b0:  lsrs    r5, r2
3303    0x1fff18b2:  cmp     r5, r3
3304    0x1fff18b4:  bcc.n   0x1fff18c2
3305    0x1fff18b6:  mov     r5, r3
3306    0x1fff18b8:  lsls    r5, r2
3307    0x1fff18ba:  subs    r1, r1, r5
3308    0x1fff18bc:  mov     r5, r4
3309    0x1fff18be:  lsls    r5, r2
3310    0x1fff18c0:  adds    r0, r0, r5
3311    0x1fff18c2:  mov     r5, r2
3312    0x1fff18c4:  subs    r2, r2, #1
3313    0x1fff18c6:  cmp     r5, #0
3314    0x1fff18c8:  bgt.n   0x1fff18ae
3315    0x1fff18ca:  pop     {r4, r5, pc}
3316    0x1fff18cc:  push    {r3, r4, r5, r6, r7, lr}
3317    0x1fff18ce:  ldr     r5, [pc, #208]  ; (0x1fff19a0)
3318    0x1fff18d0:  mov     r7, r0
3319    0x1fff18d2:  mov     r4, r1
3320    0x1fff18d4:  ldr     r6, [r5, #0]
3321    0x1fff18d6:  bl      0x1fff1616
3322    0x1fff18da:  str     r0, [sp, #0]
3323    0x1fff18dc:  bl      0x1fff1610
3324    0x1fff18e0:  ldr     r3, [r7, #0]
3325    0x1fff18e2:  movs    r1, #0
3326    0x1fff18e4:  subs    r3, #50 ; 0x32
3327    0x1fff18e6:  movs    r0, #64 ; 0x40
3328    0x1fff18e8:  bl      0x1fff19b0
3329    0x1fff18ec:  lsrs    r5, r1, #32
3330    0x1fff18ee:  asrs    r5, r1, #8
3331    0x1fff18f0:  movs    r1, #23
3332    0x1fff18f2:  adds    r0, r7, #0
3333    0x1fff18f4:  movs    r6, #70 ; 0x46
3334    0x1fff18f6:  strh    r3, [r2, r5]
3335    0x1fff18f8:  ldr     r5, [pc, #292]  ; (0x1fff1a20)
3336    0x1fff18fa:  lsls    r3, r2, #1
3337    0x1fff18fc:  mov     r1, r4
3338    0x1fff18fe:  mov     r0, r7
3339    0x1fff1900:  bl      0x1fff1e00
3340    0x1fff1904:  b.n     0x1fff1996
3341    0x1fff1906:  mov     r1, r4
3342    0x1fff1908:  mov     r0, r7
3343    0x1fff190a:  bl      0x1fff1c62
3344    0x1fff190e:  b.n     0x1fff1996
3345    0x1fff1910:  mov     r1, r4
3346    0x1fff1912:  mov     r0, r7
3347    0x1fff1914:  bl      0x1fff1b30
3348    0x1fff1918:  b.n     0x1fff1996
3349    0x1fff191a:  mov     r1, r4
3350    0x1fff191c:  mov     r0, r7
3351    0x1fff191e:  bl      0x1fff1a04
3352    0x1fff1922:  b.n     0x1fff1996
3353    0x1fff1924:  mov     r1, r4
3354    0x1fff1926:  mov     r0, r7
3355    0x1fff1928:  bl      0x1fff1e8c
3356    0x1fff192c:  b.n     0x1fff1996
3357    0x1fff192e:  ldr     r0, [pc, #116]  ; (0x1fff19a4)
3358    0x1fff1930:  str     r1, [r4, #0]
3359    0x1fff1932:  ldr     r0, [r0, #52]   ; 0x34
3360    0x1fff1934:  str     r0, [r4, #4]
3361    0x1fff1936:  b.n     0x1fff1996
3362    0x1fff1938:  str     r1, [r4, #0]
3363    0x1fff193a:  ldr     r1, [r5, #0]
3364    0x1fff193c:  orrs    r1, r0
3365    0x1fff193e:  str     r1, [r5, #0]
3366    0x1fff1940:  ldr     r1, [pc, #100]  ; (0x1fff19a8)
3367    0x1fff1942:  ldr     r2, [r1, #0]
3368    0x1fff1944:  ldr     r2, [r2, #0]
3369    0x1fff1946:  str     r2, [r4, #4]
3370    0x1fff1948:  ldr     r2, [r1, #0]
3371    0x1fff194a:  ldr     r2, [r2, #4]
3372    0x1fff194c:  str     r2, [r4, #8]
3373    0x1fff194e:  ldr     r2, [r1, #0]
3374    0x1fff1950:  ldr     r2, [r2, #8]
3375    0x1fff1952:  str     r2, [r4, #12]
3376    0x1fff1954:  ldr     r1, [r1, #0]
3377    0x1fff1956:  ldr     r1, [r1, #12]
3378    0x1fff1958:  str     r1, [r4, #16]
3379    0x1fff195a:  b.n     0x1fff196a
3380    0x1fff195c:  str     r1, [r4, #0]
3381    0x1fff195e:  ldr     r1, [r5, #0]
3382    0x1fff1960:  orrs    r1, r0
3383    0x1fff1962:  str     r1, [r5, #0]
3384    0x1fff1964:  ldr     r1, [pc, #68]   ; (0x1fff19ac)
3385    0x1fff1966:  ldr     r1, [r1, #0]
3386    0x1fff1968:  str     r1, [r4, #4]
3387    0x1fff196a:  ldr     r1, [r5, #0]
3388    0x1fff196c:  bics    r1, r0
3389    0x1fff196e:  str     r1, [r5, #0]
3390    0x1fff1970:  ldr     r1, [r5, #0]
3391    0x1fff1972:  bics    r1, r0
3392    0x1fff1974:  str     r1, [r5, #0]
3393    0x1fff1976:  b.n     0x1fff1996
3394    0x1fff1978:  bl      0x1fff1e7e
3395    0x1fff197c:  b.n     0x1fff1996
3396    0x1fff197e:  mov     r2, r4
3397    0x1fff1980:  mov     r1, r7
3398    0x1fff1982:  movs    r0, #1
3399    0x1fff1984:  b.n     0x1fff198c
3400    0x1fff1986:  mov     r2, r4
3401    0x1fff1988:  mov     r1, r7
3402    0x1fff198a:  movs    r0, #0
3403    0x1fff198c:  bl      0x1fff1e3c
3404    0x1fff1990:  b.n     0x1fff1996
3405    0x1fff1992:  movs    r0, #1
3406    0x1fff1994:  str     r0, [r4, #0]
3407    0x1fff1996:  str     r6, [r5, #0]
3408    0x1fff1998:  ldr     r0, [sp, #0]
3409    0x1fff199a:  bl      0x1fff1600
3410    0x1fff199e:  pop     {r3, r4, r5, r6, r7, pc}
3411    0x1fff19a0:  stmia   r0!, {}
3412    0x1fff19a2:  ands    r3, r0
3413    0x1fff19a4:  strh    r0, [r0, #30]
3414    0x1fff19a6:  ands    r4, r0
3415    0x1fff19a8:  lsls    r4, r3, #23
3416    0x1fff19aa:  movs    r0, r0
3417    0x1fff19ac:  lsls    r4, r6, #16
3418    0x1fff19ae:  movs    r0, r0
3419    0x1fff19b0:  push    {r4, r5}
3420    0x1fff19b2:  mov     r4, lr
3421    0x1fff19b4:  subs    r4, r4, #1
3422    0x1fff19b6:  ldrb    r5, [r4, #0]
3423    0x1fff19b8:  adds    r4, r4, #1
3424    0x1fff19ba:  cmp     r3, r5
3425    0x1fff19bc:  bcs.n   0x1fff19c0
3426    0x1fff19be:  mov     r5, r3
3427    0x1fff19c0:  ldrb    r3, [r4, r5]
3428    0x1fff19c2:  lsls    r3, r3, #1
3429    0x1fff19c4:  adds    r3, r4, r3
3430    0x1fff19c6:  pop     {r4, r5}
3431    0x1fff19c8:  bx      r3
3432    0x1fff19ca:  vsli.32 d27, d16, #31
3433    0x1fff19ce:  ldr     r2, [pc, #1016] ; (0x1fff1dc8)
3434    0x1fff19d0:  ldr     r4, [r2, #0]
3435    0x1fff19d2:  movs    r3, #64 ; 0x40
3436    0x1fff19d4:  orrs    r4, r3
3437    0x1fff19d6:  str     r4, [r2, #0]
3438    0x1fff19d8:  ldr     r4, [pc, #1008] ; (0x1fff1dcc)
3439    0x1fff19da:  ldr     r5, [r4, #0]
3440    0x1fff19dc:  cmp     r0, r5
3441    0x1fff19de:  bhi.n   0x1fff19e4
3442    0x1fff19e0:  cmp     r1, r5
3443    0x1fff19e2:  bls.n   0x1fff19ec
3444    0x1fff19e4:  ldr     r0, [r2, #0]
3445    0x1fff19e6:  bics    r0, r3
3446    0x1fff19e8:  str     r0, [r2, #0]
3447    0x1fff19ea:  b.n     0x1fff19f6
3448    0x1fff19ec:  ldr     r4, [r2, #0]
3449    0x1fff19ee:  bics    r4, r3
3450    0x1fff19f0:  str     r4, [r2, #0]
3451    0x1fff19f2:  cmp     r0, r1
3452    0x1fff19f4:  bls.n   0x1fff19fa
3453    0x1fff19f6:  movs    r0, #7
3454    0x1fff19f8:  pop     {r4, r5, pc}
3455    0x1fff19fa:  ldr     r0, [r2, #0]
3456    0x1fff19fc:  bics    r0, r3
3457    0x1fff19fe:  str     r0, [r2, #0]
3458    0x1fff1a00:  movs    r0, #0
3459    0x1fff1a02:  pop     {r4, r5, pc}
3460    0x1fff1a04:  push    {r4, r5, r6, lr}
3461    0x1fff1a06:  mov     r4, r1
3462    0x1fff1a08:  mov     r5, r0
3463    0x1fff1a0a:  ldr     r1, [r0, #8]
3464    0x1fff1a0c:  ldr     r0, [r0, #4]
3465    0x1fff1a0e:  bl      0x1fff19cc
3466    0x1fff1a12:  str     r0, [r4, #0]
3467    0x1fff1a14:  cmp     r0, #0
3468    0x1fff1a16:  bne.n   0x1fff1a54
3469    0x1fff1a18:  ldr     r0, [pc, #940]  ; (0x1fff1dc8)
3470    0x1fff1a1a:  ldr     r1, [r0, #0]
3471    0x1fff1a1c:  movs    r6, #64 ; 0x40
3472    0x1fff1a1e:  orrs    r1, r6
3473    0x1fff1a20:  str     r1, [r0, #0]
3474    0x1fff1a22:  ldr     r1, [r5, #4]
3475    0x1fff1a24:  ldr     r3, [pc, #940]  ; (0x1fff1dd4)
3476    0x1fff1a26:  lsls    r2, r1, #2
3477    0x1fff1a28:  ldr     r1, [pc, #932]  ; (0x1fff1dd0)
3478    0x1fff1a2a:  ldr     r1, [r1, r2]
3479    0x1fff1a2c:  ldr     r2, [r5, #8]
3480    0x1fff1a2e:  ldr     r5, [r0, #0]
3481    0x1fff1a30:  lsls    r2, r2, #2
3482    0x1fff1a32:  ldr     r3, [r3, r2]
3483    0x1fff1a34:  mov     r2, r1
3484    0x1fff1a36:  bics    r5, r6
3485    0x1fff1a38:  str     r5, [r0, #0]
3486    0x1fff1a3a:  lsls    r0, r6, #9
3487    0x1fff1a3c:  b.n     0x1fff1a58
3488    0x1fff1a3e:  adds    r5, r2, r0
3489    0x1fff1a40:  ldr     r5, [r5, #0]
3490    0x1fff1a42:  adds    r5, r5, #1
3491    0x1fff1a44:  beq.n   0x1fff1a56
3492    0x1fff1a46:  movs    r3, #8
3493    0x1fff1a48:  subs    r1, r2, r1
3494    0x1fff1a4a:  str     r3, [r4, #0]
3495    0x1fff1a4c:  adds    r0, r2, r0
3496    0x1fff1a4e:  str     r1, [r4, #4]
3497    0x1fff1a50:  ldr     r0, [r0, #0]
3498    0x1fff1a52:  str     r0, [r4, #8]
3499    0x1fff1a54:  pop     {r4, r5, r6, pc}
3500    0x1fff1a56:  adds    r2, r2, #4
3501    0x1fff1a58:  cmp     r2, r3
3502    0x1fff1a5a:  bcc.n   0x1fff1a3e
3503    0x1fff1a5c:  movs    r0, #0
3504    0x1fff1a5e:  str     r0, [r4, #0]
3505    0x1fff1a60:  pop     {r4, r5, r6, pc}
3506    0x1fff1a62:  push    {r4, lr}
3507    0x1fff1a64:  ldr     r4, [sp, #8]
3508    0x1fff1a66:  str     r1, [r0, #0]
3509    0x1fff1a68:  cmp     r2, #0
3510    0x1fff1a6a:  beq.n   0x1fff1a76
3511    0x1fff1a6c:  str     r3, [r2, #0]
3512    0x1fff1a6e:  ldr     r0, [r2, #0]
3513    0x1fff1a70:  tst     r0, r3
3514    0x1fff1a72:  bne.n   0x1fff1a6e
3515    0x1fff1a74:  pop     {r4, pc}
3516    0x1fff1a76:  ldr     r0, [r4, #0]
3517    0x1fff1a78:  lsls    r0, r0, #29
3518    0x1fff1a7a:  beq.n   0x1fff1a76
3519    0x1fff1a7c:  pop     {r4, pc}
3520    0x1fff1a7e:  push    {r3, r4, r5, r6, r7, lr}
3521    0x1fff1a80:  ldr     r7, [pc, #836]  ; (0x1fff1dc8)
3522    0x1fff1a82:  mov     r4, r0
3523    0x1fff1a84:  ldr     r0, [r7, #4]
3524    0x1fff1a86:  mov     r12, r1
3525    0x1fff1a88:  mov     r6, r2
3526    0x1fff1a8a:  movs    r5, #0
3527    0x1fff1a8c:  movs    r1, #5
3528    0x1fff1a8e:  bics    r1, r0
3529    0x1fff1a90:  beq.n   0x1fff1ac6
3530    0x1fff1a92:  movs    r0, #11
3531    0x1fff1a94:  pop     {r3, r4, r5, r6, r7, pc}
3532    0x1fff1a96:  movs    r0, #1
3533    0x1fff1a98:  lsls    r0, r4
3534    0x1fff1a9a:  orrs    r5, r0
3535    0x1fff1a9c:  ldr     r1, [r7, #0]
3536    0x1fff1a9e:  mov     r0, r7
3537    0x1fff1aa0:  movs    r3, #64 ; 0x40
3538    0x1fff1aa2:  orrs    r1, r3
3539    0x1fff1aa4:  str     r1, [r7, #0]
3540    0x1fff1aa6:  ldr     r2, [pc, #808]  ; (0x1fff1dd0)
3541    0x1fff1aa8:  lsls    r1, r4, #2
3542    0x1fff1aaa:  ldr     r1, [r2, r1]
3543    0x1fff1aac:  lsls    r2, r3, #9
3544    0x1fff1aae:  adds    r2, r1, r2
3545    0x1fff1ab0:  ldr     r1, [r7, #0]
3546    0x1fff1ab2:  bics    r1, r3
3547    0x1fff1ab4:  str     r1, [r7, #0]
3548    0x1fff1ab6:  str     r6, [r2, #0]
3549    0x1fff1ab8:  movs    r3, #0
3550    0x1fff1aba:  mov     r2, r3
3551    0x1fff1abc:  ldr     r1, [pc, #792]  ; (0x1fff1dd8)
3552    0x1fff1abe:  str     r7, [sp, #0]
3553    0x1fff1ac0:  bl      0x1fff1a62
3554    0x1fff1ac4:  adds    r4, r4, #1
3555    0x1fff1ac6:  cmp     r4, r12
3556    0x1fff1ac8:  bls.n   0x1fff1a96
3557    0x1fff1aca:  ldr     r0, [r7, #0]
3558    0x1fff1acc:  movs    r2, #64 ; 0x40
3559    0x1fff1ace:  orrs    r0, r2
3560    0x1fff1ad0:  str     r0, [r7, #0]
3561    0x1fff1ad2:  ldr     r0, [pc, #776]  ; (0x1fff1ddc)
3562    0x1fff1ad4:  ldr     r0, [r0, #0]
3563    0x1fff1ad6:  subs    r0, #63 ; 0x3f
3564    0x1fff1ad8:  cmp     r6, #0
3565    0x1fff1ada:  bne.n   0x1fff1ae2
3566    0x1fff1adc:  ldr     r1, [r0, #60]   ; 0x3c
3567    0x1fff1ade:  bics    r1, r5
3568    0x1fff1ae0:  str     r1, [r0, #60]   ; 0x3c
3569    0x1fff1ae2:  adds    r6, r6, #1
3570    0x1fff1ae4:  bne.n   0x1fff1aec
3571    0x1fff1ae6:  ldr     r1, [r0, #60]   ; 0x3c
3572    0x1fff1ae8:  orrs    r1, r5
3573    0x1fff1aea:  str     r1, [r0, #60]   ; 0x3c
3574    0x1fff1aec:  ldr     r0, [r7, #0]
3575    0x1fff1aee:  bics    r0, r2
3576    0x1fff1af0:  str     r0, [r7, #0]
3577    0x1fff1af2:  movs    r0, #0
3578    0x1fff1af4:  pop     {r3, r4, r5, r6, r7, pc}
3579    0x1fff1af6:  push    {r4, lr}
3580    0x1fff1af8:  movs    r2, #0
3581    0x1fff1afa:  movs    r4, #1
3582    0x1fff1afc:  b.n     0x1fff1b06
3583    0x1fff1afe:  mov     r3, r4
3584    0x1fff1b00:  lsls    r3, r0
3585    0x1fff1b02:  orrs    r2, r3
3586    0x1fff1b04:  adds    r0, r0, #1
3587    0x1fff1b06:  cmp     r0, r1
3588    0x1fff1b08:  bls.n   0x1fff1afe
3589    0x1fff1b0a:  ldr     r0, [pc, #700]  ; (0x1fff1dc8)
3590    0x1fff1b0c:  ldr     r1, [r0, #0]
3591    0x1fff1b0e:  movs    r3, #64 ; 0x40
3592    0x1fff1b10:  orrs    r1, r3
3593    0x1fff1b12:  str     r1, [r0, #0]
3594    0x1fff1b14:  ldr     r1, [pc, #708]  ; (0x1fff1ddc)
3595    0x1fff1b16:  ldr     r1, [r1, #0]
3596    0x1fff1b18:  subs    r1, #63 ; 0x3f
3597    0x1fff1b1a:  ldr     r1, [r1, #60]   ; 0x3c
3598    0x1fff1b1c:  ands    r1, r2
3599    0x1fff1b1e:  ldr     r2, [r0, #0]
3600    0x1fff1b20:  bics    r2, r3
3601    0x1fff1b22:  str     r2, [r0, #0]
3602    0x1fff1b24:  cmp     r1, #0
3603    0x1fff1b26:  beq.n   0x1fff1b2c
3604    0x1fff1b28:  movs    r0, #9
3605    0x1fff1b2a:  pop     {r4, pc}
3606    0x1fff1b2c:  movs    r0, #0
3607    0x1fff1b2e:  pop     {r4, pc}
3608    0x1fff1b30:  push    {r3, r4, r5, r6, r7, lr}
3609    0x1fff1b32:  mov     r6, r1
3610    0x1fff1b34:  mov     r4, r0
3611    0x1fff1b36:  ldr     r1, [r0, #8]
3612    0x1fff1b38:  ldr     r0, [r0, #4]
3613    0x1fff1b3a:  bl      0x1fff19cc
3614    0x1fff1b3e:  str     r0, [r6, #0]
3615    0x1fff1b40:  cmp     r0, #0
3616    0x1fff1b42:  bne.n   0x1fff1c26
3617    0x1fff1b44:  ldr     r1, [r4, #8]
3618    0x1fff1b46:  ldr     r0, [r4, #4]
3619    0x1fff1b48:  bl      0x1fff1af6
3620    0x1fff1b4c:  str     r0, [r6, #0]
3621    0x1fff1b4e:  cmp     r0, #0
3622    0x1fff1b50:  bne.n   0x1fff1c26
3623    0x1fff1b52:  ldr     r5, [pc, #628]  ; (0x1fff1dc8)
3624    0x1fff1b54:  ldr     r0, [r5, #0]
3625    0x1fff1b56:  movs    r1, #64 ; 0x40
3626    0x1fff1b58:  orrs    r0, r1
3627    0x1fff1b5a:  str     r0, [r5, #0]
3628    0x1fff1b5c:  ldr     r1, [pc, #640]  ; (0x1fff1de0)
3629    0x1fff1b5e:  ldr     r0, [r4, #12]
3630    0x1fff1b60:  ldr     r1, [r1, #0]
3631    0x1fff1b62:  bl      0x1fff18a0
3632    0x1fff1b66:  str     r0, [r5, #28]
3633    0x1fff1b68:  ldr     r1, [pc, #632]  ; (0x1fff1de4)
3634    0x1fff1b6a:  ldr     r0, [r4, #12]
3635    0x1fff1b6c:  ldr     r1, [r1, #0]
3636    0x1fff1b6e:  muls    r0, r1
3637    0x1fff1b70:  lsrs    r0, r0, #9
3638    0x1fff1b72:  adds    r0, r0, #3
3639    0x1fff1b74:  movs    r1, #1
3640    0x1fff1b76:  lsls    r1, r1, #15
3641    0x1fff1b78:  orrs    r0, r1
3642    0x1fff1b7a:  str     r0, [r5, #8]
3643    0x1fff1b7c:  ldr     r7, [r4, #4]
3644    0x1fff1b7e:  ldr     r0, [r4, #8]
3645    0x1fff1b80:  cmp     r7, r0
3646    0x1fff1b82:  bne.n   0x1fff1bb4
3647    0x1fff1b84:  b.n     0x1fff1bbc
3648    0x1fff1b86:  ldr     r1, [r5, #0]
3649    0x1fff1b88:  mov     r0, r5
3650    0x1fff1b8a:  movs    r2, #64 ; 0x40
3651    0x1fff1b8c:  orrs    r1, r2
3652    0x1fff1b8e:  str     r1, [r5, #0]
3653    0x1fff1b90:  ldr     r1, [pc, #572]  ; (0x1fff1dd0)
3654    0x1fff1b92:  lsls    r3, r7, #2
3655    0x1fff1b94:  ldr     r3, [r1, r3]
3656    0x1fff1b96:  lsls    r1, r2, #9
3657    0x1fff1b98:  adds    r1, r3, r1
3658    0x1fff1b9a:  ldr     r3, [r5, #0]
3659    0x1fff1b9c:  bics    r3, r2
3660    0x1fff1b9e:  str     r3, [r5, #0]
3661    0x1fff1ba0:  movs    r2, #1
3662    0x1fff1ba2:  str     r2, [r1, #0]
3663    0x1fff1ba4:  ldr     r1, [pc, #560]  ; (0x1fff1dd8)
3664    0x1fff1ba6:  movs    r3, #0
3665    0x1fff1ba8:  mov     r2, r3
3666    0x1fff1baa:  subs    r1, r1, #2
3667    0x1fff1bac:  str     r5, [sp, #0]
3668    0x1fff1bae:  bl      0x1fff1a62
3669    0x1fff1bb2:  adds    r7, r7, #1
3670    0x1fff1bb4:  ldr     r0, [r4, #8]
3671    0x1fff1bb6:  subs    r0, r0, #1
3672    0x1fff1bb8:  cmp     r0, r7
3673    0x1fff1bba:  bcs.n   0x1fff1b86
3674    0x1fff1bbc:  ldr     r0, [r5, #0]
3675    0x1fff1bbe:  movs    r1, #64 ; 0x40
3676    0x1fff1bc0:  orrs    r0, r1
3677    0x1fff1bc2:  str     r0, [r5, #0]
3678    0x1fff1bc4:  ldr     r0, [r4, #8]
3679    0x1fff1bc6:  lsls    r2, r0, #2
3680    0x1fff1bc8:  ldr     r0, [pc, #516]  ; (0x1fff1dd0)
3681    0x1fff1bca:  ldr     r2, [r0, r2]
3682    0x1fff1bcc:  lsls    r0, r1, #9
3683    0x1fff1bce:  adds    r0, r2, r0
3684    0x1fff1bd0:  ldr     r2, [r5, #0]
3685    0x1fff1bd2:  bics    r2, r1
3686    0x1fff1bd4:  str     r2, [r5, #0]
3687    0x1fff1bd6:  movs    r1, #1
3688    0x1fff1bd8:  str     r1, [r0, #0]
3689    0x1fff1bda:  ldr     r1, [pc, #524]  ; (0x1fff1de8)
3690    0x1fff1bdc:  movs    r0, #7
3691    0x1fff1bde:  str     r0, [r1, #40]   ; 0x28
3692    0x1fff1be0:  ldr     r0, [pc, #520]  ; (0x1fff1dec)
3693    0x1fff1be2:  ldr     r0, [r0, #32]
3694    0x1fff1be4:  ldr     r7, [pc, #524]  ; (0x1fff1df4)
3695    0x1fff1be6:  mov     r12, r0
3696    0x1fff1be8:  ldr     r0, [pc, #516]  ; (0x1fff1df0)
3697    0x1fff1bea:  str     r0, [r7, #16]
3698    0x1fff1bec:  ldr     r1, [pc, #508]  ; (0x1fff1dec)
3699    0x1fff1bee:  movs    r0, #0
3700    0x1fff1bf0:  str     r0, [r1, #32]
3701    0x1fff1bf2:  str     r0, [r7, #16]
3702    0x1fff1bf4:  ldr     r0, [pc, #496]  ; (0x1fff1de8)
3703    0x1fff1bf6:  movs    r3, #0
3704    0x1fff1bf8:  adds    r0, #32
3705    0x1fff1bfa:  str     r0, [sp, #0]
3706    0x1fff1bfc:  mov     r2, r3
3707    0x1fff1bfe:  ldr     r1, [pc, #504]  ; (0x1fff1df8)
3708    0x1fff1c00:  mov     r0, r5
3709    0x1fff1c02:  bl      0x1fff1a62
3710    0x1fff1c06:  ldr     r0, [pc, #488]  ; (0x1fff1df0)
3711    0x1fff1c08:  str     r0, [r7, #16]
3712    0x1fff1c0a:  ldr     r1, [pc, #480]  ; (0x1fff1dec)
3713    0x1fff1c0c:  mov     r0, r12
3714    0x1fff1c0e:  str     r0, [r1, #32]
3715    0x1fff1c10:  movs    r0, #0
3716    0x1fff1c12:  str     r0, [r7, #16]
3717    0x1fff1c14:  movs    r2, #0
3718    0x1fff1c16:  mvns    r2, r2
3719    0x1fff1c18:  ldr     r1, [r4, #8]
3720    0x1fff1c1a:  ldr     r0, [r4, #4]
3721    0x1fff1c1c:  bl      0x1fff1a7e
3722    0x1fff1c20:  str     r0, [r6, #0]
3723    0x1fff1c22:  movs    r0, #0
3724    0x1fff1c24:  str     r0, [r5, #28]
3725    0x1fff1c26:  pop     {r3, r4, r5, r6, r7, pc}
3726    0x1fff1c28:  push    {r4, r5, lr}
3727    0x1fff1c2a:  movs    r5, #1
3728    0x1fff1c2c:  b.n     0x1fff1c40
3729    0x1fff1c2e:  ldmia   r1!, {r4}
3730    0x1fff1c30:  stmia   r0!, {r4}
3731    0x1fff1c32:  lsls    r4, r5, #30
3732    0x1fff1c34:  beq.n   0x1fff1c3a
3733    0x1fff1c36:  b.n     0x1fff1c3e
3734    0x1fff1c38:  adds    r4, r4, #1
3735    0x1fff1c3a:  cmp     r4, r2
3736    0x1fff1c3c:  bcc.n   0x1fff1c38
3737    0x1fff1c3e:  adds    r5, r5, #1
3738    0x1fff1c40:  cmp     r5, r3
3739    0x1fff1c42:  bls.n   0x1fff1c2e
3740    0x1fff1c44:  pop     {r4, r5, pc}
3741    0x1fff1c46:  push    {lr}
3742    0x1fff1c48:  ldr     r2, [pc, #380]  ; (0x1fff1dc8)
3743    0x1fff1c4a:  ldr     r3, [r2, #4]
3744    0x1fff1c4c:  movs    r2, #5
3745    0x1fff1c4e:  bics    r2, r3
3746    0x1fff1c50:  beq.n   0x1fff1c56
3747    0x1fff1c52:  movs    r0, #11
3748    0x1fff1c54:  pop     {pc}
3749    0x1fff1c56:  movs    r3, #64 ; 0x40
3750    0x1fff1c58:  movs    r2, #4
3751    0x1fff1c5a:  bl      0x1fff1c28
3752    0x1fff1c5e:  movs    r0, #0
3753    0x1fff1c60:  pop     {pc}
3754    0x1fff1c62:  push    {r4, r5, r6, r7, lr}
3755    0x1fff1c64:  sub     sp, #20
3756    0x1fff1c66:  mov     r7, r0
3757    0x1fff1c68:  ldr     r0, [r0, #4]
3758    0x1fff1c6a:  str     r0, [sp, #8]
3759    0x1fff1c6c:  ldr     r0, [r7, #8]
3760    0x1fff1c6e:  str     r0, [sp, #4]
3761    0x1fff1c70:  ldr     r0, [r7, #12]
3762    0x1fff1c72:  mov     r5, r1
3763    0x1fff1c74:  movs    r3, #0
3764    0x1fff1c76:  str     r0, [sp, #12]
3765    0x1fff1c78:  movs    r2, #101        ; 0x65
3766    0x1fff1c7a:  add     r1, sp, #12
3767    0x1fff1c7c:  mov     r0, r3
3768    0x1fff1c7e:  bl      0x1fff10a6
3769    0x1fff1c82:  str     r0, [r5, #0]
3770    0x1fff1c84:  cmp     r0, #0
3771    0x1fff1c86:  bne.n   0x1fff1d6e
3772    0x1fff1c88:  movs    r2, #104        ; 0x68
3773    0x1fff1c8a:  add     r1, sp, #8
3774    0x1fff1c8c:  ldr     r3, [sp, #12]
3775    0x1fff1c8e:  bl      0x1fff10a6
3776    0x1fff1c92:  str     r0, [r5, #0]
3777    0x1fff1c94:  cmp     r0, #0
3778    0x1fff1c96:  bne.n   0x1fff1d6e
3779    0x1fff1c98:  movs    r2, #103        ; 0x67
3780    0x1fff1c9a:  add     r1, sp, #4
3781    0x1fff1c9c:  ldr     r3, [sp, #12]
3782    0x1fff1c9e:  bl      0x1fff10a6
3783    0x1fff1ca2:  str     r0, [r5, #0]
3784    0x1fff1ca4:  cmp     r0, #0
3785    0x1fff1ca6:  bne.n   0x1fff1d6e
3786    0x1fff1ca8:  str     r0, [sp, #16]
3787    0x1fff1caa:  movs    r0, #1
3788    0x1fff1cac:  ldr     r1, [sp, #8]
3789    0x1fff1cae:  lsls    r0, r0, #15
3790    0x1fff1cb0:  adds    r0, r1, r0
3791    0x1fff1cb2:  ldr     r6, [pc, #276]  ; (0x1fff1dc8)
3792    0x1fff1cb4:  str     r0, [sp, #8]
3793    0x1fff1cb6:  ldr     r0, [r6, #0]
3794    0x1fff1cb8:  movs    r1, #64 ; 0x40
3795    0x1fff1cba:  orrs    r0, r1
3796    0x1fff1cbc:  str     r0, [r6, #0]
3797    0x1fff1cbe:  movs    r4, #0
3798    0x1fff1cc0:  ldr     r0, [pc, #272]  ; (0x1fff1dd4)
3799    0x1fff1cc2:  ldr     r1, [pc, #264]  ; (0x1fff1dcc)
3800    0x1fff1cc4:  b.n     0x1fff1cec
3801    0x1fff1cc6:  lsls    r3, r4, #2
3802    0x1fff1cc8:  ldr     r3, [r0, r3]
3803    0x1fff1cca:  ldr     r2, [r7, #4]
3804    0x1fff1ccc:  cmp     r2, r3
3805    0x1fff1cce:  bcs.n   0x1fff1cea
3806    0x1fff1cd0:  mov     r1, r2
3807    0x1fff1cd2:  ldr     r2, [r7, #12]
3808    0x1fff1cd4:  adds    r1, r1, r2
3809    0x1fff1cd6:  lsls    r2, r4, #2
3810    0x1fff1cd8:  ldr     r0, [r0, r2]
3811    0x1fff1cda:  adds    r0, r0, #1
3812    0x1fff1cdc:  cmp     r1, r0
3813    0x1fff1cde:  bhi.n   0x1fff1ce4
3814    0x1fff1ce0:  str     r4, [sp, #16]
3815    0x1fff1ce2:  b.n     0x1fff1cf2
3816    0x1fff1ce4:  adds    r0, r4, #1
3817    0x1fff1ce6:  str     r0, [sp, #16]
3818    0x1fff1ce8:  b.n     0x1fff1cf2
3819    0x1fff1cea:  adds    r4, r4, #1
3820    0x1fff1cec:  ldr     r2, [r1, #0]
3821    0x1fff1cee:  cmp     r4, r2
3822    0x1fff1cf0:  bls.n   0x1fff1cc6
3823    0x1fff1cf2:  ldr     r1, [r6, #0]
3824    0x1fff1cf4:  movs    r0, #64 ; 0x40
3825    0x1fff1cf6:  bics    r1, r0
3826    0x1fff1cf8:  str     r1, [r6, #0]
3827    0x1fff1cfa:  mov     r0, r4
3828    0x1fff1cfc:  ldr     r1, [sp, #16]
3829    0x1fff1cfe:  bl      0x1fff1af6
3830    0x1fff1d02:  str     r0, [r5, #0]
3831    0x1fff1d04:  cmp     r0, #0
3832    0x1fff1d06:  bne.n   0x1fff1d6e
3833    0x1fff1d08:  ldr     r1, [r6, #0]
3834    0x1fff1d0a:  movs    r0, #64 ; 0x40
3835    0x1fff1d0c:  orrs    r1, r0
3836    0x1fff1d0e:  str     r1, [r6, #0]
3837    0x1fff1d10:  ldr     r1, [pc, #204]  ; (0x1fff1de0)
3838    0x1fff1d12:  ldr     r0, [r7, #16]
3839    0x1fff1d14:  ldr     r1, [r1, #0]
3840    0x1fff1d16:  bl      0x1fff18a0
3841    0x1fff1d1a:  str     r0, [r6, #28]
3842    0x1fff1d1c:  ldr     r1, [pc, #220]  ; (0x1fff1dfc)
3843    0x1fff1d1e:  ldr     r0, [r7, #16]
3844    0x1fff1d20:  ldr     r1, [r1, #0]
3845    0x1fff1d22:  muls    r0, r1
3846    0x1fff1d24:  lsrs    r7, r0, #9
3847    0x1fff1d26:  adds    r7, r7, #3
3848    0x1fff1d28:  movs    r0, #1
3849    0x1fff1d2a:  lsls    r0, r0, #15
3850    0x1fff1d2c:  ldr     r1, [r6, #0]
3851    0x1fff1d2e:  orrs    r7, r0
3852    0x1fff1d30:  movs    r0, #64 ; 0x40
3853    0x1fff1d32:  bics    r1, r0
3854    0x1fff1d34:  str     r1, [r6, #0]
3855    0x1fff1d36:  ldr     r1, [pc, #180]  ; (0x1fff1dec)
3856    0x1fff1d38:  ldr     r0, [r1, #32]
3857    0x1fff1d3a:  ldr     r3, [pc, #184]  ; (0x1fff1df4)
3858    0x1fff1d3c:  ldr     r2, [pc, #176]  ; (0x1fff1df0)
3859    0x1fff1d3e:  mov     r12, r0
3860    0x1fff1d40:  str     r2, [r3, #16]
3861    0x1fff1d42:  movs    r0, #0
3862    0x1fff1d44:  str     r0, [r1, #32]
3863    0x1fff1d46:  str     r0, [r3, #16]
3864    0x1fff1d48:  ldr     r0, [sp, #12]
3865    0x1fff1d4a:  b.n     0x1fff1da6
3866    0x1fff1d4c:  movs    r3, #0
3867    0x1fff1d4e:  mov     r0, r6
3868    0x1fff1d50:  mov     r2, r3
3869    0x1fff1d52:  movs    r1, #7
3870    0x1fff1d54:  str     r6, [sp, #0]
3871    0x1fff1d56:  bl      0x1fff1a62
3872    0x1fff1d5a:  ldr     r1, [sp, #4]
3873    0x1fff1d5c:  ldr     r0, [sp, #8]
3874    0x1fff1d5e:  bl      0x1fff1c46
3875    0x1fff1d62:  cmp     r0, #0
3876    0x1fff1d64:  beq.n   0x1fff1d72
3877    0x1fff1d66:  movs    r0, #11
3878    0x1fff1d68:  str     r0, [r5, #0]
3879    0x1fff1d6a:  movs    r0, #0
3880    0x1fff1d6c:  str     r0, [r6, #28]
3881    0x1fff1d6e:  add     sp, #20
3882    0x1fff1d70:  pop     {r4, r5, r6, r7, pc}
3883    0x1fff1d72:  ldr     r1, [pc, #116]  ; (0x1fff1de8)
3884    0x1fff1d74:  movs    r0, #7
3885    0x1fff1d76:  str     r0, [r1, #40]   ; 0x28
3886    0x1fff1d78:  mov     r0, r6
3887    0x1fff1d7a:  str     r7, [r6, #8]
3888    0x1fff1d7c:  ldr     r1, [pc, #104]  ; (0x1fff1de8)
3889    0x1fff1d7e:  movs    r3, #0
3890    0x1fff1d80:  adds    r1, #32
3891    0x1fff1d82:  str     r1, [sp, #0]
3892    0x1fff1d84:  ldr     r1, [pc, #112]  ; (0x1fff1df8)
3893    0x1fff1d86:  mov     r2, r3
3894    0x1fff1d88:  adds    r1, r1, #2
3895    0x1fff1d8a:  bl      0x1fff1a62
3896    0x1fff1d8e:  ldr     r0, [sp, #8]
3897    0x1fff1d90:  adds    r0, #255        ; 0xff
3898    0x1fff1d92:  adds    r0, #1
3899    0x1fff1d94:  str     r0, [sp, #8]
3900    0x1fff1d96:  ldr     r0, [sp, #4]
3901    0x1fff1d98:  adds    r0, #255        ; 0xff
3902    0x1fff1d9a:  adds    r0, #1
3903    0x1fff1d9c:  str     r0, [sp, #4]
3904    0x1fff1d9e:  ldr     r0, [sp, #12]
3905    0x1fff1da0:  subs    r0, #255        ; 0xff
3906    0x1fff1da2:  subs    r0, #1
3907    0x1fff1da4:  str     r0, [sp, #12]
3908    0x1fff1da6:  cmp     r0, #0
3909    0x1fff1da8:  bne.n   0x1fff1d4c
3910    0x1fff1daa:  ldr     r0, [pc, #72]   ; (0x1fff1df4)
3911    0x1fff1dac:  ldr     r1, [pc, #64]   ; (0x1fff1df0)
3912    0x1fff1dae:  str     r1, [r0, #16]
3913    0x1fff1db0:  ldr     r2, [pc, #56]   ; (0x1fff1dec)
3914    0x1fff1db2:  mov     r1, r12
3915    0x1fff1db4:  str     r1, [r2, #32]
3916    0x1fff1db6:  movs    r5, #0
3917    0x1fff1db8:  str     r5, [r0, #16]
3918    0x1fff1dba:  subs    r2, r5, #1
3919    0x1fff1dbc:  mov     r0, r4
3920    0x1fff1dbe:  ldr     r1, [sp, #16]
3921    0x1fff1dc0:  bl      0x1fff1a7e
3922    0x1fff1dc4:  str     r5, [r6, #28]
3923    0x1fff1dc6:  b.n     0x1fff1d6e
3924    0x1fff1dc8:  stmia   r0!, {}
3925    0x1fff1dca:  ands    r3, r0
3926    0x1fff1dcc:  lsls    r0, r0, #17
3927    0x1fff1dce:  movs    r0, r0
3928    0x1fff1dd0:  lsls    r0, r2, #18
3929    0x1fff1dd2:  movs    r0, r0
3930    0x1fff1dd4:  lsls    r0, r4, #20
3931    0x1fff1dd6:  movs    r0, r0
3932    0x1fff1dd8:  strh    r7, [r0, #4]
3933    0x1fff1dda:  movs    r0, r0
3934    0x1fff1ddc:  lsls    r4, r7, #16
3935    0x1fff1dde:  movs    r0, r0
3936    0x1fff1de0:  lsls    r4, r2, #17
3937    0x1fff1de2:  movs    r0, r0
3938    0x1fff1de4:  lsls    r0, r2, #17
3939    0x1fff1de6:  movs    r0, r0
3940    0x1fff1de8:  ldmia   r7, {r6, r7}
3941    0x1fff1dea:  ands    r3, r0
3942    0x1fff1dec:  strh    r0, [r0, #10]
3943    0x1fff1dee:  ands    r4, r0
3944    0x1fff1df0:  ldrsb   r0, [r7, r1]
3945    0x1fff1df2:  asrs    r4, r6, #8
3946    0x1fff1df4:  strh    r0, [r0, #30]
3947    0x1fff1df6:  ands    r4, r0
3948    0x1fff1df8:  asrs    r1, r0, #2
3949    0x1fff1dfa:  movs    r0, r0
3950    0x1fff1dfc:  lsls    r4, r1, #17
3951    0x1fff1dfe:  movs    r0, r0
3952    0x1fff1e00:  push    {r4, r5, r6, lr}
3953    0x1fff1e02:  mov     r6, r1
3954    0x1fff1e04:  mov     r4, r0
3955    0x1fff1e06:  ldr     r1, [r0, #8]
3956    0x1fff1e08:  ldr     r0, [r0, #4]
3957    0x1fff1e0a:  bl      0x1fff19cc
3958    0x1fff1e0e:  str     r0, [r6, #0]
3959    0x1fff1e10:  cmp     r0, #0
3960    0x1fff1e12:  bne.n   0x1fff1e36
3961    0x1fff1e14:  ldr     r5, [pc, #32]   ; (0x1fff1e38)
3962    0x1fff1e16:  ldr     r0, [r5, #28]
3963    0x1fff1e18:  cmp     r0, #0
3964    0x1fff1e1a:  bne.n   0x1fff1e20
3965    0x1fff1e1c:  movs    r0, #64 ; 0x40
3966    0x1fff1e1e:  str     r0, [r5, #28]
3967    0x1fff1e20:  movs    r2, #0
3968    0x1fff1e22:  ldr     r1, [r4, #8]
3969    0x1fff1e24:  ldr     r0, [r4, #4]
3970    0x1fff1e26:  bl      0x1fff1a7e
3971    0x1fff1e2a:  str     r0, [r6, #0]
3972    0x1fff1e2c:  ldr     r0, [r5, #28]
3973    0x1fff1e2e:  cmp     r0, #64 ; 0x40
3974    0x1fff1e30:  bne.n   0x1fff1e36
3975    0x1fff1e32:  movs    r0, #0
3976    0x1fff1e34:  str     r0, [r5, #28]
3977    0x1fff1e36:  pop     {r4, r5, r6, pc}
3978    0x1fff1e38:  stmia   r0!, {}
3979    0x1fff1e3a:  ands    r3, r0
3980    0x1fff1e3c:  push    {r0, r1, r2, r4, r5, r6, r7, lr}
3981    0x1fff1e3e:  sub     sp, #8
3982    0x1fff1e40:  ldr     r0, [r1, #4]
3983    0x1fff1e42:  str     r0, [sp, #0]
3984    0x1fff1e44:  ldr     r5, [r1, #12]
3985    0x1fff1e46:  ldr     r7, [r1, #8]
3986    0x1fff1e48:  mov     r4, r1
3987    0x1fff1e4a:  mov     r6, r2
3988    0x1fff1e4c:  mov     r2, r5
3989    0x1fff1e4e:  mov     r1, r7
3990    0x1fff1e50:  bl      0x1fff1198
3991    0x1fff1e54:  str     r0, [r6, #0]
3992    0x1fff1e56:  cmp     r0, #0
3993    0x1fff1e58:  bne.n   0x1fff1e74
3994    0x1fff1e5a:  cmp     r5, #0
3995    0x1fff1e5c:  beq.n   0x1fff1e74
3996    0x1fff1e5e:  ldr     r0, [r4, #16]
3997    0x1fff1e60:  bl      0x1fff1200
3998    0x1fff1e64:  ldr     r0, [sp, #8]
3999    0x1fff1e66:  mov     r2, r5
4000    0x1fff1e68:  cmp     r0, #0
4001    0x1fff1e6a:  ldr     r0, [sp, #0]
4002    0x1fff1e6c:  mov     r1, r7
4003    0x1fff1e6e:  beq.n   0x1fff1e78
4004    0x1fff1e70:  bl      0x1fff1306
4005    0x1fff1e74:  add     sp, #20
4006    0x1fff1e76:  pop     {r4, r5, r6, r7, pc}
4007    0x1fff1e78:  bl      0x1fff138c
4008    0x1fff1e7c:  b.n     0x1fff1e74
4009    0x1fff1e7e:  push    {r4, lr}
4010    0x1fff1e80:  ldr     r1, [pc, #136]  ; (0x1fff1f0c)
4011    0x1fff1e82:  movs    r0, #0
4012    0x1fff1e84:  str     r0, [r1, #0]
4013    0x1fff1e86:  bl      0x1fff02e4
4014    0x1fff1e8a:  pop     {r4, pc}
4015    0x1fff1e8c:  push    {r3, r4, r5, r6, r7, lr}
4016    0x1fff1e8e:  mov     r5, r1
4017    0x1fff1e90:  mov     r1, r0
4018    0x1fff1e92:  mov     r4, r0
4019    0x1fff1e94:  movs    r3, #0
4020    0x1fff1e96:  movs    r2, #100        ; 0x64
4021    0x1fff1e98:  adds    r1, #12
4022    0x1fff1e9a:  mov     r0, r3
4023    0x1fff1e9c:  bl      0x1fff10a6
4024    0x1fff1ea0:  str     r0, [r5, #0]
4025    0x1fff1ea2:  cmp     r0, #0
4026    0x1fff1ea4:  bne.n   0x1fff1ef8
4027    0x1fff1ea6:  movs    r2, #102        ; 0x66
4028    0x1fff1ea8:  adds    r1, r4, #4
4029    0x1fff1eaa:  ldr     r3, [r4, #12]
4030    0x1fff1eac:  bl      0x1fff10a6
4031    0x1fff1eb0:  str     r0, [r5, #0]
4032    0x1fff1eb2:  cmp     r0, #0
4033    0x1fff1eb4:  bne.n   0x1fff1ef8
4034    0x1fff1eb6:  mov     r1, r4
4035    0x1fff1eb8:  movs    r2, #102        ; 0x66
4036    0x1fff1eba:  adds    r1, #8
4037    0x1fff1ebc:  ldr     r3, [r4, #12]
4038    0x1fff1ebe:  bl      0x1fff10a6
4039    0x1fff1ec2:  str     r0, [r5, #0]
4040    0x1fff1ec4:  cmp     r0, #0
4041    0x1fff1ec6:  bne.n   0x1fff1ef8
4042    0x1fff1ec8:  movs    r3, #1
4043    0x1fff1eca:  ldr     r2, [r4, #4]
4044    0x1fff1ecc:  lsls    r3, r3, #15
4045    0x1fff1ece:  cmp     r2, r3
4046    0x1fff1ed0:  bcs.n   0x1fff1ed4
4047    0x1fff1ed2:  adds    r2, r2, r3
4048    0x1fff1ed4:  ldr     r0, [r4, #8]
4049    0x1fff1ed6:  cmp     r0, r3
4050    0x1fff1ed8:  bcs.n   0x1fff1edc
4051    0x1fff1eda:  adds    r0, r0, r3
4052    0x1fff1edc:  ldr     r1, [r4, #12]
4053    0x1fff1ede:  b.n     0x1fff1f00
4054    0x1fff1ee0:  ldr     r6, [r0, #0]
4055    0x1fff1ee2:  ldr     r7, [r2, #0]
4056    0x1fff1ee4:  cmp     r6, r7
4057    0x1fff1ee6:  beq.n   0x1fff1efa
4058    0x1fff1ee8:  movs    r0, #10
4059    0x1fff1eea:  str     r0, [r5, #0]
4060    0x1fff1eec:  ldr     r0, [r4, #4]
4061    0x1fff1eee:  cmp     r0, r3
4062    0x1fff1ef0:  bcs.n   0x1fff1ef4
4063    0x1fff1ef2:  subs    r2, r2, r3
4064    0x1fff1ef4:  subs    r0, r2, r0
4065    0x1fff1ef6:  str     r0, [r5, #4]
4066    0x1fff1ef8:  pop     {r3, r4, r5, r6, r7, pc}
4067    0x1fff1efa:  adds    r0, r0, #4
4068    0x1fff1efc:  adds    r2, r2, #4
4069    0x1fff1efe:  subs    r1, r1, #4
4070    0x1fff1f00:  cmp     r1, #0
4071    0x1fff1f02:  bne.n   0x1fff1ee0
4072    0x1fff1f04:  movs    r0, #0
4073    0x1fff1f06:  str     r0, [r5, #0]
4074    0x1fff1f08:  pop     {r3, r4, r5, r6, r7, pc}
4075
4076 0x1fff1f00:     0xd1ed2900      0x60282000      0x0000bdf8      0x40048000
4077 0x1fff1f10:     0x636e7953      0x6e6f7268      0x64657a69      0xffffff00
4078 0x1fff1f20:     0x00005a5a      0x74004b4f      0x00547345      0x45534552
4079 0x1fff1f30:     0xff00444e      0x1fff13dd      0x1fff161d      0x1fff1601
4080 0x1fff1f40:     0x1fff1617      0x1fff173d      0x1fff1743      0x1fff171d
4081 0x1fff1f50:     0x1fff172d      0xffffffff      0xffffffff      0xffffffff
4082 0x1fff1f60:     0x1fff1f34      0x1fff1f44      0xffffffff      0xffffffff
4083 0x1fff1f70:     0xffffffff      0x00002000
4084
4085    0x1fff1f0a:  movs    r0, r0
4086    0x1fff1f0c:  strh    r0, [r0, #0]
4087    0x1fff1f0e:  ands    r4, r0
4088    0x1fff1f10:  ldrb    r3, [r2, #5]
4089    0x1fff1f12:  str     r6, [r5, #52]   ; 0x34
4090    0x1fff1f14:  strb    r0, [r5, #9]
4091    0x1fff1f16:  ldr     r7, [r5, #100]  ; 0x64
4092    0x1fff1f18:  ldrb    r1, [r5, #9]
4093    0x1fff1f1a:  str     r5, [r4, #68]   ; 0x44
4094    0x1fff1f1c:  vmaxnm.f32      <illegal reg q7.5>, q8, <illegal reg q15.5>
4095    0x1fff1f20:  ldrh    r2, [r3, r1]
4096    0x1fff1f22:  movs    r0, r0
4097    0x1fff1f24:  ldr     r3, [pc, #316]  ; (0x1fff2064)
4098    0x1fff1f26:  strb    r0, [r0, #16]
4099    0x1fff1f28:  strb    r5, [r0, #13]
4100    0x1fff1f2a:  lsls    r4, r2, #1
4101    0x1fff1f2c:  cmp     r2, r10
4102    0x1fff1f2e:  cmp     r3, r10
4103    0x1fff1f30:  add     r6, r9
4104    0x1fff1f32:  vcge.u8 <illegal reg q0.5>, q8, <illegal reg q6.5>
4105    0x1fff1f36:  subs    r7, r7, #7
4106    0x1fff1f38:  asrs    r5, r3, #24
4107    0x1fff1f3a:  subs    r7, r7, #7
4108    0x1fff1f3c:  asrs    r1, r0, #24
4109    0x1fff1f3e:  subs    r7, r7, #7
4110    0x1fff1f40:  asrs    r7, r2, #24
4111    0x1fff1f42:  subs    r7, r7, #7
4112    0x1fff1f44:  asrs    r5, r7, #28
4113    0x1fff1f46:  subs    r7, r7, #7
4114    0x1fff1f48:  asrs    r3, r0, #29
4115    0x1fff1f4a:  subs    r7, r7, #7
4116    0x1fff1f4c:  asrs    r5, r3, #28
4117    0x1fff1f4e:  subs    r7, r7, #7
4118    0x1fff1f50:  asrs    r5, r5, #28
4119    0x1fff1f52:  subs    r7, r7, #7
4120    0x1fff1f54:                  ; <UNDEFINED> instruction: 0xffffffff
4121    0x1fff1f58:                  ; <UNDEFINED> instruction: 0xffffffff
4122    0x1fff1f5c:                  ; <UNDEFINED> instruction: 0xffffffff
4123    0x1fff1f60:  subs    r4, r6, #4
4124    0x1fff1f62:  subs    r7, r7, #7
4125    0x1fff1f64:  subs    r4, r0, #5
4126    0x1fff1f66:  subs    r7, r7, #7
4127    0x1fff1f68:                  ; <UNDEFINED> instruction: 0xffffffff
4128    0x1fff1f6c:                  ; <UNDEFINED> instruction: 0xffffffff
4129    0x1fff1f70:                  ; <UNDEFINED> instruction: 0xffffffff
4130    0x1fff1f74:  movs    r0, #0
4131    0x1fff1f76:  movs    r0, r0
4132    0x1fff1f78:  movs    r0, #16
4133    0x1fff1f7a:  movs    r0, r2
4134    0x1fff1f7c:  movs    r0, r2
4135    0x1fff1f7e:  movs    r0, r2
4136    0x1fff1f80:  movs    r0, r0
4137    0x1fff1f82:  movs    r0, r0
4138    0x1fff1f84:  movs    r0, r0
4139    0x1fff1f86:  movs    r0, r0
4140    0x1fff1f88:  strh    r0, [r0, #0]
4141    0x1fff1f8a:  stmia   r0!, {}
4142    0x1fff1f8c:                  ; <UNDEFINED> instruction: 0xffffffff
4143    0x1fff1f90:                  ; <UNDEFINED> instruction: 0xffffffff
4144    0x1fff1f94:                  ; <UNDEFINED> instruction: 0xffffffff
4145    0x1fff1f98:                  ; <UNDEFINED> instruction: 0xffffffff
4146    0x1fff1f9c:                  ; <UNDEFINED> instruction: 0xffffffff
4147    0x1fff1fa0:                  ; <UNDEFINED> instruction: 0xffffffff
4148    0x1fff1fa4:                  ; <UNDEFINED> instruction: 0xffffffff
4149    0x1fff1fa8:                  ; <UNDEFINED> instruction: 0xffffffff
4150    0x1fff1fac:                  ; <UNDEFINED> instruction: 0xffffffff
4151    0x1fff1fb0:                  ; <UNDEFINED> instruction: 0xffffffff
4152    0x1fff1fb4:                  ; <UNDEFINED> instruction: 0xffffffff
4153    0x1fff1fb8:                  ; <UNDEFINED> instruction: 0xffffffff
4154    0x1fff1fbc:                  ; <UNDEFINED> instruction: 0xffffffff
4155    0x1fff1fc0:                  ; <UNDEFINED> instruction: 0xffffffff
4156    0x1fff1fc4:                  ; <UNDEFINED> instruction: 0xffffffff
4157    0x1fff1fc8:                  ; <UNDEFINED> instruction: 0xffffffff
4158    0x1fff1fcc:                  ; <UNDEFINED> instruction: 0xffffffff
4159    0x1fff1fd0:                  ; <UNDEFINED> instruction: 0xffffffff
4160    0x1fff1fd4:                  ; <UNDEFINED> instruction: 0xffffffff
4161    0x1fff1fd8:                  ; <UNDEFINED> instruction: 0xffffffff
4162    0x1fff1fdc:                  ; <UNDEFINED> instruction: 0xffffffff
4163    0x1fff1fe0:                  ; <UNDEFINED> instruction: 0xffffffff
4164    0x1fff1fe4:                  ; <UNDEFINED> instruction: 0xffffffff
4165    0x1fff1fe8:                  ; <UNDEFINED> instruction: 0xffffffff
4166    0x1fff1fec:                  ; <UNDEFINED> instruction: 0xffffffff
4167
4168 0x1fff1ff0:     0xf7ffb510      0xbd10fc6b      0x1fff1f54      0xffffffff
4169
4170    0x1fff1ff0:  push    {r4, lr}
4171    0x1fff1ff2:  bl      0x1fff18cc
4172    0x1fff1ff6:  pop     {r4, pc}
4173    0x1fff1ff8:  subs    r4, r2, #5
4174    0x1fff1ffa:  subs    r7, r7, #7
4175    0x1fff1ffc:                  ; <UNDEFINED> instruction: 0xffffffff