original source from gpsp09-2xb_src.tar.bz2
[gpsp.git] / gp2x / video.S
1   .file "video.c"
2   .text
3   .align  2
4   .global render_scanline_text_base_normal
5   .type render_scanline_text_base_normal, %function
6 render_scanline_text_base_normal:
7   @ args = 0, pretend = 0, frame = 8
8   @ frame_needed = 0, uses_anonymous_args = 0
9   ldr ip, .L516
10   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
11   add r5, ip, r0, asl #2
12   ldrh  lr, [r5, #18]
13   ldrh  r4, [ip, #6]
14   add ip, ip, r0, asl #1
15   add r4, r4, lr
16   mov r7, r4, asl #23
17   ldrh  r6, [ip, #8]
18   mov r7, r7, lsr #23
19   ldrh  r0, [r5, #16]
20   cmp r7, #255
21   movls lr, #0
22   movhi lr, #1
23   mov r5, r6, lsr #14
24   rsb fp, r1, r2
25   ldr r2, .L516+4
26   ands  lr, lr, r5, lsr #1
27   add r8, r3, r1, asl #1
28   mov ip, r6, asl #3
29   subne r3, r7, #256
30   ldr r9, .L516+8
31   ldr r2, [r2, r5, asl #2]
32   movne r3, r3, lsr #3
33   moveq r3, r4, asl #3
34   add r0, r0, r1
35   and ip, ip, #63488
36   addne r3, r3, r2, lsr #3
37   andeq r3, r3, #1984
38   add ip, ip, r9
39   mov r0, r0, asl #23
40   addne r4, ip, r3, asl #6
41   addeq r4, ip, r3
42   mov r0, r0, lsr #23
43   tst r5, #1
44   andeq r0, r0, #255
45   sub sp, sp, #8
46   moveq r3, r0, lsr #3
47   addeq sl, r4, r3, asl #1
48   streq r4, [sp, #0]
49   beq .L9
50   cmp r0, #255
51   subhi r0, r0, #256
52   movhi r3, r0, lsr #3
53   movls r3, r0, lsr #3
54   addhi r3, r4, r3, asl #1
55   addls sl, r4, r3, asl #1
56   addls r4, r4, #2048
57   addhi sl, r3, #2048
58   strhi r4, [sp, #0]
59   strls r4, [sp, #0]
60 .L9:
61   ands  r5, r6, #128
62   beq .L10
63   and r3, r7, #7
64   mov r2, r6, asl #12
65   and r1, r0, #255
66   mov r3, r3, asl #3
67   and r2, r2, #49152
68   add r2, r2, r3
69   rsb r4, r1, #256
70   mov r3, r3, asl #1
71   rsb r3, r3, #56
72   cmp fp, r4
73   add r9, r2, r9
74   str r3, [sp, #4]
75   and r0, r0, #7
76   bls .L487
77   cmp r0, #0
78   moveq ip, r0
79   bne .L488
80 .L100:
81   rsb r3, ip, r4
82   movs  r7, r3, lsr #3
83   beq .L124
84   ldr lr, .L516+12
85   mov r5, r8
86   mov r6, #0
87   b .L126
88 .L490:
89   ldr r0, [ip, #4]
90   ldr ip, [ip, #0]
91   and r1, r0, #255
92   mov r1, r1, asl #1
93   ldrh  r1, [r1, lr]
94   mov r3, r0, lsr #8
95   and r3, r3, #255
96   strh  r1, [r5, #6]  @ movhi
97   mov r3, r3, asl #1
98   ldrh  r3, [r3, lr]
99   mov r2, r0, lsr #16
100   and r2, r2, #255
101   strh  r3, [r5, #4]  @ movhi
102   mov r2, r2, asl #1
103   ldrh  r2, [r2, lr]
104   mov r0, r0, lsr #24
105   strh  r2, [r5, #2]  @ movhi
106   mov r0, r0, asl #1
107   ldrh  r0, [r0, lr]
108   and r1, ip, #255
109   strh  r0, [r5, #0]  @ movhi
110   mov r1, r1, asl #1
111   ldrh  r1, [r1, lr]
112   mov r2, ip, lsr #8
113   and r2, r2, #255
114   strh  r1, [r5, #14] @ movhi
115   mov r2, r2, asl #1
116   ldrh  r2, [r2, lr]
117   mov r3, ip, lsr #16
118   and r3, r3, #255
119   strh  r2, [r5, #12] @ movhi
120   mov r3, r3, asl #1
121   ldrh  r3, [r3, lr]
122   mov ip, ip, lsr #24
123   strh  r3, [r5, #10] @ movhi
124   mov ip, ip, asl #1
125   ldrh  ip, [ip, lr]
126   add r6, r6, #1
127   cmp r7, r6
128   strh  ip, [r5, #8]  @ movhi
129   add sl, sl, #2
130   add r5, r5, #16
131   beq .L489
132 .L126:
133   ldrh  r2, [sl, #0]
134   mov r3, r2, asl #22
135   mov r3, r3, lsr #22
136   tst r2, #2048
137   add ip, r9, r3, asl #6
138   ldrne r3, [sp, #4]
139   addne ip, ip, r3
140   tst r2, #1024
141   bne .L490
142   ldmia ip, {r0, ip}  @ phole ldm
143   and r1, r0, #255
144   mov r1, r1, asl #1
145   ldrh  r1, [r1, lr]
146   mov r3, r0, lsr #8
147   and r3, r3, #255
148   strh  r1, [r5, #0]  @ movhi
149   mov r3, r3, asl #1
150   ldrh  r3, [r3, lr]
151   mov r2, r0, lsr #16
152   and r2, r2, #255
153   strh  r3, [r5, #2]  @ movhi
154   mov r2, r2, asl #1
155   ldrh  r2, [r2, lr]
156   mov r0, r0, lsr #24
157   strh  r2, [r5, #4]  @ movhi
158   mov r0, r0, asl #1
159   ldrh  r0, [r0, lr]
160   and r1, ip, #255
161   strh  r0, [r5, #6]  @ movhi
162   mov r1, r1, asl #1
163   ldrh  r1, [r1, lr]
164   mov r2, ip, lsr #8
165   and r2, r2, #255
166   strh  r1, [r5, #8]  @ movhi
167   mov r2, r2, asl #1
168   ldrh  r2, [r2, lr]
169   mov r3, ip, lsr #16
170   and r3, r3, #255
171   strh  r2, [r5, #10] @ movhi
172   mov r3, r3, asl #1
173   ldrh  r3, [r3, lr]
174   mov ip, ip, lsr #24
175   strh  r3, [r5, #12] @ movhi
176   mov ip, ip, asl #1
177   ldrh  ip, [ip, lr]
178   add r6, r6, #1
179   cmp r7, r6
180   strh  ip, [r5, #14] @ movhi
181   add sl, sl, #2
182   add r5, r5, #16
183   bne .L126
184 .L489:
185   add r8, r8, r7, asl #4
186 .L124:
187   rsb sl, r4, fp
188   movs  r4, sl, lsr #3
189   ldreq r3, [sp, #0]
190   beq .L136
191   ldr lr, .L516+12
192   ldr r6, [sp, #0]
193   mov r5, r8
194   mov r7, #0
195   b .L137
196 .L492:
197   ldr r0, [ip, #4]
198   ldr ip, [ip, #0]
199   and r1, r0, #255
200   mov r1, r1, asl #1
201   ldrh  r1, [r1, lr]
202   mov r3, r0, lsr #8
203   and r3, r3, #255
204   strh  r1, [r5, #6]  @ movhi
205   mov r3, r3, asl #1
206   ldrh  r3, [r3, lr]
207   mov r2, r0, lsr #16
208   and r2, r2, #255
209   strh  r3, [r5, #4]  @ movhi
210   mov r2, r2, asl #1
211   ldrh  r2, [r2, lr]
212   mov r0, r0, lsr #24
213   strh  r2, [r5, #2]  @ movhi
214   mov r0, r0, asl #1
215   ldrh  r0, [r0, lr]
216   and r1, ip, #255
217   strh  r0, [r5, #0]  @ movhi
218   mov r1, r1, asl #1
219   ldrh  r1, [r1, lr]
220   mov r2, ip, lsr #8
221   and r2, r2, #255
222   strh  r1, [r5, #14] @ movhi
223   mov r2, r2, asl #1
224   ldrh  r2, [r2, lr]
225   mov r3, ip, lsr #16
226   and r3, r3, #255
227   strh  r2, [r5, #12] @ movhi
228   mov r3, r3, asl #1
229   ldrh  r3, [r3, lr]
230   mov ip, ip, lsr #24
231   strh  r3, [r5, #10] @ movhi
232   mov ip, ip, asl #1
233   ldrh  ip, [ip, lr]
234   add r7, r7, #1
235   cmp r4, r7
236   strh  ip, [r5, #8]  @ movhi
237   add r6, r6, #2
238   add r5, r5, #16
239   beq .L491
240 .L137:
241   ldrh  r2, [r6, #0]
242   mov r3, r2, asl #22
243   mov r3, r3, lsr #22
244   tst r2, #2048
245   add ip, r9, r3, asl #6
246   ldrne r3, [sp, #4]
247   addne ip, ip, r3
248   tst r2, #1024
249   bne .L492
250   ldmia ip, {r0, ip}  @ phole ldm
251   and r1, r0, #255
252   mov r1, r1, asl #1
253   ldrh  r1, [r1, lr]
254   mov r3, r0, lsr #8
255   and r3, r3, #255
256   strh  r1, [r5, #0]  @ movhi
257   mov r3, r3, asl #1
258   ldrh  r3, [r3, lr]
259   mov r2, r0, lsr #16
260   and r2, r2, #255
261   strh  r3, [r5, #2]  @ movhi
262   mov r2, r2, asl #1
263   ldrh  r2, [r2, lr]
264   mov r0, r0, lsr #24
265   strh  r2, [r5, #4]  @ movhi
266   mov r0, r0, asl #1
267   ldrh  r0, [r0, lr]
268   and r1, ip, #255
269   strh  r0, [r5, #6]  @ movhi
270   mov r1, r1, asl #1
271   ldrh  r1, [r1, lr]
272   mov r2, ip, lsr #8
273   and r2, r2, #255
274   strh  r1, [r5, #8]  @ movhi
275   mov r2, r2, asl #1
276   ldrh  r2, [r2, lr]
277   mov r3, ip, lsr #16
278   and r3, r3, #255
279   strh  r2, [r5, #10] @ movhi
280   mov r3, r3, asl #1
281   ldrh  r3, [r3, lr]
282   mov ip, ip, lsr #24
283   strh  r3, [r5, #12] @ movhi
284   mov ip, ip, asl #1
285   ldrh  ip, [ip, lr]
286   add r7, r7, #1
287   cmp r4, r7
288   strh  ip, [r5, #14] @ movhi
289   add r6, r6, #2
290   add r5, r5, #16
291   bne .L137
292 .L491:
293   ldr r2, [sp, #0]
294   add r8, r8, r4, asl #4
295   add r3, r2, r4, asl #1
296 .L136:
297   ands  r5, sl, #7
298   beq .L431
299   ldrh  r4, [r3, #0]
300   mov r3, r4, asl #22
301   mov r3, r3, lsr #22
302   tst r4, #2048
303   add ip, r9, r3, asl #6
304   ldrne r3, [sp, #4]
305   addne ip, ip, r3
306   tst r4, #1024
307   beq .L147
308   cmp r5, #3
309   bhi .L493
310   ldr r1, [ip, #4]
311   ldr lr, .L516+12
312 .L152:
313   mov r0, #0
314 .L153:
315   mov r3, r1, lsr #24
316   mov r3, r3, asl #1
317   add r0, r0, #1
318   ldrh  r3, [r3, lr]
319   cmp r5, r0
320   strh  r3, [r8], #2  @ movhi
321   mov r1, r1, asl #8
322   bhi .L153
323 .L431:
324   add sp, sp, #8
325   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
326 .L10:
327   and r1, r0, #255
328   and r3, r7, #7
329   mov r2, r6, asl #12
330   mov r3, r3, asl #2
331   and r2, r2, #49152
332   rsb r4, r1, #256
333   add r2, r2, r3
334   cmp fp, r4
335   mov r3, r3, asl #1
336   add ip, r2, r9
337   rsb lr, r3, #28
338   and r0, r0, #7
339   bls .L494
340   cmp r0, #0
341   moveq r6, r0
342   bne .L495
343 .L276:
344   rsb r3, r6, r4
345   movs  r9, r3, lsr #3
346   beq .L296
347   ldr r6, .L516+12
348   mov r0, r8
349   mov r7, #0
350   b .L298
351 .L496:
352   ldr r2, [r3, #0]
353   cmp r2, #0
354   beq .L329
355   ands  r3, r2, #15
356   orrne r3, r5, r3
357   movne r3, r3, asl #1
358   ldrneh  r3, [r3, r6]
359   ldreqh  r3, [r6, #0]
360   strneh  r3, [r0, #14] @ movhi
361   streqh  r3, [r0, #14] @ movhi
362   mov r3, r2, lsr #4
363   ands  r3, r3, #15
364   orrne r3, r5, r3
365   movne r3, r3, asl #1
366   ldrneh  r3, [r3, r6]
367   ldreqh  r3, [r6, #0]
368   strneh  r3, [r0, #12] @ movhi
369   streqh  r3, [r0, #12] @ movhi
370   mov r3, r2, lsr #8
371   ands  r3, r3, #15
372   orrne r3, r5, r3
373   movne r3, r3, asl #1
374   ldrneh  r3, [r3, r6]
375   ldreqh  r3, [r6, #0]
376   strneh  r3, [r0, #10] @ movhi
377   streqh  r3, [r0, #10] @ movhi
378   mov r3, r2, lsr #12
379   ands  r3, r3, #15
380   orrne r3, r5, r3
381   movne r3, r3, asl #1
382   ldrneh  r3, [r3, r6]
383   ldreqh  r3, [r6, #0]
384   strneh  r3, [r0, #8]  @ movhi
385   streqh  r3, [r0, #8]  @ movhi
386   mov r3, r2, lsr #16
387   ands  r3, r3, #15
388   orrne r3, r5, r3
389   movne r3, r3, asl #1
390   ldrneh  r3, [r3, r6]
391   ldreqh  r3, [r6, #0]
392   strneh  r3, [r0, #6]  @ movhi
393   streqh  r3, [r0, #6]  @ movhi
394   mov r3, r2, lsr #20
395   ands  r3, r3, #15
396   orrne r3, r5, r3
397   movne r3, r3, asl #1
398   ldrneh  r3, [r3, r6]
399   ldreqh  r3, [r6, #0]
400   strneh  r3, [r0, #4]  @ movhi
401   streqh  r3, [r0, #4]  @ movhi
402   mov r3, r2, lsr #24
403   ands  r3, r3, #15
404   orrne r3, r5, r3
405   movne r3, r3, asl #1
406   ldrneh  r3, [r3, r6]
407   ldreqh  r3, [r6, #0]
408   strneh  r3, [r0, #2]  @ movhi
409   streqh  r3, [r0, #2]  @ movhi
410   movs  r3, r2, lsr #28
411   orrne r3, r5, r3
412   movne r3, r3, asl #1
413   ldrneh  r3, [r3, r6]
414   ldreqh  r2, [r6, #0]
415   strneh  r3, [r0, #0]  @ movhi
416   streqh  r2, [r0, #0]  @ movhi
417 .L328:
418   add r7, r7, #1
419   cmp r9, r7
420   add r0, r0, #16
421   beq .L354
422 .L497:
423   add sl, sl, #2
424 .L298:
425   ldrh  r1, [sl, #0]
426   mov r2, r1, asl #22
427   mov r3, r1, lsr #12
428   mov r2, r2, lsr #22
429   tst r1, #2048
430   mov r5, r3, asl #4
431   add r3, ip, r2, asl #5
432   addne r3, r3, lr
433   tst r1, #1024
434   bne .L496
435   ldr r2, [r3, #0]
436   cmp r2, #0
437   beq .L329
438   ands  r3, r2, #15
439   orrne r3, r5, r3
440   movne r3, r3, asl #1
441   ldrneh  r3, [r3, r6]
442   ldreqh  r3, [r6, #0]
443   strneh  r3, [r0, #0]  @ movhi
444   streqh  r3, [r0, #0]  @ movhi
445   mov r3, r2, lsr #4
446   ands  r3, r3, #15
447   orrne r3, r5, r3
448   movne r3, r3, asl #1
449   ldrneh  r3, [r3, r6]
450   ldreqh  r3, [r6, #0]
451   strneh  r3, [r0, #2]  @ movhi
452   streqh  r3, [r0, #2]  @ movhi
453   mov r3, r2, lsr #8
454   ands  r3, r3, #15
455   orrne r3, r5, r3
456   movne r3, r3, asl #1
457   ldrneh  r3, [r3, r6]
458   ldreqh  r3, [r6, #0]
459   strneh  r3, [r0, #4]  @ movhi
460   streqh  r3, [r0, #4]  @ movhi
461   mov r3, r2, lsr #12
462   ands  r3, r3, #15
463   orrne r3, r5, r3
464   movne r3, r3, asl #1
465   ldrneh  r3, [r3, r6]
466   ldreqh  r3, [r6, #0]
467   strneh  r3, [r0, #6]  @ movhi
468   streqh  r3, [r0, #6]  @ movhi
469   mov r3, r2, lsr #16
470   ands  r3, r3, #15
471   orrne r3, r5, r3
472   movne r3, r3, asl #1
473   ldrneh  r3, [r3, r6]
474   ldreqh  r3, [r6, #0]
475   strneh  r3, [r0, #8]  @ movhi
476   streqh  r3, [r0, #8]  @ movhi
477   mov r3, r2, lsr #20
478   ands  r3, r3, #15
479   orrne r3, r5, r3
480   movne r3, r3, asl #1
481   ldrneh  r3, [r3, r6]
482   ldreqh  r3, [r6, #0]
483   strneh  r3, [r0, #10] @ movhi
484   streqh  r3, [r0, #10] @ movhi
485   mov r3, r2, lsr #24
486   ands  r3, r3, #15
487   orrne r3, r5, r3
488   movne r3, r3, asl #1
489   ldrneh  r3, [r3, r6]
490   ldreqh  r3, [r6, #0]
491   strneh  r3, [r0, #12] @ movhi
492   streqh  r3, [r0, #12] @ movhi
493   movs  r3, r2, lsr #28
494   orrne r3, r5, r3
495   movne r3, r3, asl #1
496   ldrneh  r3, [r3, r6]
497   ldreqh  r2, [r6, #0]
498   add r7, r7, #1
499   strneh  r3, [r0, #14] @ movhi
500   streqh  r2, [r0, #14] @ movhi
501   cmp r9, r7
502   add r0, r0, #16
503   bne .L497
504 .L354:
505   add r8, r8, r9, asl #4
506 .L296:
507   rsb r9, r4, fp
508   movs  r4, r9, lsr #3
509   ldreq r2, [sp, #0]
510   beq .L358
511   ldr r6, .L516+12
512   ldr r7, [sp, #0]
513   mov r0, r8
514   mov sl, #0
515   b .L359
516 .L499:
517   ldr r2, [r3, #0]
518   cmp r2, #0
519   beq .L390
520   ands  r3, r2, #15
521   orrne r3, r5, r3
522   movne r3, r3, asl #1
523   ldrneh  r3, [r3, r6]
524   ldreqh  r3, [r6, #0]
525   strneh  r3, [r0, #14] @ movhi
526   streqh  r3, [r0, #14] @ movhi
527   mov r3, r2, lsr #4
528   ands  r3, r3, #15
529   orrne r3, r5, r3
530   movne r3, r3, asl #1
531   ldrneh  r3, [r3, r6]
532   ldreqh  r3, [r6, #0]
533   strneh  r3, [r0, #12] @ movhi
534   streqh  r3, [r0, #12] @ movhi
535   mov r3, r2, lsr #8
536   ands  r3, r3, #15
537   orrne r3, r5, r3
538   movne r3, r3, asl #1
539   ldrneh  r3, [r3, r6]
540   ldreqh  r3, [r6, #0]
541   strneh  r3, [r0, #10] @ movhi
542   streqh  r3, [r0, #10] @ movhi
543   mov r3, r2, lsr #12
544   ands  r3, r3, #15
545   orrne r3, r5, r3
546   movne r3, r3, asl #1
547   ldrneh  r3, [r3, r6]
548   ldreqh  r3, [r6, #0]
549   strneh  r3, [r0, #8]  @ movhi
550   streqh  r3, [r0, #8]  @ movhi
551   mov r3, r2, lsr #16
552   ands  r3, r3, #15
553   orrne r3, r5, r3
554   movne r3, r3, asl #1
555   ldrneh  r3, [r3, r6]
556   ldreqh  r3, [r6, #0]
557   strneh  r3, [r0, #6]  @ movhi
558   streqh  r3, [r0, #6]  @ movhi
559   mov r3, r2, lsr #20
560   ands  r3, r3, #15
561   orrne r3, r5, r3
562   movne r3, r3, asl #1
563   ldrneh  r3, [r3, r6]
564   ldreqh  r3, [r6, #0]
565   strneh  r3, [r0, #4]  @ movhi
566   streqh  r3, [r0, #4]  @ movhi
567   mov r3, r2, lsr #24
568   ands  r3, r3, #15
569   orrne r3, r5, r3
570   movne r3, r3, asl #1
571   ldrneh  r3, [r3, r6]
572   ldreqh  r3, [r6, #0]
573   strneh  r3, [r0, #2]  @ movhi
574   streqh  r3, [r0, #2]  @ movhi
575   movs  r3, r2, lsr #28
576   orrne r3, r5, r3
577   movne r3, r3, asl #1
578   ldrneh  r3, [r3, r6]
579   ldreqh  r2, [r6, #0]
580   strneh  r3, [r0, #0]  @ movhi
581   streqh  r2, [r0, #0]  @ movhi
582 .L389:
583   add sl, sl, #1
584   cmp r4, sl
585   add r0, r0, #16
586   add r7, r7, #2
587   beq .L498
588 .L359:
589   ldrh  r1, [r7, #0]
590   mov r2, r1, asl #22
591   mov r3, r1, lsr #12
592   mov r2, r2, lsr #22
593   tst r1, #2048
594   mov r5, r3, asl #4
595   add r3, ip, r2, asl #5
596   addne r3, r3, lr
597   tst r1, #1024
598   bne .L499
599   ldr r2, [r3, #0]
600   cmp r2, #0
601   beq .L390
602   ands  r3, r2, #15
603   orrne r3, r5, r3
604   movne r3, r3, asl #1
605   ldrneh  r3, [r3, r6]
606   ldreqh  r3, [r6, #0]
607   strneh  r3, [r0, #0]  @ movhi
608   streqh  r3, [r0, #0]  @ movhi
609   mov r3, r2, lsr #4
610   ands  r3, r3, #15
611   orrne r3, r5, r3
612   movne r3, r3, asl #1
613   ldrneh  r3, [r3, r6]
614   ldreqh  r3, [r6, #0]
615   strneh  r3, [r0, #2]  @ movhi
616   streqh  r3, [r0, #2]  @ movhi
617   mov r3, r2, lsr #8
618   ands  r3, r3, #15
619   orrne r3, r5, r3
620   movne r3, r3, asl #1
621   ldrneh  r3, [r3, r6]
622   ldreqh  r3, [r6, #0]
623   strneh  r3, [r0, #4]  @ movhi
624   streqh  r3, [r0, #4]  @ movhi
625   mov r3, r2, lsr #12
626   ands  r3, r3, #15
627   orrne r3, r5, r3
628   movne r3, r3, asl #1
629   ldrneh  r3, [r3, r6]
630   ldreqh  r3, [r6, #0]
631   strneh  r3, [r0, #6]  @ movhi
632   streqh  r3, [r0, #6]  @ movhi
633   mov r3, r2, lsr #16
634   ands  r3, r3, #15
635   orrne r3, r5, r3
636   movne r3, r3, asl #1
637   ldrneh  r3, [r3, r6]
638   ldreqh  r3, [r6, #0]
639   strneh  r3, [r0, #8]  @ movhi
640   streqh  r3, [r0, #8]  @ movhi
641   mov r3, r2, lsr #20
642   ands  r3, r3, #15
643   orrne r3, r5, r3
644   movne r3, r3, asl #1
645   ldrneh  r3, [r3, r6]
646   ldreqh  r3, [r6, #0]
647   strneh  r3, [r0, #10] @ movhi
648   streqh  r3, [r0, #10] @ movhi
649   mov r3, r2, lsr #24
650   ands  r3, r3, #15
651   orrne r3, r5, r3
652   movne r3, r3, asl #1
653   ldrneh  r3, [r3, r6]
654   ldreqh  r3, [r6, #0]
655   strneh  r3, [r0, #12] @ movhi
656   streqh  r3, [r0, #12] @ movhi
657   movs  r3, r2, lsr #28
658   orrne r3, r5, r3
659   movne r3, r3, asl #1
660   ldrneh  r3, [r3, r6]
661   ldreqh  r2, [r6, #0]
662   add sl, sl, #1
663   strneh  r3, [r0, #14] @ movhi
664   streqh  r2, [r0, #14] @ movhi
665   cmp r4, sl
666   add r0, r0, #16
667   add r7, r7, #2
668   bne .L359
669 .L498:
670   ldr r3, [sp, #0]
671   add r8, r8, r4, asl #4
672   add r2, r3, r4, asl #1
673 .L358:
674   ands  r5, r9, #7
675   beq .L431
676   ldrh  r4, [r2, #0]
677   mov r3, r4, asl #22
678   mov r3, r3, lsr #22
679   tst r4, #2048
680   add r3, ip, r3, asl #5
681   mov r2, r4, lsr #12
682   addne r3, r3, lr
683   tst r4, #1024
684   mov r0, r2, asl #4
685   beq .L419
686   ldr r2, [r3, #0]
687   ldr ip, .L516+12
688   mov r1, #0
689 .L421:
690   movs  r3, r2, lsr #28
691   orr r3, r0, r3
692   mov r3, r3, asl #1
693   ldrneh  r3, [r3, ip]
694   ldreqh  r3, [ip, #0]
695   add r1, r1, #1
696   strneh  r3, [r8, #0]  @ movhi
697   streqh  r3, [r8, #0]  @ movhi
698   cmp r5, r1
699   mov r2, r2, asl #4
700   add r8, r8, #2
701   bne .L421
702   b .L431
703 .L494:
704   cmp r0, #0
705   bne .L500
706 .L161:
707   movs  r9, fp, lsr #3
708   beq .L200
709   ldr r5, .L516+12
710   mov r0, r8
711   mov r6, sl
712   mov r7, #0
713   b .L202
714 .L502:
715   ldr r2, [r3, #0]
716   cmp r2, #0
717   beq .L233
718   ands  r3, r2, #15
719   orrne r3, r4, r3
720   movne r3, r3, asl #1
721   ldrneh  r3, [r3, r5]
722   ldreqh  r3, [r5, #0]
723   strneh  r3, [r0, #14] @ movhi
724   streqh  r3, [r0, #14] @ movhi
725   mov r3, r2, lsr #4
726   ands  r3, r3, #15
727   orrne r3, r4, r3
728   movne r3, r3, asl #1
729   ldrneh  r3, [r3, r5]
730   ldreqh  r3, [r5, #0]
731   strneh  r3, [r0, #12] @ movhi
732   streqh  r3, [r0, #12] @ movhi
733   mov r3, r2, lsr #8
734   ands  r3, r3, #15
735   orrne r3, r4, r3
736   movne r3, r3, asl #1
737   ldrneh  r3, [r3, r5]
738   ldreqh  r3, [r5, #0]
739   strneh  r3, [r0, #10] @ movhi
740   streqh  r3, [r0, #10] @ movhi
741   mov r3, r2, lsr #12
742   ands  r3, r3, #15
743   orrne r3, r4, r3
744   movne r3, r3, asl #1
745   ldrneh  r3, [r3, r5]
746   ldreqh  r3, [r5, #0]
747   strneh  r3, [r0, #8]  @ movhi
748   streqh  r3, [r0, #8]  @ movhi
749   mov r3, r2, lsr #16
750   ands  r3, r3, #15
751   orrne r3, r4, r3
752   movne r3, r3, asl #1
753   ldrneh  r3, [r3, r5]
754   ldreqh  r3, [r5, #0]
755   strneh  r3, [r0, #6]  @ movhi
756   streqh  r3, [r0, #6]  @ movhi
757   mov r3, r2, lsr #20
758   ands  r3, r3, #15
759   orrne r3, r4, r3
760   movne r3, r3, asl #1
761   ldrneh  r3, [r3, r5]
762   ldreqh  r3, [r5, #0]
763   strneh  r3, [r0, #4]  @ movhi
764   streqh  r3, [r0, #4]  @ movhi
765   mov r3, r2, lsr #24
766   ands  r3, r3, #15
767   orrne r3, r4, r3
768   movne r3, r3, asl #1
769   ldrneh  r3, [r3, r5]
770   ldreqh  r3, [r5, #0]
771   strneh  r3, [r0, #2]  @ movhi
772   streqh  r3, [r0, #2]  @ movhi
773   movs  r3, r2, lsr #28
774   orrne r3, r4, r3
775   movne r3, r3, asl #1
776   ldrneh  r3, [r3, r5]
777   ldreqh  r2, [r5, #0]
778   strneh  r3, [r0, #0]  @ movhi
779   streqh  r2, [r0, #0]  @ movhi
780 .L232:
781   add r7, r7, #1
782   cmp r9, r7
783   add r0, r0, #16
784   add r6, r6, #2
785   beq .L501
786 .L202:
787   ldrh  r1, [r6, #0]
788   mov r2, r1, asl #22
789   mov r3, r1, lsr #12
790   mov r2, r2, lsr #22
791   tst r1, #2048
792   mov r4, r3, asl #4
793   add r3, ip, r2, asl #5
794   addne r3, r3, lr
795   tst r1, #1024
796   bne .L502
797   ldr r2, [r3, #0]
798   cmp r2, #0
799   beq .L233
800   ands  r3, r2, #15
801   orrne r3, r4, r3
802   movne r3, r3, asl #1
803   ldrneh  r3, [r3, r5]
804   ldreqh  r3, [r5, #0]
805   strneh  r3, [r0, #0]  @ movhi
806   streqh  r3, [r0, #0]  @ movhi
807   mov r3, r2, lsr #4
808   ands  r3, r3, #15
809   orrne r3, r4, r3
810   movne r3, r3, asl #1
811   ldrneh  r3, [r3, r5]
812   ldreqh  r3, [r5, #0]
813   strneh  r3, [r0, #2]  @ movhi
814   streqh  r3, [r0, #2]  @ movhi
815   mov r3, r2, lsr #8
816   ands  r3, r3, #15
817   orrne r3, r4, r3
818   movne r3, r3, asl #1
819   ldrneh  r3, [r3, r5]
820   ldreqh  r3, [r5, #0]
821   strneh  r3, [r0, #4]  @ movhi
822   streqh  r3, [r0, #4]  @ movhi
823   mov r3, r2, lsr #12
824   ands  r3, r3, #15
825   orrne r3, r4, r3
826   movne r3, r3, asl #1
827   ldrneh  r3, [r3, r5]
828   ldreqh  r3, [r5, #0]
829   strneh  r3, [r0, #6]  @ movhi
830   streqh  r3, [r0, #6]  @ movhi
831   mov r3, r2, lsr #16
832   ands  r3, r3, #15
833   orrne r3, r4, r3
834   movne r3, r3, asl #1
835   ldrneh  r3, [r3, r5]
836   ldreqh  r3, [r5, #0]
837   strneh  r3, [r0, #8]  @ movhi
838   streqh  r3, [r0, #8]  @ movhi
839   mov r3, r2, lsr #20
840   ands  r3, r3, #15
841   orrne r3, r4, r3
842   movne r3, r3, asl #1
843   ldrneh  r3, [r3, r5]
844   ldreqh  r3, [r5, #0]
845   strneh  r3, [r0, #10] @ movhi
846   streqh  r3, [r0, #10] @ movhi
847   mov r3, r2, lsr #24
848   ands  r3, r3, #15
849   orrne r3, r4, r3
850   movne r3, r3, asl #1
851   ldrneh  r3, [r3, r5]
852   ldreqh  r3, [r5, #0]
853   strneh  r3, [r0, #12] @ movhi
854   streqh  r3, [r0, #12] @ movhi
855   movs  r3, r2, lsr #28
856   orrne r3, r4, r3
857   movne r3, r3, asl #1
858   ldrneh  r3, [r3, r5]
859   ldreqh  r2, [r5, #0]
860   add r7, r7, #1
861   strneh  r3, [r0, #14] @ movhi
862   streqh  r2, [r0, #14] @ movhi
863   cmp r9, r7
864   add r0, r0, #16
865   add r6, r6, #2
866   bne .L202
867 .L501:
868   add r8, r8, r9, asl #4
869   add sl, sl, r9, asl #1
870 .L200:
871   ands  r4, fp, #7
872   beq .L431
873   ldrh  r1, [sl, #0]
874   mov r3, r1, asl #22
875   mov r3, r3, lsr #22
876   tst r1, #2048
877   add r3, ip, r3, asl #5
878   mov r2, r1, lsr #12
879   addne r3, r3, lr
880   tst r1, #1024
881   mov r0, r2, asl #4
882   beq .L262
883   ldr r2, [r3, #0]
884   ldr ip, .L516+12
885   mov r1, #0
886 .L264:
887   movs  r3, r2, lsr #28
888   orr r3, r0, r3
889   mov r3, r3, asl #1
890   ldrneh  r3, [r3, ip]
891   ldreqh  r3, [ip, #0]
892   add r1, r1, #1
893   strneh  r3, [r8, #0]  @ movhi
894   streqh  r3, [r8, #0]  @ movhi
895   cmp r4, r1
896   mov r2, r2, asl #4
897   add r8, r8, #2
898   bne .L264
899   b .L431
900 .L487:
901   cmp r0, #0
902   bne .L503
903 .L14:
904   movs  lr, fp, lsr #3
905   beq .L74
906   ldr r5, .L516+12
907   mov r4, r8
908   mov r6, sl
909   mov r7, #0
910   b .L76
911 .L505:
912   ldr r0, [ip, #4]
913   ldr ip, [ip, #0]
914   and r1, r0, #255
915   mov r1, r1, asl #1
916   ldrh  r1, [r1, r5]
917   mov r3, r0, lsr #8
918   and r3, r3, #255
919   strh  r1, [r4, #6]  @ movhi
920   mov r3, r3, asl #1
921   ldrh  r3, [r3, r5]
922   mov r2, r0, lsr #16
923   and r2, r2, #255
924   strh  r3, [r4, #4]  @ movhi
925   mov r2, r2, asl #1
926   ldrh  r2, [r2, r5]
927   mov r0, r0, lsr #24
928   strh  r2, [r4, #2]  @ movhi
929   mov r0, r0, asl #1
930   ldrh  r0, [r0, r5]
931   and r1, ip, #255
932   strh  r0, [r4, #0]  @ movhi
933   mov r1, r1, asl #1
934   ldrh  r1, [r1, r5]
935   mov r2, ip, lsr #8
936   and r2, r2, #255
937   strh  r1, [r4, #14] @ movhi
938   mov r2, r2, asl #1
939   ldrh  r2, [r2, r5]
940   mov r3, ip, lsr #16
941   and r3, r3, #255
942   strh  r2, [r4, #12] @ movhi
943   mov r3, r3, asl #1
944   ldrh  r3, [r3, r5]
945   mov ip, ip, lsr #24
946   strh  r3, [r4, #10] @ movhi
947   mov ip, ip, asl #1
948   ldrh  ip, [ip, r5]
949   add r7, r7, #1
950   cmp lr, r7
951   strh  ip, [r4, #8]  @ movhi
952   add r6, r6, #2
953   add r4, r4, #16
954   beq .L504
955 .L76:
956   ldrh  r2, [r6, #0]
957   mov r3, r2, asl #22
958   mov r3, r3, lsr #22
959   tst r2, #2048
960   add ip, r9, r3, asl #6
961   ldrne r3, [sp, #4]
962   addne ip, ip, r3
963   tst r2, #1024
964   bne .L505
965   ldmia ip, {r0, ip}  @ phole ldm
966   and r1, r0, #255
967   mov r1, r1, asl #1
968   ldrh  r1, [r1, r5]
969   mov r3, r0, lsr #8
970   and r3, r3, #255
971   strh  r1, [r4, #0]  @ movhi
972   mov r3, r3, asl #1
973   ldrh  r3, [r3, r5]
974   mov r2, r0, lsr #16
975   and r2, r2, #255
976   strh  r3, [r4, #2]  @ movhi
977   mov r2, r2, asl #1
978   ldrh  r2, [r2, r5]
979   mov r0, r0, lsr #24
980   strh  r2, [r4, #4]  @ movhi
981   mov r0, r0, asl #1
982   ldrh  r0, [r0, r5]
983   and r1, ip, #255
984   strh  r0, [r4, #6]  @ movhi
985   mov r1, r1, asl #1
986   ldrh  r1, [r1, r5]
987   mov r2, ip, lsr #8
988   and r2, r2, #255
989   strh  r1, [r4, #8]  @ movhi
990   mov r2, r2, asl #1
991   ldrh  r2, [r2, r5]
992   mov r3, ip, lsr #16
993   and r3, r3, #255
994   strh  r2, [r4, #10] @ movhi
995   mov r3, r3, asl #1
996   ldrh  r3, [r3, r5]
997   mov ip, ip, lsr #24
998   strh  r3, [r4, #12] @ movhi
999   mov ip, ip, asl #1
1000   ldrh  ip, [ip, r5]
1001   add r7, r7, #1
1002   cmp lr, r7
1003   strh  ip, [r4, #14] @ movhi
1004   add r6, r6, #2
1005   add r4, r4, #16
1006   bne .L76
1007 .L504:
1008   add r8, r8, lr, asl #4
1009   add sl, sl, lr, asl #1
1010 .L74:
1011   ands  r4, fp, #7
1012   beq .L431
1013   ldrh  r2, [sl, #0]
1014   mov r3, r2, asl #22
1015   mov r3, r3, lsr #22
1016   tst r2, #2048
1017   add ip, r9, r3, asl #6
1018   ldrne r3, [sp, #4]
1019   addne ip, ip, r3
1020   tst r2, #1024
1021   beq .L86
1022   cmp r4, #3
1023   bhi .L506
1024   ldr r1, [ip, #4]
1025   ldr lr, .L516+12
1026 .L91:
1027   mov r0, #0
1028 .L92:
1029   mov r3, r1, lsr #24
1030   mov r3, r3, asl #1
1031   add r0, r0, #1
1032   ldrh  r3, [r3, lr]
1033   cmp r4, r0
1034   strh  r3, [r8], #2  @ movhi
1035   mov r1, r1, asl #8
1036   bhi .L92
1037   b .L431
1038 .L329:
1039   ldrh  r3, [r6, #0]
1040   strh  r3, [r0, #14] @ movhi
1041   strh  r3, [r0, #0]  @ movhi
1042   strh  r3, [r0, #2]  @ movhi
1043   strh  r3, [r0, #4]  @ movhi
1044   strh  r3, [r0, #6]  @ movhi
1045   strh  r3, [r0, #8]  @ movhi
1046   strh  r3, [r0, #10] @ movhi
1047   strh  r3, [r0, #12] @ movhi
1048   b .L328
1049 .L390:
1050   ldrh  r3, [r6, #0]
1051   strh  r3, [r0, #14] @ movhi
1052   strh  r3, [r0, #0]  @ movhi
1053   strh  r3, [r0, #2]  @ movhi
1054   strh  r3, [r0, #4]  @ movhi
1055   strh  r3, [r0, #6]  @ movhi
1056   strh  r3, [r0, #8]  @ movhi
1057   strh  r3, [r0, #10] @ movhi
1058   strh  r3, [r0, #12] @ movhi
1059   b .L389
1060 .L517:
1061   .align  2
1062 .L516:
1063   .word io_registers
1064   .word map_widths
1065   .word vram
1066   .word palette_ram_converted
1067 .L500:
1068   rsb r4, r0, #8
1069   cmp fp, r4
1070   bcs .L163
1071   ldrh  r1, [sl, #0]
1072   mov r3, r1, asl #22
1073   mov r3, r3, lsr #22
1074   tst r1, #2048
1075   add ip, ip, r3, asl #5
1076   mov r2, r1, lsr #12
1077   addne ip, ip, lr
1078   tst r1, #1024
1079   mov r4, r2, asl #4
1080   bne .L507
1081   cmp fp, #0
1082   ldr r2, [ip, #0]
1083   beq .L431
1084   mov r3, r0, asl #2
1085   mov r0, r2, lsr r3
1086   ldr r2, .L516+12
1087   mov r1, #0
1088 .L176:
1089   ands  r3, r0, #15
1090   orr r3, r4, r3
1091   mov r3, r3, asl #1
1092   ldrneh  r3, [r3, r2]
1093   ldreqh  r3, [r2, #0]
1094   add r1, r1, #1
1095   strneh  r3, [r8, #0]  @ movhi
1096   streqh  r3, [r8, #0]  @ movhi
1097   cmp fp, r1
1098   mov r0, r0, lsr #4
1099   add r8, r8, #2
1100   bne .L176
1101   b .L431
1102 .L495:
1103   ldrh  r5, [sl, #0]
1104   rsb r6, r0, #8
1105   mov r2, r5, asl #22
1106   mov r3, r5, lsr #12
1107   mov r2, r2, lsr #22
1108   tst r5, #2048
1109   mov r7, r3, asl #4
1110   add r3, ip, r2, asl #5
1111   addne r3, r3, lr
1112   tst r5, #1024
1113   beq .L279
1114   cmp r6, #0
1115   ldr r2, [r3, #0]
1116   beq .L281
1117   mov r3, r0, asl #2
1118   ldr r5, .L516+12
1119   mov r0, r2, asl r3
1120   mov r1, #0
1121   mov r2, r8
1122 .L283:
1123   movs  r3, r0, lsr #28
1124   orr r3, r7, r3
1125   mov r3, r3, asl #1
1126   ldrneh  r3, [r3, r5]
1127   ldreqh  r3, [r5, #0]
1128   add r1, r1, #1
1129   strneh  r3, [r2, #0]  @ movhi
1130   streqh  r3, [r2, #0]  @ movhi
1131   cmp r6, r1
1132   mov r0, r0, asl #4
1133   add r2, r2, #2
1134   bne .L283
1135   add r8, r8, r6, asl #1
1136 .L281:
1137   add sl, sl, #2
1138   b .L276
1139 .L488:
1140   ldrh  r2, [sl, #0]
1141   rsb ip, r0, #8
1142   mov r3, r2, asl #22
1143   mov r3, r3, lsr #22
1144   tst r2, #2048
1145   add r5, r9, r3, asl #6
1146   ldrne r3, [sp, #4]
1147   addne r5, r5, r3
1148   ands  r1, r2, #1024
1149   beq .L103
1150   cmp r0, #3
1151   bhi .L508
1152   subs  lr, ip, #4
1153   ldr r2, [r5, #4]
1154   ldreq r6, .L516+12
1155   beq .L111
1156   mov r3, r0, asl #3
1157   sub r3, r3, #32
1158   ldr r6, .L516+12
1159   mov r0, r2, asl r3
1160   mov r1, r8
1161   mov r2, #0
1162 .L113:
1163   mov r3, r0, lsr #24
1164   mov r3, r3, asl #1
1165   add r2, r2, #1
1166   ldrh  r3, [r3, r6]
1167   cmp lr, r2
1168   strh  r3, [r1], #2  @ movhi
1169   mov r0, r0, asl #8
1170   bne .L113
1171   add r3, r8, ip, asl #1
1172   sub r8, r3, #8
1173 .L111:
1174   ldr r3, [r5, #0]
1175   mov ip, lr
1176   and r0, r3, #255
1177   mov r0, r0, asl #1
1178   ldrh  r0, [r0, r6]
1179   mov r2, r3, lsr #8
1180   and r2, r2, #255
1181   strh  r0, [r8, #6]  @ movhi
1182   mov r2, r2, asl #1
1183   ldrh  r2, [r2, r6]
1184   mov r1, r3, lsr #16
1185   and r1, r1, #255
1186   strh  r2, [r8, #4]  @ movhi
1187   mov r1, r1, asl #1
1188   ldrh  r1, [r1, r6]
1189   mov r3, r3, lsr #24
1190   strh  r1, [r8, #2]  @ movhi
1191   mov r3, r3, asl #1
1192   ldrh  r3, [r3, r6]
1193   strh  r3, [r8], #8  @ movhi
1194 .L107:
1195   add sl, sl, #2
1196   b .L100
1197 .L503:
1198   rsb ip, r0, #8
1199   cmp fp, ip
1200   bcs .L16
1201   ldrh  r2, [sl, #0]
1202   mov r3, r2, asl #22
1203   mov r3, r3, lsr #22
1204   tst r2, #2048
1205   add ip, r9, r3, asl #6
1206   ldrne r3, [sp, #4]
1207   addne ip, ip, r3
1208   ands  r4, r2, #1024
1209   bne .L509
1210   cmp r0, #3
1211   bls .L37
1212   cmp fp, #0
1213   ldr r2, [ip, #4]
1214   beq .L431
1215   mov r3, r0, asl #3
1216   sub r3, r3, #32
1217   ldr r1, .L516+12
1218   mov r0, r2, lsr r3
1219   mov r2, r4
1220 .L40:
1221   and r3, r0, #255
1222   mov r3, r3, asl #1
1223   add r2, r2, #1
1224   ldrh  r3, [r3, r1]
1225   cmp fp, r2
1226   strh  r3, [r8], #2  @ movhi
1227   mov r0, r0, lsr #8
1228   bne .L40
1229   b .L431
1230 .L233:
1231   ldrh  r3, [r5, #0]
1232   strh  r3, [r0, #14] @ movhi
1233   strh  r3, [r0, #0]  @ movhi
1234   strh  r3, [r0, #2]  @ movhi
1235   strh  r3, [r0, #4]  @ movhi
1236   strh  r3, [r0, #6]  @ movhi
1237   strh  r3, [r0, #8]  @ movhi
1238   strh  r3, [r0, #10] @ movhi
1239   strh  r3, [r0, #12] @ movhi
1240   b .L232
1241 .L147:
1242   cmp r5, #3
1243   bhi .L510
1244   ldr r1, [ip, #0]
1245   ldr lr, .L516+12
1246 .L157:
1247   mov r0, #0
1248 .L158:
1249   and r3, r1, #255
1250   mov r3, r3, asl #1
1251   add r0, r0, #1
1252   ldrh  r3, [r3, lr]
1253   cmp r5, r0
1254   strh  r3, [r8], #2  @ movhi
1255   mov r1, r1, lsr #8
1256   bhi .L158
1257   b .L431
1258 .L419:
1259   ldr r2, [r3, #0]
1260   ldr ip, .L516+12
1261   mov r1, #0
1262 .L426:
1263   ands  r3, r2, #15
1264   orr r3, r0, r3
1265   mov r3, r3, asl #1
1266   ldrneh  r3, [r3, ip]
1267   ldreqh  r3, [ip, #0]
1268   add r1, r1, #1
1269   strneh  r3, [r8, #0]  @ movhi
1270   streqh  r3, [r8, #0]  @ movhi
1271   cmp r5, r1
1272   mov r2, r2, lsr #4
1273   add r8, r8, #2
1274   bne .L426
1275   b .L431
1276 .L86:
1277   cmp r4, #3
1278   bhi .L511
1279   ldr r1, [ip, #0]
1280   ldr lr, .L516+12
1281 .L96:
1282   mov r0, #0
1283 .L97:
1284   and r3, r1, #255
1285   mov r3, r3, asl #1
1286   add r0, r0, #1
1287   ldrh  r3, [r3, lr]
1288   cmp r4, r0
1289   strh  r3, [r8], #2  @ movhi
1290   mov r1, r1, lsr #8
1291   bhi .L97
1292   b .L431
1293 .L262:
1294   ldr r2, [r3, #0]
1295   ldr ip, .L516+12
1296   mov r1, #0
1297 .L269:
1298   ands  r3, r2, #15
1299   orr r3, r0, r3
1300   mov r3, r3, asl #1
1301   ldrneh  r3, [r3, ip]
1302   ldreqh  r3, [ip, #0]
1303   add r1, r1, #1
1304   strneh  r3, [r8, #0]  @ movhi
1305   streqh  r3, [r8, #0]  @ movhi
1306   cmp r4, r1
1307   mov r2, r2, lsr #4
1308   add r8, r8, #2
1309   bne .L269
1310   b .L431
1311 .L279:
1312   cmp r6, #0
1313   ldr r2, [r3, #0]
1314   beq .L281
1315   mov r3, r0, asl #2
1316   ldr r5, .L516+12
1317   mov r0, r2, lsr r3
1318   mov r1, #0
1319   mov r2, r8
1320 .L290:
1321   ands  r3, r0, #15
1322   orr r3, r7, r3
1323   mov r3, r3, asl #1
1324   ldrneh  r3, [r3, r5]
1325   ldreqh  r3, [r5, #0]
1326   add r1, r1, #1
1327   strneh  r3, [r2, #0]  @ movhi
1328   streqh  r3, [r2, #0]  @ movhi
1329   cmp r6, r1
1330   mov r0, r0, lsr #4
1331   add r2, r2, #2
1332   bne .L290
1333   add r8, r8, r6, asl #1
1334   b .L281
1335 .L163:
1336   ldrh  r1, [sl, #0]
1337   mov r2, r1, asl #22
1338   mov r3, r1, lsr #12
1339   mov r2, r2, lsr #22
1340   tst r1, #2048
1341   mov r5, r3, asl #4
1342   add r3, ip, r2, asl #5
1343   addne r3, r3, lr
1344   tst r1, #1024
1345   bne .L512
1346   cmp r4, #0
1347   ldr r2, [r3, #0]
1348   beq .L185
1349   mov r3, r0, asl #2
1350   ldr r6, .L516+12
1351   mov r0, r2, lsr r3
1352   mov r1, #0
1353   mov r2, r8
1354 .L194:
1355   ands  r3, r0, #15
1356   orr r3, r5, r3
1357   mov r3, r3, asl #1
1358   ldrneh  r3, [r3, r6]
1359   ldreqh  r3, [r6, #0]
1360   add r1, r1, #1
1361   strneh  r3, [r2, #0]  @ movhi
1362   streqh  r3, [r2, #0]  @ movhi
1363   cmp r4, r1
1364   mov r0, r0, lsr #4
1365   add r2, r2, #2
1366   bne .L194
1367 .L484:
1368   add r8, r8, r4, asl #1
1369 .L185:
1370   rsb fp, r4, fp
1371   add sl, sl, #2
1372   b .L161
1373 .L103:
1374   cmp r0, #3
1375   bhi .L513
1376   subs  lr, ip, #4
1377   ldr r2, [r5, #0]
1378   ldreq r6, .L516+12
1379   beq .L120
1380   mov r3, r0, asl #3
1381   ldr r6, .L516+12
1382   mov r0, r2, lsr r3
1383   mov r2, r1
1384   mov r1, r8
1385 .L122:
1386   and r3, r0, #255
1387   mov r3, r3, asl #1
1388   add r2, r2, #1
1389   ldrh  r3, [r3, r6]
1390   cmp lr, r2
1391   strh  r3, [r1], #2  @ movhi
1392   mov r0, r0, lsr #8
1393   bne .L122
1394   add r3, r8, ip, asl #1
1395   sub r8, r3, #8
1396 .L120:
1397   ldr r3, [r5, #4]
1398   mov ip, lr
1399   and r0, r3, #255
1400   mov r0, r0, asl #1
1401   ldrh  r0, [r0, r6]
1402   mov r2, r3, lsr #8
1403   and r2, r2, #255
1404   strh  r0, [r8, #0]  @ movhi
1405   mov r2, r2, asl #1
1406   ldrh  r2, [r2, r6]
1407   mov r1, r3, lsr #16
1408   and r1, r1, #255
1409   strh  r2, [r8, #2]  @ movhi
1410   mov r1, r1, asl #1
1411   ldrh  r1, [r1, r6]
1412   mov r3, r3, lsr #24
1413   strh  r1, [r8, #4]  @ movhi
1414   mov r3, r3, asl #1
1415   ldrh  r3, [r3, r6]
1416   add sl, sl, #2
1417   strh  r3, [r8, #6]  @ movhi
1418   add r8, r8, #8
1419   b .L100
1420 .L16:
1421   ldrh  r2, [sl, #0]
1422   mov r3, r2, asl #22
1423   mov r3, r3, lsr #22
1424   tst r2, #2048
1425   add lr, r9, r3, asl #6
1426   ldrne r3, [sp, #4]
1427   addne lr, lr, r3
1428   ands  r1, r2, #1024
1429   bne .L514
1430   cmp r0, #3
1431   bls .L65
1432   cmp ip, #0
1433   ldr r2, [lr, #4]
1434   beq .L57
1435   mov r3, r0, asl #3
1436   sub r3, r3, #32
1437   ldr lr, .L516+12
1438   mov r0, r2, lsr r3
1439   mov r2, r1
1440   mov r1, r8
1441 .L68:
1442   and r3, r0, #255
1443   mov r3, r3, asl #1
1444   add r2, r2, #1
1445   ldrh  r3, [r3, lr]
1446   cmp ip, r2
1447   strh  r3, [r1], #2  @ movhi
1448   mov r0, r0, lsr #8
1449   bne .L68
1450 .L482:
1451   add r8, r8, ip, asl #1
1452 .L57:
1453   rsb fp, ip, fp
1454   add sl, sl, #2
1455   b .L14
1456 .L510:
1457   ldr r1, [ip, #0]
1458   ldr lr, .L516+12
1459   and r0, r1, #255
1460   mov r0, r0, asl #1
1461   ldrh  r0, [r0, lr]
1462   mov r3, r1, lsr #8
1463   and r3, r3, #255
1464   strh  r0, [r8, #0]  @ movhi
1465   mov r3, r3, asl #1
1466   ldrh  r3, [r3, lr]
1467   mov r2, r1, lsr #16
1468   and r2, r2, #255
1469   strh  r3, [r8, #2]  @ movhi
1470   mov r2, r2, asl #1
1471   ldrh  r2, [r2, lr]
1472   mov r1, r1, lsr #24
1473   strh  r2, [r8, #4]  @ movhi
1474   mov r1, r1, asl #1
1475   ldrh  r1, [r1, lr]
1476   subs  r5, r5, #4
1477   strh  r1, [r8, #6]  @ movhi
1478   ldr r1, [ip, #4]
1479   addne r8, r8, #8
1480   bne .L157
1481   b .L431
1482 .L493:
1483   ldr r1, [ip, #4]
1484   ldr lr, .L516+12
1485   and r0, r1, #255
1486   mov r0, r0, asl #1
1487   ldrh  r0, [r0, lr]
1488   mov r3, r1, lsr #8
1489   and r3, r3, #255
1490   strh  r0, [r8, #6]  @ movhi
1491   mov r3, r3, asl #1
1492   ldrh  r3, [r3, lr]
1493   mov r2, r1, lsr #16
1494   and r2, r2, #255
1495   strh  r3, [r8, #4]  @ movhi
1496   mov r2, r2, asl #1
1497   ldrh  r2, [r2, lr]
1498   mov r1, r1, lsr #24
1499   strh  r2, [r8, #2]  @ movhi
1500   mov r1, r1, asl #1
1501   ldrh  r1, [r1, lr]
1502   subs  r5, r5, #4
1503   strh  r1, [r8, #0]  @ movhi
1504   ldr r1, [ip, #0]
1505   addne r8, r8, #8
1506   bne .L152
1507   b .L431
1508 .L506:
1509   ldr r1, [ip, #4]
1510   ldr lr, .L516+12
1511   and r0, r1, #255
1512   mov r0, r0, asl #1
1513   ldrh  r0, [r0, lr]
1514   mov r3, r1, lsr #8
1515   and r3, r3, #255
1516   strh  r0, [r8, #6]  @ movhi
1517   mov r3, r3, asl #1
1518   ldrh  r3, [r3, lr]
1519   mov r2, r1, lsr #16
1520   and r2, r2, #255
1521   strh  r3, [r8, #4]  @ movhi
1522   mov r2, r2, asl #1
1523   ldrh  r2, [r2, lr]
1524   mov r1, r1, lsr #24
1525   strh  r2, [r8, #2]  @ movhi
1526   mov r1, r1, asl #1
1527   ldrh  r1, [r1, lr]
1528   subs  r4, r4, #4
1529   strh  r1, [r8, #0]  @ movhi
1530   ldr r1, [ip, #0]
1531   addne r8, r8, #8
1532   bne .L91
1533   b .L431
1534 .L511:
1535   ldr r1, [ip, #0]
1536   ldr lr, .L516+12
1537   and r0, r1, #255
1538   mov r0, r0, asl #1
1539   ldrh  r0, [r0, lr]
1540   mov r3, r1, lsr #8
1541   and r3, r3, #255
1542   strh  r0, [r8, #0]  @ movhi
1543   mov r3, r3, asl #1
1544   ldrh  r3, [r3, lr]
1545   mov r2, r1, lsr #16
1546   and r2, r2, #255
1547   strh  r3, [r8, #2]  @ movhi
1548   mov r2, r2, asl #1
1549   ldrh  r2, [r2, lr]
1550   mov r1, r1, lsr #24
1551   strh  r2, [r8, #4]  @ movhi
1552   mov r1, r1, asl #1
1553   ldrh  r1, [r1, lr]
1554   subs  r4, r4, #4
1555   strh  r1, [r8, #6]  @ movhi
1556   ldr r1, [ip, #4]
1557   addne r8, r8, #8
1558   bne .L96
1559   b .L431
1560 .L509:
1561   cmp r0, #3
1562   bls .L22
1563   cmp fp, #0
1564   ldr r2, [ip, #0]
1565   beq .L431
1566   mov r3, r0, asl #3
1567   sub r3, r3, #32
1568   ldr r1, .L516+12
1569   mov r0, r2, asl r3
1570   mov r2, #0
1571 .L26:
1572   mov r3, r0, lsr #24
1573   mov r3, r3, asl #1
1574   add r2, r2, #1
1575   ldrh  r3, [r3, r1]
1576   cmp fp, r2
1577   strh  r3, [r8], #2  @ movhi
1578   mov r0, r0, asl #8
1579   bne .L26
1580   b .L431
1581 .L508:
1582   cmp ip, #0
1583   ldr r2, [r5, #0]
1584   beq .L107
1585   mov r3, r0, asl #3
1586   sub r3, r3, #32
1587   ldr lr, .L516+12
1588   mov r0, r2, asl r3
1589   mov r1, r8
1590   mov r2, #0
1591 .L109:
1592   mov r3, r0, lsr #24
1593   mov r3, r3, asl #1
1594   add r2, r2, #1
1595   ldrh  r3, [r3, lr]
1596   cmp ip, r2
1597   strh  r3, [r1], #2  @ movhi
1598   mov r0, r0, asl #8
1599   bne .L109
1600   add r8, r8, ip, asl #1
1601 .L515:
1602   add sl, sl, #2
1603   b .L100
1604 .L507:
1605   cmp fp, #0
1606   ldr r2, [ip, #0]
1607   beq .L431
1608   mov r3, r0, asl #2
1609   mov r0, r2, asl r3
1610   ldr r2, .L516+12
1611   mov r1, r5
1612 .L170:
1613   movs  r3, r0, lsr #28
1614   orr r3, r4, r3
1615   mov r3, r3, asl #1
1616   ldrneh  r3, [r3, r2]
1617   ldreqh  r3, [r2, #0]
1618   add r1, r1, #1
1619   strneh  r3, [r8, #0]  @ movhi
1620   streqh  r3, [r8, #0]  @ movhi
1621   cmp fp, r1
1622   mov r0, r0, asl #4
1623   add r8, r8, #2
1624   bne .L170
1625   b .L431
1626 .L514:
1627   cmp r0, #3
1628   bls .L55
1629   cmp ip, #0
1630   ldr r2, [lr, #0]
1631   beq .L57
1632   mov r3, r0, asl #3
1633   sub r3, r3, #32
1634   ldr lr, .L516+12
1635   mov r0, r2, asl r3
1636   mov r1, r8
1637   mov r2, #0
1638 .L59:
1639   mov r3, r0, lsr #24
1640   mov r3, r3, asl #1
1641   add r2, r2, #1
1642   ldrh  r3, [r3, lr]
1643   cmp ip, r2
1644   strh  r3, [r1], #2  @ movhi
1645   mov r0, r0, asl #8
1646   bne .L59
1647   b .L482
1648 .L513:
1649   cmp ip, #0
1650   ldr r2, [r5, #4]
1651   beq .L107
1652   mov r3, r0, asl #3
1653   sub r3, r3, #32
1654   ldr lr, .L516+12
1655   mov r0, r2, lsr r3
1656   mov r2, r1
1657   mov r1, r8
1658 .L118:
1659   and r3, r0, #255
1660   mov r3, r3, asl #1
1661   add r2, r2, #1
1662   ldrh  r3, [r3, lr]
1663   cmp ip, r2
1664   strh  r3, [r1], #2  @ movhi
1665   mov r0, r0, lsr #8
1666   bne .L118
1667   add r8, r8, ip, asl #1
1668   b .L515
1669 .L512:
1670   cmp r4, #0
1671   ldr r2, [r3, #0]
1672   beq .L185
1673   mov r3, r0, asl #2
1674   ldr r6, .L516+12
1675   mov r0, r2, asl r3
1676   mov r1, #0
1677   mov r2, r8
1678 .L187:
1679   movs  r3, r0, lsr #28
1680   orr r3, r5, r3
1681   mov r3, r3, asl #1
1682   ldrneh  r3, [r3, r6]
1683   ldreqh  r3, [r6, #0]
1684   add r1, r1, #1
1685   strneh  r3, [r2, #0]  @ movhi
1686   streqh  r3, [r2, #0]  @ movhi
1687   cmp r4, r1
1688   mov r0, r0, asl #4
1689   add r2, r2, #2
1690   bne .L187
1691   b .L484
1692 .L65:
1693   subs  r4, ip, #4
1694   ldr r2, [lr, #0]
1695   ldreq r5, .L516+12
1696   beq .L70
1697   mov r3, r0, asl #3
1698   ldr r5, .L516+12
1699   mov r0, r2, lsr r3
1700   mov r2, r1
1701   mov r1, r8
1702 .L72:
1703   and r3, r0, #255
1704   mov r3, r3, asl #1
1705   add r2, r2, #1
1706   ldrh  r3, [r3, r5]
1707   cmp r4, r2
1708   strh  r3, [r1], #2  @ movhi
1709   mov r0, r0, lsr #8
1710   bne .L72
1711   add r3, r8, ip, asl #1
1712   sub r8, r3, #8
1713 .L70:
1714   ldr r3, [lr, #4]
1715   and r0, r3, #255
1716   mov r0, r0, asl #1
1717   ldrh  r0, [r0, r5]
1718   mov r2, r3, lsr #8
1719   and r2, r2, #255
1720   strh  r0, [r8, #0]  @ movhi
1721   mov r2, r2, asl #1
1722   ldrh  r2, [r2, r5]
1723   mov r1, r3, lsr #16
1724   and r1, r1, #255
1725   strh  r2, [r8, #2]  @ movhi
1726   mov r1, r1, asl #1
1727   ldrh  r1, [r1, r5]
1728   mov r3, r3, lsr #24
1729   strh  r1, [r8, #4]  @ movhi
1730   mov r3, r3, asl #1
1731   ldrh  r3, [r3, r5]
1732   strh  r3, [r8, #6]  @ movhi
1733   add r8, r8, #8
1734   b .L57
1735 .L55:
1736   subs  r4, ip, #4
1737   ldr r2, [lr, #4]
1738   ldreq r5, .L516+12
1739   beq .L61
1740   mov r3, r0, asl #3
1741   sub r3, r3, #32
1742   ldr r5, .L516+12
1743   mov r0, r2, asl r3
1744   mov r1, r8
1745   mov r2, #0
1746 .L63:
1747   mov r3, r0, lsr #24
1748   mov r3, r3, asl #1
1749   add r2, r2, #1
1750   ldrh  r3, [r3, r5]
1751   cmp r4, r2
1752   strh  r3, [r1], #2  @ movhi
1753   mov r0, r0, asl #8
1754   bne .L63
1755   add r3, r8, ip, asl #1
1756   sub r8, r3, #8
1757 .L61:
1758   ldr r3, [lr, #0]
1759   and r0, r3, #255
1760   mov r0, r0, asl #1
1761   ldrh  r0, [r0, r5]
1762   mov r2, r3, lsr #8
1763   and r2, r2, #255
1764   strh  r0, [r8, #6]  @ movhi
1765   mov r2, r2, asl #1
1766   ldrh  r2, [r2, r5]
1767   mov r1, r3, lsr #16
1768   and r1, r1, #255
1769   strh  r2, [r8, #4]  @ movhi
1770   mov r1, r1, asl #1
1771   ldrh  r1, [r1, r5]
1772   mov r3, r3, lsr #24
1773   strh  r1, [r8, #2]  @ movhi
1774   mov r3, r3, asl #1
1775   ldrh  r3, [r3, r5]
1776   strh  r3, [r8], #8  @ movhi
1777   b .L57
1778 .L22:
1779   mov r3, r0, asl #3
1780   ldr r1, [ip, #4]
1781   add r2, fp, r0
1782   sub r3, r3, #32
1783   cmp r2, #4
1784   mov r1, r1, asl r3
1785   bhi .L27
1786   cmp fp, #0
1787   ldrne r0, .L516+12
1788   movne r2, #0
1789   beq .L431
1790 .L36:
1791   mov r3, r1, lsr #24
1792   mov r3, r3, asl #1
1793   add r2, r2, #1
1794   ldrh  r3, [r3, r0]
1795   cmp fp, r2
1796   strh  r3, [r8], #2  @ movhi
1797   mov r1, r1, asl #8
1798   bne .L36
1799   b .L431
1800 .L37:
1801   add r2, fp, r0
1802   ldr r3, [ip, #0]
1803   cmp r2, #4
1804   mov r1, r0, asl #3
1805   mov r2, r3, lsr r1
1806   bhi .L41
1807   cmp fp, #0
1808   ldrne r0, .L516+12
1809   movne r1, r4
1810   beq .L431
1811 .L50:
1812   and r3, r2, #255
1813   mov r3, r3, asl #1
1814   add r1, r1, #1
1815   ldrh  r3, [r3, r0]
1816   cmp fp, r1
1817   strh  r3, [r8], #2  @ movhi
1818   mov r2, r2, lsr #8
1819   bne .L50
1820   b .L431
1821 .L27:
1822   rsbs  lr, r0, #4
1823   beq .L30
1824   ldr r4, .L516+12
1825   mov r0, r8
1826   mov r2, #0
1827 .L32:
1828   mov r3, r1, lsr #24
1829   mov r3, r3, asl #1
1830   add r2, r2, #1
1831   ldrh  r3, [r3, r4]
1832   cmp lr, r2
1833   strh  r3, [r0], #2  @ movhi
1834   mov r1, r1, asl #8
1835   bne .L32
1836   add r8, r8, lr, asl #1
1837 .L30:
1838   subs  r0, fp, lr
1839   ldr r2, [ip, #0]
1840   beq .L431
1841   ldr ip, .L516+12
1842   mov r1, #0
1843 .L35:
1844   mov r3, r2, lsr #24
1845   mov r3, r3, asl #1
1846   add r1, r1, #1
1847   ldrh  r3, [r3, ip]
1848   cmp r0, r1
1849   strh  r3, [r8], #2  @ movhi
1850   mov r2, r2, asl #8
1851   bne .L35
1852   b .L431
1853 .L41:
1854   rsbs  lr, r0, #4
1855   beq .L44
1856   ldr r5, .L516+12
1857   mov r1, r4
1858   mov r0, r8
1859 .L46:
1860   and r3, r2, #255
1861   mov r3, r3, asl #1
1862   add r1, r1, #1
1863   ldrh  r3, [r3, r5]
1864   cmp lr, r1
1865   strh  r3, [r0], #2  @ movhi
1866   mov r2, r2, lsr #8
1867   bne .L46
1868   add r8, r8, lr, asl #1
1869 .L44:
1870   subs  r0, fp, lr
1871   ldr r2, [ip, #4]
1872   beq .L431
1873   ldr ip, .L516+12
1874   mov r1, #0
1875 .L49:
1876   and r3, r2, #255
1877   mov r3, r3, asl #1
1878   add r1, r1, #1
1879   ldrh  r3, [r3, ip]
1880   cmp r0, r1
1881   strh  r3, [r8], #2  @ movhi
1882   mov r2, r2, lsr #8
1883   bne .L49
1884   b .L431
1885   .size render_scanline_text_base_normal, .-render_scanline_text_base_normal
1886   .align  2
1887   .global render_scanline_text_transparent_normal
1888   .type render_scanline_text_transparent_normal, %function
1889 render_scanline_text_transparent_normal:
1890   @ args = 0, pretend = 0, frame = 4
1891   @ frame_needed = 0, uses_anonymous_args = 0
1892   ldr ip, .L1161
1893   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1894   add r5, ip, r0, asl #2
1895   ldrh  lr, [r5, #18]
1896   ldrh  r4, [ip, #6]
1897   add ip, ip, r0, asl #1
1898   add r4, r4, lr
1899   mov r6, r4, asl #23
1900   ldrh  r7, [ip, #8]
1901   mov r6, r6, lsr #23
1902   ldrh  r0, [r5, #16]
1903   cmp r6, #255
1904   movls lr, #0
1905   movhi lr, #1
1906   mov r5, r7, lsr #14
1907   rsb r9, r1, r2
1908   ldr r2, .L1161+4
1909   ands  lr, lr, r5, lsr #1
1910   mov ip, r7, asl #3
1911   add lr, r3, r1, asl #1
1912   ldr r8, .L1161+8
1913   subne r3, r6, #256
1914   ldr r2, [r2, r5, asl #2]
1915   movne r3, r3, lsr #3
1916   moveq r3, r4, asl #3
1917   add r0, r0, r1
1918   and ip, ip, #63488
1919   addne r3, r3, r2, lsr #3
1920   andeq r3, r3, #1984
1921   add ip, ip, r8
1922   mov r0, r0, asl #23
1923   addne r4, ip, r3, asl #6
1924   addeq r4, ip, r3
1925   mov r0, r0, lsr #23
1926   tst r5, #1
1927   andeq r0, r0, #255
1928   sub sp, sp, #4
1929   moveq r3, r0, lsr #3
1930   addeq ip, r4, r3, asl #1
1931   streq r4, [sp, #0]
1932   beq .L526
1933   cmp r0, #255
1934   subhi r0, r0, #256
1935   movhi r3, r0, lsr #3
1936   movls r3, r0, lsr #3
1937   addhi r3, r4, r3, asl #1
1938   addls ip, r4, r3, asl #1
1939   addls r4, r4, #2048
1940   addhi ip, r3, #2048
1941   strhi r4, [sp, #0]
1942   strls r4, [sp, #0]
1943 .L526:
1944   tst r7, #128
1945   beq .L527
1946   and r1, r0, #255
1947   and r3, r6, #7
1948   mov r2, r7, asl #12
1949   mov r3, r3, asl #3
1950   and r2, r2, #49152
1951   rsb sl, r1, #256
1952   add r2, r2, r3
1953   cmp r9, sl
1954   mov r3, r3, asl #1
1955   add r8, r2, r8
1956   rsb fp, r3, #56
1957   and r0, r0, #7
1958   bls .L1136
1959   cmp r0, #0
1960   moveq r5, r0
1961   bne .L1137
1962 .L729:
1963   rsb r3, r5, sl
1964   movs  r7, r3, lsr #3
1965   beq .L783
1966   ldr r5, .L1161+12
1967   mov r0, lr
1968   mov r6, #0
1969   b .L785
1970 .L1138:
1971   ldr r2, [r1, #4]
1972   cmp r2, #0
1973   beq .L790
1974   ands  r3, r2, #255
1975   movne r3, r3, asl #1
1976   ldrneh  r3, [r3, r5]
1977   strneh  r3, [r0, #6]  @ movhi
1978   mov r3, r2, lsr #8
1979   ands  r3, r3, #255
1980   movne r3, r3, asl #1
1981   ldrneh  r3, [r3, r5]
1982   strneh  r3, [r0, #4]  @ movhi
1983   mov r3, r2, lsr #16
1984   ands  r3, r3, #255
1985   movne r3, r3, asl #1
1986   ldrneh  r3, [r3, r5]
1987   strneh  r3, [r0, #2]  @ movhi
1988   movs  r3, r2, lsr #24
1989   movne r3, r3, asl #1
1990   ldrneh  r3, [r3, r5]
1991   strneh  r3, [r0, #0]  @ movhi
1992 .L790:
1993   ldr r2, [r1, #0]
1994   cmp r2, #0
1995   beq .L799
1996   ands  r3, r2, #255
1997   movne r3, r3, asl #1
1998   ldrneh  r3, [r3, r5]
1999   strneh  r3, [r0, #14] @ movhi
2000   mov r3, r2, lsr #8
2001   ands  r3, r3, #255
2002   movne r3, r3, asl #1
2003   ldrneh  r3, [r3, r5]
2004   strneh  r3, [r0, #12] @ movhi
2005   mov r3, r2, lsr #16
2006   ands  r3, r3, #255
2007   movne r3, r3, asl #1
2008   ldrneh  r3, [r3, r5]
2009   strneh  r3, [r0, #10] @ movhi
2010   movs  r3, r2, lsr #24
2011   movne r3, r3, asl #1
2012   ldrneh  r3, [r3, r5]
2013   strneh  r3, [r0, #8]  @ movhi
2014 .L799:
2015   add r6, r6, #1
2016   cmp r7, r6
2017   add r0, r0, #16
2018   beq .L825
2019 .L1139:
2020   add ip, ip, #2
2021 .L785:
2022   ldrh  r2, [ip, #0]
2023   mov r3, r2, asl #22
2024   mov r3, r3, lsr #22
2025   tst r2, #2048
2026   add r1, r8, r3, asl #6
2027   addne r1, r1, fp
2028   tst r2, #1024
2029   bne .L1138
2030   ldr r2, [r1, #0]
2031   cmp r2, #0
2032   beq .L808
2033   ands  r3, r2, #255
2034   movne r3, r3, asl #1
2035   ldrneh  r3, [r3, r5]
2036   strneh  r3, [r0, #0]  @ movhi
2037   mov r3, r2, lsr #8
2038   ands  r3, r3, #255
2039   movne r3, r3, asl #1
2040   ldrneh  r3, [r3, r5]
2041   strneh  r3, [r0, #2]  @ movhi
2042   mov r3, r2, lsr #16
2043   ands  r3, r3, #255
2044   movne r3, r3, asl #1
2045   ldrneh  r3, [r3, r5]
2046   strneh  r3, [r0, #4]  @ movhi
2047   movs  r3, r2, lsr #24
2048   movne r3, r3, asl #1
2049   ldrneh  r3, [r3, r5]
2050   strneh  r3, [r0, #6]  @ movhi
2051 .L808:
2052   ldr r2, [r1, #4]
2053   cmp r2, #0
2054   beq .L799
2055   ands  r3, r2, #255
2056   movne r3, r3, asl #1
2057   ldrneh  r3, [r3, r5]
2058   add r6, r6, #1
2059   strneh  r3, [r0, #8]  @ movhi
2060   mov r3, r2, lsr #8
2061   ands  r3, r3, #255
2062   movne r3, r3, asl #1
2063   ldrneh  r3, [r3, r5]
2064   strneh  r3, [r0, #10] @ movhi
2065   mov r3, r2, lsr #16
2066   ands  r3, r3, #255
2067   movne r3, r3, asl #1
2068   ldrneh  r3, [r3, r5]
2069   strneh  r3, [r0, #12] @ movhi
2070   movs  r3, r2, lsr #24
2071   movne r3, r3, asl #1
2072   ldrneh  r3, [r3, r5]
2073   strneh  r3, [r0, #14] @ movhi
2074   cmp r7, r6
2075   add r0, r0, #16
2076   bne .L1139
2077 .L825:
2078   add lr, lr, r7, asl #4
2079 .L783:
2080   rsb sl, sl, r9
2081   movs  r4, sl, lsr #3
2082   ldreq r3, [sp, #0]
2083   beq .L829
2084   ldr r7, .L1161+12
2085   ldr r6, [sp, #0]
2086   mov r5, lr
2087   mov r2, #0
2088   b .L830
2089 .L1141:
2090   ldr r1, [r0, #4]
2091   cmp r1, #0
2092   beq .L835
2093   ands  r3, r1, #255
2094   movne r3, r3, asl #1
2095   ldrneh  r3, [r3, r7]
2096   strneh  r3, [r5, #6]  @ movhi
2097   mov r3, r1, lsr #8
2098   ands  r3, r3, #255
2099   movne r3, r3, asl #1
2100   ldrneh  r3, [r3, r7]
2101   strneh  r3, [r5, #4]  @ movhi
2102   mov r3, r1, lsr #16
2103   ands  r3, r3, #255
2104   movne r3, r3, asl #1
2105   ldrneh  r3, [r3, r7]
2106   strneh  r3, [r5, #2]  @ movhi
2107   movs  r3, r1, lsr #24
2108   movne r3, r3, asl #1
2109   ldrneh  r3, [r3, r7]
2110   strneh  r3, [r5, #0]  @ movhi
2111 .L835:
2112   ldr r1, [r0, #0]
2113   cmp r1, #0
2114   beq .L844
2115   ands  r3, r1, #255
2116   movne r3, r3, asl #1
2117   ldrneh  r3, [r3, r7]
2118   strneh  r3, [r5, #14] @ movhi
2119   mov r3, r1, lsr #8
2120   ands  r3, r3, #255
2121   movne r3, r3, asl #1
2122   ldrneh  r3, [r3, r7]
2123   strneh  r3, [r5, #12] @ movhi
2124   mov r3, r1, lsr #16
2125   ands  r3, r3, #255
2126   movne r3, r3, asl #1
2127   ldrneh  r3, [r3, r7]
2128   strneh  r3, [r5, #10] @ movhi
2129   movs  r3, r1, lsr #24
2130   movne r3, r3, asl #1
2131   ldrneh  r3, [r3, r7]
2132   strneh  r3, [r5, #8]  @ movhi
2133 .L844:
2134   add r2, r2, #1
2135   cmp r4, r2
2136   add r5, r5, #16
2137   add r6, r6, #2
2138   beq .L1140
2139 .L830:
2140   ldrh  r1, [r6, #0]
2141   mov r3, r1, asl #22
2142   mov r3, r3, lsr #22
2143   tst r1, #2048
2144   add r0, r8, r3, asl #6
2145   addne r0, r0, fp
2146   tst r1, #1024
2147   bne .L1141
2148   ldr r1, [r0, #0]
2149   cmp r1, #0
2150   beq .L853
2151   ands  r3, r1, #255
2152   movne r3, r3, asl #1
2153   ldrneh  r3, [r3, r7]
2154   strneh  r3, [r5, #0]  @ movhi
2155   mov r3, r1, lsr #8
2156   ands  r3, r3, #255
2157   movne r3, r3, asl #1
2158   ldrneh  r3, [r3, r7]
2159   strneh  r3, [r5, #2]  @ movhi
2160   mov r3, r1, lsr #16
2161   ands  r3, r3, #255
2162   movne r3, r3, asl #1
2163   ldrneh  r3, [r3, r7]
2164   strneh  r3, [r5, #4]  @ movhi
2165   movs  r3, r1, lsr #24
2166   movne r3, r3, asl #1
2167   ldrneh  r3, [r3, r7]
2168   strneh  r3, [r5, #6]  @ movhi
2169 .L853:
2170   ldr r1, [r0, #4]
2171   cmp r1, #0
2172   beq .L844
2173   ands  r3, r1, #255
2174   movne r3, r3, asl #1
2175   ldrneh  r3, [r3, r7]
2176   add r2, r2, #1
2177   strneh  r3, [r5, #8]  @ movhi
2178   mov r3, r1, lsr #8
2179   ands  r3, r3, #255
2180   movne r3, r3, asl #1
2181   ldrneh  r3, [r3, r7]
2182   add r6, r6, #2
2183   strneh  r3, [r5, #10] @ movhi
2184   mov r3, r1, lsr #16
2185   ands  r3, r3, #255
2186   movne r3, r3, asl #1
2187   ldrneh  r3, [r3, r7]
2188   strneh  r3, [r5, #12] @ movhi
2189   movs  r3, r1, lsr #24
2190   movne r3, r3, asl #1
2191   ldrneh  r3, [r3, r7]
2192   strneh  r3, [r5, #14] @ movhi
2193   cmp r4, r2
2194   add r5, r5, #16
2195   bne .L830
2196 .L1140:
2197   ldr r2, [sp, #0]
2198   add lr, lr, r4, asl #4
2199   add r3, r2, r4, asl #1
2200 .L829:
2201   ands  r5, sl, #7
2202   beq .L1118
2203   ldrh  r4, [r3, #0]
2204   mov r3, r4, asl #22
2205   mov r3, r3, lsr #22
2206   tst r4, #2048
2207   add ip, r8, r3, asl #6
2208   addne ip, ip, fp
2209   tst r4, #1024
2210   beq .L874
2211   cmp r5, #3
2212   ldrls r2, [ip, #4]
2213   bls .L888
2214   ldr r1, [ip, #4]
2215   cmp r1, #0
2216   beq .L878
2217   ands  r2, r1, #255
2218   ldrne r3, .L1161+12
2219   movne r2, r2, asl #1
2220   ldrneh  r2, [r2, r3]
2221   mov r3, r1, lsr #8
2222   strneh  r2, [lr, #6]  @ movhi
2223   ands  r2, r3, #255
2224   ldrne r3, .L1161+12
2225   movne r2, r2, asl #1
2226   ldrneh  r2, [r2, r3]
2227   mov r3, r1, lsr #16
2228   strneh  r2, [lr, #4]  @ movhi
2229   ands  r2, r3, #255
2230   ldrne r3, .L1161+12
2231   movne r2, r2, asl #1
2232   ldrneh  r2, [r2, r3]
2233   strneh  r2, [lr, #2]  @ movhi
2234   movs  r2, r1, lsr #24
2235   ldrne r3, .L1161+12
2236   movne r2, r2, asl #1
2237   ldrneh  r2, [r2, r3]
2238   strneh  r2, [lr, #0]  @ movhi
2239 .L878:
2240   subs  r5, r5, #4
2241   ldr r2, [ip, #0]
2242   addne lr, lr, #8
2243   beq .L1118
2244 .L888:
2245   mov r1, #0
2246 .L889:
2247   movs  r3, r2, lsr #24
2248   mov ip, r3, asl #1
2249   ldrne r3, .L1161+12
2250   mov r0, r1, asl #1
2251   ldrneh  ip, [ip, r3]
2252   add r1, r1, #1
2253   strneh  ip, [r0, lr]  @ movhi
2254   cmp r1, r5
2255   mov r2, r2, asl #8
2256   bcc .L889
2257 .L1118:
2258   add sp, sp, #4
2259   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
2260 .L527:
2261   and r1, r0, #255
2262   and r3, r6, #7
2263   mov r2, r7, asl #12
2264   mov r3, r3, asl #2
2265   and r2, r2, #49152
2266   rsb r4, r1, #256
2267   add r2, r2, r3
2268   cmp r9, r4
2269   mov r3, r3, asl #1
2270   add r8, r2, r8
2271   rsb fp, r3, #28
2272   and r0, r0, #7
2273   bls .L1142
2274   cmp r0, #0
2275   moveq r6, r0
2276   bne .L1143
2277 .L1003:
2278   rsb r3, r6, r4
2279   movs  sl, r3, lsr #3
2280   beq .L1021
2281   ldr r6, .L1161+12
2282   mov r0, lr
2283   mov r7, #0
2284   b .L1023
2285 .L1144:
2286   ldr r2, [r3, #0]
2287   cmp r2, #0
2288   beq .L1028
2289   ands  r3, r2, #15
2290   orrne r3, r5, r3
2291   movne r3, r3, asl #1
2292   ldrneh  r3, [r3, r6]
2293   strneh  r3, [r0, #14] @ movhi
2294   mov r3, r2, lsr #4
2295   ands  r3, r3, #15
2296   orrne r3, r5, r3
2297   movne r3, r3, asl #1
2298   ldrneh  r3, [r3, r6]
2299   strneh  r3, [r0, #12] @ movhi
2300   mov r3, r2, lsr #8
2301   ands  r3, r3, #15
2302   orrne r3, r5, r3
2303   movne r3, r3, asl #1
2304   ldrneh  r3, [r3, r6]
2305   strneh  r3, [r0, #10] @ movhi
2306   mov r3, r2, lsr #12
2307   ands  r3, r3, #15
2308   orrne r3, r5, r3
2309   movne r3, r3, asl #1
2310   ldrneh  r3, [r3, r6]
2311   strneh  r3, [r0, #8]  @ movhi
2312   mov r3, r2, lsr #16
2313   ands  r3, r3, #15
2314   orrne r3, r5, r3
2315   movne r3, r3, asl #1
2316   ldrneh  r3, [r3, r6]
2317   strneh  r3, [r0, #6]  @ movhi
2318   mov r3, r2, lsr #20
2319   ands  r3, r3, #15
2320   orrne r3, r5, r3
2321   movne r3, r3, asl #1
2322   ldrneh  r3, [r3, r6]
2323   strneh  r3, [r0, #4]  @ movhi
2324   mov r3, r2, lsr #24
2325   ands  r3, r3, #15
2326   orrne r3, r5, r3
2327   movne r3, r3, asl #1
2328   ldrneh  r3, [r3, r6]
2329   strneh  r3, [r0, #2]  @ movhi
2330   movs  r3, r2, lsr #28
2331   orrne r3, r5, r3
2332   movne r3, r3, asl #1
2333   ldrneh  r3, [r3, r6]
2334   strneh  r3, [r0, #0]  @ movhi
2335 .L1028:
2336   add r7, r7, #1
2337   cmp sl, r7
2338   add r0, r0, #16
2339   beq .L1061
2340 .L1145:
2341   add ip, ip, #2
2342 .L1023:
2343   ldrh  r1, [ip, #0]
2344   mov r2, r1, asl #22
2345   mov r3, r1, lsr #12
2346   mov r2, r2, lsr #22
2347   tst r1, #2048
2348   mov r5, r3, asl #4
2349   add r3, r8, r2, asl #5
2350   addne r3, r3, fp
2351   tst r1, #1024
2352   bne .L1144
2353   ldr r2, [r3, #0]
2354   cmp r2, #0
2355   beq .L1028
2356   ands  r3, r2, #15
2357   orrne r3, r5, r3
2358   movne r3, r3, asl #1
2359   ldrneh  r3, [r3, r6]
2360   add r7, r7, #1
2361   strneh  r3, [r0, #0]  @ movhi
2362   mov r3, r2, lsr #4
2363   ands  r3, r3, #15
2364   orrne r3, r5, r3
2365   movne r3, r3, asl #1
2366   ldrneh  r3, [r3, r6]
2367   strneh  r3, [r0, #2]  @ movhi
2368   mov r3, r2, lsr #8
2369   ands  r3, r3, #15
2370   orrne r3, r5, r3
2371   movne r3, r3, asl #1
2372   ldrneh  r3, [r3, r6]
2373   strneh  r3, [r0, #4]  @ movhi
2374   mov r3, r2, lsr #12
2375   ands  r3, r3, #15
2376   orrne r3, r5, r3
2377   movne r3, r3, asl #1
2378   ldrneh  r3, [r3, r6]
2379   strneh  r3, [r0, #6]  @ movhi
2380   mov r3, r2, lsr #16
2381   ands  r3, r3, #15
2382   orrne r3, r5, r3
2383   movne r3, r3, asl #1
2384   ldrneh  r3, [r3, r6]
2385   strneh  r3, [r0, #8]  @ movhi
2386   mov r3, r2, lsr #20
2387   ands  r3, r3, #15
2388   orrne r3, r5, r3
2389   movne r3, r3, asl #1
2390   ldrneh  r3, [r3, r6]
2391   strneh  r3, [r0, #10] @ movhi
2392   mov r3, r2, lsr #24
2393   ands  r3, r3, #15
2394   orrne r3, r5, r3
2395   movne r3, r3, asl #1
2396   ldrneh  r3, [r3, r6]
2397   strneh  r3, [r0, #12] @ movhi
2398   movs  r3, r2, lsr #28
2399   orrne r3, r5, r3
2400   movne r3, r3, asl #1
2401   ldrneh  r3, [r3, r6]
2402   strneh  r3, [r0, #14] @ movhi
2403   cmp sl, r7
2404   add r0, r0, #16
2405   bne .L1145
2406 .L1061:
2407   add lr, lr, sl, asl #4
2408 .L1021:
2409   rsb sl, r4, r9
2410   movs  r4, sl, lsr #3
2411   ldreq r2, [sp, #0]
2412   beq .L1065
2413   ldr r7, .L1161+12
2414   ldr r6, [sp, #0]
2415   mov r0, lr
2416   mov ip, #0
2417   b .L1066
2418 .L1147:
2419   ldr r2, [r3, #0]
2420   cmp r2, #0
2421   beq .L1071
2422   ands  r3, r2, #15
2423   orrne r3, r5, r3
2424   movne r3, r3, asl #1
2425   ldrneh  r3, [r3, r7]
2426   strneh  r3, [r0, #14] @ movhi
2427   mov r3, r2, lsr #4
2428   ands  r3, r3, #15
2429   orrne r3, r5, r3
2430   movne r3, r3, asl #1
2431   ldrneh  r3, [r3, r7]
2432   strneh  r3, [r0, #12] @ movhi
2433   mov r3, r2, lsr #8
2434   ands  r3, r3, #15
2435   orrne r3, r5, r3
2436   movne r3, r3, asl #1
2437   ldrneh  r3, [r3, r7]
2438   strneh  r3, [r0, #10] @ movhi
2439   mov r3, r2, lsr #12
2440   ands  r3, r3, #15
2441   orrne r3, r5, r3
2442   movne r3, r3, asl #1
2443   ldrneh  r3, [r3, r7]
2444   strneh  r3, [r0, #8]  @ movhi
2445   mov r3, r2, lsr #16
2446   ands  r3, r3, #15
2447   orrne r3, r5, r3
2448   movne r3, r3, asl #1
2449   ldrneh  r3, [r3, r7]
2450   strneh  r3, [r0, #6]  @ movhi
2451   mov r3, r2, lsr #20
2452   ands  r3, r3, #15
2453   orrne r3, r5, r3
2454   movne r3, r3, asl #1
2455   ldrneh  r3, [r3, r7]
2456   strneh  r3, [r0, #4]  @ movhi
2457   mov r3, r2, lsr #24
2458   ands  r3, r3, #15
2459   orrne r3, r5, r3
2460   movne r3, r3, asl #1
2461   ldrneh  r3, [r3, r7]
2462   strneh  r3, [r0, #2]  @ movhi
2463   movs  r3, r2, lsr #28
2464   orrne r3, r5, r3
2465   movne r3, r3, asl #1
2466   ldrneh  r3, [r3, r7]
2467   strneh  r3, [r0, #0]  @ movhi
2468 .L1071:
2469   add ip, ip, #1
2470   cmp r4, ip
2471   add r0, r0, #16
2472   add r6, r6, #2
2473   beq .L1146
2474 .L1066:
2475   ldrh  r1, [r6, #0]
2476   mov r2, r1, asl #22
2477   mov r3, r1, lsr #12
2478   mov r2, r2, lsr #22
2479   tst r1, #2048
2480   mov r5, r3, asl #4
2481   add r3, r8, r2, asl #5
2482   addne r3, r3, fp
2483   tst r1, #1024
2484   bne .L1147
2485   ldr r2, [r3, #0]
2486   cmp r2, #0
2487   beq .L1071
2488   ands  r3, r2, #15
2489   orrne r3, r5, r3
2490   movne r3, r3, asl #1
2491   ldrneh  r3, [r3, r7]
2492   add ip, ip, #1
2493   strneh  r3, [r0, #0]  @ movhi
2494   mov r3, r2, lsr #4
2495   ands  r3, r3, #15
2496   orrne r3, r5, r3
2497   movne r3, r3, asl #1
2498   ldrneh  r3, [r3, r7]
2499   add r6, r6, #2
2500   strneh  r3, [r0, #2]  @ movhi
2501   mov r3, r2, lsr #8
2502   ands  r3, r3, #15
2503   orrne r3, r5, r3
2504   movne r3, r3, asl #1
2505   ldrneh  r3, [r3, r7]
2506   strneh  r3, [r0, #4]  @ movhi
2507   mov r3, r2, lsr #12
2508   ands  r3, r3, #15
2509   orrne r3, r5, r3
2510   movne r3, r3, asl #1
2511   ldrneh  r3, [r3, r7]
2512   strneh  r3, [r0, #6]  @ movhi
2513   mov r3, r2, lsr #16
2514   ands  r3, r3, #15
2515   orrne r3, r5, r3
2516   movne r3, r3, asl #1
2517   ldrneh  r3, [r3, r7]
2518   strneh  r3, [r0, #8]  @ movhi
2519   mov r3, r2, lsr #20
2520   ands  r3, r3, #15
2521   orrne r3, r5, r3
2522   movne r3, r3, asl #1
2523   ldrneh  r3, [r3, r7]
2524   strneh  r3, [r0, #10] @ movhi
2525   mov r3, r2, lsr #24
2526   ands  r3, r3, #15
2527   orrne r3, r5, r3
2528   movne r3, r3, asl #1
2529   ldrneh  r3, [r3, r7]
2530   strneh  r3, [r0, #12] @ movhi
2531   movs  r3, r2, lsr #28
2532   orrne r3, r5, r3
2533   movne r3, r3, asl #1
2534   ldrneh  r3, [r3, r7]
2535   strneh  r3, [r0, #14] @ movhi
2536   cmp r4, ip
2537   add r0, r0, #16
2538   bne .L1066
2539 .L1146:
2540   ldr r3, [sp, #0]
2541   add lr, lr, r4, asl #4
2542   add r2, r3, r4, asl #1
2543 .L1065:
2544   ands  r5, sl, #7
2545   beq .L1118
2546   ldrh  r4, [r2, #0]
2547   mov r3, r4, asl #22
2548   mov r3, r3, lsr #22
2549   tst r4, #2048
2550   add r3, r8, r3, asl #5
2551   mov r2, r4, lsr #12
2552   addne r3, r3, fp
2553   tst r4, #1024
2554   mov ip, r2, asl #4
2555   beq .L1108
2556   ldr r2, [r3, #0]
2557   ldr r4, .L1161+12
2558   mov r0, #0
2559 .L1110:
2560   movs  r3, r2, lsr #28
2561   orr r3, ip, r3
2562   mov r3, r3, asl #1
2563   ldrneh  r3, [r3, r4]
2564   mov r1, r0, asl #1
2565   add r0, r0, #1
2566   strneh  r3, [r1, lr]  @ movhi
2567   cmp r5, r0
2568   mov r2, r2, asl #4
2569   bne .L1110
2570   b .L1118
2571 .L1142:
2572   cmp r0, #0
2573   bne .L1148
2574 .L912:
2575   movs  sl, r9, lsr #3
2576   beq .L947
2577   ldr r6, .L1161+12
2578   mov r0, lr
2579   mov r5, ip
2580   mov r7, #0
2581   b .L949
2582 .L1150:
2583   ldr r2, [r3, #0]
2584   cmp r2, #0
2585   beq .L954
2586   ands  r3, r2, #15
2587   orrne r3, r4, r3
2588   movne r3, r3, asl #1
2589   ldrneh  r3, [r3, r6]
2590   strneh  r3, [r0, #14] @ movhi
2591   mov r3, r2, lsr #4
2592   ands  r3, r3, #15
2593   orrne r3, r4, r3
2594   movne r3, r3, asl #1
2595   ldrneh  r3, [r3, r6]
2596   strneh  r3, [r0, #12] @ movhi
2597   mov r3, r2, lsr #8
2598   ands  r3, r3, #15
2599   orrne r3, r4, r3
2600   movne r3, r3, asl #1
2601   ldrneh  r3, [r3, r6]
2602   strneh  r3, [r0, #10] @ movhi
2603   mov r3, r2, lsr #12
2604   ands  r3, r3, #15
2605   orrne r3, r4, r3
2606   movne r3, r3, asl #1
2607   ldrneh  r3, [r3, r6]
2608   strneh  r3, [r0, #8]  @ movhi
2609   mov r3, r2, lsr #16
2610   ands  r3, r3, #15
2611   orrne r3, r4, r3
2612   movne r3, r3, asl #1
2613   ldrneh  r3, [r3, r6]
2614   strneh  r3, [r0, #6]  @ movhi
2615   mov r3, r2, lsr #20
2616   ands  r3, r3, #15
2617   orrne r3, r4, r3
2618   movne r3, r3, asl #1
2619   ldrneh  r3, [r3, r6]
2620   strneh  r3, [r0, #4]  @ movhi
2621   mov r3, r2, lsr #24
2622   ands  r3, r3, #15
2623   orrne r3, r4, r3
2624   movne r3, r3, asl #1
2625   ldrneh  r3, [r3, r6]
2626   strneh  r3, [r0, #2]  @ movhi
2627   movs  r3, r2, lsr #28
2628   orrne r3, r4, r3
2629   movne r3, r3, asl #1
2630   ldrneh  r3, [r3, r6]
2631   strneh  r3, [r0, #0]  @ movhi
2632 .L954:
2633   add r7, r7, #1
2634   cmp sl, r7
2635   add r0, r0, #16
2636   add r5, r5, #2
2637   beq .L1149
2638 .L949:
2639   ldrh  r1, [r5, #0]
2640   mov r2, r1, asl #22
2641   mov r3, r1, lsr #12
2642   mov r2, r2, lsr #22
2643   tst r1, #2048
2644   mov r4, r3, asl #4
2645   add r3, r8, r2, asl #5
2646   addne r3, r3, fp
2647   tst r1, #1024
2648   bne .L1150
2649   ldr r2, [r3, #0]
2650   cmp r2, #0
2651   beq .L954
2652   ands  r3, r2, #15
2653   orrne r3, r4, r3
2654   movne r3, r3, asl #1
2655   ldrneh  r3, [r3, r6]
2656   add r7, r7, #1
2657   strneh  r3, [r0, #0]  @ movhi
2658   mov r3, r2, lsr #4
2659   ands  r3, r3, #15
2660   orrne r3, r4, r3
2661   movne r3, r3, asl #1
2662   ldrneh  r3, [r3, r6]
2663   add r5, r5, #2
2664   strneh  r3, [r0, #2]  @ movhi
2665   mov r3, r2, lsr #8
2666   ands  r3, r3, #15
2667   orrne r3, r4, r3
2668   movne r3, r3, asl #1
2669   ldrneh  r3, [r3, r6]
2670   strneh  r3, [r0, #4]  @ movhi
2671   mov r3, r2, lsr #12
2672   ands  r3, r3, #15
2673   orrne r3, r4, r3
2674   movne r3, r3, asl #1
2675   ldrneh  r3, [r3, r6]
2676   strneh  r3, [r0, #6]  @ movhi
2677   mov r3, r2, lsr #16
2678   ands  r3, r3, #15
2679   orrne r3, r4, r3
2680   movne r3, r3, asl #1
2681   ldrneh  r3, [r3, r6]
2682   strneh  r3, [r0, #8]  @ movhi
2683   mov r3, r2, lsr #20
2684   ands  r3, r3, #15
2685   orrne r3, r4, r3
2686   movne r3, r3, asl #1
2687   ldrneh  r3, [r3, r6]
2688   strneh  r3, [r0, #10] @ movhi
2689   mov r3, r2, lsr #24
2690   ands  r3, r3, #15
2691   orrne r3, r4, r3
2692   movne r3, r3, asl #1
2693   ldrneh  r3, [r3, r6]
2694   strneh  r3, [r0, #12] @ movhi
2695   movs  r3, r2, lsr #28
2696   orrne r3, r4, r3
2697   movne r3, r3, asl #1
2698   ldrneh  r3, [r3, r6]
2699   strneh  r3, [r0, #14] @ movhi
2700   cmp sl, r7
2701   add r0, r0, #16
2702   bne .L949
2703 .L1149:
2704   add lr, lr, sl, asl #4
2705   add ip, ip, sl, asl #1
2706 .L947:
2707   ands  r4, r9, #7
2708   beq .L1118
2709   ldrh  r1, [ip, #0]
2710   mov r3, r1, asl #22
2711   mov r3, r3, lsr #22
2712   tst r1, #2048
2713   add r3, r8, r3, asl #5
2714   mov r2, r1, lsr #12
2715   addne r3, r3, fp
2716   tst r1, #1024
2717   mov ip, r2, asl #4
2718   beq .L991
2719   ldr r2, [r3, #0]
2720   ldr r5, .L1161+12
2721   mov r0, #0
2722 .L993:
2723   movs  r3, r2, lsr #28
2724   orr r3, ip, r3
2725   mov r3, r3, asl #1
2726   ldrneh  r3, [r3, r5]
2727   mov r1, r0, asl #1
2728   add r0, r0, #1
2729   strneh  r3, [r1, lr]  @ movhi
2730   cmp r4, r0
2731   mov r2, r2, asl #4
2732   bne .L993
2733   b .L1118
2734 .L1136:
2735   cmp r0, #0
2736   bne .L1151
2737 .L531:
2738   movs  r7, r9, lsr #3
2739   beq .L645
2740   ldr r5, .L1161+12
2741   mov r0, lr
2742   mov r4, ip
2743   mov r6, #0
2744   b .L647
2745 .L1153:
2746   ldr r2, [r1, #4]
2747   cmp r2, #0
2748   beq .L652
2749   ands  r3, r2, #255
2750   movne r3, r3, asl #1
2751   ldrneh  r3, [r3, r5]
2752   strneh  r3, [r0, #6]  @ movhi
2753   mov r3, r2, lsr #8
2754   ands  r3, r3, #255
2755   movne r3, r3, asl #1
2756   ldrneh  r3, [r3, r5]
2757   strneh  r3, [r0, #4]  @ movhi
2758   mov r3, r2, lsr #16
2759   ands  r3, r3, #255
2760   movne r3, r3, asl #1
2761   ldrneh  r3, [r3, r5]
2762   strneh  r3, [r0, #2]  @ movhi
2763   movs  r3, r2, lsr #24
2764   movne r3, r3, asl #1
2765   ldrneh  r3, [r3, r5]
2766   strneh  r3, [r0, #0]  @ movhi
2767 .L652:
2768   ldr r2, [r1, #0]
2769   cmp r2, #0
2770   beq .L661
2771   ands  r3, r2, #255
2772   movne r3, r3, asl #1
2773   ldrneh  r3, [r3, r5]
2774   strneh  r3, [r0, #14] @ movhi
2775   mov r3, r2, lsr #8
2776   ands  r3, r3, #255
2777   movne r3, r3, asl #1
2778   ldrneh  r3, [r3, r5]
2779   strneh  r3, [r0, #12] @ movhi
2780   mov r3, r2, lsr #16
2781   ands  r3, r3, #255
2782   movne r3, r3, asl #1
2783   ldrneh  r3, [r3, r5]
2784   strneh  r3, [r0, #10] @ movhi
2785   movs  r3, r2, lsr #24
2786   movne r3, r3, asl #1
2787   ldrneh  r3, [r3, r5]
2788   strneh  r3, [r0, #8]  @ movhi
2789 .L661:
2790   add r6, r6, #1
2791   cmp r7, r6
2792   add r0, r0, #16
2793   add r4, r4, #2
2794   beq .L1152
2795 .L647:
2796   ldrh  r2, [r4, #0]
2797   mov r3, r2, asl #22
2798   mov r3, r3, lsr #22
2799   tst r2, #2048
2800   add r1, r8, r3, asl #6
2801   addne r1, r1, fp
2802   tst r2, #1024
2803   bne .L1153
2804   ldr r2, [r1, #0]
2805   cmp r2, #0
2806   beq .L670
2807   ands  r3, r2, #255
2808   movne r3, r3, asl #1
2809   ldrneh  r3, [r3, r5]
2810   strneh  r3, [r0, #0]  @ movhi
2811   mov r3, r2, lsr #8
2812   ands  r3, r3, #255
2813   movne r3, r3, asl #1
2814   ldrneh  r3, [r3, r5]
2815   strneh  r3, [r0, #2]  @ movhi
2816   mov r3, r2, lsr #16
2817   ands  r3, r3, #255
2818   movne r3, r3, asl #1
2819   ldrneh  r3, [r3, r5]
2820   strneh  r3, [r0, #4]  @ movhi
2821   movs  r3, r2, lsr #24
2822   movne r3, r3, asl #1
2823   ldrneh  r3, [r3, r5]
2824   strneh  r3, [r0, #6]  @ movhi
2825 .L670:
2826   ldr r2, [r1, #4]
2827   cmp r2, #0
2828   beq .L661
2829   ands  r3, r2, #255
2830   movne r3, r3, asl #1
2831   ldrneh  r3, [r3, r5]
2832   add r6, r6, #1
2833   strneh  r3, [r0, #8]  @ movhi
2834   mov r3, r2, lsr #8
2835   ands  r3, r3, #255
2836   movne r3, r3, asl #1
2837   ldrneh  r3, [r3, r5]
2838   add r4, r4, #2
2839   strneh  r3, [r0, #10] @ movhi
2840   mov r3, r2, lsr #16
2841   ands  r3, r3, #255
2842   movne r3, r3, asl #1
2843   ldrneh  r3, [r3, r5]
2844   strneh  r3, [r0, #12] @ movhi
2845   movs  r3, r2, lsr #24
2846   movne r3, r3, asl #1
2847   ldrneh  r3, [r3, r5]
2848   strneh  r3, [r0, #14] @ movhi
2849   cmp r7, r6
2850   add r0, r0, #16
2851   bne .L647
2852 .L1152:
2853   add lr, lr, r7, asl #4
2854   add ip, ip, r7, asl #1
2855 .L645:
2856   ands  r4, r9, #7
2857   beq .L1118
2858   ldrh  r2, [ip, #0]
2859   mov r3, r2, asl #22
2860   mov r3, r3, lsr #22
2861   tst r2, #2048
2862   add ip, r8, r3, asl #6
2863   addne ip, ip, fp
2864   tst r2, #1024
2865   beq .L691
2866   cmp r4, #3
2867   ldrls r2, [ip, #4]
2868   bls .L705
2869   ldr r1, [ip, #4]
2870   cmp r1, #0
2871   beq .L695
2872   ands  r2, r1, #255
2873   ldrne r3, .L1161+12
2874   movne r2, r2, asl #1
2875   ldrneh  r2, [r2, r3]
2876   mov r3, r1, lsr #8
2877   strneh  r2, [lr, #6]  @ movhi
2878   ands  r2, r3, #255
2879   ldrne r3, .L1161+12
2880   movne r2, r2, asl #1
2881   ldrneh  r2, [r2, r3]
2882   mov r3, r1, lsr #16
2883   strneh  r2, [lr, #4]  @ movhi
2884   ands  r2, r3, #255
2885   ldrne r3, .L1161+12
2886   movne r2, r2, asl #1
2887   ldrneh  r2, [r2, r3]
2888   strneh  r2, [lr, #2]  @ movhi
2889   movs  r2, r1, lsr #24
2890   ldrne r3, .L1161+12
2891   movne r2, r2, asl #1
2892   ldrneh  r2, [r2, r3]
2893   strneh  r2, [lr, #0]  @ movhi
2894 .L695:
2895   subs  r4, r4, #4
2896   ldr r2, [ip, #0]
2897   addne lr, lr, #8
2898   beq .L1118
2899 .L705:
2900   mov r1, #0
2901 .L706:
2902   movs  r3, r2, lsr #24
2903   mov ip, r3, asl #1
2904   ldrne r3, .L1161+12
2905   mov r0, r1, asl #1
2906   ldrneh  ip, [ip, r3]
2907   add r1, r1, #1
2908   strneh  ip, [r0, lr]  @ movhi
2909   cmp r4, r1
2910   mov r2, r2, asl #8
2911   bhi .L706
2912   b .L1118
2913 .L1148:
2914   rsb r4, r0, #8
2915   cmp r9, r4
2916   bcs .L914
2917   ldrh  r1, [ip, #0]
2918   mov r3, r1, asl #22
2919   mov r3, r3, lsr #22
2920   tst r1, #2048
2921   add ip, r8, r3, asl #5
2922   mov r2, r1, lsr #12
2923   addne ip, ip, fp
2924   tst r1, #1024
2925   mov r2, r2, asl #4
2926   bne .L1154
2927   cmp r9, #0
2928   ldr ip, [ip, #0]
2929   beq .L1118
2930   mov r3, r0, asl #2
2931   ldr r4, .L1161+12
2932   mov r0, ip, lsr r3
2933   mov ip, #0
2934 .L926:
2935   ands  r3, r0, #15
2936   orr r3, r2, r3
2937   mov r3, r3, asl #1
2938   ldrneh  r3, [r3, r4]
2939   mov r1, ip, asl #1
2940   add ip, ip, #1
2941   strneh  r3, [r1, lr]  @ movhi
2942   cmp r9, ip
2943   mov r0, r0, lsr #4
2944   bne .L926
2945   b .L1118
2946 .L1162:
2947   .align  2
2948 .L1161:
2949   .word io_registers
2950   .word map_widths
2951   .word vram
2952   .word palette_ram_converted
2953 .L1137:
2954   ldrh  r2, [ip, #0]
2955   rsb r5, r0, #8
2956   mov r3, r2, asl #22
2957   mov r3, r3, lsr #22
2958   tst r2, #2048
2959   add r6, r8, r3, asl #6
2960   addne r6, r6, fp
2961   ands  r2, r2, #1024
2962   beq .L732
2963   cmp r0, #3
2964   bhi .L1155
2965   subs  r4, r5, #4
2966   ldr r2, [r6, #4]
2967   beq .L743
2968   mov r3, r0, asl #3
2969   sub r3, r3, #32
2970   mov r0, r2, asl r3
2971   ldr r7, .L1161+12
2972   mov r1, #0
2973 .L745:
2974   movs  r3, r0, lsr #24
2975   mov r3, r3, asl #1
2976   ldrneh  r3, [r3, r7]
2977   mov r2, r1, asl #1
2978   add r1, r1, #1
2979   strneh  r3, [r2, lr]  @ movhi
2980   cmp r4, r1
2981   mov r0, r0, asl #8
2982   bne .L745
2983   add r3, lr, r5, asl #1
2984   sub lr, r3, #8
2985 .L743:
2986   ldr r1, [r6, #0]
2987   cmp r1, #0
2988   beq .L774
2989   ands  r2, r1, #255
2990   ldrne r3, .L1161+12
2991   movne r2, r2, asl #1
2992   ldrneh  r2, [r2, r3]
2993   mov r3, r1, lsr #8
2994   strneh  r2, [lr, #6]  @ movhi
2995   ands  r2, r3, #255
2996   ldrne r3, .L1161+12
2997   movne r2, r2, asl #1
2998   ldrneh  r2, [r2, r3]
2999   mov r3, r1, lsr #16
3000   strneh  r2, [lr, #4]  @ movhi
3001   ands  r2, r3, #255
3002   ldrne r3, .L1161+12
3003   movne r2, r2, asl #1
3004   ldrneh  r2, [r2, r3]
3005   strneh  r2, [lr, #2]  @ movhi
3006   movs  r2, r1, lsr #24
3007   ldrne r3, .L1161+12
3008   movne r2, r2, asl #1
3009   ldrneh  r2, [r2, r3]
3010   strneh  r2, [lr, #0]  @ movhi
3011 .L774:
3012   add lr, lr, #8
3013   mov r5, r4
3014 .L736:
3015   add ip, ip, #2
3016   b .L729
3017 .L1143:
3018   ldrh  r5, [ip, #0]
3019   rsb r6, r0, #8
3020   mov r2, r5, asl #22
3021   mov r3, r5, lsr #12
3022   mov r2, r2, lsr #22
3023   tst r5, #2048
3024   mov r7, r3, asl #4
3025   add r3, r8, r2, asl #5
3026   addne r3, r3, fp
3027   tst r5, #1024
3028   beq .L1006
3029   cmp r6, #0
3030   ldr r2, [r3, #0]
3031   beq .L1008
3032   mov r3, r0, asl #2
3033   mov r0, r2, asl r3
3034   ldr r5, .L1161+12
3035   mov r1, #0
3036 .L1010:
3037   movs  r3, r0, lsr #28
3038   orr r3, r7, r3
3039   mov r3, r3, asl #1
3040   ldrneh  r3, [r3, r5]
3041   mov r2, r1, asl #1
3042   add r1, r1, #1
3043   strneh  r3, [r2, lr]  @ movhi
3044   cmp r6, r1
3045   mov r0, r0, asl #4
3046   bne .L1010
3047   add lr, lr, r6, asl #1
3048 .L1008:
3049   add ip, ip, #2
3050   b .L1003
3051 .L1151:
3052   rsb r4, r0, #8
3053   cmp r9, r4
3054   bcs .L533
3055   ldrh  r2, [ip, #0]
3056   mov r3, r2, asl #22
3057   mov r3, r3, lsr #22
3058   tst r2, #2048
3059   add ip, r8, r3, asl #6
3060   addne ip, ip, fp
3061   tst r2, #1024
3062   bne .L1156
3063   cmp r0, #3
3064   bls .L566
3065   cmp r9, #0
3066   ldr r2, [ip, #4]
3067   beq .L1118
3068   mov r3, r0, asl #3
3069   sub r3, r3, #32
3070   mov r0, r2, lsr r3
3071   ldr ip, .L1161+12
3072   mov r1, #0
3073 .L569:
3074   ands  r3, r0, #255
3075   mov r3, r3, asl #1
3076   ldrneh  r3, [r3, ip]
3077   mov r2, r1, asl #1
3078   add r1, r1, #1
3079   strneh  r3, [r2, lr]  @ movhi
3080   cmp r9, r1
3081   mov r0, r0, lsr #8
3082   bne .L569
3083   b .L1118
3084 .L1108:
3085   ldr r2, [r3, #0]
3086   ldr r4, .L1161+12
3087   mov r0, #0
3088 .L1114:
3089   ands  r3, r2, #15
3090   orr r3, ip, r3
3091   mov r3, r3, asl #1
3092   ldrneh  r3, [r3, r4]
3093   mov r1, r0, asl #1
3094   add r0, r0, #1
3095   strneh  r3, [r1, lr]  @ movhi
3096   cmp r5, r0
3097   mov r2, r2, lsr #4
3098   bne .L1114
3099   b .L1118
3100 .L874:
3101   cmp r5, #3
3102   ldrls r2, [ip, #0]
3103   bls .L905
3104   ldr r1, [ip, #0]
3105   cmp r1, #0
3106   beq .L895
3107   ands  r2, r1, #255
3108   ldrne r3, .L1161+12
3109   movne r2, r2, asl #1
3110   ldrneh  r2, [r2, r3]
3111   mov r3, r1, lsr #8
3112   strneh  r2, [lr, #0]  @ movhi
3113   ands  r2, r3, #255
3114   ldrne r3, .L1161+12
3115   movne r2, r2, asl #1
3116   ldrneh  r2, [r2, r3]
3117   mov r3, r1, lsr #16
3118   strneh  r2, [lr, #2]  @ movhi
3119   ands  r2, r3, #255
3120   ldrne r3, .L1161+12
3121   movne r2, r2, asl #1
3122   ldrneh  r2, [r2, r3]
3123   strneh  r2, [lr, #4]  @ movhi
3124   movs  r2, r1, lsr #24
3125   ldrne r3, .L1161+12
3126   movne r2, r2, asl #1
3127   ldrneh  r2, [r2, r3]
3128   strneh  r2, [lr, #6]  @ movhi
3129 .L895:
3130   subs  r5, r5, #4
3131   ldr r2, [ip, #4]
3132   addne lr, lr, #8
3133   beq .L1118
3134 .L905:
3135   mov r1, #0
3136 .L906:
3137   ands  r3, r2, #255
3138   mov ip, r3, asl #1
3139   ldrne r3, .L1161+12
3140   mov r0, r1, asl #1
3141   ldrneh  ip, [ip, r3]
3142   add r1, r1, #1
3143   strneh  ip, [r0, lr]  @ movhi
3144   cmp r1, r5
3145   mov r2, r2, lsr #8
3146   bcc .L906
3147   b .L1118
3148 .L991:
3149   ldr r2, [r3, #0]
3150   ldr r5, .L1161+12
3151   mov r0, #0
3152 .L997:
3153   ands  r3, r2, #15
3154   orr r3, ip, r3
3155   mov r3, r3, asl #1
3156   ldrneh  r3, [r3, r5]
3157   mov r1, r0, asl #1
3158   add r0, r0, #1
3159   strneh  r3, [r1, lr]  @ movhi
3160   cmp r4, r0
3161   mov r2, r2, lsr #4
3162   bne .L997
3163   b .L1118
3164 .L691:
3165   cmp r4, #3
3166   ldrls r2, [ip, #0]
3167   bls .L722
3168   ldr r1, [ip, #0]
3169   cmp r1, #0
3170   beq .L712
3171   ands  r2, r1, #255
3172   ldrne r3, .L1161+12
3173   movne r2, r2, asl #1
3174   ldrneh  r2, [r2, r3]
3175   mov r3, r1, lsr #8
3176   strneh  r2, [lr, #0]  @ movhi
3177   ands  r2, r3, #255
3178   ldrne r3, .L1161+12
3179   movne r2, r2, asl #1
3180   ldrneh  r2, [r2, r3]
3181   mov r3, r1, lsr #16
3182   strneh  r2, [lr, #2]  @ movhi
3183   ands  r2, r3, #255
3184   ldrne r3, .L1161+12
3185   movne r2, r2, asl #1
3186   ldrneh  r2, [r2, r3]
3187   strneh  r2, [lr, #4]  @ movhi
3188   movs  r2, r1, lsr #24
3189   ldrne r3, .L1161+12
3190   movne r2, r2, asl #1
3191   ldrneh  r2, [r2, r3]
3192   strneh  r2, [lr, #6]  @ movhi
3193 .L712:
3194   subs  r4, r4, #4
3195   ldr r2, [ip, #4]
3196   addne lr, lr, #8
3197   beq .L1118
3198 .L722:
3199   mov r1, #0
3200 .L723:
3201   ands  r3, r2, #255
3202   mov ip, r3, asl #1
3203   ldrne r3, .L1161+12
3204   mov r0, r1, asl #1
3205   ldrneh  ip, [ip, r3]
3206   add r1, r1, #1
3207   strneh  ip, [r0, lr]  @ movhi
3208   cmp r4, r1
3209   mov r2, r2, lsr #8
3210   bhi .L723
3211   b .L1118
3212 .L732:
3213   cmp r0, #3
3214   bhi .L1157
3215   subs  r4, r5, #4
3216   ldr r2, [r6, #0]
3217   beq .L767
3218   mov r3, r0, asl #3
3219   mov r0, r2, lsr r3
3220   ldr r7, .L1161+12
3221   mov r1, #0
3222 .L769:
3223   ands  r3, r0, #255
3224   mov r3, r3, asl #1
3225   ldrneh  r3, [r3, r7]
3226   mov r2, r1, asl #1
3227   add r1, r1, #1
3228   strneh  r3, [r2, lr]  @ movhi
3229   cmp r4, r1
3230   mov r0, r0, lsr #8
3231   bne .L769
3232   add r3, lr, r5, asl #1
3233   sub lr, r3, #8
3234 .L767:
3235   ldr r1, [r6, #4]
3236   cmp r1, #0
3237   beq .L774
3238   ands  r2, r1, #255
3239   ldrne r3, .L1161+12
3240   movne r2, r2, asl #1
3241   ldrneh  r2, [r2, r3]
3242   mov r3, r1, lsr #8
3243   strneh  r2, [lr, #0]  @ movhi
3244   ands  r2, r3, #255
3245   ldrne r3, .L1161+12
3246   movne r2, r2, asl #1
3247   ldrneh  r2, [r2, r3]
3248   mov r3, r1, lsr #16
3249   strneh  r2, [lr, #2]  @ movhi
3250   ands  r2, r3, #255
3251   ldrne r3, .L1161+12
3252   movne r2, r2, asl #1
3253   ldrneh  r2, [r2, r3]
3254   strneh  r2, [lr, #4]  @ movhi
3255   movs  r2, r1, lsr #24
3256   ldrne r3, .L1161+12
3257   movne r2, r2, asl #1
3258   ldrneh  r2, [r2, r3]
3259   strneh  r2, [lr, #6]  @ movhi
3260   b .L774
3261 .L1006:
3262   cmp r6, #0
3263   ldr r2, [r3, #0]
3264   beq .L1008
3265   mov r3, r0, asl #2
3266   mov r0, r2, lsr r3
3267   ldr r5, .L1161+12
3268   mov r1, #0
3269 .L1016:
3270   ands  r3, r0, #15
3271   orr r3, r7, r3
3272   mov r3, r3, asl #1
3273   ldrneh  r3, [r3, r5]
3274   mov r2, r1, asl #1
3275   add r1, r1, #1
3276   strneh  r3, [r2, lr]  @ movhi
3277   cmp r6, r1
3278   mov r0, r0, lsr #4
3279   bne .L1016
3280   add lr, lr, r6, asl #1
3281   b .L1008
3282 .L914:
3283   ldrh  r1, [ip, #0]
3284   mov r2, r1, asl #22
3285   mov r3, r1, lsr #12
3286   mov r2, r2, lsr #22
3287   tst r1, #2048
3288   mov r5, r3, asl #4
3289   add r3, r8, r2, asl #5
3290   addne r3, r3, fp
3291   tst r1, #1024
3292   bne .L1158
3293   cmp r4, #0
3294   ldr r2, [r3, #0]
3295   beq .L934
3296   mov r3, r0, asl #2
3297   mov r0, r2, lsr r3
3298   ldr r6, .L1161+12
3299   mov r1, #0
3300 .L942:
3301   ands  r3, r0, #15
3302   orr r3, r5, r3
3303   mov r3, r3, asl #1
3304   ldrneh  r3, [r3, r6]
3305   mov r2, r1, asl #1
3306   add r1, r1, #1
3307   strneh  r3, [r2, lr]  @ movhi
3308   cmp r4, r1
3309   mov r0, r0, lsr #4
3310   bne .L942
3311 .L1133:
3312   add lr, lr, r4, asl #1
3313 .L934:
3314   rsb r9, r4, r9
3315   add ip, ip, #2
3316   b .L912
3317 .L533:
3318   ldrh  r2, [ip, #0]
3319   mov r3, r2, asl #22
3320   mov r3, r3, lsr #22
3321   tst r2, #2048
3322   add r5, r8, r3, asl #6
3323   addne r5, r5, fp
3324   ands  r2, r2, #1024
3325   bne .L1159
3326   cmp r0, #3
3327   bls .L621
3328   cmp r4, #0
3329   ldr r1, [r5, #4]
3330   beq .L598
3331   mov r3, r0, asl #3
3332   sub r3, r3, #32
3333   ldr r5, .L1161+12
3334   mov r0, r1, lsr r3
3335   mov r1, r2
3336 .L624:
3337   ands  r3, r0, #255
3338   mov r3, r3, asl #1
3339   ldrneh  r3, [r3, r5]
3340   mov r2, r1, asl #1
3341   add r1, r1, #1
3342   strneh  r3, [r2, lr]  @ movhi
3343   cmp r4, r1
3344   mov r0, r0, lsr #8
3345   bne .L624
3346 .L1120:
3347   add lr, lr, r4, asl #1
3348 .L598:
3349   rsb r9, r4, r9
3350   add ip, ip, #2
3351   b .L531
3352 .L1155:
3353   cmp r5, #0
3354   ldr r2, [r6, #0]
3355   beq .L736
3356   mov r3, r0, asl #3
3357   sub r3, r3, #32
3358   mov r0, r2, asl r3
3359   ldr r4, .L1161+12
3360   mov r1, #0
3361 .L738:
3362   movs  r3, r0, lsr #24
3363   mov r3, r3, asl #1
3364   ldrneh  r3, [r3, r4]
3365   mov r2, r1, asl #1
3366   add r1, r1, #1
3367   strneh  r3, [r2, lr]  @ movhi
3368   cmp r5, r1
3369   mov r0, r0, asl #8
3370   bne .L738
3371   add lr, lr, r5, asl #1
3372 .L1160:
3373   add ip, ip, #2
3374   b .L729
3375 .L1154:
3376   cmp r9, #0
3377   ldr ip, [ip, #0]
3378   beq .L1118
3379   mov r3, r0, asl #2
3380   ldr r4, .L1161+12
3381   mov r0, ip, asl r3
3382   mov ip, #0
3383 .L921:
3384   movs  r3, r0, lsr #28
3385   orr r3, r2, r3
3386   mov r3, r3, asl #1
3387   ldrneh  r3, [r3, r4]
3388   mov r1, ip, asl #1
3389   add ip, ip, #1
3390   strneh  r3, [r1, lr]  @ movhi
3391   cmp r9, ip
3392   mov r0, r0, asl #4
3393   bne .L921
3394   b .L1118
3395 .L1159:
3396   cmp r0, #3
3397   bls .L596
3398   cmp r4, #0
3399   ldr r2, [r5, #0]
3400   beq .L598
3401   mov r3, r0, asl #3
3402   sub r3, r3, #32
3403   mov r0, r2, asl r3
3404   ldr r5, .L1161+12
3405   mov r1, #0
3406 .L600:
3407   movs  r3, r0, lsr #24
3408   mov r3, r3, asl #1
3409   ldrneh  r3, [r3, r5]
3410   mov r2, r1, asl #1
3411   add r1, r1, #1
3412   strneh  r3, [r2, lr]  @ movhi
3413   cmp r4, r1
3414   mov r0, r0, asl #8
3415   bne .L600
3416   b .L1120
3417 .L1157:
3418   cmp r5, #0
3419   ldr r1, [r6, #4]
3420   beq .L736
3421   mov r3, r0, asl #3
3422   sub r3, r3, #32
3423   ldr r4, .L1161+12
3424   mov r0, r1, lsr r3
3425   mov r1, r2
3426 .L762:
3427   ands  r3, r0, #255
3428   mov r3, r3, asl #1
3429   ldrneh  r3, [r3, r4]
3430   mov r2, r1, asl #1
3431   add r1, r1, #1
3432   strneh  r3, [r2, lr]  @ movhi
3433   cmp r5, r1
3434   mov r0, r0, lsr #8
3435   bne .L762
3436   add lr, lr, r5, asl #1
3437   b .L1160
3438 .L1156:
3439   cmp r0, #3
3440   bls .L539
3441   cmp r9, #0
3442   ldr r2, [ip, #0]
3443   beq .L1118
3444   mov r3, r0, asl #3
3445   sub r3, r3, #32
3446   mov r0, r2, asl r3
3447   ldr ip, .L1161+12
3448   mov r1, #0
3449 .L543:
3450   movs  r3, r0, lsr #24
3451   mov r3, r3, asl #1
3452   ldrneh  r3, [r3, ip]
3453   mov r2, r1, asl #1
3454   add r1, r1, #1
3455   strneh  r3, [r2, lr]  @ movhi
3456   cmp r9, r1
3457   mov r0, r0, asl #8
3458   bne .L543
3459   b .L1118
3460 .L1158:
3461   cmp r4, #0
3462   ldr r2, [r3, #0]
3463   beq .L934
3464   mov r3, r0, asl #2
3465   mov r0, r2, asl r3
3466   ldr r6, .L1161+12
3467   mov r1, #0
3468 .L936:
3469   movs  r3, r0, lsr #28
3470   orr r3, r5, r3
3471   mov r3, r3, asl #1
3472   ldrneh  r3, [r3, r6]
3473   mov r2, r1, asl #1
3474   add r1, r1, #1
3475   strneh  r3, [r2, lr]  @ movhi
3476   cmp r4, r1
3477   mov r0, r0, asl #4
3478   bne .L936
3479   b .L1133
3480 .L539:
3481   mov r3, r0, asl #3
3482   ldr r1, [ip, #4]
3483   add r2, r9, r0
3484   sub r3, r3, #32
3485   cmp r2, #4
3486   mov r1, r1, asl r3
3487   bhi .L547
3488   cmp r9, #0
3489   ldrne ip, .L1161+12
3490   movne r0, #0
3491   beq .L1118
3492 .L562:
3493   movs  r3, r1, lsr #24
3494   mov r3, r3, asl #1
3495   ldrneh  r3, [r3, ip]
3496   mov r2, r0, asl #1
3497   add r0, r0, #1
3498   strneh  r3, [r2, lr]  @ movhi
3499   cmp r9, r0
3500   mov r1, r1, asl #8
3501   bne .L562
3502   b .L1118
3503 .L596:
3504   subs  r6, r4, #4
3505   ldr r2, [r5, #4]
3506   beq .L605
3507   mov r3, r0, asl #3
3508   sub r3, r3, #32
3509   mov r0, r2, asl r3
3510   ldr r7, .L1161+12
3511   mov r1, #0
3512 .L607:
3513   movs  r3, r0, lsr #24
3514   mov r3, r3, asl #1
3515   ldrneh  r3, [r3, r7]
3516   mov r2, r1, asl #1
3517   add r1, r1, #1
3518   strneh  r3, [r2, lr]  @ movhi
3519   cmp r6, r1
3520   mov r0, r0, asl #8
3521   bne .L607
3522   add r3, lr, r4, asl #1
3523   sub lr, r3, #8
3524 .L605:
3525   ldr r1, [r5, #0]
3526   cmp r1, #0
3527   beq .L636
3528   ands  r2, r1, #255
3529   ldrne r3, .L1161+12
3530   movne r2, r2, asl #1
3531   ldrneh  r2, [r2, r3]
3532   mov r3, r1, lsr #8
3533   strneh  r2, [lr, #6]  @ movhi
3534   ands  r2, r3, #255
3535   ldrne r3, .L1161+12
3536   movne r2, r2, asl #1
3537   ldrneh  r2, [r2, r3]
3538   mov r3, r1, lsr #16
3539   strneh  r2, [lr, #4]  @ movhi
3540   ands  r2, r3, #255
3541   ldrne r3, .L1161+12
3542   movne r2, r2, asl #1
3543   ldrneh  r2, [r2, r3]
3544   strneh  r2, [lr, #2]  @ movhi
3545   movs  r2, r1, lsr #24
3546   ldrne r3, .L1161+12
3547   movne r2, r2, asl #1
3548   ldrneh  r2, [r2, r3]
3549   strneh  r2, [lr, #0]  @ movhi
3550 .L636:
3551   add lr, lr, #8
3552   b .L598
3553 .L566:
3554   add r2, r9, r0
3555   ldr r3, [ip, #0]
3556   cmp r2, #4
3557   mov r1, r0, asl #3
3558   mov r2, r3, lsr r1
3559   bhi .L573
3560   cmp r9, #0
3561   ldrne ip, .L1161+12
3562   movne r0, #0
3563   beq .L1118
3564 .L588:
3565   ands  r3, r2, #255
3566   mov r3, r3, asl #1
3567   ldrneh  r3, [r3, ip]
3568   mov r1, r0, asl #1
3569   add r0, r0, #1
3570   strneh  r3, [r1, lr]  @ movhi
3571   cmp r9, r0
3572   mov r2, r2, lsr #8
3573   bne .L588
3574   b .L1118
3575 .L621:
3576   subs  r6, r4, #4
3577   ldr r2, [r5, #0]
3578   beq .L629
3579   mov r3, r0, asl #3
3580   mov r0, r2, lsr r3
3581   ldr r7, .L1161+12
3582   mov r1, #0
3583 .L631:
3584   ands  r3, r0, #255
3585   mov r3, r3, asl #1
3586   ldrneh  r3, [r3, r7]
3587   mov r2, r1, asl #1
3588   add r1, r1, #1
3589   strneh  r3, [r2, lr]  @ movhi
3590   cmp r6, r1
3591   mov r0, r0, lsr #8
3592   bne .L631
3593   add r3, lr, r4, asl #1
3594   sub lr, r3, #8
3595 .L629:
3596   ldr r1, [r5, #4]
3597   cmp r1, #0
3598   beq .L636
3599   ands  r2, r1, #255
3600   ldrne r3, .L1161+12
3601   movne r2, r2, asl #1
3602   ldrneh  r2, [r2, r3]
3603   mov r3, r1, lsr #8
3604   strneh  r2, [lr, #0]  @ movhi
3605   ands  r2, r3, #255
3606   ldrne r3, .L1161+12
3607   movne r2, r2, asl #1
3608   ldrneh  r2, [r2, r3]
3609   mov r3, r1, lsr #16
3610   strneh  r2, [lr, #2]  @ movhi
3611   ands  r2, r3, #255
3612   ldrne r3, .L1161+12
3613   movne r2, r2, asl #1
3614   ldrneh  r2, [r2, r3]
3615   strneh  r2, [lr, #4]  @ movhi
3616   movs  r2, r1, lsr #24
3617   ldrne r3, .L1161+12
3618   movne r2, r2, asl #1
3619   ldrneh  r2, [r2, r3]
3620   strneh  r2, [lr, #6]  @ movhi
3621   add lr, lr, #8
3622   b .L598
3623 .L547:
3624   rsbs  r4, r0, #4
3625   beq .L550
3626   ldr r5, .L1161+12
3627   mov r0, #0
3628 .L552:
3629   movs  r3, r1, lsr #24
3630   mov r3, r3, asl #1
3631   ldrneh  r3, [r3, r5]
3632   mov r2, r0, asl #1
3633   add r0, r0, #1
3634   strneh  r3, [r2, lr]  @ movhi
3635   cmp r4, r0
3636   mov r1, r1, asl #8
3637   bne .L552
3638   add lr, lr, r4, asl #1
3639 .L550:
3640   subs  r4, r9, r4
3641   ldr r2, [ip, #0]
3642   beq .L1118
3643   ldr ip, .L1161+12
3644   mov r0, #0
3645 .L558:
3646   movs  r3, r2, lsr #24
3647   mov r3, r3, asl #1
3648   ldrneh  r3, [r3, ip]
3649   mov r1, r0, asl #1
3650   add r0, r0, #1
3651   strneh  r3, [r1, lr]  @ movhi
3652   cmp r4, r0
3653   mov r2, r2, asl #8
3654   bne .L558
3655   b .L1118
3656 .L573:
3657   rsbs  r4, r0, #4
3658   beq .L576
3659   ldr r5, .L1161+12
3660   mov r0, #0
3661 .L578:
3662   ands  r3, r2, #255
3663   mov r3, r3, asl #1
3664   ldrneh  r3, [r3, r5]
3665   mov r1, r0, asl #1
3666   add r0, r0, #1
3667   strneh  r3, [r1, lr]  @ movhi
3668   cmp r4, r0
3669   mov r2, r2, lsr #8
3670   bne .L578
3671   add lr, lr, r4, asl #1
3672 .L576:
3673   subs  r4, r9, r4
3674   ldr r2, [ip, #4]
3675   beq .L1118
3676   ldr ip, .L1161+12
3677   mov r0, #0
3678 .L584:
3679   ands  r3, r2, #255
3680   mov r3, r3, asl #1
3681   ldrneh  r3, [r3, ip]
3682   mov r1, r0, asl #1
3683   add r0, r0, #1
3684   strneh  r3, [r1, lr]  @ movhi
3685   cmp r4, r0
3686   mov r2, r2, lsr #8
3687   bne .L584
3688   b .L1118
3689   .size render_scanline_text_transparent_normal, .-render_scanline_text_transparent_normal
3690   .align  2
3691   .global render_scanline_text_base_color16
3692   .type render_scanline_text_base_color16, %function
3693 render_scanline_text_base_color16:
3694   @ args = 0, pretend = 0, frame = 16
3695   @ frame_needed = 0, uses_anonymous_args = 0
3696   ldr ip, .L1954
3697   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
3698   ldrh  r5, [ip, #80]
3699   add r7, r0, #7
3700   mov r8, r5, asr r0
3701   mov r7, r5, asr r7
3702   add r6, ip, r0, asl #2
3703   ldrh  r4, [ip, #6]
3704   ldrh  lr, [r6, #18]
3705   add ip, ip, r0, asl #1
3706   add fp, r4, lr
3707   ldrh  r9, [ip, #8]
3708   mov sl, fp, asl #23
3709   rsb r2, r1, r2
3710   sub sp, sp, #16
3711   mov sl, sl, lsr #23
3712   cmp sl, #255
3713   movls r4, #0
3714   movhi r4, #1
3715   ldrh  lr, [r6, #16]
3716   str r2, [sp, #12]
3717   mov r6, r9, lsr #14
3718   ldr r2, .L1954+4
3719   ands  r4, r4, r6, lsr #1
3720   and r7, r7, #2
3721   and r8, r8, #1
3722   add lr, lr, r1
3723   orr r8, r8, r7
3724   mov ip, r9, asl #3
3725   add r7, r3, r1, asl #1
3726   ldr r2, [r2, r6, asl #2]
3727   subne r3, sl, #256
3728   ldr r1, .L1954+8
3729   movne r3, r3, lsr #3
3730   moveq r3, fp, asl #3
3731   and ip, ip, #63488
3732   addne r3, r3, r2, lsr #3
3733   andeq r3, r3, #1984
3734   add ip, ip, r1
3735   mov lr, lr, asl #23
3736   addne r4, ip, r3, asl #6
3737   addeq r4, ip, r3
3738   mov r0, r5, lsr #12
3739   tst r6, #1
3740   mov lr, lr, lsr #23
3741   and r0, r0, #2
3742   mov r5, r5, asl #26
3743   andeq lr, lr, #255
3744   orr r0, r0, r5, lsr #31
3745   moveq r3, lr, lsr #3
3746   mov r0, r0, asl #9
3747   mov r8, r8, asl #9
3748   addeq fp, r4, r3, asl #1
3749   streq r4, [sp, #0]
3750   beq .L1171
3751   cmp lr, #255
3752   subhi lr, lr, #256
3753   movhi r3, lr, lsr #3
3754   movls r3, lr, lsr #3
3755   addhi r3, r4, r3, asl #1
3756   addls fp, r4, r3, asl #1
3757   addls r4, r4, #2048
3758   addhi fp, r3, #2048
3759   strhi r4, [sp, #0]
3760   strls r4, [sp, #0]
3761 .L1171:
3762   tst r9, #128
3763   beq .L1172
3764   mov r2, r9, asl #12
3765   and r3, sl, #7
3766   and r1, lr, #255
3767   mov r3, r3, asl #3
3768   and r2, r2, #49152
3769   ldr r4, [sp, #12]
3770   rsb r9, r1, #256
3771   add r2, r2, r3
3772   ldr r1, .L1954+8
3773   mov r3, r3, asl #1
3774   rsb r3, r3, #56
3775   cmp r4, r9
3776   add r2, r2, r1
3777   str r3, [sp, #4]
3778   and lr, lr, #7
3779   bls .L1925
3780   cmp lr, #0
3781   moveq r6, lr
3782   bne .L1926
3783 .L1412:
3784   rsb r3, r6, r9
3785   movs  sl, r3, lsr #3
3786   beq .L1476
3787   mov lr, r7
3788   mov r6, #0
3789   b .L1478
3790 .L1927:
3791   ldr r1, [r5, #4]
3792   add r6, r6, #1
3793   ands  r3, r1, #255
3794   orrne r3, r3, r8
3795   strneh  r3, [lr, #6]  @ movhi
3796   mov r3, r1, lsr #8
3797   streqh  r0, [lr, #6]  @ movhi
3798   ands  r3, r3, #255
3799   orrne r3, r3, r8
3800   strneh  r3, [lr, #4]  @ movhi
3801   mov r3, r1, lsr #16
3802   streqh  r0, [lr, #4]  @ movhi
3803   ands  r3, r3, #255
3804   orrne r3, r3, r8
3805   strneh  r3, [lr, #2]  @ movhi
3806   streqh  r0, [lr, #2]  @ movhi
3807   movs  r3, r1, lsr #24
3808   ldr r1, [r5, #0]
3809   orrne r3, r3, r8
3810   strneh  r3, [lr, #0]  @ movhi
3811   streqh  r0, [lr, #0]  @ movhi
3812   ands  r3, r1, #255
3813   orrne r3, r3, r8
3814   strneh  r3, [lr, #14] @ movhi
3815   mov r3, r1, lsr #8
3816   streqh  r0, [lr, #14] @ movhi
3817   ands  r3, r3, #255
3818   orrne r3, r3, r8
3819   strneh  r3, [lr, #12] @ movhi
3820   mov r3, r1, lsr #16
3821   streqh  r0, [lr, #12] @ movhi
3822   ands  r3, r3, #255
3823   orrne r3, r3, r8
3824   strneh  r3, [lr, #10] @ movhi
3825   streqh  r0, [lr, #10] @ movhi
3826   movs  r3, r1, lsr #24
3827   orrne r3, r3, r8
3828   strneh  r3, [lr, #8]  @ movhi
3829   streqh  r0, [lr, #8]  @ movhi
3830   cmp sl, r6
3831   add lr, lr, #16
3832   beq .L1530
3833 .L1928:
3834   add fp, fp, #2
3835 .L1478:
3836   ldrh  r1, [fp, #0]
3837   mov r3, r1, asl #22
3838   mov r3, r3, lsr #22
3839   tst r1, #2048
3840   add r5, r2, r3, asl #6
3841   ldrne r3, [sp, #4]
3842   addne r5, r5, r3
3843   tst r1, #1024
3844   bne .L1927
3845   ldr r1, [r5, #0]
3846   add r6, r6, #1
3847   ands  r3, r1, #255
3848   orrne r3, r3, r8
3849   strneh  r3, [lr, #0]  @ movhi
3850   mov r3, r1, lsr #8
3851   streqh  r0, [lr, #0]  @ movhi
3852   ands  r3, r3, #255
3853   orrne r3, r3, r8
3854   strneh  r3, [lr, #2]  @ movhi
3855   mov r3, r1, lsr #16
3856   streqh  r0, [lr, #2]  @ movhi
3857   ands  r3, r3, #255
3858   orrne r3, r3, r8
3859   strneh  r3, [lr, #4]  @ movhi
3860   streqh  r0, [lr, #4]  @ movhi
3861   movs  r3, r1, lsr #24
3862   ldr r1, [r5, #4]
3863   orrne r3, r3, r8
3864   strneh  r3, [lr, #6]  @ movhi
3865   streqh  r0, [lr, #6]  @ movhi
3866   ands  r3, r1, #255
3867   orrne r3, r3, r8
3868   strneh  r3, [lr, #8]  @ movhi
3869   mov r3, r1, lsr #8
3870   streqh  r0, [lr, #8]  @ movhi
3871   ands  r3, r3, #255
3872   orrne r3, r3, r8
3873   strneh  r3, [lr, #10] @ movhi
3874   mov r3, r1, lsr #16
3875   streqh  r0, [lr, #10] @ movhi
3876   ands  r3, r3, #255
3877   orrne r3, r3, r8
3878   strneh  r3, [lr, #12] @ movhi
3879   streqh  r0, [lr, #12] @ movhi
3880   movs  r3, r1, lsr #24
3881   orrne r3, r3, r8
3882   strneh  r3, [lr, #14] @ movhi
3883   streqh  r0, [lr, #14] @ movhi
3884   cmp sl, r6
3885   add lr, lr, #16
3886   bne .L1928
3887 .L1530:
3888   add r7, r7, sl, asl #4
3889 .L1476:
3890   ldr r4, [sp, #12]
3891   rsb r9, r9, r4
3892   movs  r4, r9, lsr #3
3893   ldreq r3, [sp, #0]
3894   beq .L1534
3895   ldr r6, [sp, #0]
3896   mov lr, r7
3897   mov sl, #0
3898   b .L1535
3899 .L1930:
3900   ldr r1, [r5, #4]
3901   add sl, sl, #1
3902   ands  r3, r1, #255
3903   orrne r3, r3, r8
3904   strneh  r3, [lr, #6]  @ movhi
3905   mov r3, r1, lsr #8
3906   streqh  r0, [lr, #6]  @ movhi
3907   ands  r3, r3, #255
3908   orrne r3, r3, r8
3909   strneh  r3, [lr, #4]  @ movhi
3910   mov r3, r1, lsr #16
3911   streqh  r0, [lr, #4]  @ movhi
3912   ands  r3, r3, #255
3913   orrne r3, r3, r8
3914   strneh  r3, [lr, #2]  @ movhi
3915   streqh  r0, [lr, #2]  @ movhi
3916   movs  r3, r1, lsr #24
3917   ldr r1, [r5, #0]
3918   orrne r3, r3, r8
3919   strneh  r3, [lr, #0]  @ movhi
3920   streqh  r0, [lr, #0]  @ movhi
3921   ands  r3, r1, #255
3922   orrne r3, r3, r8
3923   strneh  r3, [lr, #14] @ movhi
3924   mov r3, r1, lsr #8
3925   streqh  r0, [lr, #14] @ movhi
3926   ands  r3, r3, #255
3927   orrne r3, r3, r8
3928   strneh  r3, [lr, #12] @ movhi
3929   mov r3, r1, lsr #16
3930   streqh  r0, [lr, #12] @ movhi
3931   ands  r3, r3, #255
3932   orrne r3, r3, r8
3933   strneh  r3, [lr, #10] @ movhi
3934   streqh  r0, [lr, #10] @ movhi
3935   movs  r3, r1, lsr #24
3936   orrne r3, r3, r8
3937   strneh  r3, [lr, #8]  @ movhi
3938   streqh  r0, [lr, #8]  @ movhi
3939   cmp r4, sl
3940   add lr, lr, #16
3941   add r6, r6, #2
3942   beq .L1929
3943 .L1535:
3944   ldrh  r1, [r6, #0]
3945   mov r3, r1, asl #22
3946   mov r3, r3, lsr #22
3947   tst r1, #2048
3948   add r5, r2, r3, asl #6
3949   ldrne r3, [sp, #4]
3950   addne r5, r5, r3
3951   tst r1, #1024
3952   bne .L1930
3953   ldr r1, [r5, #0]
3954   add sl, sl, #1
3955   ands  r3, r1, #255
3956   orrne r3, r3, r8
3957   strneh  r3, [lr, #0]  @ movhi
3958   mov r3, r1, lsr #8
3959   streqh  r0, [lr, #0]  @ movhi
3960   ands  r3, r3, #255
3961   orrne r3, r3, r8
3962   strneh  r3, [lr, #2]  @ movhi
3963   mov r3, r1, lsr #16
3964   streqh  r0, [lr, #2]  @ movhi
3965   ands  r3, r3, #255
3966   orrne r3, r3, r8
3967   strneh  r3, [lr, #4]  @ movhi
3968   streqh  r0, [lr, #4]  @ movhi
3969   movs  r3, r1, lsr #24
3970   ldr r1, [r5, #4]
3971   orrne r3, r3, r8
3972   strneh  r3, [lr, #6]  @ movhi
3973   streqh  r0, [lr, #6]  @ movhi
3974   ands  r3, r1, #255
3975   orrne r3, r3, r8
3976   strneh  r3, [lr, #8]  @ movhi
3977   mov r3, r1, lsr #8
3978   streqh  r0, [lr, #8]  @ movhi
3979   ands  r3, r3, #255
3980   orrne r3, r3, r8
3981   strneh  r3, [lr, #10] @ movhi
3982   mov r3, r1, lsr #16
3983   streqh  r0, [lr, #10] @ movhi
3984   ands  r3, r3, #255
3985   orrne r3, r3, r8
3986   strneh  r3, [lr, #12] @ movhi
3987   streqh  r0, [lr, #12] @ movhi
3988   movs  r3, r1, lsr #24
3989   orrne r3, r3, r8
3990   strneh  r3, [lr, #14] @ movhi
3991   streqh  r0, [lr, #14] @ movhi
3992   cmp r4, sl
3993   add lr, lr, #16
3994   add r6, r6, #2
3995   bne .L1535
3996 .L1929:
3997   ldr r1, [sp, #0]
3998   add r7, r7, r4, asl #4
3999   add r3, r1, r4, asl #1
4000 .L1534:
4001   ands  lr, r9, #7
4002   beq .L1907
4003   ldrh  r4, [r3, #0]
4004   mov r3, r4, asl #22
4005   mov r3, r3, lsr #22
4006   tst r4, #2048
4007   add r2, r2, r3, asl #6
4008   ldrne r3, [sp, #4]
4009   addne r2, r2, r3
4010   tst r4, #1024
4011   beq .L1591
4012   cmp lr, #3
4013   ldrls r2, [r2, #4]
4014   bhi .L1931
4015 .L1608:
4016   mov r1, #0
4017 .L1609:
4018   movs  r3, r2, lsr #24
4019   orr r3, r3, r8
4020   add r1, r1, #1
4021   strneh  r3, [r7, #0]  @ movhi
4022   streqh  r0, [r7, #0]  @ movhi
4023   cmp lr, r1
4024   mov r2, r2, asl #8
4025   add r7, r7, #2
4026   bhi .L1609
4027 .L1907:
4028   add sp, sp, #16
4029   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
4030 .L1172:
4031   and r1, lr, #255
4032   rsb r4, r1, #256
4033   and r3, sl, #7
4034   ldr r1, [sp, #12]
4035   mov r2, r9, asl #12
4036   mov r3, r3, asl #2
4037   and r2, r2, #49152
4038   add r2, r2, r3
4039   cmp r1, r4
4040   mov r3, r3, asl #1
4041   ldr r1, .L1954+8
4042   rsb r3, r3, #28
4043   add ip, r2, r1
4044   str r3, [sp, #8]
4045   and r1, lr, #7
4046   bls .L1932
4047   cmp r1, #0
4048   moveq r6, r1
4049   bne .L1933
4050 .L1752:
4051   rsb r3, r6, r4
4052   movs  r9, r3, lsr #3
4053   beq .L1772
4054   mov r3, r0, asl #16
4055   mov r5, r3, lsr #16
4056   mov lr, r7
4057   mov sl, #0
4058   b .L1774
4059 .L1934:
4060   ldr r2, [r3, #0]
4061   cmp r2, #0
4062   beq .L1805
4063   ands  r3, r2, #15
4064   orrne r3, r6, r3
4065   orrne r3, r3, r8
4066   strneh  r3, [lr, #14] @ movhi
4067   mov r3, r2, lsr #4
4068   streqh  r0, [lr, #14] @ movhi
4069   ands  r3, r3, #15
4070   orrne r3, r6, r3
4071   orrne r3, r3, r8
4072   strneh  r3, [lr, #12] @ movhi
4073   mov r3, r2, lsr #8
4074   streqh  r0, [lr, #12] @ movhi
4075   ands  r3, r3, #15
4076   orrne r3, r6, r3
4077   orrne r3, r3, r8
4078   strneh  r3, [lr, #10] @ movhi
4079   mov r3, r2, lsr #12
4080   streqh  r0, [lr, #10] @ movhi
4081   ands  r3, r3, #15
4082   orrne r3, r6, r3
4083   orrne r3, r3, r8
4084   strneh  r3, [lr, #8]  @ movhi
4085   mov r3, r2, lsr #16
4086   streqh  r0, [lr, #8]  @ movhi
4087   ands  r3, r3, #15
4088   orrne r3, r6, r3
4089   orrne r3, r3, r8
4090   strneh  r3, [lr, #6]  @ movhi
4091   mov r3, r2, lsr #20
4092   streqh  r0, [lr, #6]  @ movhi
4093   ands  r3, r3, #15
4094   orrne r3, r6, r3
4095   orrne r3, r3, r8
4096   strneh  r3, [lr, #4]  @ movhi
4097   mov r3, r2, lsr #24
4098   streqh  r0, [lr, #4]  @ movhi
4099   ands  r3, r3, #15
4100   orrne r3, r6, r3
4101   orrne r3, r3, r8
4102   strneh  r3, [lr, #2]  @ movhi
4103   streqh  r0, [lr, #2]  @ movhi
4104   movs  r3, r2, lsr #28
4105   orrne r3, r6, r3
4106   orrne r3, r3, r8
4107   strneh  r3, [lr, #0]  @ movhi
4108   streqh  r0, [lr, #0]  @ movhi
4109 .L1804:
4110   add sl, sl, #1
4111   cmp r9, sl
4112   add lr, lr, #16
4113   beq .L1830
4114 .L1935:
4115   add fp, fp, #2
4116 .L1774:
4117   ldrh  r1, [fp, #0]
4118   mov r2, r1, asl #22
4119   mov r2, r2, lsr #22
4120   tst r1, #2048
4121   mov r3, r1, lsr #12
4122   mov r6, r3, asl #4
4123   add r3, ip, r2, asl #5
4124   ldrne r2, [sp, #8]
4125   addne r3, r3, r2
4126   tst r1, #1024
4127   bne .L1934
4128   ldr r2, [r3, #0]
4129   cmp r2, #0
4130   beq .L1805
4131   ands  r3, r2, #15
4132   orrne r3, r6, r3
4133   orrne r3, r3, r8
4134   strneh  r3, [lr, #0]  @ movhi
4135   mov r3, r2, lsr #4
4136   streqh  r0, [lr, #0]  @ movhi
4137   ands  r3, r3, #15
4138   orrne r3, r6, r3
4139   orrne r3, r3, r8
4140   strneh  r3, [lr, #2]  @ movhi
4141   mov r3, r2, lsr #8
4142   streqh  r0, [lr, #2]  @ movhi
4143   ands  r3, r3, #15
4144   orrne r3, r6, r3
4145   orrne r3, r3, r8
4146   strneh  r3, [lr, #4]  @ movhi
4147   mov r3, r2, lsr #12
4148   streqh  r0, [lr, #4]  @ movhi
4149   ands  r3, r3, #15
4150   orrne r3, r6, r3
4151   orrne r3, r3, r8
4152   strneh  r3, [lr, #6]  @ movhi
4153   mov r3, r2, lsr #16
4154   streqh  r0, [lr, #6]  @ movhi
4155   ands  r3, r3, #15
4156   orrne r3, r6, r3
4157   orrne r3, r3, r8
4158   strneh  r3, [lr, #8]  @ movhi
4159   mov r3, r2, lsr #20
4160   streqh  r0, [lr, #8]  @ movhi
4161   ands  r3, r3, #15
4162   orrne r3, r6, r3
4163   orrne r3, r3, r8
4164   strneh  r3, [lr, #10] @ movhi
4165   mov r3, r2, lsr #24
4166   streqh  r0, [lr, #10] @ movhi
4167   ands  r3, r3, #15
4168   orrne r3, r6, r3
4169   orrne r3, r3, r8
4170   strneh  r3, [lr, #12] @ movhi
4171   streqh  r0, [lr, #12] @ movhi
4172   movs  r3, r2, lsr #28
4173   orrne r3, r6, r3
4174   orrne r3, r3, r8
4175   add sl, sl, #1
4176   strneh  r3, [lr, #14] @ movhi
4177   streqh  r0, [lr, #14] @ movhi
4178   cmp r9, sl
4179   add lr, lr, #16
4180   bne .L1935
4181 .L1830:
4182   add r7, r7, r9, asl #4
4183 .L1772:
4184   ldr r3, [sp, #12]
4185   rsb fp, r4, r3
4186   movs  r4, fp, lsr #3
4187   ldreq r2, [sp, #0]
4188   beq .L1834
4189   mov r3, r0, asl #16
4190   ldr sl, [sp, #0]
4191   mov r5, r3, lsr #16
4192   mov lr, r7
4193   mov r9, #0
4194   b .L1835
4195 .L1937:
4196   ldr r2, [r3, #0]
4197   cmp r2, #0
4198   beq .L1866
4199   ands  r3, r2, #15
4200   orrne r3, r6, r3
4201   orrne r3, r3, r8
4202   strneh  r3, [lr, #14] @ movhi
4203   mov r3, r2, lsr #4
4204   streqh  r0, [lr, #14] @ movhi
4205   ands  r3, r3, #15
4206   orrne r3, r6, r3
4207   orrne r3, r3, r8
4208   strneh  r3, [lr, #12] @ movhi
4209   mov r3, r2, lsr #8
4210   streqh  r0, [lr, #12] @ movhi
4211   ands  r3, r3, #15
4212   orrne r3, r6, r3
4213   orrne r3, r3, r8
4214   strneh  r3, [lr, #10] @ movhi
4215   mov r3, r2, lsr #12
4216   streqh  r0, [lr, #10] @ movhi
4217   ands  r3, r3, #15
4218   orrne r3, r6, r3
4219   orrne r3, r3, r8
4220   strneh  r3, [lr, #8]  @ movhi
4221   mov r3, r2, lsr #16
4222   streqh  r0, [lr, #8]  @ movhi
4223   ands  r3, r3, #15
4224   orrne r3, r6, r3
4225   orrne r3, r3, r8
4226   strneh  r3, [lr, #6]  @ movhi
4227   mov r3, r2, lsr #20
4228   streqh  r0, [lr, #6]  @ movhi
4229   ands  r3, r3, #15
4230   orrne r3, r6, r3
4231   orrne r3, r3, r8
4232   strneh  r3, [lr, #4]  @ movhi
4233   mov r3, r2, lsr #24
4234   streqh  r0, [lr, #4]  @ movhi
4235   ands  r3, r3, #15
4236   orrne r3, r6, r3
4237   orrne r3, r3, r8
4238   strneh  r3, [lr, #2]  @ movhi
4239   streqh  r0, [lr, #2]  @ movhi
4240   movs  r3, r2, lsr #28
4241   orrne r3, r6, r3
4242   orrne r3, r3, r8
4243   strneh  r3, [lr, #0]  @ movhi
4244   streqh  r0, [lr, #0]  @ movhi
4245 .L1865:
4246   add r9, r9, #1
4247   cmp r4, r9
4248   add lr, lr, #16
4249   add sl, sl, #2
4250   beq .L1936
4251 .L1835:
4252   ldrh  r1, [sl, #0]
4253   mov r2, r1, asl #22
4254   mov r2, r2, lsr #22
4255   tst r1, #2048
4256   mov r3, r1, lsr #12
4257   mov r6, r3, asl #4
4258   add r3, ip, r2, asl #5
4259   ldrne r2, [sp, #8]
4260   addne r3, r3, r2
4261   tst r1, #1024
4262   bne .L1937
4263   ldr r2, [r3, #0]
4264   cmp r2, #0
4265   beq .L1866
4266   ands  r3, r2, #15
4267   orrne r3, r6, r3
4268   orrne r3, r3, r8
4269   strneh  r3, [lr, #0]  @ movhi
4270   mov r3, r2, lsr #4
4271   streqh  r0, [lr, #0]  @ movhi
4272   ands  r3, r3, #15
4273   orrne r3, r6, r3
4274   orrne r3, r3, r8
4275   strneh  r3, [lr, #2]  @ movhi
4276   mov r3, r2, lsr #8
4277   streqh  r0, [lr, #2]  @ movhi
4278   ands  r3, r3, #15
4279   orrne r3, r6, r3
4280   orrne r3, r3, r8
4281   strneh  r3, [lr, #4]  @ movhi
4282   mov r3, r2, lsr #12
4283   streqh  r0, [lr, #4]  @ movhi
4284   ands  r3, r3, #15
4285   orrne r3, r6, r3
4286   orrne r3, r3, r8
4287   strneh  r3, [lr, #6]  @ movhi
4288   mov r3, r2, lsr #16
4289   streqh  r0, [lr, #6]  @ movhi
4290   ands  r3, r3, #15
4291   orrne r3, r6, r3
4292   orrne r3, r3, r8
4293   strneh  r3, [lr, #8]  @ movhi
4294   mov r3, r2, lsr #20
4295   streqh  r0, [lr, #8]  @ movhi
4296   ands  r3, r3, #15
4297   orrne r3, r6, r3
4298   orrne r3, r3, r8
4299   strneh  r3, [lr, #10] @ movhi
4300   mov r3, r2, lsr #24
4301   streqh  r0, [lr, #10] @ movhi
4302   ands  r3, r3, #15
4303   orrne r3, r6, r3
4304   orrne r3, r3, r8
4305   strneh  r3, [lr, #12] @ movhi
4306   streqh  r0, [lr, #12] @ movhi
4307   movs  r3, r2, lsr #28
4308   orrne r3, r6, r3
4309   orrne r3, r3, r8
4310   add r9, r9, #1
4311   strneh  r3, [lr, #14] @ movhi
4312   streqh  r0, [lr, #14] @ movhi
4313   cmp r4, r9
4314   add lr, lr, #16
4315   add sl, sl, #2
4316   bne .L1835
4317 .L1936:
4318   ldr r3, [sp, #0]
4319   add r7, r7, r4, asl #4
4320   add r2, r3, r4, asl #1
4321 .L1834:
4322   ands  lr, fp, #7
4323   beq .L1907
4324   ldrh  r4, [r2, #0]
4325   tst r4, #2048
4326   mov r3, r4, asl #22
4327   ldrne r1, [sp, #8]
4328   mov r3, r3, lsr #22
4329   add r3, ip, r3, asl #5
4330   addne r3, r3, r1
4331   mov r2, r4, lsr #12
4332   tst r4, #1024
4333   mov ip, r2, asl #4
4334   moveq r1, #0
4335   ldreq r2, [r3, #0]
4336   beq .L1902
4337   ldr r2, [r3, #0]
4338   mov r1, #0
4339 .L1897:
4340   movs  r3, r2, lsr #28
4341   orr r3, ip, r3
4342   orr r3, r3, r8
4343   add r1, r1, #1
4344   strneh  r3, [r7, #0]  @ movhi
4345   streqh  r0, [r7, #0]  @ movhi
4346   cmp lr, r1
4347   mov r2, r2, asl #4
4348   add r7, r7, #2
4349   bne .L1897
4350   b .L1907
4351 .L1932:
4352   cmp r1, #0
4353   bne .L1938
4354 .L1637:
4355   ldr r1, [sp, #12]
4356   movs  r4, r1, lsr #3
4357   beq .L1676
4358   mov r3, r0, asl #16
4359   mov r5, r3, lsr #16
4360   mov lr, r7
4361   mov sl, fp
4362   mov r9, #0
4363   b .L1678
4364 .L1940:
4365   ldr r2, [r3, #0]
4366   cmp r2, #0
4367   beq .L1709
4368   ands  r3, r2, #15
4369   orrne r3, r6, r3
4370   orrne r3, r3, r8
4371   strneh  r3, [lr, #14] @ movhi
4372   mov r3, r2, lsr #4
4373   streqh  r0, [lr, #14] @ movhi
4374   ands  r3, r3, #15
4375   orrne r3, r6, r3
4376   orrne r3, r3, r8
4377   strneh  r3, [lr, #12] @ movhi
4378   mov r3, r2, lsr #8
4379   streqh  r0, [lr, #12] @ movhi
4380   ands  r3, r3, #15
4381   orrne r3, r6, r3
4382   orrne r3, r3, r8
4383   strneh  r3, [lr, #10] @ movhi
4384   mov r3, r2, lsr #12
4385   streqh  r0, [lr, #10] @ movhi
4386   ands  r3, r3, #15
4387   orrne r3, r6, r3
4388   orrne r3, r3, r8
4389   strneh  r3, [lr, #8]  @ movhi
4390   mov r3, r2, lsr #16
4391   streqh  r0, [lr, #8]  @ movhi
4392   ands  r3, r3, #15
4393   orrne r3, r6, r3
4394   orrne r3, r3, r8
4395   strneh  r3, [lr, #6]  @ movhi
4396   mov r3, r2, lsr #20
4397   streqh  r0, [lr, #6]  @ movhi
4398   ands  r3, r3, #15
4399   orrne r3, r6, r3
4400   orrne r3, r3, r8
4401   strneh  r3, [lr, #4]  @ movhi
4402   mov r3, r2, lsr #24
4403   streqh  r0, [lr, #4]  @ movhi
4404   ands  r3, r3, #15
4405   orrne r3, r6, r3
4406   orrne r3, r3, r8
4407   strneh  r3, [lr, #2]  @ movhi
4408   streqh  r0, [lr, #2]  @ movhi
4409   movs  r3, r2, lsr #28
4410   orrne r3, r6, r3
4411   orrne r3, r3, r8
4412   strneh  r3, [lr, #0]  @ movhi
4413   streqh  r0, [lr, #0]  @ movhi
4414 .L1708:
4415   add r9, r9, #1
4416   cmp r4, r9
4417   add lr, lr, #16
4418   add sl, sl, #2
4419   beq .L1939
4420 .L1678:
4421   ldrh  r1, [sl, #0]
4422   mov r2, r1, asl #22
4423   mov r2, r2, lsr #22
4424   tst r1, #2048
4425   mov r3, r1, lsr #12
4426   mov r6, r3, asl #4
4427   add r3, ip, r2, asl #5
4428   ldrne r2, [sp, #8]
4429   addne r3, r3, r2
4430   tst r1, #1024
4431   bne .L1940
4432   ldr r2, [r3, #0]
4433   cmp r2, #0
4434   beq .L1709
4435   ands  r3, r2, #15
4436   orrne r3, r6, r3
4437   orrne r3, r3, r8
4438   strneh  r3, [lr, #0]  @ movhi
4439   mov r3, r2, lsr #4
4440   streqh  r0, [lr, #0]  @ movhi
4441   ands  r3, r3, #15
4442   orrne r3, r6, r3
4443   orrne r3, r3, r8
4444   strneh  r3, [lr, #2]  @ movhi
4445   mov r3, r2, lsr #8
4446   streqh  r0, [lr, #2]  @ movhi
4447   ands  r3, r3, #15
4448   orrne r3, r6, r3
4449   orrne r3, r3, r8
4450   strneh  r3, [lr, #4]  @ movhi
4451   mov r3, r2, lsr #12
4452   streqh  r0, [lr, #4]  @ movhi
4453   ands  r3, r3, #15
4454   orrne r3, r6, r3
4455   orrne r3, r3, r8
4456   strneh  r3, [lr, #6]  @ movhi
4457   mov r3, r2, lsr #16
4458   streqh  r0, [lr, #6]  @ movhi
4459   ands  r3, r3, #15
4460   orrne r3, r6, r3
4461   orrne r3, r3, r8
4462   strneh  r3, [lr, #8]  @ movhi
4463   mov r3, r2, lsr #20
4464   streqh  r0, [lr, #8]  @ movhi
4465   ands  r3, r3, #15
4466   orrne r3, r6, r3
4467   orrne r3, r3, r8
4468   strneh  r3, [lr, #10] @ movhi
4469   mov r3, r2, lsr #24
4470   streqh  r0, [lr, #10] @ movhi
4471   ands  r3, r3, #15
4472   orrne r3, r6, r3
4473   orrne r3, r3, r8
4474   strneh  r3, [lr, #12] @ movhi
4475   streqh  r0, [lr, #12] @ movhi
4476   movs  r3, r2, lsr #28
4477   orrne r3, r6, r3
4478   orrne r3, r3, r8
4479   add r9, r9, #1
4480   strneh  r3, [lr, #14] @ movhi
4481   streqh  r0, [lr, #14] @ movhi
4482   cmp r4, r9
4483   add lr, lr, #16
4484   add sl, sl, #2
4485   bne .L1678
4486 .L1939:
4487   add r7, r7, r4, asl #4
4488   add fp, fp, r4, asl #1
4489 .L1676:
4490   ldr r3, [sp, #12]
4491   ands  lr, r3, #7
4492   beq .L1907
4493   ldrh  r1, [fp, #0]
4494   tst r1, #2048
4495   mov r3, r1, asl #22
4496   ldrne r4, [sp, #8]
4497   mov r3, r3, lsr #22
4498   add r3, ip, r3, asl #5
4499   mov r2, r1, lsr #12
4500   addne r3, r3, r4
4501   tst r1, #1024
4502   mov ip, r2, asl #4
4503   moveq r1, #0
4504   ldreq r2, [r3, #0]
4505   beq .L1745
4506   ldr r2, [r3, #0]
4507   mov r1, #0
4508 .L1740:
4509   movs  r3, r2, lsr #28
4510   orr r3, ip, r3
4511   orr r3, r3, r8
4512   add r1, r1, #1
4513   strneh  r3, [r7, #0]  @ movhi
4514   streqh  r0, [r7, #0]  @ movhi
4515   cmp lr, r1
4516   mov r2, r2, asl #4
4517   add r7, r7, #2
4518   bne .L1740
4519   b .L1907
4520 .L1925:
4521   cmp lr, #0
4522   bne .L1941
4523 .L1176:
4524   ldr r3, [sp, #12]
4525   movs  r9, r3, lsr #3
4526   beq .L1308
4527   mov lr, r7
4528   mov r6, fp
4529   mov sl, #0
4530   b .L1310
4531 .L1943:
4532   ldr r1, [r5, #4]
4533   add sl, sl, #1
4534   ands  r3, r1, #255
4535   orrne r3, r3, r8
4536   strneh  r3, [lr, #6]  @ movhi
4537   mov r3, r1, lsr #8
4538   streqh  r0, [lr, #6]  @ movhi
4539   ands  r3, r3, #255
4540   orrne r3, r3, r8
4541   strneh  r3, [lr, #4]  @ movhi
4542   mov r3, r1, lsr #16
4543   streqh  r0, [lr, #4]  @ movhi
4544   ands  r3, r3, #255
4545   orrne r3, r3, r8
4546   strneh  r3, [lr, #2]  @ movhi
4547   streqh  r0, [lr, #2]  @ movhi
4548   movs  r3, r1, lsr #24
4549   ldr r1, [r5, #0]
4550   orrne r3, r3, r8
4551   strneh  r3, [lr, #0]  @ movhi
4552   streqh  r0, [lr, #0]  @ movhi
4553   ands  r3, r1, #255
4554   orrne r3, r3, r8
4555   strneh  r3, [lr, #14] @ movhi
4556   mov r3, r1, lsr #8
4557   streqh  r0, [lr, #14] @ movhi
4558   ands  r3, r3, #255
4559   orrne r3, r3, r8
4560   strneh  r3, [lr, #12] @ movhi
4561   mov r3, r1, lsr #16
4562   streqh  r0, [lr, #12] @ movhi
4563   ands  r3, r3, #255
4564   orrne r3, r3, r8
4565   strneh  r3, [lr, #10] @ movhi
4566   streqh  r0, [lr, #10] @ movhi
4567   movs  r3, r1, lsr #24
4568   orrne r3, r3, r8
4569   strneh  r3, [lr, #8]  @ movhi
4570   streqh  r0, [lr, #8]  @ movhi
4571   cmp r9, sl
4572   add lr, lr, #16
4573   add r6, r6, #2
4574   beq .L1942
4575 .L1310:
4576   ldrh  r1, [r6, #0]
4577   tst r1, #2048
4578   mov r3, r1, asl #22
4579   ldrne r4, [sp, #4]
4580   mov r3, r3, lsr #22
4581   add r5, r2, r3, asl #6
4582   addne r5, r5, r4
4583   tst r1, #1024
4584   bne .L1943
4585   ldr r1, [r5, #0]
4586   add sl, sl, #1
4587   ands  r3, r1, #255
4588   orrne r3, r3, r8
4589   strneh  r3, [lr, #0]  @ movhi
4590   mov r3, r1, lsr #8
4591   streqh  r0, [lr, #0]  @ movhi
4592   ands  r3, r3, #255
4593   orrne r3, r3, r8
4594   strneh  r3, [lr, #2]  @ movhi
4595   mov r3, r1, lsr #16
4596   streqh  r0, [lr, #2]  @ movhi
4597   ands  r3, r3, #255
4598   orrne r3, r3, r8
4599   strneh  r3, [lr, #4]  @ movhi
4600   streqh  r0, [lr, #4]  @ movhi
4601   movs  r3, r1, lsr #24
4602   ldr r1, [r5, #4]
4603   orrne r3, r3, r8
4604   strneh  r3, [lr, #6]  @ movhi
4605   streqh  r0, [lr, #6]  @ movhi
4606   ands  r3, r1, #255
4607   orrne r3, r3, r8
4608   strneh  r3, [lr, #8]  @ movhi
4609   mov r3, r1, lsr #8
4610   streqh  r0, [lr, #8]  @ movhi
4611   ands  r3, r3, #255
4612   orrne r3, r3, r8
4613   strneh  r3, [lr, #10] @ movhi
4614   mov r3, r1, lsr #16
4615   streqh  r0, [lr, #10] @ movhi
4616   ands  r3, r3, #255
4617   orrne r3, r3, r8
4618   strneh  r3, [lr, #12] @ movhi
4619   streqh  r0, [lr, #12] @ movhi
4620   movs  r3, r1, lsr #24
4621   orrne r3, r3, r8
4622   strneh  r3, [lr, #14] @ movhi
4623   streqh  r0, [lr, #14] @ movhi
4624   cmp r9, sl
4625   add lr, lr, #16
4626   add r6, r6, #2
4627   bne .L1310
4628 .L1942:
4629   add r7, r7, r9, asl #4
4630   add fp, fp, r9, asl #1
4631 .L1308:
4632   ldr r1, [sp, #12]
4633   ands  lr, r1, #7
4634   beq .L1907
4635   ldrh  r1, [fp, #0]
4636   mov r3, r1, asl #22
4637   mov r3, r3, lsr #22
4638   tst r1, #2048
4639   add r2, r2, r3, asl #6
4640   ldrne r3, [sp, #4]
4641   addne r2, r2, r3
4642   tst r1, #1024
4643   beq .L1366
4644   cmp lr, #3
4645   ldrls r2, [r2, #4]
4646   bhi .L1944
4647 .L1383:
4648   mov r1, #0
4649 .L1384:
4650   movs  r3, r2, lsr #24
4651   orr r3, r3, r8
4652   add r1, r1, #1
4653   strneh  r3, [r7, #0]  @ movhi
4654   streqh  r0, [r7, #0]  @ movhi
4655   cmp lr, r1
4656   mov r2, r2, asl #8
4657   add r7, r7, #2
4658   bhi .L1384
4659   b .L1907
4660 .L1805:
4661   strh  r5, [lr, #0]  @ movhi
4662   strh  r5, [lr, #2]  @ movhi
4663   strh  r5, [lr, #4]  @ movhi
4664   strh  r5, [lr, #6]  @ movhi
4665   strh  r5, [lr, #8]  @ movhi
4666   strh  r5, [lr, #10] @ movhi
4667   strh  r5, [lr, #12] @ movhi
4668   strh  r5, [lr, #14] @ movhi
4669   b .L1804
4670 .L1866:
4671   strh  r5, [lr, #0]  @ movhi
4672   strh  r5, [lr, #2]  @ movhi
4673   strh  r5, [lr, #4]  @ movhi
4674   strh  r5, [lr, #6]  @ movhi
4675   strh  r5, [lr, #8]  @ movhi
4676   strh  r5, [lr, #10] @ movhi
4677   strh  r5, [lr, #12] @ movhi
4678   strh  r5, [lr, #14] @ movhi
4679   b .L1865
4680 .L1902:
4681   ands  r3, r2, #15
4682   orr r3, ip, r3
4683   orr r3, r3, r8
4684   add r1, r1, #1
4685   strneh  r3, [r7, #0]  @ movhi
4686   streqh  r0, [r7, #0]  @ movhi
4687   cmp lr, r1
4688   mov r2, r2, lsr #4
4689   add r7, r7, #2
4690   bne .L1902
4691   b .L1907
4692 .L1938:
4693   ldr r2, [sp, #12]
4694   rsb r5, r1, #8
4695   cmp r2, r5
4696   bcs .L1639
4697   ldrh  lr, [fp, #0]
4698   mov r3, lr, asl #22
4699   mov r3, r3, lsr #22
4700   tst lr, #2048
4701   add ip, ip, r3, asl #5
4702   ldrne r3, [sp, #8]
4703   mov r2, lr, lsr #12
4704   addne ip, ip, r3
4705   tst lr, #1024
4706   mov r2, r2, asl #4
4707   bne .L1945
4708   ldr r4, [sp, #12]
4709   ldr ip, [ip, #0]
4710   cmp r4, #0
4711   beq .L1907
4712   mov r3, r1, asl #2
4713   mov r1, ip, lsr r3
4714   mov ip, #0
4715 .L1652:
4716   ands  r3, r1, #15
4717   orr r3, r2, r3
4718   orr r3, r3, r8
4719   strneh  r3, [r7, #0]  @ movhi
4720   ldr r3, [sp, #12]
4721   add ip, ip, #1
4722   streqh  r0, [r7, #0]  @ movhi
4723   cmp r3, ip
4724   mov r1, r1, lsr #4
4725   add r7, r7, #2
4726   bne .L1652
4727   b .L1907
4728 .L1955:
4729   .align  2
4730 .L1954:
4731   .word io_registers
4732   .word map_widths
4733   .word vram
4734 .L1933:
4735   ldrh  r5, [fp, #0]
4736   rsb r6, r1, #8
4737   mov r2, r5, asl #22
4738   mov r2, r2, lsr #22
4739   tst r5, #2048
4740   mov r3, r5, lsr #12
4741   mov sl, r3, asl #4
4742   add r3, ip, r2, asl #5
4743   ldrne r2, [sp, #8]
4744   addne r3, r3, r2
4745   tst r5, #1024
4746   beq .L1755
4747   cmp r6, #0
4748   ldr r2, [r3, #0]
4749   beq .L1757
4750   mov r3, r1, asl #2
4751   mov r1, r2, asl r3
4752   mov lr, #0
4753   mov r2, r7
4754 .L1759:
4755   movs  r3, r1, lsr #28
4756   orr r3, sl, r3
4757   orr r3, r3, r8
4758   add lr, lr, #1
4759   strneh  r3, [r2, #0]  @ movhi
4760   streqh  r0, [r2, #0]  @ movhi
4761   cmp r6, lr
4762   mov r1, r1, asl #4
4763   add r2, r2, #2
4764   bne .L1759
4765   add r7, r7, r6, asl #1
4766 .L1757:
4767   add fp, fp, #2
4768   b .L1752
4769 .L1926:
4770   ldrh  r1, [fp, #0]
4771   rsb r6, lr, #8
4772   tst r1, #2048
4773   mov r3, r1, asl #22
4774   ldrne r4, [sp, #4]
4775   mov r3, r3, lsr #22
4776   add sl, r2, r3, asl #6
4777   addne sl, sl, r4
4778   ands  r5, r1, #1024
4779   beq .L1415
4780   cmp lr, #3
4781   bhi .L1946
4782   subs  ip, r6, #4
4783   ldr r1, [sl, #4]
4784   beq .L1427
4785   mov r3, lr, asl #3
4786   sub r3, r3, #32
4787   mov r1, r1, asl r3
4788   mov lr, r7
4789   mov r5, #0
4790 .L1429:
4791   movs  r3, r1, lsr #24
4792   orr r3, r3, r8
4793   add r5, r5, #1
4794   strneh  r3, [lr, #0]  @ movhi
4795   streqh  r0, [lr, #0]  @ movhi
4796   cmp ip, r5
4797   mov r1, r1, asl #8
4798   add lr, lr, #2
4799   bne .L1429
4800   add r3, r7, r6, asl #1
4801   sub r7, r3, #8
4802 .L1427:
4803   ldr r1, [sl, #0]
4804   ands  r3, r1, #255
4805   orrne r3, r3, r8
4806   strneh  r3, [r7, #6]  @ movhi
4807   mov r3, r1, lsr #8
4808   streqh  r0, [r7, #6]  @ movhi
4809   ands  r3, r3, #255
4810   orrne r3, r3, r8
4811   strneh  r3, [r7, #4]  @ movhi
4812   mov r3, r1, lsr #16
4813   streqh  r0, [r7, #4]  @ movhi
4814   ands  r3, r3, #255
4815   orrne r3, r3, r8
4816   strneh  r3, [r7, #2]  @ movhi
4817   streqh  r0, [r7, #2]  @ movhi
4818   movs  r3, r1, lsr #24
4819   orrne r3, r3, r8
4820   strneh  r3, [r7, #0]  @ movhi
4821   streqh  r0, [r7, #0]  @ movhi
4822 .L1475:
4823   add r7, r7, #8
4824   mov r6, ip
4825 .L1419:
4826   add fp, fp, #2
4827   b .L1412
4828 .L1941:
4829   ldr r3, [sp, #12]
4830   rsb r4, lr, #8
4831   cmp r3, r4
4832   bcs .L1178
4833   ldrh  r1, [fp, #0]
4834   tst r1, #2048
4835   mov r3, r1, asl #22
4836   ldrne r4, [sp, #4]
4837   mov r3, r3, lsr #22
4838   add ip, r2, r3, asl #6
4839   addne ip, ip, r4
4840   tst r1, #1024
4841   bne .L1947
4842   cmp lr, #3
4843   bls .L1215
4844   ldr r4, [sp, #12]
4845   ldr r2, [ip, #4]
4846   cmp r4, #0
4847   beq .L1907
4848   mov r3, lr, asl #3
4849   sub r3, r3, #32
4850   mov r1, r2, lsr r3
4851   mov r2, #0
4852 .L1218:
4853   ands  r3, r1, #255
4854   orr r3, r3, r8
4855   strneh  r3, [r7, #0]  @ movhi
4856   ldr r3, [sp, #12]
4857   add r2, r2, #1
4858   streqh  r0, [r7, #0]  @ movhi
4859   cmp r3, r2
4860   mov r1, r1, lsr #8
4861   add r7, r7, #2
4862   bne .L1218
4863   b .L1907
4864 .L1709:
4865   strh  r5, [lr, #0]  @ movhi
4866   strh  r5, [lr, #2]  @ movhi
4867   strh  r5, [lr, #4]  @ movhi
4868   strh  r5, [lr, #6]  @ movhi
4869   strh  r5, [lr, #8]  @ movhi
4870   strh  r5, [lr, #10] @ movhi
4871   strh  r5, [lr, #12] @ movhi
4872   strh  r5, [lr, #14] @ movhi
4873   b .L1708
4874 .L1745:
4875   ands  r3, r2, #15
4876   orr r3, ip, r3
4877   orr r3, r3, r8
4878   add r1, r1, #1
4879   strneh  r3, [r7, #0]  @ movhi
4880   streqh  r0, [r7, #0]  @ movhi
4881   cmp lr, r1
4882   mov r2, r2, lsr #4
4883   add r7, r7, #2
4884   bne .L1745
4885   b .L1907
4886 .L1591:
4887   cmp lr, #3
4888   ldrls r2, [r2, #0]
4889   bhi .L1948
4890 .L1629:
4891   mov r1, #0
4892 .L1630:
4893   ands  r3, r2, #255
4894   orr r3, r3, r8
4895   add r1, r1, #1
4896   strneh  r3, [r7, #0]  @ movhi
4897   streqh  r0, [r7, #0]  @ movhi
4898   cmp lr, r1
4899   mov r2, r2, lsr #8
4900   add r7, r7, #2
4901   bhi .L1630
4902   b .L1907
4903 .L1366:
4904   cmp lr, #3
4905   ldrls r2, [r2, #0]
4906   bhi .L1949
4907 .L1404:
4908   mov r1, #0
4909 .L1405:
4910   ands  r3, r2, #255
4911   orr r3, r3, r8
4912   add r1, r1, #1
4913   strneh  r3, [r7, #0]  @ movhi
4914   streqh  r0, [r7, #0]  @ movhi
4915   cmp lr, r1
4916   mov r2, r2, lsr #8
4917   add r7, r7, #2
4918   bhi .L1405
4919   b .L1907
4920 .L1755:
4921   cmp r6, #0
4922   ldr r2, [r3, #0]
4923   beq .L1757
4924   mov r3, r1, asl #2
4925   mov r1, r2, lsr r3
4926   mov lr, #0
4927   mov r2, r7
4928 .L1766:
4929   ands  r3, r1, #15
4930   orr r3, sl, r3
4931   orr r3, r3, r8
4932   add lr, lr, #1
4933   strneh  r3, [r2, #0]  @ movhi
4934   streqh  r0, [r2, #0]  @ movhi
4935   cmp r6, lr
4936   mov r1, r1, lsr #4
4937   add r2, r2, #2
4938   bne .L1766
4939   add r7, r7, r6, asl #1
4940   b .L1757
4941 .L1639:
4942   ldrh  lr, [fp, #0]
4943   mov r2, lr, asl #22
4944   mov r2, r2, lsr #22
4945   tst lr, #2048
4946   mov r3, lr, lsr #12
4947   mov r4, r3, asl #4
4948   add r3, ip, r2, asl #5
4949   ldrne r2, [sp, #8]
4950   addne r3, r3, r2
4951   tst lr, #1024
4952   bne .L1950
4953   cmp r5, #0
4954   ldr r2, [r3, #0]
4955   beq .L1661
4956   mov r3, r1, asl #2
4957   mov r1, r2, lsr r3
4958   mov lr, #0
4959   mov r2, r7
4960 .L1670:
4961   ands  r3, r1, #15
4962   orr r3, r4, r3
4963   orr r3, r3, r8
4964   add lr, lr, #1
4965   strneh  r3, [r2, #0]  @ movhi
4966   streqh  r0, [r2, #0]  @ movhi
4967   cmp r5, lr
4968   mov r1, r1, lsr #4
4969   add r2, r2, #2
4970   bne .L1670
4971 .L1922:
4972   add r7, r7, r5, asl #1
4973 .L1661:
4974   ldr r3, [sp, #12]
4975   add fp, fp, #2
4976   rsb r3, r5, r3
4977   str r3, [sp, #12]
4978   b .L1637
4979 .L1415:
4980   cmp lr, #3
4981   bhi .L1951
4982   subs  ip, r6, #4
4983   ldr r1, [sl, #0]
4984   beq .L1456
4985   mov r3, lr, asl #3
4986   mov r1, r1, lsr r3
4987   mov lr, r7
4988   mov r5, #0
4989 .L1458:
4990   ands  r3, r1, #255
4991   orr r3, r3, r8
4992   add r5, r5, #1
4993   strneh  r3, [lr, #0]  @ movhi
4994   streqh  r0, [lr, #0]  @ movhi
4995   cmp ip, r5
4996   mov r1, r1, lsr #8
4997   add lr, lr, #2
4998   bne .L1458
4999   add r3, r7, r6, asl #1
5000   sub r7, r3, #8
5001 .L1456:
5002   ldr r1, [sl, #4]
5003   ands  r3, r1, #255
5004   orrne r3, r3, r8
5005   strneh  r3, [r7, #0]  @ movhi
5006   mov r3, r1, lsr #8
5007   streqh  r0, [r7, #0]  @ movhi
5008   ands  r3, r3, #255
5009   orrne r3, r3, r8
5010   strneh  r3, [r7, #2]  @ movhi
5011   mov r3, r1, lsr #16
5012   streqh  r0, [r7, #2]  @ movhi
5013   ands  r3, r3, #255
5014   orrne r3, r3, r8
5015   strneh  r3, [r7, #4]  @ movhi
5016   streqh  r0, [r7, #4]  @ movhi
5017   movs  r3, r1, lsr #24
5018   orrne r3, r3, r8
5019   strneh  r3, [r7, #6]  @ movhi
5020   streqh  r0, [r7, #6]  @ movhi
5021   b .L1475
5022 .L1178:
5023   ldrh  r1, [fp, #0]
5024   mov r3, r1, asl #22
5025   mov r3, r3, lsr #22
5026   tst r1, #2048
5027   add ip, r2, r3, asl #6
5028   ldrne r3, [sp, #4]
5029   addne ip, ip, r3
5030   ands  r5, r1, #1024
5031   bne .L1952
5032   cmp lr, #3
5033   bls .L1279
5034   cmp r4, #0
5035   ldr r1, [ip, #4]
5036   beq .L1251
5037   mov r3, lr, asl #3
5038   sub r3, r3, #32
5039   mov r1, r1, lsr r3
5040   mov ip, r5
5041   mov lr, r7
5042 .L1282:
5043   ands  r3, r1, #255
5044   orr r3, r3, r8
5045   add ip, ip, #1
5046   strneh  r3, [lr, #0]  @ movhi
5047   streqh  r0, [lr, #0]  @ movhi
5048   cmp r4, ip
5049   mov r1, r1, lsr #8
5050   add lr, lr, #2
5051   bne .L1282
5052 .L1909:
5053   add r7, r7, r4, asl #1
5054 .L1251:
5055   ldr r1, [sp, #12]
5056   add fp, fp, #2
5057   rsb r1, r4, r1
5058   str r1, [sp, #12]
5059   b .L1176
5060 .L1948:
5061   ldmia r2, {r1, r2}  @ phole ldm
5062   ands  r3, r1, #255
5063   orrne r3, r3, r8
5064   strneh  r3, [r7, #0]  @ movhi
5065   mov r3, r1, lsr #8
5066   streqh  r0, [r7, #0]  @ movhi
5067   ands  r3, r3, #255
5068   orrne r3, r3, r8
5069   strneh  r3, [r7, #2]  @ movhi
5070   mov r3, r1, lsr #16
5071   streqh  r0, [r7, #2]  @ movhi
5072   ands  r3, r3, #255
5073   orrne r3, r3, r8
5074   strneh  r3, [r7, #4]  @ movhi
5075   streqh  r0, [r7, #4]  @ movhi
5076   movs  r3, r1, lsr #24
5077   orrne r3, r3, r8
5078   strneh  r3, [r7, #6]  @ movhi
5079   streqh  r0, [r7, #6]  @ movhi
5080   subs  lr, lr, #4
5081   addne r7, r7, #8
5082   bne .L1629
5083   b .L1907
5084 .L1931:
5085   ldr r1, [r2, #4]
5086   ldr r2, [r2, #0]
5087   ands  r3, r1, #255
5088   orrne r3, r3, r8
5089   strneh  r3, [r7, #6]  @ movhi
5090   mov r3, r1, lsr #8
5091   streqh  r0, [r7, #6]  @ movhi
5092   ands  r3, r3, #255
5093   orrne r3, r3, r8
5094   strneh  r3, [r7, #4]  @ movhi
5095   mov r3, r1, lsr #16
5096   streqh  r0, [r7, #4]  @ movhi
5097   ands  r3, r3, #255
5098   orrne r3, r3, r8
5099   strneh  r3, [r7, #2]  @ movhi
5100   streqh  r0, [r7, #2]  @ movhi
5101   movs  r3, r1, lsr #24
5102   orrne r3, r3, r8
5103   strneh  r3, [r7, #0]  @ movhi
5104   streqh  r0, [r7, #0]  @ movhi
5105   subs  lr, lr, #4
5106   addne r7, r7, #8
5107   bne .L1608
5108   b .L1907
5109 .L1944:
5110   ldr r1, [r2, #4]
5111   ldr r2, [r2, #0]
5112   ands  r3, r1, #255
5113   orrne r3, r3, r8
5114   strneh  r3, [r7, #6]  @ movhi
5115   mov r3, r1, lsr #8
5116   streqh  r0, [r7, #6]  @ movhi
5117   ands  r3, r3, #255
5118   orrne r3, r3, r8
5119   strneh  r3, [r7, #4]  @ movhi
5120   mov r3, r1, lsr #16
5121   streqh  r0, [r7, #4]  @ movhi
5122   ands  r3, r3, #255
5123   orrne r3, r3, r8
5124   strneh  r3, [r7, #2]  @ movhi
5125   streqh  r0, [r7, #2]  @ movhi
5126   movs  r3, r1, lsr #24
5127   orrne r3, r3, r8
5128   strneh  r3, [r7, #0]  @ movhi
5129   streqh  r0, [r7, #0]  @ movhi
5130   subs  lr, lr, #4
5131   addne r7, r7, #8
5132   bne .L1383
5133   b .L1907
5134 .L1949:
5135   ldmia r2, {r1, r2}  @ phole ldm
5136   ands  r3, r1, #255
5137   orrne r3, r3, r8
5138   strneh  r3, [r7, #0]  @ movhi
5139   mov r3, r1, lsr #8
5140   streqh  r0, [r7, #0]  @ movhi
5141   ands  r3, r3, #255
5142   orrne r3, r3, r8
5143   strneh  r3, [r7, #2]  @ movhi
5144   mov r3, r1, lsr #16
5145   streqh  r0, [r7, #2]  @ movhi
5146   ands  r3, r3, #255
5147   orrne r3, r3, r8
5148   strneh  r3, [r7, #4]  @ movhi
5149   streqh  r0, [r7, #4]  @ movhi
5150   movs  r3, r1, lsr #24
5151   orrne r3, r3, r8
5152   strneh  r3, [r7, #6]  @ movhi
5153   streqh  r0, [r7, #6]  @ movhi
5154   subs  lr, lr, #4
5155   addne r7, r7, #8
5156   bne .L1404
5157   b .L1907
5158 .L1946:
5159   cmp r6, #0
5160   ldr r1, [sl, #0]
5161   beq .L1419
5162   mov r3, lr, asl #3
5163   sub r3, r3, #32
5164   mov r1, r1, asl r3
5165   mov lr, r7
5166   mov r5, #0
5167 .L1421:
5168   movs  r3, r1, lsr #24
5169   orr r3, r3, r8
5170   add r5, r5, #1
5171   strneh  r3, [lr, #0]  @ movhi
5172   streqh  r0, [lr, #0]  @ movhi
5173   cmp r6, r5
5174   mov r1, r1, asl #8
5175   add lr, lr, #2
5176   bne .L1421
5177   add r7, r7, r6, asl #1
5178 .L1953:
5179   add fp, fp, #2
5180   b .L1412
5181 .L1945:
5182   ldr r4, [sp, #12]
5183   ldr ip, [ip, #0]
5184   cmp r4, #0
5185   beq .L1907
5186   mov r3, r1, asl #2
5187   mov r1, ip, asl r3
5188   mov ip, #0
5189 .L1646:
5190   movs  r3, r1, lsr #28
5191   orr r3, r2, r3
5192   orr r3, r3, r8
5193   strneh  r3, [r7, #0]  @ movhi
5194   ldr r3, [sp, #12]
5195   add ip, ip, #1
5196   streqh  r0, [r7, #0]  @ movhi
5197   cmp r3, ip
5198   mov r1, r1, asl #4
5199   add r7, r7, #2
5200   bne .L1646
5201   b .L1907
5202 .L1952:
5203   cmp lr, #3
5204   bls .L1249
5205   cmp r4, #0
5206   ldr r1, [ip, #0]
5207   beq .L1251
5208   mov r3, lr, asl #3
5209   sub r3, r3, #32
5210   mov r1, r1, asl r3
5211   mov lr, r7
5212   mov r5, #0
5213 .L1253:
5214   movs  r3, r1, lsr #24
5215   orr r3, r3, r8
5216   add r5, r5, #1
5217   strneh  r3, [lr, #0]  @ movhi
5218   streqh  r0, [lr, #0]  @ movhi
5219   cmp r4, r5
5220   mov r1, r1, asl #8
5221   add lr, lr, #2
5222   bne .L1253
5223   b .L1909
5224 .L1950:
5225   cmp r5, #0
5226   ldr r2, [r3, #0]
5227   beq .L1661
5228   mov r3, r1, asl #2
5229   mov r1, r2, asl r3
5230   mov lr, #0
5231   mov r2, r7
5232 .L1663:
5233   movs  r3, r1, lsr #28
5234   orr r3, r4, r3
5235   orr r3, r3, r8
5236   add lr, lr, #1
5237   strneh  r3, [r2, #0]  @ movhi
5238   streqh  r0, [r2, #0]  @ movhi
5239   cmp r5, lr
5240   mov r1, r1, asl #4
5241   add r2, r2, #2
5242   bne .L1663
5243   b .L1922
5244 .L1947:
5245   cmp lr, #3
5246   bls .L1184
5247   ldr r1, [sp, #12]
5248   ldr r2, [ip, #0]
5249   cmp r1, #0
5250   beq .L1907
5251   mov r3, lr, asl #3
5252   sub r3, r3, #32
5253   mov r1, r2, asl r3
5254   mov r2, #0
5255 .L1188:
5256   movs  r3, r1, lsr #24
5257   orr r3, r3, r8
5258   strneh  r3, [r7, #0]  @ movhi
5259   ldr r3, [sp, #12]
5260   add r2, r2, #1
5261   streqh  r0, [r7, #0]  @ movhi
5262   cmp r3, r2
5263   mov r1, r1, asl #8
5264   add r7, r7, #2
5265   bne .L1188
5266   b .L1907
5267 .L1951:
5268   cmp r6, #0
5269   ldr r1, [sl, #4]
5270   beq .L1419
5271   mov r3, lr, asl #3
5272   sub r3, r3, #32
5273   mov r1, r1, lsr r3
5274   mov lr, r7
5275 .L1450:
5276   ands  r3, r1, #255
5277   orr r3, r3, r8
5278   add r5, r5, #1
5279   strneh  r3, [lr, #0]  @ movhi
5280   streqh  r0, [lr, #0]  @ movhi
5281   cmp r6, r5
5282   mov r1, r1, lsr #8
5283   add lr, lr, #2
5284   bne .L1450
5285   add r7, r7, r6, asl #1
5286   b .L1953
5287 .L1184:
5288   ldr r4, [sp, #12]
5289   mov r3, lr, asl #3
5290   ldr r1, [ip, #4]
5291   add r2, r4, lr
5292   sub r3, r3, #32
5293   cmp r2, #4
5294   mov r1, r1, asl r3
5295   bhi .L1193
5296   cmp r4, #0
5297   movne r2, #0
5298   beq .L1907
5299 .L1210:
5300   movs  r3, r1, lsr #24
5301   orr r3, r3, r8
5302   strneh  r3, [r7, #0]  @ movhi
5303   ldr r3, [sp, #12]
5304   add r2, r2, #1
5305   streqh  r0, [r7, #0]  @ movhi
5306   cmp r3, r2
5307   mov r1, r1, asl #8
5308   add r7, r7, #2
5309   bne .L1210
5310   b .L1907
5311 .L1249:
5312   subs  r6, r4, #4
5313   ldr r1, [ip, #4]
5314   beq .L1259
5315   mov r3, lr, asl #3
5316   sub r3, r3, #32
5317   mov r1, r1, asl r3
5318   mov lr, r7
5319   mov r5, #0
5320 .L1261:
5321   movs  r3, r1, lsr #24
5322   orr r3, r3, r8
5323   add r5, r5, #1
5324   strneh  r3, [lr, #0]  @ movhi
5325   streqh  r0, [lr, #0]  @ movhi
5326   cmp r6, r5
5327   mov r1, r1, asl #8
5328   add lr, lr, #2
5329   bne .L1261
5330   add r3, r7, r4, asl #1
5331   sub r7, r3, #8
5332 .L1259:
5333   ldr r1, [ip, #0]
5334   ands  r3, r1, #255
5335   orrne r3, r3, r8
5336   strneh  r3, [r7, #6]  @ movhi
5337   mov r3, r1, lsr #8
5338   streqh  r0, [r7, #6]  @ movhi
5339   ands  r3, r3, #255
5340   orrne r3, r3, r8
5341   strneh  r3, [r7, #4]  @ movhi
5342   mov r3, r1, lsr #16
5343   streqh  r0, [r7, #4]  @ movhi
5344   ands  r3, r3, #255
5345   orrne r3, r3, r8
5346   strneh  r3, [r7, #2]  @ movhi
5347   streqh  r0, [r7, #2]  @ movhi
5348   movs  r3, r1, lsr #24
5349   orrne r3, r3, r8
5350   strneh  r3, [r7, #0]  @ movhi
5351   streqh  r0, [r7, #0]  @ movhi
5352 .L1307:
5353   add r7, r7, #8
5354   b .L1251
5355 .L1215:
5356   ldr r4, [sp, #12]
5357   ldr r3, [ip, #0]
5358   add r2, r4, lr
5359   cmp r2, #4
5360   mov r1, lr, asl #3
5361   mov r2, r3, lsr r1
5362   bhi .L1223
5363   cmp r4, #0
5364   movne r1, #0
5365   beq .L1907
5366 .L1240:
5367   ands  r3, r2, #255
5368   orr r3, r3, r8
5369   strneh  r3, [r7, #0]  @ movhi
5370   ldr r3, [sp, #12]
5371   add r1, r1, #1
5372   streqh  r0, [r7, #0]  @ movhi
5373   cmp r3, r1
5374   mov r2, r2, lsr #8
5375   add r7, r7, #2
5376   bne .L1240
5377   b .L1907
5378 .L1279:
5379   subs  r6, r4, #4
5380   ldr r1, [ip, #0]
5381   beq .L1288
5382   mov r3, lr, asl #3
5383   mov r1, r1, lsr r3
5384   mov lr, r7
5385   mov r5, #0
5386 .L1290:
5387   ands  r3, r1, #255
5388   orr r3, r3, r8
5389   add r5, r5, #1
5390   strneh  r3, [lr, #0]  @ movhi
5391   streqh  r0, [lr, #0]  @ movhi
5392   cmp r6, r5
5393   mov r1, r1, lsr #8
5394   add lr, lr, #2
5395   bne .L1290
5396   add r3, r7, r4, asl #1
5397   sub r7, r3, #8
5398 .L1288:
5399   ldr r1, [ip, #4]
5400   ands  r3, r1, #255
5401   orrne r3, r3, r8
5402   strneh  r3, [r7, #0]  @ movhi
5403   mov r3, r1, lsr #8
5404   streqh  r0, [r7, #0]  @ movhi
5405   ands  r3, r3, #255
5406   orrne r3, r3, r8
5407   strneh  r3, [r7, #2]  @ movhi
5408   mov r3, r1, lsr #16
5409   streqh  r0, [r7, #2]  @ movhi
5410   ands  r3, r3, #255
5411   orrne r3, r3, r8
5412   strneh  r3, [r7, #4]  @ movhi
5413   streqh  r0, [r7, #4]  @ movhi
5414   movs  r3, r1, lsr #24
5415   orrne r3, r3, r8
5416   strneh  r3, [r7, #6]  @ movhi
5417   bne .L1307
5418   strh  r0, [r7, #6]  @ movhi
5419   add r7, r7, #8
5420   b .L1251
5421 .L1193:
5422   rsbs  r4, lr, #4
5423   beq .L1196
5424   mov r2, r7
5425   mov lr, #0
5426 .L1198:
5427   movs  r3, r1, lsr #24
5428   orr r3, r3, r8
5429   add lr, lr, #1
5430   strneh  r3, [r2, #0]  @ movhi
5431   streqh  r0, [r2, #0]  @ movhi
5432   cmp r4, lr
5433   mov r1, r1, asl #8
5434   add r2, r2, #2
5435   bne .L1198
5436   add r7, r7, r4, asl #1
5437 .L1196:
5438   ldr r1, [sp, #12]
5439   ldr r2, [ip, #0]
5440   subs  lr, r1, r4
5441   beq .L1907
5442   mov r1, #0
5443 .L1205:
5444   movs  r3, r2, lsr #24
5445   orr r3, r3, r8
5446   add r1, r1, #1
5447   strneh  r3, [r7, #0]  @ movhi
5448   streqh  r0, [r7, #0]  @ movhi
5449   cmp lr, r1
5450   mov r2, r2, asl #8
5451   add r7, r7, #2
5452   bne .L1205
5453   b .L1907
5454 .L1223:
5455   rsbs  r4, lr, #4
5456   beq .L1226
5457   mov r1, r7
5458   mov lr, #0
5459 .L1228:
5460   ands  r3, r2, #255
5461   orr r3, r3, r8
5462   add lr, lr, #1
5463   strneh  r3, [r1, #0]  @ movhi
5464   streqh  r0, [r1, #0]  @ movhi
5465   cmp r4, lr
5466   mov r2, r2, lsr #8
5467   add r1, r1, #2
5468   bne .L1228
5469   add r7, r7, r4, asl #1
5470 .L1226:
5471   ldr r1, [sp, #12]
5472   ldr r2, [ip, #4]
5473   subs  lr, r1, r4
5474   beq .L1907
5475   mov r1, #0
5476 .L1235:
5477   ands  r3, r2, #255
5478   orr r3, r3, r8
5479   add r1, r1, #1
5480   strneh  r3, [r7, #0]  @ movhi
5481   streqh  r0, [r7, #0]  @ movhi
5482   cmp lr, r1
5483   mov r2, r2, lsr #8
5484   add r7, r7, #2
5485   bne .L1235
5486   b .L1907
5487   .size render_scanline_text_base_color16, .-render_scanline_text_base_color16
5488   .align  2
5489   .global render_scanline_text_transparent_color16
5490   .type render_scanline_text_transparent_color16, %function
5491 render_scanline_text_transparent_color16:
5492   @ args = 0, pretend = 0, frame = 8
5493   @ frame_needed = 0, uses_anonymous_args = 0
5494   ldr ip, .L2599
5495   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
5496   ldrh  lr, [ip, #80]
5497   add r6, r0, #7
5498   mov r6, lr, asr r6
5499   mov lr, lr, asr r0
5500   add r7, ip, r0, asl #2
5501   ldrh  r5, [ip, #6]
5502   ldrh  r4, [r7, #18]
5503   add ip, ip, r0, asl #1
5504   add sl, r5, r4
5505   ldrh  r8, [ip, #8]
5506   mov r5, sl, asl #23
5507   sub sp, sp, #8
5508   mov r5, r5, lsr #23
5509   rsb r2, r1, r2
5510   ldrh  r4, [r7, #16]
5511   cmp r5, #255
5512   movls ip, #0
5513   movhi ip, #1
5514   mov r7, r8, lsr #14
5515   str r2, [sp, #4]
5516   ldr r2, .L2599+4
5517   ands  ip, ip, r7, lsr #1
5518   add fp, r3, r1, asl #1
5519   ldr r2, [r2, r7, asl #2]
5520   subne r3, r5, #256
5521   mov r0, r8, asl #3
5522   ldr r9, .L2599+8
5523   movne r3, r3, lsr #3
5524   moveq r3, sl, asl #3
5525   add r4, r4, r1
5526   and r0, r0, #63488
5527   add r0, r0, r9
5528   addne r3, r3, r2, lsr #3
5529   andeq r3, r3, #1984
5530   mov r4, r4, asl #23
5531   addne r0, r0, r3, asl #6
5532   addeq r0, r0, r3
5533   mov r4, r4, lsr #23
5534   tst r7, #1
5535   and lr, lr, #1
5536   and r6, r6, #2
5537   andeq r4, r4, #255
5538   orr lr, lr, r6
5539   moveq r3, r4, lsr #3
5540   mov lr, lr, asl #9
5541   addeq r7, r0, r3, asl #1
5542   streq r0, [sp, #0]
5543   beq .L1964
5544   cmp r4, #255
5545   subhi r4, r4, #256
5546   movhi r3, r4, lsr #3
5547   movls r3, r4, lsr #3
5548   addhi r3, r0, r3, asl #1
5549   addls r7, r0, r3, asl #1
5550   addls r0, r0, #2048
5551   addhi r7, r3, #2048
5552   strhi r0, [sp, #0]
5553   strls r0, [sp, #0]
5554 .L1964:
5555   tst r8, #128
5556   beq .L1965
5557   and r1, r4, #255
5558   rsb r0, r1, #256
5559   and r3, r5, #7
5560   mov r2, r8, asl #12
5561   ldr r1, [sp, #4]
5562   mov r3, r3, asl #3
5563   and r2, r2, #49152
5564   add r2, r2, r3
5565   cmp r1, r0
5566   mov r3, r3, asl #1
5567   add r2, r2, r9
5568   rsb ip, r3, #56
5569   and r4, r4, #7
5570   bls .L2574
5571   cmp r4, #0
5572   moveq r8, r4
5573   bne .L2575
5574 .L2167:
5575   rsb r3, r8, r0
5576   movs  sl, r3, lsr #3
5577   beq .L2221
5578   mov r6, fp
5579   mov r8, #0
5580   b .L2223
5581 .L2576:
5582   ldr r1, [r4, #4]
5583   cmp r1, #0
5584   beq .L2228
5585   ands  r3, r1, #255
5586   orrne r3, r3, lr
5587   strneh  r3, [r6, #6]  @ movhi
5588   mov r3, r1, lsr #8
5589   ands  r3, r3, #255
5590   orrne r3, r3, lr
5591   strneh  r3, [r6, #4]  @ movhi
5592   mov r3, r1, lsr #16
5593   ands  r3, r3, #255
5594   orrne r3, r3, lr
5595   strneh  r3, [r6, #2]  @ movhi
5596   movs  r3, r1, lsr #24
5597   orrne r3, r3, lr
5598   strneh  r3, [r6, #0]  @ movhi
5599 .L2228:
5600   ldr r1, [r4, #0]
5601   cmp r1, #0
5602   beq .L2237
5603   ands  r3, r1, #255
5604   orrne r3, r3, lr
5605   strneh  r3, [r6, #14] @ movhi
5606   mov r3, r1, lsr #8
5607   ands  r3, r3, #255
5608   orrne r3, r3, lr
5609   strneh  r3, [r6, #12] @ movhi
5610   mov r3, r1, lsr #16
5611   ands  r3, r3, #255
5612   orrne r3, r3, lr
5613   strneh  r3, [r6, #10] @ movhi
5614   movs  r3, r1, lsr #24
5615   orrne r3, r3, lr
5616   strneh  r3, [r6, #8]  @ movhi
5617 .L2237:
5618   add r8, r8, #1
5619   cmp sl, r8
5620   add r6, r6, #16
5621   beq .L2263
5622 .L2577:
5623   add r7, r7, #2
5624 .L2223:
5625   ldrh  r1, [r7, #0]
5626   mov r3, r1, asl #22
5627   mov r3, r3, lsr #22
5628   tst r1, #2048
5629   add r4, r2, r3, asl #6
5630   addne r4, r4, ip
5631   tst r1, #1024
5632   bne .L2576
5633   ldr r1, [r4, #0]
5634   cmp r1, #0
5635   beq .L2246
5636   ands  r3, r1, #255
5637   orrne r3, r3, lr
5638   strneh  r3, [r6, #0]  @ movhi
5639   mov r3, r1, lsr #8
5640   ands  r3, r3, #255
5641   orrne r3, r3, lr
5642   strneh  r3, [r6, #2]  @ movhi
5643   mov r3, r1, lsr #16
5644   ands  r3, r3, #255
5645   orrne r3, r3, lr
5646   strneh  r3, [r6, #4]  @ movhi
5647   movs  r3, r1, lsr #24
5648   orrne r3, r3, lr
5649   strneh  r3, [r6, #6]  @ movhi
5650 .L2246:
5651   ldr r1, [r4, #4]
5652   cmp r1, #0
5653   beq .L2237
5654   ands  r3, r1, #255
5655   orrne r3, r3, lr
5656   strneh  r3, [r6, #8]  @ movhi
5657   mov r3, r1, lsr #8
5658   ands  r3, r3, #255
5659   orrne r3, r3, lr
5660   strneh  r3, [r6, #10] @ movhi
5661   mov r3, r1, lsr #16
5662   ands  r3, r3, #255
5663   orrne r3, r3, lr
5664   strneh  r3, [r6, #12] @ movhi
5665   movs  r3, r1, lsr #24
5666   orrne r3, r3, lr
5667   add r8, r8, #1
5668   strneh  r3, [r6, #14] @ movhi
5669   cmp sl, r8
5670   add r6, r6, #16
5671   bne .L2577
5672 .L2263:
5673   add fp, fp, sl, asl #4
5674 .L2221:
5675   ldr r3, [sp, #4]
5676   rsb sl, r0, r3
5677   movs  r0, sl, lsr #3
5678   ldreq r0, [sp, #0]
5679   beq .L2267
5680   ldr r7, [sp, #0]
5681   mov r6, fp
5682   mov r8, #0
5683   b .L2268
5684 .L2579:
5685   ldr r1, [r4, #4]
5686   cmp r1, #0
5687   beq .L2273
5688   ands  r3, r1, #255
5689   orrne r3, r3, lr
5690   strneh  r3, [r6, #6]  @ movhi
5691   mov r3, r1, lsr #8
5692   ands  r3, r3, #255
5693   orrne r3, r3, lr
5694   strneh  r3, [r6, #4]  @ movhi
5695   mov r3, r1, lsr #16
5696   ands  r3, r3, #255
5697   orrne r3, r3, lr
5698   strneh  r3, [r6, #2]  @ movhi
5699   movs  r3, r1, lsr #24
5700   orrne r3, r3, lr
5701   strneh  r3, [r6, #0]  @ movhi
5702 .L2273:
5703   ldr r1, [r4, #0]
5704   cmp r1, #0
5705   beq .L2282
5706   ands  r3, r1, #255
5707   orrne r3, r3, lr
5708   strneh  r3, [r6, #14] @ movhi
5709   mov r3, r1, lsr #8
5710   ands  r3, r3, #255
5711   orrne r3, r3, lr
5712   strneh  r3, [r6, #12] @ movhi
5713   mov r3, r1, lsr #16
5714   ands  r3, r3, #255
5715   orrne r3, r3, lr
5716   strneh  r3, [r6, #10] @ movhi
5717   movs  r3, r1, lsr #24
5718   orrne r3, r3, lr
5719   strneh  r3, [r6, #8]  @ movhi
5720 .L2282:
5721   add r8, r8, #1
5722   cmp r0, r8
5723   add r6, r6, #16
5724   add r7, r7, #2
5725   beq .L2578
5726 .L2268:
5727   ldrh  r1, [r7, #0]
5728   mov r3, r1, asl #22
5729   mov r3, r3, lsr #22
5730   tst r1, #2048
5731   add r4, r2, r3, asl #6
5732   addne r4, r4, ip
5733   tst r1, #1024
5734   bne .L2579
5735   ldr r1, [r4, #0]
5736   cmp r1, #0
5737   beq .L2291
5738   ands  r3, r1, #255
5739   orrne r3, r3, lr
5740   strneh  r3, [r6, #0]  @ movhi
5741   mov r3, r1, lsr #8
5742   ands  r3, r3, #255
5743   orrne r3, r3, lr
5744   strneh  r3, [r6, #2]  @ movhi
5745   mov r3, r1, lsr #16
5746   ands  r3, r3, #255
5747   orrne r3, r3, lr
5748   strneh  r3, [r6, #4]  @ movhi
5749   movs  r3, r1, lsr #24
5750   orrne r3, r3, lr
5751   strneh  r3, [r6, #6]  @ movhi
5752 .L2291:
5753   ldr r1, [r4, #4]
5754   cmp r1, #0
5755   beq .L2282
5756   ands  r3, r1, #255
5757   orrne r3, r3, lr
5758   strneh  r3, [r6, #8]  @ movhi
5759   mov r3, r1, lsr #8
5760   ands  r3, r3, #255
5761   orrne r3, r3, lr
5762   strneh  r3, [r6, #10] @ movhi
5763   mov r3, r1, lsr #16
5764   ands  r3, r3, #255
5765   orrne r3, r3, lr
5766   strneh  r3, [r6, #12] @ movhi
5767   movs  r3, r1, lsr #24
5768   orrne r3, r3, lr
5769   add r8, r8, #1
5770   strneh  r3, [r6, #14] @ movhi
5771   cmp r0, r8
5772   add r6, r6, #16
5773   add r7, r7, #2
5774   bne .L2268
5775 .L2578:
5776   ldr r1, [sp, #0]
5777   add fp, fp, r0, asl #4
5778   add r0, r1, r0, asl #1
5779 .L2267:
5780   ands  r4, sl, #7
5781   beq .L2556
5782   ldrh  r0, [r0, #0]
5783   mov r3, r0, asl #22
5784   mov r3, r3, lsr #22
5785   tst r0, #2048
5786   add r2, r2, r3, asl #6
5787   addne r2, r2, ip
5788   tst r0, #1024
5789   beq .L2312
5790   cmp r4, #3
5791   ldrls r0, [r2, #4]
5792   bls .L2326
5793   ldr r1, [r2, #4]
5794   cmp r1, #0
5795   beq .L2316
5796   ands  r3, r1, #255
5797   orrne r3, r3, lr
5798   strneh  r3, [fp, #6]  @ movhi
5799   mov r3, r1, lsr #8
5800   ands  r3, r3, #255
5801   orrne r3, r3, lr
5802   strneh  r3, [fp, #4]  @ movhi
5803   mov r3, r1, lsr #16
5804   ands  r3, r3, #255
5805   orrne r3, r3, lr
5806   strneh  r3, [fp, #2]  @ movhi
5807   movs  r3, r1, lsr #24
5808   orrne r3, r3, lr
5809   strneh  r3, [fp, #0]  @ movhi
5810 .L2316:
5811   subs  r4, r4, #4
5812   ldr r0, [r2, #0]
5813   addne fp, fp, #8
5814   beq .L2556
5815 .L2326:
5816   mov r1, #0
5817 .L2327:
5818   movs  r3, r0, lsr #24
5819   mov r2, r1, asl #1
5820   orr r3, r3, lr
5821   add r1, r1, #1
5822   strneh  r3, [r2, fp]  @ movhi
5823   cmp r1, r4
5824   mov r0, r0, asl #8
5825   bcc .L2327
5826 .L2556:
5827   add sp, sp, #8
5828   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
5829 .L1965:
5830   and r1, r4, #255
5831   ldr ip, [sp, #4]
5832   and r3, r5, #7
5833   mov r2, r8, asl #12
5834   mov r3, r3, asl #2
5835   rsb r0, r1, #256
5836   and r2, r2, #49152
5837   add r2, r2, r3
5838   cmp ip, r0
5839   mov r3, r3, asl #1
5840   add sl, r2, r9
5841   rsb ip, r3, #28
5842   and r1, r4, #7
5843   bls .L2580
5844   cmp r1, #0
5845   moveq r8, r1
5846   bne .L2581
5847 .L2441:
5848   rsb r3, r8, r0
5849   movs  r9, r3, lsr #3
5850   beq .L2459
5851   mov r4, fp
5852   mov r8, #0
5853   b .L2461
5854 .L2582:
5855   ldr r2, [r3, #0]
5856   cmp r2, #0
5857   beq .L2466
5858   ands  r3, r2, #15
5859   orrne r3, r6, r3
5860   orrne r3, r3, lr
5861   strneh  r3, [r4, #14] @ movhi
5862   mov r3, r2, lsr #4
5863   ands  r3, r3, #15
5864   orrne r3, r6, r3
5865   orrne r3, r3, lr
5866   strneh  r3, [r4, #12] @ movhi
5867   mov r3, r2, lsr #8
5868   ands  r3, r3, #15
5869   orrne r3, r6, r3
5870   orrne r3, r3, lr
5871   strneh  r3, [r4, #10] @ movhi
5872   mov r3, r2, lsr #12
5873   ands  r3, r3, #15
5874   orrne r3, r6, r3
5875   orrne r3, r3, lr
5876   strneh  r3, [r4, #8]  @ movhi
5877   mov r3, r2, lsr #16
5878   ands  r3, r3, #15
5879   orrne r3, r6, r3
5880   orrne r3, r3, lr
5881   strneh  r3, [r4, #6]  @ movhi
5882   mov r3, r2, lsr #20
5883   ands  r3, r3, #15
5884   orrne r3, r6, r3
5885   orrne r3, r3, lr
5886   strneh  r3, [r4, #4]  @ movhi
5887   mov r3, r2, lsr #24
5888   ands  r3, r3, #15
5889   orrne r3, r6, r3
5890   orrne r3, r3, lr
5891   strneh  r3, [r4, #2]  @ movhi
5892   movs  r3, r2, lsr #28
5893   orrne r3, r6, r3
5894   orrne r3, r3, lr
5895   strneh  r3, [r4, #0]  @ movhi
5896 .L2466:
5897   add r8, r8, #1
5898   cmp r9, r8
5899   add r4, r4, #16
5900   beq .L2499
5901 .L2583:
5902   add r7, r7, #2
5903 .L2461:
5904   ldrh  r1, [r7, #0]
5905   mov r2, r1, asl #22
5906   mov r3, r1, lsr #12
5907   mov r2, r2, lsr #22
5908   tst r1, #2048
5909   mov r6, r3, asl #4
5910   add r3, sl, r2, asl #5
5911   addne r3, r3, ip
5912   tst r1, #1024
5913   bne .L2582
5914   ldr r2, [r3, #0]
5915   cmp r2, #0
5916   beq .L2466
5917   ands  r3, r2, #15
5918   orrne r3, r6, r3
5919   orrne r3, r3, lr
5920   strneh  r3, [r4, #0]  @ movhi
5921   mov r3, r2, lsr #4
5922   ands  r3, r3, #15
5923   orrne r3, r6, r3
5924   orrne r3, r3, lr
5925   strneh  r3, [r4, #2]  @ movhi
5926   mov r3, r2, lsr #8
5927   ands  r3, r3, #15
5928   orrne r3, r6, r3
5929   orrne r3, r3, lr
5930   strneh  r3, [r4, #4]  @ movhi
5931   mov r3, r2, lsr #12
5932   ands  r3, r3, #15
5933   orrne r3, r6, r3
5934   orrne r3, r3, lr
5935   strneh  r3, [r4, #6]  @ movhi
5936   mov r3, r2, lsr #16
5937   ands  r3, r3, #15
5938   orrne r3, r6, r3
5939   orrne r3, r3, lr
5940   strneh  r3, [r4, #8]  @ movhi
5941   mov r3, r2, lsr #20
5942   ands  r3, r3, #15
5943   orrne r3, r6, r3
5944   orrne r3, r3, lr
5945   strneh  r3, [r4, #10] @ movhi
5946   mov r3, r2, lsr #24
5947   ands  r3, r3, #15
5948   orrne r3, r6, r3
5949   orrne r3, r3, lr
5950   strneh  r3, [r4, #12] @ movhi
5951   movs  r3, r2, lsr #28
5952   orrne r3, r6, r3
5953   orrne r3, r3, lr
5954   add r8, r8, #1
5955   strneh  r3, [r4, #14] @ movhi
5956   cmp r9, r8
5957   add r4, r4, #16
5958   bne .L2583
5959 .L2499:
5960   add fp, fp, r9, asl #4
5961 .L2459:
5962   ldr r1, [sp, #4]
5963   rsb r9, r0, r1
5964   movs  r0, r9, lsr #3
5965   ldreq r0, [sp, #0]
5966   beq .L2503
5967   ldr r7, [sp, #0]
5968   mov r4, fp
5969   mov r8, #0
5970   b .L2504
5971 .L2585:
5972   ldr r2, [r3, #0]
5973   cmp r2, #0
5974   beq .L2509
5975   ands  r3, r2, #15
5976   orrne r3, r6, r3
5977   orrne r3, r3, lr
5978   strneh  r3, [r4, #14] @ movhi
5979   mov r3, r2, lsr #4
5980   ands  r3, r3, #15
5981   orrne r3, r6, r3
5982   orrne r3, r3, lr
5983   strneh  r3, [r4, #12] @ movhi
5984   mov r3, r2, lsr #8
5985   ands  r3, r3, #15
5986   orrne r3, r6, r3
5987   orrne r3, r3, lr
5988   strneh  r3, [r4, #10] @ movhi
5989   mov r3, r2, lsr #12
5990   ands  r3, r3, #15
5991   orrne r3, r6, r3
5992   orrne r3, r3, lr
5993   strneh  r3, [r4, #8]  @ movhi
5994   mov r3, r2, lsr #16
5995   ands  r3, r3, #15
5996   orrne r3, r6, r3
5997   orrne r3, r3, lr
5998   strneh  r3, [r4, #6]  @ movhi
5999   mov r3, r2, lsr #20
6000   ands  r3, r3, #15
6001   orrne r3, r6, r3
6002   orrne r3, r3, lr
6003   strneh  r3, [r4, #4]  @ movhi
6004   mov r3, r2, lsr #24
6005   ands  r3, r3, #15
6006   orrne r3, r6, r3
6007   orrne r3, r3, lr
6008   strneh  r3, [r4, #2]  @ movhi
6009   movs  r3, r2, lsr #28
6010   orrne r3, r6, r3
6011   orrne r3, r3, lr
6012   strneh  r3, [r4, #0]  @ movhi
6013 .L2509:
6014   add r8, r8, #1
6015   cmp r0, r8
6016   add r4, r4, #16
6017   add r7, r7, #2
6018   beq .L2584
6019 .L2504:
6020   ldrh  r1, [r7, #0]
6021   mov r2, r1, asl #22
6022   mov r3, r1, lsr #12
6023   mov r2, r2, lsr #22
6024   tst r1, #2048
6025   mov r6, r3, asl #4
6026   add r3, sl, r2, asl #5
6027   addne r3, r3, ip
6028   tst r1, #1024
6029   bne .L2585
6030   ldr r2, [r3, #0]
6031   cmp r2, #0
6032   beq .L2509
6033   ands  r3, r2, #15
6034   orrne r3, r6, r3
6035   orrne r3, r3, lr
6036   strneh  r3, [r4, #0]  @ movhi
6037   mov r3, r2, lsr #4
6038   ands  r3, r3, #15
6039   orrne r3, r6, r3
6040   orrne r3, r3, lr
6041   strneh  r3, [r4, #2]  @ movhi
6042   mov r3, r2, lsr #8
6043   ands  r3, r3, #15
6044   orrne r3, r6, r3
6045   orrne r3, r3, lr
6046   strneh  r3, [r4, #4]  @ movhi
6047   mov r3, r2, lsr #12
6048   ands  r3, r3, #15
6049   orrne r3, r6, r3
6050   orrne r3, r3, lr
6051   strneh  r3, [r4, #6]  @ movhi
6052   mov r3, r2, lsr #16
6053   ands  r3, r3, #15
6054   orrne r3, r6, r3
6055   orrne r3, r3, lr
6056   strneh  r3, [r4, #8]  @ movhi
6057   mov r3, r2, lsr #20
6058   ands  r3, r3, #15
6059   orrne r3, r6, r3
6060   orrne r3, r3, lr
6061   strneh  r3, [r4, #10] @ movhi
6062   mov r3, r2, lsr #24
6063   ands  r3, r3, #15
6064   orrne r3, r6, r3
6065   orrne r3, r3, lr
6066   strneh  r3, [r4, #12] @ movhi
6067   movs  r3, r2, lsr #28
6068   orrne r3, r6, r3
6069   orrne r3, r3, lr
6070   add r8, r8, #1
6071   strneh  r3, [r4, #14] @ movhi
6072   cmp r0, r8
6073   add r4, r4, #16
6074   add r7, r7, #2
6075   bne .L2504
6076 .L2584:
6077   ldr r3, [sp, #0]
6078   add fp, fp, r0, asl #4
6079   add r0, r3, r0, asl #1
6080 .L2503:
6081   ands  r4, r9, #7
6082   beq .L2556
6083   ldrh  r0, [r0, #0]
6084   mov r3, r0, asl #22
6085   mov r3, r3, lsr #22
6086   tst r0, #2048
6087   add r3, sl, r3, asl #5
6088   addne r3, r3, ip
6089   mov r2, r0, lsr #12
6090   tst r0, #1024
6091   mov r2, r2, asl #4
6092   ldreq r0, [r3, #0]
6093   moveq ip, #0
6094   beq .L2552
6095   ldr r0, [r3, #0]
6096   mov ip, #0
6097 .L2548:
6098   movs  r3, r0, lsr #28
6099   orr r3, r2, r3
6100   mov r1, ip, asl #1
6101   orr r3, r3, lr
6102   add ip, ip, #1
6103   strneh  r3, [r1, fp]  @ movhi
6104   cmp r4, ip
6105   mov r0, r0, asl #4
6106   bne .L2548
6107   b .L2556
6108 .L2580:
6109   cmp r1, #0
6110   bne .L2586
6111 .L2350:
6112   ldr r1, [sp, #4]
6113   movs  r0, r1, lsr #3
6114   beq .L2385
6115   mov r4, fp
6116   mov r6, r7
6117   mov r8, #0
6118   b .L2387
6119 .L2588:
6120   ldr r2, [r3, #0]
6121   cmp r2, #0
6122   beq .L2392
6123   ands  r3, r2, #15
6124   orrne r3, r5, r3
6125   orrne r3, r3, lr
6126   strneh  r3, [r4, #14] @ movhi
6127   mov r3, r2, lsr #4
6128   ands  r3, r3, #15
6129   orrne r3, r5, r3
6130   orrne r3, r3, lr
6131   strneh  r3, [r4, #12] @ movhi
6132   mov r3, r2, lsr #8
6133   ands  r3, r3, #15
6134   orrne r3, r5, r3
6135   orrne r3, r3, lr
6136   strneh  r3, [r4, #10] @ movhi
6137   mov r3, r2, lsr #12
6138   ands  r3, r3, #15
6139   orrne r3, r5, r3
6140   orrne r3, r3, lr
6141   strneh  r3, [r4, #8]  @ movhi
6142   mov r3, r2, lsr #16
6143   ands  r3, r3, #15
6144   orrne r3, r5, r3
6145   orrne r3, r3, lr
6146   strneh  r3, [r4, #6]  @ movhi
6147   mov r3, r2, lsr #20
6148   ands  r3, r3, #15
6149   orrne r3, r5, r3
6150   orrne r3, r3, lr
6151   strneh  r3, [r4, #4]  @ movhi
6152   mov r3, r2, lsr #24
6153   ands  r3, r3, #15
6154   orrne r3, r5, r3
6155   orrne r3, r3, lr
6156   strneh  r3, [r4, #2]  @ movhi
6157   movs  r3, r2, lsr #28
6158   orrne r3, r5, r3
6159   orrne r3, r3, lr
6160   strneh  r3, [r4, #0]  @ movhi
6161 .L2392:
6162   add r8, r8, #1
6163   cmp r0, r8
6164   add r4, r4, #16
6165   add r6, r6, #2
6166   beq .L2587
6167 .L2387:
6168   ldrh  r1, [r6, #0]
6169   mov r2, r1, asl #22
6170   mov r3, r1, lsr #12
6171   mov r2, r2, lsr #22
6172   tst r1, #2048
6173   mov r5, r3, asl #4
6174   add r3, sl, r2, asl #5
6175   addne r3, r3, ip
6176   tst r1, #1024
6177   bne .L2588
6178   ldr r2, [r3, #0]
6179   cmp r2, #0
6180   beq .L2392
6181   ands  r3, r2, #15
6182   orrne r3, r5, r3
6183   orrne r3, r3, lr
6184   strneh  r3, [r4, #0]  @ movhi
6185   mov r3, r2, lsr #4
6186   ands  r3, r3, #15
6187   orrne r3, r5, r3
6188   orrne r3, r3, lr
6189   strneh  r3, [r4, #2]  @ movhi
6190   mov r3, r2, lsr #8
6191   ands  r3, r3, #15
6192   orrne r3, r5, r3
6193   orrne r3, r3, lr
6194   strneh  r3, [r4, #4]  @ movhi
6195   mov r3, r2, lsr #12
6196   ands  r3, r3, #15
6197   orrne r3, r5, r3
6198   orrne r3, r3, lr
6199   strneh  r3, [r4, #6]  @ movhi
6200   mov r3, r2, lsr #16
6201   ands  r3, r3, #15
6202   orrne r3, r5, r3
6203   orrne r3, r3, lr
6204   strneh  r3, [r4, #8]  @ movhi
6205   mov r3, r2, lsr #20
6206   ands  r3, r3, #15
6207   orrne r3, r5, r3
6208   orrne r3, r3, lr
6209   strneh  r3, [r4, #10] @ movhi
6210   mov r3, r2, lsr #24
6211   ands  r3, r3, #15
6212   orrne r3, r5, r3
6213   orrne r3, r3, lr
6214   strneh  r3, [r4, #12] @ movhi
6215   movs  r3, r2, lsr #28
6216   orrne r3, r5, r3
6217   orrne r3, r3, lr
6218   add r8, r8, #1
6219   strneh  r3, [r4, #14] @ movhi
6220   cmp r0, r8
6221   add r4, r4, #16
6222   add r6, r6, #2
6223   bne .L2387
6224 .L2587:
6225   add fp, fp, r0, asl #4
6226   add r7, r7, r0, asl #1
6227 .L2385:
6228   ldr r3, [sp, #4]
6229   ands  r4, r3, #7
6230   beq .L2556
6231   ldrh  r1, [r7, #0]
6232   mov r3, r1, asl #22
6233   mov r3, r3, lsr #22
6234   tst r1, #2048
6235   add r0, sl, r3, asl #5
6236   addne r0, r0, ip
6237   mov r2, r1, lsr #12
6238   tst r1, #1024
6239   mov r2, r2, asl #4
6240   ldreq r0, [r0, #0]
6241   moveq ip, #0
6242   beq .L2435
6243   ldr r0, [r0, #0]
6244   mov ip, #0
6245 .L2431:
6246   movs  r3, r0, lsr #28
6247   orr r3, r2, r3
6248   mov r1, ip, asl #1
6249   orr r3, r3, lr
6250   add ip, ip, #1
6251   strneh  r3, [r1, fp]  @ movhi
6252   cmp r4, ip
6253   mov r0, r0, asl #4
6254   bne .L2431
6255   b .L2556
6256 .L2574:
6257   cmp r4, #0
6258   bne .L2589
6259 .L1969:
6260   ldr r3, [sp, #4]
6261   movs  sl, r3, lsr #3
6262   beq .L2083
6263   mov r5, fp
6264   mov r6, r7
6265   mov r8, #0
6266   b .L2085
6267 .L2591:
6268   ldr r1, [r4, #4]
6269   cmp r1, #0
6270   beq .L2090
6271   ands  r3, r1, #255
6272   orrne r3, r3, lr
6273   strneh  r3, [r5, #6]  @ movhi
6274   mov r3, r1, lsr #8
6275   ands  r3, r3, #255
6276   orrne r3, r3, lr
6277   strneh  r3, [r5, #4]  @ movhi
6278   mov r3, r1, lsr #16
6279   ands  r3, r3, #255
6280   orrne r3, r3, lr
6281   strneh  r3, [r5, #2]  @ movhi
6282   movs  r3, r1, lsr #24
6283   orrne r3, r3, lr
6284   strneh  r3, [r5, #0]  @ movhi
6285 .L2090:
6286   ldr r1, [r4, #0]
6287   cmp r1, #0
6288   beq .L2099
6289   ands  r3, r1, #255
6290   orrne r3, r3, lr
6291   strneh  r3, [r5, #14] @ movhi
6292   mov r3, r1, lsr #8
6293   ands  r3, r3, #255
6294   orrne r3, r3, lr
6295   strneh  r3, [r5, #12] @ movhi
6296   mov r3, r1, lsr #16
6297   ands  r3, r3, #255
6298   orrne r3, r3, lr
6299   strneh  r3, [r5, #10] @ movhi
6300   movs  r3, r1, lsr #24
6301   orrne r3, r3, lr
6302   strneh  r3, [r5, #8]  @ movhi
6303 .L2099:
6304   add r8, r8, #1
6305   cmp sl, r8
6306   add r5, r5, #16
6307   add r6, r6, #2
6308   beq .L2590
6309 .L2085:
6310   ldrh  r1, [r6, #0]
6311   mov r3, r1, asl #22
6312   mov r3, r3, lsr #22
6313   tst r1, #2048
6314   add r4, r2, r3, asl #6
6315   addne r4, r4, ip
6316   tst r1, #1024
6317   bne .L2591
6318   ldr r1, [r4, #0]
6319   cmp r1, #0
6320   beq .L2108
6321   ands  r3, r1, #255
6322   orrne r3, r3, lr
6323   strneh  r3, [r5, #0]  @ movhi
6324   mov r3, r1, lsr #8
6325   ands  r3, r3, #255
6326   orrne r3, r3, lr
6327   strneh  r3, [r5, #2]  @ movhi
6328   mov r3, r1, lsr #16
6329   ands  r3, r3, #255
6330   orrne r3, r3, lr
6331   strneh  r3, [r5, #4]  @ movhi
6332   movs  r3, r1, lsr #24
6333   orrne r3, r3, lr
6334   strneh  r3, [r5, #6]  @ movhi
6335 .L2108:
6336   ldr r1, [r4, #4]
6337   cmp r1, #0
6338   beq .L2099
6339   ands  r3, r1, #255
6340   orrne r3, r3, lr
6341   strneh  r3, [r5, #8]  @ movhi
6342   mov r3, r1, lsr #8
6343   ands  r3, r3, #255
6344   orrne r3, r3, lr
6345   strneh  r3, [r5, #10] @ movhi
6346   mov r3, r1, lsr #16
6347   ands  r3, r3, #255
6348   orrne r3, r3, lr
6349   strneh  r3, [r5, #12] @ movhi
6350   movs  r3, r1, lsr #24
6351   orrne r3, r3, lr
6352   add r8, r8, #1
6353   strneh  r3, [r5, #14] @ movhi
6354   cmp sl, r8
6355   add r5, r5, #16
6356   add r6, r6, #2
6357   bne .L2085
6358 .L2590:
6359   add fp, fp, sl, asl #4
6360   add r7, r7, sl, asl #1
6361 .L2083:
6362   ldr r1, [sp, #4]
6363   ands  r4, r1, #7
6364   beq .L2556
6365   ldrh  r1, [r7, #0]
6366   mov r3, r1, asl #22
6367   mov r3, r3, lsr #22
6368   tst r1, #2048
6369   add r0, r2, r3, asl #6
6370   addne r0, r0, ip
6371   tst r1, #1024
6372   beq .L2129
6373   cmp r4, #3
6374   ldrls r0, [r0, #4]
6375   bls .L2143
6376   ldr r1, [r0, #4]
6377   cmp r1, #0
6378   beq .L2133
6379   ands  r3, r1, #255
6380   orrne r3, r3, lr
6381   strneh  r3, [fp, #6]  @ movhi
6382   mov r3, r1, lsr #8
6383   ands  r3, r3, #255
6384   orrne r3, r3, lr
6385   strneh  r3, [fp, #4]  @ movhi
6386   mov r3, r1, lsr #16
6387   ands  r3, r3, #255
6388   orrne r3, r3, lr
6389   strneh  r3, [fp, #2]  @ movhi
6390   movs  r3, r1, lsr #24
6391   orrne r3, r3, lr
6392   strneh  r3, [fp, #0]  @ movhi
6393 .L2133:
6394   subs  r4, r4, #4
6395   ldr r0, [r0, #0]
6396   addne fp, fp, #8
6397   beq .L2556
6398 .L2143:
6399   mov r1, #0
6400 .L2144:
6401   movs  r3, r0, lsr #24
6402   mov r2, r1, asl #1
6403   orr r3, r3, lr
6404   add r1, r1, #1
6405   strneh  r3, [r2, fp]  @ movhi
6406   cmp r4, r1
6407   mov r0, r0, asl #8
6408   bhi .L2144
6409   b .L2556
6410 .L2552:
6411   ands  r3, r0, #15
6412   orr r3, r2, r3
6413   mov r1, ip, asl #1
6414   orr r3, r3, lr
6415   add ip, ip, #1
6416   strneh  r3, [r1, fp]  @ movhi
6417   cmp r4, ip
6418   mov r0, r0, lsr #4
6419   bne .L2552
6420   b .L2556
6421 .L2586:
6422   ldr r3, [sp, #4]
6423   rsb r5, r1, #8
6424   cmp r3, r5
6425   bcs .L2352
6426   ldrh  r4, [r7, #0]
6427   mov r3, r4, asl #22
6428   mov r3, r3, lsr #22
6429   tst r4, #2048
6430   add r0, sl, r3, asl #5
6431   mov r2, r4, lsr #12
6432   addne r0, r0, ip
6433   tst r4, #1024
6434   mov r2, r2, asl #4
6435   bne .L2592
6436   ldr r3, [sp, #4]
6437   ldr r0, [r0, #0]
6438   cmp r3, #0
6439   beq .L2556
6440   mov r3, r1, asl #2
6441   mov r0, r0, lsr r3
6442   mov ip, #0
6443 .L2364:
6444   ands  r3, r0, #15
6445   orr r3, r2, r3
6446   mov r1, ip, asl #1
6447   orr r3, r3, lr
6448   strneh  r3, [r1, fp]  @ movhi
6449   ldr r1, [sp, #4]
6450   add ip, ip, #1
6451   cmp r1, ip
6452   mov r0, r0, lsr #4
6453   bne .L2364
6454   b .L2556
6455 .L2581:
6456   ldrh  r6, [r7, #0]
6457   rsb r8, r1, #8
6458   mov r2, r6, asl #22
6459   mov r3, r6, lsr #12
6460   mov r2, r2, lsr #22
6461   tst r6, #2048
6462   mov r9, r3, asl #4
6463   add r3, sl, r2, asl #5
6464   addne r3, r3, ip
6465   tst r6, #1024
6466   beq .L2444
6467   cmp r8, #0
6468   ldr r2, [r3, #0]
6469   beq .L2446
6470   mov r3, r1, asl #2
6471   mov r1, r2, asl r3
6472   mov r4, #0
6473 .L2448:
6474   movs  r3, r1, lsr #28
6475   orr r3, r9, r3
6476   mov r2, r4, asl #1
6477   orr r3, r3, lr
6478   add r4, r4, #1
6479   strneh  r3, [r2, fp]  @ movhi
6480   cmp r8, r4
6481   mov r1, r1, asl #4
6482   bne .L2448
6483   add fp, fp, r8, asl #1
6484 .L2446:
6485   add r7, r7, #2
6486   b .L2441
6487 .L2575:
6488   ldrh  r1, [r7, #0]
6489   rsb r8, r4, #8
6490   mov r3, r1, asl #22
6491   mov r3, r3, lsr #22
6492   tst r1, #2048
6493   add sl, r2, r3, asl #6
6494   addne sl, sl, ip
6495   ands  r6, r1, #1024
6496   beq .L2170
6497   cmp r4, #3
6498   bhi .L2593
6499   subs  r5, r8, #4
6500   ldr r1, [sl, #4]
6501   beq .L2181
6502   mov r3, r4, asl #3
6503   sub r3, r3, #32
6504   mov r1, r1, asl r3
6505   mov r6, #0
6506 .L2183:
6507   movs  r3, r1, lsr #24
6508   mov r4, r6, asl #1
6509   orr r3, r3, lr
6510   add r6, r6, #1
6511   strneh  r3, [r4, fp]  @ movhi
6512   cmp r5, r6
6513   mov r1, r1, asl #8
6514   bne .L2183
6515   add r3, fp, r8, asl #1
6516   sub fp, r3, #8
6517 .L2181:
6518   ldr r1, [sl, #0]
6519   cmp r1, #0
6520   beq .L2212
6521   ands  r3, r1, #255
6522   orrne r3, r3, lr
6523   strneh  r3, [fp, #6]  @ movhi
6524   mov r3, r1, lsr #8
6525   ands  r3, r3, #255
6526   orrne r3, r3, lr
6527   strneh  r3, [fp, #4]  @ movhi
6528   mov r3, r1, lsr #16
6529   ands  r3, r3, #255
6530   orrne r3, r3, lr
6531   strneh  r3, [fp, #2]  @ movhi
6532   movs  r3, r1, lsr #24
6533   orrne r3, r3, lr
6534   strneh  r3, [fp, #0]  @ movhi
6535 .L2212:
6536   add fp, fp, #8
6537   mov r8, r5
6538 .L2174:
6539   add r7, r7, #2
6540   b .L2167
6541 .L2589:
6542   rsb r0, r4, #8
6543   cmp r1, r0
6544   bcs .L1971
6545   ldrh  r1, [r7, #0]
6546   mov r3, r1, asl #22
6547   mov r3, r3, lsr #22
6548   tst r1, #2048
6549   add r0, r2, r3, asl #6
6550   addne r0, r0, ip
6551   tst r1, #1024
6552   bne .L2594
6553   cmp r4, #3
6554   bls .L2004
6555   ldr ip, [sp, #4]
6556   ldr r0, [r0, #4]
6557   cmp ip, #0
6558   beq .L2556
6559   mov r3, r4, asl #3
6560   sub r3, r3, #32
6561   mov r0, r0, lsr r3
6562   mov r1, #0
6563 .L2007:
6564   ands  r3, r0, #255
6565   orr r3, r3, lr
6566   mov r2, r1, asl #1
6567   strneh  r3, [r2, fp]  @ movhi
6568   ldr r3, [sp, #4]
6569   add r1, r1, #1
6570   cmp r3, r1
6571   mov r0, r0, lsr #8
6572   bne .L2007
6573   b .L2556
6574 .L2600:
6575   .align  2
6576 .L2599:
6577   .word io_registers
6578   .word map_widths
6579   .word vram
6580 .L2435:
6581   ands  r3, r0, #15
6582   orr r3, r2, r3
6583   mov r1, ip, asl #1
6584   orr r3, r3, lr
6585   add ip, ip, #1
6586   strneh  r3, [r1, fp]  @ movhi
6587   cmp r4, ip
6588   mov r0, r0, lsr #4
6589   bne .L2435
6590   b .L2556
6591 .L2312:
6592   cmp r4, #3
6593   ldrls r0, [r2, #0]
6594   bls .L2343
6595   ldr r1, [r2, #0]
6596   cmp r1, #0
6597   beq .L2333
6598   ands  r3, r1, #255
6599   orrne r3, r3, lr
6600   strneh  r3, [fp, #0]  @ movhi
6601   mov r3, r1, lsr #8
6602   ands  r3, r3, #255
6603   orrne r3, r3, lr
6604   strneh  r3, [fp, #2]  @ movhi
6605   mov r3, r1, lsr #16
6606   ands  r3, r3, #255
6607   orrne r3, r3, lr
6608   strneh  r3, [fp, #4]  @ movhi
6609   movs  r3, r1, lsr #24
6610   orrne r3, r3, lr
6611   strneh  r3, [fp, #6]  @ movhi
6612 .L2333:
6613   subs  r4, r4, #4
6614   ldr r0, [r2, #4]
6615   addne fp, fp, #8
6616   beq .L2556
6617 .L2343:
6618   mov r1, #0
6619 .L2344:
6620   ands  r3, r0, #255
6621   mov r2, r1, asl #1
6622   orr r3, r3, lr
6623   add r1, r1, #1
6624   strneh  r3, [r2, fp]  @ movhi
6625   cmp r1, r4
6626   mov r0, r0, lsr #8
6627   bcc .L2344
6628   b .L2556
6629 .L2129:
6630   cmp r4, #3
6631   ldrls r0, [r0, #0]
6632   bls .L2160
6633   ldr r1, [r0, #0]
6634   cmp r1, #0
6635   beq .L2150
6636   ands  r3, r1, #255
6637   orrne r3, r3, lr
6638   strneh  r3, [fp, #0]  @ movhi
6639   mov r3, r1, lsr #8
6640   ands  r3, r3, #255
6641   orrne r3, r3, lr
6642   strneh  r3, [fp, #2]  @ movhi
6643   mov r3, r1, lsr #16
6644   ands  r3, r3, #255
6645   orrne r3, r3, lr
6646   strneh  r3, [fp, #4]  @ movhi
6647   movs  r3, r1, lsr #24
6648   orrne r3, r3, lr
6649   strneh  r3, [fp, #6]  @ movhi
6650 .L2150:
6651   subs  r4, r4, #4
6652   ldr r0, [r0, #4]
6653   addne fp, fp, #8
6654   beq .L2556
6655 .L2160:
6656   mov r1, #0
6657 .L2161:
6658   ands  r3, r0, #255
6659   mov r2, r1, asl #1
6660   orr r3, r3, lr
6661   add r1, r1, #1
6662   strneh  r3, [r2, fp]  @ movhi
6663   cmp r4, r1
6664   mov r0, r0, lsr #8
6665   bhi .L2161
6666   b .L2556
6667 .L2352:
6668   ldrh  r4, [r7, #0]
6669   mov r2, r4, asl #22
6670   mov r3, r4, lsr #12
6671   mov r2, r2, lsr #22
6672   tst r4, #2048
6673   mov r0, r3, asl #4
6674   add r3, sl, r2, asl #5
6675   addne r3, r3, ip
6676   tst r4, #1024
6677   bne .L2595
6678   cmp r5, #0
6679   ldr r2, [r3, #0]
6680   beq .L2372
6681   mov r3, r1, asl #2
6682   mov r1, r2, lsr r3
6683   mov r4, #0
6684 .L2380:
6685   ands  r3, r1, #15
6686   orr r3, r0, r3
6687   mov r2, r4, asl #1
6688   orr r3, r3, lr
6689   add r4, r4, #1
6690   strneh  r3, [r2, fp]  @ movhi
6691   cmp r5, r4
6692   mov r1, r1, lsr #4
6693   bne .L2380
6694 .L2571:
6695   add fp, fp, r5, asl #1
6696 .L2372:
6697   ldr r3, [sp, #4]
6698   add r7, r7, #2
6699   rsb r3, r5, r3
6700   str r3, [sp, #4]
6701   b .L2350
6702 .L2444:
6703   cmp r8, #0
6704   ldr r2, [r3, #0]
6705   beq .L2446
6706   mov r3, r1, asl #2
6707   mov r1, r2, lsr r3
6708   mov r4, #0
6709 .L2454:
6710   ands  r3, r1, #15
6711   orr r3, r9, r3
6712   mov r2, r4, asl #1
6713   orr r3, r3, lr
6714   add r4, r4, #1
6715   strneh  r3, [r2, fp]  @ movhi
6716   cmp r8, r4
6717   mov r1, r1, lsr #4
6718   bne .L2454
6719   add fp, fp, r8, asl #1
6720   b .L2446
6721 .L2170:
6722   cmp r4, #3
6723   bhi .L2596
6724   subs  r5, r8, #4
6725   ldr r1, [sl, #0]
6726   beq .L2205
6727   mov r3, r4, asl #3
6728   mov r1, r1, lsr r3
6729   mov r6, #0
6730 .L2207:
6731   ands  r3, r1, #255
6732   mov r4, r6, asl #1
6733   orr r3, r3, lr
6734   add r6, r6, #1
6735   strneh  r3, [r4, fp]  @ movhi
6736   cmp r5, r6
6737   mov r1, r1, lsr #8
6738   bne .L2207
6739   add r3, fp, r8, asl #1
6740   sub fp, r3, #8
6741 .L2205:
6742   ldr r1, [sl, #4]
6743   cmp r1, #0
6744   beq .L2212
6745   ands  r3, r1, #255
6746   orrne r3, r3, lr
6747   strneh  r3, [fp, #0]  @ movhi
6748   mov r3, r1, lsr #8
6749   ands  r3, r3, #255
6750   orrne r3, r3, lr
6751   strneh  r3, [fp, #2]  @ movhi
6752   mov r3, r1, lsr #16
6753   ands  r3, r3, #255
6754   orrne r3, r3, lr
6755   strneh  r3, [fp, #4]  @ movhi
6756   movs  r3, r1, lsr #24
6757   orrne r3, r3, lr
6758   strneh  r3, [fp, #6]  @ movhi
6759   b .L2212
6760 .L1971:
6761   ldrh  r1, [r7, #0]
6762   mov r3, r1, asl #22
6763   mov r3, r3, lsr #22
6764   tst r1, #2048
6765   add r6, r2, r3, asl #6
6766   addne r6, r6, ip
6767   ands  r5, r1, #1024
6768   bne .L2597
6769   cmp r4, #3
6770   bls .L2059
6771   cmp r0, #0
6772   ldr r1, [r6, #4]
6773   beq .L2036
6774   mov r3, r4, asl #3
6775   sub r3, r3, #32
6776   mov r1, r1, lsr r3
6777 .L2062:
6778   ands  r3, r1, #255
6779   mov r4, r5, asl #1
6780   orr r3, r3, lr
6781   add r5, r5, #1
6782   strneh  r3, [r4, fp]  @ movhi
6783   cmp r0, r5
6784   mov r1, r1, lsr #8
6785   bne .L2062
6786 .L2558:
6787   add fp, fp, r0, asl #1
6788 .L2036:
6789   ldr r1, [sp, #4]
6790   add r7, r7, #2
6791   rsb r1, r0, r1
6792   str r1, [sp, #4]
6793   b .L1969
6794 .L2593:
6795   cmp r8, #0
6796   ldr r1, [sl, #0]
6797   beq .L2174
6798   mov r3, r4, asl #3
6799   sub r3, r3, #32
6800   mov r1, r1, asl r3
6801   mov r6, #0
6802 .L2176:
6803   movs  r3, r1, lsr #24
6804   mov r4, r6, asl #1
6805   orr r3, r3, lr
6806   add r6, r6, #1
6807   strneh  r3, [r4, fp]  @ movhi
6808   cmp r8, r6
6809   mov r1, r1, asl #8
6810   bne .L2176
6811   add fp, fp, r8, asl #1
6812 .L2598:
6813   add r7, r7, #2
6814   b .L2167
6815 .L2592:
6816   ldr ip, [sp, #4]
6817   ldr r0, [r0, #0]
6818   cmp ip, #0
6819   beq .L2556
6820   mov r3, r1, asl #2
6821   mov r0, r0, asl r3
6822   mov ip, #0
6823 .L2359:
6824   movs  r3, r0, lsr #28
6825   orr r3, r2, r3
6826   mov r1, ip, asl #1
6827   orr r3, r3, lr
6828   strneh  r3, [r1, fp]  @ movhi
6829   ldr r1, [sp, #4]
6830   add ip, ip, #1
6831   cmp r1, ip
6832   mov r0, r0, asl #4
6833   bne .L2359
6834   b .L2556
6835 .L2597:
6836   cmp r4, #3
6837   bls .L2034
6838   cmp r0, #0
6839   ldr r1, [r6, #0]
6840   beq .L2036
6841   mov r3, r4, asl #3
6842   sub r3, r3, #32
6843   mov r1, r1, asl r3
6844   mov r5, #0
6845 .L2038:
6846   movs  r3, r1, lsr #24
6847   mov r4, r5, asl #1
6848   orr r3, r3, lr
6849   add r5, r5, #1
6850   strneh  r3, [r4, fp]  @ movhi
6851   cmp r0, r5
6852   mov r1, r1, asl #8
6853   bne .L2038
6854   b .L2558
6855 .L2595:
6856   cmp r5, #0
6857   ldr r2, [r3, #0]
6858   beq .L2372
6859   mov r3, r1, asl #2
6860   mov r1, r2, asl r3
6861   mov r4, #0
6862 .L2374:
6863   movs  r3, r1, lsr #28
6864   orr r3, r0, r3
6865   mov r2, r4, asl #1
6866   orr r3, r3, lr
6867   add r4, r4, #1
6868   strneh  r3, [r2, fp]  @ movhi
6869   cmp r5, r4
6870   mov r1, r1, asl #4
6871   bne .L2374
6872   b .L2571
6873 .L2594:
6874   cmp r4, #3
6875   bls .L1977
6876   ldr r3, [sp, #4]
6877   ldr r0, [r0, #0]
6878   cmp r3, #0
6879   beq .L2556
6880   mov r3, r4, asl #3
6881   sub r3, r3, #32
6882   mov r0, r0, asl r3
6883   mov r1, #0
6884 .L1981:
6885   movs  r3, r0, lsr #24
6886   ldr ip, [sp, #4]
6887   mov r2, r1, asl #1
6888   orr r3, r3, lr
6889   add r1, r1, #1
6890   strneh  r3, [r2, fp]  @ movhi
6891   cmp ip, r1
6892   mov r0, r0, asl #8
6893   bne .L1981
6894   b .L2556
6895 .L2596:
6896   cmp r8, #0
6897   ldr r1, [sl, #4]
6898   beq .L2174
6899   mov r3, r4, asl #3
6900   sub r3, r3, #32
6901   mov r1, r1, lsr r3
6902 .L2200:
6903   ands  r3, r1, #255
6904   mov r4, r6, asl #1
6905   orr r3, r3, lr
6906   add r6, r6, #1
6907   strneh  r3, [r4, fp]  @ movhi
6908   cmp r8, r6
6909   mov r1, r1, lsr #8
6910   bne .L2200
6911   add fp, fp, r8, asl #1
6912   b .L2598
6913 .L1977:
6914   ldr ip, [sp, #4]
6915   mov r3, r4, asl #3
6916   ldr r1, [r0, #4]
6917   add r2, ip, r4
6918   sub r3, r3, #32
6919   cmp r2, #4
6920   mov r1, r1, asl r3
6921   bhi .L1985
6922   cmp ip, #0
6923   movne r0, #0
6924   beq .L2556
6925 .L2000:
6926   movs  r3, r1, lsr #24
6927   orr r3, r3, lr
6928   mov r2, r0, asl #1
6929   strneh  r3, [r2, fp]  @ movhi
6930   ldr r3, [sp, #4]
6931   add r0, r0, #1
6932   cmp r3, r0
6933   mov r1, r1, asl #8
6934   bne .L2000
6935   b .L2556
6936 .L2034:
6937   subs  r8, r0, #4
6938   ldr r1, [r6, #4]
6939   beq .L2043
6940   mov r3, r4, asl #3
6941   sub r3, r3, #32
6942   mov r1, r1, asl r3
6943   mov r5, #0
6944 .L2045:
6945   movs  r3, r1, lsr #24
6946   mov r4, r5, asl #1
6947   orr r3, r3, lr
6948   add r5, r5, #1
6949   strneh  r3, [r4, fp]  @ movhi
6950   cmp r8, r5
6951   mov r1, r1, asl #8
6952   bne .L2045
6953   add r3, fp, r0, asl #1
6954   sub fp, r3, #8
6955 .L2043:
6956   ldr r1, [r6, #0]
6957   cmp r1, #0
6958   beq .L2074
6959   ands  r3, r1, #255
6960   orrne r3, r3, lr
6961   strneh  r3, [fp, #6]  @ movhi
6962   mov r3, r1, lsr #8
6963   ands  r3, r3, #255
6964   orrne r3, r3, lr
6965   strneh  r3, [fp, #4]  @ movhi
6966   mov r3, r1, lsr #16
6967   ands  r3, r3, #255
6968   orrne r3, r3, lr
6969   strneh  r3, [fp, #2]  @ movhi
6970   movs  r3, r1, lsr #24
6971   orrne r3, r3, lr
6972   strneh  r3, [fp, #0]  @ movhi
6973 .L2074:
6974   add fp, fp, #8
6975   b .L2036
6976 .L2004:
6977   ldr ip, [sp, #4]
6978   ldr r3, [r0, #0]
6979   add r2, ip, r4
6980   cmp r2, #4
6981   mov r1, r4, asl #3
6982   mov r2, r3, lsr r1
6983   bhi .L2011
6984   cmp ip, #0
6985   movne r0, #0
6986   beq .L2556
6987 .L2026:
6988   ands  r3, r2, #255
6989   orr r3, r3, lr
6990   mov r1, r0, asl #1
6991   strneh  r3, [r1, fp]  @ movhi
6992   ldr r3, [sp, #4]
6993   add r0, r0, #1
6994   cmp r3, r0
6995   mov r2, r2, lsr #8
6996   bne .L2026
6997   b .L2556
6998 .L2059:
6999   subs  r8, r0, #4
7000   ldr r1, [r6, #0]
7001   beq .L2067
7002   mov r3, r4, asl #3
7003   mov r1, r1, lsr r3
7004   mov r5, #0
7005 .L2069:
7006   ands  r3, r1, #255
7007   mov r4, r5, asl #1
7008   orr r3, r3, lr
7009   add r5, r5, #1
7010   strneh  r3, [r4, fp]  @ movhi
7011   cmp r8, r5
7012   mov r1, r1, lsr #8
7013   bne .L2069
7014   add r3, fp, r0, asl #1
7015   sub fp, r3, #8
7016 .L2067:
7017   ldr r1, [r6, #4]
7018   cmp r1, #0
7019   beq .L2074
7020   ands  r3, r1, #255
7021   orrne r3, r3, lr
7022   strneh  r3, [fp, #0]  @ movhi
7023   mov r3, r1, lsr #8
7024   ands  r3, r3, #255
7025   orrne r3, r3, lr
7026   strneh  r3, [fp, #2]  @ movhi
7027   mov r3, r1, lsr #16
7028   ands  r3, r3, #255
7029   orrne r3, r3, lr
7030   strneh  r3, [fp, #4]  @ movhi
7031   movs  r3, r1, lsr #24
7032   orrne r3, r3, lr
7033   strneh  r3, [fp, #6]  @ movhi
7034   add fp, fp, #8
7035   b .L2036
7036 .L1985:
7037   rsbs  r4, r4, #4
7038   beq .L1988
7039   mov ip, #0
7040 .L1990:
7041   movs  r3, r1, lsr #24
7042   mov r2, ip, asl #1
7043   orr r3, r3, lr
7044   add ip, ip, #1
7045   strneh  r3, [r2, fp]  @ movhi
7046   cmp r4, ip
7047   mov r1, r1, asl #8
7048   bne .L1990
7049   add fp, fp, r4, asl #1
7050 .L1988:
7051   ldr r1, [sp, #4]
7052   ldr r0, [r0, #0]
7053   subs  ip, r1, r4
7054   beq .L2556
7055   mov r1, #0
7056 .L1996:
7057   movs  r3, r0, lsr #24
7058   mov r2, r1, asl #1
7059   orr r3, r3, lr
7060   add r1, r1, #1
7061   strneh  r3, [r2, fp]  @ movhi
7062   cmp ip, r1
7063   mov r0, r0, asl #8
7064   bne .L1996
7065   b .L2556
7066 .L2011:
7067   rsbs  r4, r4, #4
7068   beq .L2014
7069   mov ip, #0
7070 .L2016:
7071   ands  r3, r2, #255
7072   mov r1, ip, asl #1
7073   orr r3, r3, lr
7074   add ip, ip, #1
7075   strneh  r3, [r1, fp]  @ movhi
7076   cmp r4, ip
7077   mov r2, r2, lsr #8
7078   bne .L2016
7079   add fp, fp, r4, asl #1
7080 .L2014:
7081   ldr r1, [sp, #4]
7082   ldr r0, [r0, #4]
7083   subs  ip, r1, r4
7084   beq .L2556
7085   mov r1, #0
7086 .L2022:
7087   ands  r3, r0, #255
7088   mov r2, r1, asl #1
7089   orr r3, r3, lr
7090   add r1, r1, #1
7091   strneh  r3, [r2, fp]  @ movhi
7092   cmp ip, r1
7093   mov r0, r0, lsr #8
7094   bne .L2022
7095   b .L2556
7096   .size render_scanline_text_transparent_color16, .-render_scanline_text_transparent_color16
7097   .align  2
7098   .global render_scanline_text_base_color32
7099   .type render_scanline_text_base_color32, %function
7100 render_scanline_text_base_color32:
7101   @ args = 0, pretend = 0, frame = 16
7102   @ frame_needed = 0, uses_anonymous_args = 0
7103   ldr ip, .L3398
7104   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
7105   ldrh  r5, [ip, #80]
7106   add r7, r0, #7
7107   mov r8, r5, asr r0
7108   mov r7, r5, asr r7
7109   add r6, ip, r0, asl #2
7110   ldrh  r4, [ip, #6]
7111   ldrh  lr, [r6, #18]
7112   add ip, ip, r0, asl #1
7113   add fp, r4, lr
7114   ldrh  r9, [ip, #8]
7115   mov sl, fp, asl #23
7116   rsb r2, r1, r2
7117   sub sp, sp, #16
7118   mov sl, sl, lsr #23
7119   cmp sl, #255
7120   movls r4, #0
7121   movhi r4, #1
7122   ldrh  lr, [r6, #16]
7123   str r2, [sp, #12]
7124   mov r6, r9, lsr #14
7125   ldr r2, .L3398+4
7126   ands  r4, r4, r6, lsr #1
7127   and r7, r7, #2
7128   and r8, r8, #1
7129   add lr, lr, r1
7130   orr r8, r8, r7
7131   mov ip, r9, asl #3
7132   add r7, r3, r1, asl #2
7133   ldr r2, [r2, r6, asl #2]
7134   subne r3, sl, #256
7135   ldr r1, .L3398+8
7136   movne r3, r3, lsr #3
7137   moveq r3, fp, asl #3
7138   and ip, ip, #63488
7139   addne r3, r3, r2, lsr #3
7140   andeq r3, r3, #1984
7141   add ip, ip, r1
7142   mov lr, lr, asl #23
7143   addne r4, ip, r3, asl #6
7144   addeq r4, ip, r3
7145   mov r0, r5, lsr #12
7146   tst r6, #1
7147   mov lr, lr, lsr #23
7148   and r0, r0, #2
7149   mov r5, r5, asl #26
7150   andeq lr, lr, #255
7151   orr r0, r0, r5, lsr #31
7152   moveq r3, lr, lsr #3
7153   mov r0, r0, asl #9
7154   mov r8, r8, asl #9
7155   addeq fp, r4, r3, asl #1
7156   streq r4, [sp, #0]
7157   beq .L2609
7158   cmp lr, #255
7159   subhi lr, lr, #256
7160   movhi r3, lr, lsr #3
7161   movls r3, lr, lsr #3
7162   addhi r3, r4, r3, asl #1
7163   addls fp, r4, r3, asl #1
7164   addls r4, r4, #2048
7165   addhi fp, r3, #2048
7166   strhi r4, [sp, #0]
7167   strls r4, [sp, #0]
7168 .L2609:
7169   tst r9, #128
7170   beq .L2610
7171   mov r2, r9, asl #12
7172   and r3, sl, #7
7173   and r1, lr, #255
7174   mov r3, r3, asl #3
7175   and r2, r2, #49152
7176   ldr r4, [sp, #12]
7177   rsb r9, r1, #256
7178   add r2, r2, r3
7179   ldr r1, .L3398+8
7180   mov r3, r3, asl #1
7181   rsb r3, r3, #56
7182   cmp r4, r9
7183   add r2, r2, r1
7184   str r3, [sp, #4]
7185   and lr, lr, #7
7186   bls .L3366
7187   cmp lr, #0
7188   moveq r6, lr
7189   bne .L3367
7190 .L2850:
7191   rsb r3, r6, r9
7192   movs  sl, r3, lsr #3
7193   beq .L2914
7194   mov lr, r7
7195   mov r6, #0
7196   b .L2916
7197 .L3368:
7198   ldr r1, [r5, #4]
7199   add r6, r6, #1
7200   ands  r3, r1, #255
7201   orrne r3, r8, r3
7202   strne r3, [lr, #12]
7203   mov r3, r1, lsr #8
7204   streq r0, [lr, #12]
7205   ands  r3, r3, #255
7206   orrne r3, r8, r3
7207   strne r3, [lr, #8]
7208   mov r3, r1, lsr #16
7209   streq r0, [lr, #8]
7210   ands  r3, r3, #255
7211   orrne r3, r8, r3
7212   strne r3, [lr, #4]
7213   streq r0, [lr, #4]
7214   movs  r3, r1, lsr #24
7215   orrne r3, r8, r3
7216   strne r3, [lr, #0]
7217   streq r0, [lr, #0]
7218   ldr r1, [r5, #0]
7219   ands  r3, r1, #255
7220   orrne r3, r8, r3
7221   strne r3, [lr, #28]
7222   mov r3, r1, lsr #8
7223   streq r0, [lr, #28]
7224   ands  r3, r3, #255
7225   orrne r3, r8, r3
7226   strne r3, [lr, #24]
7227   mov r3, r1, lsr #16
7228   streq r0, [lr, #24]
7229   ands  r3, r3, #255
7230   orrne r3, r8, r3
7231   strne r3, [lr, #20]
7232   streq r0, [lr, #20]
7233   movs  r3, r1, lsr #24
7234   orrne r3, r8, r3
7235   strne r3, [lr, #16]
7236   streq r0, [lr, #16]
7237   cmp sl, r6
7238   add lr, lr, #32
7239   beq .L2968
7240 .L3369:
7241   add fp, fp, #2
7242 .L2916:
7243   ldrh  r1, [fp, #0]
7244   mov r3, r1, asl #22
7245   mov r3, r3, lsr #22
7246   tst r1, #2048
7247   add r5, r2, r3, asl #6
7248   ldrne r3, [sp, #4]
7249   addne r5, r5, r3
7250   tst r1, #1024
7251   bne .L3368
7252   ldr r1, [r5, #0]
7253   add r6, r6, #1
7254   ands  r3, r1, #255
7255   orrne r3, r8, r3
7256   strne r3, [lr, #0]
7257   mov r3, r1, lsr #8
7258   streq r0, [lr, #0]
7259   ands  r3, r3, #255
7260   orrne r3, r8, r3
7261   strne r3, [lr, #4]
7262   mov r3, r1, lsr #16
7263   streq r0, [lr, #4]
7264   ands  r3, r3, #255
7265   orrne r3, r8, r3
7266   strne r3, [lr, #8]
7267   streq r0, [lr, #8]
7268   movs  r3, r1, lsr #24
7269   orrne r3, r8, r3
7270   strne r3, [lr, #12]
7271   streq r0, [lr, #12]
7272   ldr r1, [r5, #4]
7273   ands  r3, r1, #255
7274   orrne r3, r8, r3
7275   strne r3, [lr, #16]
7276   mov r3, r1, lsr #8
7277   streq r0, [lr, #16]
7278   ands  r3, r3, #255
7279   orrne r3, r8, r3
7280   strne r3, [lr, #20]
7281   mov r3, r1, lsr #16
7282   streq r0, [lr, #20]
7283   ands  r3, r3, #255
7284   orrne r3, r8, r3
7285   strne r3, [lr, #24]
7286   streq r0, [lr, #24]
7287   movs  r3, r1, lsr #24
7288   orrne r3, r8, r3
7289   strne r3, [lr, #28]
7290   streq r0, [lr, #28]
7291   cmp sl, r6
7292   add lr, lr, #32
7293   bne .L3369
7294 .L2968:
7295   add r7, r7, sl, asl #5
7296 .L2914:
7297   ldr r4, [sp, #12]
7298   rsb r9, r9, r4
7299   movs  r4, r9, lsr #3
7300   ldreq r3, [sp, #0]
7301   beq .L2972
7302   ldr r6, [sp, #0]
7303   mov lr, r7
7304   mov sl, #0
7305   b .L2973
7306 .L3371:
7307   ldr r1, [r5, #4]
7308   add sl, sl, #1
7309   ands  r3, r1, #255
7310   orrne r3, r8, r3
7311   strne r3, [lr, #12]
7312   mov r3, r1, lsr #8
7313   streq r0, [lr, #12]
7314   ands  r3, r3, #255
7315   orrne r3, r8, r3
7316   strne r3, [lr, #8]
7317   mov r3, r1, lsr #16
7318   streq r0, [lr, #8]
7319   ands  r3, r3, #255
7320   orrne r3, r8, r3
7321   strne r3, [lr, #4]
7322   streq r0, [lr, #4]
7323   movs  r3, r1, lsr #24
7324   orrne r3, r8, r3
7325   strne r3, [lr, #0]
7326   streq r0, [lr, #0]
7327   ldr r1, [r5, #0]
7328   add r6, r6, #2
7329   ands  r3, r1, #255
7330   orrne r3, r8, r3
7331   strne r3, [lr, #28]
7332   mov r3, r1, lsr #8
7333   streq r0, [lr, #28]
7334   ands  r3, r3, #255
7335   orrne r3, r8, r3
7336   strne r3, [lr, #24]
7337   mov r3, r1, lsr #16
7338   streq r0, [lr, #24]
7339   ands  r3, r3, #255
7340   orrne r3, r8, r3
7341   strne r3, [lr, #20]
7342   streq r0, [lr, #20]
7343   movs  r3, r1, lsr #24
7344   orrne r3, r8, r3
7345   strne r3, [lr, #16]
7346   streq r0, [lr, #16]
7347   cmp r4, sl
7348   add lr, lr, #32
7349   beq .L3370
7350 .L2973:
7351   ldrh  r1, [r6, #0]
7352   mov r3, r1, asl #22
7353   mov r3, r3, lsr #22
7354   tst r1, #2048
7355   add r5, r2, r3, asl #6
7356   ldrne r3, [sp, #4]
7357   addne r5, r5, r3
7358   tst r1, #1024
7359   bne .L3371
7360   ldr r1, [r5, #0]
7361   add sl, sl, #1
7362   ands  r3, r1, #255
7363   orrne r3, r8, r3
7364   strne r3, [lr, #0]
7365   mov r3, r1, lsr #8
7366   streq r0, [lr, #0]
7367   ands  r3, r3, #255
7368   orrne r3, r8, r3
7369   strne r3, [lr, #4]
7370   mov r3, r1, lsr #16
7371   streq r0, [lr, #4]
7372   ands  r3, r3, #255
7373   orrne r3, r8, r3
7374   strne r3, [lr, #8]
7375   streq r0, [lr, #8]
7376   movs  r3, r1, lsr #24
7377   orrne r3, r8, r3
7378   strne r3, [lr, #12]
7379   streq r0, [lr, #12]
7380   ldr r1, [r5, #4]
7381   add r6, r6, #2
7382   ands  r3, r1, #255
7383   orrne r3, r8, r3
7384   strne r3, [lr, #16]
7385   mov r3, r1, lsr #8
7386   streq r0, [lr, #16]
7387   ands  r3, r3, #255
7388   orrne r3, r8, r3
7389   strne r3, [lr, #20]
7390   mov r3, r1, lsr #16
7391   streq r0, [lr, #20]
7392   ands  r3, r3, #255
7393   orrne r3, r8, r3
7394   strne r3, [lr, #24]
7395   streq r0, [lr, #24]
7396   movs  r3, r1, lsr #24
7397   orrne r3, r8, r3
7398   strne r3, [lr, #28]
7399   streq r0, [lr, #28]
7400   cmp r4, sl
7401   add lr, lr, #32
7402   bne .L2973
7403 .L3370:
7404   ldr r1, [sp, #0]
7405   add r7, r7, r4, asl #5
7406   add r3, r1, r4, asl #1
7407 .L2972:
7408   ands  lr, r9, #7
7409   beq .L3345
7410   ldrh  r4, [r3, #0]
7411   mov r3, r4, asl #22
7412   mov r3, r3, lsr #22
7413   tst r4, #2048
7414   add r2, r2, r3, asl #6
7415   ldrne r3, [sp, #4]
7416   addne r2, r2, r3
7417   tst r4, #1024
7418   beq .L3029
7419   cmp lr, #3
7420   ldrls r2, [r2, #4]
7421   bhi .L3372
7422 .L3046:
7423   mov r1, #0
7424 .L3047:
7425   movs  r3, r2, lsr #24
7426   orr r3, r8, r3
7427   add r1, r1, #1
7428   strne r3, [r7, #0]
7429   streq r0, [r7, #0]
7430   cmp r1, lr
7431   mov r2, r2, asl #8
7432   add r7, r7, #4
7433   bcc .L3047
7434 .L3345:
7435   add sp, sp, #16
7436   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
7437 .L2610:
7438   mov r2, r9, asl #12
7439   and r3, sl, #7
7440   and r1, lr, #255
7441   mov r3, r3, asl #2
7442   and r2, r2, #49152
7443   ldr r4, [sp, #12]
7444   rsb r9, r1, #256
7445   add r2, r2, r3
7446   ldr r1, .L3398+8
7447   mov r3, r3, asl #1
7448   rsb r3, r3, #28
7449   cmp r4, r9
7450   add ip, r2, r1
7451   str r3, [sp, #8]
7452   and r1, lr, #7
7453   bls .L3373
7454   cmp r1, #0
7455   moveq r6, r1
7456   bne .L3374
7457 .L3190:
7458   rsb r3, r6, r9
7459   movs  sl, r3, lsr #3
7460   beq .L3210
7461   mov lr, r7
7462   mov r6, #0
7463   b .L3212
7464 .L3375:
7465   ldr r2, [r3, #0]
7466   cmp r2, #0
7467   beq .L3243
7468   ands  r3, r2, #15
7469   orrne r3, r8, r3
7470   orrne r3, r5, r3
7471   strne r3, [lr, #28]
7472   mov r3, r2, lsr #4
7473   streq r0, [lr, #28]
7474   ands  r3, r3, #15
7475   orrne r3, r8, r3
7476   orrne r3, r5, r3
7477   strne r3, [lr, #24]
7478   mov r3, r2, lsr #8
7479   streq r0, [lr, #24]
7480   ands  r3, r3, #15
7481   orrne r3, r8, r3
7482   orrne r3, r5, r3
7483   strne r3, [lr, #20]
7484   mov r3, r2, lsr #12
7485   streq r0, [lr, #20]
7486   ands  r3, r3, #15
7487   orrne r3, r8, r3
7488   orrne r3, r5, r3
7489   strne r3, [lr, #16]
7490   mov r3, r2, lsr #16
7491   streq r0, [lr, #16]
7492   ands  r3, r3, #15
7493   orrne r3, r8, r3
7494   orrne r3, r5, r3
7495   strne r3, [lr, #12]
7496   mov r3, r2, lsr #20
7497   streq r0, [lr, #12]
7498   ands  r3, r3, #15
7499   orrne r3, r8, r3
7500   orrne r3, r5, r3
7501   strne r3, [lr, #8]
7502   mov r3, r2, lsr #24
7503   streq r0, [lr, #8]
7504   ands  r3, r3, #15
7505   orrne r3, r8, r3
7506   orrne r3, r5, r3
7507   strne r3, [lr, #4]
7508   streq r0, [lr, #4]
7509   movs  r3, r2, lsr #28
7510   orrne r3, r8, r3
7511   orrne r3, r5, r3
7512   strne r3, [lr, #0]
7513   streq r0, [lr, #0]
7514 .L3242:
7515   add r6, r6, #1
7516   cmp sl, r6
7517   add lr, lr, #32
7518   beq .L3268
7519 .L3376:
7520   add fp, fp, #2
7521 .L3212:
7522   ldrh  r1, [fp, #0]
7523   tst r1, #2048
7524   mov r2, r1, asl #22
7525   mov r3, r1, lsr #12
7526   ldrne r4, [sp, #8]
7527   mov r2, r2, lsr #22
7528   mov r5, r3, asl #4
7529   add r3, ip, r2, asl #5
7530   addne r3, r3, r4
7531   tst r1, #1024
7532   bne .L3375
7533   ldr r2, [r3, #0]
7534   cmp r2, #0
7535   beq .L3243
7536   ands  r3, r2, #15
7537   orrne r3, r8, r3
7538   orrne r3, r5, r3
7539   strne r3, [lr, #0]
7540   mov r3, r2, lsr #4
7541   streq r0, [lr, #0]
7542   ands  r3, r3, #15
7543   orrne r3, r8, r3
7544   orrne r3, r5, r3
7545   strne r3, [lr, #4]
7546   mov r3, r2, lsr #8
7547   streq r0, [lr, #4]
7548   ands  r3, r3, #15
7549   orrne r3, r8, r3
7550   orrne r3, r5, r3
7551   strne r3, [lr, #8]
7552   mov r3, r2, lsr #12
7553   streq r0, [lr, #8]
7554   ands  r3, r3, #15
7555   orrne r3, r8, r3
7556   orrne r3, r5, r3
7557   strne r3, [lr, #12]
7558   mov r3, r2, lsr #16
7559   streq r0, [lr, #12]
7560   ands  r3, r3, #15
7561   orrne r3, r8, r3
7562   orrne r3, r5, r3
7563   strne r3, [lr, #16]
7564   mov r3, r2, lsr #20
7565   streq r0, [lr, #16]
7566   ands  r3, r3, #15
7567   orrne r3, r8, r3
7568   orrne r3, r5, r3
7569   strne r3, [lr, #20]
7570   mov r3, r2, lsr #24
7571   streq r0, [lr, #20]
7572   ands  r3, r3, #15
7573   orrne r3, r8, r3
7574   orrne r3, r5, r3
7575   strne r3, [lr, #24]
7576   streq r0, [lr, #24]
7577   movs  r3, r2, lsr #28
7578   orrne r3, r8, r3
7579   orrne r3, r5, r3
7580   strne r3, [lr, #28]
7581   bne .L3242
7582   str r0, [lr, #28]
7583 .L3386:
7584   add r6, r6, #1
7585   cmp sl, r6
7586   add lr, lr, #32
7587   bne .L3376
7588 .L3268:
7589   add r7, r7, sl, asl #5
7590 .L3210:
7591   ldr r1, [sp, #12]
7592   rsb r9, r9, r1
7593   movs  r4, r9, lsr #3
7594   ldreq r2, [sp, #0]
7595   beq .L3272
7596   ldr r6, [sp, #0]
7597   mov lr, r7
7598   mov sl, #0
7599   b .L3273
7600 .L3378:
7601   ldr r2, [r3, #0]
7602   cmp r2, #0
7603   beq .L3304
7604   ands  r3, r2, #15
7605   orrne r3, r8, r3
7606   orrne r3, r5, r3
7607   strne r3, [lr, #28]
7608   mov r3, r2, lsr #4
7609   streq r0, [lr, #28]
7610   ands  r3, r3, #15
7611   orrne r3, r8, r3
7612   orrne r3, r5, r3
7613   strne r3, [lr, #24]
7614   mov r3, r2, lsr #8
7615   streq r0, [lr, #24]
7616   ands  r3, r3, #15
7617   orrne r3, r8, r3
7618   orrne r3, r5, r3
7619   strne r3, [lr, #20]
7620   mov r3, r2, lsr #12
7621   streq r0, [lr, #20]
7622   ands  r3, r3, #15
7623   orrne r3, r8, r3
7624   orrne r3, r5, r3
7625   strne r3, [lr, #16]
7626   mov r3, r2, lsr #16
7627   streq r0, [lr, #16]
7628   ands  r3, r3, #15
7629   orrne r3, r8, r3
7630   orrne r3, r5, r3
7631   strne r3, [lr, #12]
7632   mov r3, r2, lsr #20
7633   streq r0, [lr, #12]
7634   ands  r3, r3, #15
7635   orrne r3, r8, r3
7636   orrne r3, r5, r3
7637   strne r3, [lr, #8]
7638   mov r3, r2, lsr #24
7639   streq r0, [lr, #8]
7640   ands  r3, r3, #15
7641   orrne r3, r8, r3
7642   orrne r3, r5, r3
7643   strne r3, [lr, #4]
7644   streq r0, [lr, #4]
7645   movs  r3, r2, lsr #28
7646   orrne r3, r8, r3
7647   orrne r3, r5, r3
7648   strne r3, [lr, #0]
7649   streq r0, [lr, #0]
7650 .L3303:
7651   add sl, sl, #1
7652   cmp r4, sl
7653   add lr, lr, #32
7654   add r6, r6, #2
7655   beq .L3377
7656 .L3273:
7657   ldrh  r1, [r6, #0]
7658   mov r2, r1, asl #22
7659   mov r2, r2, lsr #22
7660   tst r1, #2048
7661   mov r3, r1, lsr #12
7662   mov r5, r3, asl #4
7663   add r3, ip, r2, asl #5
7664   ldrne r2, [sp, #8]
7665   addne r3, r3, r2
7666   tst r1, #1024
7667   bne .L3378
7668   ldr r2, [r3, #0]
7669   cmp r2, #0
7670   beq .L3304
7671   ands  r3, r2, #15
7672   orrne r3, r8, r3
7673   orrne r3, r5, r3
7674   strne r3, [lr, #0]
7675   mov r3, r2, lsr #4
7676   streq r0, [lr, #0]
7677   ands  r3, r3, #15
7678   orrne r3, r8, r3
7679   orrne r3, r5, r3
7680   strne r3, [lr, #4]
7681   mov r3, r2, lsr #8
7682   streq r0, [lr, #4]
7683   ands  r3, r3, #15
7684   orrne r3, r8, r3
7685   orrne r3, r5, r3
7686   strne r3, [lr, #8]
7687   mov r3, r2, lsr #12
7688   streq r0, [lr, #8]
7689   ands  r3, r3, #15
7690   orrne r3, r8, r3
7691   orrne r3, r5, r3
7692   strne r3, [lr, #12]
7693   mov r3, r2, lsr #16
7694   streq r0, [lr, #12]
7695   ands  r3, r3, #15
7696   orrne r3, r8, r3
7697   orrne r3, r5, r3
7698   strne r3, [lr, #16]
7699   mov r3, r2, lsr #20
7700   streq r0, [lr, #16]
7701   ands  r3, r3, #15
7702   orrne r3, r8, r3
7703   orrne r3, r5, r3
7704   strne r3, [lr, #20]
7705   mov r3, r2, lsr #24
7706   streq r0, [lr, #20]
7707   ands  r3, r3, #15
7708   orrne r3, r8, r3
7709   orrne r3, r5, r3
7710   strne r3, [lr, #24]
7711   streq r0, [lr, #24]
7712   movs  r3, r2, lsr #28
7713   orrne r3, r8, r3
7714   orrne r3, r5, r3
7715   strne r3, [lr, #28]
7716   bne .L3303
7717   str r0, [lr, #28]
7718 .L3387:
7719   add sl, sl, #1
7720   cmp r4, sl
7721   add lr, lr, #32
7722   add r6, r6, #2
7723   bne .L3273
7724 .L3377:
7725   ldr r3, [sp, #0]
7726   add r7, r7, r4, asl #5
7727   add r2, r3, r4, asl #1
7728 .L3272:
7729   ands  lr, r9, #7
7730   beq .L3345
7731   ldrh  r4, [r2, #0]
7732   tst r4, #2048
7733   mov r3, r4, asl #22
7734   ldrne r1, [sp, #8]
7735   mov r3, r3, lsr #22
7736   add r3, ip, r3, asl #5
7737   addne r3, r3, r1
7738   mov r2, r4, lsr #12
7739   tst r4, #1024
7740   mov ip, r2, asl #4
7741   moveq r1, #0
7742   ldreq r2, [r3, #0]
7743   beq .L3340
7744   ldr r2, [r3, #0]
7745   mov r1, #0
7746 .L3335:
7747   movs  r3, r2, lsr #28
7748   orr r3, r8, r3
7749   orr r3, ip, r3
7750   add r1, r1, #1
7751   strne r3, [r7, #0]
7752   streq r0, [r7, #0]
7753   cmp lr, r1
7754   mov r2, r2, asl #4
7755   add r7, r7, #4
7756   bne .L3335
7757   b .L3345
7758 .L3373:
7759   cmp r1, #0
7760   bne .L3379
7761 .L3075:
7762   ldr r4, [sp, #12]
7763   movs  r9, r4, lsr #3
7764   beq .L3114
7765   mov lr, r7
7766   mov r6, fp
7767   mov sl, #0
7768   b .L3116
7769 .L3381:
7770   ldr r2, [r3, #0]
7771   cmp r2, #0
7772   beq .L3147
7773   ands  r3, r2, #15
7774   orrne r3, r8, r3
7775   orrne r3, r5, r3
7776   strne r3, [lr, #28]
7777   mov r3, r2, lsr #4
7778   streq r0, [lr, #28]
7779   ands  r3, r3, #15
7780   orrne r3, r8, r3
7781   orrne r3, r5, r3
7782   strne r3, [lr, #24]
7783   mov r3, r2, lsr #8
7784   streq r0, [lr, #24]
7785   ands  r3, r3, #15
7786   orrne r3, r8, r3
7787   orrne r3, r5, r3
7788   strne r3, [lr, #20]
7789   mov r3, r2, lsr #12
7790   streq r0, [lr, #20]
7791   ands  r3, r3, #15
7792   orrne r3, r8, r3
7793   orrne r3, r5, r3
7794   strne r3, [lr, #16]
7795   mov r3, r2, lsr #16
7796   streq r0, [lr, #16]
7797   ands  r3, r3, #15
7798   orrne r3, r8, r3
7799   orrne r3, r5, r3
7800   strne r3, [lr, #12]
7801   mov r3, r2, lsr #20
7802   streq r0, [lr, #12]
7803   ands  r3, r3, #15
7804   orrne r3, r8, r3
7805   orrne r3, r5, r3
7806   strne r3, [lr, #8]
7807   mov r3, r2, lsr #24
7808   streq r0, [lr, #8]
7809   ands  r3, r3, #15
7810   orrne r3, r8, r3
7811   orrne r3, r5, r3
7812   strne r3, [lr, #4]
7813   streq r0, [lr, #4]
7814   movs  r3, r2, lsr #28
7815   orrne r3, r8, r3
7816   orrne r3, r5, r3
7817   strne r3, [lr, #0]
7818   streq r0, [lr, #0]
7819 .L3146:
7820   add sl, sl, #1
7821   cmp r9, sl
7822   add lr, lr, #32
7823   add r6, r6, #2
7824   beq .L3380
7825 .L3116:
7826   ldrh  r1, [r6, #0]
7827   mov r2, r1, asl #22
7828   mov r2, r2, lsr #22
7829   tst r1, #2048
7830   mov r3, r1, lsr #12
7831   mov r5, r3, asl #4
7832   add r3, ip, r2, asl #5
7833   ldrne r2, [sp, #8]
7834   addne r3, r3, r2
7835   tst r1, #1024
7836   bne .L3381
7837   ldr r2, [r3, #0]
7838   cmp r2, #0
7839   beq .L3147
7840   ands  r3, r2, #15
7841   orrne r3, r8, r3
7842   orrne r3, r5, r3
7843   strne r3, [lr, #0]
7844   mov r3, r2, lsr #4
7845   streq r0, [lr, #0]
7846   ands  r3, r3, #15
7847   orrne r3, r8, r3
7848   orrne r3, r5, r3
7849   strne r3, [lr, #4]
7850   mov r3, r2, lsr #8
7851   streq r0, [lr, #4]
7852   ands  r3, r3, #15
7853   orrne r3, r8, r3
7854   orrne r3, r5, r3
7855   strne r3, [lr, #8]
7856   mov r3, r2, lsr #12
7857   streq r0, [lr, #8]
7858   ands  r3, r3, #15
7859   orrne r3, r8, r3
7860   orrne r3, r5, r3
7861   strne r3, [lr, #12]
7862   mov r3, r2, lsr #16
7863   streq r0, [lr, #12]
7864   ands  r3, r3, #15
7865   orrne r3, r8, r3
7866   orrne r3, r5, r3
7867   strne r3, [lr, #16]
7868   mov r3, r2, lsr #20
7869   streq r0, [lr, #16]
7870   ands  r3, r3, #15
7871   orrne r3, r8, r3
7872   orrne r3, r5, r3
7873   strne r3, [lr, #20]
7874   mov r3, r2, lsr #24
7875   streq r0, [lr, #20]
7876   ands  r3, r3, #15
7877   orrne r3, r8, r3
7878   orrne r3, r5, r3
7879   strne r3, [lr, #24]
7880   streq r0, [lr, #24]
7881   movs  r3, r2, lsr #28
7882   orrne r3, r8, r3
7883   orrne r3, r5, r3
7884   strne r3, [lr, #28]
7885   bne .L3146
7886   str r0, [lr, #28]
7887 .L3391:
7888   add sl, sl, #1
7889   cmp r9, sl
7890   add lr, lr, #32
7891   add r6, r6, #2
7892   bne .L3116
7893 .L3380:
7894   add r7, r7, r9, asl #5
7895   add fp, fp, r9, asl #1
7896 .L3114:
7897   ldr r3, [sp, #12]
7898   ands  lr, r3, #7
7899   beq .L3345
7900   ldrh  r1, [fp, #0]
7901   tst r1, #2048
7902   mov r3, r1, asl #22
7903   ldrne r4, [sp, #8]
7904   mov r3, r3, lsr #22
7905   add r3, ip, r3, asl #5
7906   mov r2, r1, lsr #12
7907   addne r3, r3, r4
7908   tst r1, #1024
7909   mov ip, r2, asl #4
7910   moveq r1, #0
7911   ldreq r2, [r3, #0]
7912   beq .L3183
7913   ldr r2, [r3, #0]
7914   mov r1, #0
7915 .L3178:
7916   movs  r3, r2, lsr #28
7917   orr r3, r8, r3
7918   orr r3, ip, r3
7919   add r1, r1, #1
7920   strne r3, [r7, #0]
7921   streq r0, [r7, #0]
7922   cmp lr, r1
7923   mov r2, r2, asl #4
7924   add r7, r7, #4
7925   bne .L3178
7926   b .L3345
7927 .L3366:
7928   cmp lr, #0
7929   bne .L3382
7930 .L2614:
7931   ldr r3, [sp, #12]
7932   movs  r9, r3, lsr #3
7933   beq .L2746
7934   mov lr, r7
7935   mov r6, fp
7936   mov sl, #0
7937   b .L2748
7938 .L3384:
7939   ldr r1, [r5, #4]
7940   add sl, sl, #1
7941   ands  r3, r1, #255
7942   orrne r3, r8, r3
7943   strne r3, [lr, #12]
7944   mov r3, r1, lsr #8
7945   streq r0, [lr, #12]
7946   ands  r3, r3, #255
7947   orrne r3, r8, r3
7948   strne r3, [lr, #8]
7949   mov r3, r1, lsr #16
7950   streq r0, [lr, #8]
7951   ands  r3, r3, #255
7952   orrne r3, r8, r3
7953   strne r3, [lr, #4]
7954   streq r0, [lr, #4]
7955   movs  r3, r1, lsr #24
7956   orrne r3, r8, r3
7957   strne r3, [lr, #0]
7958   streq r0, [lr, #0]
7959   ldr r1, [r5, #0]
7960   add r6, r6, #2
7961   ands  r3, r1, #255
7962   orrne r3, r8, r3
7963   strne r3, [lr, #28]
7964   mov r3, r1, lsr #8
7965   streq r0, [lr, #28]
7966   ands  r3, r3, #255
7967   orrne r3, r8, r3
7968   strne r3, [lr, #24]
7969   mov r3, r1, lsr #16
7970   streq r0, [lr, #24]
7971   ands  r3, r3, #255
7972   orrne r3, r8, r3
7973   strne r3, [lr, #20]
7974   streq r0, [lr, #20]
7975   movs  r3, r1, lsr #24
7976   orrne r3, r8, r3
7977   strne r3, [lr, #16]
7978   streq r0, [lr, #16]
7979   cmp r9, sl
7980   add lr, lr, #32
7981   beq .L3383
7982 .L2748:
7983   ldrh  r1, [r6, #0]
7984   tst r1, #2048
7985   mov r3, r1, asl #22
7986   ldrne r4, [sp, #4]
7987   mov r3, r3, lsr #22
7988   add r5, r2, r3, asl #6
7989   addne r5, r5, r4
7990   tst r1, #1024
7991   bne .L3384
7992   ldr r1, [r5, #0]
7993   add sl, sl, #1
7994   ands  r3, r1, #255
7995   orrne r3, r8, r3
7996   strne r3, [lr, #0]
7997   mov r3, r1, lsr #8
7998   streq r0, [lr, #0]
7999   ands  r3, r3, #255
8000   orrne r3, r8, r3
8001   strne r3, [lr, #4]
8002   mov r3, r1, lsr #16
8003   streq r0, [lr, #4]
8004   ands  r3, r3, #255
8005   orrne r3, r8, r3
8006   strne r3, [lr, #8]
8007   streq r0, [lr, #8]
8008   movs  r3, r1, lsr #24
8009   orrne r3, r8, r3
8010   strne r3, [lr, #12]
8011   streq r0, [lr, #12]
8012   ldr r1, [r5, #4]
8013   add r6, r6, #2
8014   ands  r3, r1, #255
8015   orrne r3, r8, r3
8016   strne r3, [lr, #16]
8017   mov r3, r1, lsr #8
8018   streq r0, [lr, #16]
8019   ands  r3, r3, #255
8020   orrne r3, r8, r3
8021   strne r3, [lr, #20]
8022   mov r3, r1, lsr #16
8023   streq r0, [lr, #20]
8024   ands  r3, r3, #255
8025   orrne r3, r8, r3
8026   strne r3, [lr, #24]
8027   streq r0, [lr, #24]
8028   movs  r3, r1, lsr #24
8029   orrne r3, r8, r3
8030   strne r3, [lr, #28]
8031   streq r0, [lr, #28]
8032   cmp r9, sl
8033   add lr, lr, #32
8034   bne .L2748
8035 .L3383:
8036   add r7, r7, r9, asl #5
8037   add fp, fp, r9, asl #1
8038 .L2746:
8039   ldr r1, [sp, #12]
8040   ands  lr, r1, #7
8041   beq .L3345
8042   ldrh  r1, [fp, #0]
8043   mov r3, r1, asl #22
8044   mov r3, r3, lsr #22
8045   tst r1, #2048
8046   add r2, r2, r3, asl #6
8047   ldrne r3, [sp, #4]
8048   addne r2, r2, r3
8049   tst r1, #1024
8050   beq .L2804
8051   cmp lr, #3
8052   ldrls r2, [r2, #4]
8053   bhi .L3385
8054 .L2821:
8055   mov r1, #0
8056 .L2822:
8057   movs  r3, r2, lsr #24
8058   orr r3, r8, r3
8059   add r1, r1, #1
8060   strne r3, [r7, #0]
8061   streq r0, [r7, #0]
8062   cmp lr, r1
8063   mov r2, r2, asl #8
8064   add r7, r7, #4
8065   bhi .L2822
8066   b .L3345
8067 .L3243:
8068   str r0, [lr, #0]
8069   str r0, [lr, #4]
8070   str r0, [lr, #8]
8071   str r0, [lr, #12]
8072   str r0, [lr, #16]
8073   str r0, [lr, #20]
8074   str r0, [lr, #24]
8075   str r0, [lr, #28]
8076   b .L3386
8077 .L3304:
8078   str r0, [lr, #0]
8079   str r0, [lr, #4]
8080   str r0, [lr, #8]
8081   str r0, [lr, #12]
8082   str r0, [lr, #16]
8083   str r0, [lr, #20]
8084   str r0, [lr, #24]
8085   str r0, [lr, #28]
8086   b .L3387
8087 .L3340:
8088   ands  r3, r2, #15
8089   orr r3, r8, r3
8090   orr r3, ip, r3
8091   add r1, r1, #1
8092   strne r3, [r7, #0]
8093   streq r0, [r7, #0]
8094   cmp lr, r1
8095   mov r2, r2, lsr #4
8096   add r7, r7, #4
8097   bne .L3340
8098   b .L3345
8099 .L3379:
8100   rsb r5, r1, #8
8101   cmp r4, r5
8102   bcs .L3077
8103   ldrh  lr, [fp, #0]
8104   mov r3, lr, asl #22
8105   mov r3, r3, lsr #22
8106   tst lr, #2048
8107   add ip, ip, r3, asl #5
8108   ldrne r3, [sp, #8]
8109   mov r2, lr, lsr #12
8110   addne ip, ip, r3
8111   tst lr, #1024
8112   mov r2, r2, asl #4
8113   bne .L3388
8114   ldr r4, [sp, #12]
8115   ldr ip, [ip, #0]
8116   cmp r4, #0
8117   beq .L3345
8118   mov r3, r1, asl #2
8119   mov r1, ip, lsr r3
8120   mov ip, #0
8121 .L3090:
8122   ands  r3, r1, #15
8123   orr r3, r8, r3
8124   orr r3, r2, r3
8125   strne r3, [r7, #0]
8126   ldr r3, [sp, #12]
8127   add ip, ip, #1
8128   streq r0, [r7, #0]
8129   cmp r3, ip
8130   mov r1, r1, lsr #4
8131   add r7, r7, #4
8132   bne .L3090
8133   b .L3345
8134 .L3374:
8135   ldrh  r5, [fp, #0]
8136   rsb r6, r1, #8
8137   mov r2, r5, asl #22
8138   mov r2, r2, lsr #22
8139   tst r5, #2048
8140   mov r3, r5, lsr #12
8141   mov sl, r3, asl #4
8142   add r3, ip, r2, asl #5
8143   ldrne r2, [sp, #8]
8144   addne r3, r3, r2
8145   tst r5, #1024
8146   beq .L3193
8147   cmp r6, #0
8148   ldr r2, [r3, #0]
8149   beq .L3195
8150   mov r3, r1, asl #2
8151   mov r1, r2, asl r3
8152   mov lr, #0
8153   mov r2, r7
8154 .L3197:
8155   movs  r3, r1, lsr #28
8156   orr r3, r8, r3
8157   orr r3, sl, r3
8158   add lr, lr, #1
8159   strne r3, [r2, #0]
8160   streq r0, [r2, #0]
8161   cmp r6, lr
8162   mov r1, r1, asl #4
8163   add r2, r2, #4
8164   bne .L3197
8165   add r7, r7, r6, asl #2
8166 .L3195:
8167   add fp, fp, #2
8168   b .L3190
8169 .L3399:
8170   .align  2
8171 .L3398:
8172   .word io_registers
8173   .word map_widths
8174   .word vram
8175 .L3367:
8176   ldrh  r1, [fp, #0]
8177   rsb r6, lr, #8
8178   tst r1, #2048
8179   mov r3, r1, asl #22
8180   ldrne r4, [sp, #4]
8181   mov r3, r3, lsr #22
8182   add sl, r2, r3, asl #6
8183   addne sl, sl, r4
8184   ands  r5, r1, #1024
8185   beq .L2853
8186   cmp lr, #3
8187   bhi .L3389
8188   subs  ip, r6, #4
8189   ldr r1, [sl, #4]
8190   beq .L2865
8191   mov r3, lr, asl #3
8192   sub r3, r3, #32
8193   mov r1, r1, asl r3
8194   mov lr, r7
8195   mov r5, #0
8196 .L2867:
8197   movs  r3, r1, lsr #24
8198   orr r3, r8, r3
8199   add r5, r5, #1
8200   strne r3, [lr, #0]
8201   streq r0, [lr, #0]
8202   cmp ip, r5
8203   mov r1, r1, asl #8
8204   add lr, lr, #4
8205   bne .L2867
8206   add r3, r7, r6, asl #2
8207   sub r7, r3, #16
8208 .L2865:
8209   ldr r1, [sl, #0]
8210   ands  r3, r1, #255
8211   orrne r3, r8, r3
8212   strne r3, [r7, #12]
8213   mov r3, r1, lsr #8
8214   streq r0, [r7, #12]
8215   ands  r3, r3, #255
8216   orrne r3, r8, r3
8217   strne r3, [r7, #8]
8218   mov r3, r1, lsr #16
8219   streq r0, [r7, #8]
8220   ands  r3, r3, #255
8221   orrne r3, r8, r3
8222   strne r3, [r7, #4]
8223   streq r0, [r7, #4]
8224   movs  r3, r1, lsr #24
8225   orrne r3, r8, r3
8226   strne r3, [r7, #0]
8227   streq r0, [r7, #0]
8228 .L2913:
8229   add r7, r7, #16
8230   mov r6, ip
8231 .L2857:
8232   add fp, fp, #2
8233   b .L2850
8234 .L3382:
8235   ldr r3, [sp, #12]
8236   rsb r4, lr, #8
8237   cmp r3, r4
8238   bcs .L2616
8239   ldrh  r1, [fp, #0]
8240   tst r1, #2048
8241   mov r3, r1, asl #22
8242   ldrne r4, [sp, #4]
8243   mov r3, r3, lsr #22
8244   add ip, r2, r3, asl #6
8245   addne ip, ip, r4
8246   tst r1, #1024
8247   bne .L3390
8248   cmp lr, #3
8249   bls .L2653
8250   ldr r4, [sp, #12]
8251   ldr r2, [ip, #4]
8252   cmp r4, #0
8253   beq .L3345
8254   mov r3, lr, asl #3
8255   sub r3, r3, #32
8256   mov r1, r2, lsr r3
8257   mov r2, #0
8258 .L2656:
8259   ands  r3, r1, #255
8260   orr r3, r8, r3
8261   strne r3, [r7, #0]
8262   ldr r3, [sp, #12]
8263   add r2, r2, #1
8264   streq r0, [r7, #0]
8265   cmp r3, r2
8266   mov r1, r1, lsr #8
8267   add r7, r7, #4
8268   bne .L2656
8269   b .L3345
8270 .L3147:
8271   str r0, [lr, #0]
8272   str r0, [lr, #4]
8273   str r0, [lr, #8]
8274   str r0, [lr, #12]
8275   str r0, [lr, #16]
8276   str r0, [lr, #20]
8277   str r0, [lr, #24]
8278   str r0, [lr, #28]
8279   b .L3391
8280 .L3183:
8281   ands  r3, r2, #15
8282   orr r3, r8, r3
8283   orr r3, ip, r3
8284   add r1, r1, #1
8285   strne r3, [r7, #0]
8286   streq r0, [r7, #0]
8287   cmp lr, r1
8288   mov r2, r2, lsr #4
8289   add r7, r7, #4
8290   bne .L3183
8291   b .L3345
8292 .L3029:
8293   cmp lr, #3
8294   ldrls r2, [r2, #0]
8295   bhi .L3392
8296 .L3067:
8297   mov r1, #0
8298 .L3068:
8299   ands  r3, r2, #255
8300   orr r3, r8, r3
8301   add r1, r1, #1
8302   strne r3, [r7, #0]
8303   streq r0, [r7, #0]
8304   cmp lr, r1
8305   mov r2, r2, lsr #8
8306   add r7, r7, #4
8307   bhi .L3068
8308   b .L3345
8309 .L2804:
8310   cmp lr, #3
8311   ldrls r2, [r2, #0]
8312   bhi .L3393
8313 .L2842:
8314   mov r1, #0
8315 .L2843:
8316   ands  r3, r2, #255
8317   orr r3, r8, r3
8318   add r1, r1, #1
8319   strne r3, [r7, #0]
8320   streq r0, [r7, #0]
8321   cmp lr, r1
8322   mov r2, r2, lsr #8
8323   add r7, r7, #4
8324   bhi .L2843
8325   b .L3345
8326 .L3193:
8327   cmp r6, #0
8328   ldr r2, [r3, #0]
8329   beq .L3195
8330   mov r3, r1, asl #2
8331   mov r1, r2, lsr r3
8332   mov lr, #0
8333   mov r2, r7
8334 .L3204:
8335   ands  r3, r1, #15
8336   orr r3, r8, r3
8337   orr r3, sl, r3
8338   add lr, lr, #1
8339   strne r3, [r2, #0]
8340   streq r0, [r2, #0]
8341   cmp r6, lr
8342   mov r1, r1, lsr #4
8343   add r2, r2, #4
8344   bne .L3204
8345   add r7, r7, r6, asl #2
8346   b .L3195
8347 .L3077:
8348   ldrh  lr, [fp, #0]
8349   mov r2, lr, asl #22
8350   mov r2, r2, lsr #22
8351   tst lr, #2048
8352   mov r3, lr, lsr #12
8353   mov r4, r3, asl #4
8354   add r3, ip, r2, asl #5
8355   ldrne r2, [sp, #8]
8356   addne r3, r3, r2
8357   tst lr, #1024
8358   bne .L3394
8359   cmp r5, #0
8360   ldr r2, [r3, #0]
8361   beq .L3099
8362   mov r3, r1, asl #2
8363   mov r1, r2, lsr r3
8364   mov lr, #0
8365   mov r2, r7
8366 .L3108:
8367   ands  r3, r1, #15
8368   orr r3, r8, r3
8369   orr r3, r4, r3
8370   add lr, lr, #1
8371   strne r3, [r2, #0]
8372   streq r0, [r2, #0]
8373   cmp r5, lr
8374   mov r1, r1, lsr #4
8375   add r2, r2, #4
8376   bne .L3108
8377 .L3360:
8378   add r7, r7, r5, asl #2
8379 .L3099:
8380   ldr r3, [sp, #12]
8381   add fp, fp, #2
8382   rsb r3, r5, r3
8383   str r3, [sp, #12]
8384   b .L3075
8385 .L2853:
8386   cmp lr, #3
8387   bhi .L3395
8388   subs  ip, r6, #4
8389   ldr r1, [sl, #0]
8390   beq .L2894
8391   mov r3, lr, asl #3
8392   mov r1, r1, lsr r3
8393   mov lr, r7
8394   mov r5, #0
8395 .L2896:
8396   ands  r3, r1, #255
8397   orr r3, r8, r3
8398   add r5, r5, #1
8399   strne r3, [lr, #0]
8400   streq r0, [lr, #0]
8401   cmp ip, r5
8402   mov r1, r1, lsr #8
8403   add lr, lr, #4
8404   bne .L2896
8405   add r3, r7, r6, asl #2
8406   sub r7, r3, #16
8407 .L2894:
8408   ldr r1, [sl, #4]
8409   ands  r3, r1, #255
8410   orrne r3, r8, r3
8411   strne r3, [r7, #0]
8412   mov r3, r1, lsr #8
8413   streq r0, [r7, #0]
8414   ands  r3, r3, #255
8415   orrne r3, r8, r3
8416   strne r3, [r7, #4]
8417   mov r3, r1, lsr #16
8418   streq r0, [r7, #4]
8419   ands  r3, r3, #255
8420   orrne r3, r8, r3
8421   strne r3, [r7, #8]
8422   streq r0, [r7, #8]
8423   movs  r3, r1, lsr #24
8424   orrne r3, r8, r3
8425   strne r3, [r7, #12]
8426   streq r0, [r7, #12]
8427   b .L2913
8428 .L2616:
8429   ldrh  r1, [fp, #0]
8430   mov r3, r1, asl #22
8431   mov r3, r3, lsr #22
8432   tst r1, #2048
8433   add ip, r2, r3, asl #6
8434   ldrne r3, [sp, #4]
8435   addne ip, ip, r3
8436   ands  r5, r1, #1024
8437   bne .L3396
8438   cmp lr, #3
8439   bls .L2717
8440   cmp r4, #0
8441   ldr r1, [ip, #4]
8442   beq .L2689
8443   mov r3, lr, asl #3
8444   sub r3, r3, #32
8445   mov r1, r1, lsr r3
8446   mov ip, r5
8447   mov lr, r7
8448 .L2720:
8449   ands  r3, r1, #255
8450   orr r3, r8, r3
8451   add ip, ip, #1
8452   strne r3, [lr, #0]
8453   streq r0, [lr, #0]
8454   cmp r4, ip
8455   mov r1, r1, lsr #8
8456   add lr, lr, #4
8457   bne .L2720
8458 .L3347:
8459   add r7, r7, r4, asl #2
8460 .L2689:
8461   ldr r1, [sp, #12]
8462   add fp, fp, #2
8463   rsb r1, r4, r1
8464   str r1, [sp, #12]
8465   b .L2614
8466 .L3392:
8467   ldr r1, [r2, #0]
8468   ands  r3, r1, #255
8469   orrne r3, r8, r3
8470   strne r3, [r7, #0]
8471   mov r3, r1, lsr #8
8472   streq r0, [r7, #0]
8473   ands  r3, r3, #255
8474   orrne r3, r8, r3
8475   strne r3, [r7, #4]
8476   mov r3, r1, lsr #16
8477   streq r0, [r7, #4]
8478   ands  r3, r3, #255
8479   orrne r3, r8, r3
8480   strne r3, [r7, #8]
8481   streq r0, [r7, #8]
8482   movs  r3, r1, lsr #24
8483   orrne r3, r8, r3
8484   strne r3, [r7, #12]
8485   streq r0, [r7, #12]
8486   subs  lr, lr, #4
8487   ldr r2, [r2, #4]
8488   addne r7, r7, #16
8489   bne .L3067
8490   b .L3345
8491 .L3372:
8492   ldr r1, [r2, #4]
8493   ands  r3, r1, #255
8494   orrne r3, r8, r3
8495   strne r3, [r7, #12]
8496   mov r3, r1, lsr #8
8497   streq r0, [r7, #12]
8498   ands  r3, r3, #255
8499   orrne r3, r8, r3
8500   strne r3, [r7, #8]
8501   mov r3, r1, lsr #16
8502   streq r0, [r7, #8]
8503   ands  r3, r3, #255
8504   orrne r3, r8, r3
8505   strne r3, [r7, #4]
8506   streq r0, [r7, #4]
8507   movs  r3, r1, lsr #24
8508   orrne r3, r8, r3
8509   strne r3, [r7, #0]
8510   streq r0, [r7, #0]
8511   subs  lr, lr, #4
8512   ldr r2, [r2, #0]
8513   addne r7, r7, #16
8514   bne .L3046
8515   b .L3345
8516 .L3385:
8517   ldr r1, [r2, #4]
8518   ands  r3, r1, #255
8519   orrne r3, r8, r3
8520   strne r3, [r7, #12]
8521   mov r3, r1, lsr #8
8522   streq r0, [r7, #12]
8523   ands  r3, r3, #255
8524   orrne r3, r8, r3
8525   strne r3, [r7, #8]
8526   mov r3, r1, lsr #16
8527   streq r0, [r7, #8]
8528   ands  r3, r3, #255
8529   orrne r3, r8, r3
8530   strne r3, [r7, #4]
8531   streq r0, [r7, #4]
8532   movs  r3, r1, lsr #24
8533   orrne r3, r8, r3
8534   strne r3, [r7, #0]
8535   streq r0, [r7, #0]
8536   subs  lr, lr, #4
8537   ldr r2, [r2, #0]
8538   addne r7, r7, #16
8539   bne .L2821
8540   b .L3345
8541 .L3393:
8542   ldr r1, [r2, #0]
8543   ands  r3, r1, #255
8544   orrne r3, r8, r3
8545   strne r3, [r7, #0]
8546   mov r3, r1, lsr #8
8547   streq r0, [r7, #0]
8548   ands  r3, r3, #255
8549   orrne r3, r8, r3
8550   strne r3, [r7, #4]
8551   mov r3, r1, lsr #16
8552   streq r0, [r7, #4]
8553   ands  r3, r3, #255
8554   orrne r3, r8, r3
8555   strne r3, [r7, #8]
8556   streq r0, [r7, #8]
8557   movs  r3, r1, lsr #24
8558   orrne r3, r8, r3
8559   strne r3, [r7, #12]
8560   streq r0, [r7, #12]
8561   subs  lr, lr, #4
8562   ldr r2, [r2, #4]
8563   addne r7, r7, #16
8564   bne .L2842
8565   b .L3345
8566 .L3389:
8567   cmp r6, #0
8568   ldr r1, [sl, #0]
8569   beq .L2857
8570   mov r3, lr, asl #3
8571   sub r3, r3, #32
8572   mov r1, r1, asl r3
8573   mov lr, r7
8574   mov r5, #0
8575 .L2859:
8576   movs  r3, r1, lsr #24
8577   orr r3, r8, r3
8578   add r5, r5, #1
8579   strne r3, [lr, #0]
8580   streq r0, [lr, #0]
8581   cmp r6, r5
8582   mov r1, r1, asl #8
8583   add lr, lr, #4
8584   bne .L2859
8585   add r7, r7, r6, asl #2
8586 .L3397:
8587   add fp, fp, #2
8588   b .L2850
8589 .L3388:
8590   ldr r4, [sp, #12]
8591   ldr ip, [ip, #0]
8592   cmp r4, #0
8593   beq .L3345
8594   mov r3, r1, asl #2
8595   mov r1, ip, asl r3
8596   mov ip, #0
8597 .L3084:
8598   movs  r3, r1, lsr #28
8599   orr r3, r8, r3
8600   orr r3, r2, r3
8601   strne r3, [r7, #0]
8602   ldr r3, [sp, #12]
8603   add ip, ip, #1
8604   streq r0, [r7, #0]
8605   cmp r3, ip
8606   mov r1, r1, asl #4
8607   add r7, r7, #4
8608   bne .L3084
8609   b .L3345
8610 .L3396:
8611   cmp lr, #3
8612   bls .L2687
8613   cmp r4, #0
8614   ldr r1, [ip, #0]
8615   beq .L2689
8616   mov r3, lr, asl #3
8617   sub r3, r3, #32
8618   mov r1, r1, asl r3
8619   mov lr, r7
8620   mov r5, #0
8621 .L2691:
8622   movs  r3, r1, lsr #24
8623   orr r3, r8, r3
8624   add r5, r5, #1
8625   strne r3, [lr, #0]
8626   streq r0, [lr, #0]
8627   cmp r4, r5
8628   mov r1, r1, asl #8
8629   add lr, lr, #4
8630   bne .L2691
8631   b .L3347
8632 .L3394:
8633   cmp r5, #0
8634   ldr r2, [r3, #0]
8635   beq .L3099
8636   mov r3, r1, asl #2
8637   mov r1, r2, asl r3
8638   mov lr, #0
8639   mov r2, r7
8640 .L3101:
8641   movs  r3, r1, lsr #28
8642   orr r3, r8, r3
8643   orr r3, r4, r3
8644   add lr, lr, #1
8645   strne r3, [r2, #0]
8646   streq r0, [r2, #0]
8647   cmp r5, lr
8648   mov r1, r1, asl #4
8649   add r2, r2, #4
8650   bne .L3101
8651   b .L3360
8652 .L3390:
8653   cmp lr, #3
8654   bls .L2622
8655   ldr r1, [sp, #12]
8656   ldr r2, [ip, #0]
8657   cmp r1, #0
8658   beq .L3345
8659   mov r3, lr, asl #3
8660   sub r3, r3, #32
8661   mov r1, r2, asl r3
8662   mov r2, #0
8663 .L2626:
8664   movs  r3, r1, lsr #24
8665   orr r3, r8, r3
8666   strne r3, [r7, #0]
8667   ldr r3, [sp, #12]
8668   add r2, r2, #1
8669   streq r0, [r7, #0]
8670   cmp r3, r2
8671   mov r1, r1, asl #8
8672   add r7, r7, #4
8673   bne .L2626
8674   b .L3345
8675 .L3395:
8676   cmp r6, #0
8677   ldr r1, [sl, #4]
8678   beq .L2857
8679   mov r3, lr, asl #3
8680   sub r3, r3, #32
8681   mov r1, r1, lsr r3
8682   mov lr, r7
8683 .L2888:
8684   ands  r3, r1, #255
8685   orr r3, r8, r3
8686   add r5, r5, #1
8687   strne r3, [lr, #0]
8688   streq r0, [lr, #0]
8689   cmp r6, r5
8690   mov r1, r1, lsr #8
8691   add lr, lr, #4
8692   bne .L2888
8693   add r7, r7, r6, asl #2
8694   b .L3397
8695 .L2622:
8696   ldr r4, [sp, #12]
8697   mov r3, lr, asl #3
8698   ldr r1, [ip, #4]
8699   add r2, r4, lr
8700   sub r3, r3, #32
8701   cmp r2, #4
8702   mov r1, r1, asl r3
8703   bhi .L2631
8704   cmp r4, #0
8705   movne r2, #0
8706   beq .L3345
8707 .L2648:
8708   movs  r3, r1, lsr #24
8709   orr r3, r8, r3
8710   strne r3, [r7, #0]
8711   ldr r3, [sp, #12]
8712   add r2, r2, #1
8713   streq r0, [r7, #0]
8714   cmp r3, r2
8715   mov r1, r1, asl #8
8716   add r7, r7, #4
8717   bne .L2648
8718   b .L3345
8719 .L2687:
8720   subs  r6, r4, #4
8721   ldr r1, [ip, #4]
8722   beq .L2697
8723   mov r3, lr, asl #3
8724   sub r3, r3, #32
8725   mov r1, r1, asl r3
8726   mov lr, r7
8727   mov r5, #0
8728 .L2699:
8729   movs  r3, r1, lsr #24
8730   orr r3, r8, r3
8731   add r5, r5, #1
8732   strne r3, [lr, #0]
8733   streq r0, [lr, #0]
8734   cmp r6, r5
8735   mov r1, r1, asl #8
8736   add lr, lr, #4
8737   bne .L2699
8738   add r3, r7, r4, asl #2
8739   sub r7, r3, #16
8740 .L2697:
8741   ldr r1, [ip, #0]
8742   ands  r3, r1, #255
8743   orrne r3, r8, r3
8744   strne r3, [r7, #12]
8745   mov r3, r1, lsr #8
8746   streq r0, [r7, #12]
8747   ands  r3, r3, #255
8748   orrne r3, r8, r3
8749   strne r3, [r7, #8]
8750   mov r3, r1, lsr #16
8751   streq r0, [r7, #8]
8752   ands  r3, r3, #255
8753   orrne r3, r8, r3
8754   strne r3, [r7, #4]
8755   streq r0, [r7, #4]
8756   movs  r3, r1, lsr #24
8757   orrne r3, r8, r3
8758   strne r3, [r7, #0]
8759   streq r0, [r7, #0]
8760 .L2745:
8761   add r7, r7, #16
8762   b .L2689
8763 .L2653:
8764   ldr r4, [sp, #12]
8765   ldr r3, [ip, #0]
8766   add r2, r4, lr
8767   cmp r2, #4
8768   mov r1, lr, asl #3
8769   mov r2, r3, lsr r1
8770   bhi .L2661
8771   cmp r4, #0
8772   movne r1, #0
8773   beq .L3345
8774 .L2678:
8775   ands  r3, r2, #255
8776   orr r3, r8, r3
8777   strne r3, [r7, #0]
8778   ldr r3, [sp, #12]
8779   add r1, r1, #1
8780   streq r0, [r7, #0]
8781   cmp r3, r1
8782   mov r2, r2, lsr #8
8783   add r7, r7, #4
8784   bne .L2678
8785   b .L3345
8786 .L2717:
8787   subs  r6, r4, #4
8788   ldr r1, [ip, #0]
8789   beq .L2726
8790   mov r3, lr, asl #3
8791   mov r1, r1, lsr r3
8792   mov lr, r7
8793   mov r5, #0
8794 .L2728:
8795   ands  r3, r1, #255
8796   orr r3, r8, r3
8797   add r5, r5, #1
8798   strne r3, [lr, #0]
8799   streq r0, [lr, #0]
8800   cmp r6, r5
8801   mov r1, r1, lsr #8
8802   add lr, lr, #4
8803   bne .L2728
8804   add r3, r7, r4, asl #2
8805   sub r7, r3, #16
8806 .L2726:
8807   ldr r1, [ip, #4]
8808   ands  r3, r1, #255
8809   orrne r3, r8, r3
8810   strne r3, [r7, #0]
8811   mov r3, r1, lsr #8
8812   streq r0, [r7, #0]
8813   ands  r3, r3, #255
8814   orrne r3, r8, r3
8815   strne r3, [r7, #4]
8816   mov r3, r1, lsr #16
8817   streq r0, [r7, #4]
8818   ands  r3, r3, #255
8819   orrne r3, r8, r3
8820   strne r3, [r7, #8]
8821   streq r0, [r7, #8]
8822   movs  r3, r1, lsr #24
8823   orrne r3, r8, r3
8824   strne r3, [r7, #12]
8825   bne .L2745
8826   str r0, [r7, #12]
8827   add r7, r7, #16
8828   b .L2689
8829 .L2631:
8830   rsbs  r4, lr, #4
8831   beq .L2634
8832   mov r2, r7
8833   mov lr, #0
8834 .L2636:
8835   movs  r3, r1, lsr #24
8836   orr r3, r8, r3
8837   add lr, lr, #1
8838   strne r3, [r2, #0]
8839   streq r0, [r2, #0]
8840   cmp r4, lr
8841   mov r1, r1, asl #8
8842   add r2, r2, #4
8843   bne .L2636
8844   add r7, r7, r4, asl #2
8845 .L2634:
8846   ldr r1, [sp, #12]
8847   ldr r2, [ip, #0]
8848   subs  lr, r1, r4
8849   beq .L3345
8850   mov r1, #0
8851 .L2643:
8852   movs  r3, r2, lsr #24
8853   orr r3, r8, r3
8854   add r1, r1, #1
8855   strne r3, [r7, #0]
8856   streq r0, [r7, #0]
8857   cmp lr, r1
8858   mov r2, r2, asl #8
8859   add r7, r7, #4
8860   bne .L2643
8861   b .L3345
8862 .L2661:
8863   rsbs  r4, lr, #4
8864   beq .L2664
8865   mov r1, r7
8866   mov lr, #0
8867 .L2666:
8868   ands  r3, r2, #255
8869   orr r3, r8, r3
8870   add lr, lr, #1
8871   strne r3, [r1, #0]
8872   streq r0, [r1, #0]
8873   cmp r4, lr
8874   mov r2, r2, lsr #8
8875   add r1, r1, #4
8876   bne .L2666
8877   add r7, r7, r4, asl #2
8878 .L2664:
8879   ldr r1, [sp, #12]
8880   ldr r2, [ip, #4]
8881   subs  lr, r1, r4
8882   beq .L3345
8883   mov r1, #0
8884 .L2673:
8885   ands  r3, r2, #255
8886   orr r3, r8, r3
8887   add r1, r1, #1
8888   strne r3, [r7, #0]
8889   streq r0, [r7, #0]
8890   cmp lr, r1
8891   mov r2, r2, lsr #8
8892   add r7, r7, #4
8893   bne .L2673
8894   b .L3345
8895   .size render_scanline_text_base_color32, .-render_scanline_text_base_color32
8896   .align  2
8897   .global render_scanline_text_transparent_color32
8898   .type render_scanline_text_transparent_color32, %function
8899 render_scanline_text_transparent_color32:
8900   @ args = 0, pretend = 0, frame = 4
8901   @ frame_needed = 0, uses_anonymous_args = 0
8902   ldr ip, .L4043
8903   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
8904   ldrh  lr, [ip, #80]
8905   add r6, r0, #7
8906   mov r6, lr, asr r6
8907   mov lr, lr, asr r0
8908   add r7, ip, r0, asl #2
8909   ldrh  r5, [ip, #6]
8910   ldrh  r4, [r7, #18]
8911   add ip, ip, r0, asl #1
8912   add sl, r5, r4
8913   ldrh  r8, [ip, #8]
8914   mov r5, sl, asl #23
8915   mov r5, r5, lsr #23
8916   ldrh  r4, [r7, #16]
8917   cmp r5, #255
8918   movls ip, #0
8919   movhi ip, #1
8920   mov r7, r8, lsr #14
8921   rsb fp, r1, r2
8922   ldr r2, .L4043+4
8923   ands  ip, ip, r7, lsr #1
8924   ldr r2, [r2, r7, asl #2]
8925   add ip, r3, r1, asl #2
8926   mov r0, r8, asl #3
8927   subne r3, r5, #256
8928   ldr r9, .L4043+8
8929   movne r3, r3, lsr #3
8930   moveq r3, sl, asl #3
8931   add r4, r4, r1
8932   and r0, r0, #63488
8933   add r0, r0, r9
8934   addne r3, r3, r2, lsr #3
8935   andeq r3, r3, #1984
8936   mov r4, r4, asl #23
8937   addne r0, r0, r3, asl #6
8938   addeq r0, r0, r3
8939   mov r4, r4, lsr #23
8940   tst r7, #1
8941   and lr, lr, #1
8942   and r6, r6, #2
8943   andeq r4, r4, #255
8944   sub sp, sp, #4
8945   orr lr, lr, r6
8946   moveq r3, r4, lsr #3
8947   mov lr, lr, asl #9
8948   addeq r7, r0, r3, asl #1
8949   streq r0, [sp, #0]
8950   beq .L3408
8951   cmp r4, #255
8952   subhi r4, r4, #256
8953   movhi r3, r4, lsr #3
8954   movls r3, r4, lsr #3
8955   addhi r3, r0, r3, asl #1
8956   addls r7, r0, r3, asl #1
8957   addls r0, r0, #2048
8958   addhi r7, r3, #2048
8959   strhi r0, [sp, #0]
8960   strls r0, [sp, #0]
8961 .L3408:
8962   tst r8, #128
8963   beq .L3409
8964   and r1, r4, #255
8965   and r3, r5, #7
8966   mov r2, r8, asl #12
8967   mov r3, r3, asl #3
8968   and r2, r2, #49152
8969   rsb r0, r1, #256
8970   add r2, r2, r3
8971   cmp fp, r0
8972   mov r3, r3, asl #1
8973   add r2, r2, r9
8974   and r4, r4, #7
8975   rsb r9, r3, #56
8976   bls .L4018
8977   cmp r4, #0
8978   moveq r6, r4
8979   bne .L4019
8980 .L3611:
8981   rsb r3, r6, r0
8982   movs  sl, r3, lsr #3
8983   beq .L3665
8984   mov r6, ip
8985   mov r8, #0
8986   b .L3667
8987 .L4020:
8988   ldr r1, [r4, #4]
8989   cmp r1, #0
8990   beq .L3672
8991   ands  r3, r1, #255
8992   orrne r3, lr, r3
8993   strne r3, [r6, #12]
8994   mov r3, r1, lsr #8
8995   ands  r3, r3, #255
8996   orrne r3, lr, r3
8997   strne r3, [r6, #8]
8998   mov r3, r1, lsr #16
8999   ands  r3, r3, #255
9000   orrne r3, lr, r3
9001   strne r3, [r6, #4]
9002   movs  r3, r1, lsr #24
9003   orrne r3, lr, r3
9004   strne r3, [r6, #0]
9005 .L3672:
9006   ldr r1, [r4, #0]
9007   cmp r1, #0
9008   beq .L3681
9009   ands  r3, r1, #255
9010   orrne r3, lr, r3
9011   strne r3, [r6, #28]
9012   mov r3, r1, lsr #8
9013   ands  r3, r3, #255
9014   orrne r3, lr, r3
9015   strne r3, [r6, #24]
9016   mov r3, r1, lsr #16
9017   ands  r3, r3, #255
9018   orrne r3, lr, r3
9019   strne r3, [r6, #20]
9020   movs  r3, r1, lsr #24
9021   orrne r3, lr, r3
9022   strne r3, [r6, #16]
9023 .L3681:
9024   add r8, r8, #1
9025   cmp sl, r8
9026   add r6, r6, #32
9027   beq .L3707
9028 .L4021:
9029   add r7, r7, #2
9030 .L3667:
9031   ldrh  r1, [r7, #0]
9032   mov r3, r1, asl #22
9033   mov r3, r3, lsr #22
9034   tst r1, #2048
9035   add r4, r2, r3, asl #6
9036   addne r4, r4, r9
9037   tst r1, #1024
9038   bne .L4020
9039   ldr r1, [r4, #0]
9040   cmp r1, #0
9041   beq .L3690
9042   ands  r3, r1, #255
9043   orrne r3, lr, r3
9044   strne r3, [r6, #0]
9045   mov r3, r1, lsr #8
9046   ands  r3, r3, #255
9047   orrne r3, lr, r3
9048   strne r3, [r6, #4]
9049   mov r3, r1, lsr #16
9050   ands  r3, r3, #255
9051   orrne r3, lr, r3
9052   strne r3, [r6, #8]
9053   movs  r3, r1, lsr #24
9054   orrne r3, lr, r3
9055   strne r3, [r6, #12]
9056 .L3690:
9057   ldr r1, [r4, #4]
9058   cmp r1, #0
9059   beq .L3681
9060   ands  r3, r1, #255
9061   orrne r3, lr, r3
9062   strne r3, [r6, #16]
9063   mov r3, r1, lsr #8
9064   ands  r3, r3, #255
9065   orrne r3, lr, r3
9066   strne r3, [r6, #20]
9067   mov r3, r1, lsr #16
9068   ands  r3, r3, #255
9069   orrne r3, lr, r3
9070   strne r3, [r6, #24]
9071   movs  r3, r1, lsr #24
9072   orrne r3, lr, r3
9073   add r8, r8, #1
9074   strne r3, [r6, #28]
9075   cmp sl, r8
9076   add r6, r6, #32
9077   bne .L4021
9078 .L3707:
9079   add ip, ip, sl, asl #5
9080 .L3665:
9081   rsb sl, r0, fp
9082   movs  r0, sl, lsr #3
9083   ldreq r0, [sp, #0]
9084   beq .L3711
9085   ldr r7, [sp, #0]
9086   mov r6, ip
9087   mov r8, #0
9088   b .L3712
9089 .L4023:
9090   ldr r1, [r4, #4]
9091   cmp r1, #0
9092   beq .L3717
9093   ands  r3, r1, #255
9094   orrne r3, lr, r3
9095   strne r3, [r6, #12]
9096   mov r3, r1, lsr #8
9097   ands  r3, r3, #255
9098   orrne r3, lr, r3
9099   strne r3, [r6, #8]
9100   mov r3, r1, lsr #16
9101   ands  r3, r3, #255
9102   orrne r3, lr, r3
9103   strne r3, [r6, #4]
9104   movs  r3, r1, lsr #24
9105   orrne r3, lr, r3
9106   strne r3, [r6, #0]
9107 .L3717:
9108   ldr r1, [r4, #0]
9109   cmp r1, #0
9110   beq .L3726
9111   ands  r3, r1, #255
9112   orrne r3, lr, r3
9113   strne r3, [r6, #28]
9114   mov r3, r1, lsr #8
9115   ands  r3, r3, #255
9116   orrne r3, lr, r3
9117   strne r3, [r6, #24]
9118   mov r3, r1, lsr #16
9119   ands  r3, r3, #255
9120   orrne r3, lr, r3
9121   strne r3, [r6, #20]
9122   movs  r3, r1, lsr #24
9123   orrne r3, lr, r3
9124   strne r3, [r6, #16]
9125 .L3726:
9126   add r8, r8, #1
9127   cmp r0, r8
9128   add r6, r6, #32
9129   add r7, r7, #2
9130   beq .L4022
9131 .L3712:
9132   ldrh  r1, [r7, #0]
9133   mov r3, r1, asl #22
9134   mov r3, r3, lsr #22
9135   tst r1, #2048
9136   add r4, r2, r3, asl #6
9137   addne r4, r4, r9
9138   tst r1, #1024
9139   bne .L4023
9140   ldr r1, [r4, #0]
9141   cmp r1, #0
9142   beq .L3735
9143   ands  r3, r1, #255
9144   orrne r3, lr, r3
9145   strne r3, [r6, #0]
9146   mov r3, r1, lsr #8
9147   ands  r3, r3, #255
9148   orrne r3, lr, r3
9149   strne r3, [r6, #4]
9150   mov r3, r1, lsr #16
9151   ands  r3, r3, #255
9152   orrne r3, lr, r3
9153   strne r3, [r6, #8]
9154   movs  r3, r1, lsr #24
9155   orrne r3, lr, r3
9156   strne r3, [r6, #12]
9157 .L3735:
9158   ldr r1, [r4, #4]
9159   cmp r1, #0
9160   beq .L3726
9161   ands  r3, r1, #255
9162   orrne r3, lr, r3
9163   strne r3, [r6, #16]
9164   mov r3, r1, lsr #8
9165   ands  r3, r3, #255
9166   orrne r3, lr, r3
9167   strne r3, [r6, #20]
9168   mov r3, r1, lsr #16
9169   ands  r3, r3, #255
9170   orrne r3, lr, r3
9171   strne r3, [r6, #24]
9172   movs  r3, r1, lsr #24
9173   orrne r3, lr, r3
9174   add r8, r8, #1
9175   strne r3, [r6, #28]
9176   cmp r0, r8
9177   add r6, r6, #32
9178   add r7, r7, #2
9179   bne .L3712
9180 .L4022:
9181   ldr r3, [sp, #0]
9182   add ip, ip, r0, asl #5
9183   add r0, r3, r0, asl #1
9184 .L3711:
9185   ands  r4, sl, #7
9186   beq .L4000
9187   ldrh  r0, [r0, #0]
9188   mov r3, r0, asl #22
9189   mov r3, r3, lsr #22
9190   tst r0, #2048
9191   add r2, r2, r3, asl #6
9192   addne r2, r2, r9
9193   tst r0, #1024
9194   beq .L3756
9195   cmp r4, #3
9196   ldrls r0, [r2, #4]
9197   bls .L3770
9198   ldr r1, [r2, #4]
9199   cmp r1, #0
9200   beq .L3760
9201   ands  r3, r1, #255
9202   orrne r3, lr, r3
9203   strne r3, [ip, #12]
9204   mov r3, r1, lsr #8
9205   ands  r3, r3, #255
9206   orrne r3, lr, r3
9207   strne r3, [ip, #8]
9208   mov r3, r1, lsr #16
9209   ands  r3, r3, #255
9210   orrne r3, lr, r3
9211   strne r3, [ip, #4]
9212   movs  r3, r1, lsr #24
9213   orrne r3, lr, r3
9214   strne r3, [ip, #0]
9215 .L3760:
9216   subs  r4, r4, #4
9217   ldr r0, [r2, #0]
9218   addne ip, ip, #16
9219   beq .L4000
9220 .L3770:
9221   mov r1, #0
9222 .L3771:
9223   movs  r3, r0, lsr #24
9224   orr r3, lr, r3
9225   strne r3, [ip, r1, asl #2]
9226   add r1, r1, #1
9227   cmp r1, r4
9228   mov r0, r0, asl #8
9229   bcc .L3771
9230 .L4000:
9231   add sp, sp, #4
9232   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
9233 .L3409:
9234   and r3, r5, #7
9235   and r1, r4, #255
9236   mov r2, r8, asl #12
9237   mov r3, r3, asl #2
9238   rsb r5, r1, #256
9239   and r2, r2, #49152
9240   add r2, r2, r3
9241   cmp fp, r5
9242   mov r3, r3, asl #1
9243   add sl, r2, r9
9244   and r1, r4, #7
9245   rsb r9, r3, #28
9246   bls .L4024
9247   cmp r1, #0
9248   moveq r4, r1
9249   bne .L4025
9250 .L3885:
9251   rsb r3, r4, r5
9252   movs  r0, r3, lsr #3
9253   beq .L3903
9254   mov r4, ip
9255   mov r8, #0
9256   b .L3905
9257 .L4026:
9258   ldr r2, [r3, #0]
9259   cmp r2, #0
9260   beq .L3910
9261   ands  r3, r2, #15
9262   orrne r3, lr, r3
9263   orrne r3, r6, r3
9264   strne r3, [r4, #28]
9265   mov r3, r2, lsr #4
9266   ands  r3, r3, #15
9267   orrne r3, lr, r3
9268   orrne r3, r6, r3
9269   strne r3, [r4, #24]
9270   mov r3, r2, lsr #8
9271   ands  r3, r3, #15
9272   orrne r3, lr, r3
9273   orrne r3, r6, r3
9274   strne r3, [r4, #20]
9275   mov r3, r2, lsr #12
9276   ands  r3, r3, #15
9277   orrne r3, lr, r3
9278   orrne r3, r6, r3
9279   strne r3, [r4, #16]
9280   mov r3, r2, lsr #16
9281   ands  r3, r3, #15
9282   orrne r3, lr, r3
9283   orrne r3, r6, r3
9284   strne r3, [r4, #12]
9285   mov r3, r2, lsr #20
9286   ands  r3, r3, #15
9287   orrne r3, lr, r3
9288   orrne r3, r6, r3
9289   strne r3, [r4, #8]
9290   mov r3, r2, lsr #24
9291   ands  r3, r3, #15
9292   orrne r3, lr, r3
9293   orrne r3, r6, r3
9294   strne r3, [r4, #4]
9295   movs  r3, r2, lsr #28
9296   orrne r3, lr, r3
9297   orrne r3, r6, r3
9298   strne r3, [r4, #0]
9299 .L3910:
9300   add r8, r8, #1
9301   cmp r0, r8
9302   add r4, r4, #32
9303   beq .L3943
9304 .L4027:
9305   add r7, r7, #2
9306 .L3905:
9307   ldrh  r1, [r7, #0]
9308   mov r2, r1, asl #22
9309   mov r3, r1, lsr #12
9310   mov r2, r2, lsr #22
9311   tst r1, #2048
9312   mov r6, r3, asl #4
9313   add r3, sl, r2, asl #5
9314   addne r3, r3, r9
9315   tst r1, #1024
9316   bne .L4026
9317   ldr r2, [r3, #0]
9318   cmp r2, #0
9319   beq .L3910
9320   ands  r3, r2, #15
9321   orrne r3, lr, r3
9322   orrne r3, r6, r3
9323   strne r3, [r4, #0]
9324   mov r3, r2, lsr #4
9325   ands  r3, r3, #15
9326   orrne r3, lr, r3
9327   orrne r3, r6, r3
9328   strne r3, [r4, #4]
9329   mov r3, r2, lsr #8
9330   ands  r3, r3, #15
9331   orrne r3, lr, r3
9332   orrne r3, r6, r3
9333   strne r3, [r4, #8]
9334   mov r3, r2, lsr #12
9335   ands  r3, r3, #15
9336   orrne r3, lr, r3
9337   orrne r3, r6, r3
9338   strne r3, [r4, #12]
9339   mov r3, r2, lsr #16
9340   ands  r3, r3, #15
9341   orrne r3, lr, r3
9342   orrne r3, r6, r3
9343   strne r3, [r4, #16]
9344   mov r3, r2, lsr #20
9345   ands  r3, r3, #15
9346   orrne r3, lr, r3
9347   orrne r3, r6, r3
9348   strne r3, [r4, #20]
9349   mov r3, r2, lsr #24
9350   ands  r3, r3, #15
9351   orrne r3, lr, r3
9352   orrne r3, r6, r3
9353   strne r3, [r4, #24]
9354   movs  r3, r2, lsr #28
9355   orrne r3, lr, r3
9356   orrne r3, r6, r3
9357   add r8, r8, #1
9358   strne r3, [r4, #28]
9359   cmp r0, r8
9360   add r4, r4, #32
9361   bne .L4027
9362 .L3943:
9363   add ip, ip, r0, asl #5
9364 .L3903:
9365   rsb fp, r5, fp
9366   movs  r0, fp, lsr #3
9367   ldreq r0, [sp, #0]
9368   beq .L3947
9369   ldr r7, [sp, #0]
9370   mov r4, ip
9371   mov r8, #0
9372   b .L3948
9373 .L4029:
9374   ldr r2, [r3, #0]
9375   cmp r2, #0
9376   beq .L3953
9377   ands  r3, r2, #15
9378   orrne r3, lr, r3
9379   orrne r3, r6, r3
9380   strne r3, [r4, #28]
9381   mov r3, r2, lsr #4
9382   ands  r3, r3, #15
9383   orrne r3, lr, r3
9384   orrne r3, r6, r3
9385   strne r3, [r4, #24]
9386   mov r3, r2, lsr #8
9387   ands  r3, r3, #15
9388   orrne r3, lr, r3
9389   orrne r3, r6, r3
9390   strne r3, [r4, #20]
9391   mov r3, r2, lsr #12
9392   ands  r3, r3, #15
9393   orrne r3, lr, r3
9394   orrne r3, r6, r3
9395   strne r3, [r4, #16]
9396   mov r3, r2, lsr #16
9397   ands  r3, r3, #15
9398   orrne r3, lr, r3
9399   orrne r3, r6, r3
9400   strne r3, [r4, #12]
9401   mov r3, r2, lsr #20
9402   ands  r3, r3, #15
9403   orrne r3, lr, r3
9404   orrne r3, r6, r3
9405   strne r3, [r4, #8]
9406   mov r3, r2, lsr #24
9407   ands  r3, r3, #15
9408   orrne r3, lr, r3
9409   orrne r3, r6, r3
9410   strne r3, [r4, #4]
9411   movs  r3, r2, lsr #28
9412   orrne r3, lr, r3
9413   orrne r3, r6, r3
9414   strne r3, [r4, #0]
9415 .L3953:
9416   add r8, r8, #1
9417   cmp r0, r8
9418   add r4, r4, #32
9419   add r7, r7, #2
9420   beq .L4028
9421 .L3948:
9422   ldrh  r1, [r7, #0]
9423   mov r2, r1, asl #22
9424   mov r3, r1, lsr #12
9425   mov r2, r2, lsr #22
9426   tst r1, #2048
9427   mov r6, r3, asl #4
9428   add r3, sl, r2, asl #5
9429   addne r3, r3, r9
9430   tst r1, #1024
9431   bne .L4029
9432   ldr r2, [r3, #0]
9433   cmp r2, #0
9434   beq .L3953
9435   ands  r3, r2, #15
9436   orrne r3, lr, r3
9437   orrne r3, r6, r3
9438   strne r3, [r4, #0]
9439   mov r3, r2, lsr #4
9440   ands  r3, r3, #15
9441   orrne r3, lr, r3
9442   orrne r3, r6, r3
9443   strne r3, [r4, #4]
9444   mov r3, r2, lsr #8
9445   ands  r3, r3, #15
9446   orrne r3, lr, r3
9447   orrne r3, r6, r3
9448   strne r3, [r4, #8]
9449   mov r3, r2, lsr #12
9450   ands  r3, r3, #15
9451   orrne r3, lr, r3
9452   orrne r3, r6, r3
9453   strne r3, [r4, #12]
9454   mov r3, r2, lsr #16
9455   ands  r3, r3, #15
9456   orrne r3, lr, r3
9457   orrne r3, r6, r3
9458   strne r3, [r4, #16]
9459   mov r3, r2, lsr #20
9460   ands  r3, r3, #15
9461   orrne r3, lr, r3
9462   orrne r3, r6, r3
9463   strne r3, [r4, #20]
9464   mov r3, r2, lsr #24
9465   ands  r3, r3, #15
9466   orrne r3, lr, r3
9467   orrne r3, r6, r3
9468   strne r3, [r4, #24]
9469   movs  r3, r2, lsr #28
9470   orrne r3, lr, r3
9471   orrne r3, r6, r3
9472   add r8, r8, #1
9473   strne r3, [r4, #28]
9474   cmp r0, r8
9475   add r4, r4, #32
9476   add r7, r7, #2
9477   bne .L3948
9478 .L4028:
9479   ldr r3, [sp, #0]
9480   add ip, ip, r0, asl #5
9481   add r0, r3, r0, asl #1
9482 .L3947:
9483   ands  r4, fp, #7
9484   beq .L4000
9485   ldrh  r0, [r0, #0]
9486   mov r3, r0, asl #22
9487   mov r3, r3, lsr #22
9488   tst r0, #2048
9489   add r3, sl, r3, asl #5
9490   mov r2, r0, lsr #12
9491   addne r3, r3, r9
9492   tst r0, #1024
9493   mov r2, r2, asl #4
9494   ldreq r0, [r3, #0]
9495   moveq r1, #0
9496   beq .L3996
9497   ldr r0, [r3, #0]
9498   mov r1, #0
9499 .L3992:
9500   movs  r3, r0, lsr #28
9501   orr r3, lr, r3
9502   orr r3, r2, r3
9503   strne r3, [ip, r1, asl #2]
9504   add r1, r1, #1
9505   cmp r4, r1
9506   mov r0, r0, asl #4
9507   bne .L3992
9508   b .L4000
9509 .L4024:
9510   cmp r1, #0
9511   bne .L4030
9512 .L3794:
9513   movs  r0, fp, lsr #3
9514   beq .L3829
9515   mov r4, ip
9516   mov r6, r7
9517   mov r8, #0
9518   b .L3831
9519 .L4032:
9520   ldr r2, [r3, #0]
9521   cmp r2, #0
9522   beq .L3836
9523   ands  r3, r2, #15
9524   orrne r3, lr, r3
9525   orrne r3, r5, r3
9526   strne r3, [r4, #28]
9527   mov r3, r2, lsr #4
9528   ands  r3, r3, #15
9529   orrne r3, lr, r3
9530   orrne r3, r5, r3
9531   strne r3, [r4, #24]
9532   mov r3, r2, lsr #8
9533   ands  r3, r3, #15
9534   orrne r3, lr, r3
9535   orrne r3, r5, r3
9536   strne r3, [r4, #20]
9537   mov r3, r2, lsr #12
9538   ands  r3, r3, #15
9539   orrne r3, lr, r3
9540   orrne r3, r5, r3
9541   strne r3, [r4, #16]
9542   mov r3, r2, lsr #16
9543   ands  r3, r3, #15
9544   orrne r3, lr, r3
9545   orrne r3, r5, r3
9546   strne r3, [r4, #12]
9547   mov r3, r2, lsr #20
9548   ands  r3, r3, #15
9549   orrne r3, lr, r3
9550   orrne r3, r5, r3
9551   strne r3, [r4, #8]
9552   mov r3, r2, lsr #24
9553   ands  r3, r3, #15
9554   orrne r3, lr, r3
9555   orrne r3, r5, r3
9556   strne r3, [r4, #4]
9557   movs  r3, r2, lsr #28
9558   orrne r3, lr, r3
9559   orrne r3, r5, r3
9560   strne r3, [r4, #0]
9561 .L3836:
9562   add r8, r8, #1
9563   cmp r0, r8
9564   add r4, r4, #32
9565   add r6, r6, #2
9566   beq .L4031
9567 .L3831:
9568   ldrh  r1, [r6, #0]
9569   mov r2, r1, asl #22
9570   mov r3, r1, lsr #12
9571   mov r2, r2, lsr #22
9572   tst r1, #2048
9573   mov r5, r3, asl #4
9574   add r3, sl, r2, asl #5
9575   addne r3, r3, r9
9576   tst r1, #1024
9577   bne .L4032
9578   ldr r2, [r3, #0]
9579   cmp r2, #0
9580   beq .L3836
9581   ands  r3, r2, #15
9582   orrne r3, lr, r3
9583   orrne r3, r5, r3
9584   strne r3, [r4, #0]
9585   mov r3, r2, lsr #4
9586   ands  r3, r3, #15
9587   orrne r3, lr, r3
9588   orrne r3, r5, r3
9589   strne r3, [r4, #4]
9590   mov r3, r2, lsr #8
9591   ands  r3, r3, #15
9592   orrne r3, lr, r3
9593   orrne r3, r5, r3
9594   strne r3, [r4, #8]
9595   mov r3, r2, lsr #12
9596   ands  r3, r3, #15
9597   orrne r3, lr, r3
9598   orrne r3, r5, r3
9599   strne r3, [r4, #12]
9600   mov r3, r2, lsr #16
9601   ands  r3, r3, #15
9602   orrne r3, lr, r3
9603   orrne r3, r5, r3
9604   strne r3, [r4, #16]
9605   mov r3, r2, lsr #20
9606   ands  r3, r3, #15
9607   orrne r3, lr, r3
9608   orrne r3, r5, r3
9609   strne r3, [r4, #20]
9610   mov r3, r2, lsr #24
9611   ands  r3, r3, #15
9612   orrne r3, lr, r3
9613   orrne r3, r5, r3
9614   strne r3, [r4, #24]
9615   movs  r3, r2, lsr #28
9616   orrne r3, lr, r3
9617   orrne r3, r5, r3
9618   add r8, r8, #1
9619   strne r3, [r4, #28]
9620   cmp r0, r8
9621   add r4, r4, #32
9622   add r6, r6, #2
9623   bne .L3831
9624 .L4031:
9625   add ip, ip, r0, asl #5
9626   add r7, r7, r0, asl #1
9627 .L3829:
9628   ands  r4, fp, #7
9629   beq .L4000
9630   ldrh  r1, [r7, #0]
9631   mov r3, r1, asl #22
9632   mov r3, r3, lsr #22
9633   tst r1, #2048
9634   add r0, sl, r3, asl #5
9635   mov r2, r1, lsr #12
9636   addne r0, r0, r9
9637   tst r1, #1024
9638   mov r2, r2, asl #4
9639   ldreq r0, [r0, #0]
9640   moveq r1, #0
9641   beq .L3879
9642   ldr r0, [r0, #0]
9643   mov r1, #0
9644 .L3875:
9645   movs  r3, r0, lsr #28
9646   orr r3, lr, r3
9647   orr r3, r2, r3
9648   strne r3, [ip, r1, asl #2]
9649   add r1, r1, #1
9650   cmp r4, r1
9651   mov r0, r0, asl #4
9652   bne .L3875
9653   b .L4000
9654 .L4018:
9655   cmp r4, #0
9656   bne .L4033
9657 .L3413:
9658   movs  sl, fp, lsr #3
9659   beq .L3527
9660   mov r5, ip
9661   mov r6, r7
9662   mov r8, #0
9663   b .L3529
9664 .L4035:
9665   ldr r1, [r4, #4]
9666   cmp r1, #0
9667   beq .L3534
9668   ands  r3, r1, #255
9669   orrne r3, lr, r3
9670   strne r3, [r5, #12]
9671   mov r3, r1, lsr #8
9672   ands  r3, r3, #255
9673   orrne r3, lr, r3
9674   strne r3, [r5, #8]
9675   mov r3, r1, lsr #16
9676   ands  r3, r3, #255
9677   orrne r3, lr, r3
9678   strne r3, [r5, #4]
9679   movs  r3, r1, lsr #24
9680   orrne r3, lr, r3
9681   strne r3, [r5, #0]
9682 .L3534:
9683   ldr r1, [r4, #0]
9684   cmp r1, #0
9685   beq .L3543
9686   ands  r3, r1, #255
9687   orrne r3, lr, r3
9688   strne r3, [r5, #28]
9689   mov r3, r1, lsr #8
9690   ands  r3, r3, #255
9691   orrne r3, lr, r3
9692   strne r3, [r5, #24]
9693   mov r3, r1, lsr #16
9694   ands  r3, r3, #255
9695   orrne r3, lr, r3
9696   strne r3, [r5, #20]
9697   movs  r3, r1, lsr #24
9698   orrne r3, lr, r3
9699   strne r3, [r5, #16]
9700 .L3543:
9701   add r8, r8, #1
9702   cmp sl, r8
9703   add r5, r5, #32
9704   add r6, r6, #2
9705   beq .L4034
9706 .L3529:
9707   ldrh  r1, [r6, #0]
9708   mov r3, r1, asl #22
9709   mov r3, r3, lsr #22
9710   tst r1, #2048
9711   add r4, r2, r3, asl #6
9712   addne r4, r4, r9
9713   tst r1, #1024
9714   bne .L4035
9715   ldr r1, [r4, #0]
9716   cmp r1, #0
9717   beq .L3552
9718   ands  r3, r1, #255
9719   orrne r3, lr, r3
9720   strne r3, [r5, #0]
9721   mov r3, r1, lsr #8
9722   ands  r3, r3, #255
9723   orrne r3, lr, r3
9724   strne r3, [r5, #4]
9725   mov r3, r1, lsr #16
9726   ands  r3, r3, #255
9727   orrne r3, lr, r3
9728   strne r3, [r5, #8]
9729   movs  r3, r1, lsr #24
9730   orrne r3, lr, r3
9731   strne r3, [r5, #12]
9732 .L3552:
9733   ldr r1, [r4, #4]
9734   cmp r1, #0
9735   beq .L3543
9736   ands  r3, r1, #255
9737   orrne r3, lr, r3
9738   strne r3, [r5, #16]
9739   mov r3, r1, lsr #8
9740   ands  r3, r3, #255
9741   orrne r3, lr, r3
9742   strne r3, [r5, #20]
9743   mov r3, r1, lsr #16
9744   ands  r3, r3, #255
9745   orrne r3, lr, r3
9746   strne r3, [r5, #24]
9747   movs  r3, r1, lsr #24
9748   orrne r3, lr, r3
9749   add r8, r8, #1
9750   strne r3, [r5, #28]
9751   cmp sl, r8
9752   add r5, r5, #32
9753   add r6, r6, #2
9754   bne .L3529
9755 .L4034:
9756   add ip, ip, sl, asl #5
9757   add r7, r7, sl, asl #1
9758 .L3527:
9759   ands  r4, fp, #7
9760   beq .L4000
9761   ldrh  r1, [r7, #0]
9762   mov r3, r1, asl #22
9763   mov r3, r3, lsr #22
9764   tst r1, #2048
9765   add r0, r2, r3, asl #6
9766   addne r0, r0, r9
9767   tst r1, #1024
9768   beq .L3573
9769   cmp r4, #3
9770   ldrls r0, [r0, #4]
9771   bls .L3587
9772   ldr r1, [r0, #4]
9773   cmp r1, #0
9774   beq .L3577
9775   ands  r3, r1, #255
9776   orrne r3, lr, r3
9777   strne r3, [ip, #12]
9778   mov r3, r1, lsr #8
9779   ands  r3, r3, #255
9780   orrne r3, lr, r3
9781   strne r3, [ip, #8]
9782   mov r3, r1, lsr #16
9783   ands  r3, r3, #255
9784   orrne r3, lr, r3
9785   strne r3, [ip, #4]
9786   movs  r3, r1, lsr #24
9787   orrne r3, lr, r3
9788   strne r3, [ip, #0]
9789 .L3577:
9790   subs  r4, r4, #4
9791   ldr r0, [r0, #0]
9792   addne ip, ip, #16
9793   beq .L4000
9794 .L3587:
9795   mov r1, #0
9796 .L3588:
9797   movs  r3, r0, lsr #24
9798   orr r3, lr, r3
9799   strne r3, [ip, r1, asl #2]
9800   add r1, r1, #1
9801   cmp r4, r1
9802   mov r0, r0, asl #8
9803   bhi .L3588
9804   b .L4000
9805 .L3996:
9806   ands  r3, r0, #15
9807   orr r3, lr, r3
9808   orr r3, r2, r3
9809   strne r3, [ip, r1, asl #2]
9810   add r1, r1, #1
9811   cmp r4, r1
9812   mov r0, r0, lsr #4
9813   beq .L4000
9814   ands  r3, r0, #15
9815   orr r3, lr, r3
9816   orr r3, r2, r3
9817   strne r3, [ip, r1, asl #2]
9818   add r1, r1, #1
9819   cmp r4, r1
9820   mov r0, r0, lsr #4
9821   bne .L3996
9822   b .L4000
9823 .L4030:
9824   rsb r5, r1, #8
9825   cmp fp, r5
9826   bcs .L3796
9827   ldrh  r4, [r7, #0]
9828   mov r3, r4, asl #22
9829   mov r3, r3, lsr #22
9830   tst r4, #2048
9831   add r0, sl, r3, asl #5
9832   mov r2, r4, lsr #12
9833   addne r0, r0, r9
9834   tst r4, #1024
9835   mov r2, r2, asl #4
9836   bne .L4036
9837   cmp fp, #0
9838   ldr r0, [r0, #0]
9839   beq .L4000
9840   mov r3, r1, asl #2
9841   mov r0, r0, lsr r3
9842   mov r1, #0
9843 .L3808:
9844   ands  r3, r0, #15
9845   orr r3, lr, r3
9846   orr r3, r2, r3
9847   strne r3, [ip, r1, asl #2]
9848   add r1, r1, #1
9849   cmp fp, r1
9850   mov r0, r0, lsr #4
9851   bne .L3808
9852   b .L4000
9853 .L4025:
9854   ldrh  r6, [r7, #0]
9855   rsb r4, r1, #8
9856   mov r2, r6, asl #22
9857   mov r3, r6, lsr #12
9858   mov r2, r2, lsr #22
9859   tst r6, #2048
9860   mov r8, r3, asl #4
9861   add r3, sl, r2, asl #5
9862   addne r3, r3, r9
9863   tst r6, #1024
9864   beq .L3888
9865   cmp r4, #0
9866   ldr r2, [r3, #0]
9867   beq .L3890
9868   mov r3, r1, asl #2
9869   mov r1, r2, asl r3
9870   mov r2, #0
9871 .L3892:
9872   movs  r3, r1, lsr #28
9873   orr r3, lr, r3
9874   orr r3, r8, r3
9875   strne r3, [ip, r2, asl #2]
9876   add r2, r2, #1
9877   cmp r4, r2
9878   mov r1, r1, asl #4
9879   bne .L3892
9880   add ip, ip, r4, asl #2
9881 .L3890:
9882   add r7, r7, #2
9883   b .L3885
9884 .L4019:
9885   ldrh  r1, [r7, #0]
9886   rsb r6, r4, #8
9887   mov r3, r1, asl #22
9888   mov r3, r3, lsr #22
9889   tst r1, #2048
9890   add r8, r2, r3, asl #6
9891   addne r8, r8, r9
9892   ands  sl, r1, #1024
9893   beq .L3614
9894   cmp r4, #3
9895   bhi .L4037
9896   subs  r5, r6, #4
9897   ldr r1, [r8, #4]
9898   beq .L3625
9899   mov r3, r4, asl #3
9900   sub r3, r3, #32
9901   mov r1, r1, asl r3
9902   mov r4, #0
9903 .L3627:
9904   movs  r3, r1, lsr #24
9905   orr r3, lr, r3
9906   strne r3, [ip, r4, asl #2]
9907   add r4, r4, #1
9908   cmp r5, r4
9909   mov r1, r1, asl #8
9910   bne .L3627
9911   add r3, ip, r6, asl #2
9912   sub ip, r3, #16
9913 .L3625:
9914   ldr r1, [r8, #0]
9915   cmp r1, #0
9916   beq .L3656
9917   ands  r3, r1, #255
9918   orrne r3, lr, r3
9919   strne r3, [ip, #12]
9920   mov r3, r1, lsr #8
9921   ands  r3, r3, #255
9922   orrne r3, lr, r3
9923   strne r3, [ip, #8]
9924   mov r3, r1, lsr #16
9925   ands  r3, r3, #255
9926   orrne r3, lr, r3
9927   strne r3, [ip, #4]
9928   movs  r3, r1, lsr #24
9929   orrne r3, lr, r3
9930   strne r3, [ip, #0]
9931 .L3656:
9932   add ip, ip, #16
9933   mov r6, r5
9934 .L3618:
9935   add r7, r7, #2
9936   b .L3611
9937 .L4033:
9938   rsb r0, r4, #8
9939   cmp fp, r0
9940   bcs .L3415
9941   ldrh  r1, [r7, #0]
9942   mov r3, r1, asl #22
9943   mov r3, r3, lsr #22
9944   tst r1, #2048
9945   add r0, r2, r3, asl #6
9946   addne r0, r0, r9
9947   tst r1, #1024
9948   bne .L4038
9949   cmp r4, #3
9950   bls .L3448
9951   cmp fp, #0
9952   ldr r0, [r0, #4]
9953   beq .L4000
9954   mov r3, r4, asl #3
9955   sub r3, r3, #32
9956   mov r0, r0, lsr r3
9957   mov r2, #0
9958 .L3451:
9959   ands  r3, r0, #255
9960   orr r3, lr, r3
9961   strne r3, [ip, r2, asl #2]
9962   add r2, r2, #1
9963   cmp fp, r2
9964   mov r0, r0, lsr #8
9965   bne .L3451
9966   b .L4000
9967 .L3879:
9968   ands  r3, r0, #15
9969   orr r3, lr, r3
9970   orr r3, r2, r3
9971   strne r3, [ip, r1, asl #2]
9972   add r1, r1, #1
9973   cmp r4, r1
9974   mov r0, r0, lsr #4
9975   beq .L4000
9976   ands  r3, r0, #15
9977   orr r3, lr, r3
9978   orr r3, r2, r3
9979   strne r3, [ip, r1, asl #2]
9980   add r1, r1, #1
9981   cmp r4, r1
9982   mov r0, r0, lsr #4
9983   bne .L3879
9984   b .L4000
9985 .L4044:
9986   .align  2
9987 .L4043:
9988   .word io_registers
9989   .word map_widths
9990   .word vram
9991 .L3756:
9992   cmp r4, #3
9993   ldrls r0, [r2, #0]
9994   bls .L3787
9995   ldr r1, [r2, #0]
9996   cmp r1, #0
9997   beq .L3777
9998   ands  r3, r1, #255
9999   orrne r3, lr, r3
10000   strne r3, [ip, #0]
10001   mov r3, r1, lsr #8
10002   ands  r3, r3, #255
10003   orrne r3, lr, r3
10004   strne r3, [ip, #4]
10005   mov r3, r1, lsr #16
10006   ands  r3, r3, #255
10007   orrne r3, lr, r3
10008   strne r3, [ip, #8]
10009   movs  r3, r1, lsr #24
10010   orrne r3, lr, r3
10011   strne r3, [ip, #12]
10012 .L3777:
10013   subs  r4, r4, #4
10014   ldr r0, [r2, #4]
10015   addne ip, ip, #16
10016   beq .L4000
10017 .L3787:
10018   mov r1, #0
10019 .L3788:
10020   ands  r3, r0, #255
10021   orr r3, lr, r3
10022   strne r3, [ip, r1, asl #2]
10023   add r1, r1, #1
10024   cmp r1, r4
10025   mov r0, r0, lsr #8
10026   bcc .L3788
10027   b .L4000
10028 .L3573:
10029   cmp r4, #3
10030   ldrls r0, [r0, #0]
10031   bls .L3604
10032   ldr r1, [r0, #0]
10033   cmp r1, #0
10034   beq .L3594
10035   ands  r3, r1, #255
10036   orrne r3, lr, r3
10037   strne r3, [ip, #0]
10038   mov r3, r1, lsr #8
10039   ands  r3, r3, #255
10040   orrne r3, lr, r3
10041   strne r3, [ip, #4]
10042   mov r3, r1, lsr #16
10043   ands  r3, r3, #255
10044   orrne r3, lr, r3
10045   strne r3, [ip, #8]
10046   movs  r3, r1, lsr #24
10047   orrne r3, lr, r3
10048   strne r3, [ip, #12]
10049 .L3594:
10050   subs  r4, r4, #4
10051   ldr r0, [r0, #4]
10052   addne ip, ip, #16
10053   beq .L4000
10054 .L3604:
10055   mov r1, #0
10056 .L3605:
10057   ands  r3, r0, #255
10058   orr r3, lr, r3
10059   strne r3, [ip, r1, asl #2]
10060   add r1, r1, #1
10061   cmp r4, r1
10062   mov r0, r0, lsr #8
10063   bhi .L3605
10064   b .L4000
10065 .L3796:
10066   ldrh  r4, [r7, #0]
10067   mov r2, r4, asl #22
10068   mov r3, r4, lsr #12
10069   mov r2, r2, lsr #22
10070   tst r4, #2048
10071   mov r0, r3, asl #4
10072   add r3, sl, r2, asl #5
10073   addne r3, r3, r9
10074   tst r4, #1024
10075   bne .L4039
10076   cmp r5, #0
10077   ldr r2, [r3, #0]
10078   beq .L3816
10079   mov r3, r1, asl #2
10080   mov r1, r2, lsr r3
10081   mov r2, #0
10082 .L3824:
10083   ands  r3, r1, #15
10084   orr r3, lr, r3
10085   orr r3, r0, r3
10086   strne r3, [ip, r2, asl #2]
10087   add r2, r2, #1
10088   cmp r5, r2
10089   mov r1, r1, lsr #4
10090   bne .L3824
10091 .L4015:
10092   add ip, ip, r5, asl #2
10093 .L3816:
10094   rsb fp, r5, fp
10095   add r7, r7, #2
10096   b .L3794
10097 .L3888:
10098   cmp r4, #0
10099   ldr r2, [r3, #0]
10100   beq .L3890
10101   mov r3, r1, asl #2
10102   mov r1, r2, lsr r3
10103   mov r2, #0
10104 .L3898:
10105   ands  r3, r1, #15
10106   orr r3, lr, r3
10107   orr r3, r8, r3
10108   strne r3, [ip, r2, asl #2]
10109   add r2, r2, #1
10110   cmp r4, r2
10111   mov r1, r1, lsr #4
10112   bne .L3898
10113   add ip, ip, r4, asl #2
10114   b .L3890
10115 .L3614:
10116   cmp r4, #3
10117   bhi .L4040
10118   subs  r5, r6, #4
10119   ldr r1, [r8, #0]
10120   beq .L3649
10121   mov r3, r4, asl #3
10122   mov r1, r1, lsr r3
10123   mov r4, #0
10124 .L3651:
10125   ands  r3, r1, #255
10126   orr r3, lr, r3
10127   strne r3, [ip, r4, asl #2]
10128   add r4, r4, #1
10129   cmp r5, r4
10130   mov r1, r1, lsr #8
10131   bne .L3651
10132   add r3, ip, r6, asl #2
10133   sub ip, r3, #16
10134 .L3649:
10135   ldr r1, [r8, #4]
10136   cmp r1, #0
10137   beq .L3656
10138   ands  r3, r1, #255
10139   orrne r3, lr, r3
10140   strne r3, [ip, #0]
10141   mov r3, r1, lsr #8
10142   ands  r3, r3, #255
10143   orrne r3, lr, r3
10144   strne r3, [ip, #4]
10145   mov r3, r1, lsr #16
10146   ands  r3, r3, #255
10147   orrne r3, lr, r3
10148   strne r3, [ip, #8]
10149   movs  r3, r1, lsr #24
10150   orrne r3, lr, r3
10151   strne r3, [ip, #12]
10152   b .L3656
10153 .L3415:
10154   ldrh  r1, [r7, #0]
10155   mov r3, r1, asl #22
10156   mov r3, r3, lsr #22
10157   tst r1, #2048
10158   add r5, r2, r3, asl #6
10159   addne r5, r5, r9
10160   ands  r6, r1, #1024
10161   bne .L4041
10162   cmp r4, #3
10163   bls .L3503
10164   cmp r0, #0
10165   ldr r1, [r5, #4]
10166   beq .L3480
10167   mov r3, r4, asl #3
10168   sub r3, r3, #32
10169   mov r1, r1, lsr r3
10170   mov r4, r6
10171 .L3506:
10172   ands  r3, r1, #255
10173   orr r3, lr, r3
10174   strne r3, [ip, r4, asl #2]
10175   add r4, r4, #1
10176   cmp r0, r4
10177   mov r1, r1, lsr #8
10178   bne .L3506
10179 .L4002:
10180   add ip, ip, r0, asl #2
10181 .L3480:
10182   rsb fp, r0, fp
10183   add r7, r7, #2
10184   b .L3413
10185 .L4037:
10186   cmp r6, #0
10187   ldr r1, [r8, #0]
10188   beq .L3618
10189   mov r3, r4, asl #3
10190   sub r3, r3, #32
10191   mov r1, r1, asl r3
10192   mov r4, #0
10193 .L3620:
10194   movs  r3, r1, lsr #24
10195   orr r3, lr, r3
10196   strne r3, [ip, r4, asl #2]
10197   add r4, r4, #1
10198   cmp r6, r4
10199   mov r1, r1, asl #8
10200   bne .L3620
10201   add ip, ip, r6, asl #2
10202 .L4042:
10203   add r7, r7, #2
10204   b .L3611
10205 .L4036:
10206   cmp fp, #0
10207   ldr r0, [r0, #0]
10208   beq .L4000
10209   mov r3, r1, asl #2
10210   mov r0, r0, asl r3
10211   mov r1, #0
10212 .L3803:
10213   movs  r3, r0, lsr #28
10214   orr r3, lr, r3
10215   orr r3, r2, r3
10216   strne r3, [ip, r1, asl #2]
10217   add r1, r1, #1
10218   cmp fp, r1
10219   mov r0, r0, asl #4
10220   bne .L3803
10221   b .L4000
10222 .L4041:
10223   cmp r4, #3
10224   bls .L3478
10225   cmp r0, #0
10226   ldr r1, [r5, #0]
10227   beq .L3480
10228   mov r3, r4, asl #3
10229   sub r3, r3, #32
10230   mov r1, r1, asl r3
10231   mov r4, #0
10232 .L3482:
10233   movs  r3, r1, lsr #24
10234   orr r3, lr, r3
10235   strne r3, [ip, r4, asl #2]
10236   add r4, r4, #1
10237   cmp r0, r4
10238   mov r1, r1, asl #8
10239   bne .L3482
10240   b .L4002
10241 .L4039:
10242   cmp r5, #0
10243   ldr r2, [r3, #0]
10244   beq .L3816
10245   mov r3, r1, asl #2
10246   mov r1, r2, asl r3
10247   mov r2, #0
10248 .L3818:
10249   movs  r3, r1, lsr #28
10250   orr r3, lr, r3
10251   orr r3, r0, r3
10252   strne r3, [ip, r2, asl #2]
10253   add r2, r2, #1
10254   cmp r5, r2
10255   mov r1, r1, asl #4
10256   bne .L3818
10257   b .L4015
10258 .L4038:
10259   cmp r4, #3
10260   bls .L3421
10261   cmp fp, #0
10262   ldr r0, [r0, #0]
10263   beq .L4000
10264   mov r3, r4, asl #3
10265   sub r3, r3, #32
10266   mov r0, r0, asl r3
10267   mov r2, #0
10268 .L3425:
10269   movs  r3, r0, lsr #24
10270   orr r3, lr, r3
10271   strne r3, [ip, r2, asl #2]
10272   add r2, r2, #1
10273   cmp fp, r2
10274   mov r0, r0, asl #8
10275   bne .L3425
10276   b .L4000
10277 .L4040:
10278   cmp r6, #0
10279   ldr r1, [r8, #4]
10280   beq .L3618
10281   mov r3, r4, asl #3
10282   sub r3, r3, #32
10283   mov r1, r1, lsr r3
10284   mov r4, sl
10285 .L3644:
10286   ands  r3, r1, #255
10287   orr r3, lr, r3
10288   strne r3, [ip, r4, asl #2]
10289   add r4, r4, #1
10290   cmp r6, r4
10291   mov r1, r1, lsr #8
10292   bne .L3644
10293   add ip, ip, r6, asl #2
10294   b .L4042
10295 .L3421:
10296   mov r3, r4, asl #3
10297   ldr r1, [r0, #4]
10298   add r2, fp, r4
10299   sub r3, r3, #32
10300   cmp r2, #4
10301   mov r1, r1, asl r3
10302   bhi .L3429
10303   cmp fp, #0
10304   movne r2, #0
10305   beq .L4000
10306 .L3444:
10307   movs  r3, r1, lsr #24
10308   orr r3, lr, r3
10309   strne r3, [ip, r2, asl #2]
10310   add r2, r2, #1
10311   cmp fp, r2
10312   mov r1, r1, asl #8
10313   bne .L3444
10314   b .L4000
10315 .L3478:
10316   subs  r6, r0, #4
10317   ldr r1, [r5, #4]
10318   beq .L3487
10319   mov r3, r4, asl #3
10320   sub r3, r3, #32
10321   mov r1, r1, asl r3
10322   mov r4, #0
10323 .L3489:
10324   movs  r3, r1, lsr #24
10325   orr r3, lr, r3
10326   strne r3, [ip, r4, asl #2]
10327   add r4, r4, #1
10328   cmp r6, r4
10329   mov r1, r1, asl #8
10330   bne .L3489
10331   add r3, ip, r0, asl #2
10332   sub ip, r3, #16
10333 .L3487:
10334   ldr r1, [r5, #0]
10335   cmp r1, #0
10336   beq .L3518
10337   ands  r3, r1, #255
10338   orrne r3, lr, r3
10339   strne r3, [ip, #12]
10340   mov r3, r1, lsr #8
10341   ands  r3, r3, #255
10342   orrne r3, lr, r3
10343   strne r3, [ip, #8]
10344   mov r3, r1, lsr #16
10345   ands  r3, r3, #255
10346   orrne r3, lr, r3
10347   strne r3, [ip, #4]
10348   movs  r3, r1, lsr #24
10349   orrne r3, lr, r3
10350   strne r3, [ip, #0]
10351 .L3518:
10352   add ip, ip, #16
10353   b .L3480
10354 .L3448:
10355   add r2, fp, r4
10356   ldr r3, [r0, #0]
10357   cmp r2, #4
10358   mov r1, r4, asl #3
10359   mov r2, r3, lsr r1
10360   bhi .L3455
10361   cmp fp, #0
10362   movne r1, #0
10363   beq .L4000
10364 .L3470:
10365   ands  r3, r2, #255
10366   orr r3, lr, r3
10367   strne r3, [ip, r1, asl #2]
10368   add r1, r1, #1
10369   cmp fp, r1
10370   mov r2, r2, lsr #8
10371   bne .L3470
10372   b .L4000
10373 .L3503:
10374   subs  r6, r0, #4
10375   ldr r1, [r5, #0]
10376   beq .L3511
10377   mov r3, r4, asl #3
10378   mov r1, r1, lsr r3
10379   mov r4, #0
10380 .L3513:
10381   ands  r3, r1, #255
10382   orr r3, lr, r3
10383   strne r3, [ip, r4, asl #2]
10384   add r4, r4, #1
10385   cmp r6, r4
10386   mov r1, r1, lsr #8
10387   bne .L3513
10388   add r3, ip, r0, asl #2
10389   sub ip, r3, #16
10390 .L3511:
10391   ldr r1, [r5, #4]
10392   cmp r1, #0
10393   beq .L3518
10394   ands  r3, r1, #255
10395   orrne r3, lr, r3
10396   strne r3, [ip, #0]
10397   mov r3, r1, lsr #8
10398   ands  r3, r3, #255
10399   orrne r3, lr, r3
10400   strne r3, [ip, #4]
10401   mov r3, r1, lsr #16
10402   ands  r3, r3, #255
10403   orrne r3, lr, r3
10404   strne r3, [ip, #8]
10405   movs  r3, r1, lsr #24
10406   orrne r3, lr, r3
10407   strne r3, [ip, #12]
10408   add ip, ip, #16
10409   b .L3480
10410 .L3429:
10411   rsbs  r4, r4, #4
10412   beq .L3432
10413   mov r2, #0
10414 .L3434:
10415   movs  r3, r1, lsr #24
10416   orr r3, lr, r3
10417   strne r3, [ip, r2, asl #2]
10418   add r2, r2, #1
10419   cmp r4, r2
10420   mov r1, r1, asl #8
10421   bne .L3434
10422   add ip, ip, r4, asl #2
10423 .L3432:
10424   subs  r1, fp, r4
10425   ldr r0, [r0, #0]
10426   beq .L4000
10427   mov r2, #0
10428 .L3440:
10429   movs  r3, r0, lsr #24
10430   orr r3, lr, r3
10431   strne r3, [ip, r2, asl #2]
10432   add r2, r2, #1
10433   cmp r1, r2
10434   mov r0, r0, asl #8
10435   bne .L3440
10436   b .L4000
10437 .L3455:
10438   rsbs  r4, r4, #4
10439   beq .L3458
10440   mov r1, #0
10441 .L3460:
10442   ands  r3, r2, #255
10443   orr r3, lr, r3
10444   strne r3, [ip, r1, asl #2]
10445   add r1, r1, #1
10446   cmp r4, r1
10447   mov r2, r2, lsr #8
10448   bne .L3460
10449   add ip, ip, r4, asl #2
10450 .L3458:
10451   subs  r1, fp, r4
10452   ldr r0, [r0, #4]
10453   beq .L4000
10454   mov r2, #0
10455 .L3466:
10456   ands  r3, r0, #255
10457   orr r3, lr, r3
10458   strne r3, [ip, r2, asl #2]
10459   add r2, r2, #1
10460   cmp r1, r2
10461   mov r0, r0, lsr #8
10462   bne .L3466
10463   b .L4000
10464   .size render_scanline_text_transparent_color32, .-render_scanline_text_transparent_color32
10465   .align  2
10466   .global render_scanline_text_base_alpha
10467   .type render_scanline_text_base_alpha, %function
10468 render_scanline_text_base_alpha:
10469   @ args = 0, pretend = 0, frame = 16
10470   @ frame_needed = 0, uses_anonymous_args = 0
10471   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
10472   ldr r7, .L4840
10473   add lr, r0, #7
10474   ldrh  ip, [r7, #80]
10475   sub sp, sp, #16
10476   mov lr, ip, asr lr
10477   mov r4, ip, asr r0
10478   mov r5, ip, lsr #12
10479   and r5, r5, #2
10480   mov ip, ip, asl #26
10481   orr r5, r5, ip, lsr #31
10482   and lr, lr, #2
10483   and r4, r4, #1
10484   orr r4, r4, lr
10485   mov ip, r5, asl #25
10486   orr r8, ip, r4, asl #9
10487   tst r8, #512
10488   mov r6, r0
10489   mov lr, r1
10490   mov r9, r2
10491   mov fp, r3
10492   mov r5, r5, asl #9
10493   beq .L4813
10494   add r0, r7, r0, asl #2
10495   ldrh  r1, [r7, #6]
10496   ldrh  r3, [r0, #18]
10497   add r2, r7, r6, asl #1
10498   add sl, r1, r3
10499   ldrh  r3, [r0, #16]
10500   ldrh  r7, [r2, #8]
10501   mov r6, sl, asl #23
10502   mov r6, r6, lsr #23
10503   add r3, r3, lr
10504   mov r4, r7, lsr #14
10505   cmp r6, #255
10506   movls r1, #0
10507   movhi r1, #1
10508   mov ip, r3, asl #23
10509   ldr r3, .L4840+4
10510   ands  r1, r1, r4, lsr #1
10511   mov r2, r7, asl #3
10512   ldr r1, [r3, r4, asl #2]
10513   ldr r0, .L4840+8
10514   subne r3, r6, #256
10515   movne r3, r3, lsr #3
10516   moveq r3, sl, asl #3
10517   and r2, r2, #63488
10518   addne r3, r3, r1, lsr #3
10519   andeq r3, r3, #1984
10520   add r2, r2, r0
10521   addne r1, r2, r3, asl #6
10522   addeq r1, r2, r3
10523   mov ip, ip, lsr #23
10524   tst r4, #1
10525   andeq ip, ip, #255
10526   rsb r9, lr, r9
10527   moveq r3, ip, lsr #3
10528   str r9, [sp, #12]
10529   addeq sl, r1, r3, asl #1
10530   add r9, fp, lr, asl #2
10531   streq r1, [sp, #0]
10532   bne .L4814
10533   tst r7, #128
10534   bne .L4815
10535 .L4056:
10536   and r1, ip, #255
10537   and r3, r6, #7
10538   mov r2, r7, asl #12
10539   mov r3, r3, asl #2
10540   rsb fp, r1, #256
10541   and r2, r2, #49152
10542   ldr r1, [sp, #12]
10543   add r2, r2, r3
10544   mov r3, r3, asl #1
10545   cmp r1, fp
10546   rsb r3, r3, #28
10547   add r0, r2, r0
10548   str r3, [sp, #8]
10549   and r1, ip, #7
10550   bls .L4816
10551   cmp r1, #0
10552   moveq r4, r1
10553   beq .L4636
10554   ldrh  ip, [sl, #0]
10555   rsb r4, r1, #8
10556   mov r2, ip, asl #22
10557   mov r2, r2, lsr #22
10558   tst ip, #2048
10559   mov r3, ip, lsr #12
10560   mov lr, r3, asl #4
10561   add r3, r0, r2, asl #5
10562   ldrne r2, [sp, #8]
10563   addne r3, r3, r2
10564   tst ip, #1024
10565   bne .L4817
10566   cmp r4, #0
10567   ldr r2, [r3, #0]
10568   beq .L4641
10569   mov r3, r1, asl #2
10570   mov r1, r2, lsr r3
10571   mov ip, #0
10572   mov r2, r9
10573 .L4650:
10574   ands  r3, r1, #15
10575   orr r3, r8, r3
10576   orr r3, lr, r3
10577   add ip, ip, #1
10578   strne r3, [r2, #0]
10579   streq r5, [r2, #0]
10580   cmp r4, ip
10581   mov r1, r1, lsr #4
10582   add r2, r2, #4
10583   bne .L4650
10584   add r9, r9, r4, asl #2
10585 .L4641:
10586   add sl, sl, #2
10587 .L4636:
10588   rsb r3, r4, fp
10589   movs  r1, r3, lsr #3
10590   beq .L4656
10591   mov r4, r9
10592   mov r7, #0
10593   b .L4658
10594 .L4818:
10595   ldr r2, [r3, #0]
10596   cmp r2, #0
10597   beq .L4689
10598   ands  r3, r2, #15
10599   orrne r3, r8, r3
10600   orrne r3, r6, r3
10601   strne r3, [r4, #28]
10602   mov r3, r2, lsr #4
10603   streq r5, [r4, #28]
10604   ands  r3, r3, #15
10605   orrne r3, r8, r3
10606   orrne r3, r6, r3
10607   strne r3, [r4, #24]
10608   mov r3, r2, lsr #8
10609   streq r5, [r4, #24]
10610   ands  r3, r3, #15
10611   orrne r3, r8, r3
10612   orrne r3, r6, r3
10613   strne r3, [r4, #20]
10614   mov r3, r2, lsr #12
10615   streq r5, [r4, #20]
10616   ands  r3, r3, #15
10617   orrne r3, r8, r3
10618   orrne r3, r6, r3
10619   strne r3, [r4, #16]
10620   mov r3, r2, lsr #16
10621   streq r5, [r4, #16]
10622   ands  r3, r3, #15
10623   orrne r3, r8, r3
10624   orrne r3, r6, r3
10625   strne r3, [r4, #12]
10626   mov r3, r2, lsr #20
10627   streq r5, [r4, #12]
10628   ands  r3, r3, #15
10629   orrne r3, r8, r3
10630   orrne r3, r6, r3
10631   strne r3, [r4, #8]
10632   mov r3, r2, lsr #24
10633   streq r5, [r4, #8]
10634   ands  r3, r3, #15
10635   orrne r3, r8, r3
10636   orrne r3, r6, r3
10637   strne r3, [r4, #4]
10638   streq r5, [r4, #4]
10639   movs  r3, r2, lsr #28
10640   orrne r3, r8, r3
10641   orrne r3, r6, r3
10642   strne r3, [r4, #0]
10643   streq r5, [r4, #0]
10644 .L4688:
10645   add r7, r7, #1
10646   cmp r1, r7
10647   add r4, r4, #32
10648   beq .L4714
10649 .L4819:
10650   add sl, sl, #2
10651 .L4658:
10652   ldrh  ip, [sl, #0]
10653   mov r2, ip, asl #22
10654   mov r2, r2, lsr #22
10655   tst ip, #2048
10656   mov r3, ip, lsr #12
10657   mov r6, r3, asl #4
10658   add r3, r0, r2, asl #5
10659   ldrne r2, [sp, #8]
10660   addne r3, r3, r2
10661   tst ip, #1024
10662   bne .L4818
10663   ldr r2, [r3, #0]
10664   cmp r2, #0
10665   beq .L4689
10666   ands  r3, r2, #15
10667   orrne r3, r8, r3
10668   orrne r3, r6, r3
10669   strne r3, [r4, #0]
10670   mov r3, r2, lsr #4
10671   streq r5, [r4, #0]
10672   ands  r3, r3, #15
10673   orrne r3, r8, r3
10674   orrne r3, r6, r3
10675   strne r3, [r4, #4]
10676   mov r3, r2, lsr #8
10677   streq r5, [r4, #4]
10678   ands  r3, r3, #15
10679   orrne r3, r8, r3
10680   orrne r3, r6, r3
10681   strne r3, [r4, #8]
10682   mov r3, r2, lsr #12
10683   streq r5, [r4, #8]
10684   ands  r3, r3, #15
10685   orrne r3, r8, r3
10686   orrne r3, r6, r3
10687   strne r3, [r4, #12]
10688   mov r3, r2, lsr #16
10689   streq r5, [r4, #12]
10690   ands  r3, r3, #15
10691   orrne r3, r8, r3
10692   orrne r3, r6, r3
10693   strne r3, [r4, #16]
10694   mov r3, r2, lsr #20
10695   streq r5, [r4, #16]
10696   ands  r3, r3, #15
10697   orrne r3, r8, r3
10698   orrne r3, r6, r3
10699   strne r3, [r4, #20]
10700   mov r3, r2, lsr #24
10701   streq r5, [r4, #20]
10702   ands  r3, r3, #15
10703   orrne r3, r8, r3
10704   orrne r3, r6, r3
10705   strne r3, [r4, #24]
10706   streq r5, [r4, #24]
10707   movs  r3, r2, lsr #28
10708   orrne r3, r8, r3
10709   orrne r3, r6, r3
10710   strne r3, [r4, #28]
10711   bne .L4688
10712   str r5, [r4, #28]
10713 .L4836:
10714   add r7, r7, #1
10715   cmp r1, r7
10716   add r4, r4, #32
10717   bne .L4819
10718 .L4714:
10719   add r9, r9, r1, asl #5
10720 .L4656:
10721   ldr r3, [sp, #12]
10722   rsb lr, fp, r3
10723   movs  r1, lr, lsr #3
10724   ldreq r1, [sp, #0]
10725   beq .L4718
10726   ldr r7, [sp, #0]
10727   mov r4, r9
10728   mov sl, #0
10729   b .L4719
10730 .L4821:
10731   ldr r2, [r3, #0]
10732   cmp r2, #0
10733   beq .L4750
10734   ands  r3, r2, #15
10735   orrne r3, r8, r3
10736   orrne r3, r6, r3
10737   strne r3, [r4, #28]
10738   mov r3, r2, lsr #4
10739   streq r5, [r4, #28]
10740   ands  r3, r3, #15
10741   orrne r3, r8, r3
10742   orrne r3, r6, r3
10743   strne r3, [r4, #24]
10744   mov r3, r2, lsr #8
10745   streq r5, [r4, #24]
10746   ands  r3, r3, #15
10747   orrne r3, r8, r3
10748   orrne r3, r6, r3
10749   strne r3, [r4, #20]
10750   mov r3, r2, lsr #12
10751   streq r5, [r4, #20]
10752   ands  r3, r3, #15
10753   orrne r3, r8, r3
10754   orrne r3, r6, r3
10755   strne r3, [r4, #16]
10756   mov r3, r2, lsr #16
10757   streq r5, [r4, #16]
10758   ands  r3, r3, #15
10759   orrne r3, r8, r3
10760   orrne r3, r6, r3
10761   strne r3, [r4, #12]
10762   mov r3, r2, lsr #20
10763   streq r5, [r4, #12]
10764   ands  r3, r3, #15
10765   orrne r3, r8, r3
10766   orrne r3, r6, r3
10767   strne r3, [r4, #8]
10768   mov r3, r2, lsr #24
10769   streq r5, [r4, #8]
10770   ands  r3, r3, #15
10771   orrne r3, r8, r3
10772   orrne r3, r6, r3
10773   strne r3, [r4, #4]
10774   streq r5, [r4, #4]
10775   movs  r3, r2, lsr #28
10776   orrne r3, r8, r3
10777   orrne r3, r6, r3
10778   strne r3, [r4, #0]
10779   streq r5, [r4, #0]
10780 .L4749:
10781   add sl, sl, #1
10782   cmp r1, sl
10783   add r4, r4, #32
10784   add r7, r7, #2
10785   beq .L4820
10786 .L4719:
10787   ldrh  ip, [r7, #0]
10788   mov r2, ip, asl #22
10789   mov r2, r2, lsr #22
10790   tst ip, #2048
10791   mov r3, ip, lsr #12
10792   mov r6, r3, asl #4
10793   add r3, r0, r2, asl #5
10794   ldrne r2, [sp, #8]
10795   addne r3, r3, r2
10796   tst ip, #1024
10797   bne .L4821
10798   ldr r2, [r3, #0]
10799   cmp r2, #0
10800   beq .L4750
10801   ands  r3, r2, #15
10802   orrne r3, r8, r3
10803   orrne r3, r6, r3
10804   strne r3, [r4, #0]
10805   mov r3, r2, lsr #4
10806   streq r5, [r4, #0]
10807   ands  r3, r3, #15
10808   orrne r3, r8, r3
10809   orrne r3, r6, r3
10810   strne r3, [r4, #4]
10811   mov r3, r2, lsr #8
10812   streq r5, [r4, #4]
10813   ands  r3, r3, #15
10814   orrne r3, r8, r3
10815   orrne r3, r6, r3
10816   strne r3, [r4, #8]
10817   mov r3, r2, lsr #12
10818   streq r5, [r4, #8]
10819   ands  r3, r3, #15
10820   orrne r3, r8, r3
10821   orrne r3, r6, r3
10822   strne r3, [r4, #12]
10823   mov r3, r2, lsr #16
10824   streq r5, [r4, #12]
10825   ands  r3, r3, #15
10826   orrne r3, r8, r3
10827   orrne r3, r6, r3
10828   strne r3, [r4, #16]
10829   mov r3, r2, lsr #20
10830   streq r5, [r4, #16]
10831   ands  r3, r3, #15
10832   orrne r3, r8, r3
10833   orrne r3, r6, r3
10834   strne r3, [r4, #20]
10835   mov r3, r2, lsr #24
10836   streq r5, [r4, #20]
10837   ands  r3, r3, #15
10838   orrne r3, r8, r3
10839   orrne r3, r6, r3
10840   strne r3, [r4, #24]
10841   streq r5, [r4, #24]
10842   movs  r3, r2, lsr #28
10843   orrne r3, r8, r3
10844   orrne r3, r6, r3
10845   strne r3, [r4, #28]
10846   bne .L4749
10847   str r5, [r4, #28]
10848 .L4837:
10849   add sl, sl, #1
10850   cmp r1, sl
10851   add r4, r4, #32
10852   add r7, r7, #2
10853   bne .L4719
10854 .L4820:
10855   ldr r3, [sp, #0]
10856   add r9, r9, r1, asl #5
10857   add r1, r3, r1, asl #1
10858 .L4718:
10859   ands  ip, lr, #7
10860   beq .L4791
10861   ldrh  r1, [r1, #0]
10862   mov r3, r1, asl #22
10863   tst r1, #2048
10864   mov r3, r3, lsr #22
10865   add r0, r0, r3, asl #5
10866   ldrne r3, [sp, #8]
10867   mov r2, r1, lsr #12
10868   addne r0, r0, r3
10869   tst r1, #1024
10870   mov r2, r2, asl #4
10871   ldreq r0, [r0, #0]
10872   moveq r1, #0
10873   beq .L4786
10874   ldr r0, [r0, #0]
10875   mov r1, #0
10876 .L4781:
10877   movs  r3, r0, lsr #28
10878   orr r3, r8, r3
10879   orr r3, r2, r3
10880   add r1, r1, #1
10881   strne r3, [r9, #0]
10882   streq r5, [r9, #0]
10883   cmp ip, r1
10884   mov r0, r0, asl #4
10885   add r9, r9, #4
10886   bne .L4781
10887 .L4791:
10888   add sp, sp, #16
10889   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
10890 .L4815:
10891   and r1, ip, #255
10892   and r3, r6, #7
10893   mov r2, r7, asl #12
10894   mov r3, r3, asl #3
10895   rsb fp, r1, #256
10896   and r2, r2, #49152
10897   ldr r1, [sp, #12]
10898   add r2, r2, r3
10899   mov r3, r3, asl #1
10900   rsb r3, r3, #56
10901   cmp r1, fp
10902   add r0, r2, r0
10903   str r3, [sp, #4]
10904   and r4, ip, #7
10905   bls .L4822
10906   cmp r4, #0
10907   moveq r2, r4
10908   beq .L4296
10909   ldrh  ip, [sl, #0]
10910   rsb r2, r4, #8
10911   tst ip, #2048
10912   mov r3, ip, asl #22
10913   ldrne r1, [sp, #4]
10914   mov r3, r3, lsr #22
10915   add lr, r0, r3, asl #6
10916   addne lr, lr, r1
10917   ands  ip, ip, #1024
10918   bne .L4823
10919   cmp r4, #3
10920   bls .L4331
10921   cmp r2, #0
10922   ldr r1, [lr, #4]
10923   beq .L4303
10924   mov r3, r4, asl #3
10925   sub r3, r3, #32
10926   mov r1, r1, lsr r3
10927   mov r4, ip
10928   mov ip, r9
10929 .L4334:
10930   ands  r3, r1, #255
10931   orr r3, r8, r3
10932   add r4, r4, #1
10933   strne r3, [ip, #0]
10934   streq r5, [ip, #0]
10935   cmp r2, r4
10936   mov r1, r1, lsr #8
10937   add ip, ip, #4
10938   bne .L4334
10939   add r9, r9, r2, asl #2
10940 .L4303:
10941   add sl, sl, #2
10942 .L4296:
10943   rsb r3, r2, fp
10944   movs  r2, r3, lsr #3
10945   beq .L4360
10946   mov r4, r9
10947   mov r7, #0
10948   b .L4362
10949 .L4824:
10950   ldr ip, [r6, #4]
10951   add r7, r7, #1
10952   ands  r3, ip, #255
10953   orrne r3, r8, r3
10954   strne r3, [r4, #12]
10955   mov r3, ip, lsr #8
10956   streq r5, [r4, #12]
10957   ands  r3, r3, #255
10958   orrne r3, r8, r3
10959   strne r3, [r4, #8]
10960   mov r3, ip, lsr #16
10961   streq r5, [r4, #8]
10962   ands  r3, r3, #255
10963   orrne r3, r8, r3
10964   strne r3, [r4, #4]
10965   streq r5, [r4, #4]
10966   movs  r3, ip, lsr #24
10967   orrne r3, r8, r3
10968   strne r3, [r4, #0]
10969   streq r5, [r4, #0]
10970   ldr ip, [r6, #0]
10971   ands  r3, ip, #255
10972   orrne r3, r8, r3
10973   strne r3, [r4, #28]
10974   mov r3, ip, lsr #8
10975   streq r5, [r4, #28]
10976   ands  r3, r3, #255
10977   orrne r3, r8, r3
10978   strne r3, [r4, #24]
10979   mov r3, ip, lsr #16
10980   streq r5, [r4, #24]
10981   ands  r3, r3, #255
10982   orrne r3, r8, r3
10983   strne r3, [r4, #20]
10984   streq r5, [r4, #20]
10985   movs  r3, ip, lsr #24
10986   orrne r3, r8, r3
10987   strne r3, [r4, #16]
10988   streq r5, [r4, #16]
10989   cmp r2, r7
10990   add r4, r4, #32
10991   beq .L4414
10992 .L4825:
10993   add sl, sl, #2
10994 .L4362:
10995   ldrh  ip, [sl, #0]
10996   mov r3, ip, asl #22
10997   mov r3, r3, lsr #22
10998   tst ip, #2048
10999   add r6, r0, r3, asl #6
11000   ldrne r3, [sp, #4]
11001   addne r6, r6, r3
11002   tst ip, #1024
11003   bne .L4824
11004   ldr ip, [r6, #0]
11005   add r7, r7, #1
11006   ands  r3, ip, #255
11007   orrne r3, r8, r3
11008   strne r3, [r4, #0]
11009   mov r3, ip, lsr #8
11010   streq r5, [r4, #0]
11011   ands  r3, r3, #255
11012   orrne r3, r8, r3
11013   strne r3, [r4, #4]
11014   mov r3, ip, lsr #16
11015   streq r5, [r4, #4]
11016   ands  r3, r3, #255
11017   orrne r3, r8, r3
11018   strne r3, [r4, #8]
11019   streq r5, [r4, #8]
11020   movs  r3, ip, lsr #24
11021   orrne r3, r8, r3
11022   strne r3, [r4, #12]
11023   streq r5, [r4, #12]
11024   ldr ip, [r6, #4]
11025   ands  r3, ip, #255
11026   orrne r3, r8, r3
11027   strne r3, [r4, #16]
11028   mov r3, ip, lsr #8
11029   streq r5, [r4, #16]
11030   ands  r3, r3, #255
11031   orrne r3, r8, r3
11032   strne r3, [r4, #20]
11033   mov r3, ip, lsr #16
11034   streq r5, [r4, #20]
11035   ands  r3, r3, #255
11036   orrne r3, r8, r3
11037   strne r3, [r4, #24]
11038   streq r5, [r4, #24]
11039   movs  r3, ip, lsr #24
11040   orrne r3, r8, r3
11041   strne r3, [r4, #28]
11042   streq r5, [r4, #28]
11043   cmp r2, r7
11044   add r4, r4, #32
11045   bne .L4825
11046 .L4414:
11047   add r9, r9, r2, asl #5
11048 .L4360:
11049   ldr ip, [sp, #12]
11050   rsb r2, fp, ip
11051   movs  r1, r2, lsr #3
11052   ldreq r1, [sp, #0]
11053   beq .L4418
11054   ldr r7, [sp, #0]
11055   mov r4, r9
11056   mov sl, #0
11057   b .L4419
11058 .L4827:
11059   ldr ip, [r6, #4]
11060   add sl, sl, #1
11061   ands  r3, ip, #255
11062   orrne r3, r8, r3
11063   strne r3, [r4, #12]
11064   mov r3, ip, lsr #8
11065   streq r5, [r4, #12]
11066   ands  r3, r3, #255
11067   orrne r3, r8, r3
11068   strne r3, [r4, #8]
11069   mov r3, ip, lsr #16
11070   streq r5, [r4, #8]
11071   ands  r3, r3, #255
11072   orrne r3, r8, r3
11073   strne r3, [r4, #4]
11074   streq r5, [r4, #4]
11075   movs  r3, ip, lsr #24
11076   orrne r3, r8, r3
11077   strne r3, [r4, #0]
11078   streq r5, [r4, #0]
11079   ldr ip, [r6, #0]
11080   add r7, r7, #2
11081   ands  r3, ip, #255
11082   orrne r3, r8, r3
11083   strne r3, [r4, #28]
11084   mov r3, ip, lsr #8
11085   streq r5, [r4, #28]
11086   ands  r3, r3, #255
11087   orrne r3, r8, r3
11088   strne r3, [r4, #24]
11089   mov r3, ip, lsr #16
11090   streq r5, [r4, #24]
11091   ands  r3, r3, #255
11092   orrne r3, r8, r3
11093   strne r3, [r4, #20]
11094   streq r5, [r4, #20]
11095   movs  r3, ip, lsr #24
11096   orrne r3, r8, r3
11097   strne r3, [r4, #16]
11098   streq r5, [r4, #16]
11099   cmp r1, sl
11100   add r4, r4, #32
11101   beq .L4826
11102 .L4419:
11103   ldrh  ip, [r7, #0]
11104   mov r3, ip, asl #22
11105   mov r3, r3, lsr #22
11106   tst ip, #2048
11107   add r6, r0, r3, asl #6
11108   ldrne r3, [sp, #4]
11109   addne r6, r6, r3
11110   tst ip, #1024
11111   bne .L4827
11112   ldr ip, [r6, #0]
11113   add sl, sl, #1
11114   ands  r3, ip, #255
11115   orrne r3, r8, r3
11116   strne r3, [r4, #0]
11117   mov r3, ip, lsr #8
11118   streq r5, [r4, #0]
11119   ands  r3, r3, #255
11120   orrne r3, r8, r3
11121   strne r3, [r4, #4]
11122   mov r3, ip, lsr #16
11123   streq r5, [r4, #4]
11124   ands  r3, r3, #255
11125   orrne r3, r8, r3
11126   strne r3, [r4, #8]
11127   streq r5, [r4, #8]
11128   movs  r3, ip, lsr #24
11129   orrne r3, r8, r3
11130   strne r3, [r4, #12]
11131   streq r5, [r4, #12]
11132   ldr ip, [r6, #4]
11133   add r7, r7, #2
11134   ands  r3, ip, #255
11135   orrne r3, r8, r3
11136   strne r3, [r4, #16]
11137   mov r3, ip, lsr #8
11138   streq r5, [r4, #16]
11139   ands  r3, r3, #255
11140   orrne r3, r8, r3
11141   strne r3, [r4, #20]
11142   mov r3, ip, lsr #16
11143   streq r5, [r4, #20]
11144   ands  r3, r3, #255
11145   orrne r3, r8, r3
11146   strne r3, [r4, #24]
11147   streq r5, [r4, #24]
11148   movs  r3, ip, lsr #24
11149   orrne r3, r8, r3
11150   strne r3, [r4, #28]
11151   streq r5, [r4, #28]
11152   cmp r1, sl
11153   add r4, r4, #32
11154   bne .L4419
11155 .L4826:
11156   ldr ip, [sp, #0]
11157   add r9, r9, r1, asl #5
11158   add r1, ip, r1, asl #1
11159 .L4418:
11160   ands  ip, r2, #7
11161   beq .L4791
11162   ldrh  r1, [r1, #0]
11163   tst r1, #2048
11164   mov r3, r1, asl #22
11165   ldrne r2, [sp, #4]
11166   mov r3, r3, lsr #22
11167   add r0, r0, r3, asl #6
11168   addne r0, r0, r2
11169   tst r1, #1024
11170   beq .L4475
11171   cmp ip, #3
11172   ldrls r0, [r0, #4]
11173   bhi .L4828
11174 .L4492:
11175   mov r1, #0
11176 .L4493:
11177   movs  r3, r0, lsr #24
11178   orr r3, r8, r3
11179   add r1, r1, #1
11180   strne r3, [r9, #0]
11181   streq r5, [r9, #0]
11182   cmp r1, ip
11183   mov r0, r0, asl #8
11184   add r9, r9, #4
11185   bcc .L4493
11186   b .L4791
11187 .L4814:
11188   cmp ip, #255
11189   subhi ip, ip, #256
11190   movhi r3, ip, lsr #3
11191   movls r3, ip, lsr #3
11192   addhi r3, r1, r3, asl #1
11193   addls sl, r1, r3, asl #1
11194   addls r1, r1, #2048
11195   addhi sl, r3, #2048
11196   strhi r1, [sp, #0]
11197   strls r1, [sp, #0]
11198   tst r7, #128
11199   beq .L4056
11200   b .L4815
11201 .L4813:
11202   add sp, sp, #16
11203   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
11204   b render_scanline_text_base_color32
11205 .L4816:
11206   cmp r1, #0
11207   beq .L4521
11208   ldr r2, [sp, #12]
11209   rsb r4, r1, #8
11210   cmp r2, r4
11211   bcc .L4829
11212   ldrh  ip, [sl, #0]
11213   mov r2, ip, asl #22
11214   mov r2, r2, lsr #22
11215   tst ip, #2048
11216   mov r3, ip, lsr #12
11217   mov lr, r3, asl #4
11218   add r3, r0, r2, asl #5
11219   ldrne r2, [sp, #8]
11220   addne r3, r3, r2
11221   tst ip, #1024
11222   beq .L4543
11223   cmp r4, #0
11224   ldr r2, [r3, #0]
11225   beq .L4545
11226   mov r3, r1, asl #2
11227   mov r1, r2, asl r3
11228   mov ip, #0
11229   mov r2, r9
11230 .L4547:
11231   movs  r3, r1, lsr #28
11232   orr r3, r8, r3
11233   orr r3, lr, r3
11234   add ip, ip, #1
11235   strne r3, [r2, #0]
11236   streq r5, [r2, #0]
11237   cmp r4, ip
11238   mov r1, r1, asl #4
11239   add r2, r2, #4
11240   bne .L4547
11241 .L4806:
11242   add r9, r9, r4, asl #2
11243 .L4545:
11244   ldr r3, [sp, #12]
11245   add sl, sl, #2
11246   rsb r3, r4, r3
11247   str r3, [sp, #12]
11248 .L4521:
11249   ldr ip, [sp, #12]
11250   movs  fp, ip, lsr #3
11251   beq .L4560
11252   mov r4, r9
11253   mov r7, sl
11254   mov lr, #0
11255   b .L4562
11256 .L4831:
11257   ldr r2, [r3, #0]
11258   cmp r2, #0
11259   beq .L4593
11260   ands  r3, r2, #15
11261   orrne r3, r8, r3
11262   orrne r3, r6, r3
11263   strne r3, [r4, #28]
11264   mov r3, r2, lsr #4
11265   streq r5, [r4, #28]
11266   ands  r3, r3, #15
11267   orrne r3, r8, r3
11268   orrne r3, r6, r3
11269   strne r3, [r4, #24]
11270   mov r3, r2, lsr #8
11271   streq r5, [r4, #24]
11272   ands  r3, r3, #15
11273   orrne r3, r8, r3
11274   orrne r3, r6, r3
11275   strne r3, [r4, #20]
11276   mov r3, r2, lsr #12
11277   streq r5, [r4, #20]
11278   ands  r3, r3, #15
11279   orrne r3, r8, r3
11280   orrne r3, r6, r3
11281   strne r3, [r4, #16]
11282   mov r3, r2, lsr #16
11283   streq r5, [r4, #16]
11284   ands  r3, r3, #15
11285   orrne r3, r8, r3
11286   orrne r3, r6, r3
11287   strne r3, [r4, #12]
11288   mov r3, r2, lsr #20
11289   streq r5, [r4, #12]
11290   ands  r3, r3, #15
11291   orrne r3, r8, r3
11292   orrne r3, r6, r3
11293   strne r3, [r4, #8]
11294   mov r3, r2, lsr #24
11295   streq r5, [r4, #8]
11296   ands  r3, r3, #15
11297   orrne r3, r8, r3
11298   orrne r3, r6, r3
11299   strne r3, [r4, #4]
11300   streq r5, [r4, #4]
11301   movs  r3, r2, lsr #28
11302   orrne r3, r8, r3
11303   orrne r3, r6, r3
11304   strne r3, [r4, #0]
11305   streq r5, [r4, #0]
11306 .L4592:
11307   add lr, lr, #1
11308   cmp fp, lr
11309   add r4, r4, #32
11310   add r7, r7, #2
11311   beq .L4830
11312 .L4562:
11313   ldrh  ip, [r7, #0]
11314   tst ip, #2048
11315   mov r2, ip, asl #22
11316   mov r3, ip, lsr #12
11317   ldrne r1, [sp, #8]
11318   mov r2, r2, lsr #22
11319   mov r6, r3, asl #4
11320   add r3, r0, r2, asl #5
11321   addne r3, r3, r1
11322   tst ip, #1024
11323   bne .L4831
11324   ldr r2, [r3, #0]
11325   cmp r2, #0
11326   beq .L4593
11327   ands  r3, r2, #15
11328   orrne r3, r8, r3
11329   orrne r3, r6, r3
11330   strne r3, [r4, #0]
11331   mov r3, r2, lsr #4
11332   streq r5, [r4, #0]
11333   ands  r3, r3, #15
11334   orrne r3, r8, r3
11335   orrne r3, r6, r3
11336   strne r3, [r4, #4]
11337   mov r3, r2, lsr #8
11338   streq r5, [r4, #4]
11339   ands  r3, r3, #15
11340   orrne r3, r8, r3
11341   orrne r3, r6, r3
11342   strne r3, [r4, #8]
11343   mov r3, r2, lsr #12
11344   streq r5, [r4, #8]
11345   ands  r3, r3, #15
11346   orrne r3, r8, r3
11347   orrne r3, r6, r3
11348   strne r3, [r4, #12]
11349   mov r3, r2, lsr #16
11350   streq r5, [r4, #12]
11351   ands  r3, r3, #15
11352   orrne r3, r8, r3
11353   orrne r3, r6, r3
11354   strne r3, [r4, #16]
11355   mov r3, r2, lsr #20
11356   streq r5, [r4, #16]
11357   ands  r3, r3, #15
11358   orrne r3, r8, r3
11359   orrne r3, r6, r3
11360   strne r3, [r4, #20]
11361   mov r3, r2, lsr #24
11362   streq r5, [r4, #20]
11363   ands  r3, r3, #15
11364   orrne r3, r8, r3
11365   orrne r3, r6, r3
11366   strne r3, [r4, #24]
11367   streq r5, [r4, #24]
11368   movs  r3, r2, lsr #28
11369   orrne r3, r8, r3
11370   orrne r3, r6, r3
11371   strne r3, [r4, #28]
11372   bne .L4592
11373   str r5, [r4, #28]
11374 .L4838:
11375   add lr, lr, #1
11376   cmp fp, lr
11377   add r4, r4, #32
11378   add r7, r7, #2
11379   bne .L4562
11380 .L4830:
11381   add r9, r9, fp, asl #5
11382   add sl, sl, fp, asl #1
11383 .L4560:
11384   ldr r2, [sp, #12]
11385   ands  r4, r2, #7
11386   beq .L4791
11387   ldrh  ip, [sl, #0]
11388   mov r3, ip, asl #22
11389   mov r3, r3, lsr #22
11390   tst ip, #2048
11391   add r0, r0, r3, asl #5
11392   ldrne r3, [sp, #8]
11393   mov r2, ip, lsr #12
11394   addne r0, r0, r3
11395   tst ip, #1024
11396   mov r2, r2, asl #4
11397   ldreq r0, [r0, #0]
11398   moveq r1, #0
11399   beq .L4629
11400   ldr r0, [r0, #0]
11401   mov r1, #0
11402 .L4624:
11403   movs  r3, r0, lsr #28
11404   orr r3, r8, r3
11405   orr r3, r2, r3
11406   add r1, r1, #1
11407   strne r3, [r9, #0]
11408   streq r5, [r9, #0]
11409   cmp r4, r1
11410   mov r0, r0, asl #4
11411   add r9, r9, #4
11412   bne .L4624
11413   b .L4791
11414 .L4822:
11415   cmp r4, #0
11416   beq .L4060
11417   rsb lr, r4, #8
11418   cmp r1, lr
11419   bcc .L4832
11420   ldrh  ip, [sl, #0]
11421   tst ip, #2048
11422   mov r3, ip, asl #22
11423   ldrne r1, [sp, #4]
11424   mov r3, r3, lsr #22
11425   add r2, r0, r3, asl #6
11426   addne r2, r2, r1
11427   ands  ip, ip, #1024
11428   beq .L4131
11429   cmp r4, #3
11430   bls .L4133
11431   cmp lr, #0
11432   ldr r2, [r2, #0]
11433   beq .L4135
11434   mov r3, r4, asl #3
11435   sub r3, r3, #32
11436   mov r1, r2, asl r3
11437   mov ip, r9
11438   mov r4, #0
11439 .L4137:
11440   movs  r3, r1, lsr #24
11441   orr r3, r8, r3
11442   add r4, r4, #1
11443   strne r3, [ip, #0]
11444   streq r5, [ip, #0]
11445   cmp lr, r4
11446   mov r1, r1, asl #8
11447   add ip, ip, #4
11448   bne .L4137
11449 .L4793:
11450   add r9, r9, lr, asl #2
11451 .L4135:
11452   ldr r2, [sp, #12]
11453   add sl, sl, #2
11454   rsb r2, lr, r2
11455   str r2, [sp, #12]
11456 .L4060:
11457   ldr r3, [sp, #12]
11458   movs  r2, r3, lsr #3
11459   beq .L4192
11460   mov r4, r9
11461   mov r7, sl
11462   mov fp, #0
11463   b .L4194
11464 .L4841:
11465   .align  2
11466 .L4840:
11467   .word io_registers
11468   .word map_widths
11469   .word vram
11470 .L4834:
11471   ldr ip, [r6, #4]
11472   add fp, fp, #1
11473   ands  r3, ip, #255
11474   orrne r3, r8, r3
11475   strne r3, [r4, #12]
11476   mov r3, ip, lsr #8
11477   streq r5, [r4, #12]
11478   ands  r3, r3, #255
11479   orrne r3, r8, r3
11480   strne r3, [r4, #8]
11481   mov r3, ip, lsr #16
11482   streq r5, [r4, #8]
11483   ands  r3, r3, #255
11484   orrne r3, r8, r3
11485   strne r3, [r4, #4]
11486   streq r5, [r4, #4]
11487   movs  r3, ip, lsr #24
11488   orrne r3, r8, r3
11489   strne r3, [r4, #0]
11490   streq r5, [r4, #0]
11491   ldr ip, [r6, #0]
11492   add r7, r7, #2
11493   ands  r3, ip, #255
11494   orrne r3, r8, r3
11495   strne r3, [r4, #28]
11496   mov r3, ip, lsr #8
11497   streq r5, [r4, #28]
11498   ands  r3, r3, #255
11499   orrne r3, r8, r3
11500   strne r3, [r4, #24]
11501   mov r3, ip, lsr #16
11502   streq r5, [r4, #24]
11503   ands  r3, r3, #255
11504   orrne r3, r8, r3
11505   strne r3, [r4, #20]
11506   streq r5, [r4, #20]
11507   movs  r3, ip, lsr #24
11508   orrne r3, r8, r3
11509   strne r3, [r4, #16]
11510   streq r5, [r4, #16]
11511   cmp r2, fp
11512   add r4, r4, #32
11513   beq .L4833
11514 .L4194:
11515   ldrh  ip, [r7, #0]
11516   tst ip, #2048
11517   mov r3, ip, asl #22
11518   ldrne r1, [sp, #4]
11519   mov r3, r3, lsr #22
11520   add r6, r0, r3, asl #6
11521   addne r6, r6, r1
11522   tst ip, #1024
11523   bne .L4834
11524   ldr ip, [r6, #0]
11525   add fp, fp, #1
11526   ands  r3, ip, #255
11527   orrne r3, r8, r3
11528   strne r3, [r4, #0]
11529   mov r3, ip, lsr #8
11530   streq r5, [r4, #0]
11531   ands  r3, r3, #255
11532   orrne r3, r8, r3
11533   strne r3, [r4, #4]
11534   mov r3, ip, lsr #16
11535   streq r5, [r4, #4]
11536   ands  r3, r3, #255
11537   orrne r3, r8, r3
11538   strne r3, [r4, #8]
11539   streq r5, [r4, #8]
11540   movs  r3, ip, lsr #24
11541   orrne r3, r8, r3
11542   strne r3, [r4, #12]
11543   streq r5, [r4, #12]
11544   ldr ip, [r6, #4]
11545   add r7, r7, #2
11546   ands  r3, ip, #255
11547   orrne r3, r8, r3
11548   strne r3, [r4, #16]
11549   mov r3, ip, lsr #8
11550   streq r5, [r4, #16]
11551   ands  r3, r3, #255
11552   orrne r3, r8, r3
11553   strne r3, [r4, #20]
11554   mov r3, ip, lsr #16
11555   streq r5, [r4, #20]
11556   ands  r3, r3, #255
11557   orrne r3, r8, r3
11558   strne r3, [r4, #24]
11559   streq r5, [r4, #24]
11560   movs  r3, ip, lsr #24
11561   orrne r3, r8, r3
11562   strne r3, [r4, #28]
11563   streq r5, [r4, #28]
11564   cmp r2, fp
11565   add r4, r4, #32
11566   bne .L4194
11567 .L4833:
11568   add r9, r9, r2, asl #5
11569   add sl, sl, r2, asl #1
11570 .L4192:
11571   ldr r2, [sp, #12]
11572   ands  r4, r2, #7
11573   beq .L4791
11574   ldrh  ip, [sl, #0]
11575   mov r3, ip, asl #22
11576   mov r3, r3, lsr #22
11577   tst ip, #2048
11578   add r0, r0, r3, asl #6
11579   ldrne r3, [sp, #4]
11580   addne r0, r0, r3
11581   tst ip, #1024
11582   bne .L4835
11583   cmp r4, #3
11584   ldrls r0, [r0, #0]
11585   bls .L4288
11586   ldr r1, [r0, #0]
11587   ands  r3, r1, #255
11588   orrne r3, r8, r3
11589   strne r3, [r9, #0]
11590   mov r3, r1, lsr #8
11591   streq r5, [r9, #0]
11592   ands  r3, r3, #255
11593   orrne r3, r8, r3
11594   strne r3, [r9, #4]
11595   mov r3, r1, lsr #16
11596   streq r5, [r9, #4]
11597   ands  r3, r3, #255
11598   orrne r3, r8, r3
11599   strne r3, [r9, #8]
11600   streq r5, [r9, #8]
11601   movs  r3, r1, lsr #24
11602   orrne r3, r8, r3
11603   strne r3, [r9, #12]
11604   streq r5, [r9, #12]
11605   subs  r4, r4, #4
11606   ldr r0, [r0, #4]
11607   addne r9, r9, #16
11608   beq .L4791
11609 .L4288:
11610   mov r1, #0
11611 .L4289:
11612   ands  r3, r0, #255
11613   orr r3, r8, r3
11614   add r1, r1, #1
11615   strne r3, [r9, #0]
11616   streq r5, [r9, #0]
11617   cmp r4, r1
11618   mov r0, r0, lsr #8
11619   add r9, r9, #4
11620   bhi .L4289
11621   b .L4791
11622 .L4689:
11623   str r5, [r4, #0]
11624   str r5, [r4, #4]
11625   str r5, [r4, #8]
11626   str r5, [r4, #12]
11627   str r5, [r4, #16]
11628   str r5, [r4, #20]
11629   str r5, [r4, #24]
11630   str r5, [r4, #28]
11631   b .L4836
11632 .L4750:
11633   str r5, [r4, #0]
11634   str r5, [r4, #4]
11635   str r5, [r4, #8]
11636   str r5, [r4, #12]
11637   str r5, [r4, #16]
11638   str r5, [r4, #20]
11639   str r5, [r4, #24]
11640   str r5, [r4, #28]
11641   b .L4837
11642 .L4786:
11643   ands  r3, r0, #15
11644   orr r3, r8, r3
11645   orr r3, r2, r3
11646   add r1, r1, #1
11647   strne r3, [r9, #0]
11648   streq r5, [r9, #0]
11649   cmp ip, r1
11650   mov r0, r0, lsr #4
11651   add r9, r9, #4
11652   bne .L4786
11653   b .L4791
11654 .L4593:
11655   str r5, [r4, #0]
11656   str r5, [r4, #4]
11657   str r5, [r4, #8]
11658   str r5, [r4, #12]
11659   str r5, [r4, #16]
11660   str r5, [r4, #20]
11661   str r5, [r4, #24]
11662   str r5, [r4, #28]
11663   b .L4838
11664 .L4629:
11665   ands  r3, r0, #15
11666   orr r3, r8, r3
11667   orr r3, r2, r3
11668   add r1, r1, #1
11669   strne r3, [r9, #0]
11670   streq r5, [r9, #0]
11671   cmp r4, r1
11672   mov r0, r0, lsr #4
11673   add r9, r9, #4
11674   bne .L4629
11675   b .L4791
11676 .L4475:
11677   cmp ip, #3
11678   ldrls r0, [r0, #0]
11679   bhi .L4839
11680 .L4513:
11681   mov r1, #0
11682 .L4514:
11683   ands  r3, r0, #255
11684   orr r3, r8, r3
11685   add r1, r1, #1
11686   strne r3, [r9, #0]
11687   streq r5, [r9, #0]
11688   cmp ip, r1
11689   mov r0, r0, lsr #8
11690   add r9, r9, #4
11691   bhi .L4514
11692   b .L4791
11693 .L4835:
11694   cmp r4, #3
11695   ldrls r0, [r0, #4]
11696   bls .L4267
11697   ldr r1, [r0, #4]
11698   ands  r3, r1, #255
11699   orrne r3, r8, r3
11700   strne r3, [r9, #12]
11701   mov r3, r1, lsr #8
11702   streq r5, [r9, #12]
11703   ands  r3, r3, #255
11704   orrne r3, r8, r3
11705   strne r3, [r9, #8]
11706   mov r3, r1, lsr #16
11707   streq r5, [r9, #8]
11708   ands  r3, r3, #255
11709   orrne r3, r8, r3
11710   strne r3, [r9, #4]
11711   streq r5, [r9, #4]
11712   movs  r3, r1, lsr #24
11713   orrne r3, r8, r3
11714   strne r3, [r9, #0]
11715   streq r5, [r9, #0]
11716   subs  r4, r4, #4
11717   ldr r0, [r0, #0]
11718   addne r9, r9, #16
11719   beq .L4791
11720 .L4267:
11721   mov r1, #0
11722 .L4268:
11723   movs  r3, r0, lsr #24
11724   orr r3, r8, r3
11725   add r1, r1, #1
11726   strne r3, [r9, #0]
11727   streq r5, [r9, #0]
11728   cmp r4, r1
11729   mov r0, r0, asl #8
11730   add r9, r9, #4
11731   bhi .L4268
11732   b .L4791
11733 .L4823:
11734   cmp r4, #3
11735   bls .L4301
11736   cmp r2, #0
11737   ldr r1, [lr, #0]
11738   beq .L4303
11739   mov r3, r4, asl #3
11740   sub r3, r3, #32
11741   mov r1, r1, asl r3
11742   mov ip, r9
11743   mov r4, #0
11744 .L4305:
11745   movs  r3, r1, lsr #24
11746   orr r3, r8, r3
11747   add r4, r4, #1
11748   strne r3, [ip, #0]
11749   streq r5, [ip, #0]
11750   cmp r2, r4
11751   mov r1, r1, asl #8
11752   add ip, ip, #4
11753   bne .L4305
11754   add r9, r9, r2, asl #2
11755   b .L4303
11756 .L4817:
11757   cmp r4, #0
11758   ldr r2, [r3, #0]
11759   beq .L4641
11760   mov r3, r1, asl #2
11761   mov r1, r2, asl r3
11762   mov ip, #0
11763   mov r2, r9
11764 .L4643:
11765   movs  r3, r1, lsr #28
11766   orr r3, r8, r3
11767   orr r3, lr, r3
11768   add ip, ip, #1
11769   strne r3, [r2, #0]
11770   streq r5, [r2, #0]
11771   cmp r4, ip
11772   mov r1, r1, asl #4
11773   add r2, r2, #4
11774   bne .L4643
11775   add r9, r9, r4, asl #2
11776   b .L4641
11777 .L4829:
11778   ldrh  ip, [sl, #0]
11779   mov r3, ip, asl #22
11780   mov r3, r3, lsr #22
11781   tst ip, #2048
11782   add r0, r0, r3, asl #5
11783   ldrne r3, [sp, #8]
11784   mov r2, ip, lsr #12
11785   addne r0, r0, r3
11786   tst ip, #1024
11787   mov r2, r2, asl #4
11788   beq .L4527
11789   ldr ip, [sp, #12]
11790   ldr r0, [r0, #0]
11791   cmp ip, #0
11792   beq .L4791
11793   mov r3, r1, asl #2
11794   mov r0, r0, asl r3
11795   mov r1, #0
11796 .L4530:
11797   movs  r3, r0, lsr #28
11798   orr r3, r8, r3
11799   orr r3, r2, r3
11800   strne r3, [r9, #0]
11801   ldr r3, [sp, #12]
11802   add r1, r1, #1
11803   streq r5, [r9, #0]
11804   cmp r3, r1
11805   mov r0, r0, asl #4
11806   add r9, r9, #4
11807   bne .L4530
11808   b .L4791
11809 .L4832:
11810   ldrh  ip, [sl, #0]
11811   tst ip, #2048
11812   mov r3, ip, asl #22
11813   ldrne r2, [sp, #4]
11814   mov r3, r3, lsr #22
11815   add r0, r0, r3, asl #6
11816   addne r0, r0, r2
11817   tst ip, #1024
11818   beq .L4066
11819   cmp r4, #3
11820   bls .L4068
11821   ldr r3, [sp, #12]
11822   ldr r0, [r0, #0]
11823   cmp r3, #0
11824   beq .L4791
11825   mov r3, r4, asl #3
11826   sub r3, r3, #32
11827   mov r0, r0, asl r3
11828   mov r2, #0
11829 .L4072:
11830   movs  r3, r0, lsr #24
11831   ldr ip, [sp, #12]
11832   orr r3, r8, r3
11833   add r2, r2, #1
11834   strne r3, [r9, #0]
11835   streq r5, [r9, #0]
11836   cmp ip, r2
11837   mov r0, r0, asl #8
11838   add r9, r9, #4
11839   bne .L4072
11840   b .L4791
11841 .L4839:
11842   ldr r1, [r0, #0]
11843   ands  r3, r1, #255
11844   orrne r3, r8, r3
11845   strne r3, [r9, #0]
11846   mov r3, r1, lsr #8
11847   streq r5, [r9, #0]
11848   ands  r3, r3, #255
11849   orrne r3, r8, r3
11850   strne r3, [r9, #4]
11851   mov r3, r1, lsr #16
11852   streq r5, [r9, #4]
11853   ands  r3, r3, #255
11854   orrne r3, r8, r3
11855   strne r3, [r9, #8]
11856   streq r5, [r9, #8]
11857   movs  r3, r1, lsr #24
11858   orrne r3, r8, r3
11859   strne r3, [r9, #12]
11860   streq r5, [r9, #12]
11861   subs  ip, ip, #4
11862   ldr r0, [r0, #4]
11863   addne r9, r9, #16
11864   bne .L4513
11865   b .L4791
11866 .L4828:
11867   ldr r1, [r0, #4]
11868   ands  r3, r1, #255
11869   orrne r3, r8, r3
11870   strne r3, [r9, #12]
11871   mov r3, r1, lsr #8
11872   streq r5, [r9, #12]
11873   ands  r3, r3, #255
11874   orrne r3, r8, r3
11875   strne r3, [r9, #8]
11876   mov r3, r1, lsr #16
11877   streq r5, [r9, #8]
11878   ands  r3, r3, #255
11879   orrne r3, r8, r3
11880   strne r3, [r9, #4]
11881   streq r5, [r9, #4]
11882   movs  r3, r1, lsr #24
11883   orrne r3, r8, r3
11884   strne r3, [r9, #0]
11885   streq r5, [r9, #0]
11886   subs  ip, ip, #4
11887   ldr r0, [r0, #0]
11888   addne r9, r9, #16
11889   bne .L4492
11890   b .L4791
11891 .L4066:
11892   cmp r4, #3
11893   bls .L4099
11894   ldr ip, [sp, #12]
11895   ldr r0, [r0, #4]
11896   cmp ip, #0
11897   beq .L4791
11898   mov r3, r4, asl #3
11899   sub r3, r3, #32
11900   mov r0, r0, lsr r3
11901   mov r2, #0
11902 .L4102:
11903   ands  r3, r0, #255
11904   ldr r1, [sp, #12]
11905   orr r3, r8, r3
11906   add r2, r2, #1
11907   strne r3, [r9, #0]
11908   streq r5, [r9, #0]
11909   cmp r1, r2
11910   mov r0, r0, lsr #8
11911   add r9, r9, #4
11912   bne .L4102
11913   b .L4791
11914 .L4131:
11915   cmp r4, #3
11916   bls .L4163
11917   cmp lr, #0
11918   ldr r2, [r2, #4]
11919   beq .L4135
11920   mov r3, r4, asl #3
11921   sub r3, r3, #32
11922   mov r1, r2, lsr r3
11923   mov r2, ip
11924   mov ip, r9
11925 .L4166:
11926   ands  r3, r1, #255
11927   orr r3, r8, r3
11928   add r2, r2, #1
11929   strne r3, [ip, #0]
11930   streq r5, [ip, #0]
11931   cmp lr, r2
11932   mov r1, r1, lsr #8
11933   add ip, ip, #4
11934   bne .L4166
11935   b .L4793
11936 .L4301:
11937   subs  r6, r2, #4
11938   ldr r1, [lr, #4]
11939   beq .L4311
11940   mov r3, r4, asl #3
11941   sub r3, r3, #32
11942   mov r1, r1, asl r3
11943   mov ip, r9
11944   mov r4, #0
11945 .L4313:
11946   movs  r3, r1, lsr #24
11947   orr r3, r8, r3
11948   add r4, r4, #1
11949   strne r3, [ip, #0]
11950   streq r5, [ip, #0]
11951   cmp r6, r4
11952   mov r1, r1, asl #8
11953   add ip, ip, #4
11954   bne .L4313
11955   add r3, r9, r2, asl #2
11956   sub r9, r3, #16
11957 .L4311:
11958   ldr r2, [lr, #0]
11959   ands  r3, r2, #255
11960   orrne r3, r8, r3
11961   strne r3, [r9, #12]
11962   mov r3, r2, lsr #8
11963   streq r5, [r9, #12]
11964   ands  r3, r3, #255
11965   orrne r3, r8, r3
11966   strne r3, [r9, #8]
11967   mov r3, r2, lsr #16
11968   streq r5, [r9, #8]
11969   ands  r3, r3, #255
11970   orrne r3, r8, r3
11971   strne r3, [r9, #4]
11972   streq r5, [r9, #4]
11973   movs  r3, r2, lsr #24
11974   orrne r3, r8, r3
11975   strne r3, [r9, #0]
11976   streq r5, [r9, #0]
11977 .L4359:
11978   add r9, r9, #16
11979   mov r2, r6
11980   add sl, sl, #2
11981   b .L4296
11982 .L4331:
11983   subs  r6, r2, #4
11984   ldr r1, [lr, #0]
11985   beq .L4340
11986   mov r3, r4, asl #3
11987   mov r1, r1, lsr r3
11988   mov ip, r9
11989   mov r4, #0
11990 .L4342:
11991   ands  r3, r1, #255
11992   orr r3, r8, r3
11993   add r4, r4, #1
11994   strne r3, [ip, #0]
11995   streq r5, [ip, #0]
11996   cmp r6, r4
11997   mov r1, r1, lsr #8
11998   add ip, ip, #4
11999   bne .L4342
12000   add r3, r9, r2, asl #2
12001   sub r9, r3, #16
12002 .L4340:
12003   ldr r2, [lr, #4]
12004   ands  r3, r2, #255
12005   orrne r3, r8, r3
12006   strne r3, [r9, #0]
12007   mov r3, r2, lsr #8
12008   streq r5, [r9, #0]
12009   ands  r3, r3, #255
12010   orrne r3, r8, r3
12011   strne r3, [r9, #4]
12012   mov r3, r2, lsr #16
12013   streq r5, [r9, #4]
12014   ands  r3, r3, #255
12015   orrne r3, r8, r3
12016   strne r3, [r9, #8]
12017   streq r5, [r9, #8]
12018   movs  r3, r2, lsr #24
12019   orrne r3, r8, r3
12020   strne r3, [r9, #12]
12021   streq r5, [r9, #12]
12022   b .L4359
12023 .L4527:
12024   ldr ip, [sp, #12]
12025   ldr r0, [r0, #0]
12026   cmp ip, #0
12027   beq .L4791
12028   mov r3, r1, asl #2
12029   mov r0, r0, lsr r3
12030   mov r1, #0
12031 .L4536:
12032   ands  r3, r0, #15
12033   orr r3, r8, r3
12034   orr r3, r2, r3
12035   strne r3, [r9, #0]
12036   ldr r3, [sp, #12]
12037   add r1, r1, #1
12038   streq r5, [r9, #0]
12039   cmp r3, r1
12040   mov r0, r0, lsr #4
12041   add r9, r9, #4
12042   bne .L4536
12043   b .L4791
12044 .L4543:
12045   cmp r4, #0
12046   ldr r2, [r3, #0]
12047   beq .L4545
12048   mov r3, r1, asl #2
12049   mov r1, r2, lsr r3
12050   mov ip, #0
12051   mov r2, r9
12052 .L4554:
12053   ands  r3, r1, #15
12054   orr r3, r8, r3
12055   orr r3, lr, r3
12056   add ip, ip, #1
12057   strne r3, [r2, #0]
12058   streq r5, [r2, #0]
12059   cmp r4, ip
12060   mov r1, r1, lsr #4
12061   add r2, r2, #4
12062   bne .L4554
12063   b .L4806
12064 .L4068:
12065   ldr ip, [sp, #12]
12066   mov r3, r4, asl #3
12067   ldr r1, [r0, #4]
12068   add r2, ip, r4
12069   sub r3, r3, #32
12070   cmp r2, #4
12071   mov r1, r1, asl r3
12072   bhi .L4077
12073   cmp ip, #0
12074   movne r2, #0
12075   beq .L4791
12076 .L4094:
12077   movs  r3, r1, lsr #24
12078   orr r3, r8, r3
12079   strne r3, [r9, #0]
12080   ldr r3, [sp, #12]
12081   add r2, r2, #1
12082   streq r5, [r9, #0]
12083   cmp r3, r2
12084   mov r1, r1, asl #8
12085   add r9, r9, #4
12086   bne .L4094
12087   b .L4791
12088 .L4163:
12089   subs  r6, lr, #4
12090   ldr r1, [r2, #0]
12091   beq .L4172
12092   mov r3, r4, asl #3
12093   mov r1, r1, lsr r3
12094   mov ip, r9
12095   mov r4, #0
12096 .L4174:
12097   ands  r3, r1, #255
12098   orr r3, r8, r3
12099   add r4, r4, #1
12100   strne r3, [ip, #0]
12101   streq r5, [ip, #0]
12102   cmp r6, r4
12103   mov r1, r1, lsr #8
12104   add ip, ip, #4
12105   bne .L4174
12106   add r3, r9, lr, asl #2
12107   sub r9, r3, #16
12108 .L4172:
12109   ldr r2, [r2, #4]
12110   ands  r3, r2, #255
12111   orrne r3, r8, r3
12112   strne r3, [r9, #0]
12113   mov r3, r2, lsr #8
12114   streq r5, [r9, #0]
12115   ands  r3, r3, #255
12116   orrne r3, r8, r3
12117   strne r3, [r9, #4]
12118   mov r3, r2, lsr #16
12119   streq r5, [r9, #4]
12120   ands  r3, r3, #255
12121   orrne r3, r8, r3
12122   strne r3, [r9, #8]
12123   streq r5, [r9, #8]
12124   movs  r3, r2, lsr #24
12125   orrne r3, r8, r3
12126   strne r3, [r9, #12]
12127   streq r5, [r9, #12]
12128 .L4191:
12129   add r9, r9, #16
12130   b .L4135
12131 .L4133:
12132   subs  r6, lr, #4
12133   ldr r1, [r2, #4]
12134   beq .L4143
12135   mov r3, r4, asl #3
12136   sub r3, r3, #32
12137   mov r1, r1, asl r3
12138   mov ip, r9
12139   mov r4, #0
12140 .L4145:
12141   movs  r3, r1, lsr #24
12142   orr r3, r8, r3
12143   add r4, r4, #1
12144   strne r3, [ip, #0]
12145   streq r5, [ip, #0]
12146   cmp r6, r4
12147   mov r1, r1, asl #8
12148   add ip, ip, #4
12149   bne .L4145
12150   add r3, r9, lr, asl #2
12151   sub r9, r3, #16
12152 .L4143:
12153   ldr r2, [r2, #0]
12154   ands  r3, r2, #255
12155   orrne r3, r8, r3
12156   strne r3, [r9, #12]
12157   mov r3, r2, lsr #8
12158   streq r5, [r9, #12]
12159   ands  r3, r3, #255
12160   orrne r3, r8, r3
12161   strne r3, [r9, #8]
12162   mov r3, r2, lsr #16
12163   streq r5, [r9, #8]
12164   ands  r3, r3, #255
12165   orrne r3, r8, r3
12166   strne r3, [r9, #4]
12167   streq r5, [r9, #4]
12168   movs  r3, r2, lsr #24
12169   orrne r3, r8, r3
12170   strne r3, [r9, #0]
12171   streq r5, [r9, #0]
12172   add r9, r9, #16
12173   b .L4135
12174 .L4099:
12175   ldr ip, [sp, #12]
12176   ldr r3, [r0, #0]
12177   add r2, ip, r4
12178   cmp r2, #4
12179   mov r1, r4, asl #3
12180   mov r2, r3, lsr r1
12181   bhi .L4107
12182   cmp ip, #0
12183   movne r1, #0
12184   beq .L4791
12185 .L4124:
12186   ands  r3, r2, #255
12187   orr r3, r8, r3
12188   strne r3, [r9, #0]
12189   ldr r3, [sp, #12]
12190   add r1, r1, #1
12191   streq r5, [r9, #0]
12192   cmp r3, r1
12193   mov r2, r2, lsr #8
12194   add r9, r9, #4
12195   bne .L4124
12196   b .L4791
12197 .L4077:
12198   rsbs  r4, r4, #4
12199   beq .L4080
12200   mov r2, r9
12201   mov ip, #0
12202 .L4082:
12203   movs  r3, r1, lsr #24
12204   orr r3, r8, r3
12205   add ip, ip, #1
12206   strne r3, [r2, #0]
12207   streq r5, [r2, #0]
12208   cmp r4, ip
12209   mov r1, r1, asl #8
12210   add r2, r2, #4
12211   bne .L4082
12212   add r9, r9, r4, asl #2
12213 .L4080:
12214   ldr r2, [sp, #12]
12215   ldr r0, [r0, #0]
12216   subs  r1, r2, r4
12217   beq .L4791
12218   mov r2, #0
12219 .L4089:
12220   movs  r3, r0, lsr #24
12221   orr r3, r8, r3
12222   add r2, r2, #1
12223   strne r3, [r9, #0]
12224   streq r5, [r9, #0]
12225   cmp r1, r2
12226   mov r0, r0, asl #8
12227   add r9, r9, #4
12228   bne .L4089
12229   b .L4791
12230 .L4107:
12231   rsbs  r4, r4, #4
12232   beq .L4110
12233   mov r1, r9
12234   mov ip, #0
12235 .L4112:
12236   ands  r3, r2, #255
12237   orr r3, r8, r3
12238   add ip, ip, #1
12239   strne r3, [r1, #0]
12240   streq r5, [r1, #0]
12241   cmp r4, ip
12242   mov r2, r2, lsr #8
12243   add r1, r1, #4
12244   bne .L4112
12245   add r9, r9, r4, asl #2
12246 .L4110:
12247   ldr r2, [sp, #12]
12248   ldr r0, [r0, #4]
12249   subs  r1, r2, r4
12250   beq .L4791
12251   mov r2, #0
12252 .L4119:
12253   ands  r3, r0, #255
12254   orr r3, r8, r3
12255   add r2, r2, #1
12256   strne r3, [r9, #0]
12257   streq r5, [r9, #0]
12258   cmp r1, r2
12259   mov r0, r0, lsr #8
12260   add r9, r9, #4
12261   bne .L4119
12262   b .L4791
12263   .size render_scanline_text_base_alpha, .-render_scanline_text_base_alpha
12264   .align  2
12265   .global render_scanline_text_transparent_alpha
12266   .type render_scanline_text_transparent_alpha, %function
12267 render_scanline_text_transparent_alpha:
12268   @ args = 0, pretend = 0, frame = 16
12269   @ frame_needed = 0, uses_anonymous_args = 0
12270   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
12271   ldr r5, .L5485
12272   add lr, r0, #7
12273   ldrh  ip, [r5, #80]
12274   sub sp, sp, #16
12275   mov lr, ip, asr lr
12276   mov ip, ip, asr r0
12277   and lr, lr, #2
12278   and ip, ip, #1
12279   orr ip, ip, lr
12280   mov r6, ip, asl #9
12281   tst r6, #512
12282   mov r4, r0
12283   mov ip, r1
12284   mov r8, r2
12285   mov sl, r3
12286   beq .L5463
12287   add r0, r5, r0, asl #2
12288   ldrh  r1, [r5, #6]
12289   ldrh  r3, [r0, #18]
12290   add r2, r5, r4, asl #1
12291   add r7, r1, r3
12292   ldrh  r3, [r0, #16]
12293   ldrh  lr, [r2, #8]
12294   mov r5, r7, asl #23
12295   mov r5, r5, lsr #23
12296   add r3, r3, ip
12297   mov r0, lr, lsr #14
12298   cmp r5, #255
12299   movls r1, #0
12300   movhi r1, #1
12301   mov r4, r3, asl #23
12302   ldr r3, .L5485+4
12303   ands  r1, r1, r0, lsr #1
12304   mov r2, lr, asl #3
12305   ldr r1, [r3, r0, asl #2]
12306   ldr r9, .L5485+8
12307   subne r3, r5, #256
12308   movne r3, r3, lsr #3
12309   moveq r3, r7, asl #3
12310   and r2, r2, #63488
12311   addne r3, r3, r1, lsr #3
12312   andeq r3, r3, #1984
12313   add r2, r2, r9
12314   addne r1, r2, r3, asl #6
12315   addeq r1, r2, r3
12316   mov r4, r4, lsr #23
12317   tst r0, #1
12318   andeq r4, r4, #255
12319   moveq r3, r4, lsr #3
12320   rsb fp, ip, r8
12321   addeq r7, r1, r3, asl #1
12322   add r8, sl, ip, asl #2
12323   streq r1, [sp, #0]
12324   bne .L5464
12325   tst lr, #128
12326   bne .L5465
12327 .L4853:
12328   mov r2, lr, asl #12
12329   and r3, r5, #7
12330   mov r3, r3, asl #2
12331   and r1, r4, #255
12332   and r2, r2, #49152
12333   rsb r1, r1, #256
12334   add r2, r2, r3
12335   mov r3, r3, asl #1
12336   cmp fp, r1
12337   rsb r3, r3, #28
12338   str r1, [sp, #12]
12339   add lr, r2, r9
12340   str r3, [sp, #8]
12341   and r1, r4, #7
12342   bls .L5466
12343   cmp r1, #0
12344   moveq r5, r1
12345   beq .L5329
12346   ldrh  ip, [r7, #0]
12347   rsb r5, r1, #8
12348   mov r2, ip, asl #22
12349   mov r2, r2, lsr #22
12350   tst ip, #2048
12351   mov r3, ip, lsr #12
12352   mov r0, r3, asl #4
12353   add r3, lr, r2, asl #5
12354   ldrne r2, [sp, #8]
12355   addne r3, r3, r2
12356   tst ip, #1024
12357   bne .L5467
12358   cmp r5, #0
12359   ldr r2, [r3, #0]
12360   beq .L5334
12361   mov r3, r1, asl #2
12362   mov r1, r2, lsr r3
12363   orr r0, r6, r0
12364   mov r2, r8
12365   mov ip, #0
12366 .L5342:
12367   ands  r4, r1, #15
12368   ldrne r3, [r2, #0]
12369   add ip, ip, #1
12370   orrne r3, r4, r3, asl #16
12371   orrne r3, r3, r0
12372   strne r3, [r2, #0]
12373   cmp r5, ip
12374   mov r1, r1, lsr #4
12375   add r2, r2, #4
12376   bne .L5342
12377   add r8, r8, r5, asl #2
12378 .L5334:
12379   add r7, r7, #2
12380 .L5329:
12381   ldr r1, [sp, #12]
12382   rsb r3, r5, r1
12383   movs  sl, r3, lsr #3
12384   beq .L5347
12385   mov r4, r8
12386   mov ip, #0
12387   b .L5349
12388 .L5468:
12389   ldr r1, [r3, #0]
12390   cmp r1, #0
12391   beq .L5354
12392   ands  r0, r1, #15
12393   ldrne r3, [r4, #28]
12394   orrne r2, r6, r5
12395   orrne r3, r0, r3, asl #16
12396   orrne r3, r3, r2
12397   strne r3, [r4, #28]
12398   mov r3, r1, lsr #4
12399   ands  r0, r3, #15
12400   ldrne r3, [r4, #24]
12401   orrne r2, r6, r5
12402   orrne r3, r0, r3, asl #16
12403   orrne r3, r3, r2
12404   strne r3, [r4, #24]
12405   mov r3, r1, lsr #8
12406   ands  r0, r3, #15
12407   ldrne r3, [r4, #20]
12408   orrne r2, r6, r5
12409   orrne r3, r0, r3, asl #16
12410   orrne r3, r3, r2
12411   strne r3, [r4, #20]
12412   mov r3, r1, lsr #12
12413   ands  r0, r3, #15
12414   ldrne r3, [r4, #16]
12415   orrne r2, r6, r5
12416   orrne r3, r0, r3, asl #16
12417   orrne r3, r3, r2
12418   strne r3, [r4, #16]
12419   mov r3, r1, lsr #16
12420   ands  r0, r3, #15
12421   ldrne r3, [r4, #12]
12422   orrne r2, r6, r5
12423   orrne r3, r0, r3, asl #16
12424   orrne r3, r3, r2
12425   strne r3, [r4, #12]
12426   mov r3, r1, lsr #20
12427   ands  r0, r3, #15
12428   ldrne r3, [r4, #8]
12429   orrne r2, r6, r5
12430   orrne r3, r0, r3, asl #16
12431   orrne r3, r3, r2
12432   strne r3, [r4, #8]
12433   mov r3, r1, lsr #24
12434   ands  r0, r3, #15
12435   ldrne r3, [r4, #4]
12436   orrne r2, r6, r5
12437   orrne r3, r0, r3, asl #16
12438   orrne r3, r3, r2
12439   strne r3, [r4, #4]
12440   movs  r1, r1, lsr #28
12441   beq .L5354
12442   ldr r3, [r4, #0]
12443   orr r2, r6, r5
12444   orr r3, r1, r3, asl #16
12445   orr r3, r3, r2
12446   str r3, [r4, #0]
12447 .L5354:
12448   add ip, ip, #1
12449   cmp sl, ip
12450   add r4, r4, #32
12451   beq .L5387
12452 .L5469:
12453   add r7, r7, #2
12454 .L5349:
12455   ldrh  r1, [r7, #0]
12456   mov r2, r1, asl #22
12457   mov r2, r2, lsr #22
12458   tst r1, #2048
12459   mov r3, r1, lsr #12
12460   mov r5, r3, asl #4
12461   add r3, lr, r2, asl #5
12462   ldrne r2, [sp, #8]
12463   addne r3, r3, r2
12464   tst r1, #1024
12465   bne .L5468
12466   ldr r1, [r3, #0]
12467   cmp r1, #0
12468   beq .L5354
12469   ands  r0, r1, #15
12470   ldrne r3, [r4, #0]
12471   orrne r2, r6, r5
12472   orrne r3, r0, r3, asl #16
12473   orrne r3, r3, r2
12474   strne r3, [r4, #0]
12475   mov r3, r1, lsr #4
12476   ands  r0, r3, #15
12477   ldrne r3, [r4, #4]
12478   orrne r2, r6, r5
12479   orrne r3, r0, r3, asl #16
12480   orrne r3, r3, r2
12481   strne r3, [r4, #4]
12482   mov r3, r1, lsr #8
12483   ands  r0, r3, #15
12484   ldrne r3, [r4, #8]
12485   orrne r2, r6, r5
12486   orrne r3, r0, r3, asl #16
12487   orrne r3, r3, r2
12488   strne r3, [r4, #8]
12489   mov r3, r1, lsr #12
12490   ands  r0, r3, #15
12491   ldrne r3, [r4, #12]
12492   orrne r2, r6, r5
12493   orrne r3, r0, r3, asl #16
12494   orrne r3, r3, r2
12495   strne r3, [r4, #12]
12496   mov r3, r1, lsr #16
12497   ands  r0, r3, #15
12498   ldrne r3, [r4, #16]
12499   orrne r2, r6, r5
12500   orrne r3, r0, r3, asl #16
12501   orrne r3, r3, r2
12502   strne r3, [r4, #16]
12503   mov r3, r1, lsr #20
12504   ands  r0, r3, #15
12505   ldrne r3, [r4, #20]
12506   orrne r2, r6, r5
12507   orrne r3, r0, r3, asl #16
12508   orrne r3, r3, r2
12509   strne r3, [r4, #20]
12510   mov r3, r1, lsr #24
12511   ands  r0, r3, #15
12512   ldrne r3, [r4, #24]
12513   orrne r2, r6, r5
12514   orrne r3, r0, r3, asl #16
12515   orrne r3, r3, r2
12516   strne r3, [r4, #24]
12517   movs  r1, r1, lsr #28
12518   ldrne r3, [r4, #28]
12519   orrne r2, r6, r5
12520   orrne r3, r1, r3, asl #16
12521   orrne r3, r3, r2
12522   add ip, ip, #1
12523   strne r3, [r4, #28]
12524   cmp sl, ip
12525   add r4, r4, #32
12526   bne .L5469
12527 .L5387:
12528   add r8, r8, sl, asl #5
12529 .L5347:
12530   ldr r3, [sp, #12]
12531   rsb r9, r3, fp
12532   movs  sl, r9, lsr #3
12533   ldreq r1, [sp, #0]
12534   beq .L5391
12535   ldr ip, [sp, #0]
12536   mov r4, r8
12537   mov r7, #0
12538   b .L5392
12539 .L5471:
12540   ldr r1, [r3, #0]
12541   cmp r1, #0
12542   beq .L5397
12543   ands  r0, r1, #15
12544   ldrne r3, [r4, #28]
12545   orrne r2, r6, r5
12546   orrne r3, r0, r3, asl #16
12547   orrne r3, r3, r2
12548   strne r3, [r4, #28]
12549   mov r3, r1, lsr #4
12550   ands  r0, r3, #15
12551   ldrne r3, [r4, #24]
12552   orrne r2, r6, r5
12553   orrne r3, r0, r3, asl #16
12554   orrne r3, r3, r2
12555   strne r3, [r4, #24]
12556   mov r3, r1, lsr #8
12557   ands  r0, r3, #15
12558   ldrne r3, [r4, #20]
12559   orrne r2, r6, r5
12560   orrne r3, r0, r3, asl #16
12561   orrne r3, r3, r2
12562   strne r3, [r4, #20]
12563   mov r3, r1, lsr #12
12564   ands  r0, r3, #15
12565   ldrne r3, [r4, #16]
12566   orrne r2, r6, r5
12567   orrne r3, r0, r3, asl #16
12568   orrne r3, r3, r2
12569   strne r3, [r4, #16]
12570   mov r3, r1, lsr #16
12571   ands  r0, r3, #15
12572   ldrne r3, [r4, #12]
12573   orrne r2, r6, r5
12574   orrne r3, r0, r3, asl #16
12575   orrne r3, r3, r2
12576   strne r3, [r4, #12]
12577   mov r3, r1, lsr #20
12578   ands  r0, r3, #15
12579   ldrne r3, [r4, #8]
12580   orrne r2, r6, r5
12581   orrne r3, r0, r3, asl #16
12582   orrne r3, r3, r2
12583   strne r3, [r4, #8]
12584   mov r3, r1, lsr #24
12585   ands  r0, r3, #15
12586   ldrne r3, [r4, #4]
12587   orrne r2, r6, r5
12588   orrne r3, r0, r3, asl #16
12589   orrne r3, r3, r2
12590   strne r3, [r4, #4]
12591   movs  r1, r1, lsr #28
12592   beq .L5397
12593   ldr r3, [r4, #0]
12594   orr r2, r6, r5
12595   orr r3, r1, r3, asl #16
12596   orr r3, r3, r2
12597   str r3, [r4, #0]
12598 .L5397:
12599   add r7, r7, #1
12600   cmp sl, r7
12601   add r4, r4, #32
12602   add ip, ip, #2
12603   beq .L5470
12604 .L5392:
12605   ldrh  r1, [ip, #0]
12606   mov r2, r1, asl #22
12607   mov r2, r2, lsr #22
12608   tst r1, #2048
12609   mov r3, r1, lsr #12
12610   mov r5, r3, asl #4
12611   add r3, lr, r2, asl #5
12612   ldrne r2, [sp, #8]
12613   addne r3, r3, r2
12614   tst r1, #1024
12615   bne .L5471
12616   ldr r1, [r3, #0]
12617   cmp r1, #0
12618   beq .L5397
12619   ands  r0, r1, #15
12620   ldrne r3, [r4, #0]
12621   orrne r2, r6, r5
12622   orrne r3, r0, r3, asl #16
12623   orrne r3, r3, r2
12624   strne r3, [r4, #0]
12625   mov r3, r1, lsr #4
12626   ands  r0, r3, #15
12627   ldrne r3, [r4, #4]
12628   orrne r2, r6, r5
12629   orrne r3, r0, r3, asl #16
12630   orrne r3, r3, r2
12631   strne r3, [r4, #4]
12632   mov r3, r1, lsr #8
12633   ands  r0, r3, #15
12634   ldrne r3, [r4, #8]
12635   orrne r2, r6, r5
12636   orrne r3, r0, r3, asl #16
12637   orrne r3, r3, r2
12638   strne r3, [r4, #8]
12639   mov r3, r1, lsr #12
12640   ands  r0, r3, #15
12641   ldrne r3, [r4, #12]
12642   orrne r2, r6, r5
12643   orrne r3, r0, r3, asl #16
12644   orrne r3, r3, r2
12645   strne r3, [r4, #12]
12646   mov r3, r1, lsr #16
12647   ands  r0, r3, #15
12648   ldrne r3, [r4, #16]
12649   orrne r2, r6, r5
12650   orrne r3, r0, r3, asl #16
12651   orrne r3, r3, r2
12652   strne r3, [r4, #16]
12653   mov r3, r1, lsr #20
12654   ands  r0, r3, #15
12655   ldrne r3, [r4, #20]
12656   orrne r2, r6, r5
12657   orrne r3, r0, r3, asl #16
12658   orrne r3, r3, r2
12659   strne r3, [r4, #20]
12660   mov r3, r1, lsr #24
12661   ands  r0, r3, #15
12662   ldrne r3, [r4, #24]
12663   orrne r2, r6, r5
12664   orrne r3, r0, r3, asl #16
12665   orrne r3, r3, r2
12666   strne r3, [r4, #24]
12667   movs  r1, r1, lsr #28
12668   ldrne r3, [r4, #28]
12669   orrne r2, r6, r5
12670   orrne r3, r1, r3, asl #16
12671   orrne r3, r3, r2
12672   add r7, r7, #1
12673   strne r3, [r4, #28]
12674   cmp sl, r7
12675   add r4, r4, #32
12676   add ip, ip, #2
12677   bne .L5392
12678 .L5470:
12679   ldr r3, [sp, #0]
12680   add r8, r8, sl, asl #5
12681   add r1, r3, sl, asl #1
12682 .L5391:
12683   ands  r4, r9, #7
12684   beq .L5444
12685   ldrh  r1, [r1, #0]
12686   mov r3, r1, asl #22
12687   mov r3, r3, lsr #22
12688   tst r1, #2048
12689   add r0, lr, r3, asl #5
12690   ldrne r3, [sp, #8]
12691   mov r2, r1, lsr #12
12692   addne r0, r0, r3
12693   mov r2, r2, asl #4
12694   tst r1, #1024
12695   ldreq r0, [r0, #0]
12696   orreq r2, r6, r2
12697   moveq lr, #0
12698   beq .L5440
12699   ldr r0, [r0, #0]
12700   orr r2, r6, r2
12701   mov lr, #0
12702 .L5436:
12703   movs  r1, r0, lsr #28
12704   ldrne r3, [r8, #0]
12705   add lr, lr, #1
12706   orrne r3, r1, r3, asl #16
12707   orrne r3, r3, r2
12708   strne r3, [r8, #0]
12709   cmp r4, lr
12710   mov r0, r0, asl #4
12711   add r8, r8, #4
12712   bne .L5436
12713 .L5444:
12714   add sp, sp, #16
12715   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
12716 .L5465:
12717   and r3, r5, #7
12718   mov r2, lr, asl #12
12719   mov r3, r3, asl #3
12720   and r1, r4, #255
12721   and r2, r2, #49152
12722   add r2, r2, r3
12723   rsb sl, r1, #256
12724   mov r3, r3, asl #1
12725   rsb r3, r3, #56
12726   cmp fp, sl
12727   add r0, r2, r9
12728   str r3, [sp, #4]
12729   and ip, r4, #7
12730   bls .L5472
12731   cmp ip, #0
12732   moveq lr, ip
12733   beq .L5055
12734   ldrh  r2, [r7, #0]
12735   rsb lr, ip, #8
12736   mov r3, r2, asl #22
12737   mov r3, r3, lsr #22
12738   tst r2, #2048
12739   add r5, r0, r3, asl #6
12740   ldrne r3, [sp, #4]
12741   addne r5, r5, r3
12742   ands  r2, r2, #1024
12743   bne .L5473
12744   cmp ip, #3
12745   bls .L5085
12746   cmp lr, #0
12747   ldr r1, [r5, #4]
12748   beq .L5062
12749   mov r3, ip, asl #3
12750   sub r3, r3, #32
12751   mov r1, r1, lsr r3
12752   mov r4, r2
12753   mov r2, r8
12754 .L5088:
12755   ands  r3, r1, #255
12756   orr ip, r6, r3
12757   ldrne r3, [r2, #0]
12758   add r4, r4, #1
12759   orrne r3, ip, r3, asl #16
12760   strne r3, [r2, #0]
12761   cmp lr, r4
12762   mov r1, r1, lsr #8
12763   add r2, r2, #4
12764   bne .L5088
12765   add r8, r8, lr, asl #2
12766 .L5062:
12767   add r7, r7, #2
12768 .L5055:
12769   rsb r3, lr, sl
12770   movs  lr, r3, lsr #3
12771   beq .L5109
12772   mov r4, r8
12773   mov ip, #0
12774   b .L5111
12775 .L5474:
12776   ldr r1, [r5, #4]
12777   cmp r1, #0
12778   beq .L5116
12779   ands  r3, r1, #255
12780   ldrne r2, [r4, #12]
12781   orrne r3, r6, r3
12782   orrne r3, r3, r2, asl #16
12783   strne r3, [r4, #12]
12784   mov r3, r1, lsr #8
12785   ands  r3, r3, #255
12786   ldrne r2, [r4, #8]
12787   orrne r3, r6, r3
12788   orrne r3, r3, r2, asl #16
12789   strne r3, [r4, #8]
12790   mov r3, r1, lsr #16
12791   ands  r3, r3, #255
12792   ldrne r2, [r4, #4]
12793   orrne r3, r6, r3
12794   orrne r3, r3, r2, asl #16
12795   strne r3, [r4, #4]
12796   movs  r3, r1, lsr #24
12797   ldrne r2, [r4, #0]
12798   orrne r3, r6, r3
12799   orrne r3, r3, r2, asl #16
12800   strne r3, [r4, #0]
12801 .L5116:
12802   ldr r1, [r5, #0]
12803   cmp r1, #0
12804   beq .L5125
12805   ands  r3, r1, #255
12806   ldrne r2, [r4, #28]
12807   orrne r3, r6, r3
12808   orrne r3, r3, r2, asl #16
12809   strne r3, [r4, #28]
12810   mov r3, r1, lsr #8
12811   ands  r3, r3, #255
12812   ldrne r2, [r4, #24]
12813   orrne r3, r6, r3
12814   orrne r3, r3, r2, asl #16
12815   strne r3, [r4, #24]
12816   mov r3, r1, lsr #16
12817   ands  r3, r3, #255
12818   ldrne r2, [r4, #20]
12819   orrne r3, r6, r3
12820   orrne r3, r3, r2, asl #16
12821   strne r3, [r4, #20]
12822   movs  r3, r1, lsr #24
12823   ldrne r2, [r4, #16]
12824   orrne r3, r6, r3
12825   orrne r3, r3, r2, asl #16
12826   strne r3, [r4, #16]
12827 .L5125:
12828   add ip, ip, #1
12829   cmp lr, ip
12830   add r4, r4, #32
12831   beq .L5151
12832 .L5475:
12833   add r7, r7, #2
12834 .L5111:
12835   ldrh  r2, [r7, #0]
12836   tst r2, #2048
12837   mov r3, r2, asl #22
12838   ldrne r1, [sp, #4]
12839   mov r3, r3, lsr #22
12840   add r5, r0, r3, asl #6
12841   addne r5, r5, r1
12842   tst r2, #1024
12843   bne .L5474
12844   ldr r1, [r5, #0]
12845   cmp r1, #0
12846   beq .L5134
12847   ands  r3, r1, #255
12848   ldrne r2, [r4, #0]
12849   orrne r3, r6, r3
12850   orrne r3, r3, r2, asl #16
12851   strne r3, [r4, #0]
12852   mov r3, r1, lsr #8
12853   ands  r3, r3, #255
12854   ldrne r2, [r4, #4]
12855   orrne r3, r6, r3
12856   orrne r3, r3, r2, asl #16
12857   strne r3, [r4, #4]
12858   mov r3, r1, lsr #16
12859   ands  r3, r3, #255
12860   ldrne r2, [r4, #8]
12861   orrne r3, r6, r3
12862   orrne r3, r3, r2, asl #16
12863   strne r3, [r4, #8]
12864   movs  r3, r1, lsr #24
12865   ldrne r2, [r4, #12]
12866   orrne r3, r6, r3
12867   orrne r3, r3, r2, asl #16
12868   strne r3, [r4, #12]
12869 .L5134:
12870   ldr r1, [r5, #4]
12871   cmp r1, #0
12872   beq .L5125
12873   ands  r3, r1, #255
12874   ldrne r2, [r4, #16]
12875   orrne r3, r6, r3
12876   orrne r3, r3, r2, asl #16
12877   strne r3, [r4, #16]
12878   mov r3, r1, lsr #8
12879   ands  r3, r3, #255
12880   ldrne r2, [r4, #20]
12881   orrne r3, r6, r3
12882   orrne r3, r3, r2, asl #16
12883   strne r3, [r4, #20]
12884   mov r3, r1, lsr #16
12885   ands  r3, r3, #255
12886   ldrne r2, [r4, #24]
12887   orrne r3, r6, r3
12888   orrne r3, r3, r2, asl #16
12889   strne r3, [r4, #24]
12890   movs  r3, r1, lsr #24
12891   ldrne r2, [r4, #28]
12892   orrne r3, r6, r3
12893   orrne r3, r3, r2, asl #16
12894   add ip, ip, #1
12895   strne r3, [r4, #28]
12896   cmp lr, ip
12897   add r4, r4, #32
12898   bne .L5475
12899 .L5151:
12900   add r8, r8, lr, asl #5
12901 .L5109:
12902   rsb lr, sl, fp
12903   movs  sl, lr, lsr #3
12904   ldreq r1, [sp, #0]
12905   beq .L5155
12906   ldr ip, [sp, #0]
12907   mov r4, r8
12908   mov r7, #0
12909   b .L5156
12910 .L5477:
12911   ldr r1, [r5, #4]
12912   cmp r1, #0
12913   beq .L5161
12914   ands  r3, r1, #255
12915   ldrne r2, [r4, #12]
12916   orrne r3, r6, r3
12917   orrne r3, r3, r2, asl #16
12918   strne r3, [r4, #12]
12919   mov r3, r1, lsr #8
12920   ands  r3, r3, #255
12921   ldrne r2, [r4, #8]
12922   orrne r3, r6, r3
12923   orrne r3, r3, r2, asl #16
12924   strne r3, [r4, #8]
12925   mov r3, r1, lsr #16
12926   ands  r3, r3, #255
12927   ldrne r2, [r4, #4]
12928   orrne r3, r6, r3
12929   orrne r3, r3, r2, asl #16
12930   strne r3, [r4, #4]
12931   movs  r3, r1, lsr #24
12932   ldrne r2, [r4, #0]
12933   orrne r3, r6, r3
12934   orrne r3, r3, r2, asl #16
12935   strne r3, [r4, #0]
12936 .L5161:
12937   ldr r1, [r5, #0]
12938   cmp r1, #0
12939   beq .L5170
12940   ands  r3, r1, #255
12941   ldrne r2, [r4, #28]
12942   orrne r3, r6, r3
12943   orrne r3, r3, r2, asl #16
12944   strne r3, [r4, #28]
12945   mov r3, r1, lsr #8
12946   ands  r3, r3, #255
12947   ldrne r2, [r4, #24]
12948   orrne r3, r6, r3
12949   orrne r3, r3, r2, asl #16
12950   strne r3, [r4, #24]
12951   mov r3, r1, lsr #16
12952   ands  r3, r3, #255
12953   ldrne r2, [r4, #20]
12954   orrne r3, r6, r3
12955   orrne r3, r3, r2, asl #16
12956   strne r3, [r4, #20]
12957   movs  r3, r1, lsr #24
12958   ldrne r2, [r4, #16]
12959   orrne r3, r6, r3
12960   orrne r3, r3, r2, asl #16
12961   strne r3, [r4, #16]
12962 .L5170:
12963   add r7, r7, #1
12964   cmp sl, r7
12965   add r4, r4, #32
12966   add ip, ip, #2
12967   beq .L5476
12968 .L5156:
12969   ldrh  r2, [ip, #0]
12970   mov r3, r2, asl #22
12971   mov r3, r3, lsr #22
12972   tst r2, #2048
12973   add r5, r0, r3, asl #6
12974   ldrne r3, [sp, #4]
12975   addne r5, r5, r3
12976   tst r2, #1024
12977   bne .L5477
12978   ldr r1, [r5, #0]
12979   cmp r1, #0
12980   beq .L5179
12981   ands  r3, r1, #255
12982   ldrne r2, [r4, #0]
12983   orrne r3, r6, r3
12984   orrne r3, r3, r2, asl #16
12985   strne r3, [r4, #0]
12986   mov r3, r1, lsr #8
12987   ands  r3, r3, #255
12988   ldrne r2, [r4, #4]
12989   orrne r3, r6, r3
12990   orrne r3, r3, r2, asl #16
12991   strne r3, [r4, #4]
12992   mov r3, r1, lsr #16
12993   ands  r3, r3, #255
12994   ldrne r2, [r4, #8]
12995   orrne r3, r6, r3
12996   orrne r3, r3, r2, asl #16
12997   strne r3, [r4, #8]
12998   movs  r3, r1, lsr #24
12999   ldrne r2, [r4, #12]
13000   orrne r3, r6, r3
13001   orrne r3, r3, r2, asl #16
13002   strne r3, [r4, #12]
13003 .L5179:
13004   ldr r1, [r5, #4]
13005   cmp r1, #0
13006   beq .L5170
13007   ands  r3, r1, #255
13008   ldrne r2, [r4, #16]
13009   orrne r3, r6, r3
13010   orrne r3, r3, r2, asl #16
13011   strne r3, [r4, #16]
13012   mov r3, r1, lsr #8
13013   ands  r3, r3, #255
13014   ldrne r2, [r4, #20]
13015   orrne r3, r6, r3
13016   orrne r3, r3, r2, asl #16
13017   strne r3, [r4, #20]
13018   mov r3, r1, lsr #16
13019   ands  r3, r3, #255
13020   ldrne r2, [r4, #24]
13021   orrne r3, r6, r3
13022   orrne r3, r3, r2, asl #16
13023   strne r3, [r4, #24]
13024   movs  r3, r1, lsr #24
13025   ldrne r2, [r4, #28]
13026   orrne r3, r6, r3
13027   orrne r3, r3, r2, asl #16
13028   add r7, r7, #1
13029   strne r3, [r4, #28]
13030   cmp sl, r7
13031   add r4, r4, #32
13032   add ip, ip, #2
13033   bne .L5156
13034 .L5476:
13035   ldr r2, [sp, #0]
13036   add r8, r8, sl, asl #5
13037   add r1, r2, sl, asl #1
13038 .L5155:
13039   ands  ip, lr, #7
13040   beq .L5444
13041   ldrh  r1, [r1, #0]
13042   mov r3, r1, asl #22
13043   mov r3, r3, lsr #22
13044   tst r1, #2048
13045   add r0, r0, r3, asl #6
13046   ldrne r3, [sp, #4]
13047   addne r0, r0, r3
13048   tst r1, #1024
13049   beq .L5200
13050   cmp ip, #3
13051   ldrls r0, [r0, #4]
13052   bls .L5214
13053   ldr r1, [r0, #4]
13054   cmp r1, #0
13055   beq .L5204
13056   ands  r3, r1, #255
13057   ldrne r2, [r8, #12]
13058   orrne r3, r6, r3
13059   orrne r3, r3, r2, asl #16
13060   strne r3, [r8, #12]
13061   mov r3, r1, lsr #8
13062   ands  r3, r3, #255
13063   ldrne r2, [r8, #8]
13064   orrne r3, r6, r3
13065   orrne r3, r3, r2, asl #16
13066   strne r3, [r8, #8]
13067   mov r3, r1, lsr #16
13068   ands  r3, r3, #255
13069   ldrne r2, [r8, #4]
13070   orrne r3, r6, r3
13071   orrne r3, r3, r2, asl #16
13072   strne r3, [r8, #4]
13073   movs  r3, r1, lsr #24
13074   ldrne r2, [r8, #0]
13075   orrne r3, r6, r3
13076   orrne r3, r3, r2, asl #16
13077   strne r3, [r8, #0]
13078 .L5204:
13079   subs  ip, ip, #4
13080   ldr r0, [r0, #0]
13081   addne r8, r8, #16
13082   beq .L5444
13083 .L5214:
13084   mov r1, #0
13085 .L5215:
13086   movs  r3, r0, lsr #24
13087   orr r2, r6, r3
13088   ldrne r3, [r8, #0]
13089   add r1, r1, #1
13090   orrne r3, r2, r3, asl #16
13091   strne r3, [r8, #0]
13092   cmp ip, r1
13093   mov r0, r0, asl #8
13094   add r8, r8, #4
13095   bhi .L5215
13096   b .L5444
13097 .L5464:
13098   cmp r4, #255
13099   subhi r4, r4, #256
13100   movhi r3, r4, lsr #3
13101   movls r3, r4, lsr #3
13102   addhi r3, r1, r3, asl #1
13103   addls r7, r1, r3, asl #1
13104   addls r1, r1, #2048
13105   addhi r7, r3, #2048
13106   strhi r1, [sp, #0]
13107   strls r1, [sp, #0]
13108   tst lr, #128
13109   beq .L4853
13110   b .L5465
13111 .L5463:
13112   add sp, sp, #16
13113   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
13114   b render_scanline_text_transparent_color32
13115 .L5466:
13116   cmp r1, #0
13117   beq .L5238
13118   rsb r5, r1, #8
13119   cmp fp, r5
13120   bcc .L5478
13121   ldrh  ip, [r7, #0]
13122   mov r2, ip, asl #22
13123   mov r2, r2, lsr #22
13124   tst ip, #2048
13125   mov r3, ip, lsr #12
13126   mov r0, r3, asl #4
13127   add r3, lr, r2, asl #5
13128   ldrne r2, [sp, #8]
13129   addne r3, r3, r2
13130   tst ip, #1024
13131   beq .L5258
13132   cmp r5, #0
13133   ldr r2, [r3, #0]
13134   beq .L5260
13135   mov r3, r1, asl #2
13136   mov r1, r2, asl r3
13137   orr r0, r6, r0
13138   mov r2, r8
13139   mov r4, #0
13140 .L5262:
13141   movs  ip, r1, lsr #28
13142   ldrne r3, [r2, #0]
13143   add r4, r4, #1
13144   orrne r3, ip, r3, asl #16
13145   orrne r3, r3, r0
13146   strne r3, [r2, #0]
13147   cmp r5, r4
13148   mov r1, r1, asl #4
13149   add r2, r2, #4
13150   bne .L5262
13151 .L5459:
13152   add r8, r8, r5, asl #2
13153 .L5260:
13154   rsb fp, r5, fp
13155   add r7, r7, #2
13156 .L5238:
13157   movs  r9, fp, lsr #3
13158   beq .L5273
13159   mov r4, r8
13160   mov ip, r7
13161   mov sl, #0
13162   b .L5275
13163 .L5486:
13164   .align  2
13165 .L5485:
13166   .word io_registers
13167   .word map_widths
13168   .word vram
13169 .L5480:
13170   ldr r5, [r3, #0]
13171   cmp r5, #0
13172   beq .L5280
13173   ands  r1, r5, #15
13174   ldrne r3, [r4, #28]
13175   orrne r2, r6, r0
13176   orrne r3, r1, r3, asl #16
13177   orrne r3, r3, r2
13178   strne r3, [r4, #28]
13179   mov r3, r5, lsr #4
13180   ands  r1, r3, #15
13181   ldrne r3, [r4, #24]
13182   orrne r2, r6, r0
13183   orrne r3, r1, r3, asl #16
13184   orrne r3, r3, r2
13185   strne r3, [r4, #24]
13186   mov r3, r5, lsr #8
13187   ands  r1, r3, #15
13188   ldrne r3, [r4, #20]
13189   orrne r2, r6, r0
13190   orrne r3, r1, r3, asl #16
13191   orrne r3, r3, r2
13192   strne r3, [r4, #20]
13193   mov r3, r5, lsr #12
13194   ands  r1, r3, #15
13195   ldrne r3, [r4, #16]
13196   orrne r2, r6, r0
13197   orrne r3, r1, r3, asl #16
13198   orrne r3, r3, r2
13199   strne r3, [r4, #16]
13200   mov r3, r5, lsr #16
13201   ands  r1, r3, #15
13202   ldrne r3, [r4, #12]
13203   orrne r2, r6, r0
13204   orrne r3, r1, r3, asl #16
13205   orrne r3, r3, r2
13206   strne r3, [r4, #12]
13207   mov r3, r5, lsr #20
13208   ands  r1, r3, #15
13209   ldrne r3, [r4, #8]
13210   orrne r2, r6, r0
13211   orrne r3, r1, r3, asl #16
13212   orrne r3, r3, r2
13213   strne r3, [r4, #8]
13214   mov r3, r5, lsr #24
13215   ands  r1, r3, #15
13216   ldrne r3, [r4, #4]
13217   orrne r2, r6, r0
13218   orrne r3, r1, r3, asl #16
13219   orrne r3, r3, r2
13220   strne r3, [r4, #4]
13221   movs  r5, r5, lsr #28
13222   beq .L5280
13223   ldr r3, [r4, #0]
13224   orr r2, r6, r0
13225   orr r3, r5, r3, asl #16
13226   orr r3, r3, r2
13227   str r3, [r4, #0]
13228 .L5280:
13229   add sl, sl, #1
13230   cmp r9, sl
13231   add r4, r4, #32
13232   add ip, ip, #2
13233   beq .L5479
13234 .L5275:
13235   ldrh  r1, [ip, #0]
13236   mov r2, r1, asl #22
13237   mov r2, r2, lsr #22
13238   tst r1, #2048
13239   mov r3, r1, lsr #12
13240   mov r0, r3, asl #4
13241   add r3, lr, r2, asl #5
13242   ldrne r2, [sp, #8]
13243   addne r3, r3, r2
13244   tst r1, #1024
13245   bne .L5480
13246   ldr r5, [r3, #0]
13247   cmp r5, #0
13248   beq .L5280
13249   ands  r1, r5, #15
13250   ldrne r3, [r4, #0]
13251   orrne r2, r6, r0
13252   orrne r3, r1, r3, asl #16
13253   orrne r3, r3, r2
13254   strne r3, [r4, #0]
13255   mov r3, r5, lsr #4
13256   ands  r1, r3, #15
13257   ldrne r3, [r4, #4]
13258   orrne r2, r6, r0
13259   orrne r3, r1, r3, asl #16
13260   orrne r3, r3, r2
13261   strne r3, [r4, #4]
13262   mov r3, r5, lsr #8
13263   ands  r1, r3, #15
13264   ldrne r3, [r4, #8]
13265   orrne r2, r6, r0
13266   orrne r3, r1, r3, asl #16
13267   orrne r3, r3, r2
13268   strne r3, [r4, #8]
13269   mov r3, r5, lsr #12
13270   ands  r1, r3, #15
13271   ldrne r3, [r4, #12]
13272   orrne r2, r6, r0
13273   orrne r3, r1, r3, asl #16
13274   orrne r3, r3, r2
13275   strne r3, [r4, #12]
13276   mov r3, r5, lsr #16
13277   ands  r1, r3, #15
13278   ldrne r3, [r4, #16]
13279   orrne r2, r6, r0
13280   orrne r3, r1, r3, asl #16
13281   orrne r3, r3, r2
13282   strne r3, [r4, #16]
13283   mov r3, r5, lsr #20
13284   ands  r1, r3, #15
13285   ldrne r3, [r4, #20]
13286   orrne r2, r6, r0
13287   orrne r3, r1, r3, asl #16
13288   orrne r3, r3, r2
13289   strne r3, [r4, #20]
13290   mov r3, r5, lsr #24
13291   ands  r1, r3, #15
13292   ldrne r3, [r4, #24]
13293   orrne r2, r6, r0
13294   orrne r3, r1, r3, asl #16
13295   orrne r3, r3, r2
13296   strne r3, [r4, #24]
13297   movs  r5, r5, lsr #28
13298   ldrne r3, [r4, #28]
13299   orrne r2, r6, r0
13300   orrne r3, r5, r3, asl #16
13301   orrne r3, r3, r2
13302   add sl, sl, #1
13303   strne r3, [r4, #28]
13304   cmp r9, sl
13305   add r4, r4, #32
13306   add ip, ip, #2
13307   bne .L5275
13308 .L5479:
13309   add r8, r8, r9, asl #5
13310   add r7, r7, r9, asl #1
13311 .L5273:
13312   ands  r5, fp, #7
13313   beq .L5444
13314   ldrh  r4, [r7, #0]
13315   mov r3, r4, asl #22
13316   mov r3, r3, lsr #22
13317   tst r4, #2048
13318   add r0, lr, r3, asl #5
13319   ldrne r3, [sp, #8]
13320   mov r2, r4, lsr #12
13321   addne r0, r0, r3
13322   mov r2, r2, asl #4
13323   tst r4, #1024
13324   ldreq r0, [r0, #0]
13325   orreq r2, r6, r2
13326   moveq lr, #0
13327   beq .L5323
13328   ldr r0, [r0, #0]
13329   orr r2, r6, r2
13330   mov lr, #0
13331 .L5319:
13332   movs  r1, r0, lsr #28
13333   ldrne r3, [r8, #0]
13334   add lr, lr, #1
13335   orrne r3, r1, r3, asl #16
13336   orrne r3, r3, r2
13337   strne r3, [r8, #0]
13338   cmp r5, lr
13339   mov r0, r0, asl #4
13340   add r8, r8, #4
13341   bne .L5319
13342   b .L5444
13343 .L5472:
13344   cmp ip, #0
13345   beq .L4857
13346   rsb lr, ip, #8
13347   cmp fp, lr
13348   bcc .L5481
13349   ldrh  r2, [r7, #0]
13350   mov r3, r2, asl #22
13351   mov r3, r3, lsr #22
13352   tst r2, #2048
13353   add r5, r0, r3, asl #6
13354   ldrne r3, [sp, #4]
13355   addne r5, r5, r3
13356   ands  r2, r2, #1024
13357   beq .L4920
13358   cmp ip, #3
13359   bls .L4922
13360   cmp lr, #0
13361   ldr r2, [r5, #0]
13362   beq .L4924
13363   mov r3, ip, asl #3
13364   sub r3, r3, #32
13365   mov r1, r2, asl r3
13366   mov r4, #0
13367   mov r2, r8
13368 .L4926:
13369   movs  r3, r1, lsr #24
13370   orr ip, r6, r3
13371   ldrne r3, [r2, #0]
13372   add r4, r4, #1
13373   orrne r3, ip, r3, asl #16
13374   strne r3, [r2, #0]
13375   cmp lr, r4
13376   mov r1, r1, asl #8
13377   add r2, r2, #4
13378   bne .L4926
13379 .L5446:
13380   add r8, r8, lr, asl #2
13381 .L4924:
13382   rsb fp, lr, fp
13383   add r7, r7, #2
13384 .L4857:
13385   movs  r9, fp, lsr #3
13386   beq .L4971
13387   mov r1, r8
13388   mov ip, r7
13389   mov sl, #0
13390   b .L4973
13391 .L5483:
13392   ldr r4, [r5, #4]
13393   cmp r4, #0
13394   beq .L4978
13395   ands  r3, r4, #255
13396   ldrne r2, [r1, #12]
13397   orrne r3, r6, r3
13398   orrne r3, r3, r2, asl #16
13399   strne r3, [r1, #12]
13400   mov r3, r4, lsr #8
13401   ands  r3, r3, #255
13402   ldrne r2, [r1, #8]
13403   orrne r3, r6, r3
13404   orrne r3, r3, r2, asl #16
13405   strne r3, [r1, #8]
13406   mov r3, r4, lsr #16
13407   ands  r3, r3, #255
13408   ldrne r2, [r1, #4]
13409   orrne r3, r6, r3
13410   orrne r3, r3, r2, asl #16
13411   strne r3, [r1, #4]
13412   movs  r3, r4, lsr #24
13413   ldrne r2, [r1, #0]
13414   orrne r3, r6, r3
13415   orrne r3, r3, r2, asl #16
13416   strne r3, [r1, #0]
13417 .L4978:
13418   ldr r4, [r5, #0]
13419   cmp r4, #0
13420   beq .L4987
13421   ands  r3, r4, #255
13422   ldrne r2, [r1, #28]
13423   orrne r3, r6, r3
13424   orrne r3, r3, r2, asl #16
13425   strne r3, [r1, #28]
13426   mov r3, r4, lsr #8
13427   ands  r3, r3, #255
13428   ldrne r2, [r1, #24]
13429   orrne r3, r6, r3
13430   orrne r3, r3, r2, asl #16
13431   strne r3, [r1, #24]
13432   mov r3, r4, lsr #16
13433   ands  r3, r3, #255
13434   ldrne r2, [r1, #20]
13435   orrne r3, r6, r3
13436   orrne r3, r3, r2, asl #16
13437   strne r3, [r1, #20]
13438   movs  r3, r4, lsr #24
13439   ldrne r2, [r1, #16]
13440   orrne r3, r6, r3
13441   orrne r3, r3, r2, asl #16
13442   strne r3, [r1, #16]
13443 .L4987:
13444   add sl, sl, #1
13445   cmp r9, sl
13446   add r1, r1, #32
13447   add ip, ip, #2
13448   beq .L5482
13449 .L4973:
13450   ldrh  r2, [ip, #0]
13451   mov r3, r2, asl #22
13452   mov r3, r3, lsr #22
13453   tst r2, #2048
13454   add r5, r0, r3, asl #6
13455   ldrne r3, [sp, #4]
13456   addne r5, r5, r3
13457   tst r2, #1024
13458   bne .L5483
13459   ldr r4, [r5, #0]
13460   cmp r4, #0
13461   beq .L4996
13462   ands  r3, r4, #255
13463   ldrne r2, [r1, #0]
13464   orrne r3, r6, r3
13465   orrne r3, r3, r2, asl #16
13466   strne r3, [r1, #0]
13467   mov r3, r4, lsr #8
13468   ands  r3, r3, #255
13469   ldrne r2, [r1, #4]
13470   orrne r3, r6, r3
13471   orrne r3, r3, r2, asl #16
13472   strne r3, [r1, #4]
13473   mov r3, r4, lsr #16
13474   ands  r3, r3, #255
13475   ldrne r2, [r1, #8]
13476   orrne r3, r6, r3
13477   orrne r3, r3, r2, asl #16
13478   strne r3, [r1, #8]
13479   movs  r3, r4, lsr #24
13480   ldrne r2, [r1, #12]
13481   orrne r3, r6, r3
13482   orrne r3, r3, r2, asl #16
13483   strne r3, [r1, #12]
13484 .L4996:
13485   ldr r4, [r5, #4]
13486   cmp r4, #0
13487   beq .L4987
13488   ands  r3, r4, #255
13489   ldrne r2, [r1, #16]
13490   orrne r3, r6, r3
13491   orrne r3, r3, r2, asl #16
13492   strne r3, [r1, #16]
13493   mov r3, r4, lsr #8
13494   ands  r3, r3, #255
13495   ldrne r2, [r1, #20]
13496   orrne r3, r6, r3
13497   orrne r3, r3, r2, asl #16
13498   strne r3, [r1, #20]
13499   mov r3, r4, lsr #16
13500   ands  r3, r3, #255
13501   ldrne r2, [r1, #24]
13502   orrne r3, r6, r3
13503   orrne r3, r3, r2, asl #16
13504   strne r3, [r1, #24]
13505   movs  r3, r4, lsr #24
13506   ldrne r2, [r1, #28]
13507   orrne r3, r6, r3
13508   orrne r3, r3, r2, asl #16
13509   add sl, sl, #1
13510   strne r3, [r1, #28]
13511   cmp r9, sl
13512   add r1, r1, #32
13513   add ip, ip, #2
13514   bne .L4973
13515 .L5482:
13516   add r8, r8, r9, asl #5
13517   add r7, r7, r9, asl #1
13518 .L4971:
13519   ands  ip, fp, #7
13520   beq .L5444
13521   ldrh  r2, [r7, #0]
13522   tst r2, #2048
13523   mov r3, r2, asl #22
13524   ldrne r1, [sp, #4]
13525   mov r3, r3, lsr #22
13526   add r0, r0, r3, asl #6
13527   addne r0, r0, r1
13528   tst r2, #1024
13529   bne .L5484
13530   cmp ip, #3
13531   ldrls r0, [r0, #0]
13532   bls .L5048
13533   ldr r1, [r0, #0]
13534   cmp r1, #0
13535   beq .L5038
13536   ands  r3, r1, #255
13537   ldrne r2, [r8, #0]
13538   orrne r3, r6, r3
13539   orrne r3, r3, r2, asl #16
13540   strne r3, [r8, #0]
13541   mov r3, r1, lsr #8
13542   ands  r3, r3, #255
13543   ldrne r2, [r8, #4]
13544   orrne r3, r6, r3
13545   orrne r3, r3, r2, asl #16
13546   strne r3, [r8, #4]
13547   mov r3, r1, lsr #16
13548   ands  r3, r3, #255
13549   ldrne r2, [r8, #8]
13550   orrne r3, r6, r3
13551   orrne r3, r3, r2, asl #16
13552   strne r3, [r8, #8]
13553   movs  r3, r1, lsr #24
13554   ldrne r2, [r8, #12]
13555   orrne r3, r6, r3
13556   orrne r3, r3, r2, asl #16
13557   strne r3, [r8, #12]
13558 .L5038:
13559   subs  ip, ip, #4
13560   ldr r0, [r0, #4]
13561   addne r8, r8, #16
13562   beq .L5444
13563 .L5048:
13564   mov r1, #0
13565 .L5049:
13566   ands  r3, r0, #255
13567   orr r2, r6, r3
13568   ldrne r3, [r8, #0]
13569   add r1, r1, #1
13570   orrne r3, r2, r3, asl #16
13571   strne r3, [r8, #0]
13572   cmp ip, r1
13573   mov r0, r0, lsr #8
13574   add r8, r8, #4
13575   bhi .L5049
13576   b .L5444
13577 .L5440:
13578   ands  r1, r0, #15
13579   ldrne r3, [r8, #0]
13580   add lr, lr, #1
13581   orrne r3, r1, r3, asl #16
13582   orrne r3, r3, r2
13583   strne r3, [r8, #0]
13584   cmp r4, lr
13585   mov r0, r0, lsr #4
13586   add r8, r8, #4
13587   bne .L5440
13588   b .L5444
13589 .L5323:
13590   ands  r1, r0, #15
13591   ldrne r3, [r8, #0]
13592   add lr, lr, #1
13593   orrne r3, r1, r3, asl #16
13594   orrne r3, r3, r2
13595   strne r3, [r8, #0]
13596   cmp r5, lr
13597   mov r0, r0, lsr #4
13598   add r8, r8, #4
13599   bne .L5323
13600   b .L5444
13601 .L5200:
13602   cmp ip, #3
13603   ldrls r0, [r0, #0]
13604   bls .L5231
13605   ldr r1, [r0, #0]
13606   cmp r1, #0
13607   beq .L5221
13608   ands  r3, r1, #255
13609   ldrne r2, [r8, #0]
13610   orrne r3, r6, r3
13611   orrne r3, r3, r2, asl #16
13612   strne r3, [r8, #0]
13613   mov r3, r1, lsr #8
13614   ands  r3, r3, #255
13615   ldrne r2, [r8, #4]
13616   orrne r3, r6, r3
13617   orrne r3, r3, r2, asl #16
13618   strne r3, [r8, #4]
13619   mov r3, r1, lsr #16
13620   ands  r3, r3, #255
13621   ldrne r2, [r8, #8]
13622   orrne r3, r6, r3
13623   orrne r3, r3, r2, asl #16
13624   strne r3, [r8, #8]
13625   movs  r3, r1, lsr #24
13626   ldrne r2, [r8, #12]
13627   orrne r3, r6, r3
13628   orrne r3, r3, r2, asl #16
13629   strne r3, [r8, #12]
13630 .L5221:
13631   subs  ip, ip, #4
13632   ldr r0, [r0, #4]
13633   addne r8, r8, #16
13634   beq .L5444
13635 .L5231:
13636   mov r1, #0
13637 .L5232:
13638   ands  r3, r0, #255
13639   orr r2, r6, r3
13640   ldrne r3, [r8, #0]
13641   add r1, r1, #1
13642   orrne r3, r2, r3, asl #16
13643   strne r3, [r8, #0]
13644   cmp ip, r1
13645   mov r0, r0, lsr #8
13646   add r8, r8, #4
13647   bhi .L5232
13648   b .L5444
13649 .L5484:
13650   cmp ip, #3
13651   ldrls r0, [r0, #4]
13652   bls .L5031
13653   ldr r1, [r0, #4]
13654   cmp r1, #0
13655   beq .L5021
13656   ands  r3, r1, #255
13657   ldrne r2, [r8, #12]
13658   orrne r3, r6, r3
13659   orrne r3, r3, r2, asl #16
13660   strne r3, [r8, #12]
13661   mov r3, r1, lsr #8
13662   ands  r3, r3, #255
13663   ldrne r2, [r8, #8]
13664   orrne r3, r6, r3
13665   orrne r3, r3, r2, asl #16
13666   strne r3, [r8, #8]
13667   mov r3, r1, lsr #16
13668   ands  r3, r3, #255
13669   ldrne r2, [r8, #4]
13670   orrne r3, r6, r3
13671   orrne r3, r3, r2, asl #16
13672   strne r3, [r8, #4]
13673   movs  r3, r1, lsr #24
13674   ldrne r2, [r8, #0]
13675   orrne r3, r6, r3
13676   orrne r3, r3, r2, asl #16
13677   strne r3, [r8, #0]
13678 .L5021:
13679   subs  ip, ip, #4
13680   ldr r0, [r0, #0]
13681   addne r8, r8, #16
13682   beq .L5444
13683 .L5031:
13684   mov r1, #0
13685 .L5032:
13686   movs  r3, r0, lsr #24
13687   orr r2, r6, r3
13688   ldrne r3, [r8, #0]
13689   add r1, r1, #1
13690   orrne r3, r2, r3, asl #16
13691   strne r3, [r8, #0]
13692   cmp ip, r1
13693   mov r0, r0, asl #8
13694   add r8, r8, #4
13695   bhi .L5032
13696   b .L5444
13697 .L5473:
13698   cmp ip, #3
13699   bls .L5060
13700   cmp lr, #0
13701   ldr r2, [r5, #0]
13702   beq .L5062
13703   mov r3, ip, asl #3
13704   sub r3, r3, #32
13705   mov r1, r2, asl r3
13706   mov r4, #0
13707   mov r2, r8
13708 .L5064:
13709   movs  r3, r1, lsr #24
13710   orr ip, r6, r3
13711   ldrne r3, [r2, #0]
13712   add r4, r4, #1
13713   orrne r3, ip, r3, asl #16
13714   strne r3, [r2, #0]
13715   cmp lr, r4
13716   mov r1, r1, asl #8
13717   add r2, r2, #4
13718   bne .L5064
13719   add r8, r8, lr, asl #2
13720   b .L5062
13721 .L5467:
13722   cmp r5, #0
13723   ldr r2, [r3, #0]
13724   beq .L5334
13725   mov r3, r1, asl #2
13726   mov r1, r2, asl r3
13727   orr r0, r6, r0
13728   mov r2, r8
13729   mov ip, #0
13730 .L5336:
13731   movs  r4, r1, lsr #28
13732   ldrne r3, [r2, #0]
13733   add ip, ip, #1
13734   orrne r3, r4, r3, asl #16
13735   orrne r3, r3, r0
13736   strne r3, [r2, #0]
13737   cmp r5, ip
13738   mov r1, r1, asl #4
13739   add r2, r2, #4
13740   bne .L5336
13741   add r8, r8, r5, asl #2
13742   b .L5334
13743 .L5478:
13744   ldrh  r4, [r7, #0]
13745   mov r3, r4, asl #22
13746   mov r3, r3, lsr #22
13747   tst r4, #2048
13748   add r0, lr, r3, asl #5
13749   ldrne r3, [sp, #8]
13750   mov r2, r4, lsr #12
13751   addne r0, r0, r3
13752   tst r4, #1024
13753   mov r2, r2, asl #4
13754   beq .L5244
13755   cmp fp, #0
13756   ldr r0, [r0, #0]
13757   beq .L5444
13758   mov r3, r1, asl #2
13759   mov r0, r0, asl r3
13760   orr r2, r6, r2
13761   mov lr, #0
13762 .L5247:
13763   movs  r1, r0, lsr #28
13764   ldrne r3, [r8, #0]
13765   add lr, lr, #1
13766   orrne r3, r1, r3, asl #16
13767   orrne r3, r3, r2
13768   strne r3, [r8, #0]
13769   cmp fp, lr
13770   mov r0, r0, asl #4
13771   add r8, r8, #4
13772   bne .L5247
13773   b .L5444
13774 .L5481:
13775   ldrh  r2, [r7, #0]
13776   tst r2, #2048
13777   mov r3, r2, asl #22
13778   ldrne r1, [sp, #4]
13779   mov r3, r3, lsr #22
13780   add r0, r0, r3, asl #6
13781   addne r0, r0, r1
13782   tst r2, #1024
13783   beq .L4863
13784   cmp ip, #3
13785   bls .L4865
13786   cmp fp, #0
13787   ldr r0, [r0, #0]
13788   beq .L5444
13789   mov r3, ip, asl #3
13790   sub r3, r3, #32
13791   mov r0, r0, asl r3
13792   mov r1, #0
13793 .L4869:
13794   movs  r3, r0, lsr #24
13795   orr r2, r6, r3
13796   ldrne r3, [r8, #0]
13797   add r1, r1, #1
13798   orrne r3, r2, r3, asl #16
13799   strne r3, [r8, #0]
13800   cmp fp, r1
13801   mov r0, r0, asl #8
13802   add r8, r8, #4
13803   bne .L4869
13804   b .L5444
13805 .L5060:
13806   subs  r9, lr, #4
13807   ldr r2, [r5, #4]
13808   beq .L5069
13809   mov r3, ip, asl #3
13810   sub r3, r3, #32
13811   mov r1, r2, asl r3
13812   mov r4, #0
13813   mov r2, r8
13814 .L5071:
13815   movs  r3, r1, lsr #24
13816   orr ip, r6, r3
13817   ldrne r3, [r2, #0]
13818   add r4, r4, #1
13819   orrne r3, ip, r3, asl #16
13820   strne r3, [r2, #0]
13821   cmp r9, r4
13822   mov r1, r1, asl #8
13823   add r2, r2, #4
13824   bne .L5071
13825   add r3, r8, lr, asl #2
13826   sub r8, r3, #16
13827 .L5069:
13828   ldr r2, [r5, #0]
13829   cmp r2, #0
13830   beq .L5100
13831   ands  r1, r2, #255
13832   ldrne r3, [r8, #12]
13833   orrne r3, r6, r3, asl #16
13834   orrne r3, r1, r3
13835   strne r3, [r8, #12]
13836   mov r3, r2, lsr #8
13837   ands  r1, r3, #255
13838   ldrne r3, [r8, #8]
13839   orrne r3, r6, r3, asl #16
13840   orrne r3, r1, r3
13841   strne r3, [r8, #8]
13842   mov r3, r2, lsr #16
13843   ands  r1, r3, #255
13844   ldrne r3, [r8, #4]
13845   orrne r3, r6, r3, asl #16
13846   orrne r3, r1, r3
13847   strne r3, [r8, #4]
13848   movs  r2, r2, lsr #24
13849   ldrne r3, [r8, #0]
13850   orrne r3, r6, r3, asl #16
13851   orrne r3, r2, r3
13852   strne r3, [r8, #0]
13853 .L5100:
13854   add r8, r8, #16
13855   mov lr, r9
13856   add r7, r7, #2
13857   b .L5055
13858 .L5258:
13859   cmp r5, #0
13860   ldr r2, [r3, #0]
13861   beq .L5260
13862   mov r3, r1, asl #2
13863   mov r1, r2, lsr r3
13864   orr r0, r6, r0
13865   mov r2, r8
13866   mov r4, #0
13867 .L5268:
13868   ands  ip, r1, #15
13869   ldrne r3, [r2, #0]
13870   add r4, r4, #1
13871   orrne r3, ip, r3, asl #16
13872   orrne r3, r3, r0
13873   strne r3, [r2, #0]
13874   cmp r5, r4
13875   mov r1, r1, lsr #4
13876   add r2, r2, #4
13877   bne .L5268
13878   b .L5459
13879 .L4920:
13880   cmp ip, #3
13881   bls .L4947
13882   cmp lr, #0
13883   ldr r1, [r5, #4]
13884   beq .L4924
13885   mov r3, ip, asl #3
13886   sub r3, r3, #32
13887   mov r1, r1, lsr r3
13888   mov r4, r2
13889   mov r2, r8
13890 .L4950:
13891   ands  r3, r1, #255
13892   orr ip, r6, r3
13893   ldrne r3, [r2, #0]
13894   add r4, r4, #1
13895   orrne r3, ip, r3, asl #16
13896   strne r3, [r2, #0]
13897   cmp lr, r4
13898   mov r1, r1, lsr #8
13899   add r2, r2, #4
13900   bne .L4950
13901   b .L5446
13902 .L5244:
13903   cmp fp, #0
13904   ldr r0, [r0, #0]
13905   beq .L5444
13906   mov r3, r1, asl #2
13907   mov r0, r0, lsr r3
13908   orr r2, r6, r2
13909   mov lr, #0
13910 .L5252:
13911   ands  r1, r0, #15
13912   ldrne r3, [r8, #0]
13913   add lr, lr, #1
13914   orrne r3, r1, r3, asl #16
13915   orrne r3, r3, r2
13916   strne r3, [r8, #0]
13917   cmp fp, lr
13918   mov r0, r0, lsr #4
13919   add r8, r8, #4
13920   bne .L5252
13921   b .L5444
13922 .L4863:
13923   cmp ip, #3
13924   bls .L4892
13925   cmp fp, #0
13926   ldr r0, [r0, #4]
13927   beq .L5444
13928   mov r3, ip, asl #3
13929   sub r3, r3, #32
13930   mov r0, r0, lsr r3
13931   mov r1, #0
13932 .L4895:
13933   ands  r3, r0, #255
13934   orr r2, r6, r3
13935   ldrne r3, [r8, #0]
13936   add r1, r1, #1
13937   orrne r3, r2, r3, asl #16
13938   strne r3, [r8, #0]
13939   cmp fp, r1
13940   mov r0, r0, lsr #8
13941   add r8, r8, #4
13942   bne .L4895
13943   b .L5444
13944 .L5085:
13945   subs  r9, lr, #4
13946   ldr r2, [r5, #0]
13947   beq .L5093
13948   mov r3, ip, asl #3
13949   mov r1, r2, lsr r3
13950   mov r4, #0
13951   mov r2, r8
13952 .L5095:
13953   ands  r3, r1, #255
13954   orr ip, r6, r3
13955   ldrne r3, [r2, #0]
13956   add r4, r4, #1
13957   orrne r3, ip, r3, asl #16
13958   strne r3, [r2, #0]
13959   cmp r9, r4
13960   mov r1, r1, lsr #8
13961   add r2, r2, #4
13962   bne .L5095
13963   add r3, r8, lr, asl #2
13964   sub r8, r3, #16
13965 .L5093:
13966   ldr r2, [r5, #4]
13967   cmp r2, #0
13968   beq .L5100
13969   ands  r1, r2, #255
13970   ldrne r3, [r8, #0]
13971   orrne r3, r6, r3, asl #16
13972   orrne r3, r1, r3
13973   strne r3, [r8, #0]
13974   mov r3, r2, lsr #8
13975   ands  r1, r3, #255
13976   ldrne r3, [r8, #4]
13977   orrne r3, r6, r3, asl #16
13978   orrne r3, r1, r3
13979   strne r3, [r8, #4]
13980   mov r3, r2, lsr #16
13981   ands  r1, r3, #255
13982   ldrne r3, [r8, #8]
13983   orrne r3, r6, r3, asl #16
13984   orrne r3, r1, r3
13985   strne r3, [r8, #8]
13986   movs  r2, r2, lsr #24
13987   ldrne r3, [r8, #12]
13988   orrne r3, r6, r3, asl #16
13989   orrne r3, r2, r3
13990   strne r3, [r8, #12]
13991   b .L5100
13992 .L4922:
13993   subs  sl, lr, #4
13994   ldr r2, [r5, #4]
13995   beq .L4931
13996   mov r3, ip, asl #3
13997   sub r3, r3, #32
13998   mov r1, r2, asl r3
13999   mov r4, #0
14000   mov r2, r8
14001 .L4933:
14002   movs  r3, r1, lsr #24
14003   orr ip, r6, r3
14004   ldrne r3, [r2, #0]
14005   add r4, r4, #1
14006   orrne r3, ip, r3, asl #16
14007   strne r3, [r2, #0]
14008   cmp sl, r4
14009   mov r1, r1, asl #8
14010   add r2, r2, #4
14011   bne .L4933
14012   add r3, r8, lr, asl #2
14013   sub r8, r3, #16
14014 .L4931:
14015   ldr r2, [r5, #0]
14016   cmp r2, #0
14017   beq .L4962
14018   ands  r1, r2, #255
14019   ldrne r3, [r8, #12]
14020   orrne r3, r6, r3, asl #16
14021   orrne r3, r1, r3
14022   strne r3, [r8, #12]
14023   mov r3, r2, lsr #8
14024   ands  r1, r3, #255
14025   ldrne r3, [r8, #8]
14026   orrne r3, r6, r3, asl #16
14027   orrne r3, r1, r3
14028   strne r3, [r8, #8]
14029   mov r3, r2, lsr #16
14030   ands  r1, r3, #255
14031   ldrne r3, [r8, #4]
14032   orrne r3, r6, r3, asl #16
14033   orrne r3, r1, r3
14034   strne r3, [r8, #4]
14035   movs  r2, r2, lsr #24
14036   ldrne r3, [r8, #0]
14037   orrne r3, r6, r3, asl #16
14038   orrne r3, r2, r3
14039   strne r3, [r8, #0]
14040 .L4962:
14041   add r8, r8, #16
14042   b .L4924
14043 .L4865:
14044   mov r3, ip, asl #3
14045   ldr r1, [r0, #4]
14046   add r2, fp, ip
14047   sub r3, r3, #32
14048   cmp r2, #4
14049   mov r1, r1, asl r3
14050   bhi .L4873
14051   cmp fp, #0
14052   movne r0, #0
14053   beq .L5444
14054 .L4888:
14055   movs  r3, r1, lsr #24
14056   orr r2, r6, r3
14057   ldrne r3, [r8, #0]
14058   add r0, r0, #1
14059   orrne r3, r2, r3, asl #16
14060   strne r3, [r8, #0]
14061   cmp fp, r0
14062   mov r1, r1, asl #8
14063   add r8, r8, #4
14064   bne .L4888
14065   b .L5444
14066 .L4947:
14067   subs  sl, lr, #4
14068   ldr r2, [r5, #0]
14069   beq .L4955
14070   mov r3, ip, asl #3
14071   mov r1, r2, lsr r3
14072   mov r4, #0
14073   mov r2, r8
14074 .L4957:
14075   ands  r3, r1, #255
14076   orr ip, r6, r3
14077   ldrne r3, [r2, #0]
14078   add r4, r4, #1
14079   orrne r3, ip, r3, asl #16
14080   strne r3, [r2, #0]
14081   cmp sl, r4
14082   mov r1, r1, lsr #8
14083   add r2, r2, #4
14084   bne .L4957
14085   add r3, r8, lr, asl #2
14086   sub r8, r3, #16
14087 .L4955:
14088   ldr r2, [r5, #4]
14089   cmp r2, #0
14090   beq .L4962
14091   ands  r1, r2, #255
14092   ldrne r3, [r8, #0]
14093   orrne r3, r6, r3, asl #16
14094   orrne r3, r1, r3
14095   strne r3, [r8, #0]
14096   mov r3, r2, lsr #8
14097   ands  r1, r3, #255
14098   ldrne r3, [r8, #4]
14099   orrne r3, r6, r3, asl #16
14100   orrne r3, r1, r3
14101   strne r3, [r8, #4]
14102   mov r3, r2, lsr #16
14103   ands  r1, r3, #255
14104   ldrne r3, [r8, #8]
14105   orrne r3, r6, r3, asl #16
14106   orrne r3, r1, r3
14107   strne r3, [r8, #8]
14108   movs  r2, r2, lsr #24
14109   ldrne r3, [r8, #12]
14110   orrne r3, r6, r3, asl #16
14111   orrne r3, r2, r3
14112   strne r3, [r8, #12]
14113   add r8, r8, #16
14114   b .L4924
14115 .L4892:
14116   add r2, fp, ip
14117   ldr r3, [r0, #0]
14118   cmp r2, #4
14119   mov r1, ip, asl #3
14120   mov r2, r3, lsr r1
14121   bhi .L4899
14122   cmp fp, #0
14123   movne r0, #0
14124   beq .L5444
14125 .L4914:
14126   ands  r3, r2, #255
14127   orr r1, r6, r3
14128   ldrne r3, [r8, #0]
14129   add r0, r0, #1
14130   orrne r3, r1, r3, asl #16
14131   strne r3, [r8, #0]
14132   cmp fp, r0
14133   mov r2, r2, lsr #8
14134   add r8, r8, #4
14135   bne .L4914
14136   b .L5444
14137 .L4873:
14138   rsbs  r5, ip, #4
14139   beq .L4876
14140   mov r2, r8
14141   mov r4, #0
14142 .L4878:
14143   movs  r3, r1, lsr #24
14144   orr ip, r6, r3
14145   ldrne r3, [r2, #0]
14146   add r4, r4, #1
14147   orrne r3, ip, r3, asl #16
14148   strne r3, [r2, #0]
14149   cmp r5, r4
14150   mov r1, r1, asl #8
14151   add r2, r2, #4
14152   bne .L4878
14153   add r8, r8, r5, asl #2
14154 .L4876:
14155   subs  ip, fp, r5
14156   ldr r0, [r0, #0]
14157   beq .L5444
14158   mov r1, #0
14159 .L4884:
14160   movs  r3, r0, lsr #24
14161   orr r2, r6, r3
14162   ldrne r3, [r8, #0]
14163   add r1, r1, #1
14164   orrne r3, r2, r3, asl #16
14165   strne r3, [r8, #0]
14166   cmp ip, r1
14167   mov r0, r0, asl #8
14168   add r8, r8, #4
14169   bne .L4884
14170   b .L5444
14171 .L4899:
14172   rsbs  r5, ip, #4
14173   beq .L4902
14174   mov r1, r8
14175   mov r4, #0
14176 .L4904:
14177   ands  r3, r2, #255
14178   orr ip, r6, r3
14179   ldrne r3, [r1, #0]
14180   add r4, r4, #1
14181   orrne r3, ip, r3, asl #16
14182   strne r3, [r1, #0]
14183   cmp r5, r4
14184   mov r2, r2, lsr #8
14185   add r1, r1, #4
14186   bne .L4904
14187   add r8, r8, r5, asl #2
14188 .L4902:
14189   subs  ip, fp, r5
14190   ldr r0, [r0, #4]
14191   beq .L5444
14192   mov r1, #0
14193 .L4910:
14194   ands  r3, r0, #255
14195   orr r2, r6, r3
14196   ldrne r3, [r8, #0]
14197   add r1, r1, #1
14198   orrne r3, r2, r3, asl #16
14199   strne r3, [r8, #0]
14200   cmp ip, r1
14201   mov r0, r0, lsr #8
14202   add r8, r8, #4
14203   bne .L4910
14204   b .L5444
14205   .size render_scanline_text_transparent_alpha, .-render_scanline_text_transparent_alpha
14206   .align  2
14207   .global render_scanline_affine_base_normal
14208   .type render_scanline_affine_base_normal, %function
14209 render_scanline_affine_base_normal:
14210   @ args = 0, pretend = 0, frame = 24
14211   @ frame_needed = 0, uses_anonymous_args = 0
14212   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
14213   ldr r5, .L5544
14214   mov lr, r0, asl #4
14215   add ip, r5, r0, asl #1
14216   ldrh  r4, [ip, #8]
14217   ldr ip, .L5544+4
14218   sub r0, r0, #2
14219   sub lr, lr, #32
14220   add lr, lr, r5
14221   ldr sl, [ip, r0, asl #2]
14222   ldr ip, .L5544+8
14223   ldrsh fp, [lr, #36]
14224   mov r6, r4, lsr #14
14225   ldr r7, .L5544+12
14226   mov r5, r4, lsr #12
14227   ldrsh r9, [lr, #32]
14228   mov lr, r4, asl #3
14229   mov r4, r4, asl #12
14230   ldr r8, [ip, r0, asl #2]
14231   and r5, r5, #2
14232   and lr, lr, #63488
14233   and r4, r4, #49152
14234   sub sp, sp, #24
14235   add ip, r6, #7
14236   add r4, r4, r7
14237   add lr, lr, r7
14238   mov r0, #1
14239   add r6, r6, #4
14240   cmp fp, #0
14241   orrne r5, r5, #1
14242   mov r0, r0, asl ip
14243   str r4, [sp, #16]
14244   mla ip, r9, r1, r8
14245   rsb r4, r1, r2
14246   str r6, [sp, #8]
14247   str lr, [sp, #12]
14248   add r7, r3, r1, asl #1
14249   mla r8, fp, r1, sl
14250   cmp r5, #3
14251   ldrls pc, [pc, r5, asl #2]
14252   b .L5531
14253   .p2align 2
14254 .L5493:
14255   .word .L5489
14256   .word .L5490
14257   .word .L5491
14258   .word .L5492
14259 .L5491:
14260   sub sl, r0, #1
14261   and r3, sl, r8, asr #8
14262   cmp r0, r3
14263   bhi .L5541
14264 .L5531:
14265   add sp, sp, #24
14266   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
14267 .L5489:
14268   mov r3, r8, asr #8
14269   ldr sl, .L5544+16
14270   cmp r0, r3
14271   ldrh  r1, [sl, #0]
14272   bls .L5497
14273   ldr r5, [sp, #12]
14274   ldr lr, [sp, #8]
14275   mov r2, r3, lsr #3
14276   add r6, r5, r2, asl lr
14277   ldr r2, [sp, #16]
14278   and r3, r3, #7
14279   cmp r4, #0
14280   add fp, r2, r3, asl #3
14281   beq .L5497
14282   mov r5, ip, asr #8
14283   cmp r0, r5
14284   movhi r8, #0
14285   bhi .L5536
14286   mov r3, r1, asl #16
14287   mov r3, r3, lsr #16
14288   mov r8, #0
14289 .L5504:
14290   add r8, r8, #1
14291   add ip, ip, r9
14292   cmp r4, r8
14293   mov r2, ip, asr #8
14294   strh  r3, [r7], #2  @ movhi
14295   beq .L5496
14296   cmp r0, r2
14297   bls .L5504
14298   mov r5, r2
14299   b .L5536
14300 .L5490:
14301   ldr r5, .L5544+16
14302   cmp r4, #0
14303   ldrh  r3, [r5, #0]
14304   beq .L5531
14305   mov r1, r8, asr #8
14306   mov r5, ip, asr #8
14307   cmp r0, r5
14308   cmphi r0, r1
14309   movls r2, #0
14310   movhi r2, #1
14311   movls r3, r3, asl #16
14312   movls r1, r3, lsr #16
14313   movls sl, r2
14314   bls .L5512
14315   b .L5543
14316 .L5513:
14317   cmp r0, r2
14318   cmphi r0, r3
14319   bhi .L5514
14320 .L5512:
14321   add sl, sl, #1
14322   add ip, ip, r9
14323   add r8, r8, fp
14324   cmp r4, sl
14325   strh  r1, [r7, #0]  @ movhi
14326   mov r2, ip, asr #8
14327   mov r3, r8, asr #8
14328   add r7, r7, #2
14329   bne .L5513
14330   b .L5531
14331 .L5492:
14332   cmp r4, #0
14333   sub lr, r0, #1
14334   beq .L5531
14335   mvn r6, #0
14336   mov r0, #0
14337 .L5527:
14338   and r3, lr, r8, asr #8
14339   ldr r5, [sp, #8]
14340   mov r2, r3, lsr #3
14341   mov r2, r2, asl r5
14342   and r1, lr, ip, asr #8
14343   and sl, r3, #7
14344   add r3, r2, r1, lsr #3
14345   cmp r3, r6
14346   and r5, r1, #7
14347   ldrne r1, [sp, #12]
14348   mov r6, r3
14349   ldrne r2, [sp, #16]
14350   ldrneb  r3, [r1, r3]  @ zero_extendqisi2
14351   add r0, r0, #1
14352   addne r3, r2, r3, asl #6
14353   strne r3, [sp, #4]
14354   ldr r3, [sp, #4]
14355   cmp r4, r0
14356   add r2, r3, sl, asl #3
14357   ldrb  r3, [r2, r5]  @ zero_extendqisi2
14358   ldr r5, .L5544+16
14359   mov r3, r3, asl #1
14360   ldrh  r3, [r3, r5]
14361   add ip, ip, r9
14362   strh  r3, [r7, #0]  @ movhi
14363   add r8, r8, fp
14364   add r7, r7, #2
14365   bne .L5527
14366   b .L5531
14367 .L5541:
14368   ldr r0, [sp, #12]
14369   ldr r1, [sp, #8]
14370   mov r2, r3, lsr #3
14371   add r6, r0, r2, asl r1
14372   ldr r2, [sp, #16]
14373   and r3, r3, #7
14374   cmp r4, #0
14375   add r5, r2, r3, asl #3
14376   beq .L5531
14377   ldr lr, .L5544+16
14378   mov r0, #0
14379 .L5525:
14380   and r3, sl, ip, asr #8
14381   ldrb  r1, [r6, r3, lsr #3]  @ zero_extendqisi2
14382   and r3, r3, #7
14383   add r3, r3, r1, asl #6
14384   ldrb  r2, [r3, r5]  @ zero_extendqisi2
14385   add r0, r0, #1
14386   mov r2, r2, asl #1
14387   ldrh  r2, [r2, lr]
14388   cmp r4, r0
14389   strh  r2, [r7], #2  @ movhi
14390   add ip, ip, r9
14391   bne .L5525
14392   b .L5531
14393 .L5497:
14394   mov r8, #0
14395 .L5496:
14396   cmp r8, r4
14397   ldrh  r3, [sl, #0]
14398   bcs .L5531
14399   mov r3, r3, asl #16
14400   rsb r2, r8, r4
14401   mov r3, r3, lsr #16
14402   mov r1, #0
14403 .L5508:
14404   add r1, r1, #1
14405   cmp r2, r1
14406   strh  r3, [r7], #2  @ movhi
14407   bne .L5508
14408   b .L5531
14409 .L5506:
14410   cmp r0, r5
14411   bls .L5496
14412 .L5536:
14413   ldrb  r3, [r6, r5, lsr #3]  @ zero_extendqisi2
14414   and r2, r5, #7
14415   add r2, r2, r3, asl #6
14416   ldrb  r1, [r2, fp]  @ zero_extendqisi2
14417   add r8, r8, #1
14418   mov r1, r1, asl #1
14419   ldrh  r1, [r1, sl]
14420   add ip, ip, r9
14421   cmp r4, r8
14422   mov r5, ip, asr #8
14423   strh  r1, [r7], #2  @ movhi
14424   bhi .L5506
14425   b .L5496
14426 .L5514:
14427   mov r5, r2
14428   mov r1, r3
14429 .L5515:
14430   cmp r0, r1
14431   cmphi r0, r5
14432   mvnhi r6, #0
14433   bhi .L5519
14434   b .L5516
14435 .L5518:
14436   cmp r0, r1
14437   cmphi r0, r5
14438   bls .L5516
14439 .L5519:
14440   ldr r2, [sp, #8]
14441   mov r3, r1, lsr #3
14442   mov r3, r3, asl r2
14443   add r3, r3, r5, lsr #3
14444   cmp r3, r6
14445   ldrne r2, [sp, #12]
14446   and r1, r1, #7
14447   str r1, [sp, #0]
14448   mov r6, r3
14449   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
14450   ldrne r2, [sp, #16]
14451   and lr, r5, #7
14452   addne r3, r2, r3, asl #6
14453   strne r3, [sp, #20]
14454   ldr r2, [sp, #0]
14455   ldr r3, [sp, #20]
14456   add sl, sl, #1
14457   add r3, r3, r2, asl #3
14458   str r3, [sp, #0]
14459   ldrb  r3, [r3, lr]  @ zero_extendqisi2
14460   ldr lr, .L5544+16
14461   mov r3, r3, asl #1
14462   ldrh  r3, [r3, lr]
14463   add ip, ip, r9
14464   add r8, r8, fp
14465   cmp r4, sl
14466   strh  r3, [r7, #0]  @ movhi
14467   mov r1, r8, asr #8
14468   mov r5, ip, asr #8
14469   add r7, r7, #2
14470   bhi .L5518
14471   b .L5531
14472 .L5516:
14473   ldr lr, .L5544+16
14474   ldrh  r3, [lr, #0]
14475 .L5520:
14476   add sl, sl, #1
14477   cmp r4, sl
14478   strh  r3, [r7], #2  @ movhi
14479   bhi .L5520
14480   b .L5531
14481 .L5543:
14482   mov sl, #0
14483   b .L5515
14484 .L5545:
14485   .align  2
14486 .L5544:
14487   .word io_registers
14488   .word affine_reference_y
14489   .word affine_reference_x
14490   .word vram
14491   .word palette_ram_converted
14492   .size render_scanline_affine_base_normal, .-render_scanline_affine_base_normal
14493   .align  2
14494   .global render_scanline_affine_transparent_normal
14495   .type render_scanline_affine_transparent_normal, %function
14496 render_scanline_affine_transparent_normal:
14497   @ args = 0, pretend = 0, frame = 28
14498   @ frame_needed = 0, uses_anonymous_args = 0
14499   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
14500   ldr r5, .L5602
14501   mov lr, r0, asl #4
14502   add ip, r5, r0, asl #1
14503   ldrh  r4, [ip, #8]
14504   ldr ip, .L5602+4
14505   sub r0, r0, #2
14506   sub lr, lr, #32
14507   add lr, lr, r5
14508   ldr sl, [ip, r0, asl #2]
14509   ldr ip, .L5602+8
14510   ldrsh fp, [lr, #36]
14511   mov r6, r4, lsr #14
14512   ldr r7, .L5602+12
14513   mov r5, r4, lsr #12
14514   ldrsh r9, [lr, #32]
14515   mov lr, r4, asl #3
14516   mov r4, r4, asl #12
14517   ldr r8, [ip, r0, asl #2]
14518   and r5, r5, #2
14519   and lr, lr, #63488
14520   and r4, r4, #49152
14521   sub sp, sp, #28
14522   add ip, r6, #7
14523   add r4, r4, r7
14524   add lr, lr, r7
14525   mov r0, #1
14526   add r6, r6, #4
14527   cmp fp, #0
14528   orrne r5, r5, #1
14529   mov r0, r0, asl ip
14530   str r4, [sp, #16]
14531   str lr, [sp, #12]
14532   rsb r4, r1, r2
14533   str r6, [sp, #8]
14534   add lr, r3, r1, asl #1
14535   mla ip, r9, r1, r8
14536   mla r7, fp, r1, sl
14537   cmp r5, #3
14538   ldrls pc, [pc, r5, asl #2]
14539   b .L5594
14540   .p2align 2
14541 .L5552:
14542   .word .L5548
14543   .word .L5549
14544   .word .L5550
14545   .word .L5551
14546 .L5548:
14547   mov r3, r7, asr #8
14548   cmp r0, r3
14549   bhi .L5597
14550 .L5594:
14551   add sp, sp, #28
14552   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
14553 .L5549:
14554   cmp r4, #0
14555   beq .L5594
14556   mov r5, ip, asr #8
14557   mov r1, r7, asr #8
14558   cmp r0, r5
14559   cmphi r0, r1
14560   movls r3, #0
14561   movhi r3, #1
14562   movls r8, r3
14563   bls .L5556
14564   b .L5600
14565 .L5570:
14566   cmp r0, r2
14567   cmphi r0, r3
14568   bhi .L5571
14569 .L5556:
14570   add r8, r8, #1
14571   add ip, ip, r9
14572   add r7, r7, fp
14573   cmp r4, r8
14574   mov r2, ip, asr #8
14575   mov r3, r7, asr #8
14576   add lr, lr, #2
14577   bne .L5570
14578   b .L5594
14579 .L5550:
14580   sub r8, r0, #1
14581   and r3, r8, r7, asr #8
14582   cmp r0, r3
14583   bls .L5594
14584   ldr r0, [sp, #12]
14585   ldr r1, [sp, #8]
14586   mov r2, r3, lsr #3
14587   add r6, r0, r2, asl r1
14588   ldr r2, [sp, #16]
14589   and r3, r3, #7
14590   cmp r4, #0
14591   add r5, r2, r3, asl #3
14592   beq .L5594
14593   ldr r7, .L5602+16
14594   mov r0, #0
14595 .L5583:
14596   and r3, r8, ip, asr #8
14597   ldrb  r2, [r6, r3, lsr #3]  @ zero_extendqisi2
14598   and r3, r3, #7
14599   add r3, r3, r2, asl #6
14600   ldrb  r1, [r3, r5]  @ zero_extendqisi2
14601   mov r3, r0, asl #1
14602   cmp r1, #0
14603   mov r1, r1, asl #1
14604   ldrneh  r1, [r1, r7]
14605   add r0, r0, #1
14606   strneh  r1, [r3, lr]  @ movhi
14607   cmp r4, r0
14608   add ip, ip, r9
14609   bne .L5583
14610   b .L5594
14611 .L5551:
14612   cmp r4, #0
14613   sub r6, r0, #1
14614   beq .L5594
14615   mvn r3, #0
14616   str r3, [sp, #24]
14617   mov r5, #0
14618 .L5588:
14619   and r3, r6, r7, asr #8
14620   ldr sl, [sp, #8]
14621   mov r2, r3, lsr #3
14622   mov r2, r2, asl sl
14623   and r1, r6, ip, asr #8
14624   and r0, r3, #7
14625   and r8, r1, #7
14626   add r3, r2, r1, lsr #3
14627   ldr r1, [sp, #24]
14628   str r3, [sp, #24]
14629   cmp r3, r1
14630   ldrne r2, [sp, #12]
14631   ldrne r1, [sp, #16]
14632   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
14633   mov sl, r5, asl #1
14634   addne r3, r1, r3, asl #6
14635   strne r3, [sp, #4]
14636   ldr r2, [sp, #4]
14637   add r5, r5, #1
14638   add r3, r2, r0, asl #3
14639   ldrb  r2, [r3, r8]  @ zero_extendqisi2
14640   add ip, ip, r9
14641   cmp r2, #0
14642   ldrne r3, .L5602+16
14643   mov r1, r2, asl #1
14644   ldrneh  r1, [r1, r3]
14645   add r7, r7, fp
14646   strneh  r1, [sl, lr]  @ movhi
14647   cmp r4, r5
14648   bne .L5588
14649   b .L5594
14650 .L5597:
14651   ldr r1, [sp, #12]
14652   ldr r5, [sp, #8]
14653   ldr sl, [sp, #16]
14654   mov r2, r3, lsr #3
14655   cmp r4, #0
14656   and r3, r3, #7
14657   add r6, r1, r2, asl r5
14658   add r8, sl, r3, asl #3
14659   beq .L5594
14660   mov r5, ip, asr #8
14661   cmp r0, r5
14662   movls r7, #0
14663   bls .L5563
14664   b .L5601
14665 .L5561:
14666   cmp r0, r2
14667   add lr, lr, #2
14668   bhi .L5562
14669 .L5563:
14670   add r7, r7, #1
14671   add ip, ip, r9
14672   cmp r4, r7
14673   mov r2, ip, asr #8
14674   bne .L5561
14675   b .L5594
14676 .L5571:
14677   mov r5, r2
14678   mov r1, r3
14679 .L5572:
14680   cmp r1, r0
14681   movcc r3, #0
14682   movcs r3, #1
14683   cmp r0, r5
14684   orrls r3, r3, #1
14685   cmp r3, #0
14686   mvneq r6, #0
14687   beq .L5574
14688   b .L5594
14689 .L5575:
14690   cmp r0, r1
14691   cmphi r0, r5
14692   bls .L5594
14693 .L5574:
14694   ldr r2, [sp, #8]
14695   mov r3, r1, lsr #3
14696   mov r3, r3, asl r2
14697   add r3, r3, r5, lsr #3
14698   cmp r3, r6
14699   and r2, r5, #7
14700   str r2, [sp, #0]
14701   ldrne r2, [sp, #12]
14702   mov r6, r3
14703   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
14704   ldrne r2, [sp, #16]
14705   and sl, r1, #7
14706   addne r3, r2, r3, asl #6
14707   strne r3, [sp, #20]
14708   ldr r2, [sp, #20]
14709   add r8, r8, #1
14710   add r3, r2, sl, asl #3
14711   ldr sl, [sp, #0]
14712   add ip, ip, r9
14713   ldrb  r2, [r3, sl]  @ zero_extendqisi2
14714   add r7, r7, fp
14715   cmp r2, #0
14716   ldrne r3, .L5602+16
14717   mov r2, r2, asl #1
14718   ldrneh  r2, [r2, r3]
14719   mov r1, r7, asr #8
14720   strneh  r2, [lr, #0]  @ movhi
14721   cmp r4, r8
14722   mov r5, ip, asr #8
14723   add lr, lr, #2
14724   bhi .L5575
14725   b .L5594
14726 .L5562:
14727   mov r5, r2
14728 .L5564:
14729   cmp r5, r0
14730   bcc .L5596
14731   b .L5594
14732 .L5566:
14733   cmp r0, r5
14734   bls .L5594
14735 .L5596:
14736   ldrb  r3, [r6, r5, lsr #3]  @ zero_extendqisi2
14737   and r2, r5, #7
14738   add r2, r2, r3, asl #6
14739   ldrb  r1, [r2, r8]  @ zero_extendqisi2
14740   add r7, r7, #1
14741   cmp r1, #0
14742   ldrne r3, .L5602+16
14743   mov r1, r1, asl #1
14744   ldrneh  r1, [r1, r3]
14745   add ip, ip, r9
14746   strneh  r1, [lr, #0]  @ movhi
14747   cmp r4, r7
14748   mov r5, ip, asr #8
14749   add lr, lr, #2
14750   bhi .L5566
14751   b .L5594
14752 .L5600:
14753   mov r8, #0
14754   b .L5572
14755 .L5601:
14756   mov r7, #0
14757   b .L5564
14758 .L5603:
14759   .align  2
14760 .L5602:
14761   .word io_registers
14762   .word affine_reference_y
14763   .word affine_reference_x
14764   .word vram
14765   .word palette_ram_converted
14766   .size render_scanline_affine_transparent_normal, .-render_scanline_affine_transparent_normal
14767   .align  2
14768   .global render_scanline_affine_base_color16
14769   .type render_scanline_affine_base_color16, %function
14770 render_scanline_affine_base_color16:
14771   @ args = 0, pretend = 0, frame = 36
14772   @ frame_needed = 0, uses_anonymous_args = 0
14773   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
14774   ldr r5, .L5672
14775   add r7, r0, #7
14776   ldrh  r6, [r5, #80]
14777   mov lr, r0, asl #4
14778   mov sl, r6, asr r0
14779   mov r7, r6, asr r7
14780   sub lr, lr, #32
14781   add ip, r5, r0, asl #1
14782   add lr, lr, r5
14783   ldrh  r4, [ip, #8]
14784   ldrsh ip, [lr, #36]
14785   sub sp, sp, #36
14786   str ip, [sp, #24]
14787   ldr ip, .L5672+4
14788   sub r0, r0, #2
14789   ldr ip, [ip, r0, asl #2]
14790   mov r8, r4, lsr #12
14791   str ip, [sp, #4]
14792   ldr ip, .L5672+8
14793   mov r9, r4, lsr #14
14794   ldr r0, [ip, r0, asl #2]
14795   ldrsh lr, [lr, #32]
14796   str r0, [sp, #8]
14797   ldr r0, [sp, #24]
14798   and r8, r8, #2
14799   add ip, r9, #7
14800   cmp r0, #0
14801   orrne r8, r8, #1
14802   mov r0, #1
14803   mov r5, r6, lsr #12
14804   str lr, [sp, #12]
14805   mov ip, r0, asl ip
14806   mov lr, r4, asl #3
14807   ldr r0, .L5672+12
14808   mov r4, r4, asl #12
14809   and r7, r7, #2
14810   mov r6, r6, asl #26
14811   and r5, r5, #2
14812   and sl, sl, #1
14813   and lr, lr, #63488
14814   and r4, r4, #49152
14815   orr r5, r5, r6, lsr #31
14816   orr sl, sl, r7
14817   add r4, r4, r0
14818   add lr, lr, r0
14819   rsb fp, r1, r2
14820   add r7, r3, r1, asl #1
14821   ldr r6, [sp, #8]
14822   ldr r2, [sp, #12]
14823   ldr r0, [sp, #4]
14824   ldr r3, [sp, #24]
14825   mov r5, r5, asl #9
14826   mov sl, sl, asl #9
14827   str r4, [sp, #32]
14828   str r5, [sp, #16]
14829   str sl, [sp, #20]
14830   add r9, r9, #4
14831   str lr, [sp, #28]
14832   mla r6, r2, r1, r6
14833   mla r0, r3, r1, r0
14834   cmp r8, #3
14835   ldrls pc, [pc, r8, asl #2]
14836   b .L5661
14837   .p2align 2
14838 .L5610:
14839   .word .L5606
14840   .word .L5607
14841   .word .L5608
14842   .word .L5609
14843 .L5608:
14844   sub lr, ip, #1
14845   and r3, lr, r0, asr #8
14846   cmp ip, r3
14847   bhi .L5669
14848 .L5661:
14849   add sp, sp, #36
14850   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
14851 .L5606:
14852   mov r3, r0, asr #8
14853   cmp ip, r3
14854   movls r0, #0
14855   bls .L5617
14856   ldr r0, [sp, #28]
14857   ldr r1, [sp, #32]
14858   mov r2, r3, lsr #3
14859   cmp fp, #0
14860   and r3, r3, #7
14861   add r9, r0, r2, asl r9
14862   add r4, r1, r3, asl #3
14863   beq .L5661
14864   mov r2, r6, asr #8
14865   cmp ip, r2
14866   movhi r0, #0
14867   bhi .L5664
14868   ldr r2, [sp, #16]
14869   mov r0, #0
14870   mov r3, r2, asl #16
14871   mov r3, r3, lsr #16
14872   b .L5625
14873 .L5623:
14874   cmp ip, r2
14875   bhi .L5664
14876 .L5625:
14877   ldr r1, [sp, #12]
14878   add r0, r0, #1
14879   add r6, r6, r1
14880   cmp fp, r0
14881   mov r2, r6, asr #8
14882   strh  r3, [r7], #2  @ movhi
14883   bne .L5623
14884 .L5617:
14885   cmp r0, fp
14886   bcs .L5661
14887   ldr r2, [sp, #16]
14888   mov r1, #0
14889   mov r3, r2, asl #16
14890   mov r3, r3, lsr #16
14891   rsb r2, r0, fp
14892 .L5632:
14893   add r1, r1, #1
14894   cmp r1, r2
14895   strh  r3, [r7], #2  @ movhi
14896   bne .L5632
14897   b .L5661
14898 .L5607:
14899   cmp fp, #0
14900   beq .L5661
14901   mov r1, r6, asr #8
14902   mov r2, r0, asr #8
14903   cmp ip, r1
14904   cmphi ip, r2
14905   ldrls r4, [sp, #16]
14906   movls r8, #0
14907   movhi r8, #1
14908   movls r3, r4, asl #16
14909   movls r1, r3, lsr #16
14910   bls .L5614
14911   b .L5671
14912 .L5633:
14913   cmp ip, r2
14914   cmphi ip, r3
14915   bhi .L5634
14916 .L5614:
14917   ldr r3, [sp, #12]
14918   ldr r4, [sp, #24]
14919   add r8, r8, #1
14920   add r6, r6, r3
14921   add r0, r0, r4
14922   cmp fp, r8
14923   strh  r1, [r7, #0]  @ movhi
14924   mov r2, r6, asr #8
14925   mov r3, r0, asr #8
14926   add r7, r7, #2
14927   bne .L5633
14928   b .L5661
14929 .L5609:
14930   cmp fp, #0
14931   sub sl, ip, #1
14932   beq .L5661
14933   mvn r5, #0
14934   mov r4, #0
14935 .L5654:
14936   and r3, sl, r0, asr #8
14937   mov r2, r3, lsr #3
14938   mov r2, r2, asl r9
14939   and r1, sl, r6, asr #8
14940   add ip, r2, r1, lsr #3
14941   cmp ip, r5
14942   and r8, r1, #7
14943   ldrne r1, [sp, #28]
14944   and lr, r3, #7
14945   ldrne r2, [sp, #32]
14946   ldrneb  r3, [r1, ip]  @ zero_extendqisi2
14947   add r4, r4, #1
14948   addne r3, r2, r3, asl #6
14949   strne r3, [sp, #0]
14950   ldr r1, [sp, #0]
14951   mov r5, ip
14952   add r3, r1, lr, asl #3
14953   ldrb  r2, [r3, r8]  @ zero_extendqisi2
14954   ldr r3, [sp, #20]
14955   cmp r2, #0
14956   orr r1, r2, r3
14957   ldreq r1, [sp, #16]
14958   ldr r2, [sp, #12]
14959   ldr r3, [sp, #24]
14960   cmp fp, r4
14961   strh  r1, [r7, #0]  @ movhi
14962   add r6, r6, r2
14963   add r0, r0, r3
14964   add r7, r7, #2
14965   bne .L5654
14966   b .L5661
14967 .L5669:
14968   ldr r4, [sp, #28]
14969   ldr ip, [sp, #32]
14970   mov r2, r3, lsr #3
14971   cmp fp, #0
14972   and r3, r3, #7
14973   add r9, r4, r2, asl r9
14974   add r4, ip, r3, asl #3
14975   beq .L5661
14976   mov r0, #0
14977 .L5648:
14978   and r3, lr, r6, asr #8
14979   ldrb  r1, [r9, r3, lsr #3]  @ zero_extendqisi2
14980   and r3, r3, #7
14981   add r3, r3, r1, asl #6
14982   ldrb  r2, [r3, r4]  @ zero_extendqisi2
14983   ldr r1, [sp, #20]
14984   cmp r2, #0
14985   add r0, r0, #1
14986   orr r2, r2, r1
14987   ldr r3, [sp, #12]
14988   ldreq r2, [sp, #16]
14989   cmp fp, r0
14990   strh  r2, [r7, #0]  @ movhi
14991   add r6, r6, r3
14992   add r7, r7, #2
14993   bne .L5648
14994   b .L5661
14995 .L5627:
14996   cmp ip, r2
14997   bls .L5617
14998 .L5664:
14999   ldrb  r3, [r9, r2, lsr #3]  @ zero_extendqisi2
15000   and r2, r2, #7
15001   add r2, r2, r3, asl #6
15002   ldrb  r1, [r2, r4]  @ zero_extendqisi2
15003   ldr r2, [sp, #20]
15004   cmp r1, #0
15005   orr r1, r1, r2
15006   strneh  r1, [r7, #0]  @ movhi
15007   ldreq r3, [sp, #16]
15008   ldr r1, [sp, #12]
15009   add r0, r0, #1
15010   streqh  r3, [r7, #0]  @ movhi
15011   add r6, r6, r1
15012   cmp fp, r0
15013   add r7, r7, #2
15014   mov r2, r6, asr #8
15015   bhi .L5627
15016   b .L5617
15017 .L5634:
15018   mov r1, r2
15019   mov r2, r3
15020 .L5635:
15021   cmp r2, ip
15022   cmpcc r1, ip
15023   mvncc r4, #0
15024   bcc .L5639
15025   b .L5636
15026 .L5638:
15027   cmp ip, r2
15028   cmphi ip, r1
15029   bls .L5636
15030 .L5639:
15031   mov r3, r2, lsr #3
15032   mov r3, r3, asl r9
15033   and lr, r2, #7
15034   and r2, r1, #7
15035   add r1, r3, r1, lsr #3
15036   cmp r1, r4
15037   ldrne r4, [sp, #28]
15038   add r8, r8, #1
15039   ldrneb  r3, [r4, r1]  @ zero_extendqisi2
15040   ldrne r4, [sp, #32]
15041   addne r5, r4, r3, asl #6
15042   add r3, r5, lr, asl #3
15043   ldrb  r2, [r3, r2]  @ zero_extendqisi2
15044   ldr r3, [sp, #20]
15045   cmp r2, #0
15046   orr r2, r2, r3
15047   strneh  r2, [r7, #0]  @ movhi
15048   ldreq r4, [sp, #16]
15049   ldr r2, [sp, #12]
15050   ldr r3, [sp, #24]
15051   streqh  r4, [r7, #0]  @ movhi
15052   add r6, r6, r2
15053   add r0, r0, r3
15054   cmp fp, r8
15055   mov r4, r1
15056   add r7, r7, #2
15057   mov r1, r6, asr #8
15058   mov r2, r0, asr #8
15059   bhi .L5638
15060   b .L5661
15061 .L5636:
15062   ldr r4, [sp, #16]
15063   mov r3, r4, asl #16
15064   mov r3, r3, lsr #16
15065 .L5640:
15066   add r8, r8, #1
15067   cmp fp, r8
15068   strh  r3, [r7], #2  @ movhi
15069   bhi .L5640
15070   b .L5661
15071 .L5671:
15072   mov r8, #0
15073   b .L5635
15074 .L5673:
15075   .align  2
15076 .L5672:
15077   .word io_registers
15078   .word affine_reference_y
15079   .word affine_reference_x
15080   .word vram
15081   .size render_scanline_affine_base_color16, .-render_scanline_affine_base_color16
15082   .align  2
15083   .global render_scanline_affine_transparent_color16
15084   .type render_scanline_affine_transparent_color16, %function
15085 render_scanline_affine_transparent_color16:
15086   @ args = 0, pretend = 0, frame = 36
15087   @ frame_needed = 0, uses_anonymous_args = 0
15088   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
15089   ldr r5, .L5730
15090   add r7, r0, #7
15091   ldrh  r6, [r5, #80]
15092   add ip, r5, r0, asl #1
15093   mov r7, r6, asr r7
15094   mov r6, r6, asr r0
15095   ldrh  r4, [ip, #8]
15096   mov lr, r0, asl #4
15097   ldr ip, .L5730+4
15098   sub r0, r0, #2
15099   sub lr, lr, #32
15100   add lr, lr, r5
15101   ldr ip, [ip, r0, asl #2]
15102   sub sp, sp, #36
15103   ldrsh r9, [lr, #36]
15104   mov r8, r4, lsr #14
15105   mov r5, r4, lsr #12
15106   str ip, [sp, #8]
15107   ldrsh fp, [lr, #32]
15108   ldr ip, .L5730+8
15109   ldr sl, .L5730+12
15110   mov lr, r4, asl #3
15111   mov r4, r4, asl #12
15112   str r9, [sp, #16]
15113   and r4, r4, #49152
15114   ldr r9, [ip, r0, asl #2]
15115   and r7, r7, #2
15116   ldr ip, [sp, #16]
15117   add r4, r4, sl
15118   and r6, r6, #1
15119   orr r6, r6, r7
15120   and r5, r5, #2
15121   and lr, lr, #63488
15122   str r4, [sp, #24]
15123   ldr r7, [sp, #8]
15124   rsb r4, r1, r2
15125   ldr r2, [sp, #16]
15126   add lr, lr, sl
15127   cmp ip, #0
15128   orrne r5, r5, #1
15129   mov r0, #1
15130   add ip, r8, #7
15131   mov r6, r6, asl #9
15132   mov r0, r0, asl ip
15133   str lr, [sp, #20]
15134   str r6, [sp, #12]
15135   add r8, r8, #4
15136   add lr, r3, r1, asl #1
15137   mla ip, fp, r1, r9
15138   mla r7, r2, r1, r7
15139   cmp r5, #3
15140   ldrls pc, [pc, r5, asl #2]
15141   b .L5722
15142   .p2align 2
15143 .L5680:
15144   .word .L5676
15145   .word .L5677
15146   .word .L5678
15147   .word .L5679
15148 .L5676:
15149   mov r3, r7, asr #8
15150   cmp r0, r3
15151   bhi .L5725
15152 .L5722:
15153   add sp, sp, #36
15154   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
15155 .L5677:
15156   cmp r4, #0
15157   beq .L5722
15158   mov r5, ip, asr #8
15159   mov r1, r7, asr #8
15160   cmp r0, r5
15161   cmphi r0, r1
15162   movls r3, #0
15163   movhi r3, #1
15164   movls sl, r3
15165   bls .L5684
15166   b .L5728
15167 .L5698:
15168   cmp r0, r2
15169   cmphi r0, r3
15170   bhi .L5699
15171 .L5684:
15172   ldr r3, [sp, #16]
15173   add sl, sl, #1
15174   add ip, ip, fp
15175   add r7, r7, r3
15176   cmp r4, sl
15177   mov r2, ip, asr #8
15178   mov r3, r7, asr #8
15179   add lr, lr, #2
15180   bne .L5698
15181   b .L5722
15182 .L5678:
15183   sub r6, r0, #1
15184   and r3, r6, r7, asr #8
15185   cmp r0, r3
15186   bls .L5722
15187   ldr r9, [sp, #20]
15188   ldr r0, [sp, #24]
15189   mov r2, r3, lsr #3
15190   cmp r4, #0
15191   and r3, r3, #7
15192   add r8, r9, r2, asl r8
15193   add r5, r0, r3, asl #3
15194   beq .L5722
15195   mov r0, #0
15196 .L5711:
15197   and r3, r6, ip, asr #8
15198   ldrb  r2, [r8, r3, lsr #3]  @ zero_extendqisi2
15199   and r3, r3, #7
15200   add r3, r3, r2, asl #6
15201   ldrb  r1, [r3, r5]  @ zero_extendqisi2
15202   ldr r2, [sp, #12]
15203   cmp r1, #0
15204   mov r3, r0, asl #1
15205   orr r1, r1, r2
15206   add r0, r0, #1
15207   strneh  r1, [r3, lr]  @ movhi
15208   cmp r4, r0
15209   add ip, ip, fp
15210   bne .L5711
15211   b .L5722
15212 .L5679:
15213   cmp r4, #0
15214   sub r6, r0, #1
15215   beq .L5722
15216   mvn r3, #0
15217   str r3, [sp, #32]
15218   mov sl, #0
15219 .L5716:
15220   and r3, r6, r7, asr #8
15221   mov r2, r3, lsr #3
15222   mov r2, r2, asl r8
15223   and r1, r6, ip, asr #8
15224   and r9, r3, #7
15225   and r5, r1, #7
15226   add r3, r2, r1, lsr #3
15227   ldr r1, [sp, #32]
15228   str r3, [sp, #32]
15229   cmp r3, r1
15230   ldrne r2, [sp, #20]
15231   ldrne r1, [sp, #24]
15232   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
15233   ldr r0, [sp, #16]
15234   addne r3, r1, r3, asl #6
15235   strne r3, [sp, #4]
15236   ldr r2, [sp, #4]
15237   add r7, r7, r0
15238   add r3, r2, r9, asl #3
15239   ldrb  r2, [r3, r5]  @ zero_extendqisi2
15240   ldr r3, [sp, #12]
15241   mov r0, sl, asl #1
15242   cmp r2, #0
15243   add sl, sl, #1
15244   orr r1, r2, r3
15245   strneh  r1, [r0, lr]  @ movhi
15246   cmp r4, sl
15247   add ip, ip, fp
15248   bne .L5716
15249   b .L5722
15250 .L5725:
15251   ldr r9, [sp, #20]
15252   ldr r1, [sp, #24]
15253   mov r2, r3, lsr #3
15254   cmp r4, #0
15255   and r3, r3, #7
15256   add r8, r9, r2, asl r8
15257   add r6, r1, r3, asl #3
15258   beq .L5722
15259   mov r5, ip, asr #8
15260   cmp r0, r5
15261   movls r7, #0
15262   bls .L5691
15263   b .L5729
15264 .L5689:
15265   cmp r0, r2
15266   add lr, lr, #2
15267   bhi .L5690
15268 .L5691:
15269   add r7, r7, #1
15270   add ip, ip, fp
15271   cmp r4, r7
15272   mov r2, ip, asr #8
15273   bne .L5689
15274   b .L5722
15275 .L5699:
15276   mov r5, r2
15277   mov r1, r3
15278 .L5700:
15279   cmp r1, r0
15280   movcc r3, #0
15281   movcs r3, #1
15282   cmp r0, r5
15283   orrls r3, r3, #1
15284   cmp r3, #0
15285   mvneq r6, #0
15286   beq .L5702
15287   b .L5722
15288 .L5703:
15289   cmp r0, r1
15290   cmphi r0, r5
15291   bls .L5722
15292 .L5702:
15293   mov r3, r1, lsr #3
15294   mov r3, r3, asl r8
15295   add r3, r3, r5, lsr #3
15296   cmp r3, r6
15297   and r2, r5, #7
15298   str r2, [sp, #0]
15299   ldrne r2, [sp, #20]
15300   mov r6, r3
15301   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
15302   ldrne r2, [sp, #24]
15303   ldr r9, [sp, #16]
15304   addne r3, r2, r3, asl #6
15305   strne r3, [sp, #28]
15306   ldr r2, [sp, #28]
15307   add r7, r7, r9
15308   and r9, r1, #7
15309   add r3, r2, r9, asl #3
15310   ldr r9, [sp, #0]
15311   add sl, sl, #1
15312   ldrb  r2, [r3, r9]  @ zero_extendqisi2
15313   ldr r3, [sp, #12]
15314   cmp r2, #0
15315   orr r2, r2, r3
15316   strneh  r2, [lr, #0]  @ movhi
15317   add ip, ip, fp
15318   cmp r4, sl
15319   mov r1, r7, asr #8
15320   mov r5, ip, asr #8
15321   add lr, lr, #2
15322   bhi .L5703
15323   b .L5722
15324 .L5690:
15325   mov r5, r2
15326 .L5692:
15327   cmp r5, r0
15328   bcc .L5724
15329   b .L5722
15330 .L5694:
15331   cmp r0, r5
15332   bls .L5722
15333 .L5724:
15334   ldrb  r3, [r8, r5, lsr #3]  @ zero_extendqisi2
15335   and r2, r5, #7
15336   add r2, r2, r3, asl #6
15337   ldrb  r1, [r2, r6]  @ zero_extendqisi2
15338   ldr r2, [sp, #12]
15339   cmp r1, #0
15340   add r7, r7, #1
15341   orr r1, r1, r2
15342   strneh  r1, [lr, #0]  @ movhi
15343   add ip, ip, fp
15344   cmp r4, r7
15345   mov r5, ip, asr #8
15346   add lr, lr, #2
15347   bhi .L5694
15348   b .L5722
15349 .L5728:
15350   mov sl, #0
15351   b .L5700
15352 .L5729:
15353   mov r7, #0
15354   b .L5692
15355 .L5731:
15356   .align  2
15357 .L5730:
15358   .word io_registers
15359   .word affine_reference_y
15360   .word affine_reference_x
15361   .word vram
15362   .size render_scanline_affine_transparent_color16, .-render_scanline_affine_transparent_color16
15363   .align  2
15364   .global render_scanline_affine_base_color32
15365   .type render_scanline_affine_base_color32, %function
15366 render_scanline_affine_base_color32:
15367   @ args = 0, pretend = 0, frame = 36
15368   @ frame_needed = 0, uses_anonymous_args = 0
15369   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
15370   ldr r5, .L5799
15371   add r7, r0, #7
15372   ldrh  r6, [r5, #80]
15373   add ip, r5, r0, asl #1
15374   mov sl, r6, asr r0
15375   mov r7, r6, asr r7
15376   ldrh  r4, [ip, #8]
15377   mov lr, r0, asl #4
15378   ldr ip, .L5799+4
15379   sub r0, r0, #2
15380   sub lr, lr, #32
15381   ldr ip, [ip, r0, asl #2]
15382   add lr, lr, r5
15383   sub sp, sp, #36
15384   ldrsh r5, [lr, #36]
15385   str ip, [sp, #4]
15386   ldr ip, .L5799+8
15387   str r5, [sp, #24]
15388   ldr r0, [ip, r0, asl #2]
15389   mov r8, r4, lsr #12
15390   ldr ip, [sp, #24]
15391   mov r9, r4, lsr #14
15392   ldrsh lr, [lr, #32]
15393   and r8, r8, #2
15394   str r0, [sp, #8]
15395   cmp ip, #0
15396   orrne r8, r8, #1
15397   mov r0, #1
15398   add ip, r9, #7
15399   mov r5, r6, lsr #12
15400   str lr, [sp, #12]
15401   mov ip, r0, asl ip
15402   mov lr, r4, asl #3
15403   ldr r0, .L5799+12
15404   mov r4, r4, asl #12
15405   and r7, r7, #2
15406   mov r6, r6, asl #26
15407   and r5, r5, #2
15408   and sl, sl, #1
15409   and lr, lr, #63488
15410   and r4, r4, #49152
15411   orr r5, r5, r6, lsr #31
15412   orr sl, sl, r7
15413   add r4, r4, r0
15414   add lr, lr, r0
15415   rsb fp, r1, r2
15416   add r6, r3, r1, asl #2
15417   ldr r7, [sp, #8]
15418   ldr r2, [sp, #12]
15419   ldr r0, [sp, #4]
15420   ldr r3, [sp, #24]
15421   mov r5, r5, asl #9
15422   mov sl, sl, asl #9
15423   str r4, [sp, #32]
15424   str r5, [sp, #16]
15425   str sl, [sp, #20]
15426   add r9, r9, #4
15427   str lr, [sp, #28]
15428   mla r7, r2, r1, r7
15429   mla r0, r3, r1, r0
15430   cmp r8, #3
15431   ldrls pc, [pc, r8, asl #2]
15432   b .L5788
15433   .p2align 2
15434 .L5738:
15435   .word .L5734
15436   .word .L5735
15437   .word .L5736
15438   .word .L5737
15439 .L5736:
15440   sub lr, ip, #1
15441   and r3, lr, r0, asr #8
15442   cmp ip, r3
15443   bhi .L5796
15444 .L5788:
15445   add sp, sp, #36
15446   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
15447 .L5734:
15448   mov r3, r0, asr #8
15449   cmp ip, r3
15450   movls r0, #0
15451   bls .L5745
15452   ldr r4, [sp, #28]
15453   ldr r5, [sp, #32]
15454   mov r2, r3, lsr #3
15455   cmp fp, #0
15456   and r3, r3, #7
15457   add r9, r4, r2, asl r9
15458   add r4, r5, r3, asl #3
15459   beq .L5788
15460   mov r2, r7, asr #8
15461   cmp ip, r2
15462   movhi r0, #0
15463   movls r0, #0
15464   bls .L5751
15465   b .L5793
15466 .L5752:
15467   cmp ip, r2
15468   bhi .L5793
15469 .L5751:
15470   ldr lr, [sp, #12]
15471   add r0, r0, #1
15472   ldr r1, [sp, #16]
15473   add r7, r7, lr
15474   cmp fp, r0
15475   mov r2, r7, asr #8
15476   str r1, [r6], #4
15477   bne .L5752
15478 .L5745:
15479   cmp r0, fp
15480   bcs .L5788
15481   rsb r2, r0, fp
15482   ldr r0, [sp, #16]
15483   mov r3, #0
15484 .L5760:
15485   add r3, r3, #1
15486   cmp r2, r3
15487   str r0, [r6], #4
15488   bne .L5760
15489   b .L5788
15490 .L5735:
15491   cmp fp, #0
15492   beq .L5788
15493   mov r1, r7, asr #8
15494   mov r2, r0, asr #8
15495   cmp ip, r1
15496   cmphi ip, r2
15497   movls r3, #0
15498   movhi r3, #1
15499   movls r8, r3
15500   bls .L5742
15501   b .L5798
15502 .L5761:
15503   cmp ip, r2
15504   cmphi ip, r3
15505   bhi .L5762
15506 .L5742:
15507   ldr r2, [sp, #24]
15508   ldr r1, [sp, #12]
15509   add r8, r8, #1
15510   ldr r4, [sp, #16]
15511   add r0, r0, r2
15512   add r7, r7, r1
15513   cmp fp, r8
15514   str r4, [r6, #0]
15515   mov r2, r7, asr #8
15516   mov r3, r0, asr #8
15517   add r6, r6, #4
15518   bne .L5761
15519   b .L5788
15520 .L5737:
15521   cmp fp, #0
15522   sub sl, ip, #1
15523   beq .L5788
15524   mvn r5, #0
15525   mov r4, #0
15526 .L5781:
15527   and r3, sl, r0, asr #8
15528   mov r2, r3, lsr #3
15529   mov r2, r2, asl r9
15530   and r1, sl, r7, asr #8
15531   add ip, r2, r1, lsr #3
15532   cmp ip, r5
15533   ldrne r5, [sp, #28]
15534   and lr, r3, #7
15535   and r8, r1, #7
15536   ldrneb  r3, [r5, ip]  @ zero_extendqisi2
15537   ldrne r1, [sp, #32]
15538   add r4, r4, #1
15539   addne r3, r1, r3, asl #6
15540   strne r3, [sp, #0]
15541   ldr r2, [sp, #0]
15542   add r3, r2, lr, asl #3
15543   ldrb  r2, [r3, r8]  @ zero_extendqisi2
15544   ldr r3, [sp, #20]
15545   cmp r2, #0
15546   ldreq r5, [sp, #16]
15547   orr r1, r3, r2
15548   strne r1, [r6, #0]
15549   ldr lr, [sp, #12]
15550   ldr r1, [sp, #24]
15551   streq r5, [r6, #0]
15552   cmp fp, r4
15553   add r7, r7, lr
15554   add r0, r0, r1
15555   add r6, r6, #4
15556   mov r5, ip
15557   bne .L5781
15558   b .L5788
15559 .L5796:
15560   ldr ip, [sp, #28]
15561   ldr r0, [sp, #32]
15562   mov r2, r3, lsr #3
15563   cmp fp, #0
15564   and r3, r3, #7
15565   add r9, ip, r2, asl r9
15566   add r4, r0, r3, asl #3
15567   beq .L5788
15568   mov r0, #0
15569 .L5775:
15570   and r3, lr, r7, asr #8
15571   ldrb  r1, [r9, r3, lsr #3]  @ zero_extendqisi2
15572   and r3, r3, #7
15573   add r3, r3, r1, asl #6
15574   ldrb  r2, [r3, r4]  @ zero_extendqisi2
15575   ldr r1, [sp, #20]
15576   cmp r2, #0
15577   orr r3, r1, r2
15578   ldreq r2, [sp, #16]
15579   strne r3, [r6, #0]
15580   add r0, r0, #1
15581   ldr r3, [sp, #12]
15582   streq r2, [r6, #0]
15583   cmp fp, r0
15584   add r7, r7, r3
15585   add r6, r6, #4
15586   bne .L5775
15587   b .L5788
15588 .L5755:
15589   cmp ip, r2
15590   bls .L5745
15591 .L5793:
15592   ldrb  r3, [r9, r2, lsr #3]  @ zero_extendqisi2
15593   and r2, r2, #7
15594   add r2, r2, r3, asl #6
15595   ldrb  r1, [r2, r4]  @ zero_extendqisi2
15596   ldr r3, [sp, #20]
15597   cmp r1, #0
15598   ldreq r5, [sp, #16]
15599   ldr lr, [sp, #12]
15600   orr r2, r3, r1
15601   add r0, r0, #1
15602   strne r2, [r6, #0]
15603   streq r5, [r6, #0]
15604   add r7, r7, lr
15605   cmp fp, r0
15606   add r6, r6, #4
15607   mov r2, r7, asr #8
15608   bhi .L5755
15609   b .L5745
15610 .L5762:
15611   mov r1, r2
15612   mov r2, r3
15613 .L5763:
15614   cmp r2, ip
15615   movcc r3, #0
15616   movcs r3, #1
15617   cmp ip, r1
15618   orrls r3, r3, #1
15619   cmp r3, #0
15620   mvneq r5, #0
15621   beq .L5767
15622   b .L5789
15623 .L5766:
15624   cmp ip, r2
15625   cmphi ip, r1
15626   bls .L5789
15627 .L5767:
15628   mov r3, r2, lsr #3
15629   mov r3, r3, asl r9
15630   and lr, r2, #7
15631   and r2, r1, #7
15632   add r1, r3, r1, lsr #3
15633   cmp r1, r5
15634   ldrne r4, [sp, #28]
15635   ldrne r5, [sp, #32]
15636   ldrneb  r3, [r4, r1]  @ zero_extendqisi2
15637   add r8, r8, #1
15638   addne r4, r5, r3, asl #6
15639   add r3, r4, lr, asl #3
15640   ldrb  r2, [r3, r2]  @ zero_extendqisi2
15641   ldr lr, [sp, #20]
15642   cmp r2, #0
15643   orr r3, lr, r2
15644   strne r3, [r6, #0]
15645   ldreq r2, [sp, #16]
15646   ldr r5, [sp, #24]
15647   ldr r3, [sp, #12]
15648   streq r2, [r6, #0]
15649   add r0, r0, r5
15650   add r7, r7, r3
15651   cmp fp, r8
15652   mov r5, r1
15653   add r6, r6, #4
15654   mov r1, r7, asr #8
15655   mov r2, r0, asr #8
15656   bhi .L5766
15657   b .L5788
15658 .L5789:
15659   add r8, r8, #1
15660   ldr r5, [sp, #16]
15661   cmp fp, r8
15662   str r5, [r6], #4
15663   bls .L5788
15664   add r8, r8, #1
15665   ldr r5, [sp, #16]
15666   cmp fp, r8
15667   str r5, [r6], #4
15668   bhi .L5789
15669   b .L5788
15670 .L5798:
15671   mov r8, #0
15672   b .L5763
15673 .L5800:
15674   .align  2
15675 .L5799:
15676   .word io_registers
15677   .word affine_reference_y
15678   .word affine_reference_x
15679   .word vram
15680   .size render_scanline_affine_base_color32, .-render_scanline_affine_base_color32
15681   .align  2
15682   .global render_scanline_affine_transparent_color32
15683   .type render_scanline_affine_transparent_color32, %function
15684 render_scanline_affine_transparent_color32:
15685   @ args = 0, pretend = 0, frame = 32
15686   @ frame_needed = 0, uses_anonymous_args = 0
15687   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
15688   ldr r5, .L5857
15689   add r7, r0, #7
15690   ldrh  r6, [r5, #80]
15691   add ip, r5, r0, asl #1
15692   mov r7, r6, asr r7
15693   mov r6, r6, asr r0
15694   ldrh  r4, [ip, #8]
15695   mov lr, r0, asl #4
15696   ldr ip, .L5857+4
15697   sub r0, r0, #2
15698   sub lr, lr, #32
15699   add lr, lr, r5
15700   ldr ip, [ip, r0, asl #2]
15701   sub sp, sp, #32
15702   ldrsh r9, [lr, #36]
15703   mov r8, r4, lsr #14
15704   mov r5, r4, lsr #12
15705   str ip, [sp, #8]
15706   ldrsh fp, [lr, #32]
15707   ldr ip, .L5857+8
15708   ldr sl, .L5857+12
15709   mov lr, r4, asl #3
15710   mov r4, r4, asl #12
15711   str r9, [sp, #16]
15712   and r4, r4, #49152
15713   ldr r9, [ip, r0, asl #2]
15714   and r7, r7, #2
15715   ldr ip, [sp, #16]
15716   add r4, r4, sl
15717   and r6, r6, #1
15718   orr r6, r6, r7
15719   and r5, r5, #2
15720   and lr, lr, #63488
15721   str r4, [sp, #24]
15722   ldr r7, [sp, #8]
15723   rsb r4, r1, r2
15724   ldr r2, [sp, #16]
15725   add lr, lr, sl
15726   cmp ip, #0
15727   orrne r5, r5, #1
15728   mov r0, #1
15729   add ip, r8, #7
15730   mov r6, r6, asl #9
15731   mov r0, r0, asl ip
15732   str lr, [sp, #20]
15733   str r6, [sp, #12]
15734   add r8, r8, #4
15735   add lr, r3, r1, asl #2
15736   mla ip, fp, r1, r9
15737   mla r7, r2, r1, r7
15738   cmp r5, #3
15739   ldrls pc, [pc, r5, asl #2]
15740   b .L5849
15741   .p2align 2
15742 .L5807:
15743   .word .L5803
15744   .word .L5804
15745   .word .L5805
15746   .word .L5806
15747 .L5803:
15748   mov r3, r7, asr #8
15749   cmp r0, r3
15750   bhi .L5852
15751 .L5849:
15752   add sp, sp, #32
15753   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
15754 .L5804:
15755   cmp r4, #0
15756   beq .L5849
15757   mov r5, ip, asr #8
15758   mov r1, r7, asr #8
15759   cmp r0, r5
15760   cmphi r0, r1
15761   movls r3, #0
15762   movhi r3, #1
15763   movls sl, r3
15764   bls .L5811
15765   b .L5855
15766 .L5825:
15767   cmp r0, r2
15768   cmphi r0, r3
15769   bhi .L5826
15770 .L5811:
15771   ldr r3, [sp, #16]
15772   add sl, sl, #1
15773   add ip, ip, fp
15774   add r7, r7, r3
15775   cmp r4, sl
15776   mov r2, ip, asr #8
15777   mov r3, r7, asr #8
15778   add lr, lr, #4
15779   bne .L5825
15780   b .L5849
15781 .L5805:
15782   sub r6, r0, #1
15783   and r3, r6, r7, asr #8
15784   cmp r0, r3
15785   bls .L5849
15786   ldr r0, [sp, #20]
15787   ldr r1, [sp, #24]
15788   mov r2, r3, lsr #3
15789   cmp r4, #0
15790   and r3, r3, #7
15791   add r8, r0, r2, asl r8
15792   add r5, r1, r3, asl #3
15793   beq .L5849
15794   mov r0, #0
15795 .L5838:
15796   and r3, r6, ip, asr #8
15797   ldrb  r2, [r8, r3, lsr #3]  @ zero_extendqisi2
15798   and r3, r3, #7
15799   add r3, r3, r2, asl #6
15800   ldrb  r1, [r3, r5]  @ zero_extendqisi2
15801   ldr r2, [sp, #12]
15802   cmp r1, #0
15803   orr r3, r2, r1
15804   strne r3, [lr, r0, asl #2]
15805   add r0, r0, #1
15806   cmp r4, r0
15807   add ip, ip, fp
15808   bne .L5838
15809   b .L5849
15810 .L5806:
15811   cmp r4, #0
15812   sub r0, r0, #1
15813   beq .L5849
15814   mov r9, #0
15815   mvn r6, #0
15816 .L5843:
15817   and r3, r0, r7, asr #8
15818   mov r2, r3, lsr #3
15819   mov r2, r2, asl r8
15820   and r1, r0, ip, asr #8
15821   and sl, r3, #7
15822   add r3, r2, r1, lsr #3
15823   cmp r3, r6
15824   ldrne r2, [sp, #20]
15825   and r5, r1, #7
15826   ldr r1, [sp, #16]
15827   mov r6, r3
15828   add r7, r7, r1
15829   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
15830   ldrne r1, [sp, #24]
15831   add ip, ip, fp
15832   addne r3, r1, r3, asl #6
15833   strne r3, [sp, #4]
15834   ldr r2, [sp, #4]
15835   add r3, r2, sl, asl #3
15836   ldrb  r2, [r3, r5]  @ zero_extendqisi2
15837   ldr r3, [sp, #12]
15838   cmp r2, #0
15839   orr r1, r3, r2
15840   strne r1, [lr, r9, asl #2]
15841   add r9, r9, #1
15842   cmp r4, r9
15843   bne .L5843
15844   b .L5849
15845 .L5852:
15846   ldr r9, [sp, #20]
15847   ldr r1, [sp, #24]
15848   mov r2, r3, lsr #3
15849   cmp r4, #0
15850   and r3, r3, #7
15851   add r8, r9, r2, asl r8
15852   add r6, r1, r3, asl #3
15853   beq .L5849
15854   mov r5, ip, asr #8
15855   cmp r0, r5
15856   movls r7, #0
15857   bls .L5818
15858   b .L5856
15859 .L5816:
15860   cmp r0, r2
15861   add lr, lr, #4
15862   bhi .L5817
15863 .L5818:
15864   add r7, r7, #1
15865   add ip, ip, fp
15866   cmp r4, r7
15867   mov r2, ip, asr #8
15868   bne .L5816
15869   b .L5849
15870 .L5826:
15871   mov r5, r2
15872   mov r1, r3
15873 .L5827:
15874   cmp r1, r0
15875   movcc r3, #0
15876   movcs r3, #1
15877   cmp r0, r5
15878   orrls r3, r3, #1
15879   cmp r3, #0
15880   mvneq r6, #0
15881   beq .L5829
15882   b .L5849
15883 .L5830:
15884   cmp r0, r1
15885   cmphi r0, r5
15886   bls .L5849
15887 .L5829:
15888   mov r3, r1, lsr #3
15889   mov r3, r3, asl r8
15890   add r3, r3, r5, lsr #3
15891   cmp r3, r6
15892   and r2, r5, #7
15893   str r2, [sp, #0]
15894   ldrne r2, [sp, #20]
15895   mov r6, r3
15896   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
15897   ldrne r2, [sp, #24]
15898   ldr r9, [sp, #16]
15899   addne r3, r2, r3, asl #6
15900   strne r3, [sp, #28]
15901   ldr r2, [sp, #28]
15902   add r7, r7, r9
15903   and r9, r1, #7
15904   add r3, r2, r9, asl #3
15905   ldr r9, [sp, #0]
15906   add sl, sl, #1
15907   ldrb  r2, [r3, r9]  @ zero_extendqisi2
15908   ldr r9, [sp, #12]
15909   cmp r2, #0
15910   orr r3, r9, r2
15911   strne r3, [lr, #0]
15912   add ip, ip, fp
15913   cmp r4, sl
15914   mov r1, r7, asr #8
15915   mov r5, ip, asr #8
15916   add lr, lr, #4
15917   bhi .L5830
15918   b .L5849
15919 .L5817:
15920   mov r5, r2
15921 .L5819:
15922   cmp r5, r0
15923   bcc .L5851
15924   b .L5849
15925 .L5821:
15926   cmp r0, r5
15927   bls .L5849
15928 .L5851:
15929   ldrb  r3, [r8, r5, lsr #3]  @ zero_extendqisi2
15930   and r2, r5, #7
15931   add r2, r2, r3, asl #6
15932   ldrb  r1, [r2, r6]  @ zero_extendqisi2
15933   ldr r2, [sp, #12]
15934   cmp r1, #0
15935   add r7, r7, #1
15936   orr r3, r2, r1
15937   strne r3, [lr, #0]
15938   add ip, ip, fp
15939   cmp r4, r7
15940   mov r5, ip, asr #8
15941   add lr, lr, #4
15942   bhi .L5821
15943   b .L5849
15944 .L5855:
15945   mov sl, #0
15946   b .L5827
15947 .L5856:
15948   mov r7, #0
15949   b .L5819
15950 .L5858:
15951   .align  2
15952 .L5857:
15953   .word io_registers
15954   .word affine_reference_y
15955   .word affine_reference_x
15956   .word vram
15957   .size render_scanline_affine_transparent_color32, .-render_scanline_affine_transparent_color32
15958   .align  2
15959   .global render_scanline_affine_base_alpha
15960   .type render_scanline_affine_base_alpha, %function
15961 render_scanline_affine_base_alpha:
15962   @ args = 0, pretend = 0, frame = 32
15963   @ frame_needed = 0, uses_anonymous_args = 0
15964   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
15965   ldr r7, .L5933
15966   add lr, r0, #7
15967   ldrh  ip, [r7, #80]
15968   sub sp, sp, #32
15969   mov lr, ip, asr lr
15970   mov r4, ip, asr r0
15971   mov r5, ip, lsr #12
15972   and r5, r5, #2
15973   mov ip, ip, asl #26
15974   orr r5, r5, ip, lsr #31
15975   and r4, r4, #1
15976   and lr, lr, #2
15977   mov ip, r5, asl #25
15978   orr r4, r4, lr
15979   orr r4, ip, r4, asl #9
15980   mov r5, r5, asl #9
15981   tst r4, #512
15982   mov r6, r0
15983   str r4, [sp, #12]
15984   mov r8, r1
15985   mov sl, r2
15986   stmib sp, {r3, r5}  @ phole stm
15987   beq .L5928
15988   add r3, r7, r0, asl #1
15989   ldrh  r1, [r3, #8]
15990   ldr r3, .L5933+4
15991   mov r2, r0, asl #4
15992   sub r0, r0, #2
15993   ldr r6, [r3, r0, asl #2]
15994   ldr r3, .L5933+8
15995   mov lr, r1, lsr #14
15996   ldr r5, [r3, r0, asl #2]
15997   ldr r4, .L5933+12
15998   mov ip, r1, lsr #12
15999   mov r0, r1, asl #3
16000   sub r2, r2, #32
16001   mov r1, r1, asl #12
16002   add r2, r2, r7
16003   and r1, r1, #49152
16004   ldrsh fp, [r2, #36]
16005   add r1, r1, r4
16006   ldrsh r9, [r2, #32]
16007   and ip, ip, #2
16008   and r0, r0, #63488
16009   str r1, [sp, #24]
16010   ldr r1, [sp, #4]
16011   add r0, r0, r4
16012   add r2, lr, #7
16013   mov r3, #1
16014   add lr, lr, #4
16015   cmp fp, #0
16016   orrne ip, ip, #1
16017   str r0, [sp, #20]
16018   mov r7, r3, asl r2
16019   mla r0, r9, r8, r5
16020   rsb sl, r8, sl
16021   str lr, [sp, #16]
16022   add r4, r1, r8, asl #2
16023   mla r5, fp, r8, r6
16024   cmp ip, #3
16025   ldrls pc, [pc, ip, asl #2]
16026   b .L5918
16027   .p2align 2
16028 .L5867:
16029   .word .L5863
16030   .word .L5864
16031   .word .L5865
16032   .word .L5866
16033 .L5919:
16034   add ip, ip, #1
16035   ldr r1, [sp, #8]
16036   cmp sl, ip
16037   str r1, [r4], #4
16038   bhi .L5919
16039 .L5918:
16040   add sp, sp, #32
16041   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16042 .L5928:
16043   add sp, sp, #32
16044   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
16045   b render_scanline_affine_base_color32
16046 .L5863:
16047   mov r1, r5, asr #8
16048   cmp r7, r1
16049   movls ip, #0
16050   bls .L5874
16051   ldr r6, [sp, #20]
16052   ldr r8, [sp, #16]
16053   ldr ip, [sp, #24]
16054   mov r2, r1, lsr #3
16055   and r3, r1, #7
16056   cmp sl, #0
16057   add lr, r6, r2, asl r8
16058   add r5, ip, r3, asl #3
16059   beq .L5918
16060   mov r2, r0, asr #8
16061   cmp r7, r2
16062   movls ip, #0
16063   bls .L5881
16064   b .L5931
16065 .L5879:
16066   cmp r7, r2
16067   bhi .L5882
16068 .L5881:
16069   add ip, ip, #1
16070   ldr r1, [sp, #8]
16071   add r0, r0, r9
16072   cmp sl, ip
16073   mov r2, r0, asr #8
16074   str r1, [r4], #4
16075   bne .L5879
16076 .L5874:
16077   cmp ip, sl
16078   bcs .L5918
16079   ldr r8, [sp, #8]
16080   rsb r2, ip, sl
16081   mov r3, #0
16082 .L5890:
16083   add r3, r3, #1
16084   cmp r2, r3
16085   str r8, [r4], #4
16086   bne .L5890
16087   b .L5918
16088 .L5866:
16089   sub r7, r7, #1
16090   cmp sl, #0
16091   str r7, [sp, #28]
16092   beq .L5918
16093   mvn r8, #0
16094   mov r7, #0
16095 .L5911:
16096   ldr r2, [sp, #28]
16097   ldr r6, [sp, #16]
16098   and r3, r2, r5, asr #8
16099   mov r2, r3, lsr #3
16100   mov r2, r2, asl r6
16101   ldr ip, [sp, #28]
16102   and lr, r3, #7
16103   and r1, ip, r0, asr #8
16104   add ip, r2, r1, lsr #3
16105   cmp ip, r8
16106   and r6, r1, #7
16107   ldrne r1, [sp, #20]
16108   ldrne r2, [sp, #24]
16109   ldrneb  r3, [r1, ip]  @ zero_extendqisi2
16110   add r7, r7, #1
16111   addne r3, r2, r3, asl #6
16112   strne r3, [sp, #0]
16113   ldr r8, [sp, #0]
16114   add r0, r0, r9
16115   add r3, r8, lr, asl #3
16116   ldrb  r2, [r3, r6]  @ zero_extendqisi2
16117   ldr lr, [sp, #12]
16118   cmp r2, #0
16119   orr r1, lr, r2
16120   ldreq r1, [sp, #8]
16121   cmp sl, r7
16122   str r1, [r4, #0]
16123   add r5, r5, fp
16124   add r4, r4, #4
16125   mov r8, ip
16126   bne .L5911
16127   b .L5918
16128 .L5865:
16129   sub r6, r7, #1
16130   and r1, r6, r5, asr #8
16131   cmp r7, r1
16132   bls .L5918
16133   mov r2, r1, lsr #3
16134   and r3, r1, #7
16135   ldr ip, [sp, #20]
16136   ldr r1, [sp, #16]
16137   cmp sl, #0
16138   add lr, ip, r2, asl r1
16139   ldr r2, [sp, #24]
16140   add r5, r2, r3, asl #3
16141   beq .L5918
16142   mov ip, #0
16143 .L5905:
16144   and r3, r6, r0, asr #8
16145   ldrb  r1, [lr, r3, lsr #3]  @ zero_extendqisi2
16146   and r3, r3, #7
16147   add r3, r3, r1, asl #6
16148   ldrb  r2, [r3, r5]  @ zero_extendqisi2
16149   ldr r8, [sp, #12]
16150   cmp r2, #0
16151   ldreq r1, [sp, #8]
16152   orr r3, r8, r2
16153   add ip, ip, #1
16154   strne r3, [r4, #0]
16155   streq r1, [r4, #0]
16156   cmp sl, ip
16157   add r0, r0, r9
16158   add r4, r4, #4
16159   bne .L5905
16160   b .L5918
16161 .L5864:
16162   cmp sl, #0
16163   beq .L5918
16164   mov r1, r0, asr #8
16165   mov r2, r5, asr #8
16166   cmp r7, r1
16167   cmphi r7, r2
16168   movls r3, #0
16169   movhi r3, #1
16170   movls ip, r3
16171   bls .L5871
16172   b .L5932
16173 .L5891:
16174   cmp r7, r2
16175   cmphi r7, r3
16176   bhi .L5892
16177 .L5871:
16178   add ip, ip, #1
16179   ldr lr, [sp, #8]
16180   add r0, r0, r9
16181   add r5, r5, fp
16182   cmp sl, ip
16183   str lr, [r4, #0]
16184   mov r2, r0, asr #8
16185   mov r3, r5, asr #8
16186   add r4, r4, #4
16187   bne .L5891
16188   b .L5918
16189 .L5892:
16190   mov r1, r2
16191   mov r2, r3
16192 .L5893:
16193   cmp r7, r2
16194   cmphi r7, r1
16195   mvnhi r8, #0
16196   bhi .L5897
16197   b .L5919
16198 .L5896:
16199   cmp r7, r2
16200   cmphi r7, r1
16201   bls .L5919
16202 .L5897:
16203   ldr r6, [sp, #16]
16204   mov r3, r2, lsr #3
16205   mov r3, r3, asl r6
16206   and r6, r2, #7
16207   and r2, r1, #7
16208   add r1, r3, r1, lsr #3
16209   cmp r1, r8
16210   ldrne r8, [sp, #20]
16211   add ip, ip, #1
16212   ldrneb  r3, [r8, r1]  @ zero_extendqisi2
16213   ldrne r8, [sp, #24]
16214   add r0, r0, r9
16215   addne lr, r8, r3, asl #6
16216   add r3, lr, r6, asl #3
16217   ldrb  r2, [r3, r2]  @ zero_extendqisi2
16218   ldr r6, [sp, #12]
16219   cmp r2, #0
16220   ldreq r8, [sp, #8]
16221   orr r3, r6, r2
16222   streq r8, [r4, #0]
16223   strne r3, [r4, #0]
16224   add r5, r5, fp
16225   cmp sl, ip
16226   mov r8, r1
16227   add r4, r4, #4
16228   mov r1, r0, asr #8
16229   mov r2, r5, asr #8
16230   bhi .L5896
16231   b .L5918
16232 .L5931:
16233   mov ip, #0
16234 .L5882:
16235   cmp r2, r7
16236   bcc .L5924
16237   b .L5874
16238 .L5885:
16239   cmp r7, r2
16240   bls .L5874
16241 .L5924:
16242   ldrb  r3, [lr, r2, lsr #3]  @ zero_extendqisi2
16243   and r2, r2, #7
16244   add r2, r2, r3, asl #6
16245   ldrb  r1, [r2, r5]  @ zero_extendqisi2
16246   ldr r3, [sp, #12]
16247   cmp r1, #0
16248   ldreq r6, [sp, #8]
16249   orr r2, r3, r1
16250   add ip, ip, #1
16251   strne r2, [r4, #0]
16252   streq r6, [r4, #0]
16253   add r0, r0, r9
16254   cmp sl, ip
16255   add r4, r4, #4
16256   mov r2, r0, asr #8
16257   bhi .L5885
16258   b .L5874
16259 .L5932:
16260   mov ip, #0
16261   b .L5893
16262 .L5934:
16263   .align  2
16264 .L5933:
16265   .word io_registers
16266   .word affine_reference_y
16267   .word affine_reference_x
16268   .word vram
16269   .size render_scanline_affine_base_alpha, .-render_scanline_affine_base_alpha
16270   .align  2
16271   .global render_scanline_affine_transparent_alpha
16272   .type render_scanline_affine_transparent_alpha, %function
16273 render_scanline_affine_transparent_alpha:
16274   @ args = 0, pretend = 0, frame = 36
16275   @ frame_needed = 0, uses_anonymous_args = 0
16276   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
16277   ldr r5, .L5993
16278   add lr, r0, #7
16279   ldrh  ip, [r5, #80]
16280   sub sp, sp, #36
16281   mov lr, ip, asr lr
16282   mov ip, ip, asr r0
16283   and lr, lr, #2
16284   and ip, ip, #1
16285   orr ip, ip, lr
16286   mov ip, ip, asl #9
16287   tst ip, #512
16288   mov r4, r0
16289   str ip, [sp, #12]
16290   mov r8, r1
16291   mov sl, r2
16292   str r3, [sp, #8]
16293   beq .L5988
16294   add r3, r5, r0, asl #1
16295   ldrh  r1, [r3, #8]
16296   ldr r3, .L5993+4
16297   mov r2, r0, asl #4
16298   sub r0, r0, #2
16299   ldr r6, [r3, r0, asl #2]
16300   ldr r3, .L5993+8
16301   sub r2, r2, #32
16302   add r2, r2, r5
16303   mov lr, r1, lsr #14
16304   ldr r5, [r3, r0, asl #2]
16305   ldr r4, .L5993+12
16306   mov ip, r1, lsr #12
16307   mov r0, r1, asl #3
16308   mov r1, r1, asl #12
16309   and r1, r1, #49152
16310   ldrsh fp, [r2, #36]
16311   add r1, r1, r4
16312   ldrsh r9, [r2, #32]
16313   and ip, ip, #2
16314   and r0, r0, #63488
16315   str r1, [sp, #20]
16316   ldr r1, [sp, #8]
16317   add r0, r0, r4
16318   add r2, lr, #7
16319   mov r3, #1
16320   cmp fp, #0
16321   orrne ip, ip, #1
16322   str r0, [sp, #16]
16323   mov r7, r3, asl r2
16324   mla r0, r9, r8, r5
16325   rsb sl, r8, sl
16326   add lr, lr, #4
16327   add r4, r1, r8, asl #2
16328   mla r5, fp, r8, r6
16329   cmp ip, #3
16330   ldrls pc, [pc, ip, asl #2]
16331   b .L5985
16332   .p2align 2
16333 .L5943:
16334   .word .L5939
16335   .word .L5940
16336   .word .L5941
16337   .word .L5942
16338 .L5941:
16339   sub r6, r7, #1
16340   and r1, r6, r5, asr #8
16341   cmp r7, r1
16342   bls .L5985
16343   ldr r5, [sp, #16]
16344   ldr ip, [sp, #20]
16345   mov r2, r1, lsr #3
16346   and r3, r1, #7
16347   cmp sl, #0
16348   add lr, r5, r2, asl lr
16349   add r1, ip, r3, asl #3
16350   beq .L5985
16351   mov ip, #0
16352 .L5974:
16353   and r3, r6, r0, asr #8
16354   ldrb  r2, [lr, r3, lsr #3]  @ zero_extendqisi2
16355   and r3, r3, #7
16356   add r3, r3, r2, asl #6
16357   ldrb  r2, [r3, r1]  @ zero_extendqisi2
16358   add ip, ip, #1
16359   cmp r2, #0
16360   ldrne r3, [r4, #0]
16361   ldrne r5, [sp, #12]
16362   add r0, r0, r9
16363   orrne r3, r5, r3, asl #16
16364   orrne r3, r2, r3
16365   strne r3, [r4, #0]
16366   cmp sl, ip
16367   add r4, r4, #4
16368   bne .L5974
16369 .L5985:
16370   add sp, sp, #36
16371   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16372 .L5988:
16373   add sp, sp, #36
16374   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
16375   b render_scanline_affine_transparent_color32
16376 .L5939:
16377   mov r1, r5, asr #8
16378   cmp r7, r1
16379   bls .L5985
16380   ldr r5, [sp, #16]
16381   ldr r6, [sp, #20]
16382   mov r2, r1, lsr #3
16383   and r3, r1, #7
16384   cmp sl, #0
16385   add lr, r5, r2, asl lr
16386   add r1, r6, r3, asl #3
16387   beq .L5985
16388   mov ip, r0, asr #8
16389   cmp r7, ip
16390   movls r5, #0
16391   bls .L5954
16392   b .L5991
16393 .L5952:
16394   cmp r7, r3
16395   add r4, r4, #4
16396   bhi .L5953
16397 .L5954:
16398   add r5, r5, #1
16399   add r0, r0, r9
16400   cmp sl, r5
16401   mov r3, r0, asr #8
16402   bne .L5952
16403   b .L5985
16404 .L5942:
16405   cmp sl, #0
16406   sub r8, r7, #1
16407   beq .L5985
16408   mvn r6, #0
16409   str r6, [sp, #32]
16410   mov r7, #0
16411 .L5979:
16412   and r3, r8, r5, asr #8
16413   mov r2, r3, lsr #3
16414   mov r2, r2, asl lr
16415   and r1, r8, r0, asr #8
16416   and r6, r3, #7
16417   and ip, r1, #7
16418   add r3, r2, r1, lsr #3
16419   ldr r1, [sp, #32]
16420   str r3, [sp, #32]
16421   cmp r3, r1
16422   ldrne r2, [sp, #16]
16423   ldrne r1, [sp, #20]
16424   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
16425   add r7, r7, #1
16426   addne r3, r1, r3, asl #6
16427   strne r3, [sp, #4]
16428   ldr r2, [sp, #4]
16429   add r0, r0, r9
16430   add r3, r2, r6, asl #3
16431   ldrb  r2, [r3, ip]  @ zero_extendqisi2
16432   ldr r3, [sp, #12]
16433   cmp r2, #0
16434   orr r1, r3, r2
16435   ldrne r3, [r4, #0]
16436   add r5, r5, fp
16437   orrne r3, r1, r3, asl #16
16438   strne r3, [r4, #0]
16439   cmp sl, r7
16440   add r4, r4, #4
16441   bne .L5979
16442   b .L5985
16443 .L5940:
16444   cmp sl, #0
16445   beq .L5985
16446   mov ip, r0, asr #8
16447   mov r1, r5, asr #8
16448   cmp r7, ip
16449   cmphi r7, r1
16450   movls r3, #0
16451   movhi r3, #1
16452   movls r8, r3
16453   bls .L5947
16454   b .L5992
16455 .L5961:
16456   cmp r7, r2
16457   cmphi r7, r3
16458   bhi .L5962
16459 .L5947:
16460   add r8, r8, #1
16461   add r0, r0, r9
16462   add r5, r5, fp
16463   cmp sl, r8
16464   mov r2, r0, asr #8
16465   mov r3, r5, asr #8
16466   add r4, r4, #4
16467   bne .L5961
16468   b .L5985
16469 .L5962:
16470   mov ip, r2
16471   mov r1, r3
16472 .L5963:
16473   cmp r1, r7
16474   movcc r3, #0
16475   movcs r3, #1
16476   cmp r7, ip
16477   orrls r3, r3, #1
16478   cmp r3, #0
16479   mvneq r2, #0
16480   streq r2, [sp, #28]
16481   beq .L5965
16482   b .L5985
16483 .L5966:
16484   cmp r7, r1
16485   cmphi r7, ip
16486   bls .L5985
16487 .L5965:
16488   mov r3, r1, lsr #3
16489   mov r3, r3, asl lr
16490   and r2, ip, #7
16491   str r2, [sp, #0]
16492   ldr r2, [sp, #28]
16493   add r3, r3, ip, lsr #3
16494   cmp r3, r2
16495   ldrne r2, [sp, #16]
16496   str r3, [sp, #28]
16497   ldrneb  r3, [r2, r3]  @ zero_extendqisi2
16498   ldrne r2, [sp, #20]
16499   and r6, r1, #7
16500   addne r3, r2, r3, asl #6
16501   strne r3, [sp, #24]
16502   ldr r2, [sp, #24]
16503   add r8, r8, #1
16504   add r3, r2, r6, asl #3
16505   ldr r6, [sp, #0]
16506   add r0, r0, r9
16507   ldrb  r2, [r3, r6]  @ zero_extendqisi2
16508   ldr r3, [sp, #12]
16509   cmp r2, #0
16510   orr r6, r3, r2
16511   ldrne r3, [r4, #0]
16512   add r5, r5, fp
16513   orrne r3, r6, r3, asl #16
16514   strne r3, [r4, #0]
16515   cmp sl, r8
16516   mov r1, r5, asr #8
16517   mov ip, r0, asr #8
16518   add r4, r4, #4
16519   bhi .L5966
16520   b .L5985
16521 .L5953:
16522   mov ip, r3
16523 .L5955:
16524   cmp ip, r7
16525   bcc .L5987
16526   b .L5985
16527 .L5957:
16528   cmp r7, ip
16529   bls .L5985
16530 .L5987:
16531   ldrb  r2, [lr, ip, lsr #3]  @ zero_extendqisi2
16532   and r3, ip, #7
16533   add r3, r3, r2, asl #6
16534   ldrb  r2, [r3, r1]  @ zero_extendqisi2
16535   add r5, r5, #1
16536   cmp r2, #0
16537   ldrne r3, [r4, #0]
16538   ldrne r6, [sp, #12]
16539   add r0, r0, r9
16540   orrne r3, r6, r3, asl #16
16541   orrne r3, r2, r3
16542   strne r3, [r4, #0]
16543   cmp sl, r5
16544   mov ip, r0, asr #8
16545   add r4, r4, #4
16546   bhi .L5957
16547   b .L5985
16548 .L5992:
16549   mov r8, #0
16550   b .L5963
16551 .L5991:
16552   mov r5, #0
16553   b .L5955
16554 .L5994:
16555   .align  2
16556 .L5993:
16557   .word io_registers
16558   .word affine_reference_y
16559   .word affine_reference_x
16560   .word vram
16561   .size render_scanline_affine_transparent_alpha, .-render_scanline_affine_transparent_alpha
16562   .align  2
16563   .global render_scanline_bitmap_mode3_normal
16564   .type render_scanline_bitmap_mode3_normal, %function
16565 render_scanline_bitmap_mode3_normal:
16566   @ args = 0, pretend = 0, frame = 0
16567   @ frame_needed = 0, uses_anonymous_args = 0
16568   ldr ip, .L6038
16569   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
16570   ldr r3, .L6038+4
16571   ldrh  r6, [ip, #36]
16572   ldrh  r9, [ip, #32]
16573   ldr ip, .L6038+8
16574   ldr r4, [r3, #0]
16575   ldr lr, [ip, #0]
16576   mov r3, r9, asl #16
16577   mov ip, r6, asl #16
16578   mov sl, r3, asr #16
16579   mov r7, ip, asr #16
16580   cmp r6, #0
16581   mla lr, r7, r0, lr
16582   add r5, r2, r0, asl #1
16583   rsb r8, r0, r1
16584   ldr fp, .L6038+12
16585   mla r0, sl, r0, r4
16586   beq .L5996
16587   cmp r8, #0
16588   ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16589   mov r6, r0, asr #8
16590   mov r4, lr, asr #8
16591   cmp r6, #239
16592   cmpls r4, #159
16593   movhi r1, #0
16594   movls r1, #1
16595   mov r2, r6
16596   mov r3, r4
16597   movhi ip, r1
16598   bhi .L6002
16599   b .L6036
16600 .L6023:
16601   cmp r3, #239
16602   cmpls r2, #159
16603   bls .L6024
16604 .L6002:
16605   add ip, ip, #1
16606   add r0, r0, sl
16607   add lr, lr, r7
16608   cmp r8, ip
16609   mov r3, r0, asr #8
16610   mov r2, lr, asr #8
16611   add r5, r5, #2
16612   bne .L6023
16613   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16614 .L5996:
16615   mov r3, lr, asr #8
16616   cmp r3, #159
16617   ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16618   rsb r3, r3, r3, asl #4
16619   cmp r9, #256
16620   add r4, fp, r3, asl #5
16621   mov lr, r0, asr #8
16622   beq .L6004
16623   cmp r8, #0
16624   ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16625   cmp lr, #239
16626   movhi ip, r6
16627   bhi .L6009
16628   b .L6037
16629 .L6019:
16630   cmp r2, #239
16631   bls .L6020
16632 .L6009:
16633   add ip, ip, #1
16634   add r0, r0, sl
16635   cmp r8, ip
16636   mov r2, r0, asr #8
16637   add r5, r5, #2
16638   bne .L6019
16639   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16640 .L6024:
16641   mov r4, r2
16642   mov r6, r3
16643   mov r2, r3
16644   mov r3, r4
16645 .L6025:
16646   cmp r3, #159
16647   cmpls r2, #239
16648   bls .L6032
16649   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16650 .L6027:
16651   cmp r4, #159
16652   cmpls r6, #239
16653   ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16654 .L6032:
16655   rsb r3, r4, r4, asl #4
16656   add r3, r6, r3, asl #4
16657   mov r3, r3, asl #1
16658   ldrh  r2, [r3, fp]
16659   add ip, ip, #1
16660   mov r3, r2, lsr #10
16661   and r1, r2, #31
16662   orr r3, r3, r1, asl #11
16663   and r2, r2, #992
16664   add r0, r0, sl
16665   add lr, lr, r7
16666   orr r3, r3, r2, asl #1
16667   cmp r8, ip
16668   mov r4, lr, asr #8
16669   mov r6, r0, asr #8
16670   strh  r3, [r5], #2  @ movhi
16671   bhi .L6027
16672   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16673 .L6020:
16674   mov lr, r2
16675   b .L6031
16676 .L6021:
16677   cmp lr, #239
16678   ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16679 .L6031:
16680   mov r2, lr, asl #1
16681   ldrh  r3, [r2, r4]
16682   add ip, ip, #1
16683   mov r2, r3, lsr #10
16684   and r1, r3, #31
16685   orr r2, r2, r1, asl #11
16686   and r3, r3, #992
16687   add r0, r0, sl
16688   orr r2, r2, r3, asl #1
16689   cmp r8, ip
16690   mov lr, r0, asr #8
16691   strh  r2, [r5], #2  @ movhi
16692   bhi .L6021
16693   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16694 .L6004:
16695   cmp lr, #0
16696   sublt r5, r5, lr, asl #1
16697   addlt r8, r8, lr
16698   movlt lr, r6
16699   movlt r3, lr
16700   blt .L6012
16701   addne r4, r4, lr, asl #1
16702   mov r3, lr
16703 .L6012:
16704   add r3, r8, r3
16705   cmp r3, #239
16706   rsbhi r8, lr, #240
16707   cmp r8, #0
16708   ldmlefd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16709   mov r0, #0
16710 .L6018:
16711   ldrh  r3, [r4], #2
16712   add r0, r0, #1
16713   mov r2, r3, lsr #10
16714   and r1, r3, #31
16715   orr r2, r2, r1, asl #11
16716   and r3, r3, #992
16717   orr r2, r2, r3, asl #1
16718   cmp r8, r0
16719   strh  r2, [r5], #2  @ movhi
16720   bne .L6018
16721   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16722 .L6036:
16723   mov ip, #0
16724   b .L6025
16725 .L6037:
16726   mov ip, r6
16727   b .L6031
16728 .L6039:
16729   .align  2
16730 .L6038:
16731   .word io_registers
16732   .word affine_reference_x
16733   .word affine_reference_y
16734   .word vram
16735   .size render_scanline_bitmap_mode3_normal, .-render_scanline_bitmap_mode3_normal
16736   .align  2
16737   .global render_scanline_bitmap_mode4_normal
16738   .type render_scanline_bitmap_mode4_normal, %function
16739 render_scanline_bitmap_mode4_normal:
16740   @ args = 0, pretend = 0, frame = 0
16741   @ frame_needed = 0, uses_anonymous_args = 0
16742   ldr r3, .L6084
16743   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
16744   ldrh  ip, [r3, #0]
16745   ldr r4, .L6084+4
16746   ldrh  sl, [r3, #36]
16747   tst ip, #16
16748   ldrh  r9, [r3, #32]
16749   ldr ip, .L6084+8
16750   ldr r3, .L6084+12
16751   ldr r5, [ip, #0]
16752   ldr r6, [r3, #0]
16753   mov lr, r9, asl #16
16754   mov ip, sl, asl #16
16755   add r3, r4, #40960
16756   moveq fp, r4
16757   movne fp, r3
16758   mov r8, lr, asr #16
16759   mov r7, ip, asr #16
16760   cmp sl, #0
16761   mla r4, r7, r0, r5
16762   add ip, r2, r0, asl #1
16763   rsb lr, r0, r1
16764   mla r5, r8, r0, r6
16765   beq .L6044
16766   cmp lr, #0
16767   ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16768   mov r1, r5, asr #8
16769   mov r0, r4, asr #8
16770   cmp r1, #239
16771   cmpls r0, #159
16772   mov r2, r1
16773   mov r3, r0
16774   movhi r6, #0
16775   movls r6, #1
16776   bhi .L6050
16777   b .L6082
16778 .L6071:
16779   cmp r3, #239
16780   cmpls r2, #159
16781   bls .L6072
16782 .L6050:
16783   add r6, r6, #1
16784   add r5, r5, r8
16785   add r4, r4, r7
16786   cmp lr, r6
16787   mov r3, r5, asr #8
16788   mov r2, r4, asr #8
16789   add ip, ip, #2
16790   bne .L6071
16791   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16792 .L6044:
16793   mov r3, r4, asr #8
16794   cmp r3, #159
16795   ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16796   rsb r3, r3, r3, asl #4
16797   cmp r9, #256
16798   add r1, fp, r3, asl #4
16799   mov r0, r5, asr #8
16800   beq .L6052
16801   cmp lr, #0
16802   ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16803   cmp r0, #239
16804   movhi r2, sl
16805   bhi .L6057
16806   b .L6083
16807 .L6067:
16808   cmp r3, #239
16809   bls .L6068
16810 .L6057:
16811   add r2, r2, #1
16812   add r5, r5, r8
16813   cmp lr, r2
16814   mov r3, r5, asr #8
16815   add ip, ip, #2
16816   bne .L6067
16817   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16818 .L6072:
16819   mov r0, r2
16820   mov r1, r3
16821   mov r2, r3
16822   mov r3, r0
16823 .L6073:
16824   cmp r3, #159
16825   cmpls r2, #239
16826   ldrls sl, .L6084+16
16827   bls .L6074
16828   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16829 .L6075:
16830   cmp r0, #159
16831   cmpls r1, #239
16832   ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16833 .L6074:
16834   rsb r3, r0, r0, asl #4
16835   add r3, fp, r3, asl #4
16836   ldrb  r2, [r3, r1]  @ zero_extendqisi2
16837   add r6, r6, #1
16838   mov r2, r2, asl #1
16839   ldrh  r2, [r2, sl]
16840   add r5, r5, r8
16841   add r4, r4, r7
16842   cmp lr, r6
16843   mov r0, r4, asr #8
16844   mov r1, r5, asr #8
16845   strh  r2, [ip], #2  @ movhi
16846   bhi .L6075
16847   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16848 .L6068:
16849   ldr r4, .L6084+16
16850   mov r0, r3
16851   b .L6079
16852 .L6069:
16853   cmp r0, #239
16854   ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16855 .L6079:
16856   ldrb  r3, [r1, r0]  @ zero_extendqisi2
16857   add r2, r2, #1
16858   mov r3, r3, asl #1
16859   ldrh  r3, [r3, r4]
16860   add r5, r5, r8
16861   cmp lr, r2
16862   mov r0, r5, asr #8
16863   strh  r3, [ip], #2  @ movhi
16864   bhi .L6069
16865   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16866 .L6052:
16867   cmp r0, #0
16868   sublt ip, ip, r0, asl #1
16869   addlt lr, lr, r0
16870   movlt r0, sl
16871   movlt r3, r0
16872   blt .L6060
16873   addne r1, r1, r0
16874   mov r3, r0
16875 .L6060:
16876   add r3, lr, r3
16877   cmp r3, #239
16878   rsbhi lr, r0, #240
16879   cmp lr, #0
16880   ldmlefd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16881   ldr r0, .L6084+16
16882   mov r2, #0
16883 .L6066:
16884   ldrb  r3, [r1], #1  @ zero_extendqisi2
16885   add r2, r2, #1
16886   mov r3, r3, asl #1
16887   ldrh  r3, [r3, r0]
16888   cmp lr, r2
16889   strh  r3, [ip], #2  @ movhi
16890   bne .L6066
16891   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16892 .L6082:
16893   mov r6, #0
16894   b .L6073
16895 .L6083:
16896   ldr r4, .L6084+16
16897   mov r2, sl
16898   b .L6079
16899 .L6085:
16900   .align  2
16901 .L6084:
16902   .word io_registers
16903   .word vram
16904   .word affine_reference_y
16905   .word affine_reference_x
16906   .word palette_ram_converted
16907   .size render_scanline_bitmap_mode4_normal, .-render_scanline_bitmap_mode4_normal
16908   .align  2
16909   .global render_scanline_bitmap_mode5_normal
16910   .type render_scanline_bitmap_mode5_normal, %function
16911 render_scanline_bitmap_mode5_normal:
16912   @ args = 0, pretend = 0, frame = 4
16913   @ frame_needed = 0, uses_anonymous_args = 0
16914   ldr r3, .L6132
16915   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
16916   ldrh  ip, [r3, #0]
16917   ldrh  r9, [r3, #36]
16918   tst ip, #16
16919   ldr r4, .L6132+4
16920   ldrh  fp, [r3, #32]
16921   ldr ip, .L6132+8
16922   ldr r3, .L6132+12
16923   ldr r5, [ip, #0]
16924   ldr r6, [r3, #0]
16925   mov ip, r9, asl #16
16926   mov lr, fp, asl #16
16927   add r3, r4, #40960
16928   movne r4, r3
16929   mov r7, ip, asr #16
16930   sub sp, sp, #4
16931   mov sl, lr, asr #16
16932   cmp r9, #0
16933   str r4, [sp, #0]
16934   add ip, r2, r0, asl #1
16935   mla r4, r7, r0, r5
16936   rsb r8, r0, r1
16937   mla r0, sl, r0, r6
16938   beq .L6090
16939   cmp r8, #0
16940   beq .L6122
16941   mov lr, r0, asr #8
16942   mov r5, r4, asr #8
16943   cmp lr, #159
16944   cmpls r5, #127
16945   movhi r1, #0
16946   movls r1, #1
16947   mov r2, lr
16948   mov r3, r5
16949   movhi r6, r1
16950   bhi .L6096
16951   b .L6130
16952 .L6117:
16953   cmp r3, #159
16954   cmpls r2, #127
16955   bls .L6118
16956 .L6096:
16957   add r6, r6, #1
16958   add r0, r0, sl
16959   add r4, r4, r7
16960   cmp r8, r6
16961   mov r3, r0, asr #8
16962   mov r2, r4, asr #8
16963   add ip, ip, #2
16964   bne .L6117
16965 .L6122:
16966   add sp, sp, #4
16967   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
16968 .L6090:
16969   mov r3, r4, asr #8
16970   cmp r3, #127
16971   bhi .L6122
16972   ldr r1, [sp, #0]
16973   add r3, r3, r3, asl #2
16974   cmp fp, #256
16975   add lr, r1, r3, asl #6
16976   mov r5, r0, asr #8
16977   beq .L6098
16978   cmp r8, #0
16979   beq .L6122
16980   cmp r5, #159
16981   movhi r4, r9
16982   bhi .L6103
16983   b .L6131
16984 .L6113:
16985   cmp r2, #159
16986   bls .L6114
16987 .L6103:
16988   add r4, r4, #1
16989   add r0, r0, sl
16990   cmp r8, r4
16991   mov r2, r0, asr #8
16992   add ip, ip, #2
16993   bne .L6113
16994   b .L6122
16995 .L6118:
16996   mov r5, r2
16997   mov lr, r3
16998   mov r2, r3
16999   mov r3, r5
17000 .L6119:
17001   cmp r3, #127
17002   cmpls r2, #159
17003   bls .L6126
17004   b .L6122
17005 .L6121:
17006   cmp r5, #127
17007   cmpls lr, #159
17008   bhi .L6122
17009 .L6126:
17010   add r3, r5, r5, asl #2
17011   add r3, lr, r3, asl #5
17012   ldr r1, [sp, #0]
17013   mov r3, r3, asl #1
17014   ldrh  r2, [r3, r1]
17015   add r6, r6, #1
17016   mov r3, r2, lsr #10
17017   and r1, r2, #31
17018   orr r3, r3, r1, asl #11
17019   and r2, r2, #992
17020   add r0, r0, sl
17021   add r4, r4, r7
17022   orr r3, r3, r2, asl #1
17023   cmp r8, r6
17024   mov r5, r4, asr #8
17025   mov lr, r0, asr #8
17026   strh  r3, [ip], #2  @ movhi
17027   bhi .L6121
17028   b .L6122
17029 .L6114:
17030   mov r5, r2
17031   b .L6125
17032 .L6115:
17033   cmp r5, #159
17034   bhi .L6122
17035 .L6125:
17036   mov r2, r5, asl #1
17037   ldrh  r3, [r2, lr]
17038   add r4, r4, #1
17039   mov r2, r3, lsr #10
17040   and r1, r3, #31
17041   orr r2, r2, r1, asl #11
17042   and r3, r3, #992
17043   add r0, r0, sl
17044   orr r2, r2, r3, asl #1
17045   cmp r8, r4
17046   mov r5, r0, asr #8
17047   strh  r2, [ip], #2  @ movhi
17048   bhi .L6115
17049   b .L6122
17050 .L6098:
17051   cmp r5, #0
17052   sublt ip, ip, r5, asl #1
17053   addlt r8, r8, r5
17054   movlt r5, r9
17055   movlt r3, r5
17056   blt .L6106
17057   addne lr, lr, r5, asl #1
17058   mov r3, r5
17059 .L6106:
17060   add r3, r8, r3
17061   cmp r3, #159
17062   rsbhi r8, r5, #160
17063   cmp r8, #0
17064   ble .L6122
17065   mov r0, #0
17066 .L6112:
17067   ldrh  r3, [lr], #2
17068   add r0, r0, #1
17069   mov r2, r3, lsr #10
17070   and r1, r3, #31
17071   orr r2, r2, r1, asl #11
17072   and r3, r3, #992
17073   orr r2, r2, r3, asl #1
17074   cmp r8, r0
17075   strh  r2, [ip], #2  @ movhi
17076   bne .L6112
17077   b .L6122
17078 .L6130:
17079   mov r6, #0
17080   b .L6119
17081 .L6131:
17082   mov r4, r9
17083   b .L6125
17084 .L6133:
17085   .align  2
17086 .L6132:
17087   .word io_registers
17088   .word vram
17089   .word affine_reference_y
17090   .word affine_reference_x
17091   .size render_scanline_bitmap_mode5_normal, .-render_scanline_bitmap_mode5_normal
17092   .align  2
17093   .global render_scanline_obj_normal_1D
17094   .type render_scanline_obj_normal_1D, %function
17095 render_scanline_obj_normal_1D:
17096   @ args = 0, pretend = 0, frame = 104
17097   @ frame_needed = 0, uses_anonymous_args = 0
17098   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
17099   ldr ip, .L6976
17100   sub sp, sp, #104
17101   ldrh  ip, [ip, #6]
17102   add r0, r0, r0, asl #2
17103   add r0, ip, r0, asl #5
17104   str ip, [sp, #28]
17105   ldr ip, .L6976+4
17106   str r1, [sp, #8]
17107   ldr ip, [ip, r0, asl #2]
17108   str r2, [sp, #4]
17109   str ip, [sp, #32]
17110   cmp ip, #0
17111   ldr ip, .L6976+8
17112   str r3, [sp, #0]
17113   add r0, ip, r0, asl #7
17114   str r0, [sp, #36]
17115   beq .L6922
17116   add r0, r3, r1, asl #1
17117   rsb r1, r1, r2
17118   mov r2, #0
17119   str r0, [sp, #76]
17120   str r1, [sp, #100]
17121   str r2, [sp, #24]
17122   mov r4, r2
17123 .L6137:
17124   ldr r5, [sp, #36]
17125   ldr r6, .L6976+12
17126   ldrb  r3, [r4, r5]  @ zero_extendqisi2
17127   mov r3, r3, asl #3
17128   ldrh  lr, [r3, r6]
17129   add r3, r3, r6
17130   ldrh  r1, [r3, #2]
17131   mov r4, lr, lsr #12
17132   and r2, r4, #12
17133   orr r0, r2, r1, lsr #14
17134   and ip, lr, #255
17135   mov r2, r1, asl #23
17136   cmp ip, #160
17137   ldrh  r6, [r3, #4]
17138   mov r5, r2, asr #23
17139   ldr r3, .L6976+16
17140   ldr r2, .L6976+20
17141   subgt ip, ip, #256
17142   tst lr, #256
17143   ldr r7, [r2, r0, asl #2]
17144   ldr sl, [r3, r0, asl #2]
17145   beq .L6140
17146   tst lr, #8192
17147   beq .L6142
17148   mov r3, r1, lsr #4
17149   ldr r4, .L6976+12
17150   and r3, r3, #992
17151   add r3, r3, r4
17152   tst lr, #512
17153   ldrh  lr, [r3, #30]
17154   add r2, r7, r7, lsr #31
17155   add r1, sl, sl, lsr #31
17156   str lr, [sp, #12]
17157   mov lr, r2, asr #1
17158   ldr r2, [sp, #8]
17159   mov r4, r1, asr #1
17160   movne r0, lr, asl #1
17161   strne r0, [sp, #48]
17162   moveq r9, r7
17163   streq lr, [sp, #48]
17164   moveq r0, r4
17165   movne r9, r7, asl #1
17166   movne r0, r4, asl #1
17167   cmp r5, r2
17168   ldrh  r8, [r3, #6]
17169   ldrh  r1, [r3, #14]
17170   ldrh  fp, [r3, #22]
17171   bge .L6147
17172   rsb r2, r5, r2
17173   rsb r9, r2, r9
17174   cmp r9, #0
17175   ble .L6149
17176   ldr r3, [sp, #48]
17177   ldr r5, [sp, #8]
17178   rsb r3, r2, r3
17179   str r3, [sp, #48]
17180 .L6147:
17181   ldr r2, [sp, #4]
17182   add r3, r5, r9
17183   cmp r3, r2
17184   blt .L6151
17185   rsb r9, r5, r2
17186   cmp r9, #0
17187   ble .L6149
17188 .L6151:
17189   add r0, ip, r0
17190   ldr ip, [sp, #12]
17191   mov r2, r1, asl #16
17192   mov lr, lr, asl #8
17193   mov r1, ip, asl #16
17194   mov r3, r8, asl #16
17195   mov ip, r1, asr #16
17196   str lr, [sp, #84]
17197   ldr r1, [sp, #28]
17198   ldr lr, [sp, #0]
17199   mov r3, r3, asr #16
17200   mov r2, r2, asr #16
17201   cmp fp, #0
17202   add r8, lr, r5, asl #1
17203   str r3, [sp, #40]
17204   str r2, [sp, #44]
17205   mov r4, r4, asl #8
17206   rsb lr, r0, r1
17207   bne .L6153
17208   mla r3, lr, ip, r4
17209   mov r0, r3, asr #8
17210   cmp r0, sl
17211   bcs .L6149
17212   cmp r7, #0
17213   add r3, r7, #7
17214   movge r3, r7
17215   mov r3, r3, asr #3
17216   mov r2, r6, asl #22
17217   mov r3, r3, asl #1
17218   mov r1, r0, lsr #3
17219   mov r2, r2, lsr #22
17220   mla ip, r3, r1, r2
17221   and r0, r0, #7
17222   ldr r3, .L6976+24
17223   add r0, r0, ip, asl #2
17224   cmp r9, #0
17225   add r4, r3, r0, asl #3
17226   ble .L6149
17227   ldr r3, [sp, #44]
17228   ldr r2, [sp, #48]
17229   ldr r5, [sp, #40]
17230   mul r3, lr, r3
17231   mul r2, r5, r2
17232   ldr r6, [sp, #84]
17233   rsb r3, r2, r3
17234   add r0, r6, r3
17235   mov lr, r0, asr #8
17236   cmp lr, r7
17237   movcs ip, fp
17238   bcs .L6159
17239   b .L6972
17240 .L6160:
17241   cmp lr, r7
17242   bcc .L6936
17243 .L6159:
17244   ldr lr, [sp, #40]
17245   add ip, ip, #1
17246   add r0, r0, lr
17247   cmp r9, ip
17248   mov lr, r0, asr #8
17249   add r8, r8, #2
17250   bne .L6160
17251 .L6149:
17252   ldr lr, [sp, #24]
17253   ldr r0, [sp, #32]
17254   add lr, lr, #1
17255   cmp lr, r0
17256   str lr, [sp, #24]
17257   beq .L6922
17258 .L6954:
17259   ldr r4, [sp, #24]
17260   b .L6137
17261 .L6140:
17262   ldr lr, [sp, #28]
17263   tst r1, #8192
17264   rsb ip, ip, lr
17265   rsbne r3, ip, sl
17266   subne ip, r3, #1
17267   mov r2, r1, asl #19
17268   and r3, r4, #2
17269   orr r3, r3, r2, lsr #31
17270   cmp r3, #3
17271   ldrls pc, [pc, r3, asl #2]
17272   b .L6149
17273   .p2align 2
17274 .L6221:
17275   .word .L6217
17276   .word .L6218
17277   .word .L6219
17278   .word .L6220
17279 .L6217:
17280   cmp r7, #0
17281   add r3, r7, #7
17282   mov r2, r6, asl #22
17283   movge r3, r7
17284   mov r8, r3, asr #3
17285   mov r2, r2, lsr #22
17286   mov r3, ip, lsr #3
17287   mla r0, r8, r3, r2
17288   and r1, ip, #7
17289   add r1, r1, r0, asl #3
17290   ldr r0, [sp, #8]
17291   ldr r3, .L6976+24
17292   cmp r5, r0
17293   mov r2, r6, lsr #8
17294   add r0, r3, r1, asl #2
17295   and r1, r2, #240
17296   blt .L6949
17297   ldr r2, [sp, #4]
17298   add r3, r5, r7
17299   cmp r2, r3
17300   bhi .L6303
17301   rsb r8, r5, r2
17302   cmp r8, #0
17303   ble .L6149
17304   ldr r3, [sp, #0]
17305   movs  r7, r8, lsr #3
17306   add r2, r3, r5, asl #1
17307   beq .L6306
17308   ldr r6, .L6976+36
17309   mov r4, r2
17310   mov r5, r0
17311   mov ip, #0
17312 .L6308:
17313   ldr lr, [r5, #0]
17314   cmp lr, #0
17315   beq .L6309
17316   ands  r3, lr, #15
17317   orrne r3, r1, r3
17318   movne r3, r3, asl #1
17319   ldrneh  r3, [r3, r6]
17320   strneh  r3, [r4, #0]  @ movhi
17321   mov r3, lr, lsr #4
17322   ands  r3, r3, #15
17323   orrne r3, r1, r3
17324   movne r3, r3, asl #1
17325   ldrneh  r3, [r3, r6]
17326   strneh  r3, [r4, #2]  @ movhi
17327   mov r3, lr, lsr #8
17328   ands  r3, r3, #15
17329   orrne r3, r1, r3
17330   movne r3, r3, asl #1
17331   ldrneh  r3, [r3, r6]
17332   strneh  r3, [r4, #4]  @ movhi
17333   mov r3, lr, lsr #12
17334   ands  r3, r3, #15
17335   orrne r3, r1, r3
17336   movne r3, r3, asl #1
17337   ldrneh  r3, [r3, r6]
17338   strneh  r3, [r4, #6]  @ movhi
17339   mov r3, lr, lsr #16
17340   ands  r3, r3, #15
17341   orrne r3, r1, r3
17342   movne r3, r3, asl #1
17343   ldrneh  r3, [r3, r6]
17344   strneh  r3, [r4, #8]  @ movhi
17345   mov r3, lr, lsr #20
17346   ands  r3, r3, #15
17347   orrne r3, r1, r3
17348   movne r3, r3, asl #1
17349   ldrneh  r3, [r3, r6]
17350   strneh  r3, [r4, #10] @ movhi
17351   mov r3, lr, lsr #24
17352   ands  r3, r3, #15
17353   orrne r3, r1, r3
17354   movne r3, r3, asl #1
17355   ldrneh  r3, [r3, r6]
17356   strneh  r3, [r4, #12] @ movhi
17357   movs  r3, lr, lsr #28
17358   orrne r3, r1, r3
17359   movne r3, r3, asl #1
17360   ldrneh  r3, [r3, r6]
17361   strneh  r3, [r4, #14] @ movhi
17362 .L6309:
17363   add ip, ip, #1
17364   cmp ip, r7
17365   add r5, r5, #32
17366   add r4, r4, #16
17367   bne .L6308
17368   add r0, r0, r7, asl #5
17369   add r2, r2, r7, asl #4
17370 .L6306:
17371   ands  r4, r8, #7
17372   beq .L6149
17373   ldr r0, [r0, #0]
17374   ldr r5, .L6976+36
17375   mov lr, #0
17376 .L6328:
17377   ands  r3, r0, #15
17378   orr r3, r1, r3
17379   mov r3, r3, asl #1
17380   ldrneh  r3, [r3, r5]
17381   mov ip, lr, asl #1
17382   add lr, lr, #1
17383   strneh  r3, [ip, r2]  @ movhi
17384   cmp lr, r4
17385   mov r0, r0, lsr #4
17386   bne .L6328
17387   b .L6149
17388 .L6218:
17389   cmp r7, #0
17390   add r3, r7, #7
17391   mov r2, r6, asl #22
17392   movge r3, r7
17393   mov r1, ip, lsr #3
17394   mov r8, r3, asr #3
17395   mov r2, r2, lsr #22
17396   mla r0, r8, r1, r2
17397   subs  r3, r7, #8
17398   submi r3, r7, #1
17399   and r2, ip, #7
17400   ldr ip, [sp, #8]
17401   add r0, r0, r3, asr #3
17402   ldr r3, .L6976+24
17403   add r2, r2, r0, asl #3
17404   mov r1, r6, lsr #8
17405   cmp r5, ip
17406   add r0, r3, r2, asl #2
17407   and r1, r1, #240
17408   blt .L6950
17409   ldr r2, [sp, #4]
17410   add r3, r5, r7
17411   cmp r2, r3
17412   bhi .L6433
17413   rsb r8, r5, r2
17414   cmp r8, #0
17415   ble .L6149
17416   ldr r3, [sp, #0]
17417   movs  r7, r8, lsr #3
17418   add r2, r3, r5, asl #1
17419   beq .L6436
17420   ldr r6, .L6976+36
17421   mov r4, r2
17422   mov r5, r0
17423   mov ip, #0
17424 .L6438:
17425   ldr lr, [r5, #0]
17426   cmp lr, #0
17427   beq .L6439
17428   ands  r3, lr, #15
17429   orrne r3, r1, r3
17430   movne r3, r3, asl #1
17431   ldrneh  r3, [r3, r6]
17432   strneh  r3, [r4, #14] @ movhi
17433   mov r3, lr, lsr #4
17434   ands  r3, r3, #15
17435   orrne r3, r1, r3
17436   movne r3, r3, asl #1
17437   ldrneh  r3, [r3, r6]
17438   strneh  r3, [r4, #12] @ movhi
17439   mov r3, lr, lsr #8
17440   ands  r3, r3, #15
17441   orrne r3, r1, r3
17442   movne r3, r3, asl #1
17443   ldrneh  r3, [r3, r6]
17444   strneh  r3, [r4, #10] @ movhi
17445   mov r3, lr, lsr #12
17446   ands  r3, r3, #15
17447   orrne r3, r1, r3
17448   movne r3, r3, asl #1
17449   ldrneh  r3, [r3, r6]
17450   strneh  r3, [r4, #8]  @ movhi
17451   mov r3, lr, lsr #16
17452   ands  r3, r3, #15
17453   orrne r3, r1, r3
17454   movne r3, r3, asl #1
17455   ldrneh  r3, [r3, r6]
17456   strneh  r3, [r4, #6]  @ movhi
17457   mov r3, lr, lsr #20
17458   ands  r3, r3, #15
17459   orrne r3, r1, r3
17460   movne r3, r3, asl #1
17461   ldrneh  r3, [r3, r6]
17462   strneh  r3, [r4, #4]  @ movhi
17463   mov r3, lr, lsr #24
17464   ands  r3, r3, #15
17465   orrne r3, r1, r3
17466   movne r3, r3, asl #1
17467   ldrneh  r3, [r3, r6]
17468   strneh  r3, [r4, #2]  @ movhi
17469   movs  r3, lr, lsr #28
17470   orrne r3, r1, r3
17471   movne r3, r3, asl #1
17472   ldrneh  r3, [r3, r6]
17473   strneh  r3, [r4, #0]  @ movhi
17474 .L6439:
17475   add ip, ip, #1
17476   cmp ip, r7
17477   sub r5, r5, #32
17478   add r4, r4, #16
17479   bne .L6438
17480   rsb r3, r7, r7, asl #27
17481   add r0, r0, r3, asl #5
17482   add r2, r2, r7, asl #4
17483 .L6436:
17484   ands  r4, r8, #7
17485   beq .L6149
17486   ldr r0, [r0, #0]
17487   ldr r5, .L6976+36
17488   mov lr, #0
17489 .L6458:
17490   movs  r3, r0, lsr #28
17491   orr r3, r1, r3
17492   mov r3, r3, asl #1
17493   ldrneh  r3, [r3, r5]
17494   mov ip, lr, asl #1
17495   add lr, lr, #1
17496   strneh  r3, [ip, r2]  @ movhi
17497   cmp lr, r4
17498   mov r0, r0, asl #4
17499   bne .L6458
17500   b .L6149
17501 .L6219:
17502   cmp r7, #0
17503   add r3, r7, #7
17504   mov r1, r6, asl #22
17505   movge r3, r7
17506   mov r2, ip, lsr #3
17507   mov r6, r3, asr #3
17508   mov r1, r1, lsr #22
17509   mov r2, r2, asl #1
17510   mla r0, r2, r6, r1
17511   and r3, ip, #7
17512   add r3, r3, r0, asl #2
17513   ldr ip, [sp, #8]
17514   mov r0, r3, asl #3
17515   ldr r3, .L6976+24
17516   cmp r5, ip
17517   add r1, r0, r3
17518   blt .L6951
17519   ldr ip, [sp, #4]
17520   add r3, r5, r7
17521   cmp ip, r3
17522   bhi .L6638
17523   rsb r8, r5, ip
17524   cmp r8, #0
17525   ble .L6149
17526   ldr lr, [sp, #0]
17527   movs  r7, r8, lsr #3
17528   add r2, lr, r5, asl #1
17529   beq .L6641
17530   ldr r3, .L6976+32
17531   ldr r6, .L6976+36
17532   add r0, r0, r3
17533   mov r4, r2
17534   mov r5, r1
17535   mov ip, #0
17536 .L6643:
17537   ldr lr, [r5, #0]
17538   cmp lr, #0
17539   beq .L6644
17540   ands  r3, lr, #255
17541   movne r3, r3, asl #1
17542   ldrneh  r3, [r3, r6]
17543   strneh  r3, [r4, #0]  @ movhi
17544   mov r3, lr, lsr #8
17545   ands  r3, r3, #255
17546   movne r3, r3, asl #1
17547   ldrneh  r3, [r3, r6]
17548   strneh  r3, [r4, #2]  @ movhi
17549   mov r3, lr, lsr #16
17550   ands  r3, r3, #255
17551   movne r3, r3, asl #1
17552   ldrneh  r3, [r3, r6]
17553   strneh  r3, [r4, #4]  @ movhi
17554   movs  r3, lr, lsr #24
17555   movne r3, r3, asl #1
17556   ldrneh  r3, [r3, r6]
17557   strneh  r3, [r4, #6]  @ movhi
17558 .L6644:
17559   ldr lr, [r0, #-60]
17560   cmp lr, #0
17561   beq .L6653
17562   ands  r3, lr, #255
17563   movne r3, r3, asl #1
17564   ldrneh  r3, [r3, r6]
17565   strneh  r3, [r4, #8]  @ movhi
17566   mov r3, lr, lsr #8
17567   ands  r3, r3, #255
17568   movne r3, r3, asl #1
17569   ldrneh  r3, [r3, r6]
17570   strneh  r3, [r4, #10] @ movhi
17571   mov r3, lr, lsr #16
17572   ands  r3, r3, #255
17573   movne r3, r3, asl #1
17574   ldrneh  r3, [r3, r6]
17575   strneh  r3, [r4, #12] @ movhi
17576   movs  r3, lr, lsr #24
17577   movne r3, r3, asl #1
17578   ldrneh  r3, [r3, r6]
17579   strneh  r3, [r4, #14] @ movhi
17580 .L6653:
17581   add ip, ip, #1
17582   cmp r7, ip
17583   add r5, r5, #64
17584   add r4, r4, #16
17585   add r0, r0, #64
17586   bne .L6643
17587   add r1, r1, r7, asl #6
17588   add r2, r2, r7, asl #4
17589 .L6641:
17590   ands  lr, r8, #7
17591   beq .L6149
17592   cmp lr, #3
17593   ldrls r0, [r1, #0]
17594   bls .L6676
17595   ldr r0, [r1, #0]
17596   cmp r0, #0
17597   beq .L6666
17598   ands  r3, r0, #255
17599   ldrne r4, .L6976+36
17600   movne r3, r3, asl #1
17601   ldrneh  r3, [r3, r4]
17602   strneh  r3, [r2, #0]  @ movhi
17603   mov r3, r0, lsr #8
17604   ands  r3, r3, #255
17605   ldrne r5, .L6976+36
17606   movne r3, r3, asl #1
17607   ldrneh  r3, [r3, r5]
17608   strneh  r3, [r2, #2]  @ movhi
17609   mov r3, r0, lsr #16
17610   ands  r3, r3, #255
17611   ldrne r6, .L6976+36
17612   movne r3, r3, asl #1
17613   ldrneh  r3, [r3, r6]
17614   strneh  r3, [r2, #4]  @ movhi
17615   movs  r3, r0, lsr #24
17616   ldrne r7, .L6976+36
17617   movne r3, r3, asl #1
17618   ldrneh  r3, [r3, r7]
17619   strneh  r3, [r2, #6]  @ movhi
17620 .L6666:
17621   subs  lr, lr, #4
17622   ldr r0, [r1, #4]
17623   addne r2, r2, #8
17624   beq .L6149
17625 .L6676:
17626   mov r1, #0
17627 .L6677:
17628   ands  r3, r0, #255
17629   ldrne r4, .L6976+36
17630   mov r3, r3, asl #1
17631   ldrneh  r3, [r3, r4]
17632   mov ip, r1, asl #1
17633   add r1, r1, #1
17634   strneh  r3, [ip, r2]  @ movhi
17635   cmp lr, r1
17636   mov r0, r0, lsr #8
17637   bhi .L6677
17638   b .L6149
17639 .L6220:
17640   cmp r7, #0
17641   add r2, r7, #7
17642   movge r2, r7
17643   subs  r3, r7, #8
17644   submi r3, r7, #1
17645   mov r1, ip, lsr #3
17646   mov r8, r2, asr #3
17647   mov r3, r3, asr #3
17648   mla r0, r8, r1, r3
17649   mov r2, r6, asl #22
17650   mov r2, r2, lsr #22
17651   add r2, r2, r0, asl #1
17652   and r3, ip, #7
17653   add r3, r3, r2, asl #2
17654   ldr ip, [sp, #8]
17655   mov r0, r3, asl #3
17656   ldr r3, .L6976+24
17657   cmp r5, ip
17658   add r1, r0, r3
17659   blt .L6952
17660   ldr ip, [sp, #4]
17661   add r3, r5, r7
17662   cmp r3, ip
17663   bcc .L6858
17664   rsb r8, r5, ip
17665   cmp r8, #0
17666   ble .L6149
17667   ldr lr, [sp, #0]
17668   movs  r7, r8, lsr #3
17669   add sl, lr, r5, asl #1
17670   beq .L6861
17671   ldr r3, .L6976+28
17672   ldr r6, .L6976+36
17673   add r0, r0, r3
17674   mov r4, sl
17675   mov r5, r1
17676   mov ip, #0
17677 .L6863:
17678   ldr lr, [r0, #68]
17679   cmp lr, #0
17680   beq .L6864
17681   ands  r3, lr, #255
17682   movne r3, r3, asl #1
17683   ldrneh  r3, [r3, r6]
17684   strneh  r3, [r4, #6]  @ movhi
17685   mov r3, lr, lsr #8
17686   ands  r3, r3, #255
17687   movne r3, r3, asl #1
17688   ldrneh  r3, [r3, r6]
17689   strneh  r3, [r4, #4]  @ movhi
17690   mov r3, lr, lsr #16
17691   ands  r3, r3, #255
17692   movne r3, r3, asl #1
17693   ldrneh  r3, [r3, r6]
17694   strneh  r3, [r4, #2]  @ movhi
17695   movs  r3, lr, lsr #24
17696   movne r3, r3, asl #1
17697   ldrneh  r3, [r3, r6]
17698   strneh  r3, [r4, #0]  @ movhi
17699 .L6864:
17700   ldr lr, [r5, #0]
17701   cmp lr, #0
17702   beq .L6873
17703   ands  r3, lr, #255
17704   movne r3, r3, asl #1
17705   ldrneh  r3, [r3, r6]
17706   strneh  r3, [r4, #14] @ movhi
17707   mov r3, lr, lsr #8
17708   ands  r3, r3, #255
17709   movne r3, r3, asl #1
17710   ldrneh  r3, [r3, r6]
17711   strneh  r3, [r4, #12] @ movhi
17712   mov r3, lr, lsr #16
17713   ands  r3, r3, #255
17714   movne r3, r3, asl #1
17715   ldrneh  r3, [r3, r6]
17716   strneh  r3, [r4, #10] @ movhi
17717   movs  r3, lr, lsr #24
17718   movne r3, r3, asl #1
17719   ldrneh  r3, [r3, r6]
17720   strneh  r3, [r4, #8]  @ movhi
17721 .L6873:
17722   add ip, ip, #1
17723   cmp ip, r7
17724   sub r5, r5, #64
17725   add r4, r4, #16
17726   sub r0, r0, #64
17727   bne .L6863
17728   rsb r3, r7, r7, asl #26
17729   add r1, r1, r3, asl #6
17730   add sl, sl, r7, asl #4
17731 .L6861:
17732   ands  ip, r8, #7
17733   beq .L6149
17734   cmp ip, #3
17735   ldrls r2, [r1, #4]
17736   bls .L6896
17737   ldr r2, [r1, #4]
17738   cmp r2, #0
17739   beq .L6886
17740   ands  r3, r2, #255
17741   ldrne r0, .L6976+36
17742   movne r3, r3, asl #1
17743   ldrneh  r3, [r3, r0]
17744   strneh  r3, [sl, #6]  @ movhi
17745   mov r3, r2, lsr #8
17746   ands  r3, r3, #255
17747   ldrne r4, .L6976+36
17748   movne r3, r3, asl #1
17749   ldrneh  r3, [r3, r4]
17750   strneh  r3, [sl, #4]  @ movhi
17751   mov r3, r2, lsr #16
17752   ands  r3, r3, #255
17753   ldrne r5, .L6976+36
17754   movne r3, r3, asl #1
17755   ldrneh  r3, [r3, r5]
17756   strneh  r3, [sl, #2]  @ movhi
17757   movs  r3, r2, lsr #24
17758   ldrne r6, .L6976+36
17759   movne r3, r3, asl #1
17760   ldrneh  r3, [r3, r6]
17761   strneh  r3, [sl, #0]  @ movhi
17762 .L6886:
17763   subs  ip, ip, #4
17764   ldr r2, [r1, #0]
17765   addne sl, sl, #8
17766   beq .L6149
17767 .L6896:
17768   mov r1, #0
17769 .L6897:
17770   movs  r3, r2, lsr #24
17771   ldrne r7, .L6976+36
17772   mov r3, r3, asl #1
17773   ldrneh  r3, [r3, r7]
17774   mov r0, r1, asl #1
17775   add r1, r1, #1
17776   strneh  r3, [r0, sl]  @ movhi
17777   cmp ip, r1
17778   mov r2, r2, asl #8
17779   bhi .L6897
17780   b .L6149
17781 .L6142:
17782   mov r3, r1, lsr #4
17783   ldr r4, .L6976+12
17784   and r3, r3, #992
17785   add r3, r3, r4
17786   tst lr, #512
17787   ldrh  lr, [r3, #30]
17788   add r2, r7, r7, lsr #31
17789   add r1, sl, sl, lsr #31
17790   str lr, [sp, #20]
17791   mov lr, r2, asr #1
17792   ldr r2, [sp, #8]
17793   mov r4, r1, asr #1
17794   ldrh  r8, [r3, #6]
17795   ldrh  r1, [r3, #14]
17796   ldrh  r3, [r3, #22]
17797   moveq fp, r7
17798   moveq r9, lr
17799   moveq r0, r4
17800   movne fp, r7, asl #1
17801   movne r9, lr, asl #1
17802   movne r0, r4, asl #1
17803   cmp r5, r2
17804   str r3, [sp, #16]
17805   bge .L6180
17806   rsb r2, r5, r2
17807   rsb fp, r2, fp
17808   cmp fp, #0
17809   ble .L6149
17810   ldr r5, [sp, #8]
17811   rsb r9, r2, r9
17812 .L6180:
17813   ldr r2, [sp, #4]
17814   add r3, r5, fp
17815   cmp r3, r2
17816   blt .L6183
17817   rsb fp, r5, r2
17818   cmp fp, #0
17819   ble .L6149
17820 .L6183:
17821   add ip, ip, r0
17822   ldr r0, [sp, #20]
17823   mov r2, r1, asl #16
17824   mov r1, r0, asl #16
17825   ldr r0, [sp, #16]
17826   mov r2, r2, asr #16
17827   mov r1, r1, asr #16
17828   mov r3, r8, asl #16
17829   cmp r0, #0
17830   str r2, [sp, #60]
17831   mov r0, r6, lsr #8
17832   str r1, [sp, #68]
17833   ldr r2, [sp, #28]
17834   ldr r1, [sp, #0]
17835   mov lr, lr, asl #8
17836   mov r3, r3, asr #16
17837   and r0, r0, #240
17838   str lr, [sp, #80]
17839   str r3, [sp, #56]
17840   mov r4, r4, asl #8
17841   add r8, r1, r5, asl #1
17842   rsb lr, ip, r2
17843   str r0, [sp, #96]
17844   bne .L6185
17845   ldr r3, [sp, #68]
17846   mla r3, lr, r3, r4
17847   mov r0, r3, asr #8
17848   cmp r0, sl
17849   bcs .L6149
17850   cmp r7, #0
17851   add r3, r7, #7
17852   mov r2, r6, asl #22
17853   movge r3, r7
17854   mov r1, r0, lsr #3
17855   mov r3, r3, asr #3
17856   mov r2, r2, lsr #22
17857   mla ip, r3, r1, r2
17858   and r0, r0, #7
17859   ldr r3, .L6976+24
17860   add r0, r0, ip, asl #3
17861   cmp fp, #0
17862   add r1, r3, r0, asl #2
17863   ble .L6149
17864   ldr r3, [sp, #60]
17865   ldr r2, [sp, #56]
17866   mul r3, lr, r3
17867   mul r2, r9, r2
17868   ldr r4, [sp, #80]
17869   rsb r3, r2, r3
17870   add r0, r4, r3
17871   mov lr, r0, asr #8
17872   cmp lr, r7
17873   ldrcs r4, [sp, #16]
17874   bcs .L6191
17875   b .L6973
17876 .L6192:
17877   cmp lr, r7
17878   bcc .L6938
17879 .L6191:
17880   ldr r5, [sp, #56]
17881   add r4, r4, #1
17882   add r0, r0, r5
17883   cmp fp, r4
17884   mov lr, r0, asr #8
17885   add r8, r8, #2
17886   bne .L6192
17887   ldr lr, [sp, #24]
17888   ldr r0, [sp, #32]
17889   add lr, lr, #1
17890   cmp lr, r0
17891   str lr, [sp, #24]
17892   bne .L6954
17893 .L6922:
17894   add sp, sp, #104
17895   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
17896 .L6153:
17897   cmp r7, #0
17898   add r1, r7, #7
17899   mov r2, r6, asl #22
17900   movge r1, r7
17901   ldr r3, .L6976+24
17902   mov r2, r2, lsr #22
17903   mov r1, r1, asr #3
17904   add r2, r3, r2, asl #5
17905   mov r1, r1, asl #6
17906   cmp r9, #0
17907   str r2, [sp, #92]
17908   str r1, [sp, #52]
17909   ble .L6149
17910   mov r3, fp, asl #16
17911   mov fp, r3, asr #16
17912   ldr r5, [sp, #40]
17913   ldr r3, [sp, #44]
17914   ldr r1, [sp, #48]
17915   ldr r0, [sp, #48]
17916   mul r2, lr, ip
17917   mul r3, lr, r3
17918   mul r0, r5, r0
17919   mul r1, fp, r1
17920   ldr r6, [sp, #84]
17921   rsb r3, r0, r3
17922   rsb r2, r1, r2
17923   add r5, r6, r3
17924   add r4, r4, r2
17925   mov ip, r5, asr #8
17926   mov lr, r4, asr #8
17927   cmp ip, r7
17928   cmpcc lr, sl
17929   movcs r3, #0
17930   movcc r3, #1
17931   movcs r6, r3
17932   bcs .L6169
17933   b .L6974
17934 .L6170:
17935   cmp ip, r7
17936   cmpcc lr, sl
17937   bcc .L6171
17938 .L6169:
17939   ldr ip, [sp, #40]
17940   add r6, r6, #1
17941   add r5, r5, ip
17942   add r4, r4, fp
17943   cmp r9, r6
17944   mov ip, r5, asr #8
17945   mov lr, r4, asr #8
17946   add r8, r8, #2
17947   bne .L6170
17948   b .L6149
17949 .L6185:
17950   cmp r7, #0
17951   add r1, r7, #7
17952   mov r2, r6, asl #22
17953   movge r1, r7
17954   ldr r3, .L6976+24
17955   mov r2, r2, lsr #22
17956   mov r1, r1, asr #3
17957   add r2, r3, r2, asl #5
17958   mov r1, r1, asl #5
17959   cmp fp, #0
17960   str r2, [sp, #88]
17961   str r1, [sp, #72]
17962   ble .L6149
17963   ldr r5, [sp, #16]
17964   ldr r2, [sp, #68]
17965   mov r3, r5, asl #16
17966   mov r3, r3, asr #16
17967   str r3, [sp, #64]
17968   ldr r1, [sp, #64]
17969   ldr r3, [sp, #60]
17970   ldr r0, [sp, #56]
17971   mul r2, lr, r2
17972   mul r3, lr, r3
17973   mul r1, r9, r1
17974   mul r0, r9, r0
17975   ldr r6, [sp, #80]
17976   rsb r2, r1, r2
17977   rsb r3, r0, r3
17978   add r5, r6, r3
17979   add r4, r4, r2
17980   mov lr, r5, asr #8
17981   mov r2, r4, asr #8
17982   cmp lr, r7
17983   cmpcc r2, sl
17984   movcs r3, #0
17985   movcc r3, #1
17986   movcs r6, r3
17987   bcs .L6204
17988   b .L6975
17989 .L6205:
17990   cmp lr, r7
17991   cmpcc r2, sl
17992   bcc .L6207
17993 .L6204:
17994   ldr lr, [sp, #64]
17995   ldr ip, [sp, #56]
17996   add r6, r6, #1
17997   add r4, r4, lr
17998   add r5, r5, ip
17999   cmp fp, r6
18000   mov lr, r5, asr #8
18001   mov r2, r4, asr #8
18002   add r8, r8, #2
18003   bne .L6205
18004   b .L6149
18005 .L6957:
18006   ldr r1, [sp, #88]
18007   and r0, r2, #7
18008   add r0, r1, r0, asl #2
18009   mov r3, r2, asr #3
18010   and r1, r2, #7
18011   ldr r2, [sp, #72]
18012   mov ip, lr, asr #1
18013   mul r2, r3, r2
18014   and r9, ip, #3
18015   ldr ip, [sp, #88]
18016   mov r3, lr, asr #1
18017   add r1, ip, r1, asl #2
18018   and ip, r3, #3
18019   mov r3, lr, asr #3
18020   add r2, r2, r3, asl #5
18021   add r3, r0, r2
18022   tst lr, #1
18023   add r0, r1, r2
18024   ldreqb  r3, [r0, ip]  @ zero_extendqisi2
18025   ldrneb  r3, [r3, r9]  @ zero_extendqisi2
18026   andeq r0, r3, #15
18027   movne r0, r3, lsr #4
18028   ldr r2, [sp, #96]
18029   cmp r0, #0
18030   orr r3, r0, r2
18031   ldrne ip, .L6976+36
18032   mov r3, r3, asl #1
18033   ldr lr, [sp, #56]
18034   ldrneh  r3, [r3, ip]
18035   ldr r1, [sp, #64]
18036   add r6, r6, #1
18037   strneh  r3, [r8, #0]  @ movhi
18038   add r5, r5, lr
18039   add r4, r4, r1
18040   cmp fp, r6
18041   mov lr, r5, asr #8
18042   mov r2, r4, asr #8
18043   add r8, r8, #2
18044   ble .L6149
18045 .L6207:
18046   cmp r2, sl
18047   cmpcc lr, r7
18048   bcc .L6957
18049   b .L6149
18050 .L6194:
18051   cmp lr, r7
18052   bcs .L6149
18053 .L6938:
18054   mov r3, lr, asr #1
18055   and r6, r3, #3
18056   mov r3, lr, asr #3
18057   mov r3, r3, asl #5
18058   mov r2, lr, asr #1
18059   tst lr, #1
18060   add ip, r3, r1
18061   and r5, r2, #3
18062   add r2, r3, r1
18063   ldreqb  r3, [r2, r5]  @ zero_extendqisi2
18064   ldrneb  r3, [ip, r6]  @ zero_extendqisi2
18065   andeq r2, r3, #15
18066   movne r2, r3, lsr #4
18067   ldr ip, [sp, #96]
18068   cmp r2, #0
18069   orr r3, r2, ip
18070   ldrne r2, .L6976+36
18071   mov r3, r3, asl #1
18072   ldrneh  r3, [r3, r2]
18073   ldr r6, [sp, #56]
18074   add r4, r4, #1
18075   strneh  r3, [r8, #0]  @ movhi
18076   add r0, r0, r6
18077   cmp fp, r4
18078   mov lr, r0, asr #8
18079   add r8, r8, #2
18080   bgt .L6194
18081   b .L6149
18082 .L6162:
18083   cmp lr, r7
18084   bcs .L6149
18085 .L6936:
18086   ldr r1, [sp, #40]
18087   mov r3, lr, asr #3
18088   add r3, r4, r3, asl #6
18089   add r0, r0, r1
18090   and r1, lr, #7
18091   ldrb  r2, [r3, r1]  @ zero_extendqisi2
18092   add ip, ip, #1
18093   cmp r2, #0
18094   ldrne r3, .L6976+36
18095   mov r2, r2, asl #1
18096   ldrneh  r2, [r2, r3]
18097   mov lr, r0, asr #8
18098   strneh  r2, [r8, #0]  @ movhi
18099   cmp r9, ip
18100   add r8, r8, #2
18101   bgt .L6162
18102   b .L6149
18103 .L6977:
18104   .align  2
18105 .L6976:
18106   .word io_registers
18107   .word obj_priority_count
18108   .word obj_priority_list
18109   .word oam_ram
18110   .word obj_height_table
18111   .word obj_width_table
18112   .word vram+65536
18113   .word vram+65472
18114   .word vram+65600
18115   .word palette_ram_converted+512
18116 .L6952:
18117   rsb r0, r5, ip
18118   rsb r4, r0, r7
18119   cmp r4, #0
18120   ble .L6149
18121   ldr lr, [sp, #4]
18122   add r3, r5, r7
18123   cmp lr, r3
18124   bhi .L6705
18125   mov r3, r0, lsr #3
18126   ands  ip, r0, #7
18127   sub r7, r1, r3, asl #6
18128   bne .L6707
18129   ldr r6, [sp, #100]
18130   ldr r5, [sp, #76]
18131 .L6709:
18132   movs  r4, r6, lsr #3
18133   beq .L6767
18134   ldr lr, .L6976+36
18135   mov r1, r5
18136   mov r0, r7
18137   mov ip, #0
18138 .L6769:
18139   ldr r2, [r0, #4]
18140   cmp r2, #0
18141   beq .L6770
18142   ands  r3, r2, #255
18143   movne r3, r3, asl #1
18144   ldrneh  r3, [r3, lr]
18145   strneh  r3, [r1, #6]  @ movhi
18146   mov r3, r2, lsr #8
18147   ands  r3, r3, #255
18148   movne r3, r3, asl #1
18149   ldrneh  r3, [r3, lr]
18150   strneh  r3, [r1, #4]  @ movhi
18151   mov r3, r2, lsr #16
18152   ands  r3, r3, #255
18153   movne r3, r3, asl #1
18154   ldrneh  r3, [r3, lr]
18155   strneh  r3, [r1, #2]  @ movhi
18156   movs  r3, r2, lsr #24
18157   movne r3, r3, asl #1
18158   ldrneh  r3, [r3, lr]
18159   strneh  r3, [r1, #0]  @ movhi
18160 .L6770:
18161   ldr r2, [r0, #0]
18162   cmp r2, #0
18163   beq .L6779
18164   ands  r3, r2, #255
18165   movne r3, r3, asl #1
18166   ldrneh  r3, [r3, lr]
18167   strneh  r3, [r1, #14] @ movhi
18168   mov r3, r2, lsr #8
18169   ands  r3, r3, #255
18170   movne r3, r3, asl #1
18171   ldrneh  r3, [r3, lr]
18172   strneh  r3, [r1, #12] @ movhi
18173   mov r3, r2, lsr #16
18174   ands  r3, r3, #255
18175   movne r3, r3, asl #1
18176   ldrneh  r3, [r3, lr]
18177   strneh  r3, [r1, #10] @ movhi
18178   movs  r3, r2, lsr #24
18179   movne r3, r3, asl #1
18180   ldrneh  r3, [r3, lr]
18181   strneh  r3, [r1, #8]  @ movhi
18182 .L6779:
18183   add ip, ip, #1
18184   cmp ip, r4
18185   sub r0, r0, #64
18186   add r1, r1, #16
18187   bne .L6769
18188   rsb r3, r4, r4, asl #26
18189   add r7, r7, r3, asl #6
18190   add r5, r5, r4, asl #4
18191 .L6767:
18192   ands  ip, r6, #7
18193   beq .L6149
18194   cmp ip, #3
18195   ldrls r2, [r7, #4]
18196   bls .L6802
18197   ldr r2, [r7, #4]
18198   cmp r2, #0
18199   beq .L6792
18200   ands  r3, r2, #255
18201   ldrne lr, .L6976+36
18202   movne r3, r3, asl #1
18203   ldrneh  r3, [r3, lr]
18204   strneh  r3, [r5, #6]  @ movhi
18205   mov r3, r2, lsr #8
18206   ands  r3, r3, #255
18207   ldrne r0, .L6976+36
18208   movne r3, r3, asl #1
18209   ldrneh  r3, [r3, r0]
18210   strneh  r3, [r5, #4]  @ movhi
18211   mov r3, r2, lsr #16
18212   ands  r3, r3, #255
18213   ldrne r1, .L6976+36
18214   movne r3, r3, asl #1
18215   ldrneh  r3, [r3, r1]
18216   strneh  r3, [r5, #2]  @ movhi
18217   movs  r3, r2, lsr #24
18218   ldrne r2, .L6976+36
18219   movne r3, r3, asl #1
18220   ldrneh  r3, [r3, r2]
18221   strneh  r3, [r5, #0]  @ movhi
18222 .L6792:
18223   subs  ip, ip, #4
18224   ldr r2, [r7, #0]
18225   addne r5, r5, #8
18226   beq .L6149
18227 .L6802:
18228   mov r1, #0
18229 .L6803:
18230   movs  r3, r2, lsr #24
18231   ldrne r4, .L6976+36
18232   mov r3, r3, asl #1
18233   ldrneh  r3, [r3, r4]
18234   mov r0, r1, asl #1
18235   add r1, r1, #1
18236   strneh  r3, [r0, r5]  @ movhi
18237   cmp ip, r1
18238   mov r2, r2, asl #8
18239   bhi .L6803
18240   b .L6149
18241 .L6951:
18242   rsb r0, r5, ip
18243   rsb r4, r0, r7
18244   cmp r4, #0
18245   ble .L6149
18246   ldr lr, [sp, #4]
18247   add r3, r5, r7
18248   cmp lr, r3
18249   bhi .L6485
18250   mov r3, r0, lsr #3
18251   ands  ip, r0, #7
18252   add r7, r1, r3, asl #6
18253   bne .L6487
18254   ldr r6, [sp, #100]
18255   ldr r5, [sp, #76]
18256 .L6489:
18257   movs  r4, r6, lsr #3
18258   beq .L6547
18259   ldr lr, .L6976+36
18260   mov r1, r5
18261   mov r0, r7
18262   mov ip, #0
18263 .L6549:
18264   ldr r2, [r0, #0]
18265   cmp r2, #0
18266   beq .L6550
18267   ands  r3, r2, #255
18268   movne r3, r3, asl #1
18269   ldrneh  r3, [r3, lr]
18270   strneh  r3, [r1, #0]  @ movhi
18271   mov r3, r2, lsr #8
18272   ands  r3, r3, #255
18273   movne r3, r3, asl #1
18274   ldrneh  r3, [r3, lr]
18275   strneh  r3, [r1, #2]  @ movhi
18276   mov r3, r2, lsr #16
18277   ands  r3, r3, #255
18278   movne r3, r3, asl #1
18279   ldrneh  r3, [r3, lr]
18280   strneh  r3, [r1, #4]  @ movhi
18281   movs  r3, r2, lsr #24
18282   movne r3, r3, asl #1
18283   ldrneh  r3, [r3, lr]
18284   strneh  r3, [r1, #6]  @ movhi
18285 .L6550:
18286   ldr r2, [r0, #4]
18287   cmp r2, #0
18288   beq .L6559
18289   ands  r3, r2, #255
18290   movne r3, r3, asl #1
18291   ldrneh  r3, [r3, lr]
18292   strneh  r3, [r1, #8]  @ movhi
18293   mov r3, r2, lsr #8
18294   ands  r3, r3, #255
18295   movne r3, r3, asl #1
18296   ldrneh  r3, [r3, lr]
18297   strneh  r3, [r1, #10] @ movhi
18298   mov r3, r2, lsr #16
18299   ands  r3, r3, #255
18300   movne r3, r3, asl #1
18301   ldrneh  r3, [r3, lr]
18302   strneh  r3, [r1, #12] @ movhi
18303   movs  r3, r2, lsr #24
18304   movne r3, r3, asl #1
18305   ldrneh  r3, [r3, lr]
18306   strneh  r3, [r1, #14] @ movhi
18307 .L6559:
18308   add ip, ip, #1
18309   cmp r4, ip
18310   add r0, r0, #64
18311   add r1, r1, #16
18312   bne .L6549
18313   add r7, r7, r4, asl #6
18314   add r5, r5, r4, asl #4
18315 .L6547:
18316   ands  ip, r6, #7
18317   beq .L6149
18318   cmp ip, #3
18319   ldrls r1, [r7, #0]
18320   bls .L6582
18321   ldr r2, [r7, #0]
18322   cmp r2, #0
18323   beq .L6572
18324   ands  r3, r2, #255
18325   ldrne lr, .L6976+36
18326   movne r3, r3, asl #1
18327   ldrneh  r3, [r3, lr]
18328   strneh  r3, [r5, #0]  @ movhi
18329   mov r3, r2, lsr #8
18330   ands  r3, r3, #255
18331   ldrne r0, .L6976+36
18332   movne r3, r3, asl #1
18333   ldrneh  r3, [r3, r0]
18334   strneh  r3, [r5, #2]  @ movhi
18335   mov r3, r2, lsr #16
18336   ands  r3, r3, #255
18337   ldrne r1, .L6976+36
18338   movne r3, r3, asl #1
18339   ldrneh  r3, [r3, r1]
18340   strneh  r3, [r5, #4]  @ movhi
18341   movs  r3, r2, lsr #24
18342   ldrne r2, .L6976+36
18343   movne r3, r3, asl #1
18344   ldrneh  r3, [r3, r2]
18345   strneh  r3, [r5, #6]  @ movhi
18346 .L6572:
18347   subs  ip, ip, #4
18348   ldr r1, [r7, #4]
18349   addne r5, r5, #8
18350   beq .L6149
18351 .L6582:
18352   mov r2, #0
18353 .L6583:
18354   ands  r3, r1, #255
18355   ldrne r4, .L6976+36
18356   mov r3, r3, asl #1
18357   ldrneh  r3, [r3, r4]
18358   mov r0, r2, asl #1
18359   add r2, r2, #1
18360   strneh  r3, [r0, r5]  @ movhi
18361   cmp ip, r2
18362   mov r1, r1, lsr #8
18363   bhi .L6583
18364   b .L6149
18365 .L6950:
18366   rsb lr, r5, ip
18367   rsb ip, lr, r7
18368   cmp ip, #0
18369   ble .L6149
18370   ldr r2, [sp, #4]
18371   add r3, r5, r7
18372   cmp r2, r3
18373   bhi .L6355
18374   mov r3, lr, lsr #3
18375   ands  r4, lr, #7
18376   sub r0, r0, r3, asl #5
18377   bne .L6357
18378   ldr r2, [sp, #100]
18379   ldr sl, [sp, #76]
18380 .L6359:
18381   movs  r8, r2, lsr #3
18382   beq .L6376
18383   ldr r7, .L6976+36
18384   mov r4, sl
18385   mov r5, r0
18386   mov r6, #0
18387 .L6378:
18388   ldr lr, [r5, #0]
18389   cmp lr, #0
18390   beq .L6379
18391   ands  r3, lr, #15
18392   orrne r3, r1, r3
18393   movne r3, r3, asl #1
18394   ldrneh  r3, [r3, r7]
18395   strneh  r3, [r4, #14] @ movhi
18396   mov r3, lr, lsr #4
18397   ands  r3, r3, #15
18398   orrne r3, r1, r3
18399   movne r3, r3, asl #1
18400   ldrneh  r3, [r3, r7]
18401   strneh  r3, [r4, #12] @ movhi
18402   mov r3, lr, lsr #8
18403   ands  r3, r3, #15
18404   orrne r3, r1, r3
18405   movne r3, r3, asl #1
18406   ldrneh  r3, [r3, r7]
18407   strneh  r3, [r4, #10] @ movhi
18408   mov r3, lr, lsr #12
18409   ands  r3, r3, #15
18410   orrne r3, r1, r3
18411   movne r3, r3, asl #1
18412   ldrneh  r3, [r3, r7]
18413   strneh  r3, [r4, #8]  @ movhi
18414   mov r3, lr, lsr #16
18415   ands  r3, r3, #15
18416   orrne r3, r1, r3
18417   movne r3, r3, asl #1
18418   ldrneh  r3, [r3, r7]
18419   strneh  r3, [r4, #6]  @ movhi
18420   mov r3, lr, lsr #20
18421   ands  r3, r3, #15
18422   orrne r3, r1, r3
18423   movne r3, r3, asl #1
18424   ldrneh  r3, [r3, r7]
18425   strneh  r3, [r4, #4]  @ movhi
18426   mov r3, lr, lsr #24
18427   ands  r3, r3, #15
18428   orrne r3, r1, r3
18429   movne r3, r3, asl #1
18430   ldrneh  r3, [r3, r7]
18431   strneh  r3, [r4, #2]  @ movhi
18432   movs  r3, lr, lsr #28
18433   orrne r3, r1, r3
18434   movne r3, r3, asl #1
18435   ldrneh  r3, [r3, r7]
18436   strneh  r3, [r4, #0]  @ movhi
18437 .L6379:
18438   add r6, r6, #1
18439   cmp r6, r8
18440   sub r5, r5, #32
18441   add r4, r4, #16
18442   bne .L6378
18443   rsb r3, r8, r8, asl #27
18444   add r0, r0, r3, asl #5
18445   add sl, sl, r8, asl #4
18446 .L6376:
18447   ands  lr, r2, #7
18448   beq .L6149
18449   ldr r0, [r0, #0]
18450   ldr r4, .L6976+36
18451   mov ip, #0
18452 .L6398:
18453   movs  r3, r0, lsr #28
18454   orr r3, r1, r3
18455   mov r3, r3, asl #1
18456   ldrneh  r3, [r3, r4]
18457   mov r2, ip, asl #1
18458   add ip, ip, #1
18459   strneh  r3, [r2, sl]  @ movhi
18460   cmp ip, lr
18461   mov r0, r0, asl #4
18462   bne .L6398
18463   b .L6149
18464 .L6949:
18465   ldr r2, [sp, #8]
18466   rsb lr, r5, r2
18467   rsb r4, lr, r7
18468   cmp r4, #0
18469   ble .L6149
18470   add r3, r5, r7
18471   ldr r5, [sp, #4]
18472   cmp r5, r3
18473   bhi .L6225
18474   mov r3, lr, lsr #3
18475   mov r2, r3, asl #5
18476   ands  r3, lr, #7
18477   add r6, r0, r2
18478   bne .L6227
18479   ldr r8, [sp, #100]
18480   ldr r7, [sp, #76]
18481 .L6229:
18482   movs  r5, r8, lsr #3
18483   beq .L6246
18484   ldr r4, .L6976+36
18485   mov ip, r7
18486   mov r0, r6
18487   mov lr, #0
18488 .L6248:
18489   ldr r2, [r0, #0]
18490   cmp r2, #0
18491   beq .L6249
18492   ands  r3, r2, #15
18493   orrne r3, r1, r3
18494   movne r3, r3, asl #1
18495   ldrneh  r3, [r3, r4]
18496   strneh  r3, [ip, #0]  @ movhi
18497   mov r3, r2, lsr #4
18498   ands  r3, r3, #15
18499   orrne r3, r1, r3
18500   movne r3, r3, asl #1
18501   ldrneh  r3, [r3, r4]
18502   strneh  r3, [ip, #2]  @ movhi
18503   mov r3, r2, lsr #8
18504   ands  r3, r3, #15
18505   orrne r3, r1, r3
18506   movne r3, r3, asl #1
18507   ldrneh  r3, [r3, r4]
18508   strneh  r3, [ip, #4]  @ movhi
18509   mov r3, r2, lsr #12
18510   ands  r3, r3, #15
18511   orrne r3, r1, r3
18512   movne r3, r3, asl #1
18513   ldrneh  r3, [r3, r4]
18514   strneh  r3, [ip, #6]  @ movhi
18515   mov r3, r2, lsr #16
18516   ands  r3, r3, #15
18517   orrne r3, r1, r3
18518   movne r3, r3, asl #1
18519   ldrneh  r3, [r3, r4]
18520   strneh  r3, [ip, #8]  @ movhi
18521   mov r3, r2, lsr #20
18522   ands  r3, r3, #15
18523   orrne r3, r1, r3
18524   movne r3, r3, asl #1
18525   ldrneh  r3, [r3, r4]
18526   strneh  r3, [ip, #10] @ movhi
18527   mov r3, r2, lsr #24
18528   ands  r3, r3, #15
18529   orrne r3, r1, r3
18530   movne r3, r3, asl #1
18531   ldrneh  r3, [r3, r4]
18532   strneh  r3, [ip, #12] @ movhi
18533   movs  r3, r2, lsr #28
18534   orrne r3, r1, r3
18535   movne r3, r3, asl #1
18536   ldrneh  r3, [r3, r4]
18537   strneh  r3, [ip, #14] @ movhi
18538 .L6249:
18539   add lr, lr, #1
18540   cmp r5, lr
18541   add r0, r0, #32
18542   add ip, ip, #16
18543   bne .L6248
18544   add r6, r6, r5, asl #5
18545   add r7, r7, r5, asl #4
18546 .L6246:
18547   ands  lr, r8, #7
18548   beq .L6149
18549   ldr r2, [r6, #0]
18550   ldr r4, .L6976+36
18551   mov r0, #0
18552 .L6268:
18553   ands  r3, r2, #15
18554   orr r3, r1, r3
18555   mov r3, r3, asl #1
18556   ldrneh  r3, [r3, r4]
18557   mov ip, r0, asl #1
18558   add r0, r0, #1
18559   strneh  r3, [ip, r7]  @ movhi
18560   cmp r0, lr
18561   mov r2, r2, lsr #4
18562   bne .L6268
18563   b .L6149
18564 .L6974:
18565   mov r6, #0
18566 .L6171:
18567   cmp lr, sl
18568   movcc r3, #0
18569   movcs r3, #1
18570   cmp r7, ip
18571   orrls r3, r3, #1
18572   cmp r3, #0
18573   beq .L6937
18574   b .L6149
18575 .L6172:
18576   cmp lr, sl
18577   cmpcc ip, r7
18578   bcs .L6149
18579 .L6937:
18580   ldr r0, [sp, #40]
18581   and r3, lr, #7
18582   mov r2, ip, asr #3
18583   ldr r1, [sp, #92]
18584   mov r3, r3, asl #3
18585   add r5, r5, r0
18586   add r3, r3, r2, asl #6
18587   ldr r0, [sp, #52]
18588   mov r2, lr, asr #3
18589   add r3, r3, r1
18590   mla r0, r2, r0, r3
18591   and r1, ip, #7
18592   ldrb  r3, [r0, r1]  @ zero_extendqisi2
18593   add r6, r6, #1
18594   cmp r3, #0
18595   ldrne r2, .L6976+36
18596   mov r3, r3, asl #1
18597   ldrneh  r3, [r3, r2]
18598   add r4, r4, fp
18599   strneh  r3, [r8, #0]  @ movhi
18600   cmp r9, r6
18601   mov lr, r4, asr #8
18602   mov ip, r5, asr #8
18603   add r8, r8, #2
18604   bgt .L6172
18605   b .L6149
18606 .L6433:
18607   cmp r8, #0
18608   beq .L6149
18609   ldr r6, [sp, #0]
18610   ldr r4, .L6976+36
18611   add r2, r6, r5, asl #1
18612   mov ip, #0
18613   b .L6463
18614 .L6958:
18615   sub r0, r0, #32
18616   add r2, r2, #16
18617 .L6463:
18618   ldr lr, [r0, #0]
18619   cmp lr, #0
18620   beq .L6464
18621   ands  r3, lr, #15
18622   orrne r3, r1, r3
18623   movne r3, r3, asl #1
18624   ldrneh  r3, [r3, r4]
18625   strneh  r3, [r2, #14] @ movhi
18626   mov r3, lr, lsr #4
18627   ands  r3, r3, #15
18628   orrne r3, r1, r3
18629   movne r3, r3, asl #1
18630   ldrneh  r3, [r3, r4]
18631   strneh  r3, [r2, #12] @ movhi
18632   mov r3, lr, lsr #8
18633   ands  r3, r3, #15
18634   orrne r3, r1, r3
18635   movne r3, r3, asl #1
18636   ldrneh  r3, [r3, r4]
18637   strneh  r3, [r2, #10] @ movhi
18638   mov r3, lr, lsr #12
18639   ands  r3, r3, #15
18640   orrne r3, r1, r3
18641   movne r3, r3, asl #1
18642   ldrneh  r3, [r3, r4]
18643   strneh  r3, [r2, #8]  @ movhi
18644   mov r3, lr, lsr #16
18645   ands  r3, r3, #15
18646   orrne r3, r1, r3
18647   movne r3, r3, asl #1
18648   ldrneh  r3, [r3, r4]
18649   strneh  r3, [r2, #6]  @ movhi
18650   mov r3, lr, lsr #20
18651   ands  r3, r3, #15
18652   orrne r3, r1, r3
18653   movne r3, r3, asl #1
18654   ldrneh  r3, [r3, r4]
18655   strneh  r3, [r2, #4]  @ movhi
18656   mov r3, lr, lsr #24
18657   ands  r3, r3, #15
18658   orrne r3, r1, r3
18659   movne r3, r3, asl #1
18660   ldrneh  r3, [r3, r4]
18661   strneh  r3, [r2, #2]  @ movhi
18662   movs  r3, lr, lsr #28
18663   orrne r3, r1, r3
18664   movne r3, r3, asl #1
18665   ldrneh  r3, [r3, r4]
18666   strneh  r3, [r2, #0]  @ movhi
18667 .L6464:
18668   add ip, ip, #1
18669   cmp r8, ip
18670   bne .L6958
18671   b .L6149
18672 .L6858:
18673   cmp r8, #0
18674   beq .L6149
18675   ldr ip, [sp, #0]
18676   ldr r3, .L6976+28
18677   ldr r4, .L6976+36
18678   add r2, ip, r5, asl #1
18679   add r0, r0, r3
18680   mov ip, #0
18681   b .L6902
18682 .L6959:
18683   sub r1, r1, #64
18684   add r2, r2, #16
18685 .L6902:
18686   ldr lr, [r0, #68]
18687   cmp lr, #0
18688   beq .L6903
18689   ands  r3, lr, #255
18690   movne r3, r3, asl #1
18691   ldrneh  r3, [r3, r4]
18692   strneh  r3, [r2, #6]  @ movhi
18693   mov r3, lr, lsr #8
18694   ands  r3, r3, #255
18695   movne r3, r3, asl #1
18696   ldrneh  r3, [r3, r4]
18697   strneh  r3, [r2, #4]  @ movhi
18698   mov r3, lr, lsr #16
18699   ands  r3, r3, #255
18700   movne r3, r3, asl #1
18701   ldrneh  r3, [r3, r4]
18702   strneh  r3, [r2, #2]  @ movhi
18703   movs  r3, lr, lsr #24
18704   movne r3, r3, asl #1
18705   ldrneh  r3, [r3, r4]
18706   strneh  r3, [r2, #0]  @ movhi
18707 .L6903:
18708   ldr lr, [r1, #0]
18709   cmp lr, #0
18710   beq .L6912
18711   ands  r3, lr, #255
18712   movne r3, r3, asl #1
18713   ldrneh  r3, [r3, r4]
18714   strneh  r3, [r2, #14] @ movhi
18715   mov r3, lr, lsr #8
18716   ands  r3, r3, #255
18717   movne r3, r3, asl #1
18718   ldrneh  r3, [r3, r4]
18719   strneh  r3, [r2, #12] @ movhi
18720   mov r3, lr, lsr #16
18721   ands  r3, r3, #255
18722   movne r3, r3, asl #1
18723   ldrneh  r3, [r3, r4]
18724   strneh  r3, [r2, #10] @ movhi
18725   movs  r3, lr, lsr #24
18726   movne r3, r3, asl #1
18727   ldrneh  r3, [r3, r4]
18728   strneh  r3, [r2, #8]  @ movhi
18729 .L6912:
18730   add ip, ip, #1
18731   cmp r8, ip
18732   sub r0, r0, #64
18733   bne .L6959
18734   b .L6149
18735 .L6303:
18736   cmp r8, #0
18737   beq .L6149
18738   ldr r6, [sp, #0]
18739   ldr r4, .L6976+36
18740   add r2, r6, r5, asl #1
18741   mov ip, #0
18742   b .L6333
18743 .L6960:
18744   add r0, r0, #32
18745   add r2, r2, #16
18746 .L6333:
18747   ldr lr, [r0, #0]
18748   cmp lr, #0
18749   beq .L6334
18750   ands  r3, lr, #15
18751   orrne r3, r1, r3
18752   movne r3, r3, asl #1
18753   ldrneh  r3, [r3, r4]
18754   strneh  r3, [r2, #0]  @ movhi
18755   mov r3, lr, lsr #4
18756   ands  r3, r3, #15
18757   orrne r3, r1, r3
18758   movne r3, r3, asl #1
18759   ldrneh  r3, [r3, r4]
18760   strneh  r3, [r2, #2]  @ movhi
18761   mov r3, lr, lsr #8
18762   ands  r3, r3, #15
18763   orrne r3, r1, r3
18764   movne r3, r3, asl #1
18765   ldrneh  r3, [r3, r4]
18766   strneh  r3, [r2, #4]  @ movhi
18767   mov r3, lr, lsr #12
18768   ands  r3, r3, #15
18769   orrne r3, r1, r3
18770   movne r3, r3, asl #1
18771   ldrneh  r3, [r3, r4]
18772   strneh  r3, [r2, #6]  @ movhi
18773   mov r3, lr, lsr #16
18774   ands  r3, r3, #15
18775   orrne r3, r1, r3
18776   movne r3, r3, asl #1
18777   ldrneh  r3, [r3, r4]
18778   strneh  r3, [r2, #8]  @ movhi
18779   mov r3, lr, lsr #20
18780   ands  r3, r3, #15
18781   orrne r3, r1, r3
18782   movne r3, r3, asl #1
18783   ldrneh  r3, [r3, r4]
18784   strneh  r3, [r2, #10] @ movhi
18785   mov r3, lr, lsr #24
18786   ands  r3, r3, #15
18787   orrne r3, r1, r3
18788   movne r3, r3, asl #1
18789   ldrneh  r3, [r3, r4]
18790   strneh  r3, [r2, #12] @ movhi
18791   movs  r3, lr, lsr #28
18792   orrne r3, r1, r3
18793   movne r3, r3, asl #1
18794   ldrneh  r3, [r3, r4]
18795   strneh  r3, [r2, #14] @ movhi
18796 .L6334:
18797   add ip, ip, #1
18798   cmp r8, ip
18799   bne .L6960
18800   b .L6149
18801 .L6638:
18802   cmp r6, #0
18803   beq .L6149
18804   ldr r3, .L6976+32
18805   ldr r7, [sp, #0]
18806   ldr r4, .L6976+36
18807   add r0, r0, r3
18808   add r2, r7, r5, asl #1
18809   mov ip, #0
18810   b .L6682
18811 .L6961:
18812   add r1, r1, #64
18813   add r2, r2, #16
18814 .L6682:
18815   ldr lr, [r1, #0]
18816   cmp lr, #0
18817   beq .L6683
18818   ands  r3, lr, #255
18819   movne r3, r3, asl #1
18820   ldrneh  r3, [r3, r4]
18821   strneh  r3, [r2, #0]  @ movhi
18822   mov r3, lr, lsr #8
18823   ands  r3, r3, #255
18824   movne r3, r3, asl #1
18825   ldrneh  r3, [r3, r4]
18826   strneh  r3, [r2, #2]  @ movhi
18827   mov r3, lr, lsr #16
18828   ands  r3, r3, #255
18829   movne r3, r3, asl #1
18830   ldrneh  r3, [r3, r4]
18831   strneh  r3, [r2, #4]  @ movhi
18832   movs  r3, lr, lsr #24
18833   movne r3, r3, asl #1
18834   ldrneh  r3, [r3, r4]
18835   strneh  r3, [r2, #6]  @ movhi
18836 .L6683:
18837   ldr lr, [r0, #-60]
18838   cmp lr, #0
18839   beq .L6692
18840   ands  r3, lr, #255
18841   movne r3, r3, asl #1
18842   ldrneh  r3, [r3, r4]
18843   strneh  r3, [r2, #8]  @ movhi
18844   mov r3, lr, lsr #8
18845   ands  r3, r3, #255
18846   movne r3, r3, asl #1
18847   ldrneh  r3, [r3, r4]
18848   strneh  r3, [r2, #10] @ movhi
18849   mov r3, lr, lsr #16
18850   ands  r3, r3, #255
18851   movne r3, r3, asl #1
18852   ldrneh  r3, [r3, r4]
18853   strneh  r3, [r2, #12] @ movhi
18854   movs  r3, lr, lsr #24
18855   movne r3, r3, asl #1
18856   ldrneh  r3, [r3, r4]
18857   strneh  r3, [r2, #14] @ movhi
18858 .L6692:
18859   add ip, ip, #1
18860   cmp r6, ip
18861   add r0, r0, #64
18862   bne .L6961
18863   b .L6149
18864 .L6485:
18865   ands  r2, r0, #7
18866   mov r3, r0, lsr #3
18867   add r0, r1, r3, asl #6
18868   ldreq r1, [sp, #76]
18869   beq .L6589
18870   cmp r2, #3
18871   rsb lr, r2, #8
18872   bhi .L6962
18873   subs  r5, lr, #4
18874   ldr r1, [r0, #0]
18875   ldreq r1, [sp, #76]
18876   beq .L6602
18877   mov r3, r2, asl #3
18878   mov r2, r1, lsr r3
18879   ldr r6, .L6976+36
18880   mov ip, #0
18881 .L6603:
18882   ands  r3, r2, #255
18883   mov r3, r3, asl #1
18884   ldrneh  r3, [r3, r6]
18885   ldrne r7, [sp, #76]
18886   mov r1, ip, asl #1
18887   add ip, ip, #1
18888   strneh  r3, [r1, r7]  @ movhi
18889   cmp ip, r5
18890   mov r2, r2, lsr #8
18891   bne .L6603
18892   ldr ip, [sp, #76]
18893   add r3, ip, lr, asl #1
18894   sub r1, r3, #8
18895 .L6602:
18896   ldr r2, [r0, #4]
18897   cmp r2, #0
18898   beq .L6608
18899   ands  r3, r2, #255
18900   ldrne lr, .L6976+36
18901   movne r3, r3, asl #1
18902   ldrneh  r3, [r3, lr]
18903   strneh  r3, [r1, #0]  @ movhi
18904   mov r3, r2, lsr #8
18905   ands  r3, r3, #255
18906   ldrne r5, .L6976+36
18907   movne r3, r3, asl #1
18908   ldrneh  r3, [r3, r5]
18909   strneh  r3, [r1, #2]  @ movhi
18910   mov r3, r2, lsr #16
18911   ands  r3, r3, #255
18912   ldrne r6, .L6976+36
18913   movne r3, r3, asl #1
18914   ldrneh  r3, [r3, r6]
18915   strneh  r3, [r1, #4]  @ movhi
18916   movs  r3, r2, lsr #24
18917   ldrne r7, .L6976+36
18918   movne r3, r3, asl #1
18919   ldrneh  r3, [r3, r7]
18920   strneh  r3, [r1, #6]  @ movhi
18921 .L6608:
18922   add r1, r1, #8
18923 .L6594:
18924   add r0, r0, #64
18925 .L6589:
18926   movs  r4, r4, lsr #3
18927   beq .L6149
18928   ldr ip, .L6976+36
18929   mov lr, #0
18930   b .L6618
18931 .L6963:
18932   add r0, r0, #64
18933   add r1, r1, #16
18934 .L6618:
18935   ldr r2, [r0, #0]
18936   cmp r2, #0
18937   beq .L6619
18938   ands  r3, r2, #255
18939   movne r3, r3, asl #1
18940   ldrneh  r3, [r3, ip]
18941   strneh  r3, [r1, #0]  @ movhi
18942   mov r3, r2, lsr #8
18943   ands  r3, r3, #255
18944   movne r3, r3, asl #1
18945   ldrneh  r3, [r3, ip]
18946   strneh  r3, [r1, #2]  @ movhi
18947   mov r3, r2, lsr #16
18948   ands  r3, r3, #255
18949   movne r3, r3, asl #1
18950   ldrneh  r3, [r3, ip]
18951   strneh  r3, [r1, #4]  @ movhi
18952   movs  r3, r2, lsr #24
18953   movne r3, r3, asl #1
18954   ldrneh  r3, [r3, ip]
18955   strneh  r3, [r1, #6]  @ movhi
18956 .L6619:
18957   ldr r2, [r0, #4]
18958   cmp r2, #0
18959   beq .L6628
18960   ands  r3, r2, #255
18961   movne r3, r3, asl #1
18962   ldrneh  r3, [r3, ip]
18963   strneh  r3, [r1, #8]  @ movhi
18964   mov r3, r2, lsr #8
18965   ands  r3, r3, #255
18966   movne r3, r3, asl #1
18967   ldrneh  r3, [r3, ip]
18968   strneh  r3, [r1, #10] @ movhi
18969   mov r3, r2, lsr #16
18970   ands  r3, r3, #255
18971   movne r3, r3, asl #1
18972   ldrneh  r3, [r3, ip]
18973   strneh  r3, [r1, #12] @ movhi
18974   movs  r3, r2, lsr #24
18975   movne r3, r3, asl #1
18976   ldrneh  r3, [r3, ip]
18977   strneh  r3, [r1, #14] @ movhi
18978 .L6628:
18979   add lr, lr, #1
18980   cmp r4, lr
18981   bne .L6963
18982   b .L6149
18983 .L6355:
18984   ands  r2, lr, #7
18985   mov r3, lr, lsr #3
18986   sub r0, r0, r3, asl #5
18987   ldreq r4, [sp, #76]
18988   beq .L6404
18989   rsbs  r6, r2, #8
18990   ldr lr, [r0, #0]
18991   ldreq r4, [sp, #76]
18992   beq .L6407
18993   mov r3, r2, asl #2
18994   mov lr, lr, asl r3
18995   ldr r2, .L6976+36
18996   mov r5, #0
18997 .L6408:
18998   movs  r3, lr, lsr #28
18999   orr r3, r1, r3
19000   mov r3, r3, asl #1
19001   ldrneh  r3, [r3, r2]
19002   ldrne r7, [sp, #76]
19003   mov r4, r5, asl #1
19004   add r5, r5, #1
19005   strneh  r3, [r4, r7]  @ movhi
19006   cmp r6, r5
19007   mov lr, lr, asl #4
19008   bne .L6408
19009   ldr lr, [sp, #76]
19010   add r4, lr, r6, asl #1
19011 .L6407:
19012   sub r0, r0, #32
19013 .L6404:
19014   movs  r5, ip, lsr #3
19015   beq .L6149
19016   ldr r2, .L6976+36
19017   mov ip, #0
19018   b .L6414
19019 .L6964:
19020   sub r0, r0, #32
19021   add r4, r4, #16
19022 .L6414:
19023   ldr lr, [r0, #0]
19024   cmp lr, #0
19025   beq .L6415
19026   ands  r3, lr, #15
19027   orrne r3, r1, r3
19028   movne r3, r3, asl #1
19029   ldrneh  r3, [r3, r2]
19030   strneh  r3, [r4, #14] @ movhi
19031   mov r3, lr, lsr #4
19032   ands  r3, r3, #15
19033   orrne r3, r1, r3
19034   movne r3, r3, asl #1
19035   ldrneh  r3, [r3, r2]
19036   strneh  r3, [r4, #12] @ movhi
19037   mov r3, lr, lsr #8
19038   ands  r3, r3, #15
19039   orrne r3, r1, r3
19040   movne r3, r3, asl #1
19041   ldrneh  r3, [r3, r2]
19042   strneh  r3, [r4, #10] @ movhi
19043   mov r3, lr, lsr #12
19044   ands  r3, r3, #15
19045   orrne r3, r1, r3
19046   movne r3, r3, asl #1
19047   ldrneh  r3, [r3, r2]
19048   strneh  r3, [r4, #8]  @ movhi
19049   mov r3, lr, lsr #16
19050   ands  r3, r3, #15
19051   orrne r3, r1, r3
19052   movne r3, r3, asl #1
19053   ldrneh  r3, [r3, r2]
19054   strneh  r3, [r4, #6]  @ movhi
19055   mov r3, lr, lsr #20
19056   ands  r3, r3, #15
19057   orrne r3, r1, r3
19058   movne r3, r3, asl #1
19059   ldrneh  r3, [r3, r2]
19060   strneh  r3, [r4, #4]  @ movhi
19061   mov r3, lr, lsr #24
19062   ands  r3, r3, #15
19063   orrne r3, r1, r3
19064   movne r3, r3, asl #1
19065   ldrneh  r3, [r3, r2]
19066   strneh  r3, [r4, #2]  @ movhi
19067   movs  r3, lr, lsr #28
19068   orrne r3, r1, r3
19069   movne r3, r3, asl #1
19070   ldrneh  r3, [r3, r2]
19071   strneh  r3, [r4, #0]  @ movhi
19072 .L6415:
19073   add ip, ip, #1
19074   cmp ip, r5
19075   bne .L6964
19076   b .L6149
19077 .L6705:
19078   mov r3, r0, lsr #3
19079   ands  ip, r0, #7
19080   sub r2, r1, r3, asl #6
19081   ldreq r0, [sp, #76]
19082   beq .L6809
19083   cmp ip, #3
19084   rsb lr, ip, #8
19085   bhi .L6965
19086   subs  r5, lr, #4
19087   ldr r1, [r2, #4]
19088   ldreq r0, [sp, #76]
19089   beq .L6822
19090   mov r3, ip, asl #3
19091   sub r3, r3, #32
19092   mov r1, r1, asl r3
19093   ldr r6, .L6976+36
19094   mov ip, #0
19095 .L6823:
19096   movs  r3, r1, lsr #24
19097   mov r3, r3, asl #1
19098   ldrneh  r3, [r3, r6]
19099   ldrne r7, [sp, #76]
19100   mov r0, ip, asl #1
19101   add ip, ip, #1
19102   strneh  r3, [r0, r7]  @ movhi
19103   cmp r5, ip
19104   mov r1, r1, asl #8
19105   bne .L6823
19106   ldr ip, [sp, #76]
19107   add r3, ip, lr, asl #1
19108   sub r0, r3, #8
19109 .L6822:
19110   ldr r1, [r2, #0]
19111   cmp r1, #0
19112   beq .L6828
19113   ands  r3, r1, #255
19114   ldrne lr, .L6976+36
19115   movne r3, r3, asl #1
19116   ldrneh  r3, [r3, lr]
19117   strneh  r3, [r0, #6]  @ movhi
19118   mov r3, r1, lsr #8
19119   ands  r3, r3, #255
19120   ldrne r5, .L6976+36
19121   movne r3, r3, asl #1
19122   ldrneh  r3, [r3, r5]
19123   strneh  r3, [r0, #4]  @ movhi
19124   mov r3, r1, lsr #16
19125   ands  r3, r3, #255
19126   ldrne r6, .L6976+36
19127   movne r3, r3, asl #1
19128   ldrneh  r3, [r3, r6]
19129   strneh  r3, [r0, #2]  @ movhi
19130   movs  r3, r1, lsr #24
19131   ldrne r7, .L6976+36
19132   movne r3, r3, asl #1
19133   ldrneh  r3, [r3, r7]
19134   strneh  r3, [r0, #0]  @ movhi
19135 .L6828:
19136   add r0, r0, #8
19137 .L6814:
19138   sub r2, r2, #64
19139 .L6809:
19140   movs  r4, r4, lsr #3
19141   beq .L6149
19142   ldr ip, .L6976+36
19143   mov lr, #0
19144   b .L6838
19145 .L6966:
19146   sub r2, r2, #64
19147   add r0, r0, #16
19148 .L6838:
19149   ldr r1, [r2, #4]
19150   cmp r1, #0
19151   beq .L6839
19152   ands  r3, r1, #255
19153   movne r3, r3, asl #1
19154   ldrneh  r3, [r3, ip]
19155   strneh  r3, [r0, #6]  @ movhi
19156   mov r3, r1, lsr #8
19157   ands  r3, r3, #255
19158   movne r3, r3, asl #1
19159   ldrneh  r3, [r3, ip]
19160   strneh  r3, [r0, #4]  @ movhi
19161   mov r3, r1, lsr #16
19162   ands  r3, r3, #255
19163   movne r3, r3, asl #1
19164   ldrneh  r3, [r3, ip]
19165   strneh  r3, [r0, #2]  @ movhi
19166   movs  r3, r1, lsr #24
19167   movne r3, r3, asl #1
19168   ldrneh  r3, [r3, ip]
19169   strneh  r3, [r0, #0]  @ movhi
19170 .L6839:
19171   ldr r1, [r2, #0]
19172   cmp r1, #0
19173   beq .L6848
19174   ands  r3, r1, #255
19175   movne r3, r3, asl #1
19176   ldrneh  r3, [r3, ip]
19177   strneh  r3, [r0, #14] @ movhi
19178   mov r3, r1, lsr #8
19179   ands  r3, r3, #255
19180   movne r3, r3, asl #1
19181   ldrneh  r3, [r3, ip]
19182   strneh  r3, [r0, #12] @ movhi
19183   mov r3, r1, lsr #16
19184   ands  r3, r3, #255
19185   movne r3, r3, asl #1
19186   ldrneh  r3, [r3, ip]
19187   strneh  r3, [r0, #10] @ movhi
19188   movs  r3, r1, lsr #24
19189   movne r3, r3, asl #1
19190   ldrneh  r3, [r3, ip]
19191   strneh  r3, [r0, #8]  @ movhi
19192 .L6848:
19193   add lr, lr, #1
19194   cmp lr, r4
19195   bne .L6966
19196   b .L6149
19197 .L6225:
19198   mov r3, lr, lsr #3
19199   mov r2, r3, asl #5
19200   ands  r3, lr, #7
19201   ldreq ip, [sp, #76]
19202   add lr, r0, r2
19203   beq .L6274
19204   rsbs  r5, r3, #8
19205   ldr r0, [r0, r2]
19206   ldreq ip, [sp, #76]
19207   beq .L6277
19208   mov r3, r3, asl #2
19209   mov r0, r0, lsr r3
19210   ldr r6, .L6976+36
19211   mov ip, #0
19212 .L6278:
19213   ands  r3, r0, #15
19214   orr r3, r1, r3
19215   mov r3, r3, asl #1
19216   ldrneh  r3, [r3, r6]
19217   ldrne r7, [sp, #76]
19218   mov r2, ip, asl #1
19219   add ip, ip, #1
19220   strneh  r3, [r2, r7]  @ movhi
19221   cmp ip, r5
19222   mov r0, r0, lsr #4
19223   bne .L6278
19224   ldr r0, [sp, #76]
19225   add ip, r0, r5, asl #1
19226 .L6277:
19227   add lr, lr, #32
19228 .L6274:
19229   movs  r5, r4, lsr #3
19230   beq .L6149
19231   ldr r0, .L6978
19232   mov r4, #0
19233   b .L6284
19234 .L6967:
19235   add lr, lr, #32
19236   add ip, ip, #16
19237 .L6284:
19238   ldr r2, [lr, #0]
19239   cmp r2, #0
19240   beq .L6285
19241   ands  r3, r2, #15
19242   orrne r3, r1, r3
19243   movne r3, r3, asl #1
19244   ldrneh  r3, [r3, r0]
19245   strneh  r3, [ip, #0]  @ movhi
19246   mov r3, r2, lsr #4
19247   ands  r3, r3, #15
19248   orrne r3, r1, r3
19249   movne r3, r3, asl #1
19250   ldrneh  r3, [r3, r0]
19251   strneh  r3, [ip, #2]  @ movhi
19252   mov r3, r2, lsr #8
19253   ands  r3, r3, #15
19254   orrne r3, r1, r3
19255   movne r3, r3, asl #1
19256   ldrneh  r3, [r3, r0]
19257   strneh  r3, [ip, #4]  @ movhi
19258   mov r3, r2, lsr #12
19259   ands  r3, r3, #15
19260   orrne r3, r1, r3
19261   movne r3, r3, asl #1
19262   ldrneh  r3, [r3, r0]
19263   strneh  r3, [ip, #6]  @ movhi
19264   mov r3, r2, lsr #16
19265   ands  r3, r3, #15
19266   orrne r3, r1, r3
19267   movne r3, r3, asl #1
19268   ldrneh  r3, [r3, r0]
19269   strneh  r3, [ip, #8]  @ movhi
19270   mov r3, r2, lsr #20
19271   ands  r3, r3, #15
19272   orrne r3, r1, r3
19273   movne r3, r3, asl #1
19274   ldrneh  r3, [r3, r0]
19275   strneh  r3, [ip, #10] @ movhi
19276   mov r3, r2, lsr #24
19277   ands  r3, r3, #15
19278   orrne r3, r1, r3
19279   movne r3, r3, asl #1
19280   ldrneh  r3, [r3, r0]
19281   strneh  r3, [ip, #12] @ movhi
19282   movs  r3, r2, lsr #28
19283   orrne r3, r1, r3
19284   movne r3, r3, asl #1
19285   ldrneh  r3, [r3, r0]
19286   strneh  r3, [ip, #14] @ movhi
19287 .L6285:
19288   add r4, r4, #1
19289   cmp r4, r5
19290   bne .L6967
19291   b .L6149
19292 .L6487:
19293   ldr r0, [sp, #100]
19294   rsb lr, ip, #8
19295   cmp r0, lr
19296   blt .L6968
19297   cmp ip, #3
19298   bls .L6520
19299   cmp lr, #0
19300   ldr r2, [r7, #4]
19301   ldreq r5, [sp, #76]
19302   beq .L6524
19303   mov r3, ip, asl #3
19304   sub r3, r3, #32
19305   mov r1, r2, lsr r3
19306   ldr ip, .L6978
19307   mov r0, #0
19308 .L6525:
19309   ands  r3, r1, #255
19310   mov r3, r3, asl #1
19311   ldrneh  r3, [r3, ip]
19312   ldrne r4, [sp, #76]
19313   mov r2, r0, asl #1
19314   add r0, r0, #1
19315   strneh  r3, [r2, r4]  @ movhi
19316   cmp lr, r0
19317   mov r1, r1, lsr #8
19318   bne .L6525
19319   ldr r6, [sp, #76]
19320   add r5, r6, lr, asl #1
19321 .L6524:
19322   ldr ip, [sp, #100]
19323   add r7, r7, #64
19324   rsb r6, lr, ip
19325   b .L6489
19326 .L6357:
19327   ldr r3, [sp, #100]
19328   rsb r6, r4, #8
19329   cmp r3, r6
19330   blt .L6969
19331   cmp r6, #0
19332   ldr r2, [r0, #0]
19333   ldreq sl, [sp, #76]
19334   beq .L6370
19335   mov r3, r4, asl #2
19336   mov lr, r2, asl r3
19337   ldr r2, .L6978
19338   mov r5, #0
19339 .L6371:
19340   movs  r3, lr, lsr #28
19341   orr r3, r1, r3
19342   mov r3, r3, asl #1
19343   ldrneh  r3, [r3, r2]
19344   ldrne r7, [sp, #76]
19345   mov r4, r5, asl #1
19346   add r5, r5, #1
19347   strneh  r3, [r4, r7]  @ movhi
19348   cmp r6, r5
19349   mov lr, lr, asl #4
19350   bne .L6371
19351   ldr ip, [sp, #76]
19352   add sl, ip, r6, asl #1
19353 .L6370:
19354   ldr lr, [sp, #100]
19355   sub r0, r0, #32
19356   rsb r2, r6, lr
19357   b .L6359
19358 .L6227:
19359   ldr r7, [sp, #100]
19360   rsb lr, r3, #8
19361   cmp r7, lr
19362   blt .L6970
19363   cmp lr, #0
19364   ldr r2, [r6, #0]
19365   ldreq r7, [sp, #76]
19366   beq .L6240
19367   mov r3, r3, asl #2
19368   mov r2, r2, lsr r3
19369   ldr r4, .L6978
19370   mov ip, #0
19371 .L6241:
19372   ands  r3, r2, #15
19373   orr r3, r1, r3
19374   mov r3, r3, asl #1
19375   ldrneh  r3, [r3, r4]
19376   ldrne r7, [sp, #76]
19377   mov r0, ip, asl #1
19378   add ip, ip, #1
19379   strneh  r3, [r0, r7]  @ movhi
19380   cmp lr, ip
19381   mov r2, r2, lsr #4
19382   bne .L6241
19383   ldr ip, [sp, #76]
19384   add r7, ip, lr, asl #1
19385 .L6240:
19386   ldr r0, [sp, #100]
19387   add r6, r6, #32
19388   rsb r8, lr, r0
19389   b .L6229
19390 .L6707:
19391   ldr r0, [sp, #100]
19392   rsb lr, ip, #8
19393   cmp r0, lr
19394   blt .L6971
19395   cmp ip, #3
19396   bls .L6740
19397   cmp lr, #0
19398   ldr r2, [r7, #0]
19399   ldreq r5, [sp, #76]
19400   beq .L6744
19401   mov r3, ip, asl #3
19402   sub r3, r3, #32
19403   mov r2, r2, asl r3
19404   ldr ip, .L6978
19405   mov r0, #0
19406 .L6745:
19407   movs  r3, r2, lsr #24
19408   mov r3, r3, asl #1
19409   ldrneh  r3, [r3, ip]
19410   ldrne r4, [sp, #76]
19411   mov r1, r0, asl #1
19412   add r0, r0, #1
19413   strneh  r3, [r1, r4]  @ movhi
19414   cmp lr, r0
19415   mov r2, r2, asl #8
19416   bne .L6745
19417   ldr r6, [sp, #76]
19418   add r5, r6, lr, asl #1
19419 .L6744:
19420   ldr ip, [sp, #100]
19421   sub r7, r7, #64
19422   rsb r6, lr, ip
19423   b .L6709
19424 .L6971:
19425   cmp r0, #0
19426   ble .L6149
19427   cmp ip, #3
19428   bls .L6713
19429   mov r3, ip, asl #3
19430   ldr r2, [r7, #0]
19431   sub r3, r3, #32
19432   mov r2, r2, asl r3
19433   ldr ip, .L6978
19434   mov r0, #0
19435 .L6716:
19436   movs  r3, r2, lsr #24
19437   mov r3, r3, asl #1
19438   ldrneh  r3, [r3, ip]
19439   ldrne r4, [sp, #76]
19440   ldr r5, [sp, #100]
19441   mov r1, r0, asl #1
19442   add r0, r0, #1
19443   strneh  r3, [r1, r4]  @ movhi
19444   cmp r5, r0
19445   mov r2, r2, asl #8
19446   bne .L6716
19447   b .L6149
19448 .L6970:
19449   cmp r7, #0
19450   ble .L6149
19451   ldr r2, [r0, r2]
19452   mov r3, r3, asl #2
19453   mov r0, r2, lsr r3
19454   ldr lr, .L6978
19455   mov ip, #0
19456 .L6234:
19457   ands  r3, r0, #15
19458   orr r3, r1, r3
19459   mov r3, r3, asl #1
19460   ldrneh  r3, [r3, lr]
19461   ldrne r4, [sp, #76]
19462   ldr r5, [sp, #100]
19463   mov r2, ip, asl #1
19464   add ip, ip, #1
19465   strneh  r3, [r2, r4]  @ movhi
19466   cmp r5, ip
19467   mov r0, r0, lsr #4
19468   bne .L6234
19469   b .L6149
19470 .L6969:
19471   cmp r3, #0
19472   ble .L6149
19473   ldr r2, [r0, #0]
19474   mov r3, r4, asl #2
19475   mov r0, r2, asl r3
19476   ldr lr, .L6978
19477   mov ip, #0
19478 .L6364:
19479   movs  r3, r0, lsr #28
19480   orr r3, r1, r3
19481   mov r3, r3, asl #1
19482   ldrneh  r3, [r3, lr]
19483   ldrne r4, [sp, #76]
19484   ldr r5, [sp, #100]
19485   mov r2, ip, asl #1
19486   add ip, ip, #1
19487   strneh  r3, [r2, r4]  @ movhi
19488   cmp r5, ip
19489   mov r0, r0, asl #4
19490   bne .L6364
19491   b .L6149
19492 .L6965:
19493   cmp lr, #0
19494   ldr r1, [r2, #0]
19495   ldreq r0, [sp, #76]
19496   beq .L6814
19497   mov r3, ip, asl #3
19498   sub r3, r3, #32
19499   mov r1, r1, asl r3
19500   ldr r5, .L6978
19501   mov ip, #0
19502 .L6815:
19503   movs  r3, r1, lsr #24
19504   mov r3, r3, asl #1
19505   ldrneh  r3, [r3, r5]
19506   ldrne r6, [sp, #76]
19507   mov r0, ip, asl #1
19508   add ip, ip, #1
19509   strneh  r3, [r0, r6]  @ movhi
19510   cmp ip, lr
19511   mov r1, r1, asl #8
19512   bne .L6815
19513   ldr r7, [sp, #76]
19514   sub r2, r2, #64
19515   add r0, r7, lr, asl #1
19516   b .L6809
19517 .L6962:
19518   cmp lr, #0
19519   ldr r1, [r0, #4]
19520   ldreq r1, [sp, #76]
19521   beq .L6594
19522   mov r3, r2, asl #3
19523   sub r3, r3, #32
19524   mov r2, r1, lsr r3
19525   ldr r5, .L6978
19526   mov ip, #0
19527 .L6595:
19528   ands  r3, r2, #255
19529   mov r3, r3, asl #1
19530   ldrneh  r3, [r3, r5]
19531   ldrne r6, [sp, #76]
19532   mov r1, ip, asl #1
19533   add ip, ip, #1
19534   strneh  r3, [r1, r6]  @ movhi
19535   cmp ip, lr
19536   mov r2, r2, lsr #8
19537   bne .L6595
19538   ldr r7, [sp, #76]
19539   add r0, r0, #64
19540   add r1, r7, lr, asl #1
19541   b .L6589
19542 .L6968:
19543   cmp r0, #0
19544   ble .L6149
19545   cmp ip, #3
19546   bls .L6493
19547   mov r3, ip, asl #3
19548   ldr r2, [r7, #4]
19549   sub r3, r3, #32
19550   mov r1, r2, lsr r3
19551   ldr ip, .L6978
19552   mov r0, #0
19553 .L6496:
19554   ands  r3, r1, #255
19555   mov r3, r3, asl #1
19556   ldrneh  r3, [r3, ip]
19557   ldrne r4, [sp, #76]
19558   ldr r5, [sp, #100]
19559   mov r2, r0, asl #1
19560   add r0, r0, #1
19561   strneh  r3, [r2, r4]  @ movhi
19562   cmp r5, r0
19563   mov r1, r1, lsr #8
19564   bne .L6496
19565   b .L6149
19566 .L6975:
19567   mov r6, #0
19568   b .L6207
19569 .L6740:
19570   subs  r4, lr, #4
19571   ldr r2, [r7, #4]
19572   ldreq r1, [sp, #76]
19573   beq .L6752
19574   mov r3, ip, asl #3
19575   sub r3, r3, #32
19576   mov r2, r2, asl r3
19577   ldr ip, .L6978
19578   mov r0, #0
19579 .L6753:
19580   movs  r3, r2, lsr #24
19581   mov r3, r3, asl #1
19582   ldrneh  r3, [r3, ip]
19583   ldrne r5, [sp, #76]
19584   mov r1, r0, asl #1
19585   add r0, r0, #1
19586   strneh  r3, [r1, r5]  @ movhi
19587   cmp r4, r0
19588   mov r2, r2, asl #8
19589   bne .L6753
19590   ldr r6, [sp, #76]
19591   add r3, r6, lr, asl #1
19592   sub r1, r3, #8
19593 .L6752:
19594   ldr r2, [r7, #0]
19595   cmp r2, #0
19596   beq .L6758
19597   ands  r3, r2, #255
19598   ldrne ip, .L6978
19599   movne r3, r3, asl #1
19600   ldrneh  r3, [r3, ip]
19601   strneh  r3, [r1, #6]  @ movhi
19602   mov r3, r2, lsr #8
19603   ands  r3, r3, #255
19604   ldrne r0, .L6978
19605   movne r3, r3, asl #1
19606   ldrneh  r3, [r3, r0]
19607   strneh  r3, [r1, #4]  @ movhi
19608   mov r3, r2, lsr #16
19609   ands  r3, r3, #255
19610   ldrne r4, .L6978
19611   movne r3, r3, asl #1
19612   ldrneh  r3, [r3, r4]
19613   strneh  r3, [r1, #2]  @ movhi
19614   movs  r3, r2, lsr #24
19615   ldrne r5, .L6978
19616   movne r3, r3, asl #1
19617   ldrneh  r3, [r3, r5]
19618   strneh  r3, [r1, #0]  @ movhi
19619 .L6758:
19620   add r5, r1, #8
19621   b .L6744
19622 .L6520:
19623   subs  r4, lr, #4
19624   ldr r2, [r7, #0]
19625   ldreq r1, [sp, #76]
19626   beq .L6532
19627   mov r3, ip, asl #3
19628   mov r1, r2, lsr r3
19629   ldr ip, .L6978
19630   mov r0, #0
19631 .L6533:
19632   ands  r3, r1, #255
19633   mov r3, r3, asl #1
19634   ldrneh  r3, [r3, ip]
19635   ldrne r5, [sp, #76]
19636   mov r2, r0, asl #1
19637   add r0, r0, #1
19638   strneh  r3, [r2, r5]  @ movhi
19639   cmp r0, r4
19640   mov r1, r1, lsr #8
19641   bne .L6533
19642   ldr r6, [sp, #76]
19643   add r3, r6, lr, asl #1
19644   sub r1, r3, #8
19645 .L6532:
19646   ldr r2, [r7, #4]
19647   cmp r2, #0
19648   beq .L6538
19649   ands  r3, r2, #255
19650   ldrne ip, .L6978
19651   movne r3, r3, asl #1
19652   ldrneh  r3, [r3, ip]
19653   strneh  r3, [r1, #0]  @ movhi
19654   mov r3, r2, lsr #8
19655   ands  r3, r3, #255
19656   ldrne r0, .L6978
19657   movne r3, r3, asl #1
19658   ldrneh  r3, [r3, r0]
19659   strneh  r3, [r1, #2]  @ movhi
19660   mov r3, r2, lsr #16
19661   ands  r3, r3, #255
19662   ldrne r4, .L6978
19663   movne r3, r3, asl #1
19664   ldrneh  r3, [r3, r4]
19665   strneh  r3, [r1, #4]  @ movhi
19666   movs  r3, r2, lsr #24
19667   ldrne r5, .L6978
19668   movne r3, r3, asl #1
19669   ldrneh  r3, [r3, r5]
19670   strneh  r3, [r1, #6]  @ movhi
19671 .L6538:
19672   add r5, r1, #8
19673   b .L6524
19674 .L6973:
19675   ldr r4, [sp, #16]
19676   b .L6938
19677 .L6972:
19678   mov ip, fp
19679   b .L6936
19680 .L6713:
19681   ldr r6, [sp, #100]
19682   mov r3, ip, asl #3
19683   ldr r1, [r7, #4]
19684   add r2, r6, ip
19685   sub r3, r3, #32
19686   cmp r2, #4
19687   mov r1, r1, asl r3
19688   bhi .L6720
19689   cmp r6, #0
19690   ldrne ip, .L6978
19691   movne r0, #0
19692   beq .L6149
19693 .L6736:
19694   movs  r3, r1, lsr #24
19695   mov r3, r3, asl #1
19696   ldrneh  r3, [r3, ip]
19697   ldrne r7, [sp, #76]
19698   ldr lr, [sp, #100]
19699   mov r2, r0, asl #1
19700   add r0, r0, #1
19701   strneh  r3, [r2, r7]  @ movhi
19702   cmp lr, r0
19703   mov r1, r1, asl #8
19704   bne .L6736
19705   b .L6149
19706 .L6493:
19707   ldr r6, [sp, #100]
19708   ldr r3, [r7, #0]
19709   add r2, r6, ip
19710   cmp r2, #4
19711   mov r1, ip, asl #3
19712   mov r2, r3, lsr r1
19713   bhi .L6500
19714   cmp r6, #0
19715   ldrne ip, .L6978
19716   movne r0, #0
19717   beq .L6149
19718 .L6516:
19719   ands  r3, r2, #255
19720   mov r3, r3, asl #1
19721   ldrneh  r3, [r3, ip]
19722   ldrne r7, [sp, #76]
19723   ldr lr, [sp, #100]
19724   mov r1, r0, asl #1
19725   add r0, r0, #1
19726   strneh  r3, [r1, r7]  @ movhi
19727   cmp lr, r0
19728   mov r2, r2, lsr #8
19729   bne .L6516
19730   b .L6149
19731 .L6720:
19732   rsbs  ip, ip, #4
19733   ldreq lr, [sp, #76]
19734   beq .L6725
19735   ldr lr, .L6978
19736   mov r0, #0
19737 .L6726:
19738   movs  r3, r1, lsr #24
19739   mov r3, r3, asl #1
19740   ldrneh  r3, [r3, lr]
19741   ldrne r4, [sp, #76]
19742   mov r2, r0, asl #1
19743   add r0, r0, #1
19744   strneh  r3, [r2, r4]  @ movhi
19745   cmp r0, ip
19746   mov r1, r1, asl #8
19747   bne .L6726
19748   ldr r5, [sp, #76]
19749   add lr, r5, ip, asl #1
19750 .L6725:
19751   ldr r6, [sp, #100]
19752   ldr r2, [r7, #0]
19753   subs  ip, r6, ip
19754   beq .L6149
19755   ldr r4, .L6978
19756   mov r0, #0
19757 .L6732:
19758   movs  r3, r2, lsr #24
19759   mov r3, r3, asl #1
19760   ldrneh  r3, [r3, r4]
19761   mov r1, r0, asl #1
19762   add r0, r0, #1
19763   strneh  r3, [r1, lr]  @ movhi
19764   cmp r0, ip
19765   mov r2, r2, asl #8
19766   bne .L6732
19767   b .L6149
19768 .L6500:
19769   rsbs  ip, ip, #4
19770   ldreq lr, [sp, #76]
19771   beq .L6505
19772   ldr lr, .L6978
19773   mov r0, #0
19774 .L6506:
19775   ands  r3, r2, #255
19776   mov r3, r3, asl #1
19777   ldrneh  r3, [r3, lr]
19778   ldrne r4, [sp, #76]
19779   mov r1, r0, asl #1
19780   add r0, r0, #1
19781   strneh  r3, [r1, r4]  @ movhi
19782   cmp r0, ip
19783   mov r2, r2, lsr #8
19784   bne .L6506
19785   ldr r5, [sp, #76]
19786   add lr, r5, ip, asl #1
19787 .L6505:
19788   ldr r6, [sp, #100]
19789   ldr r2, [r7, #4]
19790   subs  ip, r6, ip
19791   beq .L6149
19792   ldr r4, .L6978
19793   mov r0, #0
19794 .L6512:
19795   ands  r3, r2, #255
19796   mov r3, r3, asl #1
19797   ldrneh  r3, [r3, r4]
19798   mov r1, r0, asl #1
19799   add r0, r0, #1
19800   strneh  r3, [r1, lr]  @ movhi
19801   cmp r0, ip
19802   mov r2, r2, lsr #8
19803   bne .L6512
19804   b .L6149
19805 .L6979:
19806   .align  2
19807 .L6978:
19808   .word palette_ram_converted+512
19809   .size render_scanline_obj_normal_1D, .-render_scanline_obj_normal_1D
19810   .align  2
19811   .global render_scanline_obj_normal_2D
19812   .type render_scanline_obj_normal_2D, %function
19813 render_scanline_obj_normal_2D:
19814   @ args = 0, pretend = 0, frame = 92
19815   @ frame_needed = 0, uses_anonymous_args = 0
19816   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
19817   ldr ip, .L7822
19818   sub sp, sp, #92
19819   ldrh  ip, [ip, #6]
19820   add r0, r0, r0, asl #2
19821   add r0, ip, r0, asl #5
19822   str ip, [sp, #32]
19823   ldr ip, .L7822+4
19824   str r1, [sp, #12]
19825   ldr ip, [ip, r0, asl #2]
19826   str r2, [sp, #8]
19827   str ip, [sp, #36]
19828   cmp ip, #0
19829   ldr ip, .L7822+8
19830   str r3, [sp, #4]
19831   add r0, ip, r0, asl #7
19832   str r0, [sp, #40]
19833   beq .L7768
19834   add r0, r3, r1, asl #1
19835   rsb r1, r1, r2
19836   mov r2, #0
19837   str r0, [sp, #64]
19838   str r1, [sp, #88]
19839   str r2, [sp, #28]
19840   mov r4, r2
19841 .L6983:
19842   ldr r5, [sp, #40]
19843   ldr r6, .L7822+12
19844   ldrb  r3, [r4, r5]  @ zero_extendqisi2
19845   ldr r7, .L7822+16
19846   mov r3, r3, asl #3
19847   ldrh  lr, [r3, r6]
19848   add r3, r3, r6
19849   ldrh  r1, [r3, #2]
19850   mov r4, lr, lsr #12
19851   and r2, r4, #12
19852   orr r0, r2, r1, lsr #14
19853   and ip, lr, #255
19854   mov r2, r1, asl #23
19855   cmp ip, #160
19856   mov r5, r2, asr #23
19857   ldr r2, .L7822+20
19858   subgt ip, ip, #256
19859   tst lr, #256
19860   ldrh  r6, [r3, #4]
19861   ldr r8, [r7, r0, asl #2]
19862   ldr sl, [r2, r0, asl #2]
19863   beq .L6986
19864   tst lr, #8192
19865   beq .L6988
19866   mov r3, r1, lsr #4
19867   ldr r4, .L7822+12
19868   add r2, r8, r8, lsr #31
19869   and r3, r3, #992
19870   tst lr, #512
19871   add r3, r3, r4
19872   mov lr, r2, asr #1
19873   add r1, sl, sl, lsr #31
19874   ldr r2, [sp, #12]
19875   mov r4, r1, asr #1
19876   movne r0, lr, asl #1
19877   ldrh  r7, [r3, #30]
19878   strne r0, [sp, #48]
19879   moveq r9, r8
19880   streq lr, [sp, #48]
19881   moveq r0, r4
19882   movne r9, r8, asl #1
19883   movne r0, r4, asl #1
19884   cmp r5, r2
19885   str r7, [sp, #16]
19886   ldrh  r1, [r3, #14]
19887   ldrh  r7, [r3, #6]
19888   ldrh  fp, [r3, #22]
19889   bge .L6993
19890   rsb r2, r5, r2
19891   rsb r9, r2, r9
19892   cmp r9, #0
19893   ble .L6995
19894   ldr r3, [sp, #48]
19895   ldr r5, [sp, #12]
19896   rsb r3, r2, r3
19897   str r3, [sp, #48]
19898 .L6993:
19899   ldr r2, [sp, #8]
19900   add r3, r5, r9
19901   cmp r3, r2
19902   blt .L6997
19903   rsb r9, r5, r2
19904   cmp r9, #0
19905   ble .L6995
19906 .L6997:
19907   mov r3, r7, asl #16
19908   mov r2, r1, asl #16
19909   ldr r7, [sp, #16]
19910   mov r3, r3, asr #16
19911   add r0, ip, r0
19912   str r3, [sp, #44]
19913   mov ip, r2, asr #16
19914   ldr r3, [sp, #32]
19915   ldr r2, [sp, #4]
19916   mov r1, r7, asl #16
19917   mov lr, lr, asl #8
19918   cmp fp, #0
19919   str lr, [sp, #72]
19920   mov r1, r1, asr #16
19921   mov lr, r4, asl #8
19922   add r7, r2, r5, asl #1
19923   rsb r0, r0, r3
19924   bne .L6999
19925   mla r3, r0, r1, lr
19926   mov r1, r3, asr #8
19927   cmp r1, sl
19928   bcs .L6995
19929   mov r3, r6, asl #22
19930   mov r2, r1, lsr #3
19931   mov r3, r3, lsr #22
19932   add r3, r3, r2, asl #5
19933   and r1, r1, #7
19934   add r1, r1, r3, asl #2
19935   ldr r3, .L7822+24
19936   cmp r9, #0
19937   add r4, r3, r1, asl #3
19938   ble .L6995
19939   ldr r2, [sp, #48]
19940   ldr r5, [sp, #44]
19941   mul r3, r0, ip
19942   mul r2, r5, r2
19943   ldr r6, [sp, #72]
19944   rsb r3, r2, r3
19945   add r0, r6, r3
19946   mov lr, r0, asr #8
19947   cmp lr, r8
19948   movcs ip, fp
19949   bcs .L7005
19950   b .L7818
19951 .L7006:
19952   cmp lr, r8
19953   bcc .L7782
19954 .L7005:
19955   ldr lr, [sp, #44]
19956   add ip, ip, #1
19957   add r0, r0, lr
19958   cmp r9, ip
19959   mov lr, r0, asr #8
19960   add r7, r7, #2
19961   bne .L7006
19962 .L6995:
19963   ldr r0, [sp, #28]
19964   ldr r1, [sp, #36]
19965   add r0, r0, #1
19966   cmp r0, r1
19967   str r0, [sp, #28]
19968   beq .L7768
19969 .L7800:
19970   ldr r4, [sp, #28]
19971   b .L6983
19972 .L6986:
19973   ldr r2, [sp, #32]
19974   tst r1, #8192
19975   rsb r0, ip, r2
19976   rsbne r3, r0, sl
19977   subne r0, r3, #1
19978   mov r2, r1, asl #19
19979   and r3, r4, #2
19980   orr r3, r3, r2, lsr #31
19981   cmp r3, #3
19982   ldrls pc, [pc, r3, asl #2]
19983   b .L6995
19984   .p2align 2
19985 .L7067:
19986   .word .L7063
19987   .word .L7064
19988   .word .L7065
19989   .word .L7066
19990 .L7063:
19991   mov r3, r6, asl #22
19992   mov r2, r0, lsr #3
19993   mov r3, r3, lsr #22
19994   add r3, r3, r2, asl #5
19995   and r1, r0, #7
19996   add r1, r1, r3, asl #3
19997   ldr r3, [sp, #12]
19998   mov r2, r6, lsr #8
19999   cmp r5, r3
20000   ldr r3, .L7822+24
20001   add r0, r3, r1, asl #2
20002   and r1, r2, #240
20003   blt .L7795
20004   ldr r2, [sp, #8]
20005   add r3, r5, r8
20006   cmp r2, r3
20007   bhi .L7149
20008   rsb r8, r5, r2
20009   cmp r8, #0
20010   ble .L6995
20011   ldr r3, [sp, #4]
20012   movs  r7, r8, lsr #3
20013   add r2, r3, r5, asl #1
20014   beq .L7152
20015   ldr r6, .L7822+36
20016   mov r4, r2
20017   mov r5, r0
20018   mov ip, #0
20019 .L7154:
20020   ldr lr, [r5, #0]
20021   cmp lr, #0
20022   beq .L7155
20023   ands  r3, lr, #15
20024   orrne r3, r1, r3
20025   movne r3, r3, asl #1
20026   ldrneh  r3, [r3, r6]
20027   strneh  r3, [r4, #0]  @ movhi
20028   mov r3, lr, lsr #4
20029   ands  r3, r3, #15
20030   orrne r3, r1, r3
20031   movne r3, r3, asl #1
20032   ldrneh  r3, [r3, r6]
20033   strneh  r3, [r4, #2]  @ movhi
20034   mov r3, lr, lsr #8
20035   ands  r3, r3, #15
20036   orrne r3, r1, r3
20037   movne r3, r3, asl #1
20038   ldrneh  r3, [r3, r6]
20039   strneh  r3, [r4, #4]  @ movhi
20040   mov r3, lr, lsr #12
20041   ands  r3, r3, #15
20042   orrne r3, r1, r3
20043   movne r3, r3, asl #1
20044   ldrneh  r3, [r3, r6]
20045   strneh  r3, [r4, #6]  @ movhi
20046   mov r3, lr, lsr #16
20047   ands  r3, r3, #15
20048   orrne r3, r1, r3
20049   movne r3, r3, asl #1
20050   ldrneh  r3, [r3, r6]
20051   strneh  r3, [r4, #8]  @ movhi
20052   mov r3, lr, lsr #20
20053   ands  r3, r3, #15
20054   orrne r3, r1, r3
20055   movne r3, r3, asl #1
20056   ldrneh  r3, [r3, r6]
20057   strneh  r3, [r4, #10] @ movhi
20058   mov r3, lr, lsr #24
20059   ands  r3, r3, #15
20060   orrne r3, r1, r3
20061   movne r3, r3, asl #1
20062   ldrneh  r3, [r3, r6]
20063   strneh  r3, [r4, #12] @ movhi
20064   movs  r3, lr, lsr #28
20065   orrne r3, r1, r3
20066   movne r3, r3, asl #1
20067   ldrneh  r3, [r3, r6]
20068   strneh  r3, [r4, #14] @ movhi
20069 .L7155:
20070   add ip, ip, #1
20071   cmp ip, r7
20072   add r5, r5, #32
20073   add r4, r4, #16
20074   bne .L7154
20075   add r0, r0, r7, asl #5
20076   add r2, r2, r7, asl #4
20077 .L7152:
20078   ands  r4, r8, #7
20079   beq .L6995
20080   ldr r0, [r0, #0]
20081   ldr r5, .L7822+36
20082   mov lr, #0
20083 .L7174:
20084   ands  r3, r0, #15
20085   orr r3, r1, r3
20086   mov r3, r3, asl #1
20087   ldrneh  r3, [r3, r5]
20088   mov ip, lr, asl #1
20089   add lr, lr, #1
20090   strneh  r3, [ip, r2]  @ movhi
20091   cmp lr, r4
20092   mov r0, r0, lsr #4
20093   bne .L7174
20094   b .L6995
20095 .L7064:
20096   mov r3, r6, asl #22
20097   mov r1, r0, lsr #3
20098   subs  r2, r8, #8
20099   mov r3, r3, lsr #22
20100   submi r2, r8, #1
20101   add r3, r3, r1, asl #5
20102   add r3, r3, r2, asr #3
20103   and r1, r0, #7
20104   ldr ip, [sp, #12]
20105   add r1, r1, r3, asl #3
20106   ldr r3, .L7822+24
20107   mov r2, r6, lsr #8
20108   cmp r5, ip
20109   add r0, r3, r1, asl #2
20110   and r1, r2, #240
20111   blt .L7796
20112   ldr r2, [sp, #8]
20113   add r3, r5, r8
20114   cmp r2, r3
20115   bhi .L7279
20116   rsb r8, r5, r2
20117   cmp r8, #0
20118   ble .L6995
20119   ldr r3, [sp, #4]
20120   movs  r7, r8, lsr #3
20121   add r2, r3, r5, asl #1
20122   beq .L7282
20123   ldr r6, .L7822+36
20124   mov r4, r2
20125   mov r5, r0
20126   mov ip, #0
20127 .L7284:
20128   ldr lr, [r5, #0]
20129   cmp lr, #0
20130   beq .L7285
20131   ands  r3, lr, #15
20132   orrne r3, r1, r3
20133   movne r3, r3, asl #1
20134   ldrneh  r3, [r3, r6]
20135   strneh  r3, [r4, #14] @ movhi
20136   mov r3, lr, lsr #4
20137   ands  r3, r3, #15
20138   orrne r3, r1, r3
20139   movne r3, r3, asl #1
20140   ldrneh  r3, [r3, r6]
20141   strneh  r3, [r4, #12] @ movhi
20142   mov r3, lr, lsr #8
20143   ands  r3, r3, #15
20144   orrne r3, r1, r3
20145   movne r3, r3, asl #1
20146   ldrneh  r3, [r3, r6]
20147   strneh  r3, [r4, #10] @ movhi
20148   mov r3, lr, lsr #12
20149   ands  r3, r3, #15
20150   orrne r3, r1, r3
20151   movne r3, r3, asl #1
20152   ldrneh  r3, [r3, r6]
20153   strneh  r3, [r4, #8]  @ movhi
20154   mov r3, lr, lsr #16
20155   ands  r3, r3, #15
20156   orrne r3, r1, r3
20157   movne r3, r3, asl #1
20158   ldrneh  r3, [r3, r6]
20159   strneh  r3, [r4, #6]  @ movhi
20160   mov r3, lr, lsr #20
20161   ands  r3, r3, #15
20162   orrne r3, r1, r3
20163   movne r3, r3, asl #1
20164   ldrneh  r3, [r3, r6]
20165   strneh  r3, [r4, #4]  @ movhi
20166   mov r3, lr, lsr #24
20167   ands  r3, r3, #15
20168   orrne r3, r1, r3
20169   movne r3, r3, asl #1
20170   ldrneh  r3, [r3, r6]
20171   strneh  r3, [r4, #2]  @ movhi
20172   movs  r3, lr, lsr #28
20173   orrne r3, r1, r3
20174   movne r3, r3, asl #1
20175   ldrneh  r3, [r3, r6]
20176   strneh  r3, [r4, #0]  @ movhi
20177 .L7285:
20178   add ip, ip, #1
20179   cmp ip, r7
20180   sub r5, r5, #32
20181   add r4, r4, #16
20182   bne .L7284
20183   rsb r3, r7, r7, asl #27
20184   add r0, r0, r3, asl #5
20185   add r2, r2, r7, asl #4
20186 .L7282:
20187   ands  r4, r8, #7
20188   beq .L6995
20189   ldr r0, [r0, #0]
20190   ldr r5, .L7822+36
20191   mov lr, #0
20192 .L7304:
20193   movs  r3, r0, lsr #28
20194   orr r3, r1, r3
20195   mov r3, r3, asl #1
20196   ldrneh  r3, [r3, r5]
20197   mov ip, lr, asl #1
20198   add lr, lr, #1
20199   strneh  r3, [ip, r2]  @ movhi
20200   cmp lr, r4
20201   mov r0, r0, asl #4
20202   bne .L7304
20203   b .L6995
20204 .L7065:
20205   mov r2, r6, asl #22
20206   mov r1, r0, lsr #3
20207   mov r2, r2, lsr #22
20208   and r3, r0, #7
20209   add r2, r2, r1, asl #5
20210   add r3, r3, r2, asl #2
20211   ldr ip, [sp, #12]
20212   mov r0, r3, asl #3
20213   ldr r3, .L7822+24
20214   cmp r5, ip
20215   add ip, r0, r3
20216   blt .L7797
20217   ldr lr, [sp, #8]
20218   add r3, r5, r8
20219   cmp lr, r3
20220   bhi .L7484
20221   rsb r8, r5, lr
20222   cmp r8, #0
20223   ble .L6995
20224   ldr r1, [sp, #4]
20225   movs  r7, r8, lsr #3
20226   add r2, r1, r5, asl #1
20227   beq .L7487
20228   ldr r3, .L7822+32
20229   ldr r6, .L7822+36
20230   add r0, r0, r3
20231   mov r4, r2
20232   mov r5, ip
20233   mov r1, #0
20234 .L7489:
20235   ldr lr, [r5, #0]
20236   cmp lr, #0
20237   beq .L7490
20238   ands  r3, lr, #255
20239   movne r3, r3, asl #1
20240   ldrneh  r3, [r3, r6]
20241   strneh  r3, [r4, #0]  @ movhi
20242   mov r3, lr, lsr #8
20243   ands  r3, r3, #255
20244   movne r3, r3, asl #1
20245   ldrneh  r3, [r3, r6]
20246   strneh  r3, [r4, #2]  @ movhi
20247   mov r3, lr, lsr #16
20248   ands  r3, r3, #255
20249   movne r3, r3, asl #1
20250   ldrneh  r3, [r3, r6]
20251   strneh  r3, [r4, #4]  @ movhi
20252   movs  r3, lr, lsr #24
20253   movne r3, r3, asl #1
20254   ldrneh  r3, [r3, r6]
20255   strneh  r3, [r4, #6]  @ movhi
20256 .L7490:
20257   ldr lr, [r0, #-60]
20258   cmp lr, #0
20259   beq .L7499
20260   ands  r3, lr, #255
20261   movne r3, r3, asl #1
20262   ldrneh  r3, [r3, r6]
20263   strneh  r3, [r4, #8]  @ movhi
20264   mov r3, lr, lsr #8
20265   ands  r3, r3, #255
20266   movne r3, r3, asl #1
20267   ldrneh  r3, [r3, r6]
20268   strneh  r3, [r4, #10] @ movhi
20269   mov r3, lr, lsr #16
20270   ands  r3, r3, #255
20271   movne r3, r3, asl #1
20272   ldrneh  r3, [r3, r6]
20273   strneh  r3, [r4, #12] @ movhi
20274   movs  r3, lr, lsr #24
20275   movne r3, r3, asl #1
20276   ldrneh  r3, [r3, r6]
20277   strneh  r3, [r4, #14] @ movhi
20278 .L7499:
20279   add r1, r1, #1
20280   cmp r7, r1
20281   add r5, r5, #64
20282   add r4, r4, #16
20283   add r0, r0, #64
20284   bne .L7489
20285   add ip, ip, r7, asl #6
20286   add r2, r2, r7, asl #4
20287 .L7487:
20288   ands  lr, r8, #7
20289   beq .L6995
20290   cmp lr, #3
20291   ldrls r0, [ip, #0]
20292   bls .L7522
20293   ldr r1, [ip, #0]
20294   cmp r1, #0
20295   beq .L7512
20296   ands  r3, r1, #255
20297   ldrne r4, .L7822+36
20298   movne r3, r3, asl #1
20299   ldrneh  r3, [r3, r4]
20300   strneh  r3, [r2, #0]  @ movhi
20301   mov r3, r1, lsr #8
20302   ands  r3, r3, #255
20303   ldrne r5, .L7822+36
20304   movne r3, r3, asl #1
20305   ldrneh  r3, [r3, r5]
20306   strneh  r3, [r2, #2]  @ movhi
20307   mov r3, r1, lsr #16
20308   ands  r3, r3, #255
20309   ldrne r6, .L7822+36
20310   movne r3, r3, asl #1
20311   ldrneh  r3, [r3, r6]
20312   strneh  r3, [r2, #4]  @ movhi
20313   movs  r3, r1, lsr #24
20314   ldrne r7, .L7822+36
20315   movne r3, r3, asl #1
20316   ldrneh  r3, [r3, r7]
20317   strneh  r3, [r2, #6]  @ movhi
20318 .L7512:
20319   subs  lr, lr, #4
20320   ldr r0, [ip, #4]
20321   addne r2, r2, #8
20322   beq .L6995
20323 .L7522:
20324   mov r1, #0
20325 .L7523:
20326   ands  r3, r0, #255
20327   ldrne r4, .L7822+36
20328   mov r3, r3, asl #1
20329   ldrneh  r3, [r3, r4]
20330   mov ip, r1, asl #1
20331   add r1, r1, #1
20332   strneh  r3, [ip, r2]  @ movhi
20333   cmp lr, r1
20334   mov r0, r0, lsr #8
20335   bhi .L7523
20336   b .L6995
20337 .L7066:
20338   subs  r2, r8, #8
20339   submi r2, r8, #1
20340   mov r3, r0, lsr #3
20341   mov r2, r2, asr #3
20342   mov r1, r6, asl #22
20343   add r2, r2, r3, asl #4
20344   mov r1, r1, lsr #22
20345   and r3, r0, #7
20346   add r1, r1, r2, asl #1
20347   add r3, r3, r1, asl #2
20348   ldr ip, [sp, #12]
20349   mov r0, r3, asl #3
20350   ldr r3, .L7822+24
20351   cmp r5, ip
20352   add ip, r0, r3
20353   blt .L7798
20354   ldr lr, [sp, #8]
20355   add r3, r5, r8
20356   cmp r3, lr
20357   bcc .L7704
20358   rsb r8, r5, lr
20359   cmp r8, #0
20360   ble .L6995
20361   ldr r1, [sp, #4]
20362   movs  r7, r8, lsr #3
20363   add sl, r1, r5, asl #1
20364   beq .L7707
20365   ldr r3, .L7822+28
20366   ldr r6, .L7822+36
20367   add r0, r0, r3
20368   mov r4, sl
20369   mov r5, ip
20370   mov r1, #0
20371 .L7709:
20372   ldr lr, [r0, #68]
20373   cmp lr, #0
20374   beq .L7710
20375   ands  r3, lr, #255
20376   movne r3, r3, asl #1
20377   ldrneh  r3, [r3, r6]
20378   strneh  r3, [r4, #6]  @ movhi
20379   mov r3, lr, lsr #8
20380   ands  r3, r3, #255
20381   movne r3, r3, asl #1
20382   ldrneh  r3, [r3, r6]
20383   strneh  r3, [r4, #4]  @ movhi
20384   mov r3, lr, lsr #16
20385   ands  r3, r3, #255
20386   movne r3, r3, asl #1
20387   ldrneh  r3, [r3, r6]
20388   strneh  r3, [r4, #2]  @ movhi
20389   movs  r3, lr, lsr #24
20390   movne r3, r3, asl #1
20391   ldrneh  r3, [r3, r6]
20392   strneh  r3, [r4, #0]  @ movhi
20393 .L7710:
20394   ldr lr, [r5, #0]
20395   cmp lr, #0
20396   beq .L7719
20397   ands  r3, lr, #255
20398   movne r3, r3, asl #1
20399   ldrneh  r3, [r3, r6]
20400   strneh  r3, [r4, #14] @ movhi
20401   mov r3, lr, lsr #8
20402   ands  r3, r3, #255
20403   movne r3, r3, asl #1
20404   ldrneh  r3, [r3, r6]
20405   strneh  r3, [r4, #12] @ movhi
20406   mov r3, lr, lsr #16
20407   ands  r3, r3, #255
20408   movne r3, r3, asl #1
20409   ldrneh  r3, [r3, r6]
20410   strneh  r3, [r4, #10] @ movhi
20411   movs  r3, lr, lsr #24
20412   movne r3, r3, asl #1
20413   ldrneh  r3, [r3, r6]
20414   strneh  r3, [r4, #8]  @ movhi
20415 .L7719:
20416   add r1, r1, #1
20417   cmp r1, r7
20418   sub r5, r5, #64
20419   add r4, r4, #16
20420   sub r0, r0, #64
20421   bne .L7709
20422   rsb r3, r7, r7, asl #26
20423   add ip, ip, r3, asl #6
20424   add sl, sl, r7, asl #4
20425 .L7707:
20426   ands  lr, r8, #7
20427   beq .L6995
20428   cmp lr, #3
20429   ldrls r2, [ip, #4]
20430   bls .L7742
20431   ldr r2, [ip, #4]
20432   cmp r2, #0
20433   beq .L7732
20434   ands  r3, r2, #255
20435   ldrne r4, .L7822+36
20436   movne r3, r3, asl #1
20437   ldrneh  r3, [r3, r4]
20438   strneh  r3, [sl, #6]  @ movhi
20439   mov r3, r2, lsr #8
20440   ands  r3, r3, #255
20441   ldrne r5, .L7822+36
20442   movne r3, r3, asl #1
20443   ldrneh  r3, [r3, r5]
20444   strneh  r3, [sl, #4]  @ movhi
20445   mov r3, r2, lsr #16
20446   ands  r3, r3, #255
20447   ldrne r6, .L7822+36
20448   movne r3, r3, asl #1
20449   ldrneh  r3, [r3, r6]
20450   strneh  r3, [sl, #2]  @ movhi
20451   movs  r3, r2, lsr #24
20452   ldrne r7, .L7822+36
20453   movne r3, r3, asl #1
20454   ldrneh  r3, [r3, r7]
20455   strneh  r3, [sl, #0]  @ movhi
20456 .L7732:
20457   subs  lr, lr, #4
20458   ldr r2, [ip, #0]
20459   addne sl, sl, #8
20460   beq .L6995
20461 .L7742:
20462   mov r1, #0
20463 .L7743:
20464   movs  r3, r2, lsr #24
20465   ldrne ip, .L7822+36
20466   mov r3, r3, asl #1
20467   ldrneh  r3, [r3, ip]
20468   mov r0, r1, asl #1
20469   add r1, r1, #1
20470   strneh  r3, [r0, sl]  @ movhi
20471   cmp lr, r1
20472   mov r2, r2, asl #8
20473   bhi .L7743
20474   b .L6995
20475 .L6988:
20476   mov r3, r1, lsr #4
20477   ldr r4, .L7822+12
20478   and r3, r3, #992
20479   add r3, r3, r4
20480   ldrh  r7, [r3, #30]
20481   add r2, r8, r8, lsr #31
20482   tst lr, #512
20483   add r1, sl, sl, lsr #31
20484   mov lr, r2, asr #1
20485   ldr r2, [sp, #12]
20486   mov r4, r1, asr #1
20487   str r7, [sp, #24]
20488   ldrh  r1, [r3, #14]
20489   ldrh  r7, [r3, #6]
20490   ldrh  r3, [r3, #22]
20491   moveq fp, r8
20492   moveq r9, lr
20493   moveq r0, r4
20494   movne fp, r8, asl #1
20495   movne r9, lr, asl #1
20496   movne r0, r4, asl #1
20497   cmp r5, r2
20498   str r3, [sp, #20]
20499   bge .L7026
20500   rsb r2, r5, r2
20501   rsb fp, r2, fp
20502   cmp fp, #0
20503   ble .L6995
20504   ldr r5, [sp, #12]
20505   rsb r9, r2, r9
20506 .L7026:
20507   ldr r2, [sp, #8]
20508   add r3, r5, fp
20509   cmp r3, r2
20510   blt .L7029
20511   rsb fp, r5, r2
20512   cmp fp, #0
20513   ble .L6995
20514 .L7029:
20515   add ip, ip, r0
20516   mov r3, r7, asl #16
20517   mov r2, r1, asl #16
20518   ldr r0, [sp, #20]
20519   ldr r7, [sp, #24]
20520   mov r3, r3, asr #16
20521   mov r2, r2, asr #16
20522   cmp r0, #0
20523   str r3, [sp, #52]
20524   mov r0, r6, lsr #8
20525   str r2, [sp, #56]
20526   ldr r3, [sp, #32]
20527   ldr r2, [sp, #4]
20528   mov r1, r7, asl #16
20529   mov lr, lr, asl #8
20530   and r0, r0, #240
20531   str lr, [sp, #68]
20532   mov r1, r1, asr #16
20533   mov lr, r4, asl #8
20534   add r7, r2, r5, asl #1
20535   rsb ip, ip, r3
20536   str r0, [sp, #84]
20537   bne .L7031
20538   mla r3, ip, r1, lr
20539   mov r1, r3, asr #8
20540   cmp r1, sl
20541   bcs .L6995
20542   mov r3, r6, asl #22
20543   mov r2, r1, lsr #3
20544   mov r3, r3, lsr #22
20545   add r3, r3, r2, asl #5
20546   and r1, r1, #7
20547   add r1, r1, r3, asl #3
20548   ldr r3, .L7822+24
20549   cmp fp, #0
20550   add r1, r3, r1, asl #2
20551   ble .L6995
20552   ldr r3, [sp, #56]
20553   ldr r2, [sp, #52]
20554   mul r3, ip, r3
20555   mul r2, r9, r2
20556   ldr r4, [sp, #68]
20557   rsb r3, r2, r3
20558   add r0, r4, r3
20559   mov lr, r0, asr #8
20560   cmp lr, r8
20561   ldrcs r4, [sp, #20]
20562   bcs .L7037
20563   b .L7819
20564 .L7038:
20565   cmp lr, r8
20566   bcc .L7784
20567 .L7037:
20568   ldr r5, [sp, #52]
20569   add r4, r4, #1
20570   add r0, r0, r5
20571   cmp fp, r4
20572   mov lr, r0, asr #8
20573   add r7, r7, #2
20574   bne .L7038
20575   ldr r0, [sp, #28]
20576   ldr r1, [sp, #36]
20577   add r0, r0, #1
20578   cmp r0, r1
20579   str r0, [sp, #28]
20580   bne .L7800
20581 .L7768:
20582   add sp, sp, #92
20583   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
20584 .L6999:
20585   mov r3, r6, asl #22
20586   ldr r2, .L7822+24
20587   mov r3, r3, lsr #22
20588   add r3, r2, r3, asl #5
20589   cmp r9, #0
20590   str r3, [sp, #80]
20591   ble .L6995
20592   mov r3, fp, asl #16
20593   mul r2, r0, r1
20594   mov fp, r3, asr #16
20595   ldr r4, [sp, #44]
20596   mul r3, r0, ip
20597   ldr r1, [sp, #48]
20598   ldr r0, [sp, #48]
20599   mul r1, fp, r1
20600   mul r0, r4, r0
20601   ldr r6, [sp, #72]
20602   rsb r3, r0, r3
20603   rsb r2, r1, r2
20604   add r5, r6, r3
20605   add r4, lr, r2
20606   mov ip, r5, asr #8
20607   mov lr, r4, asr #8
20608   cmp ip, r8
20609   cmpcc lr, sl
20610   movcs r3, #0
20611   movcc r3, #1
20612   movcs r6, r3
20613   bcs .L7015
20614   b .L7820
20615 .L7016:
20616   cmp ip, r8
20617   cmpcc lr, sl
20618   bcc .L7017
20619 .L7015:
20620   ldr ip, [sp, #44]
20621   add r6, r6, #1
20622   add r5, r5, ip
20623   add r4, r4, fp
20624   cmp r9, r6
20625   mov ip, r5, asr #8
20626   mov lr, r4, asr #8
20627   add r7, r7, #2
20628   bne .L7016
20629   b .L6995
20630 .L7031:
20631   mov r3, r6, asl #22
20632   ldr r2, .L7822+24
20633   mov r3, r3, lsr #22
20634   add r3, r2, r3, asl #5
20635   cmp fp, #0
20636   str r3, [sp, #76]
20637   ble .L6995
20638   ldr r4, [sp, #20]
20639   mul r2, ip, r1
20640   mov r3, r4, asl #16
20641   mov r3, r3, asr #16
20642   str r3, [sp, #60]
20643   ldr r1, [sp, #60]
20644   ldr r3, [sp, #56]
20645   ldr r0, [sp, #52]
20646   mul r3, ip, r3
20647   mul r1, r9, r1
20648   mul r0, r9, r0
20649   ldr r6, [sp, #68]
20650   rsb r3, r0, r3
20651   rsb r2, r1, r2
20652   add r5, r6, r3
20653   add r4, lr, r2
20654   mov ip, r5, asr #8
20655   mov lr, r4, asr #8
20656   cmp ip, r8
20657   cmpcc lr, sl
20658   movcs r3, #0
20659   movcc r3, #1
20660   movcs r6, r3
20661   bcs .L7050
20662   b .L7821
20663 .L7051:
20664   cmp ip, r8
20665   cmpcc lr, sl
20666   bcc .L7053
20667 .L7050:
20668   ldr ip, [sp, #52]
20669   ldr lr, [sp, #60]
20670   add r6, r6, #1
20671   add r5, r5, ip
20672   add r4, r4, lr
20673   cmp fp, r6
20674   mov ip, r5, asr #8
20675   mov lr, r4, asr #8
20676   add r7, r7, #2
20677   bne .L7051
20678   b .L6995
20679 .L7803:
20680   mov r3, ip, asr #1
20681   ldr r1, [sp, #76]
20682   and r3, r3, #3
20683   str r3, [sp, #0]
20684   and r0, lr, #7
20685   ldr r3, [sp, #76]
20686   add r0, r1, r0, asl #2
20687   and r1, lr, #7
20688   mov r2, ip, asr #1
20689   add r1, r3, r1, asl #2
20690   mov r3, lr, asr #3
20691   and r9, r2, #3
20692   mov r3, r3, asl #10
20693   mov r2, ip, asr #3
20694   tst ip, #1
20695   add r3, r3, r2, asl #5
20696   add r2, r0, r3
20697   movne ip, r9
20698   add r0, r1, r3
20699   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
20700   ldrneb  r3, [r2, ip]  @ zero_extendqisi2
20701   andeq r0, r3, #15
20702   movne r0, r3, lsr #4
20703   ldr r2, [sp, #84]
20704   cmp r0, #0
20705   orr r3, r0, r2
20706   ldrne r0, .L7822+36
20707   mov r3, r3, asl #1
20708   ldr lr, [sp, #52]
20709   ldrneh  r3, [r3, r0]
20710   ldr r1, [sp, #60]
20711   add r6, r6, #1
20712   add r5, r5, lr
20713   strneh  r3, [r7, #0]  @ movhi
20714   add r4, r4, r1
20715   cmp fp, r6
20716   mov ip, r5, asr #8
20717   mov lr, r4, asr #8
20718   add r7, r7, #2
20719   ble .L6995
20720 .L7053:
20721   cmp lr, sl
20722   cmpcc ip, r8
20723   bcc .L7803
20724   b .L6995
20725 .L7040:
20726   cmp lr, r8
20727   bcs .L6995
20728 .L7784:
20729   mov r3, lr, asr #1
20730   and r6, r3, #3
20731   mov r3, lr, asr #3
20732   mov r3, r3, asl #5
20733   mov r2, lr, asr #1
20734   tst lr, #1
20735   add ip, r3, r1
20736   and r5, r2, #3
20737   add r2, r3, r1
20738   ldreqb  r3, [r2, r5]  @ zero_extendqisi2
20739   ldrneb  r3, [ip, r6]  @ zero_extendqisi2
20740   andeq r2, r3, #15
20741   movne r2, r3, lsr #4
20742   ldr ip, [sp, #84]
20743   cmp r2, #0
20744   orr r3, r2, ip
20745   ldrne r2, .L7822+36
20746   mov r3, r3, asl #1
20747   ldrneh  r3, [r3, r2]
20748   ldr r6, [sp, #52]
20749   add r4, r4, #1
20750   strneh  r3, [r7, #0]  @ movhi
20751   add r0, r0, r6
20752   cmp fp, r4
20753   mov lr, r0, asr #8
20754   add r7, r7, #2
20755   bgt .L7040
20756   b .L6995
20757 .L7008:
20758   cmp lr, r8
20759   bcs .L6995
20760 .L7782:
20761   ldr r1, [sp, #44]
20762   mov r3, lr, asr #3
20763   add r3, r4, r3, asl #6
20764   add r0, r0, r1
20765   and r1, lr, #7
20766   ldrb  r2, [r3, r1]  @ zero_extendqisi2
20767   add ip, ip, #1
20768   cmp r2, #0
20769   ldrne r3, .L7822+36
20770   mov r2, r2, asl #1
20771   ldrneh  r2, [r2, r3]
20772   mov lr, r0, asr #8
20773   strneh  r2, [r7, #0]  @ movhi
20774   cmp r9, ip
20775   add r7, r7, #2
20776   bgt .L7008
20777   b .L6995
20778 .L7823:
20779   .align  2
20780 .L7822:
20781   .word io_registers
20782   .word obj_priority_count
20783   .word obj_priority_list
20784   .word oam_ram
20785   .word obj_width_table
20786   .word obj_height_table
20787   .word vram+65536
20788   .word vram+65472
20789   .word vram+65600
20790   .word palette_ram_converted+512
20791 .L7798:
20792   ldr lr, [sp, #12]
20793   rsb r1, r5, lr
20794   rsb r4, r1, r8
20795   cmp r4, #0
20796   ble .L6995
20797   ldr r0, [sp, #8]
20798   add r3, r5, r8
20799   cmp r0, r3
20800   bhi .L7551
20801   mov r3, r1, lsr #3
20802   ands  r0, r1, #7
20803   sub r7, ip, r3, asl #6
20804   bne .L7553
20805   ldr r6, [sp, #88]
20806   ldr r5, [sp, #64]
20807 .L7555:
20808   movs  r4, r6, lsr #3
20809   beq .L7613
20810   ldr lr, .L7822+36
20811   mov r1, r5
20812   mov r0, r7
20813   mov ip, #0
20814 .L7615:
20815   ldr r2, [r0, #4]
20816   cmp r2, #0
20817   beq .L7616
20818   ands  r3, r2, #255
20819   movne r3, r3, asl #1
20820   ldrneh  r3, [r3, lr]
20821   strneh  r3, [r1, #6]  @ movhi
20822   mov r3, r2, lsr #8
20823   ands  r3, r3, #255
20824   movne r3, r3, asl #1
20825   ldrneh  r3, [r3, lr]
20826   strneh  r3, [r1, #4]  @ movhi
20827   mov r3, r2, lsr #16
20828   ands  r3, r3, #255
20829   movne r3, r3, asl #1
20830   ldrneh  r3, [r3, lr]
20831   strneh  r3, [r1, #2]  @ movhi
20832   movs  r3, r2, lsr #24
20833   movne r3, r3, asl #1
20834   ldrneh  r3, [r3, lr]
20835   strneh  r3, [r1, #0]  @ movhi
20836 .L7616:
20837   ldr r2, [r0, #0]
20838   cmp r2, #0
20839   beq .L7625
20840   ands  r3, r2, #255
20841   movne r3, r3, asl #1
20842   ldrneh  r3, [r3, lr]
20843   strneh  r3, [r1, #14] @ movhi
20844   mov r3, r2, lsr #8
20845   ands  r3, r3, #255
20846   movne r3, r3, asl #1
20847   ldrneh  r3, [r3, lr]
20848   strneh  r3, [r1, #12] @ movhi
20849   mov r3, r2, lsr #16
20850   ands  r3, r3, #255
20851   movne r3, r3, asl #1
20852   ldrneh  r3, [r3, lr]
20853   strneh  r3, [r1, #10] @ movhi
20854   movs  r3, r2, lsr #24
20855   movne r3, r3, asl #1
20856   ldrneh  r3, [r3, lr]
20857   strneh  r3, [r1, #8]  @ movhi
20858 .L7625:
20859   add ip, ip, #1
20860   cmp ip, r4
20861   sub r0, r0, #64
20862   add r1, r1, #16
20863   bne .L7615
20864   rsb r3, r4, r4, asl #26
20865   add r7, r7, r3, asl #6
20866   add r5, r5, r4, asl #4
20867 .L7613:
20868   ands  ip, r6, #7
20869   beq .L6995
20870   cmp ip, #3
20871   ldrls r2, [r7, #4]
20872   bls .L7648
20873   ldr r2, [r7, #4]
20874   cmp r2, #0
20875   beq .L7638
20876   ands  r3, r2, #255
20877   ldrne r0, .L7822+36
20878   movne r3, r3, asl #1
20879   ldrneh  r3, [r3, r0]
20880   strneh  r3, [r5, #6]  @ movhi
20881   mov r3, r2, lsr #8
20882   ands  r3, r3, #255
20883   ldrne r1, .L7822+36
20884   movne r3, r3, asl #1
20885   ldrneh  r3, [r3, r1]
20886   strneh  r3, [r5, #4]  @ movhi
20887   mov r3, r2, lsr #16
20888   ands  r3, r3, #255
20889   ldrne r4, .L7822+36
20890   movne r3, r3, asl #1
20891   ldrneh  r3, [r3, r4]
20892   strneh  r3, [r5, #2]  @ movhi
20893   movs  r3, r2, lsr #24
20894   ldrne r6, .L7822+36
20895   movne r3, r3, asl #1
20896   ldrneh  r3, [r3, r6]
20897   strneh  r3, [r5, #0]  @ movhi
20898 .L7638:
20899   subs  ip, ip, #4
20900   ldr r2, [r7, #0]
20901   addne r5, r5, #8
20902   beq .L6995
20903 .L7648:
20904   mov r1, #0
20905 .L7649:
20906   movs  r3, r2, lsr #24
20907   ldrne r7, .L7822+36
20908   mov r3, r3, asl #1
20909   ldrneh  r3, [r3, r7]
20910   mov r0, r1, asl #1
20911   add r1, r1, #1
20912   strneh  r3, [r0, r5]  @ movhi
20913   cmp ip, r1
20914   mov r2, r2, asl #8
20915   bhi .L7649
20916   b .L6995
20917 .L7797:
20918   ldr lr, [sp, #12]
20919   rsb r1, r5, lr
20920   rsb r4, r1, r8
20921   cmp r4, #0
20922   ble .L6995
20923   ldr r0, [sp, #8]
20924   add r3, r5, r8
20925   cmp r0, r3
20926   bhi .L7331
20927   mov r3, r1, lsr #3
20928   ands  r0, r1, #7
20929   add r7, ip, r3, asl #6
20930   bne .L7333
20931   ldr r6, [sp, #88]
20932   ldr r5, [sp, #64]
20933 .L7335:
20934   movs  r4, r6, lsr #3
20935   beq .L7393
20936   ldr lr, .L7822+36
20937   mov r1, r5
20938   mov r0, r7
20939   mov ip, #0
20940 .L7395:
20941   ldr r2, [r0, #0]
20942   cmp r2, #0
20943   beq .L7396
20944   ands  r3, r2, #255
20945   movne r3, r3, asl #1
20946   ldrneh  r3, [r3, lr]
20947   strneh  r3, [r1, #0]  @ movhi
20948   mov r3, r2, lsr #8
20949   ands  r3, r3, #255
20950   movne r3, r3, asl #1
20951   ldrneh  r3, [r3, lr]
20952   strneh  r3, [r1, #2]  @ movhi
20953   mov r3, r2, lsr #16
20954   ands  r3, r3, #255
20955   movne r3, r3, asl #1
20956   ldrneh  r3, [r3, lr]
20957   strneh  r3, [r1, #4]  @ movhi
20958   movs  r3, r2, lsr #24
20959   movne r3, r3, asl #1
20960   ldrneh  r3, [r3, lr]
20961   strneh  r3, [r1, #6]  @ movhi
20962 .L7396:
20963   ldr r2, [r0, #4]
20964   cmp r2, #0
20965   beq .L7405
20966   ands  r3, r2, #255
20967   movne r3, r3, asl #1
20968   ldrneh  r3, [r3, lr]
20969   strneh  r3, [r1, #8]  @ movhi
20970   mov r3, r2, lsr #8
20971   ands  r3, r3, #255
20972   movne r3, r3, asl #1
20973   ldrneh  r3, [r3, lr]
20974   strneh  r3, [r1, #10] @ movhi
20975   mov r3, r2, lsr #16
20976   ands  r3, r3, #255
20977   movne r3, r3, asl #1
20978   ldrneh  r3, [r3, lr]
20979   strneh  r3, [r1, #12] @ movhi
20980   movs  r3, r2, lsr #24
20981   movne r3, r3, asl #1
20982   ldrneh  r3, [r3, lr]
20983   strneh  r3, [r1, #14] @ movhi
20984 .L7405:
20985   add ip, ip, #1
20986   cmp r4, ip
20987   add r0, r0, #64
20988   add r1, r1, #16
20989   bne .L7395
20990   add r7, r7, r4, asl #6
20991   add r5, r5, r4, asl #4
20992 .L7393:
20993   ands  ip, r6, #7
20994   beq .L6995
20995   cmp ip, #3
20996   ldrls r1, [r7, #0]
20997   bls .L7428
20998   ldr r2, [r7, #0]
20999   cmp r2, #0
21000   beq .L7418
21001   ands  r3, r2, #255
21002   ldrne r0, .L7822+36
21003   movne r3, r3, asl #1
21004   ldrneh  r3, [r3, r0]
21005   strneh  r3, [r5, #0]  @ movhi
21006   mov r3, r2, lsr #8
21007   ands  r3, r3, #255
21008   ldrne r1, .L7822+36
21009   movne r3, r3, asl #1
21010   ldrneh  r3, [r3, r1]
21011   strneh  r3, [r5, #2]  @ movhi
21012   mov r3, r2, lsr #16
21013   ands  r3, r3, #255
21014   ldrne r4, .L7822+36
21015   movne r3, r3, asl #1
21016   ldrneh  r3, [r3, r4]
21017   strneh  r3, [r5, #4]  @ movhi
21018   movs  r3, r2, lsr #24
21019   ldrne r6, .L7822+36
21020   movne r3, r3, asl #1
21021   ldrneh  r3, [r3, r6]
21022   strneh  r3, [r5, #6]  @ movhi
21023 .L7418:
21024   subs  ip, ip, #4
21025   ldr r1, [r7, #4]
21026   addne r5, r5, #8
21027   beq .L6995
21028 .L7428:
21029   mov r2, #0
21030 .L7429:
21031   ands  r3, r1, #255
21032   ldrne r7, .L7822+36
21033   mov r3, r3, asl #1
21034   ldrneh  r3, [r3, r7]
21035   mov r0, r2, asl #1
21036   add r2, r2, #1
21037   strneh  r3, [r0, r5]  @ movhi
21038   cmp ip, r2
21039   mov r1, r1, lsr #8
21040   bhi .L7429
21041   b .L6995
21042 .L7796:
21043   rsb lr, r5, ip
21044   rsb ip, lr, r8
21045   cmp ip, #0
21046   ble .L6995
21047   ldr r2, [sp, #8]
21048   add r3, r5, r8
21049   cmp r2, r3
21050   bhi .L7201
21051   mov r3, lr, lsr #3
21052   ands  r4, lr, #7
21053   sub r0, r0, r3, asl #5
21054   bne .L7203
21055   ldr r2, [sp, #88]
21056   ldr sl, [sp, #64]
21057 .L7205:
21058   movs  r8, r2, lsr #3
21059   beq .L7222
21060   ldr r7, .L7822+36
21061   mov r4, sl
21062   mov r5, r0
21063   mov r6, #0
21064 .L7224:
21065   ldr lr, [r5, #0]
21066   cmp lr, #0
21067   beq .L7225
21068   ands  r3, lr, #15
21069   orrne r3, r1, r3
21070   movne r3, r3, asl #1
21071   ldrneh  r3, [r3, r7]
21072   strneh  r3, [r4, #14] @ movhi
21073   mov r3, lr, lsr #4
21074   ands  r3, r3, #15
21075   orrne r3, r1, r3
21076   movne r3, r3, asl #1
21077   ldrneh  r3, [r3, r7]
21078   strneh  r3, [r4, #12] @ movhi
21079   mov r3, lr, lsr #8
21080   ands  r3, r3, #15
21081   orrne r3, r1, r3
21082   movne r3, r3, asl #1
21083   ldrneh  r3, [r3, r7]
21084   strneh  r3, [r4, #10] @ movhi
21085   mov r3, lr, lsr #12
21086   ands  r3, r3, #15
21087   orrne r3, r1, r3
21088   movne r3, r3, asl #1
21089   ldrneh  r3, [r3, r7]
21090   strneh  r3, [r4, #8]  @ movhi
21091   mov r3, lr, lsr #16
21092   ands  r3, r3, #15
21093   orrne r3, r1, r3
21094   movne r3, r3, asl #1
21095   ldrneh  r3, [r3, r7]
21096   strneh  r3, [r4, #6]  @ movhi
21097   mov r3, lr, lsr #20
21098   ands  r3, r3, #15
21099   orrne r3, r1, r3
21100   movne r3, r3, asl #1
21101   ldrneh  r3, [r3, r7]
21102   strneh  r3, [r4, #4]  @ movhi
21103   mov r3, lr, lsr #24
21104   ands  r3, r3, #15
21105   orrne r3, r1, r3
21106   movne r3, r3, asl #1
21107   ldrneh  r3, [r3, r7]
21108   strneh  r3, [r4, #2]  @ movhi
21109   movs  r3, lr, lsr #28
21110   orrne r3, r1, r3
21111   movne r3, r3, asl #1
21112   ldrneh  r3, [r3, r7]
21113   strneh  r3, [r4, #0]  @ movhi
21114 .L7225:
21115   add r6, r6, #1
21116   cmp r6, r8
21117   sub r5, r5, #32
21118   add r4, r4, #16
21119   bne .L7224
21120   rsb r3, r8, r8, asl #27
21121   add r0, r0, r3, asl #5
21122   add sl, sl, r8, asl #4
21123 .L7222:
21124   ands  lr, r2, #7
21125   beq .L6995
21126   ldr r0, [r0, #0]
21127   ldr r4, .L7822+36
21128   mov ip, #0
21129 .L7244:
21130   movs  r3, r0, lsr #28
21131   orr r3, r1, r3
21132   mov r3, r3, asl #1
21133   ldrneh  r3, [r3, r4]
21134   mov r2, ip, asl #1
21135   add ip, ip, #1
21136   strneh  r3, [r2, sl]  @ movhi
21137   cmp ip, lr
21138   mov r0, r0, asl #4
21139   bne .L7244
21140   b .L6995
21141 .L7795:
21142   ldr r4, [sp, #12]
21143   rsb lr, r5, r4
21144   rsb r4, lr, r8
21145   cmp r4, #0
21146   ble .L6995
21147   add r3, r5, r8
21148   ldr r5, [sp, #8]
21149   cmp r5, r3
21150   bhi .L7071
21151   mov r3, lr, lsr #3
21152   mov r2, r3, asl #5
21153   ands  r3, lr, #7
21154   add r6, r0, r2
21155   bne .L7073
21156   ldr r8, [sp, #88]
21157   ldr r7, [sp, #64]
21158 .L7075:
21159   movs  r5, r8, lsr #3
21160   beq .L7092
21161   ldr r4, .L7822+36
21162   mov ip, r7
21163   mov r0, r6
21164   mov lr, #0
21165 .L7094:
21166   ldr r2, [r0, #0]
21167   cmp r2, #0
21168   beq .L7095
21169   ands  r3, r2, #15
21170   orrne r3, r1, r3
21171   movne r3, r3, asl #1
21172   ldrneh  r3, [r3, r4]
21173   strneh  r3, [ip, #0]  @ movhi
21174   mov r3, r2, lsr #4
21175   ands  r3, r3, #15
21176   orrne r3, r1, r3
21177   movne r3, r3, asl #1
21178   ldrneh  r3, [r3, r4]
21179   strneh  r3, [ip, #2]  @ movhi
21180   mov r3, r2, lsr #8
21181   ands  r3, r3, #15
21182   orrne r3, r1, r3
21183   movne r3, r3, asl #1
21184   ldrneh  r3, [r3, r4]
21185   strneh  r3, [ip, #4]  @ movhi
21186   mov r3, r2, lsr #12
21187   ands  r3, r3, #15
21188   orrne r3, r1, r3
21189   movne r3, r3, asl #1
21190   ldrneh  r3, [r3, r4]
21191   strneh  r3, [ip, #6]  @ movhi
21192   mov r3, r2, lsr #16
21193   ands  r3, r3, #15
21194   orrne r3, r1, r3
21195   movne r3, r3, asl #1
21196   ldrneh  r3, [r3, r4]
21197   strneh  r3, [ip, #8]  @ movhi
21198   mov r3, r2, lsr #20
21199   ands  r3, r3, #15
21200   orrne r3, r1, r3
21201   movne r3, r3, asl #1
21202   ldrneh  r3, [r3, r4]
21203   strneh  r3, [ip, #10] @ movhi
21204   mov r3, r2, lsr #24
21205   ands  r3, r3, #15
21206   orrne r3, r1, r3
21207   movne r3, r3, asl #1
21208   ldrneh  r3, [r3, r4]
21209   strneh  r3, [ip, #12] @ movhi
21210   movs  r3, r2, lsr #28
21211   orrne r3, r1, r3
21212   movne r3, r3, asl #1
21213   ldrneh  r3, [r3, r4]
21214   strneh  r3, [ip, #14] @ movhi
21215 .L7095:
21216   add lr, lr, #1
21217   cmp r5, lr
21218   add r0, r0, #32
21219   add ip, ip, #16
21220   bne .L7094
21221   add r6, r6, r5, asl #5
21222   add r7, r7, r5, asl #4
21223 .L7092:
21224   ands  lr, r8, #7
21225   beq .L6995
21226   ldr r2, [r6, #0]
21227   ldr r4, .L7822+36
21228   mov r0, #0
21229 .L7114:
21230   ands  r3, r2, #15
21231   orr r3, r1, r3
21232   mov r3, r3, asl #1
21233   ldrneh  r3, [r3, r4]
21234   mov ip, r0, asl #1
21235   add r0, r0, #1
21236   strneh  r3, [ip, r7]  @ movhi
21237   cmp r0, lr
21238   mov r2, r2, lsr #4
21239   bne .L7114
21240   b .L6995
21241 .L7820:
21242   mov r6, #0
21243 .L7017:
21244   cmp lr, sl
21245   movcc r3, #0
21246   movcs r3, #1
21247   cmp r8, ip
21248   orrls r3, r3, #1
21249   cmp r3, #0
21250   beq .L7783
21251   b .L6995
21252 .L7018:
21253   cmp lr, sl
21254   cmpcc ip, r8
21255   bcs .L6995
21256 .L7783:
21257   and r3, lr, #7
21258   mov r2, ip, asr #3
21259   mov r3, r3, asl #3
21260   mov r1, lr, asr #3
21261   add r3, r3, r2, asl #6
21262   ldr r0, [sp, #44]
21263   add r3, r3, r1, asl #10
21264   ldr r1, [sp, #80]
21265   add r5, r5, r0
21266   add r3, r3, r1
21267   and r0, ip, #7
21268   ldrb  r2, [r3, r0]  @ zero_extendqisi2
21269   add r6, r6, #1
21270   cmp r2, #0
21271   ldrne r3, .L7822+36
21272   mov r2, r2, asl #1
21273   ldrneh  r2, [r2, r3]
21274   add r4, r4, fp
21275   strneh  r2, [r7, #0]  @ movhi
21276   cmp r9, r6
21277   mov lr, r4, asr #8
21278   mov ip, r5, asr #8
21279   add r7, r7, #2
21280   bgt .L7018
21281   b .L6995
21282 .L7279:
21283   cmp r8, #0
21284   add r3, r8, #7
21285   movge r3, r8
21286   movs  r6, r3, asr #3
21287   beq .L6995
21288   ldr r7, [sp, #4]
21289   ldr r4, .L7822+36
21290   add r2, r7, r5, asl #1
21291   mov ip, #0
21292   b .L7309
21293 .L7804:
21294   sub r0, r0, #32
21295   add r2, r2, #16
21296 .L7309:
21297   ldr lr, [r0, #0]
21298   cmp lr, #0
21299   beq .L7310
21300   ands  r3, lr, #15
21301   orrne r3, r1, r3
21302   movne r3, r3, asl #1
21303   ldrneh  r3, [r3, r4]
21304   strneh  r3, [r2, #14] @ movhi
21305   mov r3, lr, lsr #4
21306   ands  r3, r3, #15
21307   orrne r3, r1, r3
21308   movne r3, r3, asl #1
21309   ldrneh  r3, [r3, r4]
21310   strneh  r3, [r2, #12] @ movhi
21311   mov r3, lr, lsr #8
21312   ands  r3, r3, #15
21313   orrne r3, r1, r3
21314   movne r3, r3, asl #1
21315   ldrneh  r3, [r3, r4]
21316   strneh  r3, [r2, #10] @ movhi
21317   mov r3, lr, lsr #12
21318   ands  r3, r3, #15
21319   orrne r3, r1, r3
21320   movne r3, r3, asl #1
21321   ldrneh  r3, [r3, r4]
21322   strneh  r3, [r2, #8]  @ movhi
21323   mov r3, lr, lsr #16
21324   ands  r3, r3, #15
21325   orrne r3, r1, r3
21326   movne r3, r3, asl #1
21327   ldrneh  r3, [r3, r4]
21328   strneh  r3, [r2, #6]  @ movhi
21329   mov r3, lr, lsr #20
21330   ands  r3, r3, #15
21331   orrne r3, r1, r3
21332   movne r3, r3, asl #1
21333   ldrneh  r3, [r3, r4]
21334   strneh  r3, [r2, #4]  @ movhi
21335   mov r3, lr, lsr #24
21336   ands  r3, r3, #15
21337   orrne r3, r1, r3
21338   movne r3, r3, asl #1
21339   ldrneh  r3, [r3, r4]
21340   strneh  r3, [r2, #2]  @ movhi
21341   movs  r3, lr, lsr #28
21342   orrne r3, r1, r3
21343   movne r3, r3, asl #1
21344   ldrneh  r3, [r3, r4]
21345   strneh  r3, [r2, #0]  @ movhi
21346 .L7310:
21347   add ip, ip, #1
21348   cmp r6, ip
21349   bne .L7804
21350   b .L6995
21351 .L7704:
21352   cmp r8, #0
21353   add r3, r8, #7
21354   movge r3, r8
21355   movs  r6, r3, asr #3
21356   beq .L6995
21357   ldr r3, .L7822+28
21358   ldr lr, [sp, #4]
21359   ldr r4, .L7822+36
21360   add r0, r0, r3
21361   add r2, lr, r5, asl #1
21362   mov r1, #0
21363   b .L7748
21364 .L7805:
21365   sub ip, ip, #64
21366   add r2, r2, #16
21367 .L7748:
21368   ldr lr, [r0, #68]
21369   cmp lr, #0
21370   beq .L7749
21371   ands  r3, lr, #255
21372   movne r3, r3, asl #1
21373   ldrneh  r3, [r3, r4]
21374   strneh  r3, [r2, #6]  @ movhi
21375   mov r3, lr, lsr #8
21376   ands  r3, r3, #255
21377   movne r3, r3, asl #1
21378   ldrneh  r3, [r3, r4]
21379   strneh  r3, [r2, #4]  @ movhi
21380   mov r3, lr, lsr #16
21381   ands  r3, r3, #255
21382   movne r3, r3, asl #1
21383   ldrneh  r3, [r3, r4]
21384   strneh  r3, [r2, #2]  @ movhi
21385   movs  r3, lr, lsr #24
21386   movne r3, r3, asl #1
21387   ldrneh  r3, [r3, r4]
21388   strneh  r3, [r2, #0]  @ movhi
21389 .L7749:
21390   ldr lr, [ip, #0]
21391   cmp lr, #0
21392   beq .L7758
21393   ands  r3, lr, #255
21394   movne r3, r3, asl #1
21395   ldrneh  r3, [r3, r4]
21396   strneh  r3, [r2, #14] @ movhi
21397   mov r3, lr, lsr #8
21398   ands  r3, r3, #255
21399   movne r3, r3, asl #1
21400   ldrneh  r3, [r3, r4]
21401   strneh  r3, [r2, #12] @ movhi
21402   mov r3, lr, lsr #16
21403   ands  r3, r3, #255
21404   movne r3, r3, asl #1
21405   ldrneh  r3, [r3, r4]
21406   strneh  r3, [r2, #10] @ movhi
21407   movs  r3, lr, lsr #24
21408   movne r3, r3, asl #1
21409   ldrneh  r3, [r3, r4]
21410   strneh  r3, [r2, #8]  @ movhi
21411 .L7758:
21412   add r1, r1, #1
21413   cmp r6, r1
21414   sub r0, r0, #64
21415   bne .L7805
21416   b .L6995
21417 .L7149:
21418   cmp r8, #0
21419   add r3, r8, #7
21420   movge r3, r8
21421   movs  r6, r3, asr #3
21422   beq .L6995
21423   ldr r7, [sp, #4]
21424   ldr r4, .L7822+36
21425   add r2, r7, r5, asl #1
21426   mov ip, #0
21427   b .L7179
21428 .L7806:
21429   add r0, r0, #32
21430   add r2, r2, #16
21431 .L7179:
21432   ldr lr, [r0, #0]
21433   cmp lr, #0
21434   beq .L7180
21435   ands  r3, lr, #15
21436   orrne r3, r1, r3
21437   movne r3, r3, asl #1
21438   ldrneh  r3, [r3, r4]
21439   strneh  r3, [r2, #0]  @ movhi
21440   mov r3, lr, lsr #4
21441   ands  r3, r3, #15
21442   orrne r3, r1, r3
21443   movne r3, r3, asl #1
21444   ldrneh  r3, [r3, r4]
21445   strneh  r3, [r2, #2]  @ movhi
21446   mov r3, lr, lsr #8
21447   ands  r3, r3, #15
21448   orrne r3, r1, r3
21449   movne r3, r3, asl #1
21450   ldrneh  r3, [r3, r4]
21451   strneh  r3, [r2, #4]  @ movhi
21452   mov r3, lr, lsr #12
21453   ands  r3, r3, #15
21454   orrne r3, r1, r3
21455   movne r3, r3, asl #1
21456   ldrneh  r3, [r3, r4]
21457   strneh  r3, [r2, #6]  @ movhi
21458   mov r3, lr, lsr #16
21459   ands  r3, r3, #15
21460   orrne r3, r1, r3
21461   movne r3, r3, asl #1
21462   ldrneh  r3, [r3, r4]
21463   strneh  r3, [r2, #8]  @ movhi
21464   mov r3, lr, lsr #20
21465   ands  r3, r3, #15
21466   orrne r3, r1, r3
21467   movne r3, r3, asl #1
21468   ldrneh  r3, [r3, r4]
21469   strneh  r3, [r2, #10] @ movhi
21470   mov r3, lr, lsr #24
21471   ands  r3, r3, #15
21472   orrne r3, r1, r3
21473   movne r3, r3, asl #1
21474   ldrneh  r3, [r3, r4]
21475   strneh  r3, [r2, #12] @ movhi
21476   movs  r3, lr, lsr #28
21477   orrne r3, r1, r3
21478   movne r3, r3, asl #1
21479   ldrneh  r3, [r3, r4]
21480   strneh  r3, [r2, #14] @ movhi
21481 .L7180:
21482   add ip, ip, #1
21483   cmp r6, ip
21484   bne .L7806
21485   b .L6995
21486 .L7484:
21487   cmp r8, #0
21488   add r3, r8, #7
21489   movge r3, r8
21490   movs  r6, r3, asr #3
21491   beq .L6995
21492   ldr r3, .L7822+32
21493   ldr r7, [sp, #4]
21494   ldr r4, .L7822+36
21495   add r0, r0, r3
21496   add r2, r7, r5, asl #1
21497   mov r1, #0
21498   b .L7528
21499 .L7807:
21500   add ip, ip, #64
21501   add r2, r2, #16
21502 .L7528:
21503   ldr lr, [ip, #0]
21504   cmp lr, #0
21505   beq .L7529
21506   ands  r3, lr, #255
21507   movne r3, r3, asl #1
21508   ldrneh  r3, [r3, r4]
21509   strneh  r3, [r2, #0]  @ movhi
21510   mov r3, lr, lsr #8
21511   ands  r3, r3, #255
21512   movne r3, r3, asl #1
21513   ldrneh  r3, [r3, r4]
21514   strneh  r3, [r2, #2]  @ movhi
21515   mov r3, lr, lsr #16
21516   ands  r3, r3, #255
21517   movne r3, r3, asl #1
21518   ldrneh  r3, [r3, r4]
21519   strneh  r3, [r2, #4]  @ movhi
21520   movs  r3, lr, lsr #24
21521   movne r3, r3, asl #1
21522   ldrneh  r3, [r3, r4]
21523   strneh  r3, [r2, #6]  @ movhi
21524 .L7529:
21525   ldr lr, [r0, #-60]
21526   cmp lr, #0
21527   beq .L7538
21528   ands  r3, lr, #255
21529   movne r3, r3, asl #1
21530   ldrneh  r3, [r3, r4]
21531   strneh  r3, [r2, #8]  @ movhi
21532   mov r3, lr, lsr #8
21533   ands  r3, r3, #255
21534   movne r3, r3, asl #1
21535   ldrneh  r3, [r3, r4]
21536   strneh  r3, [r2, #10] @ movhi
21537   mov r3, lr, lsr #16
21538   ands  r3, r3, #255
21539   movne r3, r3, asl #1
21540   ldrneh  r3, [r3, r4]
21541   strneh  r3, [r2, #12] @ movhi
21542   movs  r3, lr, lsr #24
21543   movne r3, r3, asl #1
21544   ldrneh  r3, [r3, r4]
21545   strneh  r3, [r2, #14] @ movhi
21546 .L7538:
21547   add r1, r1, #1
21548   cmp r6, r1
21549   add r0, r0, #64
21550   bne .L7807
21551   b .L6995
21552 .L7331:
21553   mov r3, r1, lsr #3
21554   ands  r2, r1, #7
21555   add r0, ip, r3, asl #6
21556   ldreq r1, [sp, #64]
21557   beq .L7435
21558   cmp r2, #3
21559   rsb lr, r2, #8
21560   bhi .L7808
21561   subs  r5, lr, #4
21562   ldr r1, [r0, #0]
21563   ldreq r1, [sp, #64]
21564   beq .L7448
21565   mov r3, r2, asl #3
21566   mov r2, r1, lsr r3
21567   ldr r6, .L7822+36
21568   mov ip, #0
21569 .L7449:
21570   ands  r3, r2, #255
21571   mov r3, r3, asl #1
21572   ldrneh  r3, [r3, r6]
21573   ldrne r7, [sp, #64]
21574   mov r1, ip, asl #1
21575   add ip, ip, #1
21576   strneh  r3, [r1, r7]  @ movhi
21577   cmp ip, r5
21578   mov r2, r2, lsr #8
21579   bne .L7449
21580   ldr ip, [sp, #64]
21581   add r3, ip, lr, asl #1
21582   sub r1, r3, #8
21583 .L7448:
21584   ldr r2, [r0, #4]
21585   cmp r2, #0
21586   beq .L7454
21587   ands  r3, r2, #255
21588   ldrne lr, .L7822+36
21589   movne r3, r3, asl #1
21590   ldrneh  r3, [r3, lr]
21591   strneh  r3, [r1, #0]  @ movhi
21592   mov r3, r2, lsr #8
21593   ands  r3, r3, #255
21594   ldrne r5, .L7822+36
21595   movne r3, r3, asl #1
21596   ldrneh  r3, [r3, r5]
21597   strneh  r3, [r1, #2]  @ movhi
21598   mov r3, r2, lsr #16
21599   ands  r3, r3, #255
21600   ldrne r6, .L7822+36
21601   movne r3, r3, asl #1
21602   ldrneh  r3, [r3, r6]
21603   strneh  r3, [r1, #4]  @ movhi
21604   movs  r3, r2, lsr #24
21605   ldrne r7, .L7822+36
21606   movne r3, r3, asl #1
21607   ldrneh  r3, [r3, r7]
21608   strneh  r3, [r1, #6]  @ movhi
21609 .L7454:
21610   add r1, r1, #8
21611 .L7440:
21612   add r0, r0, #64
21613 .L7435:
21614   movs  r4, r4, lsr #3
21615   beq .L6995
21616   ldr ip, .L7822+36
21617   mov lr, #0
21618   b .L7464
21619 .L7809:
21620   add r0, r0, #64
21621   add r1, r1, #16
21622 .L7464:
21623   ldr r2, [r0, #0]
21624   cmp r2, #0
21625   beq .L7465
21626   ands  r3, r2, #255
21627   movne r3, r3, asl #1
21628   ldrneh  r3, [r3, ip]
21629   strneh  r3, [r1, #0]  @ movhi
21630   mov r3, r2, lsr #8
21631   ands  r3, r3, #255
21632   movne r3, r3, asl #1
21633   ldrneh  r3, [r3, ip]
21634   strneh  r3, [r1, #2]  @ movhi
21635   mov r3, r2, lsr #16
21636   ands  r3, r3, #255
21637   movne r3, r3, asl #1
21638   ldrneh  r3, [r3, ip]
21639   strneh  r3, [r1, #4]  @ movhi
21640   movs  r3, r2, lsr #24
21641   movne r3, r3, asl #1
21642   ldrneh  r3, [r3, ip]
21643   strneh  r3, [r1, #6]  @ movhi
21644 .L7465:
21645   ldr r2, [r0, #4]
21646   cmp r2, #0
21647   beq .L7474
21648   ands  r3, r2, #255
21649   movne r3, r3, asl #1
21650   ldrneh  r3, [r3, ip]
21651   strneh  r3, [r1, #8]  @ movhi
21652   mov r3, r2, lsr #8
21653   ands  r3, r3, #255
21654   movne r3, r3, asl #1
21655   ldrneh  r3, [r3, ip]
21656   strneh  r3, [r1, #10] @ movhi
21657   mov r3, r2, lsr #16
21658   ands  r3, r3, #255
21659   movne r3, r3, asl #1
21660   ldrneh  r3, [r3, ip]
21661   strneh  r3, [r1, #12] @ movhi
21662   movs  r3, r2, lsr #24
21663   movne r3, r3, asl #1
21664   ldrneh  r3, [r3, ip]
21665   strneh  r3, [r1, #14] @ movhi
21666 .L7474:
21667   add lr, lr, #1
21668   cmp r4, lr
21669   bne .L7809
21670   b .L6995
21671 .L7201:
21672   ands  r2, lr, #7
21673   mov r3, lr, lsr #3
21674   sub r0, r0, r3, asl #5
21675   ldreq r4, [sp, #64]
21676   beq .L7250
21677   rsbs  r6, r2, #8
21678   ldr lr, [r0, #0]
21679   ldreq r4, [sp, #64]
21680   beq .L7253
21681   mov r3, r2, asl #2
21682   mov lr, lr, asl r3
21683   ldr r2, .L7822+36
21684   mov r5, #0
21685 .L7254:
21686   movs  r3, lr, lsr #28
21687   orr r3, r1, r3
21688   mov r3, r3, asl #1
21689   ldrneh  r3, [r3, r2]
21690   ldrne r7, [sp, #64]
21691   mov r4, r5, asl #1
21692   add r5, r5, #1
21693   strneh  r3, [r4, r7]  @ movhi
21694   cmp r6, r5
21695   mov lr, lr, asl #4
21696   bne .L7254
21697   ldr lr, [sp, #64]
21698   add r4, lr, r6, asl #1
21699 .L7253:
21700   sub r0, r0, #32
21701 .L7250:
21702   movs  r5, ip, lsr #3
21703   beq .L6995
21704   ldr r2, .L7822+36
21705   mov ip, #0
21706   b .L7260
21707 .L7810:
21708   sub r0, r0, #32
21709   add r4, r4, #16
21710 .L7260:
21711   ldr lr, [r0, #0]
21712   cmp lr, #0
21713   beq .L7261
21714   ands  r3, lr, #15
21715   orrne r3, r1, r3
21716   movne r3, r3, asl #1
21717   ldrneh  r3, [r3, r2]
21718   strneh  r3, [r4, #14] @ movhi
21719   mov r3, lr, lsr #4
21720   ands  r3, r3, #15
21721   orrne r3, r1, r3
21722   movne r3, r3, asl #1
21723   ldrneh  r3, [r3, r2]
21724   strneh  r3, [r4, #12] @ movhi
21725   mov r3, lr, lsr #8
21726   ands  r3, r3, #15
21727   orrne r3, r1, r3
21728   movne r3, r3, asl #1
21729   ldrneh  r3, [r3, r2]
21730   strneh  r3, [r4, #10] @ movhi
21731   mov r3, lr, lsr #12
21732   ands  r3, r3, #15
21733   orrne r3, r1, r3
21734   movne r3, r3, asl #1
21735   ldrneh  r3, [r3, r2]
21736   strneh  r3, [r4, #8]  @ movhi
21737   mov r3, lr, lsr #16
21738   ands  r3, r3, #15
21739   orrne r3, r1, r3
21740   movne r3, r3, asl #1
21741   ldrneh  r3, [r3, r2]
21742   strneh  r3, [r4, #6]  @ movhi
21743   mov r3, lr, lsr #20
21744   ands  r3, r3, #15
21745   orrne r3, r1, r3
21746   movne r3, r3, asl #1
21747   ldrneh  r3, [r3, r2]
21748   strneh  r3, [r4, #4]  @ movhi
21749   mov r3, lr, lsr #24
21750   ands  r3, r3, #15
21751   orrne r3, r1, r3
21752   movne r3, r3, asl #1
21753   ldrneh  r3, [r3, r2]
21754   strneh  r3, [r4, #2]  @ movhi
21755   movs  r3, lr, lsr #28
21756   orrne r3, r1, r3
21757   movne r3, r3, asl #1
21758   ldrneh  r3, [r3, r2]
21759   strneh  r3, [r4, #0]  @ movhi
21760 .L7261:
21761   add ip, ip, #1
21762   cmp ip, r5
21763   bne .L7810
21764   b .L6995
21765 .L7551:
21766   ands  r0, r1, #7
21767   mov r3, r1, lsr #3
21768   sub r2, ip, r3, asl #6
21769   ldreq r0, [sp, #64]
21770   beq .L7655
21771   cmp r0, #3
21772   rsb lr, r0, #8
21773   bhi .L7811
21774   subs  r5, lr, #4
21775   ldr r1, [r2, #4]
21776   ldreq r0, [sp, #64]
21777   beq .L7668
21778   mov r3, r0, asl #3
21779   sub r3, r3, #32
21780   mov r1, r1, asl r3
21781   ldr r6, .L7822+36
21782   mov ip, #0
21783 .L7669:
21784   movs  r3, r1, lsr #24
21785   mov r3, r3, asl #1
21786   ldrneh  r3, [r3, r6]
21787   ldrne r7, [sp, #64]
21788   mov r0, ip, asl #1
21789   add ip, ip, #1
21790   strneh  r3, [r0, r7]  @ movhi
21791   cmp r5, ip
21792   mov r1, r1, asl #8
21793   bne .L7669
21794   ldr ip, [sp, #64]
21795   add r3, ip, lr, asl #1
21796   sub r0, r3, #8
21797 .L7668:
21798   ldr r1, [r2, #0]
21799   cmp r1, #0
21800   beq .L7674
21801   ands  r3, r1, #255
21802   ldrne lr, .L7822+36
21803   movne r3, r3, asl #1
21804   ldrneh  r3, [r3, lr]
21805   strneh  r3, [r0, #6]  @ movhi
21806   mov r3, r1, lsr #8
21807   ands  r3, r3, #255
21808   ldrne r5, .L7822+36
21809   movne r3, r3, asl #1
21810   ldrneh  r3, [r3, r5]
21811   strneh  r3, [r0, #4]  @ movhi
21812   mov r3, r1, lsr #16
21813   ands  r3, r3, #255
21814   ldrne r6, .L7822+36
21815   movne r3, r3, asl #1
21816   ldrneh  r3, [r3, r6]
21817   strneh  r3, [r0, #2]  @ movhi
21818   movs  r3, r1, lsr #24
21819   ldrne r7, .L7822+36
21820   movne r3, r3, asl #1
21821   ldrneh  r3, [r3, r7]
21822   strneh  r3, [r0, #0]  @ movhi
21823 .L7674:
21824   add r0, r0, #8
21825 .L7660:
21826   sub r2, r2, #64
21827 .L7655:
21828   movs  r4, r4, lsr #3
21829   beq .L6995
21830   ldr ip, .L7822+36
21831   mov lr, #0
21832   b .L7684
21833 .L7812:
21834   sub r2, r2, #64
21835   add r0, r0, #16
21836 .L7684:
21837   ldr r1, [r2, #4]
21838   cmp r1, #0
21839   beq .L7685
21840   ands  r3, r1, #255
21841   movne r3, r3, asl #1
21842   ldrneh  r3, [r3, ip]
21843   strneh  r3, [r0, #6]  @ movhi
21844   mov r3, r1, lsr #8
21845   ands  r3, r3, #255
21846   movne r3, r3, asl #1
21847   ldrneh  r3, [r3, ip]
21848   strneh  r3, [r0, #4]  @ movhi
21849   mov r3, r1, lsr #16
21850   ands  r3, r3, #255
21851   movne r3, r3, asl #1
21852   ldrneh  r3, [r3, ip]
21853   strneh  r3, [r0, #2]  @ movhi
21854   movs  r3, r1, lsr #24
21855   movne r3, r3, asl #1
21856   ldrneh  r3, [r3, ip]
21857   strneh  r3, [r0, #0]  @ movhi
21858 .L7685:
21859   ldr r1, [r2, #0]
21860   cmp r1, #0
21861   beq .L7694
21862   ands  r3, r1, #255
21863   movne r3, r3, asl #1
21864   ldrneh  r3, [r3, ip]
21865   strneh  r3, [r0, #14] @ movhi
21866   mov r3, r1, lsr #8
21867   ands  r3, r3, #255
21868   movne r3, r3, asl #1
21869   ldrneh  r3, [r3, ip]
21870   strneh  r3, [r0, #12] @ movhi
21871   mov r3, r1, lsr #16
21872   ands  r3, r3, #255
21873   movne r3, r3, asl #1
21874   ldrneh  r3, [r3, ip]
21875   strneh  r3, [r0, #10] @ movhi
21876   movs  r3, r1, lsr #24
21877   movne r3, r3, asl #1
21878   ldrneh  r3, [r3, ip]
21879   strneh  r3, [r0, #8]  @ movhi
21880 .L7694:
21881   add lr, lr, #1
21882   cmp lr, r4
21883   bne .L7812
21884   b .L6995
21885 .L7071:
21886   mov r3, lr, lsr #3
21887   mov r2, r3, asl #5
21888   ands  r3, lr, #7
21889   ldreq ip, [sp, #64]
21890   add lr, r0, r2
21891   beq .L7120
21892   rsbs  r5, r3, #8
21893   ldr r0, [r0, r2]
21894   ldreq ip, [sp, #64]
21895   beq .L7123
21896   mov r3, r3, asl #2
21897   mov r0, r0, lsr r3
21898   ldr r6, .L7824
21899   mov ip, #0
21900 .L7124:
21901   ands  r3, r0, #15
21902   orr r3, r1, r3
21903   mov r3, r3, asl #1
21904   ldrneh  r3, [r3, r6]
21905   ldrne r7, [sp, #64]
21906   mov r2, ip, asl #1
21907   add ip, ip, #1
21908   strneh  r3, [r2, r7]  @ movhi
21909   cmp ip, r5
21910   mov r0, r0, lsr #4
21911   bne .L7124
21912   ldr r0, [sp, #64]
21913   add ip, r0, r5, asl #1
21914 .L7123:
21915   add lr, lr, #32
21916 .L7120:
21917   movs  r5, r4, lsr #3
21918   beq .L6995
21919   ldr r0, .L7824
21920   mov r4, #0
21921   b .L7130
21922 .L7813:
21923   add lr, lr, #32
21924   add ip, ip, #16
21925 .L7130:
21926   ldr r2, [lr, #0]
21927   cmp r2, #0
21928   beq .L7131
21929   ands  r3, r2, #15
21930   orrne r3, r1, r3
21931   movne r3, r3, asl #1
21932   ldrneh  r3, [r3, r0]
21933   strneh  r3, [ip, #0]  @ movhi
21934   mov r3, r2, lsr #4
21935   ands  r3, r3, #15
21936   orrne r3, r1, r3
21937   movne r3, r3, asl #1
21938   ldrneh  r3, [r3, r0]
21939   strneh  r3, [ip, #2]  @ movhi
21940   mov r3, r2, lsr #8
21941   ands  r3, r3, #15
21942   orrne r3, r1, r3
21943   movne r3, r3, asl #1
21944   ldrneh  r3, [r3, r0]
21945   strneh  r3, [ip, #4]  @ movhi
21946   mov r3, r2, lsr #12
21947   ands  r3, r3, #15
21948   orrne r3, r1, r3
21949   movne r3, r3, asl #1
21950   ldrneh  r3, [r3, r0]
21951   strneh  r3, [ip, #6]  @ movhi
21952   mov r3, r2, lsr #16
21953   ands  r3, r3, #15
21954   orrne r3, r1, r3
21955   movne r3, r3, asl #1
21956   ldrneh  r3, [r3, r0]
21957   strneh  r3, [ip, #8]  @ movhi
21958   mov r3, r2, lsr #20
21959   ands  r3, r3, #15
21960   orrne r3, r1, r3
21961   movne r3, r3, asl #1
21962   ldrneh  r3, [r3, r0]
21963   strneh  r3, [ip, #10] @ movhi
21964   mov r3, r2, lsr #24
21965   ands  r3, r3, #15
21966   orrne r3, r1, r3
21967   movne r3, r3, asl #1
21968   ldrneh  r3, [r3, r0]
21969   strneh  r3, [ip, #12] @ movhi
21970   movs  r3, r2, lsr #28
21971   orrne r3, r1, r3
21972   movne r3, r3, asl #1
21973   ldrneh  r3, [r3, r0]
21974   strneh  r3, [ip, #14] @ movhi
21975 .L7131:
21976   add r4, r4, #1
21977   cmp r4, r5
21978   bne .L7813
21979   b .L6995
21980 .L7333:
21981   ldr r1, [sp, #88]
21982   rsb ip, r0, #8
21983   cmp r1, ip
21984   blt .L7814
21985   cmp r0, #3
21986   bls .L7366
21987   cmp ip, #0
21988   ldr r2, [r7, #4]
21989   ldreq r5, [sp, #64]
21990   beq .L7370
21991   mov r3, r0, asl #3
21992   sub r3, r3, #32
21993   mov r1, r2, lsr r3
21994   ldr lr, .L7824
21995   mov r0, #0
21996 .L7371:
21997   ands  r3, r1, #255
21998   mov r3, r3, asl #1
21999   ldrneh  r3, [r3, lr]
22000   ldrne r4, [sp, #64]
22001   mov r2, r0, asl #1
22002   add r0, r0, #1
22003   strneh  r3, [r2, r4]  @ movhi
22004   cmp ip, r0
22005   mov r1, r1, lsr #8
22006   bne .L7371
22007   ldr r6, [sp, #64]
22008   add r5, r6, ip, asl #1
22009 .L7370:
22010   ldr lr, [sp, #88]
22011   add r7, r7, #64
22012   rsb r6, ip, lr
22013   b .L7335
22014 .L7203:
22015   ldr r3, [sp, #88]
22016   rsb r6, r4, #8
22017   cmp r3, r6
22018   blt .L7815
22019   cmp r6, #0
22020   ldr r2, [r0, #0]
22021   ldreq sl, [sp, #64]
22022   beq .L7216
22023   mov r3, r4, asl #2
22024   mov lr, r2, asl r3
22025   ldr r2, .L7824
22026   mov r5, #0
22027 .L7217:
22028   movs  r3, lr, lsr #28
22029   orr r3, r1, r3
22030   mov r3, r3, asl #1
22031   ldrneh  r3, [r3, r2]
22032   ldrne r7, [sp, #64]
22033   mov r4, r5, asl #1
22034   add r5, r5, #1
22035   strneh  r3, [r4, r7]  @ movhi
22036   cmp r6, r5
22037   mov lr, lr, asl #4
22038   bne .L7217
22039   ldr ip, [sp, #64]
22040   add sl, ip, r6, asl #1
22041 .L7216:
22042   ldr lr, [sp, #88]
22043   sub r0, r0, #32
22044   rsb r2, r6, lr
22045   b .L7205
22046 .L7073:
22047   ldr r7, [sp, #88]
22048   rsb lr, r3, #8
22049   cmp r7, lr
22050   blt .L7816
22051   cmp lr, #0
22052   ldr r2, [r6, #0]
22053   ldreq r7, [sp, #64]
22054   beq .L7086
22055   mov r3, r3, asl #2
22056   mov r2, r2, lsr r3
22057   ldr r4, .L7824
22058   mov ip, #0
22059 .L7087:
22060   ands  r3, r2, #15
22061   orr r3, r1, r3
22062   mov r3, r3, asl #1
22063   ldrneh  r3, [r3, r4]
22064   ldrne r7, [sp, #64]
22065   mov r0, ip, asl #1
22066   add ip, ip, #1
22067   strneh  r3, [r0, r7]  @ movhi
22068   cmp lr, ip
22069   mov r2, r2, lsr #4
22070   bne .L7087
22071   ldr ip, [sp, #64]
22072   add r7, ip, lr, asl #1
22073 .L7086:
22074   ldr r0, [sp, #88]
22075   add r6, r6, #32
22076   rsb r8, lr, r0
22077   b .L7075
22078 .L7553:
22079   ldr r1, [sp, #88]
22080   rsb ip, r0, #8
22081   cmp r1, ip
22082   blt .L7817
22083   cmp r0, #3
22084   bls .L7586
22085   cmp ip, #0
22086   ldr r2, [r7, #0]
22087   ldreq r5, [sp, #64]
22088   beq .L7590
22089   mov r3, r0, asl #3
22090   sub r3, r3, #32
22091   mov r2, r2, asl r3
22092   ldr lr, .L7824
22093   mov r0, #0
22094 .L7591:
22095   movs  r3, r2, lsr #24
22096   mov r3, r3, asl #1
22097   ldrneh  r3, [r3, lr]
22098   ldrne r4, [sp, #64]
22099   mov r1, r0, asl #1
22100   add r0, r0, #1
22101   strneh  r3, [r1, r4]  @ movhi
22102   cmp ip, r0
22103   mov r2, r2, asl #8
22104   bne .L7591
22105   ldr r6, [sp, #64]
22106   add r5, r6, ip, asl #1
22107 .L7590:
22108   ldr lr, [sp, #88]
22109   sub r7, r7, #64
22110   rsb r6, ip, lr
22111   b .L7555
22112 .L7817:
22113   cmp r1, #0
22114   ble .L6995
22115   cmp r0, #3
22116   bls .L7559
22117   mov r3, r0, asl #3
22118   ldr r2, [r7, #0]
22119   sub r3, r3, #32
22120   mov r2, r2, asl r3
22121   ldr ip, .L7824
22122   mov r0, #0
22123 .L7562:
22124   movs  r3, r2, lsr #24
22125   mov r3, r3, asl #1
22126   ldrneh  r3, [r3, ip]
22127   ldrne r4, [sp, #64]
22128   ldr r5, [sp, #88]
22129   mov r1, r0, asl #1
22130   add r0, r0, #1
22131   strneh  r3, [r1, r4]  @ movhi
22132   cmp r5, r0
22133   mov r2, r2, asl #8
22134   bne .L7562
22135   b .L6995
22136 .L7816:
22137   cmp r7, #0
22138   ble .L6995
22139   ldr r2, [r0, r2]
22140   mov r3, r3, asl #2
22141   mov r0, r2, lsr r3
22142   ldr lr, .L7824
22143   mov ip, #0
22144 .L7080:
22145   ands  r3, r0, #15
22146   orr r3, r1, r3
22147   mov r3, r3, asl #1
22148   ldrneh  r3, [r3, lr]
22149   ldrne r4, [sp, #64]
22150   ldr r5, [sp, #88]
22151   mov r2, ip, asl #1
22152   add ip, ip, #1
22153   strneh  r3, [r2, r4]  @ movhi
22154   cmp r5, ip
22155   mov r0, r0, lsr #4
22156   bne .L7080
22157   b .L6995
22158 .L7815:
22159   cmp r3, #0
22160   ble .L6995
22161   ldr r2, [r0, #0]
22162   mov r3, r4, asl #2
22163   mov r0, r2, asl r3
22164   ldr lr, .L7824
22165   mov ip, #0
22166 .L7210:
22167   movs  r3, r0, lsr #28
22168   orr r3, r1, r3
22169   mov r3, r3, asl #1
22170   ldrneh  r3, [r3, lr]
22171   ldrne r4, [sp, #64]
22172   ldr r5, [sp, #88]
22173   mov r2, ip, asl #1
22174   add ip, ip, #1
22175   strneh  r3, [r2, r4]  @ movhi
22176   cmp r5, ip
22177   mov r0, r0, asl #4
22178   bne .L7210
22179   b .L6995
22180 .L7811:
22181   cmp lr, #0
22182   ldr r1, [r2, #0]
22183   ldreq r0, [sp, #64]
22184   beq .L7660
22185   mov r3, r0, asl #3
22186   sub r3, r3, #32
22187   mov r1, r1, asl r3
22188   ldr r5, .L7824
22189   mov ip, #0
22190 .L7661:
22191   movs  r3, r1, lsr #24
22192   mov r3, r3, asl #1
22193   ldrneh  r3, [r3, r5]
22194   ldrne r6, [sp, #64]
22195   mov r0, ip, asl #1
22196   add ip, ip, #1
22197   strneh  r3, [r0, r6]  @ movhi
22198   cmp ip, lr
22199   mov r1, r1, asl #8
22200   bne .L7661
22201   ldr r7, [sp, #64]
22202   sub r2, r2, #64
22203   add r0, r7, lr, asl #1
22204   b .L7655
22205 .L7808:
22206   cmp lr, #0
22207   ldr r1, [r0, #4]
22208   ldreq r1, [sp, #64]
22209   beq .L7440
22210   mov r3, r2, asl #3
22211   sub r3, r3, #32
22212   mov r2, r1, lsr r3
22213   ldr r5, .L7824
22214   mov ip, #0
22215 .L7441:
22216   ands  r3, r2, #255
22217   mov r3, r3, asl #1
22218   ldrneh  r3, [r3, r5]
22219   ldrne r6, [sp, #64]
22220   mov r1, ip, asl #1
22221   add ip, ip, #1
22222   strneh  r3, [r1, r6]  @ movhi
22223   cmp ip, lr
22224   mov r2, r2, lsr #8
22225   bne .L7441
22226   ldr r7, [sp, #64]
22227   add r0, r0, #64
22228   add r1, r7, lr, asl #1
22229   b .L7435
22230 .L7814:
22231   cmp r1, #0
22232   ble .L6995
22233   cmp r0, #3
22234   bls .L7339
22235   mov r3, r0, asl #3
22236   ldr r2, [r7, #4]
22237   sub r3, r3, #32
22238   mov r1, r2, lsr r3
22239   ldr ip, .L7824
22240   mov r0, #0
22241 .L7342:
22242   ands  r3, r1, #255
22243   mov r3, r3, asl #1
22244   ldrneh  r3, [r3, ip]
22245   ldrne r4, [sp, #64]
22246   ldr r5, [sp, #88]
22247   mov r2, r0, asl #1
22248   add r0, r0, #1
22249   strneh  r3, [r2, r4]  @ movhi
22250   cmp r5, r0
22251   mov r1, r1, lsr #8
22252   bne .L7342
22253   b .L6995
22254 .L7821:
22255   mov r6, #0
22256   b .L7053
22257 .L7586:
22258   subs  lr, ip, #4
22259   ldr r2, [r7, #4]
22260   ldreq r1, [sp, #64]
22261   beq .L7598
22262   mov r3, r0, asl #3
22263   sub r3, r3, #32
22264   mov r2, r2, asl r3
22265   ldr r4, .L7824
22266   mov r0, #0
22267 .L7599:
22268   movs  r3, r2, lsr #24
22269   mov r3, r3, asl #1
22270   ldrneh  r3, [r3, r4]
22271   ldrne r5, [sp, #64]
22272   mov r1, r0, asl #1
22273   add r0, r0, #1
22274   strneh  r3, [r1, r5]  @ movhi
22275   cmp lr, r0
22276   mov r2, r2, asl #8
22277   bne .L7599
22278   ldr r6, [sp, #64]
22279   add r3, r6, ip, asl #1
22280   sub r1, r3, #8
22281 .L7598:
22282   ldr r2, [r7, #0]
22283   cmp r2, #0
22284   beq .L7604
22285   ands  r3, r2, #255
22286   ldrne lr, .L7824
22287   movne r3, r3, asl #1
22288   ldrneh  r3, [r3, lr]
22289   strneh  r3, [r1, #6]  @ movhi
22290   mov r3, r2, lsr #8
22291   ands  r3, r3, #255
22292   ldrne r0, .L7824
22293   movne r3, r3, asl #1
22294   ldrneh  r3, [r3, r0]
22295   strneh  r3, [r1, #4]  @ movhi
22296   mov r3, r2, lsr #16
22297   ands  r3, r3, #255
22298   ldrne r4, .L7824
22299   movne r3, r3, asl #1
22300   ldrneh  r3, [r3, r4]
22301   strneh  r3, [r1, #2]  @ movhi
22302   movs  r3, r2, lsr #24
22303   ldrne r5, .L7824
22304   movne r3, r3, asl #1
22305   ldrneh  r3, [r3, r5]
22306   strneh  r3, [r1, #0]  @ movhi
22307 .L7604:
22308   add r5, r1, #8
22309   b .L7590
22310 .L7366:
22311   subs  lr, ip, #4
22312   ldr r2, [r7, #0]
22313   ldreq r1, [sp, #64]
22314   beq .L7378
22315   mov r3, r0, asl #3
22316   mov r1, r2, lsr r3
22317   ldr r4, .L7824
22318   mov r0, #0
22319 .L7379:
22320   ands  r3, r1, #255
22321   mov r3, r3, asl #1
22322   ldrneh  r3, [r3, r4]
22323   ldrne r5, [sp, #64]
22324   mov r2, r0, asl #1
22325   add r0, r0, #1
22326   strneh  r3, [r2, r5]  @ movhi
22327   cmp r0, lr
22328   mov r1, r1, lsr #8
22329   bne .L7379
22330   ldr r6, [sp, #64]
22331   add r3, r6, ip, asl #1
22332   sub r1, r3, #8
22333 .L7378:
22334   ldr r2, [r7, #4]
22335   cmp r2, #0
22336   beq .L7384
22337   ands  r3, r2, #255
22338   ldrne lr, .L7824
22339   movne r3, r3, asl #1
22340   ldrneh  r3, [r3, lr]
22341   strneh  r3, [r1, #0]  @ movhi
22342   mov r3, r2, lsr #8
22343   ands  r3, r3, #255
22344   ldrne r0, .L7824
22345   movne r3, r3, asl #1
22346   ldrneh  r3, [r3, r0]
22347   strneh  r3, [r1, #2]  @ movhi
22348   mov r3, r2, lsr #16
22349   ands  r3, r3, #255
22350   ldrne r4, .L7824
22351   movne r3, r3, asl #1
22352   ldrneh  r3, [r3, r4]
22353   strneh  r3, [r1, #4]  @ movhi
22354   movs  r3, r2, lsr #24
22355   ldrne r5, .L7824
22356   movne r3, r3, asl #1
22357   ldrneh  r3, [r3, r5]
22358   strneh  r3, [r1, #6]  @ movhi
22359 .L7384:
22360   add r5, r1, #8
22361   b .L7370
22362 .L7819:
22363   ldr r4, [sp, #20]
22364   b .L7784
22365 .L7818:
22366   mov ip, fp
22367   b .L7782
22368 .L7559:
22369   ldr r6, [sp, #88]
22370   mov r3, r0, asl #3
22371   ldr r1, [r7, #4]
22372   add r2, r6, r0
22373   sub r3, r3, #32
22374   cmp r2, #4
22375   mov r1, r1, asl r3
22376   bhi .L7566
22377   cmp r6, #0
22378   ldrne ip, .L7824
22379   movne r0, #0
22380   beq .L6995
22381 .L7582:
22382   movs  r3, r1, lsr #24
22383   mov r3, r3, asl #1
22384   ldrneh  r3, [r3, ip]
22385   ldrne r7, [sp, #64]
22386   ldr lr, [sp, #88]
22387   mov r2, r0, asl #1
22388   add r0, r0, #1
22389   strneh  r3, [r2, r7]  @ movhi
22390   cmp lr, r0
22391   mov r1, r1, asl #8
22392   bne .L7582
22393   b .L6995
22394 .L7339:
22395   ldr r6, [sp, #88]
22396   ldr r3, [r7, #0]
22397   add r2, r6, r0
22398   cmp r2, #4
22399   mov r1, r0, asl #3
22400   mov r2, r3, lsr r1
22401   bhi .L7346
22402   cmp r6, #0
22403   ldrne ip, .L7824
22404   movne r0, #0
22405   beq .L6995
22406 .L7362:
22407   ands  r3, r2, #255
22408   mov r3, r3, asl #1
22409   ldrneh  r3, [r3, ip]
22410   ldrne r7, [sp, #64]
22411   ldr lr, [sp, #88]
22412   mov r1, r0, asl #1
22413   add r0, r0, #1
22414   strneh  r3, [r1, r7]  @ movhi
22415   cmp lr, r0
22416   mov r2, r2, lsr #8
22417   bne .L7362
22418   b .L6995
22419 .L7566:
22420   rsbs  ip, r0, #4
22421   ldreq lr, [sp, #64]
22422   beq .L7571
22423   ldr lr, .L7824
22424   mov r0, #0
22425 .L7572:
22426   movs  r3, r1, lsr #24
22427   mov r3, r3, asl #1
22428   ldrneh  r3, [r3, lr]
22429   ldrne r4, [sp, #64]
22430   mov r2, r0, asl #1
22431   add r0, r0, #1
22432   strneh  r3, [r2, r4]  @ movhi
22433   cmp r0, ip
22434   mov r1, r1, asl #8
22435   bne .L7572
22436   ldr r5, [sp, #64]
22437   add lr, r5, ip, asl #1
22438 .L7571:
22439   ldr r6, [sp, #88]
22440   ldr r2, [r7, #0]
22441   subs  ip, r6, ip
22442   beq .L6995
22443   ldr r4, .L7824
22444   mov r0, #0
22445 .L7578:
22446   movs  r3, r2, lsr #24
22447   mov r3, r3, asl #1
22448   ldrneh  r3, [r3, r4]
22449   mov r1, r0, asl #1
22450   add r0, r0, #1
22451   strneh  r3, [r1, lr]  @ movhi
22452   cmp r0, ip
22453   mov r2, r2, asl #8
22454   bne .L7578
22455   b .L6995
22456 .L7346:
22457   rsbs  ip, r0, #4
22458   ldreq lr, [sp, #64]
22459   beq .L7351
22460   ldr lr, .L7824
22461   mov r0, #0
22462 .L7352:
22463   ands  r3, r2, #255
22464   mov r3, r3, asl #1
22465   ldrneh  r3, [r3, lr]
22466   ldrne r4, [sp, #64]
22467   mov r1, r0, asl #1
22468   add r0, r0, #1
22469   strneh  r3, [r1, r4]  @ movhi
22470   cmp r0, ip
22471   mov r2, r2, lsr #8
22472   bne .L7352
22473   ldr r5, [sp, #64]
22474   add lr, r5, ip, asl #1
22475 .L7351:
22476   ldr r6, [sp, #88]
22477   ldr r2, [r7, #4]
22478   subs  ip, r6, ip
22479   beq .L6995
22480   ldr r4, .L7824
22481   mov r0, #0
22482 .L7358:
22483   ands  r3, r2, #255
22484   mov r3, r3, asl #1
22485   ldrneh  r3, [r3, r4]
22486   mov r1, r0, asl #1
22487   add r0, r0, #1
22488   strneh  r3, [r1, lr]  @ movhi
22489   cmp r0, ip
22490   mov r2, r2, lsr #8
22491   bne .L7358
22492   b .L6995
22493 .L7825:
22494   .align  2
22495 .L7824:
22496   .word palette_ram_converted+512
22497   .size render_scanline_obj_normal_2D, .-render_scanline_obj_normal_2D
22498   .align  2
22499   .global render_scanline_obj_color16_1D
22500   .type render_scanline_obj_color16_1D, %function
22501 render_scanline_obj_color16_1D:
22502   @ args = 0, pretend = 0, frame = 112
22503   @ frame_needed = 0, uses_anonymous_args = 0
22504   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
22505   ldr ip, .L8668
22506   sub sp, sp, #112
22507   ldrh  r4, [ip, #6]
22508   add r0, r0, r0, asl #2
22509   str r4, [sp, #32]
22510   ldr r5, [sp, #32]
22511   ldrh  r4, [ip, #80]
22512   ldr ip, .L8668+4
22513   add r0, r5, r0, asl #5
22514   ldr ip, [ip, r0, asl #2]
22515   mov lr, r4, lsr #11
22516   and lr, lr, #2
22517   mov r4, r4, asl #27
22518   str ip, [sp, #36]
22519   orr lr, lr, r4, lsr #31
22520   cmp ip, #0
22521   ldr ip, .L8668+8
22522   mov lr, lr, asl #9
22523   add r0, ip, r0, asl #7
22524   orr lr, lr, #256
22525   str r0, [sp, #40]
22526   str r1, [sp, #8]
22527   str r2, [sp, #4]
22528   str r3, [sp, #0]
22529   str lr, [sp, #24]
22530   beq .L8614
22531   mov r8, #0
22532   add r6, r3, r1, asl #1
22533   rsb r7, r1, r2
22534   str r6, [sp, #84]
22535   str r7, [sp, #108]
22536   str r8, [sp, #28]
22537   mov ip, r8
22538 .L7829:
22539   ldr lr, [sp, #40]
22540   ldr r0, .L8668+12
22541   ldrb  r3, [ip, lr]  @ zero_extendqisi2
22542   mov r3, r3, asl #3
22543   ldrh  r4, [r3, r0]
22544   add r3, r3, r0
22545   ldrh  r1, [r3, #2]
22546   mov r5, r4, lsr #12
22547   and r2, r5, #12
22548   orr r0, r2, r1, lsr #14
22549   and ip, r4, #255
22550   mov r2, r1, asl #23
22551   cmp ip, #160
22552   ldrh  lr, [r3, #4]
22553   mov r6, r2, asr #23
22554   ldr r3, .L8668+16
22555   ldr r2, .L8668+20
22556   subgt ip, ip, #256
22557   tst r4, #256
22558   ldr r7, [r2, r0, asl #2]
22559   ldr sl, [r3, r0, asl #2]
22560   beq .L7832
22561   tst r4, #8192
22562   beq .L7834
22563   tst r4, #512
22564   mov r3, r1, lsr #4
22565   ldr r4, .L8668+12
22566   and r3, r3, #992
22567   add r3, r3, r4
22568   add r2, r7, r7, lsr #31
22569   ldrh  r5, [r3, #30]
22570   mov r4, r2, asr #1
22571   add r1, sl, sl, lsr #31
22572   ldr r2, [sp, #8]
22573   movne r0, r4, asl #1
22574   str r5, [sp, #12]
22575   mov r5, r1, asr #1
22576   strne r0, [sp, #56]
22577   moveq r9, r7
22578   streq r4, [sp, #56]
22579   moveq r0, r5
22580   movne r9, r7, asl #1
22581   movne r0, r5, asl #1
22582   cmp r6, r2
22583   ldrh  r8, [r3, #6]
22584   ldrh  r1, [r3, #14]
22585   ldrh  fp, [r3, #22]
22586   bge .L7839
22587   rsb r2, r6, r2
22588   rsb r9, r2, r9
22589   cmp r9, #0
22590   ble .L7841
22591   ldr r3, [sp, #56]
22592   ldr r6, [sp, #8]
22593   rsb r3, r2, r3
22594   str r3, [sp, #56]
22595 .L7839:
22596   ldr r2, [sp, #4]
22597   add r3, r6, r9
22598   cmp r3, r2
22599   blt .L7843
22600   rsb r9, r6, r2
22601   cmp r9, #0
22602   ble .L7841
22603 .L7843:
22604   mov r3, r8, asl #16
22605   ldr r8, [sp, #12]
22606   mov r2, r1, asl #16
22607   mov r2, r2, asr #16
22608   mov r1, r8, asl #16
22609   add r0, ip, r0
22610   str r2, [sp, #48]
22611   mov ip, r1, asr #16
22612   ldr r2, [sp, #32]
22613   ldr r1, [sp, #0]
22614   mov r4, r4, asl #8
22615   mov r3, r3, asr #16
22616   mov r5, r5, asl #8
22617   cmp fp, #0
22618   str r4, [sp, #92]
22619   str r3, [sp, #44]
22620   str r5, [sp, #52]
22621   add r8, r1, r6, asl #1
22622   rsb r4, r0, r2
22623   bne .L7845
22624   mov r3, r5
22625   mla r3, r4, ip, r3
22626   mov r0, r3, asr #8
22627   cmp r0, sl
22628   bcs .L7841
22629   cmp r7, #0
22630   add r3, r7, #7
22631   movge r3, r7
22632   mov r2, lr, asl #22
22633   mov r3, r3, asr #3
22634   mov r3, r3, asl #1
22635   mov r1, r0, lsr #3
22636   mov r2, r2, lsr #22
22637   mla ip, r3, r1, r2
22638   and r0, r0, #7
22639   ldr r3, .L8668+24
22640   add r0, r0, ip, asl #2
22641   cmp r9, #0
22642   add lr, r3, r0, asl #3
22643   ble .L7841
22644   ldr r3, [sp, #48]
22645   ldr r2, [sp, #56]
22646   mul r3, r4, r3
22647   ldr r4, [sp, #44]
22648   ldr r5, [sp, #92]
22649   mul r2, r4, r2
22650   rsb r3, r2, r3
22651   add r0, r5, r3
22652   mov r4, r0, asr #8
22653   cmp r4, r7
22654   movcs ip, fp
22655   bcs .L7851
22656   b .L8664
22657 .L7852:
22658   cmp r4, r7
22659   bcc .L8628
22660 .L7851:
22661   ldr r6, [sp, #44]
22662   add ip, ip, #1
22663   add r0, r0, r6
22664   cmp r9, ip
22665   mov r4, r0, asr #8
22666   add r8, r8, #2
22667   bne .L7852
22668 .L7841:
22669   ldr r0, [sp, #28]
22670   ldr r1, [sp, #36]
22671   add r0, r0, #1
22672   cmp r0, r1
22673   str r0, [sp, #28]
22674   beq .L8614
22675 .L8646:
22676   ldr ip, [sp, #28]
22677   b .L7829
22678 .L7832:
22679   ldr r0, [sp, #32]
22680   tst r1, #8192
22681   rsb ip, ip, r0
22682   rsbne r3, ip, sl
22683   subne ip, r3, #1
22684   mov r2, r1, asl #19
22685   and r3, r5, #2
22686   orr r3, r3, r2, lsr #31
22687   cmp r3, #3
22688   ldrls pc, [pc, r3, asl #2]
22689   b .L7841
22690   .p2align 2
22691 .L7913:
22692   .word .L7909
22693   .word .L7910
22694   .word .L7911
22695   .word .L7912
22696 .L7909:
22697   cmp r7, #0
22698   add r3, r7, #7
22699   mov r2, lr, asl #22
22700   movge r3, r7
22701   mov r5, r3, asr #3
22702   mov r2, r2, lsr #22
22703   mov r3, ip, lsr #3
22704   mla r0, r5, r3, r2
22705   ldr r2, [sp, #8]
22706   and r1, ip, #7
22707   ldr r3, .L8668+24
22708   add r1, r1, r0, asl #3
22709   cmp r6, r2
22710   mov r2, lr, lsr #8
22711   add r0, r3, r1, asl #2
22712   and r1, r2, #240
22713   blt .L8641
22714   ldr ip, [sp, #4]
22715   add r3, r6, r7
22716   cmp ip, r3
22717   bhi .L7995
22718   rsb r8, r6, ip
22719   cmp r8, #0
22720   ble .L7841
22721   ldr lr, [sp, #0]
22722   movs  r7, r8, lsr #3
22723   add r2, lr, r6, asl #1
22724   beq .L7998
22725   mov r5, r2
22726   mov lr, r0
22727   mov ip, #0
22728 .L8000:
22729   ldr r4, [lr, #0]
22730   cmp r4, #0
22731   beq .L8001
22732   ands  r3, r4, #15
22733   ldrne r6, [sp, #24]
22734   orrne r3, r1, r3
22735   orrne r3, r3, r6
22736   strneh  r3, [r5, #0]  @ movhi
22737   mov r3, r4, lsr #4
22738   ands  r3, r3, #15
22739   ldrne r6, [sp, #24]
22740   orrne r3, r1, r3
22741   orrne r3, r3, r6
22742   strneh  r3, [r5, #2]  @ movhi
22743   mov r3, r4, lsr #8
22744   ands  r3, r3, #15
22745   ldrne r6, [sp, #24]
22746   orrne r3, r1, r3
22747   orrne r3, r3, r6
22748   strneh  r3, [r5, #4]  @ movhi
22749   mov r3, r4, lsr #12
22750   ands  r3, r3, #15
22751   ldrne r6, [sp, #24]
22752   orrne r3, r1, r3
22753   orrne r3, r3, r6
22754   strneh  r3, [r5, #6]  @ movhi
22755   mov r3, r4, lsr #16
22756   ands  r3, r3, #15
22757   ldrne r6, [sp, #24]
22758   orrne r3, r1, r3
22759   orrne r3, r3, r6
22760   strneh  r3, [r5, #8]  @ movhi
22761   mov r3, r4, lsr #20
22762   ands  r3, r3, #15
22763   ldrne r6, [sp, #24]
22764   orrne r3, r1, r3
22765   orrne r3, r3, r6
22766   strneh  r3, [r5, #10] @ movhi
22767   mov r3, r4, lsr #24
22768   ands  r3, r3, #15
22769   ldrne r6, [sp, #24]
22770   orrne r3, r1, r3
22771   orrne r3, r3, r6
22772   strneh  r3, [r5, #12] @ movhi
22773   movs  r3, r4, lsr #28
22774   ldrne r4, [sp, #24]
22775   orrne r3, r1, r3
22776   orrne r3, r3, r4
22777   strneh  r3, [r5, #14] @ movhi
22778 .L8001:
22779   add ip, ip, #1
22780   cmp ip, r7
22781   add lr, lr, #32
22782   add r5, r5, #16
22783   bne .L8000
22784   add r0, r0, r7, asl #5
22785   add r2, r2, r7, asl #4
22786 .L7998:
22787   ands  lr, r8, #7
22788   beq .L7841
22789   ldr r0, [r0, #0]
22790   mov r4, #0
22791 .L8020:
22792   ands  r3, r0, #15
22793   ldr r5, [sp, #24]
22794   orr r3, r1, r3
22795   mov ip, r4, asl #1
22796   orr r3, r3, r5
22797   add r4, r4, #1
22798   strneh  r3, [ip, r2]  @ movhi
22799   cmp r4, lr
22800   mov r0, r0, lsr #4
22801   bne .L8020
22802   b .L7841
22803 .L7910:
22804   cmp r7, #0
22805   add r3, r7, #7
22806   mov r2, lr, asl #22
22807   movge r3, r7
22808   mov r5, r3, asr #3
22809   mov r2, r2, lsr #22
22810   mov r1, ip, lsr #3
22811   mla r0, r5, r1, r2
22812   subs  r3, r7, #8
22813   submi r3, r7, #1
22814   ldr r8, [sp, #8]
22815   add r0, r0, r3, asr #3
22816   and r2, ip, #7
22817   ldr r3, .L8668+24
22818   add r2, r2, r0, asl #3
22819   mov r1, lr, lsr #8
22820   cmp r6, r8
22821   add r0, r3, r2, asl #2
22822   and r1, r1, #240
22823   blt .L8642
22824   ldr r2, [sp, #4]
22825   add r3, r6, r7
22826   cmp r2, r3
22827   bhi .L8125
22828   rsb r8, r6, r2
22829   cmp r8, #0
22830   ble .L7841
22831   ldr r3, [sp, #0]
22832   movs  r7, r8, lsr #3
22833   add r2, r3, r6, asl #1
22834   beq .L8128
22835   mov r5, r2
22836   mov lr, r0
22837   mov ip, #0
22838 .L8130:
22839   ldr r4, [lr, #0]
22840   cmp r4, #0
22841   beq .L8131
22842   ands  r3, r4, #15
22843   ldrne r6, [sp, #24]
22844   orrne r3, r1, r3
22845   orrne r3, r3, r6
22846   strneh  r3, [r5, #14] @ movhi
22847   mov r3, r4, lsr #4
22848   ands  r3, r3, #15
22849   ldrne r6, [sp, #24]
22850   orrne r3, r1, r3
22851   orrne r3, r3, r6
22852   strneh  r3, [r5, #12] @ movhi
22853   mov r3, r4, lsr #8
22854   ands  r3, r3, #15
22855   ldrne r6, [sp, #24]
22856   orrne r3, r1, r3
22857   orrne r3, r3, r6
22858   strneh  r3, [r5, #10] @ movhi
22859   mov r3, r4, lsr #12
22860   ands  r3, r3, #15
22861   ldrne r6, [sp, #24]
22862   orrne r3, r1, r3
22863   orrne r3, r3, r6
22864   strneh  r3, [r5, #8]  @ movhi
22865   mov r3, r4, lsr #16
22866   ands  r3, r3, #15
22867   ldrne r6, [sp, #24]
22868   orrne r3, r1, r3
22869   orrne r3, r3, r6
22870   strneh  r3, [r5, #6]  @ movhi
22871   mov r3, r4, lsr #20
22872   ands  r3, r3, #15
22873   ldrne r6, [sp, #24]
22874   orrne r3, r1, r3
22875   orrne r3, r3, r6
22876   strneh  r3, [r5, #4]  @ movhi
22877   mov r3, r4, lsr #24
22878   ands  r3, r3, #15
22879   ldrne r6, [sp, #24]
22880   orrne r3, r1, r3
22881   orrne r3, r3, r6
22882   strneh  r3, [r5, #2]  @ movhi
22883   movs  r3, r4, lsr #28
22884   ldrne r4, [sp, #24]
22885   orrne r3, r1, r3
22886   orrne r3, r3, r4
22887   strneh  r3, [r5, #0]  @ movhi
22888 .L8131:
22889   add ip, ip, #1
22890   cmp ip, r7
22891   sub lr, lr, #32
22892   add r5, r5, #16
22893   bne .L8130
22894   rsb r3, r7, r7, asl #27
22895   add r0, r0, r3, asl #5
22896   add r2, r2, r7, asl #4
22897 .L8128:
22898   ands  lr, r8, #7
22899   beq .L7841
22900   ldr r0, [r0, #0]
22901   mov r4, #0
22902 .L8150:
22903   movs  r3, r0, lsr #28
22904   ldr r5, [sp, #24]
22905   orr r3, r1, r3
22906   mov ip, r4, asl #1
22907   orr r3, r3, r5
22908   add r4, r4, #1
22909   strneh  r3, [ip, r2]  @ movhi
22910   cmp r4, lr
22911   mov r0, r0, asl #4
22912   bne .L8150
22913   b .L7841
22914 .L7911:
22915   cmp r7, #0
22916   add r3, r7, #7
22917   mov r1, lr, asl #22
22918   movge r3, r7
22919   mov r2, ip, lsr #3
22920   mov lr, r3, asr #3
22921   mov r1, r1, lsr #22
22922   mov r2, r2, asl #1
22923   mla r0, r2, lr, r1
22924   and r3, ip, #7
22925   add r3, r3, r0, asl #2
22926   ldr r8, [sp, #8]
22927   mov r0, r3, asl #3
22928   ldr r3, .L8668+24
22929   cmp r6, r8
22930   add r1, r0, r3
22931   blt .L8643
22932   add r3, r6, r7
22933   ldr r7, [sp, #4]
22934   cmp r7, r3
22935   bhi .L8330
22936   rsb r8, r6, r7
22937   cmp r8, #0
22938   ble .L7841
22939   ldr ip, [sp, #0]
22940   movs  r7, r8, lsr #3
22941   add r2, ip, r6, asl #1
22942   beq .L8333
22943   ldr r3, .L8668+32
22944   mov r5, r2
22945   add r0, r0, r3
22946   mov lr, r1
22947   mov ip, #0
22948 .L8335:
22949   ldr r4, [lr, #0]
22950   cmp r4, #0
22951   beq .L8336
22952   ands  r3, r4, #255
22953   ldrne r6, [sp, #24]
22954   orrne r3, r3, r6
22955   strneh  r3, [r5, #0]  @ movhi
22956   mov r3, r4, lsr #8
22957   ands  r3, r3, #255
22958   ldrne r6, [sp, #24]
22959   orrne r3, r3, r6
22960   strneh  r3, [r5, #2]  @ movhi
22961   mov r3, r4, lsr #16
22962   ands  r3, r3, #255
22963   ldrne r6, [sp, #24]
22964   orrne r3, r3, r6
22965   strneh  r3, [r5, #4]  @ movhi
22966   movs  r3, r4, lsr #24
22967   ldrne r4, [sp, #24]
22968   orrne r3, r3, r4
22969   strneh  r3, [r5, #6]  @ movhi
22970 .L8336:
22971   ldr r4, [r0, #-60]
22972   cmp r4, #0
22973   beq .L8345
22974   ands  r3, r4, #255
22975   ldrne r6, [sp, #24]
22976   orrne r3, r3, r6
22977   strneh  r3, [r5, #8]  @ movhi
22978   mov r3, r4, lsr #8
22979   ands  r3, r3, #255
22980   ldrne r6, [sp, #24]
22981   orrne r3, r3, r6
22982   strneh  r3, [r5, #10] @ movhi
22983   mov r3, r4, lsr #16
22984   ands  r3, r3, #255
22985   ldrne r6, [sp, #24]
22986   orrne r3, r3, r6
22987   strneh  r3, [r5, #12] @ movhi
22988   movs  r3, r4, lsr #24
22989   ldrne r4, [sp, #24]
22990   orrne r3, r3, r4
22991   strneh  r3, [r5, #14] @ movhi
22992 .L8345:
22993   add ip, ip, #1
22994   cmp r7, ip
22995   add lr, lr, #64
22996   add r5, r5, #16
22997   add r0, r0, #64
22998   bne .L8335
22999   add r1, r1, r7, asl #6
23000   add r2, r2, r7, asl #4
23001 .L8333:
23002   ands  lr, r8, #7
23003   beq .L7841
23004   cmp lr, #3
23005   ldrls r0, [r1, #0]
23006   bls .L8368
23007   ldr r0, [r1, #0]
23008   cmp r0, #0
23009   beq .L8358
23010   ands  r3, r0, #255
23011   ldrne r5, [sp, #24]
23012   orrne r3, r3, r5
23013   strneh  r3, [r2, #0]  @ movhi
23014   mov r3, r0, lsr #8
23015   ands  r3, r3, #255
23016   ldrne r6, [sp, #24]
23017   orrne r3, r3, r6
23018   strneh  r3, [r2, #2]  @ movhi
23019   mov r3, r0, lsr #16
23020   ands  r3, r3, #255
23021   ldrne r7, [sp, #24]
23022   orrne r3, r3, r7
23023   strneh  r3, [r2, #4]  @ movhi
23024   movs  r3, r0, lsr #24
23025   ldrne r8, [sp, #24]
23026   orrne r3, r3, r8
23027   strneh  r3, [r2, #6]  @ movhi
23028 .L8358:
23029   subs  lr, lr, #4
23030   ldr r0, [r1, #4]
23031   addne r2, r2, #8
23032   beq .L7841
23033 .L8368:
23034   mov r1, #0
23035 .L8369:
23036   ldr ip, [sp, #24]
23037   ands  r3, r0, #255
23038   orr r3, r3, ip
23039   mov ip, r1, asl #1
23040   add r1, r1, #1
23041   strneh  r3, [ip, r2]  @ movhi
23042   cmp lr, r1
23043   mov r0, r0, lsr #8
23044   bhi .L8369
23045   b .L7841
23046 .L7912:
23047   cmp r7, #0
23048   add r2, r7, #7
23049   movge r2, r7
23050   subs  r3, r7, #8
23051   submi r3, r7, #1
23052   mov r1, ip, lsr #3
23053   mov r5, r2, asr #3
23054   mov r3, r3, asr #3
23055   mla r0, r5, r1, r3
23056   mov r2, lr, asl #22
23057   mov r2, r2, lsr #22
23058   add r2, r2, r0, asl #1
23059   and r3, ip, #7
23060   add r3, r3, r2, asl #2
23061   ldr ip, [sp, #8]
23062   mov r0, r3, asl #3
23063   ldr r3, .L8668+24
23064   cmp r6, ip
23065   add r1, r0, r3
23066   blt .L8644
23067   add r3, r6, r7
23068   ldr r7, [sp, #4]
23069   cmp r3, r7
23070   bcc .L8550
23071   rsb r8, r6, r7
23072   cmp r8, #0
23073   ble .L7841
23074   ldr ip, [sp, #0]
23075   movs  r7, r8, lsr #3
23076   add r6, ip, r6, asl #1
23077   beq .L8553
23078   ldr r3, .L8668+28
23079   mov r5, r6
23080   add r0, r0, r3
23081   mov lr, r1
23082   mov ip, #0
23083 .L8555:
23084   ldr r4, [r0, #68]
23085   cmp r4, #0
23086   beq .L8556
23087   ands  r3, r4, #255
23088   ldrne r2, [sp, #24]
23089   orrne r3, r3, r2
23090   strneh  r3, [r5, #6]  @ movhi
23091   mov r3, r4, lsr #8
23092   ands  r3, r3, #255
23093   ldrne r2, [sp, #24]
23094   orrne r3, r3, r2
23095   strneh  r3, [r5, #4]  @ movhi
23096   mov r3, r4, lsr #16
23097   ands  r3, r3, #255
23098   ldrne r2, [sp, #24]
23099   orrne r3, r3, r2
23100   strneh  r3, [r5, #2]  @ movhi
23101   movs  r3, r4, lsr #24
23102   ldrne r4, [sp, #24]
23103   orrne r3, r3, r4
23104   strneh  r3, [r5, #0]  @ movhi
23105 .L8556:
23106   ldr r4, [lr, #0]
23107   cmp r4, #0
23108   beq .L8565
23109   ands  r3, r4, #255
23110   ldrne r2, [sp, #24]
23111   orrne r3, r3, r2
23112   strneh  r3, [r5, #14] @ movhi
23113   mov r3, r4, lsr #8
23114   ands  r3, r3, #255
23115   ldrne r2, [sp, #24]
23116   orrne r3, r3, r2
23117   strneh  r3, [r5, #12] @ movhi
23118   mov r3, r4, lsr #16
23119   ands  r3, r3, #255
23120   ldrne r2, [sp, #24]
23121   orrne r3, r3, r2
23122   strneh  r3, [r5, #10] @ movhi
23123   movs  r3, r4, lsr #24
23124   ldrne r4, [sp, #24]
23125   orrne r3, r3, r4
23126   strneh  r3, [r5, #8]  @ movhi
23127 .L8565:
23128   add ip, ip, #1
23129   cmp ip, r7
23130   sub lr, lr, #64
23131   add r5, r5, #16
23132   sub r0, r0, #64
23133   bne .L8555
23134   rsb r3, r7, r7, asl #26
23135   add r1, r1, r3, asl #6
23136   add r6, r6, r7, asl #4
23137 .L8553:
23138   ands  ip, r8, #7
23139   beq .L7841
23140   cmp ip, #3
23141   ldrls r2, [r1, #4]
23142   bls .L8588
23143   ldr r2, [r1, #4]
23144   cmp r2, #0
23145   beq .L8578
23146   ands  r3, r2, #255
23147   ldrne r5, [sp, #24]
23148   orrne r3, r3, r5
23149   strneh  r3, [r6, #6]  @ movhi
23150   mov r3, r2, lsr #8
23151   ands  r3, r3, #255
23152   ldrne r7, [sp, #24]
23153   orrne r3, r3, r7
23154   strneh  r3, [r6, #4]  @ movhi
23155   mov r3, r2, lsr #16
23156   ands  r3, r3, #255
23157   ldrne r8, [sp, #24]
23158   orrne r3, r3, r8
23159   strneh  r3, [r6, #2]  @ movhi
23160   movs  r3, r2, lsr #24
23161   ldrne lr, [sp, #24]
23162   orrne r3, r3, lr
23163   strneh  r3, [r6, #0]  @ movhi
23164 .L8578:
23165   subs  ip, ip, #4
23166   ldr r2, [r1, #0]
23167   addne r6, r6, #8
23168   beq .L7841
23169 .L8588:
23170   mov r1, #0
23171 .L8589:
23172   ldr r0, [sp, #24]
23173   movs  r3, r2, lsr #24
23174   orr r3, r3, r0
23175   mov r0, r1, asl #1
23176   add r1, r1, #1
23177   strneh  r3, [r0, r6]  @ movhi
23178   cmp ip, r1
23179   mov r2, r2, asl #8
23180   bhi .L8589
23181   b .L7841
23182 .L7834:
23183   mov r3, r1, lsr #4
23184   ldr r1, .L8668+12
23185   and r3, r3, #992
23186   add r3, r3, r1
23187   tst r4, #512
23188   ldrh  r4, [r3, #30]
23189   add r2, r7, r7, lsr #31
23190   add r1, sl, sl, lsr #31
23191   str r4, [sp, #20]
23192   mov r4, r2, asr #1
23193   ldr r2, [sp, #8]
23194   mov r5, r1, asr #1
23195   ldrh  r8, [r3, #6]
23196   ldrh  r1, [r3, #14]
23197   ldrh  r3, [r3, #22]
23198   moveq fp, r7
23199   moveq r9, r4
23200   moveq r0, r5
23201   movne fp, r7, asl #1
23202   movne r9, r4, asl #1
23203   movne r0, r5, asl #1
23204   cmp r6, r2
23205   str r3, [sp, #16]
23206   bge .L7872
23207   rsb r2, r6, r2
23208   rsb fp, r2, fp
23209   cmp fp, #0
23210   ble .L7841
23211   ldr r6, [sp, #8]
23212   rsb r9, r2, r9
23213 .L7872:
23214   ldr r2, [sp, #4]
23215   add r3, r6, fp
23216   cmp r3, r2
23217   blt .L7875
23218   rsb fp, r6, r2
23219   cmp fp, #0
23220   ble .L7841
23221 .L7875:
23222   mov r3, r8, asl #16
23223   ldr r8, [sp, #20]
23224   add ip, ip, r0
23225   mov r2, r1, asl #16
23226   ldr r0, [sp, #16]
23227   mov r1, r8, asl #16
23228   mov r2, r2, asr #16
23229   mov r1, r1, asr #16
23230   cmp r0, #0
23231   str r2, [sp, #68]
23232   mov r0, lr, lsr #8
23233   str r1, [sp, #76]
23234   ldr r2, [sp, #32]
23235   ldr r1, [sp, #0]
23236   mov r4, r4, asl #8
23237   mov r3, r3, asr #16
23238   and r0, r0, #240
23239   str r4, [sp, #88]
23240   str r3, [sp, #64]
23241   mov r5, r5, asl #8
23242   add r8, r1, r6, asl #1
23243   rsb r4, ip, r2
23244   str r0, [sp, #104]
23245   bne .L7877
23246   ldr r3, [sp, #76]
23247   mla r3, r4, r3, r5
23248   mov r0, r3, asr #8
23249   cmp r0, sl
23250   bcs .L7841
23251   cmp r7, #0
23252   add r3, r7, #7
23253   mov r2, lr, asl #22
23254   movge r3, r7
23255   mov r1, r0, lsr #3
23256   mov r3, r3, asr #3
23257   mov r2, r2, lsr #22
23258   mla ip, r3, r1, r2
23259   and r0, r0, #7
23260   ldr r3, .L8668+24
23261   add r0, r0, ip, asl #3
23262   cmp fp, #0
23263   add r1, r3, r0, asl #2
23264   ble .L7841
23265   ldr r3, [sp, #68]
23266   ldr r2, [sp, #64]
23267   mul r3, r4, r3
23268   mul r2, r9, r2
23269   ldr r4, [sp, #88]
23270   rsb r3, r2, r3
23271   add r0, r4, r3
23272   mov r4, r0, asr #8
23273   cmp r4, r7
23274   ldrcs r5, [sp, #16]
23275   bcs .L7883
23276   b .L8665
23277 .L7884:
23278   cmp r4, r7
23279   bcc .L8630
23280 .L7883:
23281   ldr r6, [sp, #64]
23282   add r5, r5, #1
23283   add r0, r0, r6
23284   cmp fp, r5
23285   mov r4, r0, asr #8
23286   add r8, r8, #2
23287   bne .L7884
23288   ldr r0, [sp, #28]
23289   ldr r1, [sp, #36]
23290   add r0, r0, #1
23291   cmp r0, r1
23292   str r0, [sp, #28]
23293   bne .L8646
23294 .L8614:
23295   add sp, sp, #112
23296   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
23297 .L7845:
23298   cmp r7, #0
23299   add r1, r7, #7
23300   mov r2, lr, asl #22
23301   movge r1, r7
23302   ldr r3, .L8668+24
23303   mov r2, r2, lsr #22
23304   mov r1, r1, asr #3
23305   add r2, r3, r2, asl #5
23306   mov r1, r1, asl #6
23307   cmp r9, #0
23308   str r2, [sp, #100]
23309   str r1, [sp, #60]
23310   ble .L7841
23311   mov r3, fp, asl #16
23312   mov fp, r3, asr #16
23313   ldr r3, [sp, #48]
23314   mul r2, r4, ip
23315   mul r3, r4, r3
23316   ldr r1, [sp, #56]
23317   ldr r4, [sp, #44]
23318   ldr r0, [sp, #56]
23319   mul r1, fp, r1
23320   mul r0, r4, r0
23321   ldr r6, [sp, #92]
23322   ldr ip, [sp, #52]
23323   rsb r3, r0, r3
23324   rsb r2, r1, r2
23325   add r5, r6, r3
23326   add lr, ip, r2
23327   mov r4, lr, asr #8
23328   mov ip, r5, asr #8
23329   cmp ip, r7
23330   cmpcc r4, sl
23331   movcs r3, #0
23332   movcc r3, #1
23333   movcs r6, r3
23334   bcs .L7861
23335   b .L8666
23336 .L7862:
23337   cmp ip, r7
23338   cmpcc r4, sl
23339   bcc .L7863
23340 .L7861:
23341   ldr r0, [sp, #44]
23342   add r6, r6, #1
23343   add r5, r5, r0
23344   add lr, lr, fp
23345   cmp r9, r6
23346   mov ip, r5, asr #8
23347   mov r4, lr, asr #8
23348   add r8, r8, #2
23349   bne .L7862
23350   b .L7841
23351 .L7877:
23352   cmp r7, #0
23353   add r1, r7, #7
23354   mov r2, lr, asl #22
23355   movge r1, r7
23356   ldr r3, .L8668+24
23357   mov r2, r2, lsr #22
23358   mov r1, r1, asr #3
23359   add r2, r3, r2, asl #5
23360   mov r1, r1, asl #5
23361   cmp fp, #0
23362   str r2, [sp, #96]
23363   str r1, [sp, #80]
23364   ble .L7841
23365   ldr r6, [sp, #16]
23366   ldr r2, [sp, #76]
23367   mov r3, r6, asl #16
23368   mov r3, r3, asr #16
23369   str r3, [sp, #72]
23370   ldr r1, [sp, #72]
23371   ldr r3, [sp, #68]
23372   ldr r0, [sp, #64]
23373   mul r2, r4, r2
23374   mul r3, r4, r3
23375   mul r1, r9, r1
23376   mul r0, r9, r0
23377   ldr ip, [sp, #88]
23378   rsb r2, r1, r2
23379   rsb r3, r0, r3
23380   add lr, ip, r3
23381   add r5, r5, r2
23382   mov r4, lr, asr #8
23383   mov r2, r5, asr #8
23384   cmp r4, r7
23385   cmpcc r2, sl
23386   movcs r3, #0
23387   movcc r3, #1
23388   movcs r6, r3
23389   bcs .L7896
23390   b .L8667
23391 .L7897:
23392   cmp r4, r7
23393   cmpcc r2, sl
23394   bcc .L7899
23395 .L7896:
23396   ldr r0, [sp, #64]
23397   ldr r1, [sp, #72]
23398   add r6, r6, #1
23399   add lr, lr, r0
23400   add r5, r5, r1
23401   cmp fp, r6
23402   mov r4, lr, asr #8
23403   mov r2, r5, asr #8
23404   add r8, r8, #2
23405   bne .L7897
23406   b .L7841
23407 .L8649:
23408   ldr r3, [sp, #96]
23409   and r0, r2, #7
23410   add r0, r3, r0, asl #2
23411   and r1, r2, #7
23412   mov r3, r2, asr #3
23413   ldr r2, [sp, #80]
23414   mov ip, r4, asr #1
23415   mul r2, r3, r2
23416   and r9, ip, #3
23417   ldr ip, [sp, #96]
23418   mov r3, r4, asr #1
23419   add r1, ip, r1, asl #2
23420   and ip, r3, #3
23421   mov r3, r4, asr #3
23422   add r2, r2, r3, asl #5
23423   add r3, r0, r2
23424   tst r4, #1
23425   add r0, r1, r2
23426   ldreqb  r3, [r0, ip]  @ zero_extendqisi2
23427   ldrneb  r3, [r3, r9]  @ zero_extendqisi2
23428   ldr r4, [sp, #104]
23429   movne r0, r3, lsr #4
23430   andeq r0, r3, #15
23431   ldr ip, [sp, #24]
23432   ldr r2, [sp, #72]
23433   orr r3, r0, r4
23434   ldr r1, [sp, #64]
23435   cmp r0, #0
23436   add r6, r6, #1
23437   orr r3, r3, ip
23438   strneh  r3, [r8, #0]  @ movhi
23439   add lr, lr, r1
23440   add r5, r5, r2
23441   cmp fp, r6
23442   mov r4, lr, asr #8
23443   mov r2, r5, asr #8
23444   add r8, r8, #2
23445   ble .L7841
23446 .L7899:
23447   cmp r2, sl
23448   cmpcc r4, r7
23449   bcc .L8649
23450   b .L7841
23451 .L7886:
23452   cmp r4, r7
23453   bcs .L7841
23454 .L8630:
23455   mov r3, r4, asr #1
23456   and sl, r3, #3
23457   mov r3, r4, asr #3
23458   mov r3, r3, asl #5
23459   mov r2, r4, asr #1
23460   tst r4, #1
23461   add ip, r3, r1
23462   and r6, r2, #3
23463   add r2, r3, r1
23464   ldreqb  r3, [r2, r6]  @ zero_extendqisi2
23465   ldrneb  r3, [ip, sl]  @ zero_extendqisi2
23466   ldr lr, [sp, #104]
23467   movne r2, r3, lsr #4
23468   andeq r2, r3, #15
23469   cmp r2, #0
23470   orr r3, r2, lr
23471   ldr r2, [sp, #24]
23472   ldr ip, [sp, #64]
23473   add r5, r5, #1
23474   orr r3, r3, r2
23475   strneh  r3, [r8, #0]  @ movhi
23476   add r0, r0, ip
23477   cmp fp, r5
23478   mov r4, r0, asr #8
23479   add r8, r8, #2
23480   bgt .L7886
23481   b .L7841
23482 .L7854:
23483   cmp r4, r7
23484   bcs .L7841
23485 .L8628:
23486   ldr r1, [sp, #44]
23487   mov r3, r4, asr #3
23488   add r0, r0, r1
23489   add r3, lr, r3, asl #6
23490   and r1, r4, #7
23491   ldrb  r2, [r3, r1]  @ zero_extendqisi2
23492   ldr r3, [sp, #24]
23493   cmp r2, #0
23494   add ip, ip, #1
23495   orr r2, r2, r3
23496   strneh  r2, [r8, #0]  @ movhi
23497   cmp r9, ip
23498   mov r4, r0, asr #8
23499   add r8, r8, #2
23500   bgt .L7854
23501   b .L7841
23502 .L8669:
23503   .align  2
23504 .L8668:
23505   .word io_registers
23506   .word obj_priority_count
23507   .word obj_priority_list
23508   .word oam_ram
23509   .word obj_height_table
23510   .word obj_width_table
23511   .word vram+65536
23512   .word vram+65472
23513   .word vram+65600
23514 .L8644:
23515   rsb r0, r6, ip
23516   rsb r4, r0, r7
23517   cmp r4, #0
23518   ble .L7841
23519   ldr lr, [sp, #4]
23520   add r3, r6, r7
23521   cmp lr, r3
23522   bhi .L8397
23523   mov r3, r0, lsr #3
23524   ands  ip, r0, #7
23525   sub r6, r1, r3, asl #6
23526   bne .L8399
23527   ldr r5, [sp, #108]
23528   ldr r4, [sp, #84]
23529 .L8401:
23530   movs  lr, r5, lsr #3
23531   beq .L8459
23532   mov r1, r4
23533   mov r0, r6
23534   mov ip, #0
23535 .L8461:
23536   ldr r2, [r0, #4]
23537   cmp r2, #0
23538   beq .L8462
23539   ands  r3, r2, #255
23540   ldrne r7, [sp, #24]
23541   orrne r3, r3, r7
23542   strneh  r3, [r1, #6]  @ movhi
23543   mov r3, r2, lsr #8
23544   ands  r3, r3, #255
23545   ldrne r8, [sp, #24]
23546   orrne r3, r3, r8
23547   strneh  r3, [r1, #4]  @ movhi
23548   mov r3, r2, lsr #16
23549   ands  r3, r3, #255
23550   ldrne r7, [sp, #24]
23551   orrne r3, r3, r7
23552   strneh  r3, [r1, #2]  @ movhi
23553   movs  r3, r2, lsr #24
23554   ldrne r8, [sp, #24]
23555   orrne r3, r3, r8
23556   strneh  r3, [r1, #0]  @ movhi
23557 .L8462:
23558   ldr r2, [r0, #0]
23559   cmp r2, #0
23560   beq .L8471
23561   ands  r3, r2, #255
23562   ldrne r7, [sp, #24]
23563   orrne r3, r3, r7
23564   strneh  r3, [r1, #14] @ movhi
23565   mov r3, r2, lsr #8
23566   ands  r3, r3, #255
23567   ldrne r8, [sp, #24]
23568   orrne r3, r3, r8
23569   strneh  r3, [r1, #12] @ movhi
23570   mov r3, r2, lsr #16
23571   ands  r3, r3, #255
23572   ldrne r7, [sp, #24]
23573   orrne r3, r3, r7
23574   strneh  r3, [r1, #10] @ movhi
23575   movs  r3, r2, lsr #24
23576   ldrne r8, [sp, #24]
23577   orrne r3, r3, r8
23578   strneh  r3, [r1, #8]  @ movhi
23579 .L8471:
23580   add ip, ip, #1
23581   cmp ip, lr
23582   sub r0, r0, #64
23583   add r1, r1, #16
23584   bne .L8461
23585   rsb r3, lr, lr, asl #26
23586   add r6, r6, r3, asl #6
23587   add r4, r4, lr, asl #4
23588 .L8459:
23589   ands  ip, r5, #7
23590   beq .L7841
23591   cmp ip, #3
23592   ldrls r2, [r6, #4]
23593   bls .L8494
23594   ldr r2, [r6, #4]
23595   cmp r2, #0
23596   beq .L8484
23597   ands  r3, r2, #255
23598   ldrne lr, [sp, #24]
23599   orrne r3, r3, lr
23600   strneh  r3, [r4, #6]  @ movhi
23601   mov r3, r2, lsr #8
23602   ands  r3, r3, #255
23603   ldrne r0, [sp, #24]
23604   orrne r3, r3, r0
23605   strneh  r3, [r4, #4]  @ movhi
23606   mov r3, r2, lsr #16
23607   ands  r3, r3, #255
23608   ldrne r1, [sp, #24]
23609   orrne r3, r3, r1
23610   strneh  r3, [r4, #2]  @ movhi
23611   movs  r3, r2, lsr #24
23612   ldrne r2, [sp, #24]
23613   orrne r3, r3, r2
23614   strneh  r3, [r4, #0]  @ movhi
23615 .L8484:
23616   subs  ip, ip, #4
23617   ldr r2, [r6, #0]
23618   addne r4, r4, #8
23619   beq .L7841
23620 .L8494:
23621   mov r1, #0
23622 .L8495:
23623   ldr r5, [sp, #24]
23624   movs  r3, r2, lsr #24
23625   mov r0, r1, asl #1
23626   orr r3, r3, r5
23627   add r1, r1, #1
23628   strneh  r3, [r0, r4]  @ movhi
23629   cmp ip, r1
23630   mov r2, r2, asl #8
23631   bhi .L8495
23632   b .L7841
23633 .L8643:
23634   rsb r0, r6, r8
23635   rsb r4, r0, r7
23636   cmp r4, #0
23637   ble .L7841
23638   ldr ip, [sp, #4]
23639   add r3, r6, r7
23640   cmp ip, r3
23641   bhi .L8177
23642   mov r3, r0, lsr #3
23643   ands  ip, r0, #7
23644   add r6, r1, r3, asl #6
23645   bne .L8179
23646   ldr r5, [sp, #108]
23647   ldr r4, [sp, #84]
23648 .L8181:
23649   movs  lr, r5, lsr #3
23650   beq .L8239
23651   mov r1, r4
23652   mov r0, r6
23653   mov ip, #0
23654 .L8241:
23655   ldr r2, [r0, #0]
23656   cmp r2, #0
23657   beq .L8242
23658   ands  r3, r2, #255
23659   ldrne r7, [sp, #24]
23660   orrne r3, r3, r7
23661   strneh  r3, [r1, #0]  @ movhi
23662   mov r3, r2, lsr #8
23663   ands  r3, r3, #255
23664   ldrne r8, [sp, #24]
23665   orrne r3, r3, r8
23666   strneh  r3, [r1, #2]  @ movhi
23667   mov r3, r2, lsr #16
23668   ands  r3, r3, #255
23669   ldrne r7, [sp, #24]
23670   orrne r3, r3, r7
23671   strneh  r3, [r1, #4]  @ movhi
23672   movs  r3, r2, lsr #24
23673   ldrne r8, [sp, #24]
23674   orrne r3, r3, r8
23675   strneh  r3, [r1, #6]  @ movhi
23676 .L8242:
23677   ldr r2, [r0, #4]
23678   cmp r2, #0
23679   beq .L8251
23680   ands  r3, r2, #255
23681   ldrne r7, [sp, #24]
23682   orrne r3, r3, r7
23683   strneh  r3, [r1, #8]  @ movhi
23684   mov r3, r2, lsr #8
23685   ands  r3, r3, #255
23686   ldrne r8, [sp, #24]
23687   orrne r3, r3, r8
23688   strneh  r3, [r1, #10] @ movhi
23689   mov r3, r2, lsr #16
23690   ands  r3, r3, #255
23691   ldrne r7, [sp, #24]
23692   orrne r3, r3, r7
23693   strneh  r3, [r1, #12] @ movhi
23694   movs  r3, r2, lsr #24
23695   ldrne r8, [sp, #24]
23696   orrne r3, r3, r8
23697   strneh  r3, [r1, #14] @ movhi
23698 .L8251:
23699   add ip, ip, #1
23700   cmp lr, ip
23701   add r0, r0, #64
23702   add r1, r1, #16
23703   bne .L8241
23704   add r6, r6, lr, asl #6
23705   add r4, r4, lr, asl #4
23706 .L8239:
23707   ands  ip, r5, #7
23708   beq .L7841
23709   cmp ip, #3
23710   ldrls r1, [r6, #0]
23711   bls .L8274
23712   ldr r2, [r6, #0]
23713   cmp r2, #0
23714   beq .L8264
23715   ands  r3, r2, #255
23716   ldrne lr, [sp, #24]
23717   orrne r3, r3, lr
23718   strneh  r3, [r4, #0]  @ movhi
23719   mov r3, r2, lsr #8
23720   ands  r3, r3, #255
23721   ldrne r0, [sp, #24]
23722   orrne r3, r3, r0
23723   strneh  r3, [r4, #2]  @ movhi
23724   mov r3, r2, lsr #16
23725   ands  r3, r3, #255
23726   ldrne r1, [sp, #24]
23727   orrne r3, r3, r1
23728   strneh  r3, [r4, #4]  @ movhi
23729   movs  r3, r2, lsr #24
23730   ldrne r2, [sp, #24]
23731   orrne r3, r3, r2
23732   strneh  r3, [r4, #6]  @ movhi
23733 .L8264:
23734   subs  ip, ip, #4
23735   ldr r1, [r6, #4]
23736   addne r4, r4, #8
23737   beq .L7841
23738 .L8274:
23739   mov r2, #0
23740 .L8275:
23741   ldr r5, [sp, #24]
23742   ands  r3, r1, #255
23743   mov r0, r2, asl #1
23744   orr r3, r3, r5
23745   add r2, r2, #1
23746   strneh  r3, [r0, r4]  @ movhi
23747   cmp ip, r2
23748   mov r1, r1, lsr #8
23749   bhi .L8275
23750   b .L7841
23751 .L8642:
23752   rsb r4, r6, r8
23753   rsb ip, r4, r7
23754   cmp ip, #0
23755   ble .L7841
23756   ldr lr, [sp, #4]
23757   add r3, r6, r7
23758   cmp lr, r3
23759   bhi .L8047
23760   mov r3, r4, lsr #3
23761   ands  lr, r4, #7
23762   sub r0, r0, r3, asl #5
23763   bne .L8049
23764   ldr r2, [sp, #108]
23765   ldr r8, [sp, #84]
23766 .L8051:
23767   movs  r7, r2, lsr #3
23768   beq .L8068
23769   mov r5, r8
23770   mov lr, r0
23771   mov r6, #0
23772 .L8070:
23773   ldr r4, [lr, #0]
23774   cmp r4, #0
23775   beq .L8071
23776   ands  r3, r4, #15
23777   ldrne ip, [sp, #24]
23778   orrne r3, r1, r3
23779   orrne r3, r3, ip
23780   strneh  r3, [r5, #14] @ movhi
23781   mov r3, r4, lsr #4
23782   ands  r3, r3, #15
23783   ldrne ip, [sp, #24]
23784   orrne r3, r1, r3
23785   orrne r3, r3, ip
23786   strneh  r3, [r5, #12] @ movhi
23787   mov r3, r4, lsr #8
23788   ands  r3, r3, #15
23789   ldrne ip, [sp, #24]
23790   orrne r3, r1, r3
23791   orrne r3, r3, ip
23792   strneh  r3, [r5, #10] @ movhi
23793   mov r3, r4, lsr #12
23794   ands  r3, r3, #15
23795   ldrne ip, [sp, #24]
23796   orrne r3, r1, r3
23797   orrne r3, r3, ip
23798   strneh  r3, [r5, #8]  @ movhi
23799   mov r3, r4, lsr #16
23800   ands  r3, r3, #15
23801   ldrne ip, [sp, #24]
23802   orrne r3, r1, r3
23803   orrne r3, r3, ip
23804   strneh  r3, [r5, #6]  @ movhi
23805   mov r3, r4, lsr #20
23806   ands  r3, r3, #15
23807   ldrne ip, [sp, #24]
23808   orrne r3, r1, r3
23809   orrne r3, r3, ip
23810   strneh  r3, [r5, #4]  @ movhi
23811   mov r3, r4, lsr #24
23812   ands  r3, r3, #15
23813   ldrne ip, [sp, #24]
23814   orrne r3, r1, r3
23815   orrne r3, r3, ip
23816   strneh  r3, [r5, #2]  @ movhi
23817   movs  r3, r4, lsr #28
23818   ldrne r4, [sp, #24]
23819   orrne r3, r1, r3
23820   orrne r3, r3, r4
23821   strneh  r3, [r5, #0]  @ movhi
23822 .L8071:
23823   add r6, r6, #1
23824   cmp r6, r7
23825   sub lr, lr, #32
23826   add r5, r5, #16
23827   bne .L8070
23828   rsb r3, r7, r7, asl #27
23829   add r0, r0, r3, asl #5
23830   add r8, r8, r7, asl #4
23831 .L8068:
23832   ands  lr, r2, #7
23833   beq .L7841
23834   ldr r0, [r0, #0]
23835   mov ip, #0
23836 .L8090:
23837   movs  r3, r0, lsr #28
23838   ldr r5, [sp, #24]
23839   orr r3, r1, r3
23840   mov r2, ip, asl #1
23841   orr r3, r3, r5
23842   add ip, ip, #1
23843   strneh  r3, [r2, r8]  @ movhi
23844   cmp ip, lr
23845   mov r0, r0, asl #4
23846   bne .L8090
23847   b .L7841
23848 .L8641:
23849   ldr r3, [sp, #8]
23850   rsb r4, r6, r3
23851   rsb r5, r4, r7
23852   cmp r5, #0
23853   ble .L7841
23854   add r3, r6, r7
23855   ldr r6, [sp, #4]
23856   cmp r6, r3
23857   bhi .L7917
23858   mov r3, r4, lsr #3
23859   mov r2, r3, asl #5
23860   ands  r3, r4, #7
23861   add r5, r0, r2
23862   bne .L7919
23863   ldr r7, [sp, #108]
23864   ldr r6, [sp, #84]
23865 .L7921:
23866   movs  r4, r7, lsr #3
23867   beq .L7938
23868   mov ip, r6
23869   mov r0, r5
23870   mov lr, #0
23871 .L7940:
23872   ldr r2, [r0, #0]
23873   cmp r2, #0
23874   beq .L7941
23875   ands  r3, r2, #15
23876   ldrne r8, [sp, #24]
23877   orrne r3, r1, r3
23878   orrne r3, r3, r8
23879   strneh  r3, [ip, #0]  @ movhi
23880   mov r3, r2, lsr #4
23881   ands  r3, r3, #15
23882   ldrne r8, [sp, #24]
23883   orrne r3, r1, r3
23884   orrne r3, r3, r8
23885   strneh  r3, [ip, #2]  @ movhi
23886   mov r3, r2, lsr #8
23887   ands  r3, r3, #15
23888   ldrne r8, [sp, #24]
23889   orrne r3, r1, r3
23890   orrne r3, r3, r8
23891   strneh  r3, [ip, #4]  @ movhi
23892   mov r3, r2, lsr #12
23893   ands  r3, r3, #15
23894   ldrne r8, [sp, #24]
23895   orrne r3, r1, r3
23896   orrne r3, r3, r8
23897   strneh  r3, [ip, #6]  @ movhi
23898   mov r3, r2, lsr #16
23899   ands  r3, r3, #15
23900   ldrne r8, [sp, #24]
23901   orrne r3, r1, r3
23902   orrne r3, r3, r8
23903   strneh  r3, [ip, #8]  @ movhi
23904   mov r3, r2, lsr #20
23905   ands  r3, r3, #15
23906   ldrne r8, [sp, #24]
23907   orrne r3, r1, r3
23908   orrne r3, r3, r8
23909   strneh  r3, [ip, #10] @ movhi
23910   mov r3, r2, lsr #24
23911   ands  r3, r3, #15
23912   ldrne r8, [sp, #24]
23913   orrne r3, r1, r3
23914   orrne r3, r3, r8
23915   strneh  r3, [ip, #12] @ movhi
23916   movs  r3, r2, lsr #28
23917   ldrne r2, [sp, #24]
23918   orrne r3, r1, r3
23919   orrne r3, r3, r2
23920   strneh  r3, [ip, #14] @ movhi
23921 .L7941:
23922   add lr, lr, #1
23923   cmp r4, lr
23924   add r0, r0, #32
23925   add ip, ip, #16
23926   bne .L7940
23927   add r5, r5, r4, asl #5
23928   add r6, r6, r4, asl #4
23929 .L7938:
23930   ands  lr, r7, #7
23931   beq .L7841
23932   ldr r2, [r5, #0]
23933   mov r0, #0
23934 .L7960:
23935   ands  r3, r2, #15
23936   ldr r4, [sp, #24]
23937   orr r3, r1, r3
23938   mov ip, r0, asl #1
23939   orr r3, r3, r4
23940   add r0, r0, #1
23941   strneh  r3, [ip, r6]  @ movhi
23942   cmp r0, lr
23943   mov r2, r2, lsr #4
23944   bne .L7960
23945   b .L7841
23946 .L8666:
23947   mov r6, #0
23948 .L7863:
23949   cmp r4, sl
23950   movcc r3, #0
23951   movcs r3, #1
23952   cmp r7, ip
23953   orrls r3, r3, #1
23954   cmp r3, #0
23955   beq .L8629
23956   b .L7841
23957 .L7864:
23958   cmp r4, sl
23959   cmpcc ip, r7
23960   bcs .L7841
23961 .L8629:
23962   and r3, r4, #7
23963   mov r2, ip, asr #3
23964   mov r3, r3, asl #3
23965   add r3, r3, r2, asl #6
23966   ldr r2, [sp, #100]
23967   ldr r0, [sp, #60]
23968   add r3, r3, r2
23969   mov r2, r4, asr #3
23970   mla r0, r2, r0, r3
23971   ldr r1, [sp, #44]
23972   add r6, r6, #1
23973   add r5, r5, r1
23974   and r1, ip, #7
23975   ldrb  r3, [r0, r1]  @ zero_extendqisi2
23976   ldr r0, [sp, #24]
23977   cmp r3, #0
23978   orr r3, r3, r0
23979   strneh  r3, [r8, #0]  @ movhi
23980   add lr, lr, fp
23981   cmp r9, r6
23982   mov r4, lr, asr #8
23983   mov ip, r5, asr #8
23984   add r8, r8, #2
23985   bgt .L7864
23986   b .L7841
23987 .L8125:
23988   cmp r5, #0
23989   beq .L7841
23990   ldr r7, [sp, #0]
23991   mov ip, #0
23992   add r2, r7, r6, asl #1
23993   b .L8155
23994 .L8650:
23995   sub r0, r0, #32
23996   add r2, r2, #16
23997 .L8155:
23998   ldr r4, [r0, #0]
23999   cmp r4, #0
24000   beq .L8156
24001   ands  r3, r4, #15
24002   ldrne r8, [sp, #24]
24003   orrne r3, r1, r3
24004   orrne r3, r3, r8
24005   strneh  r3, [r2, #14] @ movhi
24006   mov r3, r4, lsr #4
24007   ands  r3, r3, #15
24008   ldrne lr, [sp, #24]
24009   orrne r3, r1, r3
24010   orrne r3, r3, lr
24011   strneh  r3, [r2, #12] @ movhi
24012   mov r3, r4, lsr #8
24013   ands  r3, r3, #15
24014   ldrne r6, [sp, #24]
24015   orrne r3, r1, r3
24016   orrne r3, r3, r6
24017   strneh  r3, [r2, #10] @ movhi
24018   mov r3, r4, lsr #12
24019   ands  r3, r3, #15
24020   ldrne r7, [sp, #24]
24021   orrne r3, r1, r3
24022   orrne r3, r3, r7
24023   strneh  r3, [r2, #8]  @ movhi
24024   mov r3, r4, lsr #16
24025   ands  r3, r3, #15
24026   ldrne r8, [sp, #24]
24027   orrne r3, r1, r3
24028   orrne r3, r3, r8
24029   strneh  r3, [r2, #6]  @ movhi
24030   mov r3, r4, lsr #20
24031   ands  r3, r3, #15
24032   ldrne lr, [sp, #24]
24033   orrne r3, r1, r3
24034   orrne r3, r3, lr
24035   strneh  r3, [r2, #4]  @ movhi
24036   mov r3, r4, lsr #24
24037   ands  r3, r3, #15
24038   ldrne r6, [sp, #24]
24039   orrne r3, r1, r3
24040   orrne r3, r3, r6
24041   strneh  r3, [r2, #2]  @ movhi
24042   movs  r3, r4, lsr #28
24043   ldrne r7, [sp, #24]
24044   orrne r3, r1, r3
24045   orrne r3, r3, r7
24046   strneh  r3, [r2, #0]  @ movhi
24047 .L8156:
24048   add ip, ip, #1
24049   cmp r5, ip
24050   bne .L8650
24051   b .L7841
24052 .L8550:
24053   cmp r5, #0
24054   beq .L7841
24055   ldr r3, [sp, #0]
24056   mov ip, #0
24057   add r2, r3, r6, asl #1
24058   ldr r3, .L8668+28
24059   add r0, r0, r3
24060   b .L8594
24061 .L8651:
24062   sub r1, r1, #64
24063   add r2, r2, #16
24064 .L8594:
24065   ldr r4, [r0, #68]
24066   cmp r4, #0
24067   beq .L8595
24068   ands  r3, r4, #255
24069   ldrne r6, [sp, #24]
24070   orrne r3, r3, r6
24071   strneh  r3, [r2, #6]  @ movhi
24072   mov r3, r4, lsr #8
24073   ands  r3, r3, #255
24074   ldrne r7, [sp, #24]
24075   orrne r3, r3, r7
24076   strneh  r3, [r2, #4]  @ movhi
24077   mov r3, r4, lsr #16
24078   ands  r3, r3, #255
24079   ldrne r8, [sp, #24]
24080   orrne r3, r3, r8
24081   strneh  r3, [r2, #2]  @ movhi
24082   movs  r3, r4, lsr #24
24083   ldrne lr, [sp, #24]
24084   orrne r3, r3, lr
24085   strneh  r3, [r2, #0]  @ movhi
24086 .L8595:
24087   ldr r4, [r1, #0]
24088   cmp r4, #0
24089   beq .L8604
24090   ands  r3, r4, #255
24091   ldrne r6, [sp, #24]
24092   orrne r3, r3, r6
24093   strneh  r3, [r2, #14] @ movhi
24094   mov r3, r4, lsr #8
24095   ands  r3, r3, #255
24096   ldrne r7, [sp, #24]
24097   orrne r3, r3, r7
24098   strneh  r3, [r2, #12] @ movhi
24099   mov r3, r4, lsr #16
24100   ands  r3, r3, #255
24101   ldrne r8, [sp, #24]
24102   orrne r3, r3, r8
24103   strneh  r3, [r2, #10] @ movhi
24104   movs  r3, r4, lsr #24
24105   ldrne lr, [sp, #24]
24106   orrne r3, r3, lr
24107   strneh  r3, [r2, #8]  @ movhi
24108 .L8604:
24109   add ip, ip, #1
24110   cmp r5, ip
24111   sub r0, r0, #64
24112   bne .L8651
24113   b .L7841
24114 .L7995:
24115   cmp r5, #0
24116   beq .L7841
24117   ldr r7, [sp, #0]
24118   mov ip, #0
24119   add r2, r7, r6, asl #1
24120   b .L8025
24121 .L8652:
24122   add r0, r0, #32
24123   add r2, r2, #16
24124 .L8025:
24125   ldr r4, [r0, #0]
24126   cmp r4, #0
24127   beq .L8026
24128   ands  r3, r4, #15
24129   ldrne r8, [sp, #24]
24130   orrne r3, r1, r3
24131   orrne r3, r3, r8
24132   strneh  r3, [r2, #0]  @ movhi
24133   mov r3, r4, lsr #4
24134   ands  r3, r3, #15
24135   ldrne lr, [sp, #24]
24136   orrne r3, r1, r3
24137   orrne r3, r3, lr
24138   strneh  r3, [r2, #2]  @ movhi
24139   mov r3, r4, lsr #8
24140   ands  r3, r3, #15
24141   ldrne r6, [sp, #24]
24142   orrne r3, r1, r3
24143   orrne r3, r3, r6
24144   strneh  r3, [r2, #4]  @ movhi
24145   mov r3, r4, lsr #12
24146   ands  r3, r3, #15
24147   ldrne r7, [sp, #24]
24148   orrne r3, r1, r3
24149   orrne r3, r3, r7
24150   strneh  r3, [r2, #6]  @ movhi
24151   mov r3, r4, lsr #16
24152   ands  r3, r3, #15
24153   ldrne r8, [sp, #24]
24154   orrne r3, r1, r3
24155   orrne r3, r3, r8
24156   strneh  r3, [r2, #8]  @ movhi
24157   mov r3, r4, lsr #20
24158   ands  r3, r3, #15
24159   ldrne lr, [sp, #24]
24160   orrne r3, r1, r3
24161   orrne r3, r3, lr
24162   strneh  r3, [r2, #10] @ movhi
24163   mov r3, r4, lsr #24
24164   ands  r3, r3, #15
24165   ldrne r6, [sp, #24]
24166   orrne r3, r1, r3
24167   orrne r3, r3, r6
24168   strneh  r3, [r2, #12] @ movhi
24169   movs  r3, r4, lsr #28
24170   ldrne r7, [sp, #24]
24171   orrne r3, r1, r3
24172   orrne r3, r3, r7
24173   strneh  r3, [r2, #14] @ movhi
24174 .L8026:
24175   add ip, ip, #1
24176   cmp r5, ip
24177   bne .L8652
24178   b .L7841
24179 .L8330:
24180   cmp lr, #0
24181   beq .L7841
24182   ldr r3, [sp, #0]
24183   mov ip, #0
24184   add r2, r3, r6, asl #1
24185   ldr r3, .L8668+32
24186   add r0, r0, r3
24187   b .L8374
24188 .L8653:
24189   add r1, r1, #64
24190   add r2, r2, #16
24191 .L8374:
24192   ldr r4, [r1, #0]
24193   cmp r4, #0
24194   beq .L8375
24195   ands  r3, r4, #255
24196   ldrne r5, [sp, #24]
24197   orrne r3, r3, r5
24198   strneh  r3, [r2, #0]  @ movhi
24199   mov r3, r4, lsr #8
24200   ands  r3, r3, #255
24201   ldrne r6, [sp, #24]
24202   orrne r3, r3, r6
24203   strneh  r3, [r2, #2]  @ movhi
24204   mov r3, r4, lsr #16
24205   ands  r3, r3, #255
24206   ldrne r7, [sp, #24]
24207   orrne r3, r3, r7
24208   strneh  r3, [r2, #4]  @ movhi
24209   movs  r3, r4, lsr #24
24210   ldrne r8, [sp, #24]
24211   orrne r3, r3, r8
24212   strneh  r3, [r2, #6]  @ movhi
24213 .L8375:
24214   ldr r4, [r0, #-60]
24215   cmp r4, #0
24216   beq .L8384
24217   ands  r3, r4, #255
24218   ldrne r5, [sp, #24]
24219   orrne r3, r3, r5
24220   strneh  r3, [r2, #8]  @ movhi
24221   mov r3, r4, lsr #8
24222   ands  r3, r3, #255
24223   ldrne r6, [sp, #24]
24224   orrne r3, r3, r6
24225   strneh  r3, [r2, #10] @ movhi
24226   mov r3, r4, lsr #16
24227   ands  r3, r3, #255
24228   ldrne r7, [sp, #24]
24229   orrne r3, r3, r7
24230   strneh  r3, [r2, #12] @ movhi
24231   movs  r3, r4, lsr #24
24232   ldrne r8, [sp, #24]
24233   orrne r3, r3, r8
24234   strneh  r3, [r2, #14] @ movhi
24235 .L8384:
24236   add ip, ip, #1
24237   cmp lr, ip
24238   add r0, r0, #64
24239   bne .L8653
24240   b .L7841
24241 .L8177:
24242   ands  r2, r0, #7
24243   mov r3, r0, lsr #3
24244   add r0, r1, r3, asl #6
24245   ldreq r1, [sp, #84]
24246   beq .L8281
24247   cmp r2, #3
24248   rsb lr, r2, #8
24249   bhi .L8654
24250   subs  r5, lr, #4
24251   ldr r1, [r0, #0]
24252   ldreq r1, [sp, #84]
24253   beq .L8294
24254   mov r3, r2, asl #3
24255   mov r2, r1, lsr r3
24256   mov ip, #0
24257 .L8295:
24258   ands  r3, r2, #255
24259   ldr r1, [sp, #24]
24260   ldrne r6, [sp, #84]
24261   orr r3, r3, r1
24262   mov r1, ip, asl #1
24263   add ip, ip, #1
24264   strneh  r3, [r1, r6]  @ movhi
24265   cmp ip, r5
24266   mov r2, r2, lsr #8
24267   bne .L8295
24268   ldr r7, [sp, #84]
24269   add r3, r7, lr, asl #1
24270   sub r1, r3, #8
24271 .L8294:
24272   ldr r2, [r0, #4]
24273   cmp r2, #0
24274   beq .L8300
24275   ands  r3, r2, #255
24276   ldrne r8, [sp, #24]
24277   orrne r3, r3, r8
24278   strneh  r3, [r1, #0]  @ movhi
24279   mov r3, r2, lsr #8
24280   ands  r3, r3, #255
24281   ldrne ip, [sp, #24]
24282   orrne r3, r3, ip
24283   strneh  r3, [r1, #2]  @ movhi
24284   mov r3, r2, lsr #16
24285   ands  r3, r3, #255
24286   ldrne lr, [sp, #24]
24287   orrne r3, r3, lr
24288   strneh  r3, [r1, #4]  @ movhi
24289   movs  r3, r2, lsr #24
24290   ldrne r2, [sp, #24]
24291   orrne r3, r3, r2
24292   strneh  r3, [r1, #6]  @ movhi
24293 .L8300:
24294   add r1, r1, #8
24295 .L8286:
24296   add r0, r0, #64
24297 .L8281:
24298   movs  lr, r4, lsr #3
24299   beq .L7841
24300   mov ip, #0
24301   b .L8310
24302 .L8655:
24303   add r0, r0, #64
24304   add r1, r1, #16
24305 .L8310:
24306   ldr r2, [r0, #0]
24307   cmp r2, #0
24308   beq .L8311
24309   ands  r3, r2, #255
24310   ldrne r4, [sp, #24]
24311   orrne r3, r3, r4
24312   strneh  r3, [r1, #0]  @ movhi
24313   mov r3, r2, lsr #8
24314   ands  r3, r3, #255
24315   ldrne r5, [sp, #24]
24316   orrne r3, r3, r5
24317   strneh  r3, [r1, #2]  @ movhi
24318   mov r3, r2, lsr #16
24319   ands  r3, r3, #255
24320   ldrne r6, [sp, #24]
24321   orrne r3, r3, r6
24322   strneh  r3, [r1, #4]  @ movhi
24323   movs  r3, r2, lsr #24
24324   ldrne r7, [sp, #24]
24325   orrne r3, r3, r7
24326   strneh  r3, [r1, #6]  @ movhi
24327 .L8311:
24328   ldr r2, [r0, #4]
24329   cmp r2, #0
24330   beq .L8320
24331   ands  r3, r2, #255
24332   ldrne r8, [sp, #24]
24333   orrne r3, r3, r8
24334   strneh  r3, [r1, #8]  @ movhi
24335   mov r3, r2, lsr #8
24336   ands  r3, r3, #255
24337   ldrne r4, [sp, #24]
24338   orrne r3, r3, r4
24339   strneh  r3, [r1, #10] @ movhi
24340   mov r3, r2, lsr #16
24341   ands  r3, r3, #255
24342   ldrne r5, [sp, #24]
24343   orrne r3, r3, r5
24344   strneh  r3, [r1, #12] @ movhi
24345   movs  r3, r2, lsr #24
24346   ldrne r6, [sp, #24]
24347   orrne r3, r3, r6
24348   strneh  r3, [r1, #14] @ movhi
24349 .L8320:
24350   add ip, ip, #1
24351   cmp lr, ip
24352   bne .L8655
24353   b .L7841
24354 .L8047:
24355   ands  r2, r4, #7
24356   mov r3, r4, lsr #3
24357   sub r0, r0, r3, asl #5
24358   ldreq r5, [sp, #84]
24359   beq .L8096
24360   rsbs  lr, r2, #8
24361   ldr r4, [r0, #0]
24362   ldreq r5, [sp, #84]
24363   beq .L8099
24364   mov r3, r2, asl #2
24365   mov r4, r4, asl r3
24366   mov r6, #0
24367 .L8100:
24368   movs  r3, r4, lsr #28
24369   ldr r7, [sp, #24]
24370   ldrne r8, [sp, #84]
24371   orr r3, r1, r3
24372   mov r5, r6, asl #1
24373   orr r3, r3, r7
24374   add r6, r6, #1
24375   strneh  r3, [r5, r8]  @ movhi
24376   cmp lr, r6
24377   mov r4, r4, asl #4
24378   bne .L8100
24379   ldr r2, [sp, #84]
24380   add r5, r2, lr, asl #1
24381 .L8099:
24382   sub r0, r0, #32
24383 .L8096:
24384   movs  ip, ip, lsr #3
24385   beq .L7841
24386   mov r2, #0
24387   b .L8106
24388 .L8656:
24389   sub r0, r0, #32
24390   add r5, r5, #16
24391 .L8106:
24392   ldr r4, [r0, #0]
24393   cmp r4, #0
24394   beq .L8107
24395   ands  r3, r4, #15
24396   ldrne r6, [sp, #24]
24397   orrne r3, r1, r3
24398   orrne r3, r3, r6
24399   strneh  r3, [r5, #14] @ movhi
24400   mov r3, r4, lsr #4
24401   ands  r3, r3, #15
24402   ldrne r7, [sp, #24]
24403   orrne r3, r1, r3
24404   orrne r3, r3, r7
24405   strneh  r3, [r5, #12] @ movhi
24406   mov r3, r4, lsr #8
24407   ands  r3, r3, #15
24408   ldrne r8, [sp, #24]
24409   orrne r3, r1, r3
24410   orrne r3, r3, r8
24411   strneh  r3, [r5, #10] @ movhi
24412   mov r3, r4, lsr #12
24413   ands  r3, r3, #15
24414   ldrne lr, [sp, #24]
24415   orrne r3, r1, r3
24416   orrne r3, r3, lr
24417   strneh  r3, [r5, #8]  @ movhi
24418   mov r3, r4, lsr #16
24419   ands  r3, r3, #15
24420   ldrne r6, [sp, #24]
24421   orrne r3, r1, r3
24422   orrne r3, r3, r6
24423   strneh  r3, [r5, #6]  @ movhi
24424   mov r3, r4, lsr #20
24425   ands  r3, r3, #15
24426   ldrne r7, [sp, #24]
24427   orrne r3, r1, r3
24428   orrne r3, r3, r7
24429   strneh  r3, [r5, #4]  @ movhi
24430   mov r3, r4, lsr #24
24431   ands  r3, r3, #15
24432   ldrne r8, [sp, #24]
24433   orrne r3, r1, r3
24434   orrne r3, r3, r8
24435   strneh  r3, [r5, #2]  @ movhi
24436   movs  r3, r4, lsr #28
24437   ldrne lr, [sp, #24]
24438   orrne r3, r1, r3
24439   orrne r3, r3, lr
24440   strneh  r3, [r5, #0]  @ movhi
24441 .L8107:
24442   add r2, r2, #1
24443   cmp r2, ip
24444   bne .L8656
24445   b .L7841
24446 .L8397:
24447   mov r3, r0, lsr #3
24448   ands  ip, r0, #7
24449   sub r2, r1, r3, asl #6
24450   ldreq r0, [sp, #84]
24451   beq .L8501
24452   cmp ip, #3
24453   rsb lr, ip, #8
24454   bhi .L8657
24455   subs  r5, lr, #4
24456   ldr r1, [r2, #4]
24457   ldreq r0, [sp, #84]
24458   beq .L8514
24459   mov r3, ip, asl #3
24460   sub r3, r3, #32
24461   mov r1, r1, asl r3
24462   mov ip, #0
24463 .L8515:
24464   movs  r3, r1, lsr #24
24465   ldr r0, [sp, #24]
24466   ldrne r6, [sp, #84]
24467   orr r3, r3, r0
24468   mov r0, ip, asl #1
24469   add ip, ip, #1
24470   strneh  r3, [r0, r6]  @ movhi
24471   cmp r5, ip
24472   mov r1, r1, asl #8
24473   bne .L8515
24474   ldr r7, [sp, #84]
24475   add r3, r7, lr, asl #1
24476   sub r0, r3, #8
24477 .L8514:
24478   ldr r1, [r2, #0]
24479   cmp r1, #0
24480   beq .L8520
24481   ands  r3, r1, #255
24482   ldrne r8, [sp, #24]
24483   orrne r3, r3, r8
24484   strneh  r3, [r0, #6]  @ movhi
24485   mov r3, r1, lsr #8
24486   ands  r3, r3, #255
24487   ldrne ip, [sp, #24]
24488   orrne r3, r3, ip
24489   strneh  r3, [r0, #4]  @ movhi
24490   mov r3, r1, lsr #16
24491   ands  r3, r3, #255
24492   ldrne lr, [sp, #24]
24493   orrne r3, r3, lr
24494   strneh  r3, [r0, #2]  @ movhi
24495   movs  r3, r1, lsr #24
24496   ldrne r1, [sp, #24]
24497   orrne r3, r3, r1
24498   strneh  r3, [r0, #0]  @ movhi
24499 .L8520:
24500   add r0, r0, #8
24501 .L8506:
24502   sub r2, r2, #64
24503 .L8501:
24504   movs  lr, r4, lsr #3
24505   beq .L7841
24506   mov ip, #0
24507   b .L8530
24508 .L8658:
24509   sub r2, r2, #64
24510   add r0, r0, #16
24511 .L8530:
24512   ldr r1, [r2, #4]
24513   cmp r1, #0
24514   beq .L8531
24515   ands  r3, r1, #255
24516   ldrne r4, [sp, #24]
24517   orrne r3, r3, r4
24518   strneh  r3, [r0, #6]  @ movhi
24519   mov r3, r1, lsr #8
24520   ands  r3, r3, #255
24521   ldrne r5, [sp, #24]
24522   orrne r3, r3, r5
24523   strneh  r3, [r0, #4]  @ movhi
24524   mov r3, r1, lsr #16
24525   ands  r3, r3, #255
24526   ldrne r6, [sp, #24]
24527   orrne r3, r3, r6
24528   strneh  r3, [r0, #2]  @ movhi
24529   movs  r3, r1, lsr #24
24530   ldrne r7, [sp, #24]
24531   orrne r3, r3, r7
24532   strneh  r3, [r0, #0]  @ movhi
24533 .L8531:
24534   ldr r1, [r2, #0]
24535   cmp r1, #0
24536   beq .L8540
24537   ands  r3, r1, #255
24538   ldrne r8, [sp, #24]
24539   orrne r3, r3, r8
24540   strneh  r3, [r0, #14] @ movhi
24541   mov r3, r1, lsr #8
24542   ands  r3, r3, #255
24543   ldrne r4, [sp, #24]
24544   orrne r3, r3, r4
24545   strneh  r3, [r0, #12] @ movhi
24546   mov r3, r1, lsr #16
24547   ands  r3, r3, #255
24548   ldrne r5, [sp, #24]
24549   orrne r3, r3, r5
24550   strneh  r3, [r0, #10] @ movhi
24551   movs  r3, r1, lsr #24
24552   ldrne r6, [sp, #24]
24553   orrne r3, r3, r6
24554   strneh  r3, [r0, #8]  @ movhi
24555 .L8540:
24556   add ip, ip, #1
24557   cmp ip, lr
24558   bne .L8658
24559   b .L7841
24560 .L7917:
24561   mov r3, r4, lsr #3
24562   mov r2, r3, asl #5
24563   ands  r3, r4, #7
24564   add lr, r0, r2
24565   ldreq ip, [sp, #84]
24566   beq .L7966
24567   rsbs  r4, r3, #8
24568   ldr r0, [r0, r2]
24569   ldreq ip, [sp, #84]
24570   beq .L7969
24571   mov r3, r3, asl #2
24572   mov r0, r0, lsr r3
24573   mov ip, #0
24574 .L7970:
24575   ands  r3, r0, #15
24576   ldr r6, [sp, #24]
24577   ldrne r7, [sp, #84]
24578   orr r3, r1, r3
24579   mov r2, ip, asl #1
24580   orr r3, r3, r6
24581   add ip, ip, #1
24582   strneh  r3, [r2, r7]  @ movhi
24583   cmp ip, r4
24584   mov r0, r0, lsr #4
24585   bne .L7970
24586   ldr r8, [sp, #84]
24587   add ip, r8, r4, asl #1
24588 .L7969:
24589   add lr, lr, #32
24590 .L7966:
24591   movs  r4, r5, lsr #3
24592   beq .L7841
24593   mov r0, #0
24594   b .L7976
24595 .L8659:
24596   add lr, lr, #32
24597   add ip, ip, #16
24598 .L7976:
24599   ldr r2, [lr, #0]
24600   cmp r2, #0
24601   beq .L7977
24602   ands  r3, r2, #15
24603   ldrne r5, [sp, #24]
24604   orrne r3, r1, r3
24605   orrne r3, r3, r5
24606   strneh  r3, [ip, #0]  @ movhi
24607   mov r3, r2, lsr #4
24608   ands  r3, r3, #15
24609   ldrne r6, [sp, #24]
24610   orrne r3, r1, r3
24611   orrne r3, r3, r6
24612   strneh  r3, [ip, #2]  @ movhi
24613   mov r3, r2, lsr #8
24614   ands  r3, r3, #15
24615   ldrne r7, [sp, #24]
24616   orrne r3, r1, r3
24617   orrne r3, r3, r7
24618   strneh  r3, [ip, #4]  @ movhi
24619   mov r3, r2, lsr #12
24620   ands  r3, r3, #15
24621   ldrne r8, [sp, #24]
24622   orrne r3, r1, r3
24623   orrne r3, r3, r8
24624   strneh  r3, [ip, #6]  @ movhi
24625   mov r3, r2, lsr #16
24626   ands  r3, r3, #15
24627   ldrne r5, [sp, #24]
24628   orrne r3, r1, r3
24629   orrne r3, r3, r5
24630   strneh  r3, [ip, #8]  @ movhi
24631   mov r3, r2, lsr #20
24632   ands  r3, r3, #15
24633   ldrne r6, [sp, #24]
24634   orrne r3, r1, r3
24635   orrne r3, r3, r6
24636   strneh  r3, [ip, #10] @ movhi
24637   mov r3, r2, lsr #24
24638   ands  r3, r3, #15
24639   ldrne r7, [sp, #24]
24640   orrne r3, r1, r3
24641   orrne r3, r3, r7
24642   strneh  r3, [ip, #12] @ movhi
24643   movs  r3, r2, lsr #28
24644   ldrne r8, [sp, #24]
24645   orrne r3, r1, r3
24646   orrne r3, r3, r8
24647   strneh  r3, [ip, #14] @ movhi
24648 .L7977:
24649   add r0, r0, #1
24650   cmp r0, r4
24651   bne .L8659
24652   b .L7841
24653 .L8179:
24654   ldr r0, [sp, #108]
24655   rsb lr, ip, #8
24656   cmp r0, lr
24657   blt .L8660
24658   cmp ip, #3
24659   bls .L8212
24660   cmp lr, #0
24661   ldr r2, [r6, #4]
24662   ldreq r4, [sp, #84]
24663   beq .L8216
24664   mov r3, ip, asl #3
24665   sub r3, r3, #32
24666   mov r1, r2, lsr r3
24667   mov r0, #0
24668 .L8217:
24669   ands  r3, r1, #255
24670   ldr r8, [sp, #24]
24671   ldrne ip, [sp, #84]
24672   mov r2, r0, asl #1
24673   orr r3, r3, r8
24674   add r0, r0, #1
24675   strneh  r3, [r2, ip]  @ movhi
24676   cmp lr, r0
24677   mov r1, r1, lsr #8
24678   bne .L8217
24679   ldr r0, [sp, #84]
24680   add r4, r0, lr, asl #1
24681 .L8216:
24682   ldr r3, [sp, #108]
24683   add r6, r6, #64
24684   rsb r5, lr, r3
24685   b .L8181
24686 .L8049:
24687   ldr r2, [sp, #108]
24688   rsb r6, lr, #8
24689   cmp r2, r6
24690   blt .L8661
24691   cmp r6, #0
24692   ldr r2, [r0, #0]
24693   ldreq r8, [sp, #84]
24694   beq .L8062
24695   mov r3, lr, asl #2
24696   mov lr, r2, asl r3
24697   mov r5, #0
24698 .L8063:
24699   movs  r3, lr, lsr #28
24700   ldr r7, [sp, #24]
24701   ldrne r8, [sp, #84]
24702   orr r3, r1, r3
24703   mov r4, r5, asl #1
24704   orr r3, r3, r7
24705   add r5, r5, #1
24706   strneh  r3, [r4, r8]  @ movhi
24707   cmp r6, r5
24708   mov lr, lr, asl #4
24709   bne .L8063
24710   ldr ip, [sp, #84]
24711   add r8, ip, r6, asl #1
24712 .L8062:
24713   ldr lr, [sp, #108]
24714   sub r0, r0, #32
24715   rsb r2, r6, lr
24716   b .L8051
24717 .L7919:
24718   ldr r7, [sp, #108]
24719   rsb lr, r3, #8
24720   cmp r7, lr
24721   blt .L8662
24722   cmp lr, #0
24723   ldr r2, [r5, #0]
24724   ldreq r6, [sp, #84]
24725   beq .L7932
24726   mov r3, r3, asl #2
24727   mov r2, r2, lsr r3
24728   mov ip, #0
24729 .L7933:
24730   ands  r3, r2, #15
24731   ldr r4, [sp, #24]
24732   ldrne r6, [sp, #84]
24733   orr r3, r1, r3
24734   mov r0, ip, asl #1
24735   orr r3, r3, r4
24736   add ip, ip, #1
24737   strneh  r3, [r0, r6]  @ movhi
24738   cmp lr, ip
24739   mov r2, r2, lsr #4
24740   bne .L7933
24741   ldr r7, [sp, #84]
24742   add r6, r7, lr, asl #1
24743 .L7932:
24744   ldr r8, [sp, #108]
24745   add r5, r5, #32
24746   rsb r7, lr, r8
24747   b .L7921
24748 .L8399:
24749   ldr r0, [sp, #108]
24750   rsb lr, ip, #8
24751   cmp r0, lr
24752   blt .L8663
24753   cmp ip, #3
24754   bls .L8432
24755   cmp lr, #0
24756   ldr r2, [r6, #0]
24757   ldreq r4, [sp, #84]
24758   beq .L8436
24759   mov r3, ip, asl #3
24760   sub r3, r3, #32
24761   mov r2, r2, asl r3
24762   mov r0, #0
24763 .L8437:
24764   movs  r3, r2, lsr #24
24765   ldr r8, [sp, #24]
24766   ldrne ip, [sp, #84]
24767   mov r1, r0, asl #1
24768   orr r3, r3, r8
24769   add r0, r0, #1
24770   strneh  r3, [r1, ip]  @ movhi
24771   cmp lr, r0
24772   mov r2, r2, asl #8
24773   bne .L8437
24774   ldr r0, [sp, #84]
24775   add r4, r0, lr, asl #1
24776 .L8436:
24777   ldr r3, [sp, #108]
24778   sub r6, r6, #64
24779   rsb r5, lr, r3
24780   b .L8401
24781 .L8663:
24782   cmp r0, #0
24783   ble .L7841
24784   cmp ip, #3
24785   bls .L8405
24786   ldr r2, [r6, #0]
24787   mov r3, ip, asl #3
24788   sub r3, r3, #32
24789   mov r2, r2, asl r3
24790   mov r0, #0
24791 .L8408:
24792   movs  r3, r2, lsr #24
24793   ldr r1, [sp, #24]
24794   ldrne r4, [sp, #84]
24795   ldr r5, [sp, #108]
24796   orr r3, r3, r1
24797   mov r1, r0, asl #1
24798   add r0, r0, #1
24799   strneh  r3, [r1, r4]  @ movhi
24800   cmp r5, r0
24801   mov r2, r2, asl #8
24802   bne .L8408
24803   b .L7841
24804 .L8662:
24805   cmp r7, #0
24806   ble .L7841
24807   ldr r2, [r0, r2]
24808   mov r3, r3, asl #2
24809   mov r0, r2, lsr r3
24810   mov ip, #0
24811 .L7926:
24812   ands  r3, r0, #15
24813   ldr r8, [sp, #24]
24814   ldrne lr, [sp, #84]
24815   orr r3, r1, r3
24816   mov r2, ip, asl #1
24817   orr r3, r3, r8
24818   strneh  r3, [r2, lr]  @ movhi
24819   ldr r2, [sp, #108]
24820   add ip, ip, #1
24821   cmp r2, ip
24822   mov r0, r0, lsr #4
24823   bne .L7926
24824   b .L7841
24825 .L8661:
24826   cmp r2, #0
24827   ble .L7841
24828   ldr r2, [r0, #0]
24829   mov r3, lr, asl #2
24830   mov r0, r2, asl r3
24831   mov ip, #0
24832 .L8056:
24833   movs  r3, r0, lsr #28
24834   ldr r4, [sp, #24]
24835   ldrne r5, [sp, #84]
24836   orr r3, r1, r3
24837   ldr r6, [sp, #108]
24838   mov r2, ip, asl #1
24839   orr r3, r3, r4
24840   add ip, ip, #1
24841   strneh  r3, [r2, r5]  @ movhi
24842   cmp r6, ip
24843   mov r0, r0, asl #4
24844   bne .L8056
24845   b .L7841
24846 .L8657:
24847   cmp lr, #0
24848   ldr r1, [r2, #0]
24849   ldreq r0, [sp, #84]
24850   beq .L8506
24851   mov r3, ip, asl #3
24852   sub r3, r3, #32
24853   mov r1, r1, asl r3
24854   mov ip, #0
24855 .L8507:
24856   movs  r3, r1, lsr #24
24857   ldr r6, [sp, #24]
24858   ldrne r7, [sp, #84]
24859   mov r0, ip, asl #1
24860   orr r3, r3, r6
24861   add ip, ip, #1
24862   strneh  r3, [r0, r7]  @ movhi
24863   cmp ip, lr
24864   mov r1, r1, asl #8
24865   bne .L8507
24866   ldr r8, [sp, #84]
24867   sub r2, r2, #64
24868   add r0, r8, lr, asl #1
24869   b .L8501
24870 .L8654:
24871   cmp lr, #0
24872   ldr r1, [r0, #4]
24873   ldreq r1, [sp, #84]
24874   beq .L8286
24875   mov r3, r2, asl #3
24876   sub r3, r3, #32
24877   mov r2, r1, lsr r3
24878   mov ip, #0
24879 .L8287:
24880   ands  r3, r2, #255
24881   ldr r6, [sp, #24]
24882   ldrne r7, [sp, #84]
24883   mov r1, ip, asl #1
24884   orr r3, r3, r6
24885   add ip, ip, #1
24886   strneh  r3, [r1, r7]  @ movhi
24887   cmp ip, lr
24888   mov r2, r2, lsr #8
24889   bne .L8287
24890   ldr r8, [sp, #84]
24891   add r0, r0, #64
24892   add r1, r8, lr, asl #1
24893   b .L8281
24894 .L8660:
24895   cmp r0, #0
24896   ble .L7841
24897   cmp ip, #3
24898   bls .L8185
24899   ldr r2, [r6, #4]
24900   mov r3, ip, asl #3
24901   sub r3, r3, #32
24902   mov r1, r2, lsr r3
24903   mov r0, #0
24904 .L8188:
24905   ands  r3, r1, #255
24906   ldr r2, [sp, #24]
24907   ldrne r4, [sp, #84]
24908   ldr r5, [sp, #108]
24909   orr r3, r3, r2
24910   mov r2, r0, asl #1
24911   add r0, r0, #1
24912   strneh  r3, [r2, r4]  @ movhi
24913   cmp r5, r0
24914   mov r1, r1, lsr #8
24915   bne .L8188
24916   b .L7841
24917 .L8667:
24918   mov r6, #0
24919   b .L7899
24920 .L8432:
24921   subs  r4, lr, #4
24922   ldr r2, [r6, #4]
24923   ldreq r1, [sp, #84]
24924   beq .L8444
24925   mov r3, ip, asl #3
24926   sub r3, r3, #32
24927   mov r2, r2, asl r3
24928   mov r0, #0
24929 .L8445:
24930   movs  r3, r2, lsr #24
24931   ldr r1, [sp, #24]
24932   ldrne r5, [sp, #84]
24933   orr r3, r3, r1
24934   mov r1, r0, asl #1
24935   add r0, r0, #1
24936   strneh  r3, [r1, r5]  @ movhi
24937   cmp r4, r0
24938   mov r2, r2, asl #8
24939   bne .L8445
24940   ldr r7, [sp, #84]
24941   add r3, r7, lr, asl #1
24942   sub r1, r3, #8
24943 .L8444:
24944   ldr r2, [r6, #0]
24945   cmp r2, #0
24946   beq .L8450
24947   ands  r3, r2, #255
24948   ldrne r8, [sp, #24]
24949   orrne r3, r3, r8
24950   strneh  r3, [r1, #6]  @ movhi
24951   mov r3, r2, lsr #8
24952   ands  r3, r3, #255
24953   ldrne ip, [sp, #24]
24954   orrne r3, r3, ip
24955   strneh  r3, [r1, #4]  @ movhi
24956   mov r3, r2, lsr #16
24957   ands  r3, r3, #255
24958   ldrne r0, [sp, #24]
24959   orrne r3, r3, r0
24960   strneh  r3, [r1, #2]  @ movhi
24961   movs  r3, r2, lsr #24
24962   ldrne r2, [sp, #24]
24963   orrne r3, r3, r2
24964   strneh  r3, [r1, #0]  @ movhi
24965 .L8450:
24966   add r4, r1, #8
24967   b .L8436
24968 .L8212:
24969   subs  r4, lr, #4
24970   ldr r2, [r6, #0]
24971   ldreq r1, [sp, #84]
24972   beq .L8224
24973   mov r3, ip, asl #3
24974   mov r1, r2, lsr r3
24975   mov r0, #0
24976 .L8225:
24977   ands  r3, r1, #255
24978   ldr r2, [sp, #24]
24979   ldrne r5, [sp, #84]
24980   orr r3, r3, r2
24981   mov r2, r0, asl #1
24982   add r0, r0, #1
24983   strneh  r3, [r2, r5]  @ movhi
24984   cmp r0, r4
24985   mov r1, r1, lsr #8
24986   bne .L8225
24987   ldr r7, [sp, #84]
24988   add r3, r7, lr, asl #1
24989   sub r1, r3, #8
24990 .L8224:
24991   ldr r2, [r6, #4]
24992   cmp r2, #0
24993   beq .L8230
24994   ands  r3, r2, #255
24995   ldrne r8, [sp, #24]
24996   orrne r3, r3, r8
24997   strneh  r3, [r1, #0]  @ movhi
24998   mov r3, r2, lsr #8
24999   ands  r3, r3, #255
25000   ldrne ip, [sp, #24]
25001   orrne r3, r3, ip
25002   strneh  r3, [r1, #2]  @ movhi
25003   mov r3, r2, lsr #16
25004   ands  r3, r3, #255
25005   ldrne r0, [sp, #24]
25006   orrne r3, r3, r0
25007   strneh  r3, [r1, #4]  @ movhi
25008   movs  r3, r2, lsr #24
25009   ldrne r2, [sp, #24]
25010   orrne r3, r3, r2
25011   strneh  r3, [r1, #6]  @ movhi
25012 .L8230:
25013   add r4, r1, #8
25014   b .L8216
25015 .L8665:
25016   ldr r5, [sp, #16]
25017   b .L8630
25018 .L8664:
25019   mov ip, fp
25020   b .L8628
25021 .L8405:
25022   ldr r7, [sp, #108]
25023   mov r3, ip, asl #3
25024   ldr r1, [r6, #4]
25025   add r2, r7, ip
25026   sub r3, r3, #32
25027   cmp r2, #4
25028   mov r1, r1, asl r3
25029   bhi .L8412
25030   cmp r7, #0
25031   movne r0, #0
25032   beq .L7841
25033 .L8428:
25034   movs  r3, r1, lsr #24
25035   ldr r5, [sp, #24]
25036   ldrne r6, [sp, #84]
25037   ldr r7, [sp, #108]
25038   mov r2, r0, asl #1
25039   orr r3, r3, r5
25040   add r0, r0, #1
25041   strneh  r3, [r2, r6]  @ movhi
25042   cmp r7, r0
25043   mov r1, r1, asl #8
25044   bne .L8428
25045   b .L7841
25046 .L8185:
25047   ldr r7, [sp, #108]
25048   ldr r3, [r6, #0]
25049   add r2, r7, ip
25050   cmp r2, #4
25051   mov r1, ip, asl #3
25052   mov r2, r3, lsr r1
25053   bhi .L8192
25054   cmp r7, #0
25055   movne r0, #0
25056   beq .L7841
25057 .L8208:
25058   ands  r3, r2, #255
25059   ldr r5, [sp, #24]
25060   ldrne r6, [sp, #84]
25061   ldr r7, [sp, #108]
25062   mov r1, r0, asl #1
25063   orr r3, r3, r5
25064   add r0, r0, #1
25065   strneh  r3, [r1, r6]  @ movhi
25066   cmp r7, r0
25067   mov r2, r2, lsr #8
25068   bne .L8208
25069   b .L7841
25070 .L8412:
25071   rsbs  ip, ip, #4
25072   ldreq lr, [sp, #84]
25073   beq .L8417
25074   mov r0, #0
25075 .L8418:
25076   movs  r3, r1, lsr #24
25077   ldr r8, [sp, #24]
25078   ldrne lr, [sp, #84]
25079   mov r2, r0, asl #1
25080   orr r3, r3, r8
25081   add r0, r0, #1
25082   strneh  r3, [r2, lr]  @ movhi
25083   cmp r0, ip
25084   mov r1, r1, asl #8
25085   bne .L8418
25086   ldr r0, [sp, #84]
25087   add lr, r0, ip, asl #1
25088 .L8417:
25089   ldr r1, [sp, #108]
25090   ldr r2, [r6, #0]
25091   subs  ip, r1, ip
25092   beq .L7841
25093   mov r0, #0
25094 .L8424:
25095   ldr r4, [sp, #24]
25096   movs  r3, r2, lsr #24
25097   mov r1, r0, asl #1
25098   orr r3, r3, r4
25099   add r0, r0, #1
25100   strneh  r3, [r1, lr]  @ movhi
25101   cmp r0, ip
25102   mov r2, r2, asl #8
25103   bne .L8424
25104   b .L7841
25105 .L8192:
25106   rsbs  ip, ip, #4
25107   ldreq lr, [sp, #84]
25108   beq .L8197
25109   mov r0, #0
25110 .L8198:
25111   ands  r3, r2, #255
25112   ldr r8, [sp, #24]
25113   ldrne lr, [sp, #84]
25114   mov r1, r0, asl #1
25115   orr r3, r3, r8
25116   add r0, r0, #1
25117   strneh  r3, [r1, lr]  @ movhi
25118   cmp r0, ip
25119   mov r2, r2, lsr #8
25120   bne .L8198
25121   ldr r0, [sp, #84]
25122   add lr, r0, ip, asl #1
25123 .L8197:
25124   ldr r1, [sp, #108]
25125   ldr r2, [r6, #4]
25126   subs  ip, r1, ip
25127   beq .L7841
25128   mov r0, #0
25129 .L8204:
25130   ldr r4, [sp, #24]
25131   ands  r3, r2, #255
25132   mov r1, r0, asl #1
25133   orr r3, r3, r4
25134   add r0, r0, #1
25135   strneh  r3, [r1, lr]  @ movhi
25136   cmp r0, ip
25137   mov r2, r2, lsr #8
25138   bne .L8204
25139   b .L7841
25140   .size render_scanline_obj_color16_1D, .-render_scanline_obj_color16_1D
25141   .align  2
25142   .global render_scanline_obj_color16_2D
25143   .type render_scanline_obj_color16_2D, %function
25144 render_scanline_obj_color16_2D:
25145   @ args = 0, pretend = 0, frame = 96
25146   @ frame_needed = 0, uses_anonymous_args = 0
25147   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
25148   ldr ip, .L9512
25149   sub sp, sp, #96
25150   ldrh  r4, [ip, #6]
25151   add r0, r0, r0, asl #2
25152   str r4, [sp, #36]
25153   ldr r5, [sp, #36]
25154   ldrh  r4, [ip, #80]
25155   ldr ip, .L9512+4
25156   add r0, r5, r0, asl #5
25157   ldr ip, [ip, r0, asl #2]
25158   mov lr, r4, lsr #11
25159   and lr, lr, #2
25160   mov r4, r4, asl #27
25161   str ip, [sp, #40]
25162   orr lr, lr, r4, lsr #31
25163   cmp ip, #0
25164   ldr ip, .L9512+8
25165   mov lr, lr, asl #9
25166   add r0, ip, r0, asl #7
25167   orr lr, lr, #256
25168   str r0, [sp, #44]
25169   str r1, [sp, #12]
25170   str r2, [sp, #8]
25171   str r3, [sp, #4]
25172   str lr, [sp, #28]
25173   beq .L9458
25174   mov r8, #0
25175   add r6, r3, r1, asl #1
25176   rsb r7, r1, r2
25177   str r6, [sp, #68]
25178   str r7, [sp, #92]
25179   str r8, [sp, #32]
25180   mov ip, r8
25181 .L8673:
25182   ldr lr, [sp, #44]
25183   ldr r0, .L9512+12
25184   ldrb  r3, [ip, lr]  @ zero_extendqisi2
25185   mov r3, r3, asl #3
25186   ldrh  r4, [r3, r0]
25187   add r3, r3, r0
25188   ldrh  r1, [r3, #2]
25189   mov r5, r4, lsr #12
25190   and r2, r5, #12
25191   orr r0, r2, r1, lsr #14
25192   and ip, r4, #255
25193   mov r2, r1, asl #23
25194   cmp ip, #160
25195   ldrh  lr, [r3, #4]
25196   mov r6, r2, asr #23
25197   ldr r3, .L9512+16
25198   ldr r2, .L9512+20
25199   subgt ip, ip, #256
25200   tst r4, #256
25201   ldr r8, [r2, r0, asl #2]
25202   ldr sl, [r3, r0, asl #2]
25203   beq .L8676
25204   tst r4, #8192
25205   beq .L8678
25206   tst r4, #512
25207   mov r3, r1, lsr #4
25208   ldr r4, .L9512+12
25209   and r3, r3, #992
25210   add r3, r3, r4
25211   add r2, r8, r8, lsr #31
25212   ldrh  r5, [r3, #30]
25213   mov r4, r2, asr #1
25214   add r1, sl, sl, lsr #31
25215   ldr r2, [sp, #12]
25216   movne r0, r4, asl #1
25217   str r5, [sp, #16]
25218   mov r5, r1, asr #1
25219   strne r0, [sp, #52]
25220   moveq r9, r8
25221   streq r4, [sp, #52]
25222   moveq r0, r5
25223   movne r9, r8, asl #1
25224   movne r0, r5, asl #1
25225   cmp r6, r2
25226   ldrh  r7, [r3, #6]
25227   ldrh  r1, [r3, #14]
25228   ldrh  fp, [r3, #22]
25229   bge .L8683
25230   rsb r2, r6, r2
25231   rsb r9, r2, r9
25232   cmp r9, #0
25233   ble .L8685
25234   ldr r3, [sp, #52]
25235   ldr r6, [sp, #12]
25236   rsb r3, r2, r3
25237   str r3, [sp, #52]
25238 .L8683:
25239   ldr r2, [sp, #8]
25240   add r3, r6, r9
25241   cmp r3, r2
25242   blt .L8687
25243   rsb r9, r6, r2
25244   cmp r9, #0
25245   ble .L8685
25246 .L8687:
25247   mov r3, r7, asl #16
25248   mov r2, r1, asl #16
25249   ldr r7, [sp, #16]
25250   mov r3, r3, asr #16
25251   add r0, ip, r0
25252   str r3, [sp, #48]
25253   mov ip, r2, asr #16
25254   ldr r3, [sp, #36]
25255   ldr r2, [sp, #4]
25256   mov r1, r7, asl #16
25257   mov r4, r4, asl #8
25258   cmp fp, #0
25259   str r4, [sp, #76]
25260   mov r1, r1, asr #16
25261   mov r4, r5, asl #8
25262   add r7, r2, r6, asl #1
25263   rsb r0, r0, r3
25264   bne .L8689
25265   mla r3, r0, r1, r4
25266   mov r1, r3, asr #8
25267   cmp r1, sl
25268   bcs .L8685
25269   mov r3, lr, asl #22
25270   mov r2, r1, lsr #3
25271   mov r3, r3, lsr #22
25272   add r3, r3, r2, asl #5
25273   and r1, r1, #7
25274   add r1, r1, r3, asl #2
25275   ldr r3, .L9512+24
25276   cmp r9, #0
25277   add lr, r3, r1, asl #3
25278   ble .L8685
25279   ldr r4, [sp, #48]
25280   ldr r2, [sp, #52]
25281   mul r3, r0, ip
25282   mul r2, r4, r2
25283   ldr r5, [sp, #76]
25284   rsb r3, r2, r3
25285   add r0, r5, r3
25286   mov r4, r0, asr #8
25287   cmp r4, r8
25288   movcs ip, fp
25289   bcs .L8695
25290   b .L9508
25291 .L8696:
25292   cmp r4, r8
25293   bcc .L9472
25294 .L8695:
25295   ldr r6, [sp, #48]
25296   add ip, ip, #1
25297   add r0, r0, r6
25298   cmp r9, ip
25299   mov r4, r0, asr #8
25300   add r7, r7, #2
25301   bne .L8696
25302 .L8685:
25303   ldr ip, [sp, #32]
25304   ldr lr, [sp, #40]
25305   add ip, ip, #1
25306   cmp ip, lr
25307   str ip, [sp, #32]
25308   beq .L9458
25309 .L9490:
25310   ldr ip, [sp, #32]
25311   b .L8673
25312 .L8676:
25313   ldr r2, [sp, #36]
25314   tst r1, #8192
25315   rsb r0, ip, r2
25316   rsbne r3, r0, sl
25317   subne r0, r3, #1
25318   mov r2, r1, asl #19
25319   and r3, r5, #2
25320   orr r3, r3, r2, lsr #31
25321   cmp r3, #3
25322   ldrls pc, [pc, r3, asl #2]
25323   b .L8685
25324   .p2align 2
25325 .L8757:
25326   .word .L8753
25327   .word .L8754
25328   .word .L8755
25329   .word .L8756
25330 .L8753:
25331   mov r3, lr, asl #22
25332   mov r2, r0, lsr #3
25333   mov r3, r3, lsr #22
25334   add r3, r3, r2, asl #5
25335   and r1, r0, #7
25336   add r1, r1, r3, asl #3
25337   ldr r3, [sp, #12]
25338   mov r2, lr, lsr #8
25339   cmp r6, r3
25340   ldr r3, .L9512+24
25341   add r0, r3, r1, asl #2
25342   and r1, r2, #240
25343   blt .L9485
25344   ldr ip, [sp, #8]
25345   add r3, r6, r8
25346   cmp ip, r3
25347   bhi .L8839
25348   rsb r8, r6, ip
25349   cmp r8, #0
25350   ble .L8685
25351   ldr lr, [sp, #4]
25352   movs  r7, r8, lsr #3
25353   add r2, lr, r6, asl #1
25354   beq .L8842
25355   mov r5, r2
25356   mov lr, r0
25357   mov ip, #0
25358 .L8844:
25359   ldr r4, [lr, #0]
25360   cmp r4, #0
25361   beq .L8845
25362   ands  r3, r4, #15
25363   ldrne r6, [sp, #28]
25364   orrne r3, r1, r3
25365   orrne r3, r3, r6
25366   strneh  r3, [r5, #0]  @ movhi
25367   mov r3, r4, lsr #4
25368   ands  r3, r3, #15
25369   ldrne r6, [sp, #28]
25370   orrne r3, r1, r3
25371   orrne r3, r3, r6
25372   strneh  r3, [r5, #2]  @ movhi
25373   mov r3, r4, lsr #8
25374   ands  r3, r3, #15
25375   ldrne r6, [sp, #28]
25376   orrne r3, r1, r3
25377   orrne r3, r3, r6
25378   strneh  r3, [r5, #4]  @ movhi
25379   mov r3, r4, lsr #12
25380   ands  r3, r3, #15
25381   ldrne r6, [sp, #28]
25382   orrne r3, r1, r3
25383   orrne r3, r3, r6
25384   strneh  r3, [r5, #6]  @ movhi
25385   mov r3, r4, lsr #16
25386   ands  r3, r3, #15
25387   ldrne r6, [sp, #28]
25388   orrne r3, r1, r3
25389   orrne r3, r3, r6
25390   strneh  r3, [r5, #8]  @ movhi
25391   mov r3, r4, lsr #20
25392   ands  r3, r3, #15
25393   ldrne r6, [sp, #28]
25394   orrne r3, r1, r3
25395   orrne r3, r3, r6
25396   strneh  r3, [r5, #10] @ movhi
25397   mov r3, r4, lsr #24
25398   ands  r3, r3, #15
25399   ldrne r6, [sp, #28]
25400   orrne r3, r1, r3
25401   orrne r3, r3, r6
25402   strneh  r3, [r5, #12] @ movhi
25403   movs  r3, r4, lsr #28
25404   ldrne r4, [sp, #28]
25405   orrne r3, r1, r3
25406   orrne r3, r3, r4
25407   strneh  r3, [r5, #14] @ movhi
25408 .L8845:
25409   add ip, ip, #1
25410   cmp ip, r7
25411   add lr, lr, #32
25412   add r5, r5, #16
25413   bne .L8844
25414   add r0, r0, r7, asl #5
25415   add r2, r2, r7, asl #4
25416 .L8842:
25417   ands  lr, r8, #7
25418   beq .L8685
25419   ldr r0, [r0, #0]
25420   mov r4, #0
25421 .L8864:
25422   ands  r3, r0, #15
25423   ldr r5, [sp, #28]
25424   orr r3, r1, r3
25425   mov ip, r4, asl #1
25426   orr r3, r3, r5
25427   add r4, r4, #1
25428   strneh  r3, [ip, r2]  @ movhi
25429   cmp r4, lr
25430   mov r0, r0, lsr #4
25431   bne .L8864
25432   b .L8685
25433 .L8754:
25434   mov r3, lr, asl #22
25435   mov r1, r0, lsr #3
25436   subs  r2, r8, #8
25437   mov r3, r3, lsr #22
25438   submi r2, r8, #1
25439   add r3, r3, r1, asl #5
25440   add r3, r3, r2, asr #3
25441   and r1, r0, #7
25442   ldr ip, [sp, #12]
25443   add r1, r1, r3, asl #3
25444   ldr r3, .L9512+24
25445   mov r2, lr, lsr #8
25446   cmp r6, ip
25447   add r0, r3, r1, asl #2
25448   and r1, r2, #240
25449   blt .L9486
25450   ldr r2, [sp, #8]
25451   add r3, r6, r8
25452   cmp r2, r3
25453   bhi .L8969
25454   rsb r8, r6, r2
25455   cmp r8, #0
25456   ble .L8685
25457   ldr r3, [sp, #4]
25458   movs  r7, r8, lsr #3
25459   add r2, r3, r6, asl #1
25460   beq .L8972
25461   mov r5, r2
25462   mov lr, r0
25463   mov ip, #0
25464 .L8974:
25465   ldr r4, [lr, #0]
25466   cmp r4, #0
25467   beq .L8975
25468   ands  r3, r4, #15
25469   ldrne r6, [sp, #28]
25470   orrne r3, r1, r3
25471   orrne r3, r3, r6
25472   strneh  r3, [r5, #14] @ movhi
25473   mov r3, r4, lsr #4
25474   ands  r3, r3, #15
25475   ldrne r6, [sp, #28]
25476   orrne r3, r1, r3
25477   orrne r3, r3, r6
25478   strneh  r3, [r5, #12] @ movhi
25479   mov r3, r4, lsr #8
25480   ands  r3, r3, #15
25481   ldrne r6, [sp, #28]
25482   orrne r3, r1, r3
25483   orrne r3, r3, r6
25484   strneh  r3, [r5, #10] @ movhi
25485   mov r3, r4, lsr #12
25486   ands  r3, r3, #15
25487   ldrne r6, [sp, #28]
25488   orrne r3, r1, r3
25489   orrne r3, r3, r6
25490   strneh  r3, [r5, #8]  @ movhi
25491   mov r3, r4, lsr #16
25492   ands  r3, r3, #15
25493   ldrne r6, [sp, #28]
25494   orrne r3, r1, r3
25495   orrne r3, r3, r6
25496   strneh  r3, [r5, #6]  @ movhi
25497   mov r3, r4, lsr #20
25498   ands  r3, r3, #15
25499   ldrne r6, [sp, #28]
25500   orrne r3, r1, r3
25501   orrne r3, r3, r6
25502   strneh  r3, [r5, #4]  @ movhi
25503   mov r3, r4, lsr #24
25504   ands  r3, r3, #15
25505   ldrne r6, [sp, #28]
25506   orrne r3, r1, r3
25507   orrne r3, r3, r6
25508   strneh  r3, [r5, #2]  @ movhi
25509   movs  r3, r4, lsr #28
25510   ldrne r4, [sp, #28]
25511   orrne r3, r1, r3
25512   orrne r3, r3, r4
25513   strneh  r3, [r5, #0]  @ movhi
25514 .L8975:
25515   add ip, ip, #1
25516   cmp ip, r7
25517   sub lr, lr, #32
25518   add r5, r5, #16
25519   bne .L8974
25520   rsb r3, r7, r7, asl #27
25521   add r0, r0, r3, asl #5
25522   add r2, r2, r7, asl #4
25523 .L8972:
25524   ands  lr, r8, #7
25525   beq .L8685
25526   ldr r0, [r0, #0]
25527   mov r4, #0
25528 .L8994:
25529   movs  r3, r0, lsr #28
25530   ldr r5, [sp, #28]
25531   orr r3, r1, r3
25532   mov ip, r4, asl #1
25533   orr r3, r3, r5
25534   add r4, r4, #1
25535   strneh  r3, [ip, r2]  @ movhi
25536   cmp r4, lr
25537   mov r0, r0, asl #4
25538   bne .L8994
25539   b .L8685
25540 .L8755:
25541   mov r2, lr, asl #22
25542   mov r1, r0, lsr #3
25543   mov r2, r2, lsr #22
25544   and r3, r0, #7
25545   add r2, r2, r1, asl #5
25546   add r3, r3, r2, asl #2
25547   ldr ip, [sp, #12]
25548   mov r0, r3, asl #3
25549   ldr r3, .L9512+24
25550   cmp r6, ip
25551   add ip, r0, r3
25552   blt .L9487
25553   ldr r7, [sp, #8]
25554   add r3, r6, r8
25555   cmp r7, r3
25556   bhi .L9174
25557   rsb r8, r6, r7
25558   cmp r8, #0
25559   ble .L8685
25560   ldr lr, [sp, #4]
25561   movs  r7, r8, lsr #3
25562   add r2, lr, r6, asl #1
25563   beq .L9177
25564   ldr r3, .L9512+32
25565   mov r5, r2
25566   add r0, r0, r3
25567   mov lr, ip
25568   mov r1, #0
25569 .L9179:
25570   ldr r4, [lr, #0]
25571   cmp r4, #0
25572   beq .L9180
25573   ands  r3, r4, #255
25574   ldrne r6, [sp, #28]
25575   orrne r3, r3, r6
25576   strneh  r3, [r5, #0]  @ movhi
25577   mov r3, r4, lsr #8
25578   ands  r3, r3, #255
25579   ldrne r6, [sp, #28]
25580   orrne r3, r3, r6
25581   strneh  r3, [r5, #2]  @ movhi
25582   mov r3, r4, lsr #16
25583   ands  r3, r3, #255
25584   ldrne r6, [sp, #28]
25585   orrne r3, r3, r6
25586   strneh  r3, [r5, #4]  @ movhi
25587   movs  r3, r4, lsr #24
25588   ldrne r4, [sp, #28]
25589   orrne r3, r3, r4
25590   strneh  r3, [r5, #6]  @ movhi
25591 .L9180:
25592   ldr r4, [r0, #-60]
25593   cmp r4, #0
25594   beq .L9189
25595   ands  r3, r4, #255
25596   ldrne r6, [sp, #28]
25597   orrne r3, r3, r6
25598   strneh  r3, [r5, #8]  @ movhi
25599   mov r3, r4, lsr #8
25600   ands  r3, r3, #255
25601   ldrne r6, [sp, #28]
25602   orrne r3, r3, r6
25603   strneh  r3, [r5, #10] @ movhi
25604   mov r3, r4, lsr #16
25605   ands  r3, r3, #255
25606   ldrne r6, [sp, #28]
25607   orrne r3, r3, r6
25608   strneh  r3, [r5, #12] @ movhi
25609   movs  r3, r4, lsr #24
25610   ldrne r4, [sp, #28]
25611   orrne r3, r3, r4
25612   strneh  r3, [r5, #14] @ movhi
25613 .L9189:
25614   add r1, r1, #1
25615   cmp r7, r1
25616   add lr, lr, #64
25617   add r5, r5, #16
25618   add r0, r0, #64
25619   bne .L9179
25620   add ip, ip, r7, asl #6
25621   add r2, r2, r7, asl #4
25622 .L9177:
25623   ands  lr, r8, #7
25624   beq .L8685
25625   cmp lr, #3
25626   ldrls r0, [ip, #0]
25627   bls .L9212
25628   ldr r1, [ip, #0]
25629   cmp r1, #0
25630   beq .L9202
25631   ands  r3, r1, #255
25632   ldrne r5, [sp, #28]
25633   orrne r3, r3, r5
25634   strneh  r3, [r2, #0]  @ movhi
25635   mov r3, r1, lsr #8
25636   ands  r3, r3, #255
25637   ldrne r6, [sp, #28]
25638   orrne r3, r3, r6
25639   strneh  r3, [r2, #2]  @ movhi
25640   mov r3, r1, lsr #16
25641   ands  r3, r3, #255
25642   ldrne r7, [sp, #28]
25643   orrne r3, r3, r7
25644   strneh  r3, [r2, #4]  @ movhi
25645   movs  r3, r1, lsr #24
25646   ldrne r8, [sp, #28]
25647   orrne r3, r3, r8
25648   strneh  r3, [r2, #6]  @ movhi
25649 .L9202:
25650   subs  lr, lr, #4
25651   ldr r0, [ip, #4]
25652   addne r2, r2, #8
25653   beq .L8685
25654 .L9212:
25655   mov r1, #0
25656 .L9213:
25657   ldr ip, [sp, #28]
25658   ands  r3, r0, #255
25659   orr r3, r3, ip
25660   mov ip, r1, asl #1
25661   add r1, r1, #1
25662   strneh  r3, [ip, r2]  @ movhi
25663   cmp lr, r1
25664   mov r0, r0, lsr #8
25665   bhi .L9213
25666   b .L8685
25667 .L8756:
25668   subs  r2, r8, #8
25669   submi r2, r8, #1
25670   mov r3, r0, lsr #3
25671   mov r2, r2, asr #3
25672   mov r1, lr, asl #22
25673   add r2, r2, r3, asl #4
25674   mov r1, r1, lsr #22
25675   and r3, r0, #7
25676   add r1, r1, r2, asl #1
25677   add r3, r3, r1, asl #2
25678   ldr ip, [sp, #12]
25679   mov r0, r3, asl #3
25680   ldr r3, .L9512+24
25681   cmp r6, ip
25682   add ip, r0, r3
25683   blt .L9488
25684   ldr r7, [sp, #8]
25685   add r3, r6, r8
25686   cmp r3, r7
25687   bcc .L9394
25688   rsb r8, r6, r7
25689   cmp r8, #0
25690   ble .L8685
25691   ldr lr, [sp, #4]
25692   movs  r7, r8, lsr #3
25693   add r6, lr, r6, asl #1
25694   beq .L9397
25695   ldr r3, .L9512+28
25696   mov r5, r6
25697   add r0, r0, r3
25698   mov lr, ip
25699   mov r1, #0
25700 .L9399:
25701   ldr r4, [r0, #68]
25702   cmp r4, #0
25703   beq .L9400
25704   ands  r3, r4, #255
25705   ldrne r2, [sp, #28]
25706   orrne r3, r3, r2
25707   strneh  r3, [r5, #6]  @ movhi
25708   mov r3, r4, lsr #8
25709   ands  r3, r3, #255
25710   ldrne r2, [sp, #28]
25711   orrne r3, r3, r2
25712   strneh  r3, [r5, #4]  @ movhi
25713   mov r3, r4, lsr #16
25714   ands  r3, r3, #255
25715   ldrne r2, [sp, #28]
25716   orrne r3, r3, r2
25717   strneh  r3, [r5, #2]  @ movhi
25718   movs  r3, r4, lsr #24
25719   ldrne r4, [sp, #28]
25720   orrne r3, r3, r4
25721   strneh  r3, [r5, #0]  @ movhi
25722 .L9400:
25723   ldr r4, [lr, #0]
25724   cmp r4, #0
25725   beq .L9409
25726   ands  r3, r4, #255
25727   ldrne r2, [sp, #28]
25728   orrne r3, r3, r2
25729   strneh  r3, [r5, #14] @ movhi
25730   mov r3, r4, lsr #8
25731   ands  r3, r3, #255
25732   ldrne r2, [sp, #28]
25733   orrne r3, r3, r2
25734   strneh  r3, [r5, #12] @ movhi
25735   mov r3, r4, lsr #16
25736   ands  r3, r3, #255
25737   ldrne r2, [sp, #28]
25738   orrne r3, r3, r2
25739   strneh  r3, [r5, #10] @ movhi
25740   movs  r3, r4, lsr #24
25741   ldrne r4, [sp, #28]
25742   orrne r3, r3, r4
25743   strneh  r3, [r5, #8]  @ movhi
25744 .L9409:
25745   add r1, r1, #1
25746   cmp r1, r7
25747   sub lr, lr, #64
25748   add r5, r5, #16
25749   sub r0, r0, #64
25750   bne .L9399
25751   rsb r3, r7, r7, asl #26
25752   add ip, ip, r3, asl #6
25753   add r6, r6, r7, asl #4
25754 .L9397:
25755   ands  lr, r8, #7
25756   beq .L8685
25757   cmp lr, #3
25758   ldrls r2, [ip, #4]
25759   bls .L9432
25760   ldr r2, [ip, #4]
25761   cmp r2, #0
25762   beq .L9422
25763   ands  r3, r2, #255
25764   ldrne r5, [sp, #28]
25765   orrne r3, r3, r5
25766   strneh  r3, [r6, #6]  @ movhi
25767   mov r3, r2, lsr #8
25768   ands  r3, r3, #255
25769   ldrne r7, [sp, #28]
25770   orrne r3, r3, r7
25771   strneh  r3, [r6, #4]  @ movhi
25772   mov r3, r2, lsr #16
25773   ands  r3, r3, #255
25774   ldrne r8, [sp, #28]
25775   orrne r3, r3, r8
25776   strneh  r3, [r6, #2]  @ movhi
25777   movs  r3, r2, lsr #24
25778   ldrne r0, [sp, #28]
25779   orrne r3, r3, r0
25780   strneh  r3, [r6, #0]  @ movhi
25781 .L9422:
25782   subs  lr, lr, #4
25783   ldr r2, [ip, #0]
25784   addne r6, r6, #8
25785   beq .L8685
25786 .L9432:
25787   mov r1, #0
25788 .L9433:
25789   ldr r4, [sp, #28]
25790   movs  r3, r2, lsr #24
25791   mov r0, r1, asl #1
25792   orr r3, r3, r4
25793   add r1, r1, #1
25794   strneh  r3, [r0, r6]  @ movhi
25795   cmp lr, r1
25796   mov r2, r2, asl #8
25797   bhi .L9433
25798   b .L8685
25799 .L8678:
25800   tst r4, #512
25801   mov r3, r1, lsr #4
25802   ldr r4, .L9512+12
25803   and r3, r3, #992
25804   add r3, r3, r4
25805   ldrh  r5, [r3, #30]
25806   add r2, r8, r8, lsr #31
25807   mov r4, r2, asr #1
25808   add r1, sl, sl, lsr #31
25809   ldr r2, [sp, #12]
25810   str r5, [sp, #24]
25811   ldrh  r7, [r3, #6]
25812   mov r5, r1, asr #1
25813   ldrh  r1, [r3, #14]
25814   ldrh  r3, [r3, #22]
25815   moveq fp, r8
25816   moveq r9, r4
25817   moveq r0, r5
25818   movne fp, r8, asl #1
25819   movne r9, r4, asl #1
25820   movne r0, r5, asl #1
25821   cmp r6, r2
25822   str r3, [sp, #20]
25823   bge .L8716
25824   rsb r2, r6, r2
25825   rsb fp, r2, fp
25826   cmp fp, #0
25827   ble .L8685
25828   ldr r6, [sp, #12]
25829   rsb r9, r2, r9
25830 .L8716:
25831   ldr r2, [sp, #8]
25832   add r3, r6, fp
25833   cmp r3, r2
25834   blt .L8719
25835   rsb fp, r6, r2
25836   cmp fp, #0
25837   ble .L8685
25838 .L8719:
25839   add ip, ip, r0
25840   mov r3, r7, asl #16
25841   mov r2, r1, asl #16
25842   ldr r0, [sp, #20]
25843   ldr r7, [sp, #24]
25844   mov r3, r3, asr #16
25845   mov r2, r2, asr #16
25846   cmp r0, #0
25847   str r3, [sp, #56]
25848   mov r0, lr, lsr #8
25849   str r2, [sp, #60]
25850   ldr r3, [sp, #36]
25851   ldr r2, [sp, #4]
25852   mov r1, r7, asl #16
25853   mov r4, r4, asl #8
25854   and r0, r0, #240
25855   str r4, [sp, #72]
25856   mov r1, r1, asr #16
25857   mov r4, r5, asl #8
25858   add r7, r2, r6, asl #1
25859   rsb ip, ip, r3
25860   str r0, [sp, #88]
25861   bne .L8721
25862   mla r3, ip, r1, r4
25863   mov r1, r3, asr #8
25864   cmp r1, sl
25865   bcs .L8685
25866   mov r3, lr, asl #22
25867   mov r2, r1, lsr #3
25868   mov r3, r3, lsr #22
25869   add r3, r3, r2, asl #5
25870   and r1, r1, #7
25871   add r1, r1, r3, asl #3
25872   ldr r3, .L9512+24
25873   cmp fp, #0
25874   add r1, r3, r1, asl #2
25875   ble .L8685
25876   ldr r3, [sp, #60]
25877   ldr r2, [sp, #56]
25878   mul r3, ip, r3
25879   mul r2, r9, r2
25880   ldr r4, [sp, #72]
25881   rsb r3, r2, r3
25882   add r0, r4, r3
25883   mov r4, r0, asr #8
25884   cmp r4, r8
25885   ldrcs r5, [sp, #20]
25886   bcs .L8727
25887   b .L9509
25888 .L8728:
25889   cmp r4, r8
25890   bcc .L9474
25891 .L8727:
25892   ldr r6, [sp, #56]
25893   add r5, r5, #1
25894   add r0, r0, r6
25895   cmp fp, r5
25896   mov r4, r0, asr #8
25897   add r7, r7, #2
25898   bne .L8728
25899   ldr ip, [sp, #32]
25900   ldr lr, [sp, #40]
25901   add ip, ip, #1
25902   cmp ip, lr
25903   str ip, [sp, #32]
25904   bne .L9490
25905 .L9458:
25906   add sp, sp, #96
25907   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
25908 .L8689:
25909   mov r3, lr, asl #22
25910   ldr r2, .L9512+24
25911   mov r3, r3, lsr #22
25912   add r3, r2, r3, asl #5
25913   cmp r9, #0
25914   str r3, [sp, #84]
25915   ble .L8685
25916   mov r3, fp, asl #16
25917   mul r2, r0, r1
25918   mov fp, r3, asr #16
25919   ldr r5, [sp, #48]
25920   mul r3, r0, ip
25921   ldr r1, [sp, #52]
25922   ldr r0, [sp, #52]
25923   mul r1, fp, r1
25924   mul r0, r5, r0
25925   ldr r6, [sp, #76]
25926   rsb r3, r0, r3
25927   rsb r2, r1, r2
25928   add r5, r6, r3
25929   add lr, r4, r2
25930   mov ip, r5, asr #8
25931   mov r4, lr, asr #8
25932   cmp ip, r8
25933   cmpcc r4, sl
25934   movcs r3, #0
25935   movcc r3, #1
25936   movcs r6, r3
25937   bcs .L8705
25938   b .L9510
25939 .L8706:
25940   cmp ip, r8
25941   cmpcc r4, sl
25942   bcc .L8707
25943 .L8705:
25944   ldr ip, [sp, #48]
25945   add r6, r6, #1
25946   add r5, r5, ip
25947   add lr, lr, fp
25948   cmp r9, r6
25949   mov ip, r5, asr #8
25950   mov r4, lr, asr #8
25951   add r7, r7, #2
25952   bne .L8706
25953   b .L8685
25954 .L8721:
25955   mov r3, lr, asl #22
25956   ldr r2, .L9512+24
25957   mov r3, r3, lsr #22
25958   add r3, r2, r3, asl #5
25959   cmp fp, #0
25960   str r3, [sp, #80]
25961   ble .L8685
25962   ldr r5, [sp, #20]
25963   mul r2, ip, r1
25964   mov r3, r5, asl #16
25965   mov r3, r3, asr #16
25966   str r3, [sp, #64]
25967   ldr r1, [sp, #64]
25968   ldr r3, [sp, #60]
25969   ldr r0, [sp, #56]
25970   mul r3, ip, r3
25971   mul r1, r9, r1
25972   mul r0, r9, r0
25973   ldr r6, [sp, #72]
25974   rsb r3, r0, r3
25975   rsb r2, r1, r2
25976   add lr, r6, r3
25977   add r5, r4, r2
25978   mov ip, lr, asr #8
25979   mov r4, r5, asr #8
25980   cmp ip, r8
25981   cmpcc r4, sl
25982   movcs r3, #0
25983   movcc r3, #1
25984   movcs r6, r3
25985   bcs .L8740
25986   b .L9511
25987 .L8741:
25988   cmp ip, r8
25989   cmpcc r4, sl
25990   bcc .L8743
25991 .L8740:
25992   ldr ip, [sp, #56]
25993   ldr r0, [sp, #64]
25994   add r6, r6, #1
25995   add lr, lr, ip
25996   add r5, r5, r0
25997   cmp fp, r6
25998   mov ip, lr, asr #8
25999   mov r4, r5, asr #8
26000   add r7, r7, #2
26001   bne .L8741
26002   b .L8685
26003 .L9493:
26004   mov r3, ip, asr #1
26005   ldr r1, [sp, #80]
26006   and r3, r3, #3
26007   and r0, r4, #7
26008   str r3, [sp, #0]
26009   ldr r3, [sp, #80]
26010   add r0, r1, r0, asl #2
26011   and r1, r4, #7
26012   mov r2, ip, asr #1
26013   add r1, r3, r1, asl #2
26014   mov r3, r4, asr #3
26015   and r9, r2, #3
26016   mov r3, r3, asl #10
26017   mov r2, ip, asr #3
26018   tst ip, #1
26019   add r3, r3, r2, asl #5
26020   add r2, r0, r3
26021   movne r4, r9
26022   add r0, r1, r3
26023   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
26024   ldrneb  r3, [r2, r4]  @ zero_extendqisi2
26025   ldr r2, [sp, #88]
26026   movne r0, r3, lsr #4
26027   andeq r0, r3, #15
26028   cmp r0, #0
26029   orr r3, r0, r2
26030   ldr r0, [sp, #28]
26031   ldr ip, [sp, #56]
26032   ldr r1, [sp, #64]
26033   add r6, r6, #1
26034   orr r3, r3, r0
26035   strneh  r3, [r7, #0]  @ movhi
26036   add lr, lr, ip
26037   add r5, r5, r1
26038   cmp fp, r6
26039   mov ip, lr, asr #8
26040   mov r4, r5, asr #8
26041   add r7, r7, #2
26042   ble .L8685
26043 .L8743:
26044   cmp r4, sl
26045   cmpcc ip, r8
26046   bcc .L9493
26047   b .L8685
26048 .L8730:
26049   cmp r4, r8
26050   bcs .L8685
26051 .L9474:
26052   mov r3, r4, asr #1
26053   and sl, r3, #3
26054   mov r3, r4, asr #3
26055   mov r3, r3, asl #5
26056   mov r2, r4, asr #1
26057   tst r4, #1
26058   add ip, r3, r1
26059   and r6, r2, #3
26060   add r2, r3, r1
26061   ldreqb  r3, [r2, r6]  @ zero_extendqisi2
26062   ldrneb  r3, [ip, sl]  @ zero_extendqisi2
26063   ldr lr, [sp, #88]
26064   movne r2, r3, lsr #4
26065   andeq r2, r3, #15
26066   cmp r2, #0
26067   orr r3, r2, lr
26068   ldr r2, [sp, #28]
26069   ldr ip, [sp, #56]
26070   add r5, r5, #1
26071   orr r3, r3, r2
26072   strneh  r3, [r7, #0]  @ movhi
26073   add r0, r0, ip
26074   cmp fp, r5
26075   mov r4, r0, asr #8
26076   add r7, r7, #2
26077   bgt .L8730
26078   b .L8685
26079 .L8698:
26080   cmp r4, r8
26081   bcs .L8685
26082 .L9472:
26083   ldr r1, [sp, #48]
26084   mov r3, r4, asr #3
26085   add r0, r0, r1
26086   add r3, lr, r3, asl #6
26087   and r1, r4, #7
26088   ldrb  r2, [r3, r1]  @ zero_extendqisi2
26089   ldr r3, [sp, #28]
26090   cmp r2, #0
26091   add ip, ip, #1
26092   orr r2, r2, r3
26093   strneh  r2, [r7, #0]  @ movhi
26094   cmp r9, ip
26095   mov r4, r0, asr #8
26096   add r7, r7, #2
26097   bgt .L8698
26098   b .L8685
26099 .L9488:
26100   ldr lr, [sp, #12]
26101   rsb r1, r6, lr
26102   rsb r4, r1, r8
26103   cmp r4, #0
26104   ble .L8685
26105   ldr r0, [sp, #8]
26106   add r3, r6, r8
26107   cmp r0, r3
26108   bhi .L9241
26109   mov r3, r1, lsr #3
26110   ands  r0, r1, #7
26111   sub r6, ip, r3, asl #6
26112   bne .L9243
26113   ldr r5, [sp, #92]
26114   ldr r4, [sp, #68]
26115 .L9245:
26116   movs  lr, r5, lsr #3
26117   beq .L9303
26118   mov r1, r4
26119   mov r0, r6
26120   mov ip, #0
26121 .L9305:
26122   ldr r2, [r0, #4]
26123   cmp r2, #0
26124   beq .L9306
26125   ands  r3, r2, #255
26126   ldrne r7, [sp, #28]
26127   orrne r3, r3, r7
26128   strneh  r3, [r1, #6]  @ movhi
26129   mov r3, r2, lsr #8
26130   ands  r3, r3, #255
26131   ldrne r8, [sp, #28]
26132   orrne r3, r3, r8
26133   strneh  r3, [r1, #4]  @ movhi
26134   mov r3, r2, lsr #16
26135   ands  r3, r3, #255
26136   ldrne r7, [sp, #28]
26137   orrne r3, r3, r7
26138   strneh  r3, [r1, #2]  @ movhi
26139   movs  r3, r2, lsr #24
26140   ldrne r8, [sp, #28]
26141   orrne r3, r3, r8
26142   strneh  r3, [r1, #0]  @ movhi
26143 .L9306:
26144   ldr r2, [r0, #0]
26145   cmp r2, #0
26146   beq .L9315
26147   ands  r3, r2, #255
26148   ldrne r7, [sp, #28]
26149   orrne r3, r3, r7
26150   strneh  r3, [r1, #14] @ movhi
26151   mov r3, r2, lsr #8
26152   ands  r3, r3, #255
26153   ldrne r8, [sp, #28]
26154   orrne r3, r3, r8
26155   strneh  r3, [r1, #12] @ movhi
26156   mov r3, r2, lsr #16
26157   ands  r3, r3, #255
26158   ldrne r7, [sp, #28]
26159   orrne r3, r3, r7
26160   strneh  r3, [r1, #10] @ movhi
26161   movs  r3, r2, lsr #24
26162   ldrne r8, [sp, #28]
26163   orrne r3, r3, r8
26164   strneh  r3, [r1, #8]  @ movhi
26165 .L9315:
26166   add ip, ip, #1
26167   cmp ip, lr
26168   sub r0, r0, #64
26169   add r1, r1, #16
26170   bne .L9305
26171   rsb r3, lr, lr, asl #26
26172   add r6, r6, r3, asl #6
26173   add r4, r4, lr, asl #4
26174 .L9303:
26175   ands  ip, r5, #7
26176   beq .L8685
26177   cmp ip, #3
26178   ldrls r2, [r6, #4]
26179   bls .L9338
26180   ldr r2, [r6, #4]
26181   cmp r2, #0
26182   beq .L9328
26183   ands  r3, r2, #255
26184   ldrne lr, [sp, #28]
26185   orrne r3, r3, lr
26186   strneh  r3, [r4, #6]  @ movhi
26187   mov r3, r2, lsr #8
26188   ands  r3, r3, #255
26189   ldrne r0, [sp, #28]
26190   orrne r3, r3, r0
26191   strneh  r3, [r4, #4]  @ movhi
26192   mov r3, r2, lsr #16
26193   ands  r3, r3, #255
26194   ldrne r1, [sp, #28]
26195   orrne r3, r3, r1
26196   strneh  r3, [r4, #2]  @ movhi
26197   movs  r3, r2, lsr #24
26198   ldrne r2, [sp, #28]
26199   orrne r3, r3, r2
26200   strneh  r3, [r4, #0]  @ movhi
26201 .L9328:
26202   subs  ip, ip, #4
26203   ldr r2, [r6, #0]
26204   addne r4, r4, #8
26205   beq .L8685
26206 .L9338:
26207   mov r1, #0
26208 .L9339:
26209   ldr r5, [sp, #28]
26210   movs  r3, r2, lsr #24
26211   mov r0, r1, asl #1
26212   orr r3, r3, r5
26213   add r1, r1, #1
26214   strneh  r3, [r0, r4]  @ movhi
26215   cmp ip, r1
26216   mov r2, r2, asl #8
26217   bhi .L9339
26218   b .L8685
26219 .L9513:
26220   .align  2
26221 .L9512:
26222   .word io_registers
26223   .word obj_priority_count
26224   .word obj_priority_list
26225   .word oam_ram
26226   .word obj_height_table
26227   .word obj_width_table
26228   .word vram+65536
26229   .word vram+65472
26230   .word vram+65600
26231 .L9487:
26232   ldr lr, [sp, #12]
26233   rsb r1, r6, lr
26234   rsb r4, r1, r8
26235   cmp r4, #0
26236   ble .L8685
26237   ldr r0, [sp, #8]
26238   add r3, r6, r8
26239   cmp r0, r3
26240   bhi .L9021
26241   mov r3, r1, lsr #3
26242   ands  r0, r1, #7
26243   add r6, ip, r3, asl #6
26244   bne .L9023
26245   ldr r5, [sp, #92]
26246   ldr r4, [sp, #68]
26247 .L9025:
26248   movs  lr, r5, lsr #3
26249   beq .L9083
26250   mov r1, r4
26251   mov r0, r6
26252   mov ip, #0
26253 .L9085:
26254   ldr r2, [r0, #0]
26255   cmp r2, #0
26256   beq .L9086
26257   ands  r3, r2, #255
26258   ldrne r7, [sp, #28]
26259   orrne r3, r3, r7
26260   strneh  r3, [r1, #0]  @ movhi
26261   mov r3, r2, lsr #8
26262   ands  r3, r3, #255
26263   ldrne r8, [sp, #28]
26264   orrne r3, r3, r8
26265   strneh  r3, [r1, #2]  @ movhi
26266   mov r3, r2, lsr #16
26267   ands  r3, r3, #255
26268   ldrne r7, [sp, #28]
26269   orrne r3, r3, r7
26270   strneh  r3, [r1, #4]  @ movhi
26271   movs  r3, r2, lsr #24
26272   ldrne r8, [sp, #28]
26273   orrne r3, r3, r8
26274   strneh  r3, [r1, #6]  @ movhi
26275 .L9086:
26276   ldr r2, [r0, #4]
26277   cmp r2, #0
26278   beq .L9095
26279   ands  r3, r2, #255
26280   ldrne r7, [sp, #28]
26281   orrne r3, r3, r7
26282   strneh  r3, [r1, #8]  @ movhi
26283   mov r3, r2, lsr #8
26284   ands  r3, r3, #255
26285   ldrne r8, [sp, #28]
26286   orrne r3, r3, r8
26287   strneh  r3, [r1, #10] @ movhi
26288   mov r3, r2, lsr #16
26289   ands  r3, r3, #255
26290   ldrne r7, [sp, #28]
26291   orrne r3, r3, r7
26292   strneh  r3, [r1, #12] @ movhi
26293   movs  r3, r2, lsr #24
26294   ldrne r8, [sp, #28]
26295   orrne r3, r3, r8
26296   strneh  r3, [r1, #14] @ movhi
26297 .L9095:
26298   add ip, ip, #1
26299   cmp lr, ip
26300   add r0, r0, #64
26301   add r1, r1, #16
26302   bne .L9085
26303   add r6, r6, lr, asl #6
26304   add r4, r4, lr, asl #4
26305 .L9083:
26306   ands  ip, r5, #7
26307   beq .L8685
26308   cmp ip, #3
26309   ldrls r1, [r6, #0]
26310   bls .L9118
26311   ldr r2, [r6, #0]
26312   cmp r2, #0
26313   beq .L9108
26314   ands  r3, r2, #255
26315   ldrne lr, [sp, #28]
26316   orrne r3, r3, lr
26317   strneh  r3, [r4, #0]  @ movhi
26318   mov r3, r2, lsr #8
26319   ands  r3, r3, #255
26320   ldrne r0, [sp, #28]
26321   orrne r3, r3, r0
26322   strneh  r3, [r4, #2]  @ movhi
26323   mov r3, r2, lsr #16
26324   ands  r3, r3, #255
26325   ldrne r1, [sp, #28]
26326   orrne r3, r3, r1
26327   strneh  r3, [r4, #4]  @ movhi
26328   movs  r3, r2, lsr #24
26329   ldrne r2, [sp, #28]
26330   orrne r3, r3, r2
26331   strneh  r3, [r4, #6]  @ movhi
26332 .L9108:
26333   subs  ip, ip, #4
26334   ldr r1, [r6, #4]
26335   addne r4, r4, #8
26336   beq .L8685
26337 .L9118:
26338   mov r2, #0
26339 .L9119:
26340   ldr r5, [sp, #28]
26341   ands  r3, r1, #255
26342   mov r0, r2, asl #1
26343   orr r3, r3, r5
26344   add r2, r2, #1
26345   strneh  r3, [r0, r4]  @ movhi
26346   cmp ip, r2
26347   mov r1, r1, lsr #8
26348   bhi .L9119
26349   b .L8685
26350 .L9486:
26351   rsb r4, r6, ip
26352   rsb ip, r4, r8
26353   cmp ip, #0
26354   ble .L8685
26355   ldr lr, [sp, #8]
26356   add r3, r6, r8
26357   cmp lr, r3
26358   bhi .L8891
26359   mov r3, r4, lsr #3
26360   ands  lr, r4, #7
26361   sub r0, r0, r3, asl #5
26362   bne .L8893
26363   ldr r2, [sp, #92]
26364   ldr r8, [sp, #68]
26365 .L8895:
26366   movs  r7, r2, lsr #3
26367   beq .L8912
26368   mov r5, r8
26369   mov lr, r0
26370   mov r6, #0
26371 .L8914:
26372   ldr r4, [lr, #0]
26373   cmp r4, #0
26374   beq .L8915
26375   ands  r3, r4, #15
26376   ldrne ip, [sp, #28]
26377   orrne r3, r1, r3
26378   orrne r3, r3, ip
26379   strneh  r3, [r5, #14] @ movhi
26380   mov r3, r4, lsr #4
26381   ands  r3, r3, #15
26382   ldrne ip, [sp, #28]
26383   orrne r3, r1, r3
26384   orrne r3, r3, ip
26385   strneh  r3, [r5, #12] @ movhi
26386   mov r3, r4, lsr #8
26387   ands  r3, r3, #15
26388   ldrne ip, [sp, #28]
26389   orrne r3, r1, r3
26390   orrne r3, r3, ip
26391   strneh  r3, [r5, #10] @ movhi
26392   mov r3, r4, lsr #12
26393   ands  r3, r3, #15
26394   ldrne ip, [sp, #28]
26395   orrne r3, r1, r3
26396   orrne r3, r3, ip
26397   strneh  r3, [r5, #8]  @ movhi
26398   mov r3, r4, lsr #16
26399   ands  r3, r3, #15
26400   ldrne ip, [sp, #28]
26401   orrne r3, r1, r3
26402   orrne r3, r3, ip
26403   strneh  r3, [r5, #6]  @ movhi
26404   mov r3, r4, lsr #20
26405   ands  r3, r3, #15
26406   ldrne ip, [sp, #28]
26407   orrne r3, r1, r3
26408   orrne r3, r3, ip
26409   strneh  r3, [r5, #4]  @ movhi
26410   mov r3, r4, lsr #24
26411   ands  r3, r3, #15
26412   ldrne ip, [sp, #28]
26413   orrne r3, r1, r3
26414   orrne r3, r3, ip
26415   strneh  r3, [r5, #2]  @ movhi
26416   movs  r3, r4, lsr #28
26417   ldrne r4, [sp, #28]
26418   orrne r3, r1, r3
26419   orrne r3, r3, r4
26420   strneh  r3, [r5, #0]  @ movhi
26421 .L8915:
26422   add r6, r6, #1
26423   cmp r6, r7
26424   sub lr, lr, #32
26425   add r5, r5, #16
26426   bne .L8914
26427   rsb r3, r7, r7, asl #27
26428   add r0, r0, r3, asl #5
26429   add r8, r8, r7, asl #4
26430 .L8912:
26431   ands  lr, r2, #7
26432   beq .L8685
26433   ldr r0, [r0, #0]
26434   mov ip, #0
26435 .L8934:
26436   movs  r3, r0, lsr #28
26437   ldr r5, [sp, #28]
26438   orr r3, r1, r3
26439   mov r2, ip, asl #1
26440   orr r3, r3, r5
26441   add ip, ip, #1
26442   strneh  r3, [r2, r8]  @ movhi
26443   cmp ip, lr
26444   mov r0, r0, asl #4
26445   bne .L8934
26446   b .L8685
26447 .L9485:
26448   ldr r5, [sp, #12]
26449   rsb r4, r6, r5
26450   rsb r5, r4, r8
26451   cmp r5, #0
26452   ble .L8685
26453   add r3, r6, r8
26454   ldr r6, [sp, #8]
26455   cmp r6, r3
26456   bhi .L8761
26457   mov r3, r4, lsr #3
26458   mov r2, r3, asl #5
26459   ands  r3, r4, #7
26460   add r5, r0, r2
26461   bne .L8763
26462   ldr r7, [sp, #92]
26463   ldr r6, [sp, #68]
26464 .L8765:
26465   movs  r4, r7, lsr #3
26466   beq .L8782
26467   mov ip, r6
26468   mov r0, r5
26469   mov lr, #0
26470 .L8784:
26471   ldr r2, [r0, #0]
26472   cmp r2, #0
26473   beq .L8785
26474   ands  r3, r2, #15
26475   ldrne r8, [sp, #28]
26476   orrne r3, r1, r3
26477   orrne r3, r3, r8
26478   strneh  r3, [ip, #0]  @ movhi
26479   mov r3, r2, lsr #4
26480   ands  r3, r3, #15
26481   ldrne r8, [sp, #28]
26482   orrne r3, r1, r3
26483   orrne r3, r3, r8
26484   strneh  r3, [ip, #2]  @ movhi
26485   mov r3, r2, lsr #8
26486   ands  r3, r3, #15
26487   ldrne r8, [sp, #28]
26488   orrne r3, r1, r3
26489   orrne r3, r3, r8
26490   strneh  r3, [ip, #4]  @ movhi
26491   mov r3, r2, lsr #12
26492   ands  r3, r3, #15
26493   ldrne r8, [sp, #28]
26494   orrne r3, r1, r3
26495   orrne r3, r3, r8
26496   strneh  r3, [ip, #6]  @ movhi
26497   mov r3, r2, lsr #16
26498   ands  r3, r3, #15
26499   ldrne r8, [sp, #28]
26500   orrne r3, r1, r3
26501   orrne r3, r3, r8
26502   strneh  r3, [ip, #8]  @ movhi
26503   mov r3, r2, lsr #20
26504   ands  r3, r3, #15
26505   ldrne r8, [sp, #28]
26506   orrne r3, r1, r3
26507   orrne r3, r3, r8
26508   strneh  r3, [ip, #10] @ movhi
26509   mov r3, r2, lsr #24
26510   ands  r3, r3, #15
26511   ldrne r8, [sp, #28]
26512   orrne r3, r1, r3
26513   orrne r3, r3, r8
26514   strneh  r3, [ip, #12] @ movhi
26515   movs  r3, r2, lsr #28
26516   ldrne r2, [sp, #28]
26517   orrne r3, r1, r3
26518   orrne r3, r3, r2
26519   strneh  r3, [ip, #14] @ movhi
26520 .L8785:
26521   add lr, lr, #1
26522   cmp r4, lr
26523   add r0, r0, #32
26524   add ip, ip, #16
26525   bne .L8784
26526   add r5, r5, r4, asl #5
26527   add r6, r6, r4, asl #4
26528 .L8782:
26529   ands  lr, r7, #7
26530   beq .L8685
26531   ldr r2, [r5, #0]
26532   mov r0, #0
26533 .L8804:
26534   ands  r3, r2, #15
26535   ldr r4, [sp, #28]
26536   orr r3, r1, r3
26537   mov ip, r0, asl #1
26538   orr r3, r3, r4
26539   add r0, r0, #1
26540   strneh  r3, [ip, r6]  @ movhi
26541   cmp r0, lr
26542   mov r2, r2, lsr #4
26543   bne .L8804
26544   b .L8685
26545 .L9510:
26546   mov r6, #0
26547 .L8707:
26548   cmp r4, sl
26549   movcc r3, #0
26550   movcs r3, #1
26551   cmp r8, ip
26552   orrls r3, r3, #1
26553   cmp r3, #0
26554   beq .L9473
26555   b .L8685
26556 .L8708:
26557   cmp r4, sl
26558   cmpcc ip, r8
26559   bcs .L8685
26560 .L9473:
26561   and r3, r4, #7
26562   mov r2, ip, asr #3
26563   mov r3, r3, asl #3
26564   mov r1, r4, asr #3
26565   add r3, r3, r2, asl #6
26566   ldr r0, [sp, #48]
26567   add r3, r3, r1, asl #10
26568   ldr r1, [sp, #84]
26569   add r5, r5, r0
26570   add r3, r3, r1
26571   and r0, ip, #7
26572   ldrb  r2, [r3, r0]  @ zero_extendqisi2
26573   ldr r3, [sp, #28]
26574   cmp r2, #0
26575   add r6, r6, #1
26576   orr r2, r2, r3
26577   strneh  r2, [r7, #0]  @ movhi
26578   add lr, lr, fp
26579   cmp r9, r6
26580   mov r4, lr, asr #8
26581   mov ip, r5, asr #8
26582   add r7, r7, #2
26583   bgt .L8708
26584   b .L8685
26585 .L8969:
26586   cmp r8, #0
26587   add r3, r8, #7
26588   movge r3, r8
26589   movs  lr, r3, asr #3
26590   beq .L8685
26591   ldr r7, [sp, #4]
26592   mov ip, #0
26593   add r2, r7, r6, asl #1
26594   b .L8999
26595 .L9494:
26596   sub r0, r0, #32
26597   add r2, r2, #16
26598 .L8999:
26599   ldr r4, [r0, #0]
26600   cmp r4, #0
26601   beq .L9000
26602   ands  r3, r4, #15
26603   ldrne r8, [sp, #28]
26604   orrne r3, r1, r3
26605   orrne r3, r3, r8
26606   strneh  r3, [r2, #14] @ movhi
26607   mov r3, r4, lsr #4
26608   ands  r3, r3, #15
26609   ldrne r5, [sp, #28]
26610   orrne r3, r1, r3
26611   orrne r3, r3, r5
26612   strneh  r3, [r2, #12] @ movhi
26613   mov r3, r4, lsr #8
26614   ands  r3, r3, #15
26615   ldrne r6, [sp, #28]
26616   orrne r3, r1, r3
26617   orrne r3, r3, r6
26618   strneh  r3, [r2, #10] @ movhi
26619   mov r3, r4, lsr #12
26620   ands  r3, r3, #15
26621   ldrne r7, [sp, #28]
26622   orrne r3, r1, r3
26623   orrne r3, r3, r7
26624   strneh  r3, [r2, #8]  @ movhi
26625   mov r3, r4, lsr #16
26626   ands  r3, r3, #15
26627   ldrne r8, [sp, #28]
26628   orrne r3, r1, r3
26629   orrne r3, r3, r8
26630   strneh  r3, [r2, #6]  @ movhi
26631   mov r3, r4, lsr #20
26632   ands  r3, r3, #15
26633   ldrne r5, [sp, #28]
26634   orrne r3, r1, r3
26635   orrne r3, r3, r5
26636   strneh  r3, [r2, #4]  @ movhi
26637   mov r3, r4, lsr #24
26638   ands  r3, r3, #15
26639   ldrne r6, [sp, #28]
26640   orrne r3, r1, r3
26641   orrne r3, r3, r6
26642   strneh  r3, [r2, #2]  @ movhi
26643   movs  r3, r4, lsr #28
26644   ldrne r7, [sp, #28]
26645   orrne r3, r1, r3
26646   orrne r3, r3, r7
26647   strneh  r3, [r2, #0]  @ movhi
26648 .L9000:
26649   add ip, ip, #1
26650   cmp lr, ip
26651   bne .L9494
26652   b .L8685
26653 .L9394:
26654   cmp r8, #0
26655   add r3, r8, #7
26656   movge r3, r8
26657   movs  lr, r3, asr #3
26658   beq .L8685
26659   ldr r5, [sp, #4]
26660   ldr r3, .L9512+28
26661   add r2, r5, r6, asl #1
26662   add r0, r0, r3
26663   mov r1, #0
26664   b .L9438
26665 .L9495:
26666   sub ip, ip, #64
26667   add r2, r2, #16
26668 .L9438:
26669   ldr r4, [r0, #68]
26670   cmp r4, #0
26671   beq .L9439
26672   ands  r3, r4, #255
26673   ldrne r6, [sp, #28]
26674   orrne r3, r3, r6
26675   strneh  r3, [r2, #6]  @ movhi
26676   mov r3, r4, lsr #8
26677   ands  r3, r3, #255
26678   ldrne r7, [sp, #28]
26679   orrne r3, r3, r7
26680   strneh  r3, [r2, #4]  @ movhi
26681   mov r3, r4, lsr #16
26682   ands  r3, r3, #255
26683   ldrne r8, [sp, #28]
26684   orrne r3, r3, r8
26685   strneh  r3, [r2, #2]  @ movhi
26686   movs  r3, r4, lsr #24
26687   ldrne r4, [sp, #28]
26688   orrne r3, r3, r4
26689   strneh  r3, [r2, #0]  @ movhi
26690 .L9439:
26691   ldr r4, [ip, #0]
26692   cmp r4, #0
26693   beq .L9448
26694   ands  r3, r4, #255
26695   ldrne r5, [sp, #28]
26696   orrne r3, r3, r5
26697   strneh  r3, [r2, #14] @ movhi
26698   mov r3, r4, lsr #8
26699   ands  r3, r3, #255
26700   ldrne r6, [sp, #28]
26701   orrne r3, r3, r6
26702   strneh  r3, [r2, #12] @ movhi
26703   mov r3, r4, lsr #16
26704   ands  r3, r3, #255
26705   ldrne r7, [sp, #28]
26706   orrne r3, r3, r7
26707   strneh  r3, [r2, #10] @ movhi
26708   movs  r3, r4, lsr #24
26709   ldrne r8, [sp, #28]
26710   orrne r3, r3, r8
26711   strneh  r3, [r2, #8]  @ movhi
26712 .L9448:
26713   add r1, r1, #1
26714   cmp lr, r1
26715   sub r0, r0, #64
26716   bne .L9495
26717   b .L8685
26718 .L8839:
26719   cmp r8, #0
26720   add r3, r8, #7
26721   movge r3, r8
26722   movs  lr, r3, asr #3
26723   beq .L8685
26724   ldr r7, [sp, #4]
26725   mov ip, #0
26726   add r2, r7, r6, asl #1
26727   b .L8869
26728 .L9496:
26729   add r0, r0, #32
26730   add r2, r2, #16
26731 .L8869:
26732   ldr r4, [r0, #0]
26733   cmp r4, #0
26734   beq .L8870
26735   ands  r3, r4, #15
26736   ldrne r8, [sp, #28]
26737   orrne r3, r1, r3
26738   orrne r3, r3, r8
26739   strneh  r3, [r2, #0]  @ movhi
26740   mov r3, r4, lsr #4
26741   ands  r3, r3, #15
26742   ldrne r5, [sp, #28]
26743   orrne r3, r1, r3
26744   orrne r3, r3, r5
26745   strneh  r3, [r2, #2]  @ movhi
26746   mov r3, r4, lsr #8
26747   ands  r3, r3, #15
26748   ldrne r6, [sp, #28]
26749   orrne r3, r1, r3
26750   orrne r3, r3, r6
26751   strneh  r3, [r2, #4]  @ movhi
26752   mov r3, r4, lsr #12
26753   ands  r3, r3, #15
26754   ldrne r7, [sp, #28]
26755   orrne r3, r1, r3
26756   orrne r3, r3, r7
26757   strneh  r3, [r2, #6]  @ movhi
26758   mov r3, r4, lsr #16
26759   ands  r3, r3, #15
26760   ldrne r8, [sp, #28]
26761   orrne r3, r1, r3
26762   orrne r3, r3, r8
26763   strneh  r3, [r2, #8]  @ movhi
26764   mov r3, r4, lsr #20
26765   ands  r3, r3, #15
26766   ldrne r5, [sp, #28]
26767   orrne r3, r1, r3
26768   orrne r3, r3, r5
26769   strneh  r3, [r2, #10] @ movhi
26770   mov r3, r4, lsr #24
26771   ands  r3, r3, #15
26772   ldrne r6, [sp, #28]
26773   orrne r3, r1, r3
26774   orrne r3, r3, r6
26775   strneh  r3, [r2, #12] @ movhi
26776   movs  r3, r4, lsr #28
26777   ldrne r7, [sp, #28]
26778   orrne r3, r1, r3
26779   orrne r3, r3, r7
26780   strneh  r3, [r2, #14] @ movhi
26781 .L8870:
26782   add ip, ip, #1
26783   cmp lr, ip
26784   bne .L9496
26785   b .L8685
26786 .L9174:
26787   cmp r8, #0
26788   add r3, r8, #7
26789   movge r3, r8
26790   movs  lr, r3, asr #3
26791   beq .L8685
26792   ldr r1, [sp, #4]
26793   ldr r3, .L9512+32
26794   add r2, r1, r6, asl #1
26795   add r0, r0, r3
26796   mov r1, #0
26797   b .L9218
26798 .L9497:
26799   add ip, ip, #64
26800   add r2, r2, #16
26801 .L9218:
26802   ldr r4, [ip, #0]
26803   cmp r4, #0
26804   beq .L9219
26805   ands  r3, r4, #255
26806   ldrne r5, [sp, #28]
26807   orrne r3, r3, r5
26808   strneh  r3, [r2, #0]  @ movhi
26809   mov r3, r4, lsr #8
26810   ands  r3, r3, #255
26811   ldrne r6, [sp, #28]
26812   orrne r3, r3, r6
26813   strneh  r3, [r2, #2]  @ movhi
26814   mov r3, r4, lsr #16
26815   ands  r3, r3, #255
26816   ldrne r7, [sp, #28]
26817   orrne r3, r3, r7
26818   strneh  r3, [r2, #4]  @ movhi
26819   movs  r3, r4, lsr #24
26820   ldrne r8, [sp, #28]
26821   orrne r3, r3, r8
26822   strneh  r3, [r2, #6]  @ movhi
26823 .L9219:
26824   ldr r4, [r0, #-60]
26825   cmp r4, #0
26826   beq .L9228
26827   ands  r3, r4, #255
26828   ldrne r5, [sp, #28]
26829   orrne r3, r3, r5
26830   strneh  r3, [r2, #8]  @ movhi
26831   mov r3, r4, lsr #8
26832   ands  r3, r3, #255
26833   ldrne r6, [sp, #28]
26834   orrne r3, r3, r6
26835   strneh  r3, [r2, #10] @ movhi
26836   mov r3, r4, lsr #16
26837   ands  r3, r3, #255
26838   ldrne r7, [sp, #28]
26839   orrne r3, r3, r7
26840   strneh  r3, [r2, #12] @ movhi
26841   movs  r3, r4, lsr #24
26842   ldrne r8, [sp, #28]
26843   orrne r3, r3, r8
26844   strneh  r3, [r2, #14] @ movhi
26845 .L9228:
26846   add r1, r1, #1
26847   cmp lr, r1
26848   add r0, r0, #64
26849   bne .L9497
26850   b .L8685
26851 .L9021:
26852   mov r3, r1, lsr #3
26853   ands  r2, r1, #7
26854   add r0, ip, r3, asl #6
26855   ldreq r1, [sp, #68]
26856   beq .L9125
26857   cmp r2, #3
26858   rsb lr, r2, #8
26859   bhi .L9498
26860   subs  r5, lr, #4
26861   ldr r1, [r0, #0]
26862   ldreq r1, [sp, #68]
26863   beq .L9138
26864   mov r3, r2, asl #3
26865   mov r2, r1, lsr r3
26866   mov ip, #0
26867 .L9139:
26868   ands  r3, r2, #255
26869   ldr r1, [sp, #28]
26870   ldrne r6, [sp, #68]
26871   orr r3, r3, r1
26872   mov r1, ip, asl #1
26873   add ip, ip, #1
26874   strneh  r3, [r1, r6]  @ movhi
26875   cmp ip, r5
26876   mov r2, r2, lsr #8
26877   bne .L9139
26878   ldr r7, [sp, #68]
26879   add r3, r7, lr, asl #1
26880   sub r1, r3, #8
26881 .L9138:
26882   ldr r2, [r0, #4]
26883   cmp r2, #0
26884   beq .L9144
26885   ands  r3, r2, #255
26886   ldrne r8, [sp, #28]
26887   orrne r3, r3, r8
26888   strneh  r3, [r1, #0]  @ movhi
26889   mov r3, r2, lsr #8
26890   ands  r3, r3, #255
26891   ldrne ip, [sp, #28]
26892   orrne r3, r3, ip
26893   strneh  r3, [r1, #2]  @ movhi
26894   mov r3, r2, lsr #16
26895   ands  r3, r3, #255
26896   ldrne lr, [sp, #28]
26897   orrne r3, r3, lr
26898   strneh  r3, [r1, #4]  @ movhi
26899   movs  r3, r2, lsr #24
26900   ldrne r2, [sp, #28]
26901   orrne r3, r3, r2
26902   strneh  r3, [r1, #6]  @ movhi
26903 .L9144:
26904   add r1, r1, #8
26905 .L9130:
26906   add r0, r0, #64
26907 .L9125:
26908   movs  lr, r4, lsr #3
26909   beq .L8685
26910   mov ip, #0
26911   b .L9154
26912 .L9499:
26913   add r0, r0, #64
26914   add r1, r1, #16
26915 .L9154:
26916   ldr r2, [r0, #0]
26917   cmp r2, #0
26918   beq .L9155
26919   ands  r3, r2, #255
26920   ldrne r4, [sp, #28]
26921   orrne r3, r3, r4
26922   strneh  r3, [r1, #0]  @ movhi
26923   mov r3, r2, lsr #8
26924   ands  r3, r3, #255
26925   ldrne r5, [sp, #28]
26926   orrne r3, r3, r5
26927   strneh  r3, [r1, #2]  @ movhi
26928   mov r3, r2, lsr #16
26929   ands  r3, r3, #255
26930   ldrne r6, [sp, #28]
26931   orrne r3, r3, r6
26932   strneh  r3, [r1, #4]  @ movhi
26933   movs  r3, r2, lsr #24
26934   ldrne r7, [sp, #28]
26935   orrne r3, r3, r7
26936   strneh  r3, [r1, #6]  @ movhi
26937 .L9155:
26938   ldr r2, [r0, #4]
26939   cmp r2, #0
26940   beq .L9164
26941   ands  r3, r2, #255
26942   ldrne r8, [sp, #28]
26943   orrne r3, r3, r8
26944   strneh  r3, [r1, #8]  @ movhi
26945   mov r3, r2, lsr #8
26946   ands  r3, r3, #255
26947   ldrne r4, [sp, #28]
26948   orrne r3, r3, r4
26949   strneh  r3, [r1, #10] @ movhi
26950   mov r3, r2, lsr #16
26951   ands  r3, r3, #255
26952   ldrne r5, [sp, #28]
26953   orrne r3, r3, r5
26954   strneh  r3, [r1, #12] @ movhi
26955   movs  r3, r2, lsr #24
26956   ldrne r6, [sp, #28]
26957   orrne r3, r3, r6
26958   strneh  r3, [r1, #14] @ movhi
26959 .L9164:
26960   add ip, ip, #1
26961   cmp lr, ip
26962   bne .L9499
26963   b .L8685
26964 .L8891:
26965   ands  r2, r4, #7
26966   mov r3, r4, lsr #3
26967   sub r0, r0, r3, asl #5
26968   ldreq r5, [sp, #68]
26969   beq .L8940
26970   rsbs  lr, r2, #8
26971   ldr r4, [r0, #0]
26972   ldreq r5, [sp, #68]
26973   beq .L8943
26974   mov r3, r2, asl #2
26975   mov r4, r4, asl r3
26976   mov r6, #0
26977 .L8944:
26978   movs  r3, r4, lsr #28
26979   ldr r7, [sp, #28]
26980   ldrne r8, [sp, #68]
26981   orr r3, r1, r3
26982   mov r5, r6, asl #1
26983   orr r3, r3, r7
26984   add r6, r6, #1
26985   strneh  r3, [r5, r8]  @ movhi
26986   cmp lr, r6
26987   mov r4, r4, asl #4
26988   bne .L8944
26989   ldr r2, [sp, #68]
26990   add r5, r2, lr, asl #1
26991 .L8943:
26992   sub r0, r0, #32
26993 .L8940:
26994   movs  ip, ip, lsr #3
26995   beq .L8685
26996   mov r2, #0
26997   b .L8950
26998 .L9500:
26999   sub r0, r0, #32
27000   add r5, r5, #16
27001 .L8950:
27002   ldr r4, [r0, #0]
27003   cmp r4, #0
27004   beq .L8951
27005   ands  r3, r4, #15
27006   ldrne r6, [sp, #28]
27007   orrne r3, r1, r3
27008   orrne r3, r3, r6
27009   strneh  r3, [r5, #14] @ movhi
27010   mov r3, r4, lsr #4
27011   ands  r3, r3, #15
27012   ldrne r7, [sp, #28]
27013   orrne r3, r1, r3
27014   orrne r3, r3, r7
27015   strneh  r3, [r5, #12] @ movhi
27016   mov r3, r4, lsr #8
27017   ands  r3, r3, #15
27018   ldrne r8, [sp, #28]
27019   orrne r3, r1, r3
27020   orrne r3, r3, r8
27021   strneh  r3, [r5, #10] @ movhi
27022   mov r3, r4, lsr #12
27023   ands  r3, r3, #15
27024   ldrne lr, [sp, #28]
27025   orrne r3, r1, r3
27026   orrne r3, r3, lr
27027   strneh  r3, [r5, #8]  @ movhi
27028   mov r3, r4, lsr #16
27029   ands  r3, r3, #15
27030   ldrne r6, [sp, #28]
27031   orrne r3, r1, r3
27032   orrne r3, r3, r6
27033   strneh  r3, [r5, #6]  @ movhi
27034   mov r3, r4, lsr #20
27035   ands  r3, r3, #15
27036   ldrne r7, [sp, #28]
27037   orrne r3, r1, r3
27038   orrne r3, r3, r7
27039   strneh  r3, [r5, #4]  @ movhi
27040   mov r3, r4, lsr #24
27041   ands  r3, r3, #15
27042   ldrne r8, [sp, #28]
27043   orrne r3, r1, r3
27044   orrne r3, r3, r8
27045   strneh  r3, [r5, #2]  @ movhi
27046   movs  r3, r4, lsr #28
27047   ldrne lr, [sp, #28]
27048   orrne r3, r1, r3
27049   orrne r3, r3, lr
27050   strneh  r3, [r5, #0]  @ movhi
27051 .L8951:
27052   add r2, r2, #1
27053   cmp r2, ip
27054   bne .L9500
27055   b .L8685
27056 .L9241:
27057   ands  r0, r1, #7
27058   mov r3, r1, lsr #3
27059   sub r2, ip, r3, asl #6
27060   ldreq r0, [sp, #68]
27061   beq .L9345
27062   cmp r0, #3
27063   rsb lr, r0, #8
27064   bhi .L9501
27065   subs  r5, lr, #4
27066   ldr r1, [r2, #4]
27067   ldreq r0, [sp, #68]
27068   beq .L9358
27069   mov r3, r0, asl #3
27070   sub r3, r3, #32
27071   mov r1, r1, asl r3
27072   mov ip, #0
27073 .L9359:
27074   movs  r3, r1, lsr #24
27075   ldr r0, [sp, #28]
27076   ldrne r6, [sp, #68]
27077   orr r3, r3, r0
27078   mov r0, ip, asl #1
27079   add ip, ip, #1
27080   strneh  r3, [r0, r6]  @ movhi
27081   cmp r5, ip
27082   mov r1, r1, asl #8
27083   bne .L9359
27084   ldr r7, [sp, #68]
27085   add r3, r7, lr, asl #1
27086   sub r0, r3, #8
27087 .L9358:
27088   ldr r1, [r2, #0]
27089   cmp r1, #0
27090   beq .L9364
27091   ands  r3, r1, #255
27092   ldrne r8, [sp, #28]
27093   orrne r3, r3, r8
27094   strneh  r3, [r0, #6]  @ movhi
27095   mov r3, r1, lsr #8
27096   ands  r3, r3, #255
27097   ldrne ip, [sp, #28]
27098   orrne r3, r3, ip
27099   strneh  r3, [r0, #4]  @ movhi
27100   mov r3, r1, lsr #16
27101   ands  r3, r3, #255
27102   ldrne lr, [sp, #28]
27103   orrne r3, r3, lr
27104   strneh  r3, [r0, #2]  @ movhi
27105   movs  r3, r1, lsr #24
27106   ldrne r1, [sp, #28]
27107   orrne r3, r3, r1
27108   strneh  r3, [r0, #0]  @ movhi
27109 .L9364:
27110   add r0, r0, #8
27111 .L9350:
27112   sub r2, r2, #64
27113 .L9345:
27114   movs  lr, r4, lsr #3
27115   beq .L8685
27116   mov ip, #0
27117   b .L9374
27118 .L9502:
27119   sub r2, r2, #64
27120   add r0, r0, #16
27121 .L9374:
27122   ldr r1, [r2, #4]
27123   cmp r1, #0
27124   beq .L9375
27125   ands  r3, r1, #255
27126   ldrne r4, [sp, #28]
27127   orrne r3, r3, r4
27128   strneh  r3, [r0, #6]  @ movhi
27129   mov r3, r1, lsr #8
27130   ands  r3, r3, #255
27131   ldrne r5, [sp, #28]
27132   orrne r3, r3, r5
27133   strneh  r3, [r0, #4]  @ movhi
27134   mov r3, r1, lsr #16
27135   ands  r3, r3, #255
27136   ldrne r6, [sp, #28]
27137   orrne r3, r3, r6
27138   strneh  r3, [r0, #2]  @ movhi
27139   movs  r3, r1, lsr #24
27140   ldrne r7, [sp, #28]
27141   orrne r3, r3, r7
27142   strneh  r3, [r0, #0]  @ movhi
27143 .L9375:
27144   ldr r1, [r2, #0]
27145   cmp r1, #0
27146   beq .L9384
27147   ands  r3, r1, #255
27148   ldrne r8, [sp, #28]
27149   orrne r3, r3, r8
27150   strneh  r3, [r0, #14] @ movhi
27151   mov r3, r1, lsr #8
27152   ands  r3, r3, #255
27153   ldrne r4, [sp, #28]
27154   orrne r3, r3, r4
27155   strneh  r3, [r0, #12] @ movhi
27156   mov r3, r1, lsr #16
27157   ands  r3, r3, #255
27158   ldrne r5, [sp, #28]
27159   orrne r3, r3, r5
27160   strneh  r3, [r0, #10] @ movhi
27161   movs  r3, r1, lsr #24
27162   ldrne r6, [sp, #28]
27163   orrne r3, r3, r6
27164   strneh  r3, [r0, #8]  @ movhi
27165 .L9384:
27166   add ip, ip, #1
27167   cmp ip, lr
27168   bne .L9502
27169   b .L8685
27170 .L8761:
27171   mov r3, r4, lsr #3
27172   mov r2, r3, asl #5
27173   ands  r3, r4, #7
27174   add lr, r0, r2
27175   ldreq ip, [sp, #68]
27176   beq .L8810
27177   rsbs  r4, r3, #8
27178   ldr r0, [r0, r2]
27179   ldreq ip, [sp, #68]
27180   beq .L8813
27181   mov r3, r3, asl #2
27182   mov r0, r0, lsr r3
27183   mov ip, #0
27184 .L8814:
27185   ands  r3, r0, #15
27186   ldr r6, [sp, #28]
27187   ldrne r7, [sp, #68]
27188   orr r3, r1, r3
27189   mov r2, ip, asl #1
27190   orr r3, r3, r6
27191   add ip, ip, #1
27192   strneh  r3, [r2, r7]  @ movhi
27193   cmp ip, r4
27194   mov r0, r0, lsr #4
27195   bne .L8814
27196   ldr r8, [sp, #68]
27197   add ip, r8, r4, asl #1
27198 .L8813:
27199   add lr, lr, #32
27200 .L8810:
27201   movs  r4, r5, lsr #3
27202   beq .L8685
27203   mov r0, #0
27204   b .L8820
27205 .L9503:
27206   add lr, lr, #32
27207   add ip, ip, #16
27208 .L8820:
27209   ldr r2, [lr, #0]
27210   cmp r2, #0
27211   beq .L8821
27212   ands  r3, r2, #15
27213   ldrne r5, [sp, #28]
27214   orrne r3, r1, r3
27215   orrne r3, r3, r5
27216   strneh  r3, [ip, #0]  @ movhi
27217   mov r3, r2, lsr #4
27218   ands  r3, r3, #15
27219   ldrne r6, [sp, #28]
27220   orrne r3, r1, r3
27221   orrne r3, r3, r6
27222   strneh  r3, [ip, #2]  @ movhi
27223   mov r3, r2, lsr #8
27224   ands  r3, r3, #15
27225   ldrne r7, [sp, #28]
27226   orrne r3, r1, r3
27227   orrne r3, r3, r7
27228   strneh  r3, [ip, #4]  @ movhi
27229   mov r3, r2, lsr #12
27230   ands  r3, r3, #15
27231   ldrne r8, [sp, #28]
27232   orrne r3, r1, r3
27233   orrne r3, r3, r8
27234   strneh  r3, [ip, #6]  @ movhi
27235   mov r3, r2, lsr #16
27236   ands  r3, r3, #15
27237   ldrne r5, [sp, #28]
27238   orrne r3, r1, r3
27239   orrne r3, r3, r5
27240   strneh  r3, [ip, #8]  @ movhi
27241   mov r3, r2, lsr #20
27242   ands  r3, r3, #15
27243   ldrne r6, [sp, #28]
27244   orrne r3, r1, r3
27245   orrne r3, r3, r6
27246   strneh  r3, [ip, #10] @ movhi
27247   mov r3, r2, lsr #24
27248   ands  r3, r3, #15
27249   ldrne r7, [sp, #28]
27250   orrne r3, r1, r3
27251   orrne r3, r3, r7
27252   strneh  r3, [ip, #12] @ movhi
27253   movs  r3, r2, lsr #28
27254   ldrne r8, [sp, #28]
27255   orrne r3, r1, r3
27256   orrne r3, r3, r8
27257   strneh  r3, [ip, #14] @ movhi
27258 .L8821:
27259   add r0, r0, #1
27260   cmp r0, r4
27261   bne .L9503
27262   b .L8685
27263 .L9023:
27264   ldr r1, [sp, #92]
27265   rsb ip, r0, #8
27266   cmp r1, ip
27267   blt .L9504
27268   cmp r0, #3
27269   bls .L9056
27270   cmp ip, #0
27271   ldr r2, [r6, #4]
27272   ldreq r4, [sp, #68]
27273   beq .L9060
27274   mov r3, r0, asl #3
27275   sub r3, r3, #32
27276   mov r1, r2, lsr r3
27277   mov r0, #0
27278 .L9061:
27279   ands  r3, r1, #255
27280   ldr r8, [sp, #28]
27281   ldrne lr, [sp, #68]
27282   mov r2, r0, asl #1
27283   orr r3, r3, r8
27284   add r0, r0, #1
27285   strneh  r3, [r2, lr]  @ movhi
27286   cmp ip, r0
27287   mov r1, r1, lsr #8
27288   bne .L9061
27289   ldr r0, [sp, #68]
27290   add r4, r0, ip, asl #1
27291 .L9060:
27292   ldr r1, [sp, #92]
27293   add r6, r6, #64
27294   rsb r5, ip, r1
27295   b .L9025
27296 .L8893:
27297   ldr r2, [sp, #92]
27298   rsb r6, lr, #8
27299   cmp r2, r6
27300   blt .L9505
27301   cmp r6, #0
27302   ldr r2, [r0, #0]
27303   ldreq r8, [sp, #68]
27304   beq .L8906
27305   mov r3, lr, asl #2
27306   mov lr, r2, asl r3
27307   mov r5, #0
27308 .L8907:
27309   movs  r3, lr, lsr #28
27310   ldr r7, [sp, #28]
27311   ldrne r8, [sp, #68]
27312   orr r3, r1, r3
27313   mov r4, r5, asl #1
27314   orr r3, r3, r7
27315   add r5, r5, #1
27316   strneh  r3, [r4, r8]  @ movhi
27317   cmp r6, r5
27318   mov lr, lr, asl #4
27319   bne .L8907
27320   ldr ip, [sp, #68]
27321   add r8, ip, r6, asl #1
27322 .L8906:
27323   ldr lr, [sp, #92]
27324   sub r0, r0, #32
27325   rsb r2, r6, lr
27326   b .L8895
27327 .L8763:
27328   ldr r7, [sp, #92]
27329   rsb lr, r3, #8
27330   cmp r7, lr
27331   blt .L9506
27332   cmp lr, #0
27333   ldr r2, [r5, #0]
27334   ldreq r6, [sp, #68]
27335   beq .L8776
27336   mov r3, r3, asl #2
27337   mov r2, r2, lsr r3
27338   mov ip, #0
27339 .L8777:
27340   ands  r3, r2, #15
27341   ldr r4, [sp, #28]
27342   ldrne r6, [sp, #68]
27343   orr r3, r1, r3
27344   mov r0, ip, asl #1
27345   orr r3, r3, r4
27346   add ip, ip, #1
27347   strneh  r3, [r0, r6]  @ movhi
27348   cmp lr, ip
27349   mov r2, r2, lsr #4
27350   bne .L8777
27351   ldr r7, [sp, #68]
27352   add r6, r7, lr, asl #1
27353 .L8776:
27354   ldr r8, [sp, #92]
27355   add r5, r5, #32
27356   rsb r7, lr, r8
27357   b .L8765
27358 .L9243:
27359   ldr r1, [sp, #92]
27360   rsb ip, r0, #8
27361   cmp r1, ip
27362   blt .L9507
27363   cmp r0, #3
27364   bls .L9276
27365   cmp ip, #0
27366   ldr r2, [r6, #0]
27367   ldreq r4, [sp, #68]
27368   beq .L9280
27369   mov r3, r0, asl #3
27370   sub r3, r3, #32
27371   mov r2, r2, asl r3
27372   mov r0, #0
27373 .L9281:
27374   movs  r3, r2, lsr #24
27375   ldr r8, [sp, #28]
27376   ldrne lr, [sp, #68]
27377   mov r1, r0, asl #1
27378   orr r3, r3, r8
27379   add r0, r0, #1
27380   strneh  r3, [r1, lr]  @ movhi
27381   cmp ip, r0
27382   mov r2, r2, asl #8
27383   bne .L9281
27384   ldr r0, [sp, #68]
27385   add r4, r0, ip, asl #1
27386 .L9280:
27387   ldr r1, [sp, #92]
27388   sub r6, r6, #64
27389   rsb r5, ip, r1
27390   b .L9245
27391 .L9507:
27392   cmp r1, #0
27393   ble .L8685
27394   cmp r0, #3
27395   bls .L9249
27396   mov r3, r0, asl #3
27397   ldr r2, [r6, #0]
27398   sub r3, r3, #32
27399   mov r2, r2, asl r3
27400   mov r0, #0
27401 .L9252:
27402   movs  r3, r2, lsr #24
27403   ldr r4, [sp, #28]
27404   ldrne r5, [sp, #68]
27405   ldr r6, [sp, #92]
27406   mov r1, r0, asl #1
27407   orr r3, r3, r4
27408   add r0, r0, #1
27409   strneh  r3, [r1, r5]  @ movhi
27410   cmp r6, r0
27411   mov r2, r2, asl #8
27412   bne .L9252
27413   b .L8685
27414 .L9506:
27415   cmp r7, #0
27416   ble .L8685
27417   ldr r2, [r0, r2]
27418   mov r3, r3, asl #2
27419   mov r0, r2, lsr r3
27420   mov ip, #0
27421 .L8770:
27422   ands  r3, r0, #15
27423   ldr r8, [sp, #28]
27424   ldrne lr, [sp, #68]
27425   orr r3, r1, r3
27426   mov r2, ip, asl #1
27427   orr r3, r3, r8
27428   strneh  r3, [r2, lr]  @ movhi
27429   ldr r2, [sp, #92]
27430   add ip, ip, #1
27431   cmp r2, ip
27432   mov r0, r0, lsr #4
27433   bne .L8770
27434   b .L8685
27435 .L9505:
27436   cmp r2, #0
27437   ble .L8685
27438   ldr r2, [r0, #0]
27439   mov r3, lr, asl #2
27440   mov r0, r2, asl r3
27441   mov ip, #0
27442 .L8900:
27443   movs  r3, r0, lsr #28
27444   ldr r4, [sp, #28]
27445   ldrne r5, [sp, #68]
27446   orr r3, r1, r3
27447   ldr r6, [sp, #92]
27448   mov r2, ip, asl #1
27449   orr r3, r3, r4
27450   add ip, ip, #1
27451   strneh  r3, [r2, r5]  @ movhi
27452   cmp r6, ip
27453   mov r0, r0, asl #4
27454   bne .L8900
27455   b .L8685
27456 .L9501:
27457   cmp lr, #0
27458   ldr r1, [r2, #0]
27459   ldreq r0, [sp, #68]
27460   beq .L9350
27461   mov r3, r0, asl #3
27462   sub r3, r3, #32
27463   mov r1, r1, asl r3
27464   mov ip, #0
27465 .L9351:
27466   movs  r3, r1, lsr #24
27467   ldr r6, [sp, #28]
27468   ldrne r7, [sp, #68]
27469   mov r0, ip, asl #1
27470   orr r3, r3, r6
27471   add ip, ip, #1
27472   strneh  r3, [r0, r7]  @ movhi
27473   cmp ip, lr
27474   mov r1, r1, asl #8
27475   bne .L9351
27476   ldr r8, [sp, #68]
27477   sub r2, r2, #64
27478   add r0, r8, lr, asl #1
27479   b .L9345
27480 .L9498:
27481   cmp lr, #0
27482   ldr r1, [r0, #4]
27483   ldreq r1, [sp, #68]
27484   beq .L9130
27485   mov r3, r2, asl #3
27486   sub r3, r3, #32
27487   mov r2, r1, lsr r3
27488   mov ip, #0
27489 .L9131:
27490   ands  r3, r2, #255
27491   ldr r6, [sp, #28]
27492   ldrne r7, [sp, #68]
27493   mov r1, ip, asl #1
27494   orr r3, r3, r6
27495   add ip, ip, #1
27496   strneh  r3, [r1, r7]  @ movhi
27497   cmp ip, lr
27498   mov r2, r2, lsr #8
27499   bne .L9131
27500   ldr r8, [sp, #68]
27501   add r0, r0, #64
27502   add r1, r8, lr, asl #1
27503   b .L9125
27504 .L9504:
27505   cmp r1, #0
27506   ble .L8685
27507   cmp r0, #3
27508   bls .L9029
27509   mov r3, r0, asl #3
27510   ldr r2, [r6, #4]
27511   sub r3, r3, #32
27512   mov r1, r2, lsr r3
27513   mov r0, #0
27514 .L9032:
27515   ands  r3, r1, #255
27516   ldr r2, [sp, #28]
27517   ldrne r4, [sp, #68]
27518   ldr r5, [sp, #92]
27519   orr r3, r3, r2
27520   mov r2, r0, asl #1
27521   add r0, r0, #1
27522   strneh  r3, [r2, r4]  @ movhi
27523   cmp r5, r0
27524   mov r1, r1, lsr #8
27525   bne .L9032
27526   b .L8685
27527 .L9511:
27528   mov r6, #0
27529   b .L8743
27530 .L9276:
27531   subs  lr, ip, #4
27532   ldr r2, [r6, #4]
27533   ldreq r1, [sp, #68]
27534   beq .L9288
27535   mov r3, r0, asl #3
27536   sub r3, r3, #32
27537   mov r2, r2, asl r3
27538   mov r0, #0
27539 .L9289:
27540   movs  r3, r2, lsr #24
27541   ldr r1, [sp, #28]
27542   ldrne r4, [sp, #68]
27543   orr r3, r3, r1
27544   mov r1, r0, asl #1
27545   add r0, r0, #1
27546   strneh  r3, [r1, r4]  @ movhi
27547   cmp lr, r0
27548   mov r2, r2, asl #8
27549   bne .L9289
27550   ldr r5, [sp, #68]
27551   add r3, r5, ip, asl #1
27552   sub r1, r3, #8
27553 .L9288:
27554   ldr r2, [r6, #0]
27555   cmp r2, #0
27556   beq .L9294
27557   ands  r3, r2, #255
27558   ldrne r7, [sp, #28]
27559   orrne r3, r3, r7
27560   strneh  r3, [r1, #6]  @ movhi
27561   mov r3, r2, lsr #8
27562   ands  r3, r3, #255
27563   ldrne r8, [sp, #28]
27564   orrne r3, r3, r8
27565   strneh  r3, [r1, #4]  @ movhi
27566   mov r3, r2, lsr #16
27567   ands  r3, r3, #255
27568   ldrne lr, [sp, #28]
27569   orrne r3, r3, lr
27570   strneh  r3, [r1, #2]  @ movhi
27571   movs  r3, r2, lsr #24
27572   ldrne r0, [sp, #28]
27573   orrne r3, r3, r0
27574   strneh  r3, [r1, #0]  @ movhi
27575 .L9294:
27576   add r4, r1, #8
27577   b .L9280
27578 .L9056:
27579   subs  lr, ip, #4
27580   ldr r2, [r6, #0]
27581   ldreq r1, [sp, #68]
27582   beq .L9068
27583   mov r3, r0, asl #3
27584   mov r1, r2, lsr r3
27585   mov r0, #0
27586 .L9069:
27587   ands  r3, r1, #255
27588   ldr r2, [sp, #28]
27589   ldrne r4, [sp, #68]
27590   orr r3, r3, r2
27591   mov r2, r0, asl #1
27592   add r0, r0, #1
27593   strneh  r3, [r2, r4]  @ movhi
27594   cmp r0, lr
27595   mov r1, r1, lsr #8
27596   bne .L9069
27597   ldr r5, [sp, #68]
27598   add r3, r5, ip, asl #1
27599   sub r1, r3, #8
27600 .L9068:
27601   ldr r2, [r6, #4]
27602   cmp r2, #0
27603   beq .L9074
27604   ands  r3, r2, #255
27605   ldrne r7, [sp, #28]
27606   orrne r3, r3, r7
27607   strneh  r3, [r1, #0]  @ movhi
27608   mov r3, r2, lsr #8
27609   ands  r3, r3, #255
27610   ldrne r8, [sp, #28]
27611   orrne r3, r3, r8
27612   strneh  r3, [r1, #2]  @ movhi
27613   mov r3, r2, lsr #16
27614   ands  r3, r3, #255
27615   ldrne lr, [sp, #28]
27616   orrne r3, r3, lr
27617   strneh  r3, [r1, #4]  @ movhi
27618   movs  r3, r2, lsr #24
27619   ldrne r0, [sp, #28]
27620   orrne r3, r3, r0
27621   strneh  r3, [r1, #6]  @ movhi
27622 .L9074:
27623   add r4, r1, #8
27624   b .L9060
27625 .L9509:
27626   ldr r5, [sp, #20]
27627   b .L9474
27628 .L9508:
27629   mov ip, fp
27630   b .L9472
27631 .L9249:
27632   ldr r7, [sp, #92]
27633   mov r3, r0, asl #3
27634   ldr r1, [r6, #4]
27635   add r2, r7, r0
27636   sub r3, r3, #32
27637   cmp r2, #4
27638   mov r1, r1, asl r3
27639   bhi .L9256
27640   cmp r7, #0
27641   movne r0, #0
27642   beq .L8685
27643 .L9272:
27644   movs  r3, r1, lsr #24
27645   ldr r5, [sp, #28]
27646   ldrne r6, [sp, #68]
27647   ldr r7, [sp, #92]
27648   mov r2, r0, asl #1
27649   orr r3, r3, r5
27650   add r0, r0, #1
27651   strneh  r3, [r2, r6]  @ movhi
27652   cmp r7, r0
27653   mov r1, r1, asl #8
27654   bne .L9272
27655   b .L8685
27656 .L9029:
27657   ldr r7, [sp, #92]
27658   ldr r3, [r6, #0]
27659   add r2, r7, r0
27660   cmp r2, #4
27661   mov r1, r0, asl #3
27662   mov r2, r3, lsr r1
27663   bhi .L9036
27664   cmp r7, #0
27665   movne r0, #0
27666   beq .L8685
27667 .L9052:
27668   ands  r3, r2, #255
27669   ldr r5, [sp, #28]
27670   ldrne r6, [sp, #68]
27671   ldr r7, [sp, #92]
27672   mov r1, r0, asl #1
27673   orr r3, r3, r5
27674   add r0, r0, #1
27675   strneh  r3, [r1, r6]  @ movhi
27676   cmp r7, r0
27677   mov r2, r2, lsr #8
27678   bne .L9052
27679   b .L8685
27680 .L9256:
27681   rsbs  ip, r0, #4
27682   ldreq lr, [sp, #68]
27683   beq .L9261
27684   mov r0, #0
27685 .L9262:
27686   movs  r3, r1, lsr #24
27687   ldr r8, [sp, #28]
27688   ldrne lr, [sp, #68]
27689   mov r2, r0, asl #1
27690   orr r3, r3, r8
27691   add r0, r0, #1
27692   strneh  r3, [r2, lr]  @ movhi
27693   cmp r0, ip
27694   mov r1, r1, asl #8
27695   bne .L9262
27696   ldr r0, [sp, #68]
27697   add lr, r0, ip, asl #1
27698 .L9261:
27699   ldr r1, [sp, #92]
27700   ldr r2, [r6, #0]
27701   subs  ip, r1, ip
27702   beq .L8685
27703   mov r0, #0
27704 .L9268:
27705   ldr r4, [sp, #28]
27706   movs  r3, r2, lsr #24
27707   mov r1, r0, asl #1
27708   orr r3, r3, r4
27709   add r0, r0, #1
27710   strneh  r3, [r1, lr]  @ movhi
27711   cmp r0, ip
27712   mov r2, r2, asl #8
27713   bne .L9268
27714   b .L8685
27715 .L9036:
27716   rsbs  ip, r0, #4
27717   ldreq lr, [sp, #68]
27718   beq .L9041
27719   mov r0, #0
27720 .L9042:
27721   ands  r3, r2, #255
27722   ldr r8, [sp, #28]
27723   ldrne lr, [sp, #68]
27724   mov r1, r0, asl #1
27725   orr r3, r3, r8
27726   add r0, r0, #1
27727   strneh  r3, [r1, lr]  @ movhi
27728   cmp r0, ip
27729   mov r2, r2, lsr #8
27730   bne .L9042
27731   ldr r0, [sp, #68]
27732   add lr, r0, ip, asl #1
27733 .L9041:
27734   ldr r1, [sp, #92]
27735   ldr r2, [r6, #4]
27736   subs  ip, r1, ip
27737   beq .L8685
27738   mov r0, #0
27739 .L9048:
27740   ldr r4, [sp, #28]
27741   ands  r3, r2, #255
27742   mov r1, r0, asl #1
27743   orr r3, r3, r4
27744   add r0, r0, #1
27745   strneh  r3, [r1, lr]  @ movhi
27746   cmp r0, ip
27747   mov r2, r2, lsr #8
27748   bne .L9048
27749   b .L8685
27750   .size render_scanline_obj_color16_2D, .-render_scanline_obj_color16_2D
27751   .align  2
27752   .global render_scanline_obj_color32_1D
27753   .type render_scanline_obj_color32_1D, %function
27754 render_scanline_obj_color32_1D:
27755   @ args = 0, pretend = 0, frame = 112
27756   @ frame_needed = 0, uses_anonymous_args = 0
27757   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
27758   ldr ip, .L10356
27759   sub sp, sp, #112
27760   ldrh  r4, [ip, #6]
27761   add r0, r0, r0, asl #2
27762   str r4, [sp, #32]
27763   ldr r5, [sp, #32]
27764   ldrh  r4, [ip, #80]
27765   ldr ip, .L10356+4
27766   add r0, r5, r0, asl #5
27767   ldr ip, [ip, r0, asl #2]
27768   mov lr, r4, lsr #11
27769   and lr, lr, #2
27770   mov r4, r4, asl #27
27771   str ip, [sp, #36]
27772   orr lr, lr, r4, lsr #31
27773   cmp ip, #0
27774   ldr ip, .L10356+8
27775   mov lr, lr, asl #9
27776   add r0, ip, r0, asl #7
27777   orr lr, lr, #256
27778   str r0, [sp, #40]
27779   str r1, [sp, #8]
27780   str r2, [sp, #4]
27781   str r3, [sp, #0]
27782   str lr, [sp, #24]
27783   beq .L10302
27784   mov r8, #0
27785   add r6, r3, r1, asl #2
27786   rsb r7, r1, r2
27787   str r6, [sp, #84]
27788   str r7, [sp, #108]
27789   str r8, [sp, #28]
27790   mov ip, r8
27791 .L9517:
27792   ldr lr, [sp, #40]
27793   ldr r0, .L10356+12
27794   ldrb  r3, [ip, lr]  @ zero_extendqisi2
27795   mov r3, r3, asl #3
27796   ldrh  r4, [r3, r0]
27797   add r3, r3, r0
27798   ldrh  r1, [r3, #2]
27799   mov r5, r4, lsr #12
27800   and r2, r5, #12
27801   orr r0, r2, r1, lsr #14
27802   and ip, r4, #255
27803   mov r2, r1, asl #23
27804   cmp ip, #160
27805   ldrh  lr, [r3, #4]
27806   mov r6, r2, asr #23
27807   ldr r3, .L10356+16
27808   ldr r2, .L10356+20
27809   subgt ip, ip, #256
27810   tst r4, #256
27811   ldr r7, [r2, r0, asl #2]
27812   ldr sl, [r3, r0, asl #2]
27813   beq .L9520
27814   tst r4, #8192
27815   beq .L9522
27816   tst r4, #512
27817   mov r3, r1, lsr #4
27818   ldr r4, .L10356+12
27819   and r3, r3, #992
27820   add r3, r3, r4
27821   add r2, r7, r7, lsr #31
27822   ldrh  r5, [r3, #30]
27823   mov r4, r2, asr #1
27824   add r1, sl, sl, lsr #31
27825   ldr r2, [sp, #8]
27826   movne r0, r4, asl #1
27827   str r5, [sp, #12]
27828   mov r5, r1, asr #1
27829   strne r0, [sp, #56]
27830   moveq r9, r7
27831   streq r4, [sp, #56]
27832   moveq r0, r5
27833   movne r9, r7, asl #1
27834   movne r0, r5, asl #1
27835   cmp r6, r2
27836   ldrh  r8, [r3, #6]
27837   ldrh  r1, [r3, #14]
27838   ldrh  fp, [r3, #22]
27839   bge .L9527
27840   rsb r2, r6, r2
27841   rsb r9, r2, r9
27842   cmp r9, #0
27843   ble .L9529
27844   ldr r3, [sp, #56]
27845   ldr r6, [sp, #8]
27846   rsb r3, r2, r3
27847   str r3, [sp, #56]
27848 .L9527:
27849   ldr r2, [sp, #4]
27850   add r3, r6, r9
27851   cmp r3, r2
27852   blt .L9531
27853   rsb r9, r6, r2
27854   cmp r9, #0
27855   ble .L9529
27856 .L9531:
27857   mov r3, r8, asl #16
27858   ldr r8, [sp, #12]
27859   mov r2, r1, asl #16
27860   mov r2, r2, asr #16
27861   mov r1, r8, asl #16
27862   add r0, ip, r0
27863   str r2, [sp, #48]
27864   mov ip, r1, asr #16
27865   ldr r2, [sp, #32]
27866   ldr r1, [sp, #0]
27867   mov r4, r4, asl #8
27868   mov r3, r3, asr #16
27869   mov r5, r5, asl #8
27870   cmp fp, #0
27871   str r4, [sp, #92]
27872   str r3, [sp, #44]
27873   str r5, [sp, #52]
27874   add r8, r1, r6, asl #2
27875   rsb r4, r0, r2
27876   bne .L9533
27877   mov r3, r5
27878   mla r3, r4, ip, r3
27879   mov r0, r3, asr #8
27880   cmp r0, sl
27881   bcs .L9529
27882   cmp r7, #0
27883   add r3, r7, #7
27884   movge r3, r7
27885   mov r2, lr, asl #22
27886   mov r3, r3, asr #3
27887   mov r3, r3, asl #1
27888   mov r1, r0, lsr #3
27889   mov r2, r2, lsr #22
27890   mla ip, r3, r1, r2
27891   and r0, r0, #7
27892   ldr r3, .L10356+24
27893   add r0, r0, ip, asl #2
27894   cmp r9, #0
27895   add lr, r3, r0, asl #3
27896   ble .L9529
27897   ldr r3, [sp, #48]
27898   ldr r2, [sp, #56]
27899   mul r3, r4, r3
27900   ldr r4, [sp, #44]
27901   ldr r5, [sp, #92]
27902   mul r2, r4, r2
27903   rsb r3, r2, r3
27904   add r0, r5, r3
27905   mov r4, r0, asr #8
27906   cmp r4, r7
27907   movcs ip, fp
27908   bcs .L9539
27909   b .L10352
27910 .L9540:
27911   cmp r4, r7
27912   bcc .L10316
27913 .L9539:
27914   ldr r6, [sp, #44]
27915   add ip, ip, #1
27916   add r0, r0, r6
27917   cmp r9, ip
27918   mov r4, r0, asr #8
27919   add r8, r8, #4
27920   bne .L9540
27921 .L9529:
27922   ldr r0, [sp, #28]
27923   ldr r1, [sp, #36]
27924   add r0, r0, #1
27925   cmp r0, r1
27926   str r0, [sp, #28]
27927   beq .L10302
27928 .L10334:
27929   ldr ip, [sp, #28]
27930   b .L9517
27931 .L9520:
27932   ldr r0, [sp, #32]
27933   tst r1, #8192
27934   rsb ip, ip, r0
27935   rsbne r3, ip, sl
27936   subne ip, r3, #1
27937   mov r2, r1, asl #19
27938   and r3, r5, #2
27939   orr r3, r3, r2, lsr #31
27940   cmp r3, #3
27941   ldrls pc, [pc, r3, asl #2]
27942   b .L9529
27943   .p2align 2
27944 .L9601:
27945   .word .L9597
27946   .word .L9598
27947   .word .L9599
27948   .word .L9600
27949 .L9597:
27950   cmp r7, #0
27951   add r3, r7, #7
27952   mov r2, lr, asl #22
27953   movge r3, r7
27954   mov r5, r3, asr #3
27955   mov r2, r2, lsr #22
27956   mov r3, ip, lsr #3
27957   mla r0, r5, r3, r2
27958   ldr r2, [sp, #8]
27959   and r1, ip, #7
27960   ldr r3, .L10356+24
27961   add r1, r1, r0, asl #3
27962   cmp r6, r2
27963   mov r2, lr, lsr #8
27964   add r0, r3, r1, asl #2
27965   and r1, r2, #240
27966   blt .L10329
27967   ldr ip, [sp, #4]
27968   add r3, r6, r7
27969   cmp ip, r3
27970   bhi .L9683
27971   rsb r7, r6, ip
27972   cmp r7, #0
27973   ble .L9529
27974   ldr lr, [sp, #0]
27975   movs  r8, r7, lsr #3
27976   add r2, lr, r6, asl #2
27977   beq .L9686
27978   mov r5, r2
27979   mov lr, r0
27980   mov ip, #0
27981 .L9688:
27982   ldr r4, [lr, #0]
27983   cmp r4, #0
27984   beq .L9689
27985   ands  r3, r4, #15
27986   ldrne r6, [sp, #24]
27987   orrne r3, r6, r3
27988   orrne r3, r1, r3
27989   strne r3, [r5, #0]
27990   mov r3, r4, lsr #4
27991   ands  r3, r3, #15
27992   ldrne r6, [sp, #24]
27993   orrne r3, r6, r3
27994   orrne r3, r1, r3
27995   strne r3, [r5, #4]
27996   mov r3, r4, lsr #8
27997   ands  r3, r3, #15
27998   ldrne r6, [sp, #24]
27999   orrne r3, r6, r3
28000   orrne r3, r1, r3
28001   strne r3, [r5, #8]
28002   mov r3, r4, lsr #12
28003   ands  r3, r3, #15
28004   ldrne r6, [sp, #24]
28005   orrne r3, r6, r3
28006   orrne r3, r1, r3
28007   strne r3, [r5, #12]
28008   mov r3, r4, lsr #16
28009   ands  r3, r3, #15
28010   ldrne r6, [sp, #24]
28011   orrne r3, r6, r3
28012   orrne r3, r1, r3
28013   strne r3, [r5, #16]
28014   mov r3, r4, lsr #20
28015   ands  r3, r3, #15
28016   ldrne r6, [sp, #24]
28017   orrne r3, r6, r3
28018   orrne r3, r1, r3
28019   strne r3, [r5, #20]
28020   mov r3, r4, lsr #24
28021   ands  r3, r3, #15
28022   ldrne r6, [sp, #24]
28023   orrne r3, r6, r3
28024   orrne r3, r1, r3
28025   strne r3, [r5, #24]
28026   movs  r3, r4, lsr #28
28027   ldrne r4, [sp, #24]
28028   orrne r3, r4, r3
28029   orrne r3, r1, r3
28030   strne r3, [r5, #28]
28031 .L9689:
28032   add ip, ip, #1
28033   cmp ip, r8
28034   add lr, lr, #32
28035   add r5, r5, #32
28036   bne .L9688
28037   mov r3, r8, asl #5
28038   add r0, r0, r3
28039   add r2, r2, r3
28040 .L9686:
28041   ands  lr, r7, #7
28042   beq .L9529
28043   ldr r0, [r0, #0]
28044   mov ip, #0
28045 .L9708:
28046   ldr r5, [sp, #24]
28047   ands  r3, r0, #15
28048   orr r3, r5, r3
28049   orr r3, r1, r3
28050   strne r3, [r2, ip, asl #2]
28051   add ip, ip, #1
28052   cmp ip, lr
28053   mov r0, r0, lsr #4
28054   bne .L9708
28055   b .L9529
28056 .L9598:
28057   cmp r7, #0
28058   add r3, r7, #7
28059   mov r2, lr, asl #22
28060   movge r3, r7
28061   mov r5, r3, asr #3
28062   mov r2, r2, lsr #22
28063   mov r1, ip, lsr #3
28064   mla r0, r5, r1, r2
28065   subs  r3, r7, #8
28066   submi r3, r7, #1
28067   ldr r8, [sp, #8]
28068   add r0, r0, r3, asr #3
28069   and r2, ip, #7
28070   ldr r3, .L10356+24
28071   add r2, r2, r0, asl #3
28072   mov r1, lr, lsr #8
28073   cmp r6, r8
28074   add r0, r3, r2, asl #2
28075   and r1, r1, #240
28076   blt .L10330
28077   ldr ip, [sp, #4]
28078   add r3, r6, r7
28079   cmp ip, r3
28080   bhi .L9813
28081   rsb r8, r6, ip
28082   cmp r8, #0
28083   ble .L9529
28084   ldr lr, [sp, #0]
28085   movs  r7, r8, lsr #3
28086   add r2, lr, r6, asl #2
28087   beq .L9816
28088   mov r5, r2
28089   mov lr, r0
28090   mov ip, #0
28091 .L9818:
28092   ldr r4, [lr, #0]
28093   cmp r4, #0
28094   beq .L9819
28095   ands  r3, r4, #15
28096   ldrne r6, [sp, #24]
28097   orrne r3, r6, r3
28098   orrne r3, r1, r3
28099   strne r3, [r5, #28]
28100   mov r3, r4, lsr #4
28101   ands  r3, r3, #15
28102   ldrne r6, [sp, #24]
28103   orrne r3, r6, r3
28104   orrne r3, r1, r3
28105   strne r3, [r5, #24]
28106   mov r3, r4, lsr #8
28107   ands  r3, r3, #15
28108   ldrne r6, [sp, #24]
28109   orrne r3, r6, r3
28110   orrne r3, r1, r3
28111   strne r3, [r5, #20]
28112   mov r3, r4, lsr #12
28113   ands  r3, r3, #15
28114   ldrne r6, [sp, #24]
28115   orrne r3, r6, r3
28116   orrne r3, r1, r3
28117   strne r3, [r5, #16]
28118   mov r3, r4, lsr #16
28119   ands  r3, r3, #15
28120   ldrne r6, [sp, #24]
28121   orrne r3, r6, r3
28122   orrne r3, r1, r3
28123   strne r3, [r5, #12]
28124   mov r3, r4, lsr #20
28125   ands  r3, r3, #15
28126   ldrne r6, [sp, #24]
28127   orrne r3, r6, r3
28128   orrne r3, r1, r3
28129   strne r3, [r5, #8]
28130   mov r3, r4, lsr #24
28131   ands  r3, r3, #15
28132   ldrne r6, [sp, #24]
28133   orrne r3, r6, r3
28134   orrne r3, r1, r3
28135   strne r3, [r5, #4]
28136   movs  r3, r4, lsr #28
28137   ldrne r4, [sp, #24]
28138   orrne r3, r4, r3
28139   orrne r3, r1, r3
28140   strne r3, [r5, #0]
28141 .L9819:
28142   add ip, ip, #1
28143   cmp ip, r7
28144   sub lr, lr, #32
28145   add r5, r5, #32
28146   bne .L9818
28147   rsb r3, r7, r7, asl #27
28148   add r0, r0, r3, asl #5
28149   add r2, r2, r7, asl #5
28150 .L9816:
28151   ands  lr, r8, #7
28152   beq .L9529
28153   ldr r0, [r0, #0]
28154   mov ip, #0
28155 .L9838:
28156   ldr r5, [sp, #24]
28157   movs  r3, r0, lsr #28
28158   orr r3, r5, r3
28159   orr r3, r1, r3
28160   strne r3, [r2, ip, asl #2]
28161   add ip, ip, #1
28162   cmp ip, lr
28163   mov r0, r0, asl #4
28164   bne .L9838
28165   b .L9529
28166 .L9599:
28167   cmp r7, #0
28168   add r3, r7, #7
28169   mov r1, lr, asl #22
28170   movge r3, r7
28171   mov r2, ip, lsr #3
28172   mov lr, r3, asr #3
28173   mov r1, r1, lsr #22
28174   mov r2, r2, asl #1
28175   mla r0, r2, lr, r1
28176   and r3, ip, #7
28177   add r3, r3, r0, asl #2
28178   ldr r8, [sp, #8]
28179   mov r0, r3, asl #3
28180   ldr r3, .L10356+24
28181   cmp r6, r8
28182   add r1, r0, r3
28183   blt .L10331
28184   ldr r8, [sp, #4]
28185   add r3, r6, r7
28186   cmp r8, r3
28187   bhi .L10018
28188   rsb r8, r6, r8
28189   cmp r8, #0
28190   ble .L9529
28191   ldr ip, [sp, #0]
28192   movs  r7, r8, lsr #3
28193   add r2, ip, r6, asl #2
28194   beq .L10021
28195   ldr r3, .L10356+32
28196   mov r5, r2
28197   add r0, r0, r3
28198   mov lr, r1
28199   mov ip, #0
28200 .L10023:
28201   ldr r4, [lr, #0]
28202   cmp r4, #0
28203   beq .L10024
28204   ands  r3, r4, #255
28205   ldrne r6, [sp, #24]
28206   orrne r3, r6, r3
28207   strne r3, [r5, #0]
28208   mov r3, r4, lsr #8
28209   ands  r3, r3, #255
28210   ldrne r6, [sp, #24]
28211   orrne r3, r6, r3
28212   strne r3, [r5, #4]
28213   mov r3, r4, lsr #16
28214   ands  r3, r3, #255
28215   ldrne r6, [sp, #24]
28216   orrne r3, r6, r3
28217   strne r3, [r5, #8]
28218   movs  r3, r4, lsr #24
28219   ldrne r4, [sp, #24]
28220   orrne r3, r4, r3
28221   strne r3, [r5, #12]
28222 .L10024:
28223   ldr r4, [r0, #-60]
28224   cmp r4, #0
28225   beq .L10033
28226   ands  r3, r4, #255
28227   ldrne r6, [sp, #24]
28228   orrne r3, r6, r3
28229   strne r3, [r5, #16]
28230   mov r3, r4, lsr #8
28231   ands  r3, r3, #255
28232   ldrne r6, [sp, #24]
28233   orrne r3, r6, r3
28234   strne r3, [r5, #20]
28235   mov r3, r4, lsr #16
28236   ands  r3, r3, #255
28237   ldrne r6, [sp, #24]
28238   orrne r3, r6, r3
28239   strne r3, [r5, #24]
28240   movs  r3, r4, lsr #24
28241   ldrne r4, [sp, #24]
28242   orrne r3, r4, r3
28243   strne r3, [r5, #28]
28244 .L10033:
28245   add ip, ip, #1
28246   cmp r7, ip
28247   add lr, lr, #64
28248   add r5, r5, #32
28249   add r0, r0, #64
28250   bne .L10023
28251   add r1, r1, r7, asl #6
28252   add r2, r2, r7, asl #5
28253 .L10021:
28254   ands  ip, r8, #7
28255   beq .L9529
28256   cmp ip, #3
28257   ldrls r0, [r1, #0]
28258   bls .L10056
28259   ldr r0, [r1, #0]
28260   cmp r0, #0
28261   beq .L10046
28262   ands  r3, r0, #255
28263   ldrne r5, [sp, #24]
28264   orrne r3, r5, r3
28265   strne r3, [r2, #0]
28266   mov r3, r0, lsr #8
28267   ands  r3, r3, #255
28268   ldrne r6, [sp, #24]
28269   orrne r3, r6, r3
28270   strne r3, [r2, #4]
28271   mov r3, r0, lsr #16
28272   ands  r3, r3, #255
28273   ldrne r7, [sp, #24]
28274   orrne r3, r7, r3
28275   strne r3, [r2, #8]
28276   movs  r3, r0, lsr #24
28277   ldrne r8, [sp, #24]
28278   orrne r3, r8, r3
28279   strne r3, [r2, #12]
28280 .L10046:
28281   subs  ip, ip, #4
28282   ldr r0, [r1, #4]
28283   addne r2, r2, #16
28284   beq .L9529
28285 .L10056:
28286   mov r1, #0
28287 .L10057:
28288   ldr lr, [sp, #24]
28289   ands  r3, r0, #255
28290   orr r3, lr, r3
28291   strne r3, [r2, r1, asl #2]
28292   add r1, r1, #1
28293   cmp ip, r1
28294   mov r0, r0, lsr #8
28295   bhi .L10057
28296   b .L9529
28297 .L9600:
28298   cmp r7, #0
28299   add r2, r7, #7
28300   movge r2, r7
28301   subs  r3, r7, #8
28302   submi r3, r7, #1
28303   mov r1, ip, lsr #3
28304   mov r5, r2, asr #3
28305   mov r3, r3, asr #3
28306   mla r0, r5, r1, r3
28307   mov r2, lr, asl #22
28308   mov r2, r2, lsr #22
28309   add r2, r2, r0, asl #1
28310   and r3, ip, #7
28311   add r3, r3, r2, asl #2
28312   ldr ip, [sp, #8]
28313   mov r0, r3, asl #3
28314   ldr r3, .L10356+24
28315   cmp r6, ip
28316   add r1, r0, r3
28317   blt .L10332
28318   add r3, r6, r7
28319   ldr r7, [sp, #4]
28320   cmp r3, r7
28321   bcc .L10238
28322   rsb r8, r6, r7
28323   cmp r8, #0
28324   ble .L9529
28325   ldr ip, [sp, #0]
28326   movs  r7, r8, lsr #3
28327   add r6, ip, r6, asl #2
28328   beq .L10241
28329   ldr r3, .L10356+28
28330   mov r5, r6
28331   add r0, r0, r3
28332   mov lr, r1
28333   mov ip, #0
28334 .L10243:
28335   ldr r4, [r0, #68]
28336   cmp r4, #0
28337   beq .L10244
28338   ands  r3, r4, #255
28339   ldrne r2, [sp, #24]
28340   orrne r3, r2, r3
28341   strne r3, [r5, #12]
28342   mov r3, r4, lsr #8
28343   ands  r3, r3, #255
28344   ldrne r2, [sp, #24]
28345   orrne r3, r2, r3
28346   strne r3, [r5, #8]
28347   mov r3, r4, lsr #16
28348   ands  r3, r3, #255
28349   ldrne r2, [sp, #24]
28350   orrne r3, r2, r3
28351   strne r3, [r5, #4]
28352   movs  r3, r4, lsr #24
28353   ldrne r4, [sp, #24]
28354   orrne r3, r4, r3
28355   strne r3, [r5, #0]
28356 .L10244:
28357   ldr r4, [lr, #0]
28358   cmp r4, #0
28359   beq .L10253
28360   ands  r3, r4, #255
28361   ldrne r2, [sp, #24]
28362   orrne r3, r2, r3
28363   strne r3, [r5, #28]
28364   mov r3, r4, lsr #8
28365   ands  r3, r3, #255
28366   ldrne r2, [sp, #24]
28367   orrne r3, r2, r3
28368   strne r3, [r5, #24]
28369   mov r3, r4, lsr #16
28370   ands  r3, r3, #255
28371   ldrne r2, [sp, #24]
28372   orrne r3, r2, r3
28373   strne r3, [r5, #20]
28374   movs  r3, r4, lsr #24
28375   ldrne r4, [sp, #24]
28376   orrne r3, r4, r3
28377   strne r3, [r5, #16]
28378 .L10253:
28379   add ip, ip, #1
28380   cmp ip, r7
28381   sub lr, lr, #64
28382   add r5, r5, #32
28383   sub r0, r0, #64
28384   bne .L10243
28385   rsb r3, r7, r7, asl #26
28386   add r1, r1, r3, asl #6
28387   add r6, r6, r7, asl #5
28388 .L10241:
28389   ands  r0, r8, #7
28390   beq .L9529
28391   cmp r0, #3
28392   ldrls r2, [r1, #4]
28393   bls .L10276
28394   ldr r2, [r1, #4]
28395   cmp r2, #0
28396   beq .L10266
28397   ands  r3, r2, #255
28398   ldrne r5, [sp, #24]
28399   orrne r3, r5, r3
28400   strne r3, [r6, #12]
28401   mov r3, r2, lsr #8
28402   ands  r3, r3, #255
28403   ldrne r7, [sp, #24]
28404   orrne r3, r7, r3
28405   strne r3, [r6, #8]
28406   mov r3, r2, lsr #16
28407   ands  r3, r3, #255
28408   ldrne r8, [sp, #24]
28409   orrne r3, r8, r3
28410   strne r3, [r6, #4]
28411   movs  r3, r2, lsr #24
28412   ldrne ip, [sp, #24]
28413   orrne r3, ip, r3
28414   strne r3, [r6, #0]
28415 .L10266:
28416   subs  r0, r0, #4
28417   ldr r2, [r1, #0]
28418   addne r6, r6, #16
28419   beq .L9529
28420 .L10276:
28421   mov r1, #0
28422 .L10277:
28423   ldr lr, [sp, #24]
28424   movs  r3, r2, lsr #24
28425   orr r3, lr, r3
28426   strne r3, [r6, r1, asl #2]
28427   add r1, r1, #1
28428   cmp r0, r1
28429   mov r2, r2, asl #8
28430   bhi .L10277
28431   b .L9529
28432 .L9522:
28433   mov r3, r1, lsr #4
28434   ldr r2, .L10356+12
28435   and r3, r3, #992
28436   add r3, r3, r2
28437   tst r4, #512
28438   ldrh  r4, [r3, #30]
28439   add r2, r7, r7, lsr #31
28440   add r1, sl, sl, lsr #31
28441   str r4, [sp, #20]
28442   mov r4, r2, asr #1
28443   ldr r2, [sp, #8]
28444   mov r5, r1, asr #1
28445   ldrh  r8, [r3, #6]
28446   ldrh  r1, [r3, #14]
28447   ldrh  r3, [r3, #22]
28448   moveq fp, r7
28449   moveq r9, r4
28450   moveq r0, r5
28451   movne fp, r7, asl #1
28452   movne r9, r4, asl #1
28453   movne r0, r5, asl #1
28454   cmp r6, r2
28455   str r3, [sp, #16]
28456   bge .L9560
28457   rsb r2, r6, r2
28458   rsb fp, r2, fp
28459   cmp fp, #0
28460   ble .L9529
28461   ldr r6, [sp, #8]
28462   rsb r9, r2, r9
28463 .L9560:
28464   ldr r2, [sp, #4]
28465   add r3, r6, fp
28466   cmp r3, r2
28467   blt .L9563
28468   rsb fp, r6, r2
28469   cmp fp, #0
28470   ble .L9529
28471 .L9563:
28472   mov r3, r8, asl #16
28473   ldr r8, [sp, #20]
28474   add ip, ip, r0
28475   mov r2, r1, asl #16
28476   ldr r0, [sp, #16]
28477   mov r1, r8, asl #16
28478   mov r2, r2, asr #16
28479   mov r1, r1, asr #16
28480   cmp r0, #0
28481   str r2, [sp, #68]
28482   mov r0, lr, lsr #8
28483   str r1, [sp, #76]
28484   ldr r2, [sp, #32]
28485   ldr r1, [sp, #0]
28486   mov r4, r4, asl #8
28487   mov r3, r3, asr #16
28488   and r0, r0, #240
28489   str r4, [sp, #88]
28490   str r3, [sp, #64]
28491   mov r5, r5, asl #8
28492   add r8, r1, r6, asl #2
28493   rsb r4, ip, r2
28494   str r0, [sp, #104]
28495   bne .L9565
28496   ldr r3, [sp, #76]
28497   mla r3, r4, r3, r5
28498   mov r0, r3, asr #8
28499   cmp r0, sl
28500   bcs .L9529
28501   cmp r7, #0
28502   add r3, r7, #7
28503   mov r2, lr, asl #22
28504   movge r3, r7
28505   mov r1, r0, lsr #3
28506   mov r3, r3, asr #3
28507   mov r2, r2, lsr #22
28508   mla ip, r3, r1, r2
28509   and r0, r0, #7
28510   ldr r3, .L10356+24
28511   add r0, r0, ip, asl #3
28512   cmp fp, #0
28513   add r1, r3, r0, asl #2
28514   ble .L9529
28515   ldr r3, [sp, #68]
28516   ldr r2, [sp, #64]
28517   mul r3, r4, r3
28518   mul r2, r9, r2
28519   ldr r4, [sp, #88]
28520   rsb r3, r2, r3
28521   add r0, r4, r3
28522   mov r4, r0, asr #8
28523   cmp r4, r7
28524   ldrcs r5, [sp, #16]
28525   bcs .L9571
28526   b .L10353
28527 .L9572:
28528   cmp r4, r7
28529   bcc .L10318
28530 .L9571:
28531   ldr r6, [sp, #64]
28532   add r5, r5, #1
28533   add r0, r0, r6
28534   cmp fp, r5
28535   mov r4, r0, asr #8
28536   add r8, r8, #4
28537   bne .L9572
28538   ldr r0, [sp, #28]
28539   ldr r1, [sp, #36]
28540   add r0, r0, #1
28541   cmp r0, r1
28542   str r0, [sp, #28]
28543   bne .L10334
28544 .L10302:
28545   add sp, sp, #112
28546   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
28547 .L9533:
28548   cmp r7, #0
28549   add r1, r7, #7
28550   mov r2, lr, asl #22
28551   movge r1, r7
28552   ldr r3, .L10356+24
28553   mov r2, r2, lsr #22
28554   mov r1, r1, asr #3
28555   add r2, r3, r2, asl #5
28556   mov r1, r1, asl #6
28557   cmp r9, #0
28558   str r2, [sp, #100]
28559   str r1, [sp, #60]
28560   ble .L9529
28561   mov r3, fp, asl #16
28562   mov fp, r3, asr #16
28563   ldr r6, [sp, #44]
28564   ldr r3, [sp, #48]
28565   ldr r0, [sp, #56]
28566   ldr r1, [sp, #56]
28567   mul r0, r6, r0
28568   mul r3, r4, r3
28569   mul r2, r4, ip
28570   mul r1, fp, r1
28571   rsb r3, r0, r3
28572   ldr ip, [sp, #92]
28573   ldr r0, [sp, #52]
28574   rsb r2, r1, r2
28575   add r5, ip, r3
28576   add lr, r0, r2
28577   mov ip, r5, asr #8
28578   mov r4, lr, asr #8
28579   cmp ip, r7
28580   cmpcc r4, sl
28581   movcs r3, #0
28582   movcc r3, #1
28583   movcs r6, r3
28584   bcs .L9549
28585   b .L10354
28586 .L9550:
28587   cmp ip, r7
28588   cmpcc r4, sl
28589   bcc .L9551
28590 .L9549:
28591   ldr r1, [sp, #44]
28592   add r6, r6, #1
28593   add r5, r5, r1
28594   add lr, lr, fp
28595   cmp r9, r6
28596   mov ip, r5, asr #8
28597   mov r4, lr, asr #8
28598   add r8, r8, #4
28599   bne .L9550
28600   b .L9529
28601 .L9565:
28602   cmp r7, #0
28603   add r1, r7, #7
28604   mov r2, lr, asl #22
28605   movge r1, r7
28606   ldr r3, .L10356+24
28607   mov r2, r2, lsr #22
28608   mov r1, r1, asr #3
28609   add r2, r3, r2, asl #5
28610   mov r1, r1, asl #5
28611   cmp fp, #0
28612   str r2, [sp, #96]
28613   str r1, [sp, #80]
28614   ble .L9529
28615   ldr r6, [sp, #16]
28616   ldr r2, [sp, #76]
28617   mov r3, r6, asl #16
28618   mov r3, r3, asr #16
28619   str r3, [sp, #72]
28620   ldr r1, [sp, #72]
28621   ldr r3, [sp, #68]
28622   ldr r0, [sp, #64]
28623   mul r2, r4, r2
28624   mul r3, r4, r3
28625   mul r1, r9, r1
28626   mul r0, r9, r0
28627   ldr ip, [sp, #88]
28628   rsb r2, r1, r2
28629   rsb r3, r0, r3
28630   add lr, ip, r3
28631   add r5, r5, r2
28632   mov r4, lr, asr #8
28633   mov r2, r5, asr #8
28634   cmp r4, r7
28635   cmpcc r2, sl
28636   movcs r3, #0
28637   movcc r3, #1
28638   movcs r6, r3
28639   bcs .L9584
28640   b .L10355
28641 .L9585:
28642   cmp r4, r7
28643   cmpcc r2, sl
28644   bcc .L9587
28645 .L9584:
28646   ldr r0, [sp, #64]
28647   ldr r1, [sp, #72]
28648   add r6, r6, #1
28649   add lr, lr, r0
28650   add r5, r5, r1
28651   cmp fp, r6
28652   mov r4, lr, asr #8
28653   mov r2, r5, asr #8
28654   add r8, r8, #4
28655   bne .L9585
28656   b .L9529
28657 .L10337:
28658   ldr r3, [sp, #96]
28659   and r0, r2, #7
28660   add r0, r3, r0, asl #2
28661   and r1, r2, #7
28662   mov r3, r2, asr #3
28663   ldr r2, [sp, #80]
28664   mov ip, r4, asr #1
28665   mul r2, r3, r2
28666   and r9, ip, #3
28667   ldr ip, [sp, #96]
28668   mov r3, r4, asr #1
28669   add r1, ip, r1, asl #2
28670   and ip, r3, #3
28671   mov r3, r4, asr #3
28672   add r2, r2, r3, asl #5
28673   add r3, r0, r2
28674   tst r4, #1
28675   add r0, r1, r2
28676   ldreqb  r3, [r0, ip]  @ zero_extendqisi2
28677   ldrneb  r3, [r3, r9]  @ zero_extendqisi2
28678   ldr r4, [sp, #24]
28679   movne r0, r3, lsr #4
28680   andeq r0, r3, #15
28681   ldr ip, [sp, #104]
28682   ldr r2, [sp, #72]
28683   orr r3, r0, r4
28684   ldr r1, [sp, #64]
28685   cmp r0, #0
28686   add r6, r6, #1
28687   orr r3, ip, r3
28688   strne r3, [r8, #0]
28689   add lr, lr, r1
28690   add r5, r5, r2
28691   cmp fp, r6
28692   mov r4, lr, asr #8
28693   mov r2, r5, asr #8
28694   add r8, r8, #4
28695   ble .L9529
28696 .L9587:
28697   cmp r2, sl
28698   cmpcc r4, r7
28699   bcc .L10337
28700   b .L9529
28701 .L9574:
28702   cmp r4, r7
28703   bcs .L9529
28704 .L10318:
28705   mov r3, r4, asr #1
28706   and sl, r3, #3
28707   mov r3, r4, asr #3
28708   mov r3, r3, asl #5
28709   mov r2, r4, asr #1
28710   tst r4, #1
28711   add ip, r3, r1
28712   and r6, r2, #3
28713   add r2, r3, r1
28714   ldreqb  r3, [r2, r6]  @ zero_extendqisi2
28715   ldrneb  r3, [ip, sl]  @ zero_extendqisi2
28716   ldr lr, [sp, #24]
28717   movne r2, r3, lsr #4
28718   andeq r2, r3, #15
28719   cmp r2, #0
28720   orr r3, r2, lr
28721   ldr r2, [sp, #104]
28722   ldr ip, [sp, #64]
28723   add r5, r5, #1
28724   orr r3, r2, r3
28725   strne r3, [r8, #0]
28726   add r0, r0, ip
28727   cmp fp, r5
28728   mov r4, r0, asr #8
28729   add r8, r8, #4
28730   bgt .L9574
28731   b .L9529
28732 .L9542:
28733   cmp r4, r7
28734   bcs .L9529
28735 .L10316:
28736   ldr r1, [sp, #44]
28737   mov r3, r4, asr #3
28738   add r0, r0, r1
28739   add r3, lr, r3, asl #6
28740   and r1, r4, #7
28741   ldrb  r2, [r3, r1]  @ zero_extendqisi2
28742   ldr r5, [sp, #24]
28743   cmp r2, #0
28744   add ip, ip, #1
28745   orr r3, r5, r2
28746   strne r3, [r8, #0]
28747   cmp r9, ip
28748   mov r4, r0, asr #8
28749   add r8, r8, #4
28750   bgt .L9542
28751   b .L9529
28752 .L10357:
28753   .align  2
28754 .L10356:
28755   .word io_registers
28756   .word obj_priority_count
28757   .word obj_priority_list
28758   .word oam_ram
28759   .word obj_height_table
28760   .word obj_width_table
28761   .word vram+65536
28762   .word vram+65472
28763   .word vram+65600
28764 .L10332:
28765   rsb r0, r6, ip
28766   rsb r4, r0, r7
28767   cmp r4, #0
28768   ble .L9529
28769   ldr lr, [sp, #4]
28770   add r3, r6, r7
28771   cmp lr, r3
28772   bhi .L10085
28773   mov r3, r0, lsr #3
28774   ands  ip, r0, #7
28775   sub r6, r1, r3, asl #6
28776   bne .L10087
28777   ldr r5, [sp, #108]
28778   ldr r4, [sp, #84]
28779 .L10089:
28780   movs  lr, r5, lsr #3
28781   beq .L10147
28782   mov r1, r4
28783   mov r0, r6
28784   mov ip, #0
28785 .L10149:
28786   ldr r2, [r0, #4]
28787   cmp r2, #0
28788   beq .L10150
28789   ands  r3, r2, #255
28790   ldrne r7, [sp, #24]
28791   orrne r3, r7, r3
28792   strne r3, [r1, #12]
28793   mov r3, r2, lsr #8
28794   ands  r3, r3, #255
28795   ldrne r8, [sp, #24]
28796   orrne r3, r8, r3
28797   strne r3, [r1, #8]
28798   mov r3, r2, lsr #16
28799   ands  r3, r3, #255
28800   ldrne r7, [sp, #24]
28801   orrne r3, r7, r3
28802   strne r3, [r1, #4]
28803   movs  r3, r2, lsr #24
28804   ldrne r8, [sp, #24]
28805   orrne r3, r8, r3
28806   strne r3, [r1, #0]
28807 .L10150:
28808   ldr r2, [r0, #0]
28809   cmp r2, #0
28810   beq .L10159
28811   ands  r3, r2, #255
28812   ldrne r7, [sp, #24]
28813   orrne r3, r7, r3
28814   strne r3, [r1, #28]
28815   mov r3, r2, lsr #8
28816   ands  r3, r3, #255
28817   ldrne r8, [sp, #24]
28818   orrne r3, r8, r3
28819   strne r3, [r1, #24]
28820   mov r3, r2, lsr #16
28821   ands  r3, r3, #255
28822   ldrne r7, [sp, #24]
28823   orrne r3, r7, r3
28824   strne r3, [r1, #20]
28825   movs  r3, r2, lsr #24
28826   ldrne r8, [sp, #24]
28827   orrne r3, r8, r3
28828   strne r3, [r1, #16]
28829 .L10159:
28830   add ip, ip, #1
28831   cmp ip, lr
28832   sub r0, r0, #64
28833   add r1, r1, #32
28834   bne .L10149
28835   rsb r3, lr, lr, asl #26
28836   add r6, r6, r3, asl #6
28837   add r4, r4, lr, asl #5
28838 .L10147:
28839   ands  r0, r5, #7
28840   beq .L9529
28841   cmp r0, #3
28842   ldrls r2, [r6, #4]
28843   bls .L10182
28844   ldr r2, [r6, #4]
28845   cmp r2, #0
28846   beq .L10172
28847   ands  r3, r2, #255
28848   ldrne ip, [sp, #24]
28849   orrne r3, ip, r3
28850   strne r3, [r4, #12]
28851   mov r3, r2, lsr #8
28852   ands  r3, r3, #255
28853   ldrne lr, [sp, #24]
28854   orrne r3, lr, r3
28855   strne r3, [r4, #8]
28856   mov r3, r2, lsr #16
28857   ands  r3, r3, #255
28858   ldrne r1, [sp, #24]
28859   orrne r3, r1, r3
28860   strne r3, [r4, #4]
28861   movs  r3, r2, lsr #24
28862   ldrne r2, [sp, #24]
28863   orrne r3, r2, r3
28864   strne r3, [r4, #0]
28865 .L10172:
28866   subs  r0, r0, #4
28867   ldr r2, [r6, #0]
28868   addne r4, r4, #16
28869   beq .L9529
28870 .L10182:
28871   mov r1, #0
28872 .L10183:
28873   ldr r5, [sp, #24]
28874   movs  r3, r2, lsr #24
28875   orr r3, r5, r3
28876   strne r3, [r4, r1, asl #2]
28877   add r1, r1, #1
28878   cmp r0, r1
28879   mov r2, r2, asl #8
28880   bhi .L10183
28881   b .L9529
28882 .L10331:
28883   rsb r0, r6, r8
28884   rsb lr, r0, r7
28885   cmp lr, #0
28886   ble .L9529
28887   ldr ip, [sp, #4]
28888   add r3, r6, r7
28889   cmp ip, r3
28890   bhi .L9865
28891   mov r3, r0, lsr #3
28892   ands  ip, r0, #7
28893   add r6, r1, r3, asl #6
28894   bne .L9867
28895   ldr r5, [sp, #108]
28896   ldr r4, [sp, #84]
28897 .L9869:
28898   movs  lr, r5, lsr #3
28899   beq .L9927
28900   mov r1, r4
28901   mov r0, r6
28902   mov ip, #0
28903 .L9929:
28904   ldr r2, [r0, #0]
28905   cmp r2, #0
28906   beq .L9930
28907   ands  r3, r2, #255
28908   ldrne r7, [sp, #24]
28909   orrne r3, r7, r3
28910   strne r3, [r1, #0]
28911   mov r3, r2, lsr #8
28912   ands  r3, r3, #255
28913   ldrne r8, [sp, #24]
28914   orrne r3, r8, r3
28915   strne r3, [r1, #4]
28916   mov r3, r2, lsr #16
28917   ands  r3, r3, #255
28918   ldrne r7, [sp, #24]
28919   orrne r3, r7, r3
28920   strne r3, [r1, #8]
28921   movs  r3, r2, lsr #24
28922   ldrne r8, [sp, #24]
28923   orrne r3, r8, r3
28924   strne r3, [r1, #12]
28925 .L9930:
28926   ldr r2, [r0, #4]
28927   cmp r2, #0
28928   beq .L9939
28929   ands  r3, r2, #255
28930   ldrne r7, [sp, #24]
28931   orrne r3, r7, r3
28932   strne r3, [r1, #16]
28933   mov r3, r2, lsr #8
28934   ands  r3, r3, #255
28935   ldrne r8, [sp, #24]
28936   orrne r3, r8, r3
28937   strne r3, [r1, #20]
28938   mov r3, r2, lsr #16
28939   ands  r3, r3, #255
28940   ldrne r7, [sp, #24]
28941   orrne r3, r7, r3
28942   strne r3, [r1, #24]
28943   movs  r3, r2, lsr #24
28944   ldrne r8, [sp, #24]
28945   orrne r3, r8, r3
28946   strne r3, [r1, #28]
28947 .L9939:
28948   add ip, ip, #1
28949   cmp lr, ip
28950   add r0, r0, #64
28951   add r1, r1, #32
28952   bne .L9929
28953   add r6, r6, lr, asl #6
28954   add r4, r4, lr, asl #5
28955 .L9927:
28956   ands  r0, r5, #7
28957   beq .L9529
28958   cmp r0, #3
28959   ldrls r1, [r6, #0]
28960   bls .L9962
28961   ldr r2, [r6, #0]
28962   cmp r2, #0
28963   beq .L9952
28964   ands  r3, r2, #255
28965   ldrne ip, [sp, #24]
28966   orrne r3, ip, r3
28967   strne r3, [r4, #0]
28968   mov r3, r2, lsr #8
28969   ands  r3, r3, #255
28970   ldrne lr, [sp, #24]
28971   orrne r3, lr, r3
28972   strne r3, [r4, #4]
28973   mov r3, r2, lsr #16
28974   ands  r3, r3, #255
28975   ldrne r1, [sp, #24]
28976   orrne r3, r1, r3
28977   strne r3, [r4, #8]
28978   movs  r3, r2, lsr #24
28979   ldrne r2, [sp, #24]
28980   orrne r3, r2, r3
28981   strne r3, [r4, #12]
28982 .L9952:
28983   subs  r0, r0, #4
28984   ldr r1, [r6, #4]
28985   addne r4, r4, #16
28986   beq .L9529
28987 .L9962:
28988   mov r2, #0
28989 .L9963:
28990   ldr r5, [sp, #24]
28991   ands  r3, r1, #255
28992   orr r3, r5, r3
28993   strne r3, [r4, r2, asl #2]
28994   add r2, r2, #1
28995   cmp r0, r2
28996   mov r1, r1, lsr #8
28997   bhi .L9963
28998   b .L9529
28999 .L10330:
29000   rsb r4, r6, r8
29001   rsb ip, r4, r7
29002   cmp ip, #0
29003   ble .L9529
29004   ldr lr, [sp, #4]
29005   add r3, r6, r7
29006   cmp lr, r3
29007   bhi .L9735
29008   mov r3, r4, lsr #3
29009   ands  lr, r4, #7
29010   sub r0, r0, r3, asl #5
29011   bne .L9737
29012   ldr r2, [sp, #108]
29013   ldr ip, [sp, #84]
29014 .L9739:
29015   movs  r7, r2, lsr #3
29016   beq .L9756
29017   mov r5, ip
29018   mov lr, r0
29019   mov r6, #0
29020 .L9758:
29021   ldr r4, [lr, #0]
29022   cmp r4, #0
29023   beq .L9759
29024   ands  r3, r4, #15
29025   ldrne r8, [sp, #24]
29026   orrne r3, r8, r3
29027   orrne r3, r1, r3
29028   strne r3, [r5, #28]
29029   mov r3, r4, lsr #4
29030   ands  r3, r3, #15
29031   ldrne r8, [sp, #24]
29032   orrne r3, r8, r3
29033   orrne r3, r1, r3
29034   strne r3, [r5, #24]
29035   mov r3, r4, lsr #8
29036   ands  r3, r3, #15
29037   ldrne r8, [sp, #24]
29038   orrne r3, r8, r3
29039   orrne r3, r1, r3
29040   strne r3, [r5, #20]
29041   mov r3, r4, lsr #12
29042   ands  r3, r3, #15
29043   ldrne r8, [sp, #24]
29044   orrne r3, r8, r3
29045   orrne r3, r1, r3
29046   strne r3, [r5, #16]
29047   mov r3, r4, lsr #16
29048   ands  r3, r3, #15
29049   ldrne r8, [sp, #24]
29050   orrne r3, r8, r3
29051   orrne r3, r1, r3
29052   strne r3, [r5, #12]
29053   mov r3, r4, lsr #20
29054   ands  r3, r3, #15
29055   ldrne r8, [sp, #24]
29056   orrne r3, r8, r3
29057   orrne r3, r1, r3
29058   strne r3, [r5, #8]
29059   mov r3, r4, lsr #24
29060   ands  r3, r3, #15
29061   ldrne r8, [sp, #24]
29062   orrne r3, r8, r3
29063   orrne r3, r1, r3
29064   strne r3, [r5, #4]
29065   movs  r3, r4, lsr #28
29066   ldrne r4, [sp, #24]
29067   orrne r3, r4, r3
29068   orrne r3, r1, r3
29069   strne r3, [r5, #0]
29070 .L9759:
29071   add r6, r6, #1
29072   cmp r6, r7
29073   sub lr, lr, #32
29074   add r5, r5, #32
29075   bne .L9758
29076   rsb r3, r7, r7, asl #27
29077   add r0, r0, r3, asl #5
29078   add ip, ip, r7, asl #5
29079 .L9756:
29080   ands  lr, r2, #7
29081   beq .L9529
29082   ldr r0, [r0, #0]
29083   mov r2, #0
29084 .L9778:
29085   ldr r5, [sp, #24]
29086   movs  r3, r0, lsr #28
29087   orr r3, r5, r3
29088   orr r3, r1, r3
29089   strne r3, [ip, r2, asl #2]
29090   add r2, r2, #1
29091   cmp r2, lr
29092   mov r0, r0, asl #4
29093   bne .L9778
29094   b .L9529
29095 .L10329:
29096   ldr r3, [sp, #8]
29097   rsb r4, r6, r3
29098   rsb r5, r4, r7
29099   cmp r5, #0
29100   ble .L9529
29101   add r3, r6, r7
29102   ldr r6, [sp, #4]
29103   cmp r6, r3
29104   bhi .L9605
29105   mov r3, r4, lsr #3
29106   mov r2, r3, asl #5
29107   ands  r3, r4, #7
29108   add r5, r0, r2
29109   bne .L9607
29110   ldr r7, [sp, #108]
29111   ldr r6, [sp, #84]
29112 .L9609:
29113   movs  r4, r7, lsr #3
29114   beq .L9626
29115   mov ip, r6
29116   mov r0, r5
29117   mov lr, #0
29118 .L9628:
29119   ldr r2, [r0, #0]
29120   cmp r2, #0
29121   beq .L9629
29122   ands  r3, r2, #15
29123   ldrne r8, [sp, #24]
29124   orrne r3, r8, r3
29125   orrne r3, r1, r3
29126   strne r3, [ip, #0]
29127   mov r3, r2, lsr #4
29128   ands  r3, r3, #15
29129   ldrne r8, [sp, #24]
29130   orrne r3, r8, r3
29131   orrne r3, r1, r3
29132   strne r3, [ip, #4]
29133   mov r3, r2, lsr #8
29134   ands  r3, r3, #15
29135   ldrne r8, [sp, #24]
29136   orrne r3, r8, r3
29137   orrne r3, r1, r3
29138   strne r3, [ip, #8]
29139   mov r3, r2, lsr #12
29140   ands  r3, r3, #15
29141   ldrne r8, [sp, #24]
29142   orrne r3, r8, r3
29143   orrne r3, r1, r3
29144   strne r3, [ip, #12]
29145   mov r3, r2, lsr #16
29146   ands  r3, r3, #15
29147   ldrne r8, [sp, #24]
29148   orrne r3, r8, r3
29149   orrne r3, r1, r3
29150   strne r3, [ip, #16]
29151   mov r3, r2, lsr #20
29152   ands  r3, r3, #15
29153   ldrne r8, [sp, #24]
29154   orrne r3, r8, r3
29155   orrne r3, r1, r3
29156   strne r3, [ip, #20]
29157   mov r3, r2, lsr #24
29158   ands  r3, r3, #15
29159   ldrne r8, [sp, #24]
29160   orrne r3, r8, r3
29161   orrne r3, r1, r3
29162   strne r3, [ip, #24]
29163   movs  r3, r2, lsr #28
29164   ldrne r2, [sp, #24]
29165   orrne r3, r2, r3
29166   orrne r3, r1, r3
29167   strne r3, [ip, #28]
29168 .L9629:
29169   add lr, lr, #1
29170   cmp r4, lr
29171   add r0, r0, #32
29172   add ip, ip, #32
29173   bne .L9628
29174   mov r3, r4, asl #5
29175   add r5, r5, r3
29176   add r6, r6, r3
29177 .L9626:
29178   ands  ip, r7, #7
29179   beq .L9529
29180   ldr r2, [r5, #0]
29181   mov r0, #0
29182 .L9648:
29183   ldr r4, [sp, #24]
29184   ands  r3, r2, #15
29185   orr r3, r4, r3
29186   orr r3, r1, r3
29187   strne r3, [r6, r0, asl #2]
29188   add r0, r0, #1
29189   cmp r0, ip
29190   mov r2, r2, lsr #4
29191   bne .L9648
29192   b .L9529
29193 .L10354:
29194   mov r6, #0
29195 .L9551:
29196   cmp r4, sl
29197   movcc r3, #0
29198   movcs r3, #1
29199   cmp r7, ip
29200   orrls r3, r3, #1
29201   cmp r3, #0
29202   beq .L10317
29203   b .L9529
29204 .L9552:
29205   cmp r4, sl
29206   cmpcc ip, r7
29207   bcs .L9529
29208 .L10317:
29209   ldr r2, [sp, #44]
29210   and r3, r4, #7
29211   add r5, r5, r2
29212   ldr r0, [sp, #100]
29213   mov r2, ip, asr #3
29214   mov r3, r3, asl #3
29215   add r3, r3, r2, asl #6
29216   add r3, r3, r0
29217   ldr r0, [sp, #60]
29218   mov r2, r4, asr #3
29219   mla r0, r2, r0, r3
29220   and r1, ip, #7
29221   ldrb  r3, [r0, r1]  @ zero_extendqisi2
29222   ldr r1, [sp, #24]
29223   cmp r3, #0
29224   add r6, r6, #1
29225   orr r3, r1, r3
29226   strne r3, [r8, #0]
29227   add lr, lr, fp
29228   cmp r9, r6
29229   mov r4, lr, asr #8
29230   mov ip, r5, asr #8
29231   add r8, r8, #4
29232   bgt .L9552
29233   b .L9529
29234 .L9813:
29235   cmp r5, #0
29236   beq .L9529
29237   ldr r7, [sp, #0]
29238   mov ip, #0
29239   add r2, r7, r6, asl #2
29240   b .L9843
29241 .L10338:
29242   sub r0, r0, #32
29243   add r2, r2, #32
29244 .L9843:
29245   ldr r4, [r0, #0]
29246   cmp r4, #0
29247   beq .L9844
29248   ands  r3, r4, #15
29249   ldrne r8, [sp, #24]
29250   orrne r3, r8, r3
29251   orrne r3, r1, r3
29252   strne r3, [r2, #28]
29253   mov r3, r4, lsr #4
29254   ands  r3, r3, #15
29255   ldrne lr, [sp, #24]
29256   orrne r3, lr, r3
29257   orrne r3, r1, r3
29258   strne r3, [r2, #24]
29259   mov r3, r4, lsr #8
29260   ands  r3, r3, #15
29261   ldrne r6, [sp, #24]
29262   orrne r3, r6, r3
29263   orrne r3, r1, r3
29264   strne r3, [r2, #20]
29265   mov r3, r4, lsr #12
29266   ands  r3, r3, #15
29267   ldrne r7, [sp, #24]
29268   orrne r3, r7, r3
29269   orrne r3, r1, r3
29270   strne r3, [r2, #16]
29271   mov r3, r4, lsr #16
29272   ands  r3, r3, #15
29273   ldrne r8, [sp, #24]
29274   orrne r3, r8, r3
29275   orrne r3, r1, r3
29276   strne r3, [r2, #12]
29277   mov r3, r4, lsr #20
29278   ands  r3, r3, #15
29279   ldrne lr, [sp, #24]
29280   orrne r3, lr, r3
29281   orrne r3, r1, r3
29282   strne r3, [r2, #8]
29283   mov r3, r4, lsr #24
29284   ands  r3, r3, #15
29285   ldrne r6, [sp, #24]
29286   orrne r3, r6, r3
29287   orrne r3, r1, r3
29288   strne r3, [r2, #4]
29289   movs  r3, r4, lsr #28
29290   ldrne r7, [sp, #24]
29291   orrne r3, r7, r3
29292   orrne r3, r1, r3
29293   strne r3, [r2, #0]
29294 .L9844:
29295   add ip, ip, #1
29296   cmp r5, ip
29297   bne .L10338
29298   b .L9529
29299 .L10238:
29300   cmp r5, #0
29301   beq .L9529
29302   ldr r3, [sp, #0]
29303   mov ip, #0
29304   add r2, r3, r6, asl #2
29305   ldr r3, .L10356+28
29306   add r0, r0, r3
29307   b .L10282
29308 .L10339:
29309   sub r1, r1, #64
29310   add r2, r2, #32
29311 .L10282:
29312   ldr r4, [r0, #68]
29313   cmp r4, #0
29314   beq .L10283
29315   ands  r3, r4, #255
29316   ldrne r6, [sp, #24]
29317   orrne r3, r6, r3
29318   strne r3, [r2, #12]
29319   mov r3, r4, lsr #8
29320   ands  r3, r3, #255
29321   ldrne r7, [sp, #24]
29322   orrne r3, r7, r3
29323   strne r3, [r2, #8]
29324   mov r3, r4, lsr #16
29325   ands  r3, r3, #255
29326   ldrne r8, [sp, #24]
29327   orrne r3, r8, r3
29328   strne r3, [r2, #4]
29329   movs  r3, r4, lsr #24
29330   ldrne lr, [sp, #24]
29331   orrne r3, lr, r3
29332   strne r3, [r2, #0]
29333 .L10283:
29334   ldr r4, [r1, #0]
29335   cmp r4, #0
29336   beq .L10292
29337   ands  r3, r4, #255
29338   ldrne r6, [sp, #24]
29339   orrne r3, r6, r3
29340   strne r3, [r2, #28]
29341   mov r3, r4, lsr #8
29342   ands  r3, r3, #255
29343   ldrne r7, [sp, #24]
29344   orrne r3, r7, r3
29345   strne r3, [r2, #24]
29346   mov r3, r4, lsr #16
29347   ands  r3, r3, #255
29348   ldrne r8, [sp, #24]
29349   orrne r3, r8, r3
29350   strne r3, [r2, #20]
29351   movs  r3, r4, lsr #24
29352   ldrne lr, [sp, #24]
29353   orrne r3, lr, r3
29354   strne r3, [r2, #16]
29355 .L10292:
29356   add ip, ip, #1
29357   cmp r5, ip
29358   sub r0, r0, #64
29359   bne .L10339
29360   b .L9529
29361 .L9683:
29362   cmp r5, #0
29363   beq .L9529
29364   ldr r7, [sp, #0]
29365   mov ip, #0
29366   add r2, r7, r6, asl #2
29367   b .L9713
29368 .L10340:
29369   add r0, r0, #32
29370   add r2, r2, #32
29371 .L9713:
29372   ldr r4, [r0, #0]
29373   cmp r4, #0
29374   beq .L9714
29375   ands  r3, r4, #15
29376   ldrne r8, [sp, #24]
29377   orrne r3, r8, r3
29378   orrne r3, r1, r3
29379   strne r3, [r2, #0]
29380   mov r3, r4, lsr #4
29381   ands  r3, r3, #15
29382   ldrne lr, [sp, #24]
29383   orrne r3, lr, r3
29384   orrne r3, r1, r3
29385   strne r3, [r2, #4]
29386   mov r3, r4, lsr #8
29387   ands  r3, r3, #15
29388   ldrne r6, [sp, #24]
29389   orrne r3, r6, r3
29390   orrne r3, r1, r3
29391   strne r3, [r2, #8]
29392   mov r3, r4, lsr #12
29393   ands  r3, r3, #15
29394   ldrne r7, [sp, #24]
29395   orrne r3, r7, r3
29396   orrne r3, r1, r3
29397   strne r3, [r2, #12]
29398   mov r3, r4, lsr #16
29399   ands  r3, r3, #15
29400   ldrne r8, [sp, #24]
29401   orrne r3, r8, r3
29402   orrne r3, r1, r3
29403   strne r3, [r2, #16]
29404   mov r3, r4, lsr #20
29405   ands  r3, r3, #15
29406   ldrne lr, [sp, #24]
29407   orrne r3, lr, r3
29408   orrne r3, r1, r3
29409   strne r3, [r2, #20]
29410   mov r3, r4, lsr #24
29411   ands  r3, r3, #15
29412   ldrne r6, [sp, #24]
29413   orrne r3, r6, r3
29414   orrne r3, r1, r3
29415   strne r3, [r2, #24]
29416   movs  r3, r4, lsr #28
29417   ldrne r7, [sp, #24]
29418   orrne r3, r7, r3
29419   orrne r3, r1, r3
29420   strne r3, [r2, #28]
29421 .L9714:
29422   add ip, ip, #1
29423   cmp r5, ip
29424   bne .L10340
29425   b .L9529
29426 .L10018:
29427   cmp lr, #0
29428   beq .L9529
29429   ldr r3, [sp, #0]
29430   mov ip, #0
29431   add r2, r3, r6, asl #2
29432   ldr r3, .L10356+32
29433   add r0, r0, r3
29434   b .L10062
29435 .L10341:
29436   add r1, r1, #64
29437   add r2, r2, #32
29438 .L10062:
29439   ldr r4, [r1, #0]
29440   cmp r4, #0
29441   beq .L10063
29442   ands  r3, r4, #255
29443   ldrne r5, [sp, #24]
29444   orrne r3, r5, r3
29445   strne r3, [r2, #0]
29446   mov r3, r4, lsr #8
29447   ands  r3, r3, #255
29448   ldrne r6, [sp, #24]
29449   orrne r3, r6, r3
29450   strne r3, [r2, #4]
29451   mov r3, r4, lsr #16
29452   ands  r3, r3, #255
29453   ldrne r7, [sp, #24]
29454   orrne r3, r7, r3
29455   strne r3, [r2, #8]
29456   movs  r3, r4, lsr #24
29457   ldrne r8, [sp, #24]
29458   orrne r3, r8, r3
29459   strne r3, [r2, #12]
29460 .L10063:
29461   ldr r4, [r0, #-60]
29462   cmp r4, #0
29463   beq .L10072
29464   ands  r3, r4, #255
29465   ldrne r5, [sp, #24]
29466   orrne r3, r5, r3
29467   strne r3, [r2, #16]
29468   mov r3, r4, lsr #8
29469   ands  r3, r3, #255
29470   ldrne r6, [sp, #24]
29471   orrne r3, r6, r3
29472   strne r3, [r2, #20]
29473   mov r3, r4, lsr #16
29474   ands  r3, r3, #255
29475   ldrne r7, [sp, #24]
29476   orrne r3, r7, r3
29477   strne r3, [r2, #24]
29478   movs  r3, r4, lsr #24
29479   ldrne r8, [sp, #24]
29480   orrne r3, r8, r3
29481   strne r3, [r2, #28]
29482 .L10072:
29483   add ip, ip, #1
29484   cmp lr, ip
29485   add r0, r0, #64
29486   bne .L10341
29487   b .L9529
29488 .L9865:
29489   ands  r2, r0, #7
29490   mov r3, r0, lsr #3
29491   add r0, r1, r3, asl #6
29492   ldreq r1, [sp, #84]
29493   beq .L9969
29494   cmp r2, #3
29495   rsb ip, r2, #8
29496   bhi .L10342
29497   subs  r4, ip, #4
29498   ldr r1, [r0, #0]
29499   ldreq r1, [sp, #84]
29500   beq .L9982
29501   mov r3, r2, asl #3
29502   mov r2, r1, lsr r3
29503   mov r1, #0
29504 .L9983:
29505   ands  r3, r2, #255
29506   ldr r5, [sp, #24]
29507   ldrne r6, [sp, #84]
29508   orr r3, r5, r3
29509   strne r3, [r6, r1, asl #2]
29510   add r1, r1, #1
29511   cmp r1, r4
29512   mov r2, r2, lsr #8
29513   bne .L9983
29514   ldr r7, [sp, #84]
29515   add r3, r7, ip, asl #2
29516   sub r1, r3, #16
29517 .L9982:
29518   ldr r2, [r0, #4]
29519   cmp r2, #0
29520   beq .L9988
29521   ands  r3, r2, #255
29522   ldrne r8, [sp, #24]
29523   orrne r3, r8, r3
29524   strne r3, [r1, #0]
29525   mov r3, r2, lsr #8
29526   ands  r3, r3, #255
29527   ldrne ip, [sp, #24]
29528   orrne r3, ip, r3
29529   strne r3, [r1, #4]
29530   mov r3, r2, lsr #16
29531   ands  r3, r3, #255
29532   ldrne r4, [sp, #24]
29533   orrne r3, r4, r3
29534   strne r3, [r1, #8]
29535   movs  r3, r2, lsr #24
29536   ldrne r5, [sp, #24]
29537   orrne r3, r5, r3
29538   strne r3, [r1, #12]
29539 .L9988:
29540   add r1, r1, #16
29541 .L9974:
29542   add r0, r0, #64
29543 .L9969:
29544   movs  lr, lr, lsr #3
29545   beq .L9529
29546   mov ip, #0
29547   b .L9998
29548 .L10343:
29549   add r0, r0, #64
29550   add r1, r1, #32
29551 .L9998:
29552   ldr r2, [r0, #0]
29553   cmp r2, #0
29554   beq .L9999
29555   ands  r3, r2, #255
29556   ldrne r6, [sp, #24]
29557   orrne r3, r6, r3
29558   strne r3, [r1, #0]
29559   mov r3, r2, lsr #8
29560   ands  r3, r3, #255
29561   ldrne r7, [sp, #24]
29562   orrne r3, r7, r3
29563   strne r3, [r1, #4]
29564   mov r3, r2, lsr #16
29565   ands  r3, r3, #255
29566   ldrne r8, [sp, #24]
29567   orrne r3, r8, r3
29568   strne r3, [r1, #8]
29569   movs  r3, r2, lsr #24
29570   ldrne r2, [sp, #24]
29571   orrne r3, r2, r3
29572   strne r3, [r1, #12]
29573 .L9999:
29574   ldr r2, [r0, #4]
29575   cmp r2, #0
29576   beq .L10008
29577   ands  r3, r2, #255
29578   ldrne r4, [sp, #24]
29579   orrne r3, r4, r3
29580   strne r3, [r1, #16]
29581   mov r3, r2, lsr #8
29582   ands  r3, r3, #255
29583   ldrne r5, [sp, #24]
29584   orrne r3, r5, r3
29585   strne r3, [r1, #20]
29586   mov r3, r2, lsr #16
29587   ands  r3, r3, #255
29588   ldrne r6, [sp, #24]
29589   orrne r3, r6, r3
29590   strne r3, [r1, #24]
29591   movs  r3, r2, lsr #24
29592   ldrne r7, [sp, #24]
29593   orrne r3, r7, r3
29594   strne r3, [r1, #28]
29595 .L10008:
29596   add ip, ip, #1
29597   cmp lr, ip
29598   bne .L10343
29599   b .L9529
29600 .L9735:
29601   ands  r2, r4, #7
29602   mov r3, r4, lsr #3
29603   sub r0, r0, r3, asl #5
29604   ldreq r5, [sp, #84]
29605   beq .L9784
29606   rsbs  r5, r2, #8
29607   ldr lr, [r0, #0]
29608   ldreq r5, [sp, #84]
29609   beq .L9787
29610   mov r3, r2, asl #2
29611   mov r4, lr, asl r3
29612   mov lr, #0
29613 .L9788:
29614   ldr r6, [sp, #24]
29615   movs  r3, r4, lsr #28
29616   ldrne r7, [sp, #84]
29617   orr r3, r6, r3
29618   orr r3, r1, r3
29619   strne r3, [r7, lr, asl #2]
29620   add lr, lr, #1
29621   cmp r5, lr
29622   mov r4, r4, asl #4
29623   bne .L9788
29624   ldr r8, [sp, #84]
29625   add r5, r8, r5, asl #2
29626 .L9787:
29627   sub r0, r0, #32
29628 .L9784:
29629   movs  ip, ip, lsr #3
29630   beq .L9529
29631   mov r2, #0
29632   b .L9794
29633 .L10344:
29634   sub r0, r0, #32
29635   add r5, r5, #32
29636 .L9794:
29637   ldr r4, [r0, #0]
29638   cmp r4, #0
29639   beq .L9795
29640   ands  r3, r4, #15
29641   ldrne lr, [sp, #24]
29642   orrne r3, lr, r3
29643   orrne r3, r1, r3
29644   strne r3, [r5, #28]
29645   mov r3, r4, lsr #4
29646   ands  r3, r3, #15
29647   ldrne r6, [sp, #24]
29648   orrne r3, r6, r3
29649   orrne r3, r1, r3
29650   strne r3, [r5, #24]
29651   mov r3, r4, lsr #8
29652   ands  r3, r3, #15
29653   ldrne r7, [sp, #24]
29654   orrne r3, r7, r3
29655   orrne r3, r1, r3
29656   strne r3, [r5, #20]
29657   mov r3, r4, lsr #12
29658   ands  r3, r3, #15
29659   ldrne r8, [sp, #24]
29660   orrne r3, r8, r3
29661   orrne r3, r1, r3
29662   strne r3, [r5, #16]
29663   mov r3, r4, lsr #16
29664   ands  r3, r3, #15
29665   ldrne lr, [sp, #24]
29666   orrne r3, lr, r3
29667   orrne r3, r1, r3
29668   strne r3, [r5, #12]
29669   mov r3, r4, lsr #20
29670   ands  r3, r3, #15
29671   ldrne r6, [sp, #24]
29672   orrne r3, r6, r3
29673   orrne r3, r1, r3
29674   strne r3, [r5, #8]
29675   mov r3, r4, lsr #24
29676   ands  r3, r3, #15
29677   ldrne r7, [sp, #24]
29678   orrne r3, r7, r3
29679   orrne r3, r1, r3
29680   strne r3, [r5, #4]
29681   movs  r3, r4, lsr #28
29682   ldrne r8, [sp, #24]
29683   orrne r3, r8, r3
29684   orrne r3, r1, r3
29685   strne r3, [r5, #0]
29686 .L9795:
29687   add r2, r2, #1
29688   cmp r2, ip
29689   bne .L10344
29690   b .L9529
29691 .L10085:
29692   mov r3, r0, lsr #3
29693   ands  ip, r0, #7
29694   sub r2, r1, r3, asl #6
29695   ldreq r0, [sp, #84]
29696   beq .L10189
29697   cmp ip, #3
29698   rsb lr, ip, #8
29699   bhi .L10345
29700   subs  r5, lr, #4
29701   ldr r1, [r2, #4]
29702   ldreq r0, [sp, #84]
29703   beq .L10202
29704   mov r3, ip, asl #3
29705   sub r3, r3, #32
29706   mov r1, r1, asl r3
29707   mov r0, #0
29708 .L10203:
29709   movs  r3, r1, lsr #24
29710   ldr ip, [sp, #24]
29711   ldrne r6, [sp, #84]
29712   orr r3, ip, r3
29713   strne r3, [r6, r0, asl #2]
29714   add r0, r0, #1
29715   cmp r5, r0
29716   mov r1, r1, asl #8
29717   bne .L10203
29718   ldr r7, [sp, #84]
29719   add r3, r7, lr, asl #2
29720   sub r0, r3, #16
29721 .L10202:
29722   ldr r1, [r2, #0]
29723   cmp r1, #0
29724   beq .L10208
29725   ands  r3, r1, #255
29726   ldrne r8, [sp, #24]
29727   orrne r3, r8, r3
29728   strne r3, [r0, #12]
29729   mov r3, r1, lsr #8
29730   ands  r3, r3, #255
29731   ldrne ip, [sp, #24]
29732   orrne r3, ip, r3
29733   strne r3, [r0, #8]
29734   mov r3, r1, lsr #16
29735   ands  r3, r3, #255
29736   ldrne lr, [sp, #24]
29737   orrne r3, lr, r3
29738   strne r3, [r0, #4]
29739   movs  r3, r1, lsr #24
29740   ldrne r1, [sp, #24]
29741   orrne r3, r1, r3
29742   strne r3, [r0, #0]
29743 .L10208:
29744   add r0, r0, #16
29745 .L10194:
29746   sub r2, r2, #64
29747 .L10189:
29748   movs  lr, r4, lsr #3
29749   beq .L9529
29750   mov ip, #0
29751   b .L10218
29752 .L10346:
29753   sub r2, r2, #64
29754   add r0, r0, #32
29755 .L10218:
29756   ldr r1, [r2, #4]
29757   cmp r1, #0
29758   beq .L10219
29759   ands  r3, r1, #255
29760   ldrne r4, [sp, #24]
29761   orrne r3, r4, r3
29762   strne r3, [r0, #12]
29763   mov r3, r1, lsr #8
29764   ands  r3, r3, #255
29765   ldrne r5, [sp, #24]
29766   orrne r3, r5, r3
29767   strne r3, [r0, #8]
29768   mov r3, r1, lsr #16
29769   ands  r3, r3, #255
29770   ldrne r6, [sp, #24]
29771   orrne r3, r6, r3
29772   strne r3, [r0, #4]
29773   movs  r3, r1, lsr #24
29774   ldrne r7, [sp, #24]
29775   orrne r3, r7, r3
29776   strne r3, [r0, #0]
29777 .L10219:
29778   ldr r1, [r2, #0]
29779   cmp r1, #0
29780   beq .L10228
29781   ands  r3, r1, #255
29782   ldrne r8, [sp, #24]
29783   orrne r3, r8, r3
29784   strne r3, [r0, #28]
29785   mov r3, r1, lsr #8
29786   ands  r3, r3, #255
29787   ldrne r4, [sp, #24]
29788   orrne r3, r4, r3
29789   strne r3, [r0, #24]
29790   mov r3, r1, lsr #16
29791   ands  r3, r3, #255
29792   ldrne r5, [sp, #24]
29793   orrne r3, r5, r3
29794   strne r3, [r0, #20]
29795   movs  r3, r1, lsr #24
29796   ldrne r6, [sp, #24]
29797   orrne r3, r6, r3
29798   strne r3, [r0, #16]
29799 .L10228:
29800   add ip, ip, #1
29801   cmp ip, lr
29802   bne .L10346
29803   b .L9529
29804 .L9605:
29805   mov r3, r4, lsr #3
29806   mov r2, r3, asl #5
29807   ands  r3, r4, #7
29808   add lr, r0, r2
29809   ldreq ip, [sp, #84]
29810   beq .L9654
29811   rsbs  r4, r3, #8
29812   ldr r0, [r0, r2]
29813   ldreq ip, [sp, #84]
29814   beq .L9657
29815   mov r3, r3, asl #2
29816   mov r0, r0, lsr r3
29817   mov r2, #0
29818 .L9658:
29819   ldr r6, [sp, #24]
29820   ands  r3, r0, #15
29821   ldrne r7, [sp, #84]
29822   orr r3, r6, r3
29823   orr r3, r1, r3
29824   strne r3, [r7, r2, asl #2]
29825   add r2, r2, #1
29826   cmp r2, r4
29827   mov r0, r0, lsr #4
29828   bne .L9658
29829   ldr r8, [sp, #84]
29830   add ip, r8, r4, asl #2
29831 .L9657:
29832   add lr, lr, #32
29833 .L9654:
29834   movs  r4, r5, lsr #3
29835   beq .L9529
29836   mov r0, #0
29837   b .L9664
29838 .L10347:
29839   add lr, lr, #32
29840   add ip, ip, #32
29841 .L9664:
29842   ldr r2, [lr, #0]
29843   cmp r2, #0
29844   beq .L9665
29845   ands  r3, r2, #15
29846   ldrne r5, [sp, #24]
29847   orrne r3, r5, r3
29848   orrne r3, r1, r3
29849   strne r3, [ip, #0]
29850   mov r3, r2, lsr #4
29851   ands  r3, r3, #15
29852   ldrne r6, [sp, #24]
29853   orrne r3, r6, r3
29854   orrne r3, r1, r3
29855   strne r3, [ip, #4]
29856   mov r3, r2, lsr #8
29857   ands  r3, r3, #15
29858   ldrne r7, [sp, #24]
29859   orrne r3, r7, r3
29860   orrne r3, r1, r3
29861   strne r3, [ip, #8]
29862   mov r3, r2, lsr #12
29863   ands  r3, r3, #15
29864   ldrne r8, [sp, #24]
29865   orrne r3, r8, r3
29866   orrne r3, r1, r3
29867   strne r3, [ip, #12]
29868   mov r3, r2, lsr #16
29869   ands  r3, r3, #15
29870   ldrne r5, [sp, #24]
29871   orrne r3, r5, r3
29872   orrne r3, r1, r3
29873   strne r3, [ip, #16]
29874   mov r3, r2, lsr #20
29875   ands  r3, r3, #15
29876   ldrne r6, [sp, #24]
29877   orrne r3, r6, r3
29878   orrne r3, r1, r3
29879   strne r3, [ip, #20]
29880   mov r3, r2, lsr #24
29881   ands  r3, r3, #15
29882   ldrne r7, [sp, #24]
29883   orrne r3, r7, r3
29884   orrne r3, r1, r3
29885   strne r3, [ip, #24]
29886   movs  r3, r2, lsr #28
29887   ldrne r8, [sp, #24]
29888   orrne r3, r8, r3
29889   orrne r3, r1, r3
29890   strne r3, [ip, #28]
29891 .L9665:
29892   add r0, r0, #1
29893   cmp r0, r4
29894   bne .L10347
29895   b .L9529
29896 .L9867:
29897   ldr lr, [sp, #108]
29898   rsb r0, ip, #8
29899   cmp lr, r0
29900   blt .L10348
29901   cmp ip, #3
29902   bls .L9900
29903   cmp r0, #0
29904   ldr r2, [r6, #4]
29905   ldreq r4, [sp, #84]
29906   beq .L9904
29907   mov r3, ip, asl #3
29908   sub r3, r3, #32
29909   mov r1, r2, lsr r3
29910   mov r2, #0
29911 .L9905:
29912   ands  r3, r1, #255
29913   ldr r8, [sp, #24]
29914   ldrne ip, [sp, #84]
29915   orr r3, r8, r3
29916   strne r3, [ip, r2, asl #2]
29917   add r2, r2, #1
29918   cmp r0, r2
29919   mov r1, r1, lsr #8
29920   bne .L9905
29921   ldr lr, [sp, #84]
29922   add r4, lr, r0, asl #2
29923 .L9904:
29924   ldr r3, [sp, #108]
29925   add r6, r6, #64
29926   rsb r5, r0, r3
29927   b .L9869
29928 .L9737:
29929   ldr r2, [sp, #108]
29930   rsb r5, lr, #8
29931   cmp r2, r5
29932   blt .L10349
29933   cmp r5, #0
29934   ldr r2, [r0, #0]
29935   ldreq ip, [sp, #84]
29936   beq .L9750
29937   mov r3, lr, asl #2
29938   mov r4, r2, asl r3
29939   mov lr, #0
29940 .L9751:
29941   ldr r7, [sp, #24]
29942   movs  r3, r4, lsr #28
29943   ldrne r8, [sp, #84]
29944   orr r3, r7, r3
29945   orr r3, r1, r3
29946   strne r3, [r8, lr, asl #2]
29947   add lr, lr, #1
29948   cmp r5, lr
29949   mov r4, r4, asl #4
29950   bne .L9751
29951   ldr lr, [sp, #84]
29952   add ip, lr, r5, asl #2
29953 .L9750:
29954   ldr r3, [sp, #108]
29955   sub r0, r0, #32
29956   rsb r2, r5, r3
29957   b .L9739
29958 .L9607:
29959   ldr r7, [sp, #108]
29960   rsb lr, r3, #8
29961   cmp r7, lr
29962   blt .L10350
29963   cmp lr, #0
29964   ldr r2, [r5, #0]
29965   ldreq r6, [sp, #84]
29966   beq .L9620
29967   mov r3, r3, asl #2
29968   mov r2, r2, lsr r3
29969   mov r0, #0
29970 .L9621:
29971   ldr r4, [sp, #24]
29972   ands  r3, r2, #15
29973   ldrne r6, [sp, #84]
29974   orr r3, r4, r3
29975   orr r3, r1, r3
29976   strne r3, [r6, r0, asl #2]
29977   add r0, r0, #1
29978   cmp lr, r0
29979   mov r2, r2, lsr #4
29980   bne .L9621
29981   ldr r7, [sp, #84]
29982   add r6, r7, lr, asl #2
29983 .L9620:
29984   ldr r8, [sp, #108]
29985   add r5, r5, #32
29986   rsb r7, lr, r8
29987   b .L9609
29988 .L10087:
29989   ldr r1, [sp, #108]
29990   rsb r0, ip, #8
29991   cmp r1, r0
29992   blt .L10351
29993   cmp ip, #3
29994   bls .L10120
29995   cmp r0, #0
29996   ldr r2, [r6, #0]
29997   ldreq r4, [sp, #84]
29998   beq .L10124
29999   mov r3, ip, asl #3
30000   sub r3, r3, #32
30001   mov r2, r2, asl r3
30002   mov r1, #0
30003 .L10125:
30004   movs  r3, r2, lsr #24
30005   ldr r8, [sp, #24]
30006   ldrne ip, [sp, #84]
30007   orr r3, r8, r3
30008   strne r3, [ip, r1, asl #2]
30009   add r1, r1, #1
30010   cmp r0, r1
30011   mov r2, r2, asl #8
30012   bne .L10125
30013   ldr lr, [sp, #84]
30014   add r4, lr, r0, asl #2
30015 .L10124:
30016   ldr r3, [sp, #108]
30017   sub r6, r6, #64
30018   rsb r5, r0, r3
30019   b .L10089
30020 .L10351:
30021   cmp r1, #0
30022   ble .L9529
30023   cmp ip, #3
30024   bls .L10093
30025   ldr r2, [r6, #0]
30026   mov r3, ip, asl #3
30027   sub r3, r3, #32
30028   mov r2, r2, asl r3
30029   mov r1, #0
30030 .L10096:
30031   movs  r3, r2, lsr #24
30032   ldr r4, [sp, #24]
30033   ldrne r5, [sp, #84]
30034   orr r3, r4, r3
30035   ldr r6, [sp, #108]
30036   strne r3, [r5, r1, asl #2]
30037   add r1, r1, #1
30038   cmp r6, r1
30039   mov r2, r2, asl #8
30040   bne .L10096
30041   b .L9529
30042 .L10350:
30043   cmp r7, #0
30044   ble .L9529
30045   ldr r2, [r0, r2]
30046   mov r3, r3, asl #2
30047   mov r0, r2, lsr r3
30048   mov r2, #0
30049 .L9614:
30050   ldr r8, [sp, #24]
30051   ands  r3, r0, #15
30052   ldrne ip, [sp, #84]
30053   orr r3, r8, r3
30054   orr r3, r1, r3
30055   ldr lr, [sp, #108]
30056   strne r3, [ip, r2, asl #2]
30057   add r2, r2, #1
30058   cmp lr, r2
30059   mov r0, r0, lsr #4
30060   bne .L9614
30061   b .L9529
30062 .L10349:
30063   cmp r2, #0
30064   ble .L9529
30065   ldr r2, [r0, #0]
30066   mov r3, lr, asl #2
30067   mov r0, r2, asl r3
30068   mov r2, #0
30069 .L9744:
30070   ldr r4, [sp, #24]
30071   movs  r3, r0, lsr #28
30072   ldrne r5, [sp, #84]
30073   orr r3, r4, r3
30074   orr r3, r1, r3
30075   ldr r6, [sp, #108]
30076   strne r3, [r5, r2, asl #2]
30077   add r2, r2, #1
30078   cmp r6, r2
30079   mov r0, r0, asl #4
30080   bne .L9744
30081   b .L9529
30082 .L10345:
30083   cmp lr, #0
30084   ldr r1, [r2, #0]
30085   ldreq r0, [sp, #84]
30086   beq .L10194
30087   mov r3, ip, asl #3
30088   sub r3, r3, #32
30089   mov r1, r1, asl r3
30090   mov r0, #0
30091 .L10195:
30092   movs  r3, r1, lsr #24
30093   ldr r6, [sp, #24]
30094   ldrne r7, [sp, #84]
30095   orr r3, r6, r3
30096   strne r3, [r7, r0, asl #2]
30097   add r0, r0, #1
30098   cmp r0, lr
30099   mov r1, r1, asl #8
30100   bne .L10195
30101   ldr r8, [sp, #84]
30102   sub r2, r2, #64
30103   add r0, r8, lr, asl #2
30104   b .L10189
30105 .L10342:
30106   cmp ip, #0
30107   ldr r1, [r0, #4]
30108   ldreq r1, [sp, #84]
30109   beq .L9974
30110   mov r3, r2, asl #3
30111   sub r3, r3, #32
30112   mov r2, r1, lsr r3
30113   mov r1, #0
30114 .L9975:
30115   ands  r3, r2, #255
30116   ldr r6, [sp, #24]
30117   ldrne r7, [sp, #84]
30118   orr r3, r6, r3
30119   strne r3, [r7, r1, asl #2]
30120   add r1, r1, #1
30121   cmp r1, ip
30122   mov r2, r2, lsr #8
30123   bne .L9975
30124   ldr r8, [sp, #84]
30125   add r0, r0, #64
30126   add r1, r8, ip, asl #2
30127   b .L9969
30128 .L10348:
30129   cmp lr, #0
30130   ble .L9529
30131   cmp ip, #3
30132   bls .L9873
30133   ldr r2, [r6, #4]
30134   mov r3, ip, asl #3
30135   sub r3, r3, #32
30136   mov r1, r2, lsr r3
30137   mov r2, #0
30138 .L9876:
30139   ands  r3, r1, #255
30140   ldr r0, [sp, #24]
30141   ldrne r4, [sp, #84]
30142   orr r3, r0, r3
30143   ldr r5, [sp, #108]
30144   strne r3, [r4, r2, asl #2]
30145   add r2, r2, #1
30146   cmp r5, r2
30147   mov r1, r1, lsr #8
30148   bne .L9876
30149   b .L9529
30150 .L10355:
30151   mov r6, #0
30152   b .L9587
30153 .L10120:
30154   subs  lr, r0, #4
30155   ldr r2, [r6, #4]
30156   ldreq r1, [sp, #84]
30157   beq .L10132
30158   mov r3, ip, asl #3
30159   sub r3, r3, #32
30160   mov r2, r2, asl r3
30161   mov r1, #0
30162 .L10133:
30163   movs  r3, r2, lsr #24
30164   ldr r4, [sp, #24]
30165   ldrne r5, [sp, #84]
30166   orr r3, r4, r3
30167   strne r3, [r5, r1, asl #2]
30168   add r1, r1, #1
30169   cmp lr, r1
30170   mov r2, r2, asl #8
30171   bne .L10133
30172   ldr r7, [sp, #84]
30173   add r3, r7, r0, asl #2
30174   sub r1, r3, #16
30175 .L10132:
30176   ldr r2, [r6, #0]
30177   cmp r2, #0
30178   beq .L10138
30179   ands  r3, r2, #255
30180   ldrne r8, [sp, #24]
30181   orrne r3, r8, r3
30182   strne r3, [r1, #12]
30183   mov r3, r2, lsr #8
30184   ands  r3, r3, #255
30185   ldrne ip, [sp, #24]
30186   orrne r3, ip, r3
30187   strne r3, [r1, #8]
30188   mov r3, r2, lsr #16
30189   ands  r3, r3, #255
30190   ldrne lr, [sp, #24]
30191   orrne r3, lr, r3
30192   strne r3, [r1, #4]
30193   movs  r3, r2, lsr #24
30194   ldrne r2, [sp, #24]
30195   orrne r3, r2, r3
30196   strne r3, [r1, #0]
30197 .L10138:
30198   add r4, r1, #16
30199   b .L10124
30200 .L9900:
30201   subs  lr, r0, #4
30202   ldr r2, [r6, #0]
30203   ldreq r1, [sp, #84]
30204   beq .L9912
30205   mov r3, ip, asl #3
30206   mov r1, r2, lsr r3
30207   mov r2, #0
30208 .L9913:
30209   ands  r3, r1, #255
30210   ldr r4, [sp, #24]
30211   ldrne r5, [sp, #84]
30212   orr r3, r4, r3
30213   strne r3, [r5, r2, asl #2]
30214   add r2, r2, #1
30215   cmp r2, lr
30216   mov r1, r1, lsr #8
30217   bne .L9913
30218   ldr r7, [sp, #84]
30219   add r3, r7, r0, asl #2
30220   sub r1, r3, #16
30221 .L9912:
30222   ldr r2, [r6, #4]
30223   cmp r2, #0
30224   beq .L9918
30225   ands  r3, r2, #255
30226   ldrne r8, [sp, #24]
30227   orrne r3, r8, r3
30228   strne r3, [r1, #0]
30229   mov r3, r2, lsr #8
30230   ands  r3, r3, #255
30231   ldrne ip, [sp, #24]
30232   orrne r3, ip, r3
30233   strne r3, [r1, #4]
30234   mov r3, r2, lsr #16
30235   ands  r3, r3, #255
30236   ldrne lr, [sp, #24]
30237   orrne r3, lr, r3
30238   strne r3, [r1, #8]
30239   movs  r3, r2, lsr #24
30240   ldrne r2, [sp, #24]
30241   orrne r3, r2, r3
30242   strne r3, [r1, #12]
30243 .L9918:
30244   add r4, r1, #16
30245   b .L9904
30246 .L10353:
30247   ldr r5, [sp, #16]
30248   b .L10318
30249 .L10352:
30250   mov ip, fp
30251   b .L10316
30252 .L10093:
30253   ldr r7, [sp, #108]
30254   mov r3, ip, asl #3
30255   ldr r1, [r6, #4]
30256   add r2, r7, ip
30257   sub r3, r3, #32
30258   cmp r2, #4
30259   mov r1, r1, asl r3
30260   bhi .L10100
30261   cmp r7, #0
30262   movne r2, #0
30263   beq .L9529
30264 .L10116:
30265   movs  r3, r1, lsr #24
30266   ldr r5, [sp, #24]
30267   ldrne r6, [sp, #84]
30268   orr r3, r5, r3
30269   ldr r7, [sp, #108]
30270   strne r3, [r6, r2, asl #2]
30271   add r2, r2, #1
30272   cmp r7, r2
30273   mov r1, r1, asl #8
30274   bne .L10116
30275   b .L9529
30276 .L9873:
30277   ldr r7, [sp, #108]
30278   ldr r3, [r6, #0]
30279   add r2, r7, ip
30280   cmp r2, #4
30281   mov r1, ip, asl #3
30282   mov r2, r3, lsr r1
30283   bhi .L9880
30284   cmp r7, #0
30285   movne r1, #0
30286   beq .L9529
30287 .L9896:
30288   ands  r3, r2, #255
30289   ldr r5, [sp, #24]
30290   ldrne r6, [sp, #84]
30291   orr r3, r5, r3
30292   ldr r7, [sp, #108]
30293   strne r3, [r6, r1, asl #2]
30294   add r1, r1, #1
30295   cmp r7, r1
30296   mov r2, r2, lsr #8
30297   bne .L9896
30298   b .L9529
30299 .L10100:
30300   rsbs  r0, ip, #4
30301   ldreq ip, [sp, #84]
30302   beq .L10105
30303   mov r2, #0
30304 .L10106:
30305   movs  r3, r1, lsr #24
30306   ldr r8, [sp, #24]
30307   ldrne ip, [sp, #84]
30308   orr r3, r8, r3
30309   strne r3, [ip, r2, asl #2]
30310   add r2, r2, #1
30311   cmp r2, r0
30312   mov r1, r1, asl #8
30313   bne .L10106
30314   ldr lr, [sp, #84]
30315   add ip, lr, r0, asl #2
30316 .L10105:
30317   ldr r1, [sp, #108]
30318   ldr r2, [r6, #0]
30319   subs  r0, r1, r0
30320   beq .L9529
30321   mov r1, #0
30322 .L10112:
30323   ldr r4, [sp, #24]
30324   movs  r3, r2, lsr #24
30325   orr r3, r4, r3
30326   strne r3, [ip, r1, asl #2]
30327   add r1, r1, #1
30328   cmp r1, r0
30329   mov r2, r2, asl #8
30330   bne .L10112
30331   b .L9529
30332 .L9880:
30333   rsbs  r0, ip, #4
30334   ldreq ip, [sp, #84]
30335   beq .L9885
30336   mov r1, #0
30337 .L9886:
30338   ands  r3, r2, #255
30339   ldr r8, [sp, #24]
30340   ldrne ip, [sp, #84]
30341   orr r3, r8, r3
30342   strne r3, [ip, r1, asl #2]
30343   add r1, r1, #1
30344   cmp r1, r0
30345   mov r2, r2, lsr #8
30346   bne .L9886
30347   ldr lr, [sp, #84]
30348   add ip, lr, r0, asl #2
30349 .L9885:
30350   ldr r1, [sp, #108]
30351   ldr r2, [r6, #4]
30352   subs  r0, r1, r0
30353   beq .L9529
30354   mov r1, #0
30355 .L9892:
30356   ldr r4, [sp, #24]
30357   ands  r3, r2, #255
30358   orr r3, r4, r3
30359   strne r3, [ip, r1, asl #2]
30360   add r1, r1, #1
30361   cmp r1, r0
30362   mov r2, r2, lsr #8
30363   bne .L9892
30364   b .L9529
30365   .size render_scanline_obj_color32_1D, .-render_scanline_obj_color32_1D
30366   .align  2
30367   .global render_scanline_obj_color32_2D
30368   .type render_scanline_obj_color32_2D, %function
30369 render_scanline_obj_color32_2D:
30370   @ args = 0, pretend = 0, frame = 96
30371   @ frame_needed = 0, uses_anonymous_args = 0
30372   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
30373   ldr ip, .L11200
30374   sub sp, sp, #96
30375   ldrh  r4, [ip, #6]
30376   add r0, r0, r0, asl #2
30377   str r4, [sp, #36]
30378   ldr r5, [sp, #36]
30379   ldrh  r4, [ip, #80]
30380   ldr ip, .L11200+4
30381   add r0, r5, r0, asl #5
30382   ldr ip, [ip, r0, asl #2]
30383   mov lr, r4, lsr #11
30384   and lr, lr, #2
30385   mov r4, r4, asl #27
30386   str ip, [sp, #40]
30387   orr lr, lr, r4, lsr #31
30388   cmp ip, #0
30389   ldr ip, .L11200+8
30390   mov lr, lr, asl #9
30391   add r0, ip, r0, asl #7
30392   orr lr, lr, #256
30393   str r0, [sp, #44]
30394   str r1, [sp, #12]
30395   str r2, [sp, #8]
30396   str r3, [sp, #4]
30397   str lr, [sp, #28]
30398   beq .L11146
30399   mov r8, #0
30400   add r6, r3, r1, asl #2
30401   rsb r7, r1, r2
30402   str r6, [sp, #68]
30403   str r7, [sp, #92]
30404   str r8, [sp, #32]
30405   mov ip, r8
30406 .L10361:
30407   ldr lr, [sp, #44]
30408   ldr r0, .L11200+12
30409   ldrb  r3, [ip, lr]  @ zero_extendqisi2
30410   mov r3, r3, asl #3
30411   ldrh  r4, [r3, r0]
30412   add r3, r3, r0
30413   ldrh  r1, [r3, #2]
30414   mov r5, r4, lsr #12
30415   and r2, r5, #12
30416   orr r0, r2, r1, lsr #14
30417   and ip, r4, #255
30418   mov r2, r1, asl #23
30419   cmp ip, #160
30420   ldrh  lr, [r3, #4]
30421   mov r6, r2, asr #23
30422   ldr r3, .L11200+16
30423   ldr r2, .L11200+20
30424   subgt ip, ip, #256
30425   tst r4, #256
30426   ldr r8, [r2, r0, asl #2]
30427   ldr sl, [r3, r0, asl #2]
30428   beq .L10364
30429   tst r4, #8192
30430   beq .L10366
30431   tst r4, #512
30432   mov r3, r1, lsr #4
30433   ldr r4, .L11200+12
30434   and r3, r3, #992
30435   add r3, r3, r4
30436   add r2, r8, r8, lsr #31
30437   ldrh  r5, [r3, #30]
30438   mov r4, r2, asr #1
30439   add r1, sl, sl, lsr #31
30440   ldr r2, [sp, #12]
30441   movne r0, r4, asl #1
30442   str r5, [sp, #16]
30443   mov r5, r1, asr #1
30444   strne r0, [sp, #52]
30445   moveq r9, r8
30446   streq r4, [sp, #52]
30447   moveq r0, r5
30448   movne r9, r8, asl #1
30449   movne r0, r5, asl #1
30450   cmp r6, r2
30451   ldrh  r7, [r3, #6]
30452   ldrh  r1, [r3, #14]
30453   ldrh  fp, [r3, #22]
30454   bge .L10371
30455   rsb r2, r6, r2
30456   rsb r9, r2, r9
30457   cmp r9, #0
30458   ble .L10373
30459   ldr r3, [sp, #52]
30460   ldr r6, [sp, #12]
30461   rsb r3, r2, r3
30462   str r3, [sp, #52]
30463 .L10371:
30464   ldr r2, [sp, #8]
30465   add r3, r6, r9
30466   cmp r3, r2
30467   blt .L10375
30468   rsb r9, r6, r2
30469   cmp r9, #0
30470   ble .L10373
30471 .L10375:
30472   mov r3, r7, asl #16
30473   mov r2, r1, asl #16
30474   ldr r7, [sp, #16]
30475   mov r3, r3, asr #16
30476   add r0, ip, r0
30477   str r3, [sp, #48]
30478   mov ip, r2, asr #16
30479   ldr r3, [sp, #36]
30480   ldr r2, [sp, #4]
30481   mov r1, r7, asl #16
30482   mov r4, r4, asl #8
30483   cmp fp, #0
30484   str r4, [sp, #76]
30485   mov r1, r1, asr #16
30486   mov r4, r5, asl #8
30487   add r7, r2, r6, asl #2
30488   rsb r0, r0, r3
30489   bne .L10377
30490   mla r3, r0, r1, r4
30491   mov r1, r3, asr #8
30492   cmp r1, sl
30493   bcs .L10373
30494   mov r3, lr, asl #22
30495   mov r2, r1, lsr #3
30496   mov r3, r3, lsr #22
30497   add r3, r3, r2, asl #5
30498   and r1, r1, #7
30499   add r1, r1, r3, asl #2
30500   ldr r3, .L11200+24
30501   cmp r9, #0
30502   add lr, r3, r1, asl #3
30503   ble .L10373
30504   ldr r4, [sp, #48]
30505   ldr r2, [sp, #52]
30506   mul r3, r0, ip
30507   mul r2, r4, r2
30508   ldr r5, [sp, #76]
30509   rsb r3, r2, r3
30510   add r0, r5, r3
30511   mov r4, r0, asr #8
30512   cmp r4, r8
30513   movcs ip, fp
30514   bcs .L10383
30515   b .L11196
30516 .L10384:
30517   cmp r4, r8
30518   bcc .L11160
30519 .L10383:
30520   ldr r6, [sp, #48]
30521   add ip, ip, #1
30522   add r0, r0, r6
30523   cmp r9, ip
30524   mov r4, r0, asr #8
30525   add r7, r7, #4
30526   bne .L10384
30527 .L10373:
30528   ldr ip, [sp, #32]
30529   ldr lr, [sp, #40]
30530   add ip, ip, #1
30531   cmp ip, lr
30532   str ip, [sp, #32]
30533   beq .L11146
30534 .L11178:
30535   ldr ip, [sp, #32]
30536   b .L10361
30537 .L10364:
30538   ldr r2, [sp, #36]
30539   tst r1, #8192
30540   rsb r0, ip, r2
30541   rsbne r3, r0, sl
30542   subne r0, r3, #1
30543   mov r2, r1, asl #19
30544   and r3, r5, #2
30545   orr r3, r3, r2, lsr #31
30546   cmp r3, #3
30547   ldrls pc, [pc, r3, asl #2]
30548   b .L10373
30549   .p2align 2
30550 .L10445:
30551   .word .L10441
30552   .word .L10442
30553   .word .L10443
30554   .word .L10444
30555 .L10441:
30556   mov r3, lr, asl #22
30557   mov r2, r0, lsr #3
30558   mov r3, r3, lsr #22
30559   add r3, r3, r2, asl #5
30560   and r1, r0, #7
30561   add r1, r1, r3, asl #3
30562   ldr r3, [sp, #12]
30563   mov r2, lr, lsr #8
30564   cmp r6, r3
30565   ldr r3, .L11200+24
30566   add r0, r3, r1, asl #2
30567   and r1, r2, #240
30568   blt .L11173
30569   ldr ip, [sp, #8]
30570   add r3, r6, r8
30571   cmp ip, r3
30572   bhi .L10527
30573   rsb r7, r6, ip
30574   cmp r7, #0
30575   ble .L10373
30576   ldr lr, [sp, #4]
30577   movs  r8, r7, lsr #3
30578   add r2, lr, r6, asl #2
30579   beq .L10530
30580   mov r5, r2
30581   mov lr, r0
30582   mov ip, #0
30583 .L10532:
30584   ldr r4, [lr, #0]
30585   cmp r4, #0
30586   beq .L10533
30587   ands  r3, r4, #15
30588   ldrne r6, [sp, #28]
30589   orrne r3, r6, r3
30590   orrne r3, r1, r3
30591   strne r3, [r5, #0]
30592   mov r3, r4, lsr #4
30593   ands  r3, r3, #15
30594   ldrne r6, [sp, #28]
30595   orrne r3, r6, r3
30596   orrne r3, r1, r3
30597   strne r3, [r5, #4]
30598   mov r3, r4, lsr #8
30599   ands  r3, r3, #15
30600   ldrne r6, [sp, #28]
30601   orrne r3, r6, r3
30602   orrne r3, r1, r3
30603   strne r3, [r5, #8]
30604   mov r3, r4, lsr #12
30605   ands  r3, r3, #15
30606   ldrne r6, [sp, #28]
30607   orrne r3, r6, r3
30608   orrne r3, r1, r3
30609   strne r3, [r5, #12]
30610   mov r3, r4, lsr #16
30611   ands  r3, r3, #15
30612   ldrne r6, [sp, #28]
30613   orrne r3, r6, r3
30614   orrne r3, r1, r3
30615   strne r3, [r5, #16]
30616   mov r3, r4, lsr #20
30617   ands  r3, r3, #15
30618   ldrne r6, [sp, #28]
30619   orrne r3, r6, r3
30620   orrne r3, r1, r3
30621   strne r3, [r5, #20]
30622   mov r3, r4, lsr #24
30623   ands  r3, r3, #15
30624   ldrne r6, [sp, #28]
30625   orrne r3, r6, r3
30626   orrne r3, r1, r3
30627   strne r3, [r5, #24]
30628   movs  r3, r4, lsr #28
30629   ldrne r4, [sp, #28]
30630   orrne r3, r4, r3
30631   orrne r3, r1, r3
30632   strne r3, [r5, #28]
30633 .L10533:
30634   add ip, ip, #1
30635   cmp ip, r8
30636   add lr, lr, #32
30637   add r5, r5, #32
30638   bne .L10532
30639   mov r3, r8, asl #5
30640   add r0, r0, r3
30641   add r2, r2, r3
30642 .L10530:
30643   ands  lr, r7, #7
30644   beq .L10373
30645   ldr r0, [r0, #0]
30646   mov ip, #0
30647 .L10552:
30648   ldr r5, [sp, #28]
30649   ands  r3, r0, #15
30650   orr r3, r5, r3
30651   orr r3, r1, r3
30652   strne r3, [r2, ip, asl #2]
30653   add ip, ip, #1
30654   cmp ip, lr
30655   mov r0, r0, lsr #4
30656   bne .L10552
30657   b .L10373
30658 .L10442:
30659   mov r3, lr, asl #22
30660   mov r1, r0, lsr #3
30661   subs  r2, r8, #8
30662   mov r3, r3, lsr #22
30663   submi r2, r8, #1
30664   add r3, r3, r1, asl #5
30665   add r3, r3, r2, asr #3
30666   and r1, r0, #7
30667   ldr ip, [sp, #12]
30668   add r1, r1, r3, asl #3
30669   ldr r3, .L11200+24
30670   mov r2, lr, lsr #8
30671   cmp r6, ip
30672   add r0, r3, r1, asl #2
30673   and r1, r2, #240
30674   blt .L11174
30675   ldr ip, [sp, #8]
30676   add r3, r6, r8
30677   cmp ip, r3
30678   bhi .L10657
30679   rsb r8, r6, ip
30680   cmp r8, #0
30681   ble .L10373
30682   ldr lr, [sp, #4]
30683   movs  r7, r8, lsr #3
30684   add r2, lr, r6, asl #2
30685   beq .L10660
30686   mov r5, r2
30687   mov lr, r0
30688   mov ip, #0
30689 .L10662:
30690   ldr r4, [lr, #0]
30691   cmp r4, #0
30692   beq .L10663
30693   ands  r3, r4, #15
30694   ldrne r6, [sp, #28]
30695   orrne r3, r6, r3
30696   orrne r3, r1, r3
30697   strne r3, [r5, #28]
30698   mov r3, r4, lsr #4
30699   ands  r3, r3, #15
30700   ldrne r6, [sp, #28]
30701   orrne r3, r6, r3
30702   orrne r3, r1, r3
30703   strne r3, [r5, #24]
30704   mov r3, r4, lsr #8
30705   ands  r3, r3, #15
30706   ldrne r6, [sp, #28]
30707   orrne r3, r6, r3
30708   orrne r3, r1, r3
30709   strne r3, [r5, #20]
30710   mov r3, r4, lsr #12
30711   ands  r3, r3, #15
30712   ldrne r6, [sp, #28]
30713   orrne r3, r6, r3
30714   orrne r3, r1, r3
30715   strne r3, [r5, #16]
30716   mov r3, r4, lsr #16
30717   ands  r3, r3, #15
30718   ldrne r6, [sp, #28]
30719   orrne r3, r6, r3
30720   orrne r3, r1, r3
30721   strne r3, [r5, #12]
30722   mov r3, r4, lsr #20
30723   ands  r3, r3, #15
30724   ldrne r6, [sp, #28]
30725   orrne r3, r6, r3
30726   orrne r3, r1, r3
30727   strne r3, [r5, #8]
30728   mov r3, r4, lsr #24
30729   ands  r3, r3, #15
30730   ldrne r6, [sp, #28]
30731   orrne r3, r6, r3
30732   orrne r3, r1, r3
30733   strne r3, [r5, #4]
30734   movs  r3, r4, lsr #28
30735   ldrne r4, [sp, #28]
30736   orrne r3, r4, r3
30737   orrne r3, r1, r3
30738   strne r3, [r5, #0]
30739 .L10663:
30740   add ip, ip, #1
30741   cmp ip, r7
30742   sub lr, lr, #32
30743   add r5, r5, #32
30744   bne .L10662
30745   rsb r3, r7, r7, asl #27
30746   add r0, r0, r3, asl #5
30747   add r2, r2, r7, asl #5
30748 .L10660:
30749   ands  lr, r8, #7
30750   beq .L10373
30751   ldr r0, [r0, #0]
30752   mov ip, #0
30753 .L10682:
30754   ldr r5, [sp, #28]
30755   movs  r3, r0, lsr #28
30756   orr r3, r5, r3
30757   orr r3, r1, r3
30758   strne r3, [r2, ip, asl #2]
30759   add ip, ip, #1
30760   cmp ip, lr
30761   mov r0, r0, asl #4
30762   bne .L10682
30763   b .L10373
30764 .L10443:
30765   mov r2, lr, asl #22
30766   mov r1, r0, lsr #3
30767   mov r2, r2, lsr #22
30768   and r3, r0, #7
30769   add r2, r2, r1, asl #5
30770   add r3, r3, r2, asl #2
30771   ldr ip, [sp, #12]
30772   mov r0, r3, asl #3
30773   ldr r3, .L11200+24
30774   cmp r6, ip
30775   add ip, r0, r3
30776   blt .L11175
30777   ldr lr, [sp, #8]
30778   add r3, r6, r8
30779   cmp lr, r3
30780   bhi .L10862
30781   rsb r8, r6, lr
30782   cmp r8, #0
30783   ble .L10373
30784   ldr r1, [sp, #4]
30785   movs  r7, r8, lsr #3
30786   add r2, r1, r6, asl #2
30787   beq .L10865
30788   ldr r3, .L11200+32
30789   mov r5, r2
30790   add r0, r0, r3
30791   mov lr, ip
30792   mov r1, #0
30793 .L10867:
30794   ldr r4, [lr, #0]
30795   cmp r4, #0
30796   beq .L10868
30797   ands  r3, r4, #255
30798   ldrne r6, [sp, #28]
30799   orrne r3, r6, r3
30800   strne r3, [r5, #0]
30801   mov r3, r4, lsr #8
30802   ands  r3, r3, #255
30803   ldrne r6, [sp, #28]
30804   orrne r3, r6, r3
30805   strne r3, [r5, #4]
30806   mov r3, r4, lsr #16
30807   ands  r3, r3, #255
30808   ldrne r6, [sp, #28]
30809   orrne r3, r6, r3
30810   strne r3, [r5, #8]
30811   movs  r3, r4, lsr #24
30812   ldrne r4, [sp, #28]
30813   orrne r3, r4, r3
30814   strne r3, [r5, #12]
30815 .L10868:
30816   ldr r4, [r0, #-60]
30817   cmp r4, #0
30818   beq .L10877
30819   ands  r3, r4, #255
30820   ldrne r6, [sp, #28]
30821   orrne r3, r6, r3
30822   strne r3, [r5, #16]
30823   mov r3, r4, lsr #8
30824   ands  r3, r3, #255
30825   ldrne r6, [sp, #28]
30826   orrne r3, r6, r3
30827   strne r3, [r5, #20]
30828   mov r3, r4, lsr #16
30829   ands  r3, r3, #255
30830   ldrne r6, [sp, #28]
30831   orrne r3, r6, r3
30832   strne r3, [r5, #24]
30833   movs  r3, r4, lsr #24
30834   ldrne r4, [sp, #28]
30835   orrne r3, r4, r3
30836   strne r3, [r5, #28]
30837 .L10877:
30838   add r1, r1, #1
30839   cmp r7, r1
30840   add lr, lr, #64
30841   add r5, r5, #32
30842   add r0, r0, #64
30843   bne .L10867
30844   add ip, ip, r7, asl #6
30845   add r2, r2, r7, asl #5
30846 .L10865:
30847   ands  lr, r8, #7
30848   beq .L10373
30849   cmp lr, #3
30850   ldrls r0, [ip, #0]
30851   bls .L10900
30852   ldr r1, [ip, #0]
30853   cmp r1, #0
30854   beq .L10890
30855   ands  r3, r1, #255
30856   ldrne r5, [sp, #28]
30857   orrne r3, r5, r3
30858   strne r3, [r2, #0]
30859   mov r3, r1, lsr #8
30860   ands  r3, r3, #255
30861   ldrne r6, [sp, #28]
30862   orrne r3, r6, r3
30863   strne r3, [r2, #4]
30864   mov r3, r1, lsr #16
30865   ands  r3, r3, #255
30866   ldrne r7, [sp, #28]
30867   orrne r3, r7, r3
30868   strne r3, [r2, #8]
30869   movs  r3, r1, lsr #24
30870   ldrne r8, [sp, #28]
30871   orrne r3, r8, r3
30872   strne r3, [r2, #12]
30873 .L10890:
30874   subs  lr, lr, #4
30875   ldr r0, [ip, #4]
30876   addne r2, r2, #16
30877   beq .L10373
30878 .L10900:
30879   mov r1, #0
30880 .L10901:
30881   ldr ip, [sp, #28]
30882   ands  r3, r0, #255
30883   orr r3, ip, r3
30884   strne r3, [r2, r1, asl #2]
30885   add r1, r1, #1
30886   cmp lr, r1
30887   mov r0, r0, lsr #8
30888   bhi .L10901
30889   b .L10373
30890 .L10444:
30891   subs  r2, r8, #8
30892   submi r2, r8, #1
30893   mov r3, r0, lsr #3
30894   mov r2, r2, asr #3
30895   mov r1, lr, asl #22
30896   add r2, r2, r3, asl #4
30897   mov r1, r1, lsr #22
30898   and r3, r0, #7
30899   add r1, r1, r2, asl #1
30900   add r3, r3, r1, asl #2
30901   ldr ip, [sp, #12]
30902   mov r0, r3, asl #3
30903   ldr r3, .L11200+24
30904   cmp r6, ip
30905   add ip, r0, r3
30906   blt .L11176
30907   ldr lr, [sp, #8]
30908   add r3, r6, r8
30909   cmp r3, lr
30910   bcc .L11082
30911   rsb r8, r6, lr
30912   cmp r8, #0
30913   ble .L10373
30914   ldr r1, [sp, #4]
30915   movs  r7, r8, lsr #3
30916   add r6, r1, r6, asl #2
30917   beq .L11085
30918   ldr r3, .L11200+28
30919   mov r5, r6
30920   add r0, r0, r3
30921   mov lr, ip
30922   mov r1, #0
30923 .L11087:
30924   ldr r4, [r0, #68]
30925   cmp r4, #0
30926   beq .L11088
30927   ands  r3, r4, #255
30928   ldrne r2, [sp, #28]
30929   orrne r3, r2, r3
30930   strne r3, [r5, #12]
30931   mov r3, r4, lsr #8
30932   ands  r3, r3, #255
30933   ldrne r2, [sp, #28]
30934   orrne r3, r2, r3
30935   strne r3, [r5, #8]
30936   mov r3, r4, lsr #16
30937   ands  r3, r3, #255
30938   ldrne r2, [sp, #28]
30939   orrne r3, r2, r3
30940   strne r3, [r5, #4]
30941   movs  r3, r4, lsr #24
30942   ldrne r4, [sp, #28]
30943   orrne r3, r4, r3
30944   strne r3, [r5, #0]
30945 .L11088:
30946   ldr r4, [lr, #0]
30947   cmp r4, #0
30948   beq .L11097
30949   ands  r3, r4, #255
30950   ldrne r2, [sp, #28]
30951   orrne r3, r2, r3
30952   strne r3, [r5, #28]
30953   mov r3, r4, lsr #8
30954   ands  r3, r3, #255
30955   ldrne r2, [sp, #28]
30956   orrne r3, r2, r3
30957   strne r3, [r5, #24]
30958   mov r3, r4, lsr #16
30959   ands  r3, r3, #255
30960   ldrne r2, [sp, #28]
30961   orrne r3, r2, r3
30962   strne r3, [r5, #20]
30963   movs  r3, r4, lsr #24
30964   ldrne r4, [sp, #28]
30965   orrne r3, r4, r3
30966   strne r3, [r5, #16]
30967 .L11097:
30968   add r1, r1, #1
30969   cmp r1, r7
30970   sub lr, lr, #64
30971   add r5, r5, #32
30972   sub r0, r0, #64
30973   bne .L11087
30974   rsb r3, r7, r7, asl #26
30975   add ip, ip, r3, asl #6
30976   add r6, r6, r7, asl #5
30977 .L11085:
30978   ands  r0, r8, #7
30979   beq .L10373
30980   cmp r0, #3
30981   ldrls r2, [ip, #4]
30982   bls .L11120
30983   ldr r2, [ip, #4]
30984   cmp r2, #0
30985   beq .L11110
30986   ands  r3, r2, #255
30987   ldrne r5, [sp, #28]
30988   orrne r3, r5, r3
30989   strne r3, [r6, #12]
30990   mov r3, r2, lsr #8
30991   ands  r3, r3, #255
30992   ldrne r7, [sp, #28]
30993   orrne r3, r7, r3
30994   strne r3, [r6, #8]
30995   mov r3, r2, lsr #16
30996   ands  r3, r3, #255
30997   ldrne r8, [sp, #28]
30998   orrne r3, r8, r3
30999   strne r3, [r6, #4]
31000   movs  r3, r2, lsr #24
31001   ldrne lr, [sp, #28]
31002   orrne r3, lr, r3
31003   strne r3, [r6, #0]
31004 .L11110:
31005   subs  r0, r0, #4
31006   ldr r2, [ip, #0]
31007   addne r6, r6, #16
31008   beq .L10373
31009 .L11120:
31010   mov r1, #0
31011 .L11121:
31012   ldr r4, [sp, #28]
31013   movs  r3, r2, lsr #24
31014   orr r3, r4, r3
31015   strne r3, [r6, r1, asl #2]
31016   add r1, r1, #1
31017   cmp r0, r1
31018   mov r2, r2, asl #8
31019   bhi .L11121
31020   b .L10373
31021 .L10366:
31022   mov r3, r1, lsr #4
31023   ldr r1, .L11200+12
31024   and r3, r3, #992
31025   add r3, r3, r1
31026   tst r4, #512
31027   ldrh  r4, [r3, #30]
31028   add r2, r8, r8, lsr #31
31029   add r1, sl, sl, lsr #31
31030   str r4, [sp, #24]
31031   mov r4, r2, asr #1
31032   ldr r2, [sp, #12]
31033   mov r5, r1, asr #1
31034   ldrh  r7, [r3, #6]
31035   ldrh  r1, [r3, #14]
31036   ldrh  r3, [r3, #22]
31037   moveq fp, r8
31038   moveq r9, r4
31039   moveq r0, r5
31040   movne fp, r8, asl #1
31041   movne r9, r4, asl #1
31042   movne r0, r5, asl #1
31043   cmp r6, r2
31044   str r3, [sp, #20]
31045   bge .L10404
31046   rsb r2, r6, r2
31047   rsb fp, r2, fp
31048   cmp fp, #0
31049   ble .L10373
31050   ldr r6, [sp, #12]
31051   rsb r9, r2, r9
31052 .L10404:
31053   ldr r2, [sp, #8]
31054   add r3, r6, fp
31055   cmp r3, r2
31056   blt .L10407
31057   rsb fp, r6, r2
31058   cmp fp, #0
31059   ble .L10373
31060 .L10407:
31061   add ip, ip, r0
31062   mov r3, r7, asl #16
31063   mov r2, r1, asl #16
31064   ldr r0, [sp, #20]
31065   ldr r7, [sp, #24]
31066   mov r3, r3, asr #16
31067   mov r2, r2, asr #16
31068   cmp r0, #0
31069   str r3, [sp, #56]
31070   mov r0, lr, lsr #8
31071   str r2, [sp, #60]
31072   ldr r3, [sp, #36]
31073   ldr r2, [sp, #4]
31074   mov r1, r7, asl #16
31075   mov r4, r4, asl #8
31076   and r0, r0, #240
31077   str r4, [sp, #72]
31078   mov r1, r1, asr #16
31079   mov r4, r5, asl #8
31080   add r7, r2, r6, asl #2
31081   rsb ip, ip, r3
31082   str r0, [sp, #88]
31083   bne .L10409
31084   mla r3, ip, r1, r4
31085   mov r1, r3, asr #8
31086   cmp r1, sl
31087   bcs .L10373
31088   mov r3, lr, asl #22
31089   mov r2, r1, lsr #3
31090   mov r3, r3, lsr #22
31091   add r3, r3, r2, asl #5
31092   and r1, r1, #7
31093   add r1, r1, r3, asl #3
31094   ldr r3, .L11200+24
31095   cmp fp, #0
31096   add r1, r3, r1, asl #2
31097   ble .L10373
31098   ldr r3, [sp, #60]
31099   ldr r2, [sp, #56]
31100   mul r3, ip, r3
31101   mul r2, r9, r2
31102   ldr r4, [sp, #72]
31103   rsb r3, r2, r3
31104   add r0, r4, r3
31105   mov r4, r0, asr #8
31106   cmp r4, r8
31107   ldrcs r5, [sp, #20]
31108   bcs .L10415
31109   b .L11197
31110 .L10416:
31111   cmp r4, r8
31112   bcc .L11162
31113 .L10415:
31114   ldr r6, [sp, #56]
31115   add r5, r5, #1
31116   add r0, r0, r6
31117   cmp fp, r5
31118   mov r4, r0, asr #8
31119   add r7, r7, #4
31120   bne .L10416
31121   ldr ip, [sp, #32]
31122   ldr lr, [sp, #40]
31123   add ip, ip, #1
31124   cmp ip, lr
31125   str ip, [sp, #32]
31126   bne .L11178
31127 .L11146:
31128   add sp, sp, #96
31129   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
31130 .L10377:
31131   mov r3, lr, asl #22
31132   ldr r2, .L11200+24
31133   mov r3, r3, lsr #22
31134   add r3, r2, r3, asl #5
31135   cmp r9, #0
31136   str r3, [sp, #84]
31137   ble .L10373
31138   mov r3, fp, asl #16
31139   mul r2, r0, r1
31140   mov fp, r3, asr #16
31141   ldr r6, [sp, #48]
31142   mul r3, r0, ip
31143   ldr r1, [sp, #52]
31144   ldr r0, [sp, #52]
31145   mul r1, fp, r1
31146   mul r0, r6, r0
31147   ldr ip, [sp, #76]
31148   rsb r3, r0, r3
31149   rsb r2, r1, r2
31150   add r5, ip, r3
31151   add lr, r4, r2
31152   mov ip, r5, asr #8
31153   mov r4, lr, asr #8
31154   cmp ip, r8
31155   cmpcc r4, sl
31156   movcs r3, #0
31157   movcc r3, #1
31158   movcs r6, r3
31159   bcs .L10393
31160   b .L11198
31161 .L10394:
31162   cmp ip, r8
31163   cmpcc r4, sl
31164   bcc .L10395
31165 .L10393:
31166   ldr r0, [sp, #48]
31167   add r6, r6, #1
31168   add r5, r5, r0
31169   add lr, lr, fp
31170   cmp r9, r6
31171   mov ip, r5, asr #8
31172   mov r4, lr, asr #8
31173   add r7, r7, #4
31174   bne .L10394
31175   b .L10373
31176 .L10409:
31177   mov r3, lr, asl #22
31178   ldr r2, .L11200+24
31179   mov r3, r3, lsr #22
31180   add r3, r2, r3, asl #5
31181   cmp fp, #0
31182   str r3, [sp, #80]
31183   ble .L10373
31184   ldr r5, [sp, #20]
31185   mul r2, ip, r1
31186   mov r3, r5, asl #16
31187   mov r3, r3, asr #16
31188   str r3, [sp, #64]
31189   ldr r1, [sp, #64]
31190   ldr r3, [sp, #60]
31191   ldr r0, [sp, #56]
31192   mul r3, ip, r3
31193   mul r1, r9, r1
31194   mul r0, r9, r0
31195   ldr r6, [sp, #72]
31196   rsb r3, r0, r3
31197   rsb r2, r1, r2
31198   add lr, r6, r3
31199   add r5, r4, r2
31200   mov ip, lr, asr #8
31201   mov r4, r5, asr #8
31202   cmp ip, r8
31203   cmpcc r4, sl
31204   movcs r3, #0
31205   movcc r3, #1
31206   movcs r6, r3
31207   bcs .L10428
31208   b .L11199
31209 .L10429:
31210   cmp ip, r8
31211   cmpcc r4, sl
31212   bcc .L10431
31213 .L10428:
31214   ldr ip, [sp, #56]
31215   ldr r0, [sp, #64]
31216   add r6, r6, #1
31217   add lr, lr, ip
31218   add r5, r5, r0
31219   cmp fp, r6
31220   mov ip, lr, asr #8
31221   mov r4, r5, asr #8
31222   add r7, r7, #4
31223   bne .L10429
31224   b .L10373
31225 .L11181:
31226   mov r3, ip, asr #1
31227   ldr r1, [sp, #80]
31228   and r3, r3, #3
31229   and r0, r4, #7
31230   str r3, [sp, #0]
31231   ldr r3, [sp, #80]
31232   add r0, r1, r0, asl #2
31233   and r1, r4, #7
31234   mov r2, ip, asr #1
31235   add r1, r3, r1, asl #2
31236   mov r3, r4, asr #3
31237   and r9, r2, #3
31238   mov r3, r3, asl #10
31239   mov r2, ip, asr #3
31240   tst ip, #1
31241   add r3, r3, r2, asl #5
31242   add r2, r0, r3
31243   movne r4, r9
31244   add r0, r1, r3
31245   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
31246   ldrneb  r3, [r2, r4]  @ zero_extendqisi2
31247   ldr r2, [sp, #28]
31248   movne r0, r3, lsr #4
31249   andeq r0, r3, #15
31250   cmp r0, #0
31251   orr r3, r0, r2
31252   ldr r0, [sp, #88]
31253   ldr ip, [sp, #56]
31254   ldr r1, [sp, #64]
31255   add r6, r6, #1
31256   orr r3, r0, r3
31257   strne r3, [r7, #0]
31258   add lr, lr, ip
31259   add r5, r5, r1
31260   cmp fp, r6
31261   mov ip, lr, asr #8
31262   mov r4, r5, asr #8
31263   add r7, r7, #4
31264   ble .L10373
31265 .L10431:
31266   cmp r4, sl
31267   cmpcc ip, r8
31268   bcc .L11181
31269   b .L10373
31270 .L10418:
31271   cmp r4, r8
31272   bcs .L10373
31273 .L11162:
31274   mov r3, r4, asr #1
31275   and sl, r3, #3
31276   mov r3, r4, asr #3
31277   mov r3, r3, asl #5
31278   mov r2, r4, asr #1
31279   tst r4, #1
31280   add ip, r3, r1
31281   and r6, r2, #3
31282   add r2, r3, r1
31283   ldreqb  r3, [r2, r6]  @ zero_extendqisi2
31284   ldrneb  r3, [ip, sl]  @ zero_extendqisi2
31285   ldr lr, [sp, #28]
31286   movne r2, r3, lsr #4
31287   andeq r2, r3, #15
31288   cmp r2, #0
31289   orr r3, r2, lr
31290   ldr r2, [sp, #88]
31291   ldr ip, [sp, #56]
31292   add r5, r5, #1
31293   orr r3, r2, r3
31294   strne r3, [r7, #0]
31295   add r0, r0, ip
31296   cmp fp, r5
31297   mov r4, r0, asr #8
31298   add r7, r7, #4
31299   bgt .L10418
31300   b .L10373
31301 .L10386:
31302   cmp r4, r8
31303   bcs .L10373
31304 .L11160:
31305   ldr r1, [sp, #48]
31306   mov r3, r4, asr #3
31307   add r0, r0, r1
31308   add r3, lr, r3, asl #6
31309   and r1, r4, #7
31310   ldrb  r2, [r3, r1]  @ zero_extendqisi2
31311   ldr r5, [sp, #28]
31312   cmp r2, #0
31313   add ip, ip, #1
31314   orr r3, r5, r2
31315   strne r3, [r7, #0]
31316   cmp r9, ip
31317   mov r4, r0, asr #8
31318   add r7, r7, #4
31319   bgt .L10386
31320   b .L10373
31321 .L11176:
31322   ldr lr, [sp, #12]
31323   rsb r1, r6, lr
31324   rsb lr, r1, r8
31325   cmp lr, #0
31326   ble .L10373
31327   ldr r0, [sp, #8]
31328   add r3, r6, r8
31329   cmp r0, r3
31330   bhi .L10929
31331   mov r3, r1, lsr #3
31332   ands  r0, r1, #7
31333   sub r6, ip, r3, asl #6
31334   bne .L10931
31335   ldr r5, [sp, #92]
31336   ldr r4, [sp, #68]
31337 .L10933:
31338   movs  lr, r5, lsr #3
31339   beq .L10991
31340   mov r1, r4
31341   mov r0, r6
31342   mov ip, #0
31343 .L10993:
31344   ldr r2, [r0, #4]
31345   cmp r2, #0
31346   beq .L10994
31347   ands  r3, r2, #255
31348   ldrne r7, [sp, #28]
31349   orrne r3, r7, r3
31350   strne r3, [r1, #12]
31351   mov r3, r2, lsr #8
31352   ands  r3, r3, #255
31353   ldrne r8, [sp, #28]
31354   orrne r3, r8, r3
31355   strne r3, [r1, #8]
31356   mov r3, r2, lsr #16
31357   ands  r3, r3, #255
31358   ldrne r7, [sp, #28]
31359   orrne r3, r7, r3
31360   strne r3, [r1, #4]
31361   movs  r3, r2, lsr #24
31362   ldrne r8, [sp, #28]
31363   orrne r3, r8, r3
31364   strne r3, [r1, #0]
31365 .L10994:
31366   ldr r2, [r0, #0]
31367   cmp r2, #0
31368   beq .L11003
31369   ands  r3, r2, #255
31370   ldrne r7, [sp, #28]
31371   orrne r3, r7, r3
31372   strne r3, [r1, #28]
31373   mov r3, r2, lsr #8
31374   ands  r3, r3, #255
31375   ldrne r8, [sp, #28]
31376   orrne r3, r8, r3
31377   strne r3, [r1, #24]
31378   mov r3, r2, lsr #16
31379   ands  r3, r3, #255
31380   ldrne r7, [sp, #28]
31381   orrne r3, r7, r3
31382   strne r3, [r1, #20]
31383   movs  r3, r2, lsr #24
31384   ldrne r8, [sp, #28]
31385   orrne r3, r8, r3
31386   strne r3, [r1, #16]
31387 .L11003:
31388   add ip, ip, #1
31389   cmp ip, lr
31390   sub r0, r0, #64
31391   add r1, r1, #32
31392   bne .L10993
31393   rsb r3, lr, lr, asl #26
31394   add r6, r6, r3, asl #6
31395   add r4, r4, lr, asl #5
31396 .L10991:
31397   ands  r0, r5, #7
31398   beq .L10373
31399   cmp r0, #3
31400   ldrls r2, [r6, #4]
31401   bls .L11026
31402   ldr r2, [r6, #4]
31403   cmp r2, #0
31404   beq .L11016
31405   ands  r3, r2, #255
31406   ldrne ip, [sp, #28]
31407   orrne r3, ip, r3
31408   strne r3, [r4, #12]
31409   mov r3, r2, lsr #8
31410   ands  r3, r3, #255
31411   ldrne lr, [sp, #28]
31412   orrne r3, lr, r3
31413   strne r3, [r4, #8]
31414   mov r3, r2, lsr #16
31415   ands  r3, r3, #255
31416   ldrne r1, [sp, #28]
31417   orrne r3, r1, r3
31418   strne r3, [r4, #4]
31419   movs  r3, r2, lsr #24
31420   ldrne r2, [sp, #28]
31421   orrne r3, r2, r3
31422   strne r3, [r4, #0]
31423 .L11016:
31424   subs  r0, r0, #4
31425   ldr r2, [r6, #0]
31426   addne r4, r4, #16
31427   beq .L10373
31428 .L11026:
31429   mov r1, #0
31430 .L11027:
31431   ldr r5, [sp, #28]
31432   movs  r3, r2, lsr #24
31433   orr r3, r5, r3
31434   strne r3, [r4, r1, asl #2]
31435   add r1, r1, #1
31436   cmp r0, r1
31437   mov r2, r2, asl #8
31438   bhi .L11027
31439   b .L10373
31440 .L11201:
31441   .align  2
31442 .L11200:
31443   .word io_registers
31444   .word obj_priority_count
31445   .word obj_priority_list
31446   .word oam_ram
31447   .word obj_height_table
31448   .word obj_width_table
31449   .word vram+65536
31450   .word vram+65472
31451   .word vram+65600
31452 .L11175:
31453   ldr lr, [sp, #12]
31454   rsb r1, r6, lr
31455   rsb lr, r1, r8
31456   cmp lr, #0
31457   ble .L10373
31458   ldr r0, [sp, #8]
31459   add r3, r6, r8
31460   cmp r0, r3
31461   bhi .L10709
31462   mov r3, r1, lsr #3
31463   ands  r0, r1, #7
31464   add r6, ip, r3, asl #6
31465   bne .L10711
31466   ldr r5, [sp, #92]
31467   ldr r4, [sp, #68]
31468 .L10713:
31469   movs  lr, r5, lsr #3
31470   beq .L10771
31471   mov r1, r4
31472   mov r0, r6
31473   mov ip, #0
31474 .L10773:
31475   ldr r2, [r0, #0]
31476   cmp r2, #0
31477   beq .L10774
31478   ands  r3, r2, #255
31479   ldrne r7, [sp, #28]
31480   orrne r3, r7, r3
31481   strne r3, [r1, #0]
31482   mov r3, r2, lsr #8
31483   ands  r3, r3, #255
31484   ldrne r8, [sp, #28]
31485   orrne r3, r8, r3
31486   strne r3, [r1, #4]
31487   mov r3, r2, lsr #16
31488   ands  r3, r3, #255
31489   ldrne r7, [sp, #28]
31490   orrne r3, r7, r3
31491   strne r3, [r1, #8]
31492   movs  r3, r2, lsr #24
31493   ldrne r8, [sp, #28]
31494   orrne r3, r8, r3
31495   strne r3, [r1, #12]
31496 .L10774:
31497   ldr r2, [r0, #4]
31498   cmp r2, #0
31499   beq .L10783
31500   ands  r3, r2, #255
31501   ldrne r7, [sp, #28]
31502   orrne r3, r7, r3
31503   strne r3, [r1, #16]
31504   mov r3, r2, lsr #8
31505   ands  r3, r3, #255
31506   ldrne r8, [sp, #28]
31507   orrne r3, r8, r3
31508   strne r3, [r1, #20]
31509   mov r3, r2, lsr #16
31510   ands  r3, r3, #255
31511   ldrne r7, [sp, #28]
31512   orrne r3, r7, r3
31513   strne r3, [r1, #24]
31514   movs  r3, r2, lsr #24
31515   ldrne r8, [sp, #28]
31516   orrne r3, r8, r3
31517   strne r3, [r1, #28]
31518 .L10783:
31519   add ip, ip, #1
31520   cmp lr, ip
31521   add r0, r0, #64
31522   add r1, r1, #32
31523   bne .L10773
31524   add r6, r6, lr, asl #6
31525   add r4, r4, lr, asl #5
31526 .L10771:
31527   ands  r0, r5, #7
31528   beq .L10373
31529   cmp r0, #3
31530   ldrls r1, [r6, #0]
31531   bls .L10806
31532   ldr r2, [r6, #0]
31533   cmp r2, #0
31534   beq .L10796
31535   ands  r3, r2, #255
31536   ldrne ip, [sp, #28]
31537   orrne r3, ip, r3
31538   strne r3, [r4, #0]
31539   mov r3, r2, lsr #8
31540   ands  r3, r3, #255
31541   ldrne lr, [sp, #28]
31542   orrne r3, lr, r3
31543   strne r3, [r4, #4]
31544   mov r3, r2, lsr #16
31545   ands  r3, r3, #255
31546   ldrne r1, [sp, #28]
31547   orrne r3, r1, r3
31548   strne r3, [r4, #8]
31549   movs  r3, r2, lsr #24
31550   ldrne r2, [sp, #28]
31551   orrne r3, r2, r3
31552   strne r3, [r4, #12]
31553 .L10796:
31554   subs  r0, r0, #4
31555   ldr r1, [r6, #4]
31556   addne r4, r4, #16
31557   beq .L10373
31558 .L10806:
31559   mov r2, #0
31560 .L10807:
31561   ldr r5, [sp, #28]
31562   ands  r3, r1, #255
31563   orr r3, r5, r3
31564   strne r3, [r4, r2, asl #2]
31565   add r2, r2, #1
31566   cmp r0, r2
31567   mov r1, r1, lsr #8
31568   bhi .L10807
31569   b .L10373
31570 .L11174:
31571   rsb r4, r6, ip
31572   rsb ip, r4, r8
31573   cmp ip, #0
31574   ble .L10373
31575   ldr lr, [sp, #8]
31576   add r3, r6, r8
31577   cmp lr, r3
31578   bhi .L10579
31579   mov r3, r4, lsr #3
31580   ands  lr, r4, #7
31581   sub r0, r0, r3, asl #5
31582   bne .L10581
31583   ldr r2, [sp, #92]
31584   ldr ip, [sp, #68]
31585 .L10583:
31586   movs  r7, r2, lsr #3
31587   beq .L10600
31588   mov r5, ip
31589   mov lr, r0
31590   mov r6, #0
31591 .L10602:
31592   ldr r4, [lr, #0]
31593   cmp r4, #0
31594   beq .L10603
31595   ands  r3, r4, #15
31596   ldrne r8, [sp, #28]
31597   orrne r3, r8, r3
31598   orrne r3, r1, r3
31599   strne r3, [r5, #28]
31600   mov r3, r4, lsr #4
31601   ands  r3, r3, #15
31602   ldrne r8, [sp, #28]
31603   orrne r3, r8, r3
31604   orrne r3, r1, r3
31605   strne r3, [r5, #24]
31606   mov r3, r4, lsr #8
31607   ands  r3, r3, #15
31608   ldrne r8, [sp, #28]
31609   orrne r3, r8, r3
31610   orrne r3, r1, r3
31611   strne r3, [r5, #20]
31612   mov r3, r4, lsr #12
31613   ands  r3, r3, #15
31614   ldrne r8, [sp, #28]
31615   orrne r3, r8, r3
31616   orrne r3, r1, r3
31617   strne r3, [r5, #16]
31618   mov r3, r4, lsr #16
31619   ands  r3, r3, #15
31620   ldrne r8, [sp, #28]
31621   orrne r3, r8, r3
31622   orrne r3, r1, r3
31623   strne r3, [r5, #12]
31624   mov r3, r4, lsr #20
31625   ands  r3, r3, #15
31626   ldrne r8, [sp, #28]
31627   orrne r3, r8, r3
31628   orrne r3, r1, r3
31629   strne r3, [r5, #8]
31630   mov r3, r4, lsr #24
31631   ands  r3, r3, #15
31632   ldrne r8, [sp, #28]
31633   orrne r3, r8, r3
31634   orrne r3, r1, r3
31635   strne r3, [r5, #4]
31636   movs  r3, r4, lsr #28
31637   ldrne r4, [sp, #28]
31638   orrne r3, r4, r3
31639   orrne r3, r1, r3
31640   strne r3, [r5, #0]
31641 .L10603:
31642   add r6, r6, #1
31643   cmp r6, r7
31644   sub lr, lr, #32
31645   add r5, r5, #32
31646   bne .L10602
31647   rsb r3, r7, r7, asl #27
31648   add r0, r0, r3, asl #5
31649   add ip, ip, r7, asl #5
31650 .L10600:
31651   ands  lr, r2, #7
31652   beq .L10373
31653   ldr r0, [r0, #0]
31654   mov r2, #0
31655 .L10622:
31656   ldr r5, [sp, #28]
31657   movs  r3, r0, lsr #28
31658   orr r3, r5, r3
31659   orr r3, r1, r3
31660   strne r3, [ip, r2, asl #2]
31661   add r2, r2, #1
31662   cmp r2, lr
31663   mov r0, r0, asl #4
31664   bne .L10622
31665   b .L10373
31666 .L11173:
31667   ldr r5, [sp, #12]
31668   rsb r4, r6, r5
31669   rsb r5, r4, r8
31670   cmp r5, #0
31671   ble .L10373
31672   add r3, r6, r8
31673   ldr r6, [sp, #8]
31674   cmp r6, r3
31675   bhi .L10449
31676   mov r3, r4, lsr #3
31677   mov r2, r3, asl #5
31678   ands  r3, r4, #7
31679   add r5, r0, r2
31680   bne .L10451
31681   ldr r7, [sp, #92]
31682   ldr r6, [sp, #68]
31683 .L10453:
31684   movs  r4, r7, lsr #3
31685   beq .L10470
31686   mov ip, r6
31687   mov r0, r5
31688   mov lr, #0
31689 .L10472:
31690   ldr r2, [r0, #0]
31691   cmp r2, #0
31692   beq .L10473
31693   ands  r3, r2, #15
31694   ldrne r8, [sp, #28]
31695   orrne r3, r8, r3
31696   orrne r3, r1, r3
31697   strne r3, [ip, #0]
31698   mov r3, r2, lsr #4
31699   ands  r3, r3, #15
31700   ldrne r8, [sp, #28]
31701   orrne r3, r8, r3
31702   orrne r3, r1, r3
31703   strne r3, [ip, #4]
31704   mov r3, r2, lsr #8
31705   ands  r3, r3, #15
31706   ldrne r8, [sp, #28]
31707   orrne r3, r8, r3
31708   orrne r3, r1, r3
31709   strne r3, [ip, #8]
31710   mov r3, r2, lsr #12
31711   ands  r3, r3, #15
31712   ldrne r8, [sp, #28]
31713   orrne r3, r8, r3
31714   orrne r3, r1, r3
31715   strne r3, [ip, #12]
31716   mov r3, r2, lsr #16
31717   ands  r3, r3, #15
31718   ldrne r8, [sp, #28]
31719   orrne r3, r8, r3
31720   orrne r3, r1, r3
31721   strne r3, [ip, #16]
31722   mov r3, r2, lsr #20
31723   ands  r3, r3, #15
31724   ldrne r8, [sp, #28]
31725   orrne r3, r8, r3
31726   orrne r3, r1, r3
31727   strne r3, [ip, #20]
31728   mov r3, r2, lsr #24
31729   ands  r3, r3, #15
31730   ldrne r8, [sp, #28]
31731   orrne r3, r8, r3
31732   orrne r3, r1, r3
31733   strne r3, [ip, #24]
31734   movs  r3, r2, lsr #28
31735   ldrne r2, [sp, #28]
31736   orrne r3, r2, r3
31737   orrne r3, r1, r3
31738   strne r3, [ip, #28]
31739 .L10473:
31740   add lr, lr, #1
31741   cmp r4, lr
31742   add r0, r0, #32
31743   add ip, ip, #32
31744   bne .L10472
31745   mov r3, r4, asl #5
31746   add r5, r5, r3
31747   add r6, r6, r3
31748 .L10470:
31749   ands  ip, r7, #7
31750   beq .L10373
31751   ldr r2, [r5, #0]
31752   mov r0, #0
31753 .L10492:
31754   ldr r4, [sp, #28]
31755   ands  r3, r2, #15
31756   orr r3, r4, r3
31757   orr r3, r1, r3
31758   strne r3, [r6, r0, asl #2]
31759   add r0, r0, #1
31760   cmp r0, ip
31761   mov r2, r2, lsr #4
31762   bne .L10492
31763   b .L10373
31764 .L11198:
31765   mov r6, #0
31766 .L10395:
31767   cmp r4, sl
31768   movcc r3, #0
31769   movcs r3, #1
31770   cmp r8, ip
31771   orrls r3, r3, #1
31772   cmp r3, #0
31773   beq .L11161
31774   b .L10373
31775 .L10396:
31776   cmp r4, sl
31777   cmpcc ip, r8
31778   bcs .L10373
31779 .L11161:
31780   ldr r1, [sp, #48]
31781   and r3, r4, #7
31782   mov r2, ip, asr #3
31783   mov r3, r3, asl #3
31784   add r5, r5, r1
31785   add r3, r3, r2, asl #6
31786   mov r1, r4, asr #3
31787   ldr r2, [sp, #84]
31788   add r3, r3, r1, asl #10
31789   and r0, ip, #7
31790   add r3, r3, r2
31791   ldrb  r2, [r3, r0]  @ zero_extendqisi2
31792   ldr r0, [sp, #28]
31793   cmp r2, #0
31794   add r6, r6, #1
31795   orr r3, r0, r2
31796   strne r3, [r7, #0]
31797   add lr, lr, fp
31798   cmp r9, r6
31799   mov r4, lr, asr #8
31800   mov ip, r5, asr #8
31801   add r7, r7, #4
31802   bgt .L10396
31803   b .L10373
31804 .L10657:
31805   cmp r8, #0
31806   add r3, r8, #7
31807   movge r3, r8
31808   movs  lr, r3, asr #3
31809   beq .L10373
31810   ldr r7, [sp, #4]
31811   mov ip, #0
31812   add r2, r7, r6, asl #2
31813   b .L10687
31814 .L11182:
31815   sub r0, r0, #32
31816   add r2, r2, #32
31817 .L10687:
31818   ldr r4, [r0, #0]
31819   cmp r4, #0
31820   beq .L10688
31821   ands  r3, r4, #15
31822   ldrne r8, [sp, #28]
31823   orrne r3, r8, r3
31824   orrne r3, r1, r3
31825   strne r3, [r2, #28]
31826   mov r3, r4, lsr #4
31827   ands  r3, r3, #15
31828   ldrne r5, [sp, #28]
31829   orrne r3, r5, r3
31830   orrne r3, r1, r3
31831   strne r3, [r2, #24]
31832   mov r3, r4, lsr #8
31833   ands  r3, r3, #15
31834   ldrne r6, [sp, #28]
31835   orrne r3, r6, r3
31836   orrne r3, r1, r3
31837   strne r3, [r2, #20]
31838   mov r3, r4, lsr #12
31839   ands  r3, r3, #15
31840   ldrne r7, [sp, #28]
31841   orrne r3, r7, r3
31842   orrne r3, r1, r3
31843   strne r3, [r2, #16]
31844   mov r3, r4, lsr #16
31845   ands  r3, r3, #15
31846   ldrne r8, [sp, #28]
31847   orrne r3, r8, r3
31848   orrne r3, r1, r3
31849   strne r3, [r2, #12]
31850   mov r3, r4, lsr #20
31851   ands  r3, r3, #15
31852   ldrne r5, [sp, #28]
31853   orrne r3, r5, r3
31854   orrne r3, r1, r3
31855   strne r3, [r2, #8]
31856   mov r3, r4, lsr #24
31857   ands  r3, r3, #15
31858   ldrne r6, [sp, #28]
31859   orrne r3, r6, r3
31860   orrne r3, r1, r3
31861   strne r3, [r2, #4]
31862   movs  r3, r4, lsr #28
31863   ldrne r7, [sp, #28]
31864   orrne r3, r7, r3
31865   orrne r3, r1, r3
31866   strne r3, [r2, #0]
31867 .L10688:
31868   add ip, ip, #1
31869   cmp lr, ip
31870   bne .L11182
31871   b .L10373
31872 .L11082:
31873   cmp r8, #0
31874   add r3, r8, #7
31875   movge r3, r8
31876   movs  lr, r3, asr #3
31877   beq .L10373
31878   ldr r5, [sp, #4]
31879   ldr r3, .L11200+28
31880   add r2, r5, r6, asl #2
31881   add r0, r0, r3
31882   mov r1, #0
31883   b .L11126
31884 .L11183:
31885   sub ip, ip, #64
31886   add r2, r2, #32
31887 .L11126:
31888   ldr r4, [r0, #68]
31889   cmp r4, #0
31890   beq .L11127
31891   ands  r3, r4, #255
31892   ldrne r6, [sp, #28]
31893   orrne r3, r6, r3
31894   strne r3, [r2, #12]
31895   mov r3, r4, lsr #8
31896   ands  r3, r3, #255
31897   ldrne r7, [sp, #28]
31898   orrne r3, r7, r3
31899   strne r3, [r2, #8]
31900   mov r3, r4, lsr #16
31901   ands  r3, r3, #255
31902   ldrne r8, [sp, #28]
31903   orrne r3, r8, r3
31904   strne r3, [r2, #4]
31905   movs  r3, r4, lsr #24
31906   ldrne r4, [sp, #28]
31907   orrne r3, r4, r3
31908   strne r3, [r2, #0]
31909 .L11127:
31910   ldr r4, [ip, #0]
31911   cmp r4, #0
31912   beq .L11136
31913   ands  r3, r4, #255
31914   ldrne r5, [sp, #28]
31915   orrne r3, r5, r3
31916   strne r3, [r2, #28]
31917   mov r3, r4, lsr #8
31918   ands  r3, r3, #255
31919   ldrne r6, [sp, #28]
31920   orrne r3, r6, r3
31921   strne r3, [r2, #24]
31922   mov r3, r4, lsr #16
31923   ands  r3, r3, #255
31924   ldrne r7, [sp, #28]
31925   orrne r3, r7, r3
31926   strne r3, [r2, #20]
31927   movs  r3, r4, lsr #24
31928   ldrne r8, [sp, #28]
31929   orrne r3, r8, r3
31930   strne r3, [r2, #16]
31931 .L11136:
31932   add r1, r1, #1
31933   cmp lr, r1
31934   sub r0, r0, #64
31935   bne .L11183
31936   b .L10373
31937 .L10527:
31938   cmp r8, #0
31939   add r3, r8, #7
31940   movge r3, r8
31941   movs  lr, r3, asr #3
31942   beq .L10373
31943   ldr r7, [sp, #4]
31944   mov ip, #0
31945   add r2, r7, r6, asl #2
31946   b .L10557
31947 .L11184:
31948   add r0, r0, #32
31949   add r2, r2, #32
31950 .L10557:
31951   ldr r4, [r0, #0]
31952   cmp r4, #0
31953   beq .L10558
31954   ands  r3, r4, #15
31955   ldrne r8, [sp, #28]
31956   orrne r3, r8, r3
31957   orrne r3, r1, r3
31958   strne r3, [r2, #0]
31959   mov r3, r4, lsr #4
31960   ands  r3, r3, #15
31961   ldrne r5, [sp, #28]
31962   orrne r3, r5, r3
31963   orrne r3, r1, r3
31964   strne r3, [r2, #4]
31965   mov r3, r4, lsr #8
31966   ands  r3, r3, #15
31967   ldrne r6, [sp, #28]
31968   orrne r3, r6, r3
31969   orrne r3, r1, r3
31970   strne r3, [r2, #8]
31971   mov r3, r4, lsr #12
31972   ands  r3, r3, #15
31973   ldrne r7, [sp, #28]
31974   orrne r3, r7, r3
31975   orrne r3, r1, r3
31976   strne r3, [r2, #12]
31977   mov r3, r4, lsr #16
31978   ands  r3, r3, #15
31979   ldrne r8, [sp, #28]
31980   orrne r3, r8, r3
31981   orrne r3, r1, r3
31982   strne r3, [r2, #16]
31983   mov r3, r4, lsr #20
31984   ands  r3, r3, #15
31985   ldrne r5, [sp, #28]
31986   orrne r3, r5, r3
31987   orrne r3, r1, r3
31988   strne r3, [r2, #20]
31989   mov r3, r4, lsr #24
31990   ands  r3, r3, #15
31991   ldrne r6, [sp, #28]
31992   orrne r3, r6, r3
31993   orrne r3, r1, r3
31994   strne r3, [r2, #24]
31995   movs  r3, r4, lsr #28
31996   ldrne r7, [sp, #28]
31997   orrne r3, r7, r3
31998   orrne r3, r1, r3
31999   strne r3, [r2, #28]
32000 .L10558:
32001   add ip, ip, #1
32002   cmp lr, ip
32003   bne .L11184
32004   b .L10373
32005 .L10862:
32006   cmp r8, #0
32007   add r3, r8, #7
32008   movge r3, r8
32009   movs  lr, r3, asr #3
32010   beq .L10373
32011   ldr r1, [sp, #4]
32012   ldr r3, .L11200+32
32013   add r2, r1, r6, asl #2
32014   add r0, r0, r3
32015   mov r1, #0
32016   b .L10906
32017 .L11185:
32018   add ip, ip, #64
32019   add r2, r2, #32
32020 .L10906:
32021   ldr r4, [ip, #0]
32022   cmp r4, #0
32023   beq .L10907
32024   ands  r3, r4, #255
32025   ldrne r5, [sp, #28]
32026   orrne r3, r5, r3
32027   strne r3, [r2, #0]
32028   mov r3, r4, lsr #8
32029   ands  r3, r3, #255
32030   ldrne r6, [sp, #28]
32031   orrne r3, r6, r3
32032   strne r3, [r2, #4]
32033   mov r3, r4, lsr #16
32034   ands  r3, r3, #255
32035   ldrne r7, [sp, #28]
32036   orrne r3, r7, r3
32037   strne r3, [r2, #8]
32038   movs  r3, r4, lsr #24
32039   ldrne r8, [sp, #28]
32040   orrne r3, r8, r3
32041   strne r3, [r2, #12]
32042 .L10907:
32043   ldr r4, [r0, #-60]
32044   cmp r4, #0
32045   beq .L10916
32046   ands  r3, r4, #255
32047   ldrne r5, [sp, #28]
32048   orrne r3, r5, r3
32049   strne r3, [r2, #16]
32050   mov r3, r4, lsr #8
32051   ands  r3, r3, #255
32052   ldrne r6, [sp, #28]
32053   orrne r3, r6, r3
32054   strne r3, [r2, #20]
32055   mov r3, r4, lsr #16
32056   ands  r3, r3, #255
32057   ldrne r7, [sp, #28]
32058   orrne r3, r7, r3
32059   strne r3, [r2, #24]
32060   movs  r3, r4, lsr #24
32061   ldrne r8, [sp, #28]
32062   orrne r3, r8, r3
32063   strne r3, [r2, #28]
32064 .L10916:
32065   add r1, r1, #1
32066   cmp lr, r1
32067   add r0, r0, #64
32068   bne .L11185
32069   b .L10373
32070 .L10709:
32071   mov r3, r1, lsr #3
32072   ands  r2, r1, #7
32073   add r0, ip, r3, asl #6
32074   ldreq r1, [sp, #68]
32075   beq .L10813
32076   cmp r2, #3
32077   rsb ip, r2, #8
32078   bhi .L11186
32079   subs  r4, ip, #4
32080   ldr r1, [r0, #0]
32081   ldreq r1, [sp, #68]
32082   beq .L10826
32083   mov r3, r2, asl #3
32084   mov r2, r1, lsr r3
32085   mov r1, #0
32086 .L10827:
32087   ands  r3, r2, #255
32088   ldr r5, [sp, #28]
32089   ldrne r6, [sp, #68]
32090   orr r3, r5, r3
32091   strne r3, [r6, r1, asl #2]
32092   add r1, r1, #1
32093   cmp r1, r4
32094   mov r2, r2, lsr #8
32095   bne .L10827
32096   ldr r7, [sp, #68]
32097   add r3, r7, ip, asl #2
32098   sub r1, r3, #16
32099 .L10826:
32100   ldr r2, [r0, #4]
32101   cmp r2, #0
32102   beq .L10832
32103   ands  r3, r2, #255
32104   ldrne r8, [sp, #28]
32105   orrne r3, r8, r3
32106   strne r3, [r1, #0]
32107   mov r3, r2, lsr #8
32108   ands  r3, r3, #255
32109   ldrne ip, [sp, #28]
32110   orrne r3, ip, r3
32111   strne r3, [r1, #4]
32112   mov r3, r2, lsr #16
32113   ands  r3, r3, #255
32114   ldrne r4, [sp, #28]
32115   orrne r3, r4, r3
32116   strne r3, [r1, #8]
32117   movs  r3, r2, lsr #24
32118   ldrne r5, [sp, #28]
32119   orrne r3, r5, r3
32120   strne r3, [r1, #12]
32121 .L10832:
32122   add r1, r1, #16
32123 .L10818:
32124   add r0, r0, #64
32125 .L10813:
32126   movs  lr, lr, lsr #3
32127   beq .L10373
32128   mov ip, #0
32129   b .L10842
32130 .L11187:
32131   add r0, r0, #64
32132   add r1, r1, #32
32133 .L10842:
32134   ldr r2, [r0, #0]
32135   cmp r2, #0
32136   beq .L10843
32137   ands  r3, r2, #255
32138   ldrne r6, [sp, #28]
32139   orrne r3, r6, r3
32140   strne r3, [r1, #0]
32141   mov r3, r2, lsr #8
32142   ands  r3, r3, #255
32143   ldrne r7, [sp, #28]
32144   orrne r3, r7, r3
32145   strne r3, [r1, #4]
32146   mov r3, r2, lsr #16
32147   ands  r3, r3, #255
32148   ldrne r8, [sp, #28]
32149   orrne r3, r8, r3
32150   strne r3, [r1, #8]
32151   movs  r3, r2, lsr #24
32152   ldrne r2, [sp, #28]
32153   orrne r3, r2, r3
32154   strne r3, [r1, #12]
32155 .L10843:
32156   ldr r2, [r0, #4]
32157   cmp r2, #0
32158   beq .L10852
32159   ands  r3, r2, #255
32160   ldrne r4, [sp, #28]
32161   orrne r3, r4, r3
32162   strne r3, [r1, #16]
32163   mov r3, r2, lsr #8
32164   ands  r3, r3, #255
32165   ldrne r5, [sp, #28]
32166   orrne r3, r5, r3
32167   strne r3, [r1, #20]
32168   mov r3, r2, lsr #16
32169   ands  r3, r3, #255
32170   ldrne r6, [sp, #28]
32171   orrne r3, r6, r3
32172   strne r3, [r1, #24]
32173   movs  r3, r2, lsr #24
32174   ldrne r7, [sp, #28]
32175   orrne r3, r7, r3
32176   strne r3, [r1, #28]
32177 .L10852:
32178   add ip, ip, #1
32179   cmp lr, ip
32180   bne .L11187
32181   b .L10373
32182 .L10579:
32183   ands  r2, r4, #7
32184   mov r3, r4, lsr #3
32185   sub r0, r0, r3, asl #5
32186   ldreq r5, [sp, #68]
32187   beq .L10628
32188   rsbs  r5, r2, #8
32189   ldr lr, [r0, #0]
32190   ldreq r5, [sp, #68]
32191   beq .L10631
32192   mov r3, r2, asl #2
32193   mov r4, lr, asl r3
32194   mov lr, #0
32195 .L10632:
32196   ldr r6, [sp, #28]
32197   movs  r3, r4, lsr #28
32198   ldrne r7, [sp, #68]
32199   orr r3, r6, r3
32200   orr r3, r1, r3
32201   strne r3, [r7, lr, asl #2]
32202   add lr, lr, #1
32203   cmp r5, lr
32204   mov r4, r4, asl #4
32205   bne .L10632
32206   ldr r8, [sp, #68]
32207   add r5, r8, r5, asl #2
32208 .L10631:
32209   sub r0, r0, #32
32210 .L10628:
32211   movs  ip, ip, lsr #3
32212   beq .L10373
32213   mov r2, #0
32214   b .L10638
32215 .L11188:
32216   sub r0, r0, #32
32217   add r5, r5, #32
32218 .L10638:
32219   ldr r4, [r0, #0]
32220   cmp r4, #0
32221   beq .L10639
32222   ands  r3, r4, #15
32223   ldrne lr, [sp, #28]
32224   orrne r3, lr, r3
32225   orrne r3, r1, r3
32226   strne r3, [r5, #28]
32227   mov r3, r4, lsr #4
32228   ands  r3, r3, #15
32229   ldrne r6, [sp, #28]
32230   orrne r3, r6, r3
32231   orrne r3, r1, r3
32232   strne r3, [r5, #24]
32233   mov r3, r4, lsr #8
32234   ands  r3, r3, #15
32235   ldrne r7, [sp, #28]
32236   orrne r3, r7, r3
32237   orrne r3, r1, r3
32238   strne r3, [r5, #20]
32239   mov r3, r4, lsr #12
32240   ands  r3, r3, #15
32241   ldrne r8, [sp, #28]
32242   orrne r3, r8, r3
32243   orrne r3, r1, r3
32244   strne r3, [r5, #16]
32245   mov r3, r4, lsr #16
32246   ands  r3, r3, #15
32247   ldrne lr, [sp, #28]
32248   orrne r3, lr, r3
32249   orrne r3, r1, r3
32250   strne r3, [r5, #12]
32251   mov r3, r4, lsr #20
32252   ands  r3, r3, #15
32253   ldrne r6, [sp, #28]
32254   orrne r3, r6, r3
32255   orrne r3, r1, r3
32256   strne r3, [r5, #8]
32257   mov r3, r4, lsr #24
32258   ands  r3, r3, #15
32259   ldrne r7, [sp, #28]
32260   orrne r3, r7, r3
32261   orrne r3, r1, r3
32262   strne r3, [r5, #4]
32263   movs  r3, r4, lsr #28
32264   ldrne r8, [sp, #28]
32265   orrne r3, r8, r3
32266   orrne r3, r1, r3
32267   strne r3, [r5, #0]
32268 .L10639:
32269   add r2, r2, #1
32270   cmp r2, ip
32271   bne .L11188
32272   b .L10373
32273 .L10929:
32274   ands  r0, r1, #7
32275   mov r3, r1, lsr #3
32276   sub r2, ip, r3, asl #6
32277   ldreq r0, [sp, #68]
32278   beq .L11033
32279   cmp r0, #3
32280   rsb ip, r0, #8
32281   bhi .L11189
32282   subs  r4, ip, #4
32283   ldr r1, [r2, #4]
32284   ldreq r0, [sp, #68]
32285   beq .L11046
32286   mov r3, r0, asl #3
32287   sub r3, r3, #32
32288   mov r1, r1, asl r3
32289   mov r0, #0
32290 .L11047:
32291   movs  r3, r1, lsr #24
32292   ldr r5, [sp, #28]
32293   ldrne r6, [sp, #68]
32294   orr r3, r5, r3
32295   strne r3, [r6, r0, asl #2]
32296   add r0, r0, #1
32297   cmp r4, r0
32298   mov r1, r1, asl #8
32299   bne .L11047
32300   ldr r7, [sp, #68]
32301   add r3, r7, ip, asl #2
32302   sub r0, r3, #16
32303 .L11046:
32304   ldr r1, [r2, #0]
32305   cmp r1, #0
32306   beq .L11052
32307   ands  r3, r1, #255
32308   ldrne r8, [sp, #28]
32309   orrne r3, r8, r3
32310   strne r3, [r0, #12]
32311   mov r3, r1, lsr #8
32312   ands  r3, r3, #255
32313   ldrne ip, [sp, #28]
32314   orrne r3, ip, r3
32315   strne r3, [r0, #8]
32316   mov r3, r1, lsr #16
32317   ands  r3, r3, #255
32318   ldrne r4, [sp, #28]
32319   orrne r3, r4, r3
32320   strne r3, [r0, #4]
32321   movs  r3, r1, lsr #24
32322   ldrne r5, [sp, #28]
32323   orrne r3, r5, r3
32324   strne r3, [r0, #0]
32325 .L11052:
32326   add r0, r0, #16
32327 .L11038:
32328   sub r2, r2, #64
32329 .L11033:
32330   movs  lr, lr, lsr #3
32331   beq .L10373
32332   mov ip, #0
32333   b .L11062
32334 .L11190:
32335   sub r2, r2, #64
32336   add r0, r0, #32
32337 .L11062:
32338   ldr r1, [r2, #4]
32339   cmp r1, #0
32340   beq .L11063
32341   ands  r3, r1, #255
32342   ldrne r6, [sp, #28]
32343   orrne r3, r6, r3
32344   strne r3, [r0, #12]
32345   mov r3, r1, lsr #8
32346   ands  r3, r3, #255
32347   ldrne r7, [sp, #28]
32348   orrne r3, r7, r3
32349   strne r3, [r0, #8]
32350   mov r3, r1, lsr #16
32351   ands  r3, r3, #255
32352   ldrne r8, [sp, #28]
32353   orrne r3, r8, r3
32354   strne r3, [r0, #4]
32355   movs  r3, r1, lsr #24
32356   ldrne r1, [sp, #28]
32357   orrne r3, r1, r3
32358   strne r3, [r0, #0]
32359 .L11063:
32360   ldr r1, [r2, #0]
32361   cmp r1, #0
32362   beq .L11072
32363   ands  r3, r1, #255
32364   ldrne r4, [sp, #28]
32365   orrne r3, r4, r3
32366   strne r3, [r0, #28]
32367   mov r3, r1, lsr #8
32368   ands  r3, r3, #255
32369   ldrne r5, [sp, #28]
32370   orrne r3, r5, r3
32371   strne r3, [r0, #24]
32372   mov r3, r1, lsr #16
32373   ands  r3, r3, #255
32374   ldrne r6, [sp, #28]
32375   orrne r3, r6, r3
32376   strne r3, [r0, #20]
32377   movs  r3, r1, lsr #24
32378   ldrne r7, [sp, #28]
32379   orrne r3, r7, r3
32380   strne r3, [r0, #16]
32381 .L11072:
32382   add ip, ip, #1
32383   cmp ip, lr
32384   bne .L11190
32385   b .L10373
32386 .L10449:
32387   mov r3, r4, lsr #3
32388   mov r2, r3, asl #5
32389   ands  r3, r4, #7
32390   add lr, r0, r2
32391   ldreq ip, [sp, #68]
32392   beq .L10498
32393   rsbs  r4, r3, #8
32394   ldr r0, [r0, r2]
32395   ldreq ip, [sp, #68]
32396   beq .L10501
32397   mov r3, r3, asl #2
32398   mov r0, r0, lsr r3
32399   mov r2, #0
32400 .L10502:
32401   ldr r6, [sp, #28]
32402   ands  r3, r0, #15
32403   ldrne r7, [sp, #68]
32404   orr r3, r6, r3
32405   orr r3, r1, r3
32406   strne r3, [r7, r2, asl #2]
32407   add r2, r2, #1
32408   cmp r2, r4
32409   mov r0, r0, lsr #4
32410   bne .L10502
32411   ldr r8, [sp, #68]
32412   add ip, r8, r4, asl #2
32413 .L10501:
32414   add lr, lr, #32
32415 .L10498:
32416   movs  r4, r5, lsr #3
32417   beq .L10373
32418   mov r0, #0
32419   b .L10508
32420 .L11191:
32421   add lr, lr, #32
32422   add ip, ip, #32
32423 .L10508:
32424   ldr r2, [lr, #0]
32425   cmp r2, #0
32426   beq .L10509
32427   ands  r3, r2, #15
32428   ldrne r5, [sp, #28]
32429   orrne r3, r5, r3
32430   orrne r3, r1, r3
32431   strne r3, [ip, #0]
32432   mov r3, r2, lsr #4
32433   ands  r3, r3, #15
32434   ldrne r6, [sp, #28]
32435   orrne r3, r6, r3
32436   orrne r3, r1, r3
32437   strne r3, [ip, #4]
32438   mov r3, r2, lsr #8
32439   ands  r3, r3, #15
32440   ldrne r7, [sp, #28]
32441   orrne r3, r7, r3
32442   orrne r3, r1, r3
32443   strne r3, [ip, #8]
32444   mov r3, r2, lsr #12
32445   ands  r3, r3, #15
32446   ldrne r8, [sp, #28]
32447   orrne r3, r8, r3
32448   orrne r3, r1, r3
32449   strne r3, [ip, #12]
32450   mov r3, r2, lsr #16
32451   ands  r3, r3, #15
32452   ldrne r5, [sp, #28]
32453   orrne r3, r5, r3
32454   orrne r3, r1, r3
32455   strne r3, [ip, #16]
32456   mov r3, r2, lsr #20
32457   ands  r3, r3, #15
32458   ldrne r6, [sp, #28]
32459   orrne r3, r6, r3
32460   orrne r3, r1, r3
32461   strne r3, [ip, #20]
32462   mov r3, r2, lsr #24
32463   ands  r3, r3, #15
32464   ldrne r7, [sp, #28]
32465   orrne r3, r7, r3
32466   orrne r3, r1, r3
32467   strne r3, [ip, #24]
32468   movs  r3, r2, lsr #28
32469   ldrne r8, [sp, #28]
32470   orrne r3, r8, r3
32471   orrne r3, r1, r3
32472   strne r3, [ip, #28]
32473 .L10509:
32474   add r0, r0, #1
32475   cmp r0, r4
32476   bne .L11191
32477   b .L10373
32478 .L10711:
32479   ldr r1, [sp, #92]
32480   rsb ip, r0, #8
32481   cmp r1, ip
32482   blt .L11192
32483   cmp r0, #3
32484   bls .L10744
32485   cmp ip, #0
32486   ldr r2, [r6, #4]
32487   ldreq r4, [sp, #68]
32488   beq .L10748
32489   mov r3, r0, asl #3
32490   sub r3, r3, #32
32491   mov r1, r2, lsr r3
32492   mov r2, #0
32493 .L10749:
32494   ands  r3, r1, #255
32495   ldr r8, [sp, #28]
32496   ldrne lr, [sp, #68]
32497   orr r3, r8, r3
32498   strne r3, [lr, r2, asl #2]
32499   add r2, r2, #1
32500   cmp ip, r2
32501   mov r1, r1, lsr #8
32502   bne .L10749
32503   ldr r0, [sp, #68]
32504   add r4, r0, ip, asl #2
32505 .L10748:
32506   ldr r3, [sp, #92]
32507   add r6, r6, #64
32508   rsb r5, ip, r3
32509   b .L10713
32510 .L10581:
32511   ldr r2, [sp, #92]
32512   rsb r5, lr, #8
32513   cmp r2, r5
32514   blt .L11193
32515   cmp r5, #0
32516   ldr r2, [r0, #0]
32517   ldreq ip, [sp, #68]
32518   beq .L10594
32519   mov r3, lr, asl #2
32520   mov r4, r2, asl r3
32521   mov lr, #0
32522 .L10595:
32523   ldr r7, [sp, #28]
32524   movs  r3, r4, lsr #28
32525   ldrne r8, [sp, #68]
32526   orr r3, r7, r3
32527   orr r3, r1, r3
32528   strne r3, [r8, lr, asl #2]
32529   add lr, lr, #1
32530   cmp r5, lr
32531   mov r4, r4, asl #4
32532   bne .L10595
32533   ldr lr, [sp, #68]
32534   add ip, lr, r5, asl #2
32535 .L10594:
32536   ldr r3, [sp, #92]
32537   sub r0, r0, #32
32538   rsb r2, r5, r3
32539   b .L10583
32540 .L10451:
32541   ldr r7, [sp, #92]
32542   rsb lr, r3, #8
32543   cmp r7, lr
32544   blt .L11194
32545   cmp lr, #0
32546   ldr r2, [r5, #0]
32547   ldreq r6, [sp, #68]
32548   beq .L10464
32549   mov r3, r3, asl #2
32550   mov r2, r2, lsr r3
32551   mov r0, #0
32552 .L10465:
32553   ldr r4, [sp, #28]
32554   ands  r3, r2, #15
32555   ldrne r6, [sp, #68]
32556   orr r3, r4, r3
32557   orr r3, r1, r3
32558   strne r3, [r6, r0, asl #2]
32559   add r0, r0, #1
32560   cmp lr, r0
32561   mov r2, r2, lsr #4
32562   bne .L10465
32563   ldr r7, [sp, #68]
32564   add r6, r7, lr, asl #2
32565 .L10464:
32566   ldr r8, [sp, #92]
32567   add r5, r5, #32
32568   rsb r7, lr, r8
32569   b .L10453
32570 .L10931:
32571   ldr r1, [sp, #92]
32572   rsb ip, r0, #8
32573   cmp r1, ip
32574   blt .L11195
32575   cmp r0, #3
32576   bls .L10964
32577   cmp ip, #0
32578   ldr r2, [r6, #0]
32579   ldreq r4, [sp, #68]
32580   beq .L10968
32581   mov r3, r0, asl #3
32582   sub r3, r3, #32
32583   mov r2, r2, asl r3
32584   mov r1, #0
32585 .L10969:
32586   movs  r3, r2, lsr #24
32587   ldr r8, [sp, #28]
32588   ldrne lr, [sp, #68]
32589   orr r3, r8, r3
32590   strne r3, [lr, r1, asl #2]
32591   add r1, r1, #1
32592   cmp ip, r1
32593   mov r2, r2, asl #8
32594   bne .L10969
32595   ldr r0, [sp, #68]
32596   add r4, r0, ip, asl #2
32597 .L10968:
32598   ldr r3, [sp, #92]
32599   sub r6, r6, #64
32600   rsb r5, ip, r3
32601   b .L10933
32602 .L11195:
32603   cmp r1, #0
32604   ble .L10373
32605   cmp r0, #3
32606   bls .L10937
32607   ldr r2, [r6, #0]
32608   mov r3, r0, asl #3
32609   sub r3, r3, #32
32610   mov r2, r2, asl r3
32611   mov r1, #0
32612 .L10940:
32613   movs  r3, r2, lsr #24
32614   ldr r4, [sp, #28]
32615   ldrne r5, [sp, #68]
32616   orr r3, r4, r3
32617   ldr r6, [sp, #92]
32618   strne r3, [r5, r1, asl #2]
32619   add r1, r1, #1
32620   cmp r6, r1
32621   mov r2, r2, asl #8
32622   bne .L10940
32623   b .L10373
32624 .L11194:
32625   cmp r7, #0
32626   ble .L10373
32627   ldr r2, [r0, r2]
32628   mov r3, r3, asl #2
32629   mov r0, r2, lsr r3
32630   mov r2, #0
32631 .L10458:
32632   ldr r8, [sp, #28]
32633   ands  r3, r0, #15
32634   ldrne ip, [sp, #68]
32635   orr r3, r8, r3
32636   orr r3, r1, r3
32637   ldr lr, [sp, #92]
32638   strne r3, [ip, r2, asl #2]
32639   add r2, r2, #1
32640   cmp lr, r2
32641   mov r0, r0, lsr #4
32642   bne .L10458
32643   b .L10373
32644 .L11193:
32645   cmp r2, #0
32646   ble .L10373
32647   ldr r2, [r0, #0]
32648   mov r3, lr, asl #2
32649   mov r0, r2, asl r3
32650   mov r2, #0
32651 .L10588:
32652   ldr r4, [sp, #28]
32653   movs  r3, r0, lsr #28
32654   ldrne r5, [sp, #68]
32655   orr r3, r4, r3
32656   orr r3, r1, r3
32657   ldr r6, [sp, #92]
32658   strne r3, [r5, r2, asl #2]
32659   add r2, r2, #1
32660   cmp r6, r2
32661   mov r0, r0, asl #4
32662   bne .L10588
32663   b .L10373
32664 .L11189:
32665   cmp ip, #0
32666   ldr r1, [r2, #0]
32667   ldreq r0, [sp, #68]
32668   beq .L11038
32669   mov r3, r0, asl #3
32670   sub r3, r3, #32
32671   mov r1, r1, asl r3
32672   mov r0, #0
32673 .L11039:
32674   movs  r3, r1, lsr #24
32675   ldr r6, [sp, #28]
32676   ldrne r7, [sp, #68]
32677   orr r3, r6, r3
32678   strne r3, [r7, r0, asl #2]
32679   add r0, r0, #1
32680   cmp r0, ip
32681   mov r1, r1, asl #8
32682   bne .L11039
32683   ldr r8, [sp, #68]
32684   sub r2, r2, #64
32685   add r0, r8, ip, asl #2
32686   b .L11033
32687 .L11186:
32688   cmp ip, #0
32689   ldr r1, [r0, #4]
32690   ldreq r1, [sp, #68]
32691   beq .L10818
32692   mov r3, r2, asl #3
32693   sub r3, r3, #32
32694   mov r2, r1, lsr r3
32695   mov r1, #0
32696 .L10819:
32697   ands  r3, r2, #255
32698   ldr r6, [sp, #28]
32699   ldrne r7, [sp, #68]
32700   orr r3, r6, r3
32701   strne r3, [r7, r1, asl #2]
32702   add r1, r1, #1
32703   cmp r1, ip
32704   mov r2, r2, lsr #8
32705   bne .L10819
32706   ldr r8, [sp, #68]
32707   add r0, r0, #64
32708   add r1, r8, ip, asl #2
32709   b .L10813
32710 .L11192:
32711   cmp r1, #0
32712   ble .L10373
32713   cmp r0, #3
32714   bls .L10717
32715   ldr r2, [r6, #4]
32716   mov r3, r0, asl #3
32717   sub r3, r3, #32
32718   mov r1, r2, lsr r3
32719   mov r2, #0
32720 .L10720:
32721   ands  r3, r1, #255
32722   ldr r4, [sp, #28]
32723   ldrne r5, [sp, #68]
32724   orr r3, r4, r3
32725   ldr r6, [sp, #92]
32726   strne r3, [r5, r2, asl #2]
32727   add r2, r2, #1
32728   cmp r6, r2
32729   mov r1, r1, lsr #8
32730   bne .L10720
32731   b .L10373
32732 .L11199:
32733   mov r6, #0
32734   b .L10431
32735 .L10964:
32736   subs  lr, ip, #4
32737   ldr r2, [r6, #4]
32738   ldreq r1, [sp, #68]
32739   beq .L10976
32740   mov r3, r0, asl #3
32741   sub r3, r3, #32
32742   mov r2, r2, asl r3
32743   mov r1, #0
32744 .L10977:
32745   movs  r3, r2, lsr #24
32746   ldr r4, [sp, #28]
32747   ldrne r5, [sp, #68]
32748   orr r3, r4, r3
32749   strne r3, [r5, r1, asl #2]
32750   add r1, r1, #1
32751   cmp lr, r1
32752   mov r2, r2, asl #8
32753   bne .L10977
32754   ldr r7, [sp, #68]
32755   add r3, r7, ip, asl #2
32756   sub r1, r3, #16
32757 .L10976:
32758   ldr r2, [r6, #0]
32759   cmp r2, #0
32760   beq .L10982
32761   ands  r3, r2, #255
32762   ldrne r8, [sp, #28]
32763   orrne r3, r8, r3
32764   strne r3, [r1, #12]
32765   mov r3, r2, lsr #8
32766   ands  r3, r3, #255
32767   ldrne lr, [sp, #28]
32768   orrne r3, lr, r3
32769   strne r3, [r1, #8]
32770   mov r3, r2, lsr #16
32771   ands  r3, r3, #255
32772   ldrne r0, [sp, #28]
32773   orrne r3, r0, r3
32774   strne r3, [r1, #4]
32775   movs  r3, r2, lsr #24
32776   ldrne r2, [sp, #28]
32777   orrne r3, r2, r3
32778   strne r3, [r1, #0]
32779 .L10982:
32780   add r4, r1, #16
32781   b .L10968
32782 .L10744:
32783   subs  lr, ip, #4
32784   ldr r2, [r6, #0]
32785   ldreq r1, [sp, #68]
32786   beq .L10756
32787   mov r3, r0, asl #3
32788   mov r1, r2, lsr r3
32789   mov r2, #0
32790 .L10757:
32791   ands  r3, r1, #255
32792   ldr r4, [sp, #28]
32793   ldrne r5, [sp, #68]
32794   orr r3, r4, r3
32795   strne r3, [r5, r2, asl #2]
32796   add r2, r2, #1
32797   cmp r2, lr
32798   mov r1, r1, lsr #8
32799   bne .L10757
32800   ldr r7, [sp, #68]
32801   add r3, r7, ip, asl #2
32802   sub r1, r3, #16
32803 .L10756:
32804   ldr r2, [r6, #4]
32805   cmp r2, #0
32806   beq .L10762
32807   ands  r3, r2, #255
32808   ldrne r8, [sp, #28]
32809   orrne r3, r8, r3
32810   strne r3, [r1, #0]
32811   mov r3, r2, lsr #8
32812   ands  r3, r3, #255
32813   ldrne lr, [sp, #28]
32814   orrne r3, lr, r3
32815   strne r3, [r1, #4]
32816   mov r3, r2, lsr #16
32817   ands  r3, r3, #255
32818   ldrne r0, [sp, #28]
32819   orrne r3, r0, r3
32820   strne r3, [r1, #8]
32821   movs  r3, r2, lsr #24
32822   ldrne r2, [sp, #28]
32823   orrne r3, r2, r3
32824   strne r3, [r1, #12]
32825 .L10762:
32826   add r4, r1, #16
32827   b .L10748
32828 .L11197:
32829   ldr r5, [sp, #20]
32830   b .L11162
32831 .L11196:
32832   mov ip, fp
32833   b .L11160
32834 .L10937:
32835   ldr r7, [sp, #92]
32836   mov r3, r0, asl #3
32837   ldr r1, [r6, #4]
32838   add r2, r7, r0
32839   sub r3, r3, #32
32840   cmp r2, #4
32841   mov r1, r1, asl r3
32842   bhi .L10944
32843   cmp r7, #0
32844   movne r2, #0
32845   beq .L10373
32846 .L10960:
32847   movs  r3, r1, lsr #24
32848   ldr r5, [sp, #28]
32849   ldrne r6, [sp, #68]
32850   orr r3, r5, r3
32851   ldr r7, [sp, #92]
32852   strne r3, [r6, r2, asl #2]
32853   add r2, r2, #1
32854   cmp r7, r2
32855   mov r1, r1, asl #8
32856   bne .L10960
32857   b .L10373
32858 .L10717:
32859   ldr r7, [sp, #92]
32860   ldr r3, [r6, #0]
32861   add r2, r7, r0
32862   cmp r2, #4
32863   mov r1, r0, asl #3
32864   mov r2, r3, lsr r1
32865   bhi .L10724
32866   cmp r7, #0
32867   movne r1, #0
32868   beq .L10373
32869 .L10740:
32870   ands  r3, r2, #255
32871   ldr r5, [sp, #28]
32872   ldrne r6, [sp, #68]
32873   orr r3, r5, r3
32874   ldr r7, [sp, #92]
32875   strne r3, [r6, r1, asl #2]
32876   add r1, r1, #1
32877   cmp r7, r1
32878   mov r2, r2, lsr #8
32879   bne .L10740
32880   b .L10373
32881 .L10944:
32882   rsbs  r0, r0, #4
32883   ldreq ip, [sp, #68]
32884   beq .L10949
32885   mov r2, #0
32886 .L10950:
32887   movs  r3, r1, lsr #24
32888   ldr r8, [sp, #28]
32889   ldrne ip, [sp, #68]
32890   orr r3, r8, r3
32891   strne r3, [ip, r2, asl #2]
32892   add r2, r2, #1
32893   cmp r2, r0
32894   mov r1, r1, asl #8
32895   bne .L10950
32896   ldr lr, [sp, #68]
32897   add ip, lr, r0, asl #2
32898 .L10949:
32899   ldr r1, [sp, #92]
32900   ldr r2, [r6, #0]
32901   subs  r0, r1, r0
32902   beq .L10373
32903   mov r1, #0
32904 .L10956:
32905   ldr r4, [sp, #28]
32906   movs  r3, r2, lsr #24
32907   orr r3, r4, r3
32908   strne r3, [ip, r1, asl #2]
32909   add r1, r1, #1
32910   cmp r1, r0
32911   mov r2, r2, asl #8
32912   bne .L10956
32913   b .L10373
32914 .L10724:
32915   rsbs  r0, r0, #4
32916   ldreq ip, [sp, #68]
32917   beq .L10729
32918   mov r1, #0
32919 .L10730:
32920   ands  r3, r2, #255
32921   ldr r8, [sp, #28]
32922   ldrne ip, [sp, #68]
32923   orr r3, r8, r3
32924   strne r3, [ip, r1, asl #2]
32925   add r1, r1, #1
32926   cmp r1, r0
32927   mov r2, r2, lsr #8
32928   bne .L10730
32929   ldr lr, [sp, #68]
32930   add ip, lr, r0, asl #2
32931 .L10729:
32932   ldr r1, [sp, #92]
32933   ldr r2, [r6, #4]
32934   subs  r0, r1, r0
32935   beq .L10373
32936   mov r1, #0
32937 .L10736:
32938   ldr r4, [sp, #28]
32939   ands  r3, r2, #255
32940   orr r3, r4, r3
32941   strne r3, [ip, r1, asl #2]
32942   add r1, r1, #1
32943   cmp r1, r0
32944   mov r2, r2, lsr #8
32945   bne .L10736
32946   b .L10373
32947   .size render_scanline_obj_color32_2D, .-render_scanline_obj_color32_2D
32948   .align  2
32949   .global render_scanline_obj_alpha_obj_1D
32950   .type render_scanline_obj_alpha_obj_1D, %function
32951 render_scanline_obj_alpha_obj_1D:
32952   @ args = 0, pretend = 0, frame = 96
32953   @ frame_needed = 0, uses_anonymous_args = 0
32954   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
32955   ldr r5, .L12434
32956   sub sp, sp, #96
32957   ldrh  lr, [r5, #80]
32958   mov r4, r0
32959   mov ip, lr, lsr #11
32960   and ip, ip, #2
32961   mov lr, lr, asl #27
32962   orr ip, ip, lr, lsr #31
32963   mov ip, ip, asl #9
32964   orr ip, ip, #256
32965   tst ip, #512
32966   str r1, [sp, #8]
32967   str ip, [sp, #20]
32968   str r2, [sp, #4]
32969   str r3, [sp, #0]
32970   beq .L12407
32971   ldrh  r5, [r5, #6]
32972   add r3, r0, r0, asl #2
32973   ldr r2, .L12434+4
32974   add r3, r5, r3, asl #5
32975   ldr r2, [r2, r3, asl #2]
32976   str r5, [sp, #32]
32977   str r2, [sp, #36]
32978   cmp r2, #0
32979   ldr r2, .L12434+8
32980   add r3, r2, r3, asl #7
32981   str r3, [sp, #40]
32982   beq .L12381
32983   ldr r1, [sp, #8]
32984   ldmia sp, {r0, r2}  @ phole ldm
32985   mov r3, #0
32986   add r0, r0, r1, asl #2
32987   rsb r2, r1, r2
32988   str r0, [sp, #68]
32989   str r2, [sp, #92]
32990   str r3, [sp, #24]
32991   mov r4, r3
32992 .L11207:
32993   ldr r5, [sp, #40]
32994   ldr r6, .L12434+20
32995   ldrb  r3, [r4, r5]  @ zero_extendqisi2
32996   ldr r8, .L12434+12
32997   mov r3, r3, asl #3
32998   ldrh  lr, [r3, r6]
32999   add r3, r3, r6
33000   ldrh  r4, [r3, #2]
33001   and r0, lr, #255
33002   mov r5, lr, lsr #12
33003   and r2, r5, #12
33004   cmp r0, #160
33005   ldrh  r3, [r3, #4]
33006   ldr sl, .L12434+16
33007   orr r1, r2, r4, lsr #14
33008   subgt r0, r0, #256
33009   mov r2, r4, asl #23
33010   tst lr, #256
33011   str r3, [sp, #28]
33012   mov r6, r2, asr #23
33013   ldr r7, [r8, r1, asl #2]
33014   ldr r9, [sl, r1, asl #2]
33015   beq .L11210
33016   tst lr, #8192
33017   beq .L11212
33018   ldr fp, .L12434+20
33019   mov r3, r4, lsr #4
33020   add r2, r7, r7, lsr #31
33021   and r3, r3, #992
33022   tst lr, #512
33023   add r3, r3, fp
33024   mov lr, r2, asr #1
33025   add r1, r9, r9, lsr #31
33026   ldr r2, [sp, #8]
33027   mov r4, r1, asr #1
33028   ldrh  sl, [r3, #30]
33029   ldrh  r5, [r3, #6]
33030   ldrh  r1, [r3, #14]
33031   ldrh  r3, [r3, #22]
33032   moveq r8, r7
33033   moveq fp, lr
33034   moveq ip, r4
33035   movne r8, r7, asl #1
33036   movne fp, lr, asl #1
33037   movne ip, r4, asl #1
33038   cmp r6, r2
33039   str r3, [sp, #12]
33040   bge .L11217
33041   rsb r2, r6, r2
33042   rsb r8, r2, r8
33043   cmp r8, #0
33044   ble .L11219
33045   ldr r6, [sp, #8]
33046   rsb fp, r2, fp
33047 .L11217:
33048   ldr r2, [sp, #4]
33049   add r3, r6, r8
33050   cmp r3, r2
33051   blt .L11221
33052   rsb r8, r6, r2
33053   cmp r8, #0
33054   ble .L11219
33055 .L11221:
33056   mov r3, r5, asl #16
33057   mov r2, r1, asl #16
33058   ldr r5, [sp, #12]
33059   mov r1, sl, asl #16
33060   mov lr, lr, asl #8
33061   add r0, r0, ip
33062   str lr, [sp, #80]
33063   mov ip, r1, asr #16
33064   ldr lr, [sp, #0]
33065   ldr r1, [sp, #32]
33066   cmp r5, #0
33067   mov r2, r2, asr #16
33068   add r5, lr, r6, asl #2
33069   mov sl, r3, asr #16
33070   str r2, [sp, #44]
33071   mov r4, r4, asl #8
33072   rsb lr, r0, r1
33073   bne .L11223
33074   mla r3, lr, ip, r4
33075   mov r0, r3, asr #8
33076   cmp r0, r9
33077   bcs .L11219
33078   cmp r7, #0
33079   ldr r4, [sp, #28]
33080   add r3, r7, #7
33081   movge r3, r7
33082   mov r3, r3, asr #3
33083   mov r2, r4, asl #22
33084   mov r3, r3, asl #1
33085   mov r1, r0, lsr #3
33086   mov r2, r2, lsr #22
33087   mla ip, r3, r1, r2
33088   and r0, r0, #7
33089   ldr r3, .L12434+24
33090   add r0, r0, ip, asl #2
33091   cmp r8, #0
33092   add r6, r3, r0, asl #3
33093   ble .L11219
33094   ldr r3, [sp, #44]
33095   mul r2, sl, fp
33096   mul r3, lr, r3
33097   ldr r9, [sp, #80]
33098   rsb r3, r2, r3
33099   add r0, r9, r3
33100   mov r2, r0, asr #8
33101   cmp r7, r2
33102   ldrls lr, [sp, #12]
33103   bls .L11229
33104   b .L12431
33105 .L11230:
33106   cmp r7, r2
33107   bhi .L12395
33108 .L11229:
33109   add lr, lr, #1
33110   add r0, r0, sl
33111   cmp r8, lr
33112   mov r2, r0, asr #8
33113   add r5, r5, #4
33114   bne .L11230
33115 .L11219:
33116   ldr r9, [sp, #24]
33117   ldr sl, [sp, #36]
33118   add r9, r9, #1
33119   cmp r9, sl
33120   str r9, [sp, #24]
33121   beq .L12381
33122   ldr r4, [sp, #24]
33123   b .L11207
33124 .L11210:
33125   ldr r1, [sp, #32]
33126   tst r4, #8192
33127   rsb ip, r0, r1
33128   rsbne r3, ip, r9
33129   subne ip, r3, #1
33130   mov r2, r4, asl #19
33131   and r3, r5, #2
33132   orr r3, r3, r2, lsr #31
33133   cmp r3, #3
33134   ldrls pc, [pc, r3, asl #2]
33135   b .L11219
33136   .p2align 2
33137 .L11300:
33138   .word .L11296
33139   .word .L11297
33140   .word .L11298
33141   .word .L11299
33142 .L11296:
33143   ldr r4, [sp, #28]
33144   cmp r7, #0
33145   add r3, r7, #7
33146   mov r2, r4, asl #22
33147   movge r3, r7
33148   mov r5, r3, asr #3
33149   mov r2, r2, lsr #22
33150   mov r3, ip, lsr #3
33151   mla r0, r5, r3, r2
33152   ldr r8, [sp, #8]
33153   and r1, ip, #7
33154   ldr r3, .L12434+24
33155   add r1, r1, r0, asl #3
33156   cmp r6, r8
33157   mov r2, r4, lsr #8
33158   add r0, r3, r1, asl #2
33159   and r8, r2, #240
33160   bge .L11301
33161   ldr r9, [sp, #8]
33162   rsb lr, r6, r9
33163   rsb r5, lr, r7
33164   cmp r5, #0
33165   ble .L11219
33166   ldr sl, [sp, #4]
33167   add r3, r6, r7
33168   cmp sl, r3
33169   bhi .L11304
33170   mov r3, lr, lsr #3
33171   mov r1, r3, asl #5
33172   ands  r3, lr, #7
33173   add r6, r0, r1
33174   bne .L11306
33175   ldr sl, [sp, #92]
33176   ldr r4, [sp, #68]
33177 .L11308:
33178   movs  r7, sl, lsr #3
33179   beq .L11329
33180   mov r0, r4
33181   mov lr, r6
33182   mov r5, #0
33183 .L11331:
33184   ldr r1, [lr, #0]
33185   cmp r1, #0
33186   beq .L11332
33187   ands  r3, r1, #15
33188   beq .L11334
33189   ldr r2, [r0, #0]
33190   orr ip, r8, r3
33191   tst r2, #256
33192   ldrne r9, [sp, #20]
33193   ldreq fp, [sp, #20]
33194   movne r3, r2, lsr #16
33195   movne r3, r3, asl #16
33196   orreq r3, fp, ip
33197   orrne r2, r9, ip
33198   orrne r3, r3, r2
33199   orreq r3, r3, r2, asl #16
33200   strne r3, [r0, #0]
33201   streq r3, [r0, #0]
33202 .L11334:
33203   mov r3, r1, lsr #4
33204   ands  r3, r3, #15
33205   beq .L11338
33206   ldr r2, [r0, #4]
33207   orr ip, r8, r3
33208   tst r2, #256
33209   ldrne r9, [sp, #20]
33210   ldreq fp, [sp, #20]
33211   movne r3, r2, lsr #16
33212   movne r3, r3, asl #16
33213   orreq r3, fp, ip
33214   orrne r2, r9, ip
33215   orrne r3, r3, r2
33216   orreq r3, r3, r2, asl #16
33217   strne r3, [r0, #4]
33218   streq r3, [r0, #4]
33219 .L11338:
33220   mov r3, r1, lsr #8
33221   ands  r3, r3, #15
33222   beq .L11342
33223   ldr r2, [r0, #8]
33224   orr ip, r8, r3
33225   tst r2, #256
33226   ldrne r9, [sp, #20]
33227   ldreq fp, [sp, #20]
33228   movne r3, r2, lsr #16
33229   movne r3, r3, asl #16
33230   orreq r3, fp, ip
33231   orrne r2, r9, ip
33232   orrne r3, r3, r2
33233   orreq r3, r3, r2, asl #16
33234   strne r3, [r0, #8]
33235   streq r3, [r0, #8]
33236 .L11342:
33237   mov r3, r1, lsr #12
33238   ands  r3, r3, #15
33239   beq .L11346
33240   ldr r2, [r0, #12]
33241   orr ip, r8, r3
33242   tst r2, #256
33243   ldrne r9, [sp, #20]
33244   ldreq fp, [sp, #20]
33245   movne r3, r2, lsr #16
33246   movne r3, r3, asl #16
33247   orreq r3, fp, ip
33248   orrne r2, r9, ip
33249   orrne r3, r3, r2
33250   orreq r3, r3, r2, asl #16
33251   strne r3, [r0, #12]
33252   streq r3, [r0, #12]
33253 .L11346:
33254   mov r3, r1, lsr #16
33255   ands  r3, r3, #15
33256   beq .L11350
33257   ldr r2, [r0, #16]
33258   orr ip, r8, r3
33259   tst r2, #256
33260   ldrne r9, [sp, #20]
33261   ldreq fp, [sp, #20]
33262   movne r3, r2, lsr #16
33263   movne r3, r3, asl #16
33264   orreq r3, fp, ip
33265   orrne r2, r9, ip
33266   orrne r3, r3, r2
33267   orreq r3, r3, r2, asl #16
33268   strne r3, [r0, #16]
33269   streq r3, [r0, #16]
33270 .L11350:
33271   mov r3, r1, lsr #20
33272   ands  r3, r3, #15
33273   beq .L11354
33274   ldr r2, [r0, #20]
33275   orr ip, r8, r3
33276   tst r2, #256
33277   ldrne r9, [sp, #20]
33278   ldreq fp, [sp, #20]
33279   movne r3, r2, lsr #16
33280   movne r3, r3, asl #16
33281   orreq r3, fp, ip
33282   orrne r2, r9, ip
33283   orrne r3, r3, r2
33284   orreq r3, r3, r2, asl #16
33285   strne r3, [r0, #20]
33286   streq r3, [r0, #20]
33287 .L11354:
33288   mov r3, r1, lsr #24
33289   ands  r3, r3, #15
33290   beq .L11358
33291   ldr r2, [r0, #24]
33292   orr ip, r8, r3
33293   tst r2, #256
33294   ldrne r9, [sp, #20]
33295   ldreq fp, [sp, #20]
33296   movne r3, r2, lsr #16
33297   movne r3, r3, asl #16
33298   orreq r3, fp, ip
33299   orrne r2, r9, ip
33300   orrne r3, r3, r2
33301   orreq r3, r3, r2, asl #16
33302   strne r3, [r0, #24]
33303   streq r3, [r0, #24]
33304 .L11358:
33305   movs  r3, r1, lsr #28
33306   beq .L11332
33307   ldr r2, [r0, #28]
33308   orr r1, r8, r3
33309   tst r2, #256
33310   ldrne ip, [sp, #20]
33311   ldreq r9, [sp, #20]
33312   movne r3, r2, lsr #16
33313   movne r3, r3, asl #16
33314   orreq r3, r9, r1
33315   orrne r2, ip, r1
33316   orrne r3, r3, r2
33317   orreq r3, r3, r2, asl #16
33318   strne r3, [r0, #28]
33319   streq r3, [r0, #28]
33320 .L11332:
33321   add r5, r5, #1
33322   cmp r5, r7
33323   add lr, lr, #32
33324   add r0, r0, #32
33325   bne .L11331
33326   mov r3, r7, asl #5
33327   add r6, r6, r3
33328   add r4, r4, r3
33329 .L11329:
33330   ands  r5, sl, #7
33331   beq .L11219
33332   ldr ip, [r6, #0]
33333   mov lr, #0
33334 .L11367:
33335   ands  r3, ip, #15
33336   beq .L11368
33337   ldr r1, [r4, #0]
33338   ldr sl, [sp, #20]
33339   orr r2, r8, r3
33340   mov r3, r1, lsr #16
33341   orr r0, sl, r2
33342   mov r3, r3, asl #16
33343   orr r2, sl, r2
33344   tst r1, #256
33345   orr r3, r3, r0
33346   orr r2, r2, r1, asl #16
33347   strne r3, [r4, #0]
33348   streq r2, [r4, #0]
33349 .L11368:
33350   add lr, lr, #1
33351   cmp r5, lr
33352   mov ip, ip, lsr #4
33353   add r4, r4, #4
33354   bne .L11367
33355   b .L11219
33356 .L11297:
33357   ldr r5, [sp, #28]
33358   cmp r7, #0
33359   add r3, r7, #7
33360   mov r2, r5, asl #22
33361   movge r3, r7
33362   mov r5, r3, asr #3
33363   mov r2, r2, lsr #22
33364   mov r1, ip, lsr #3
33365   mla r0, r5, r1, r2
33366   subs  r3, r7, #8
33367   submi r3, r7, #1
33368   ldr r8, [sp, #8]
33369   ldr r9, [sp, #28]
33370   add r0, r0, r3, asr #3
33371   and r2, ip, #7
33372   ldr r3, .L12434+24
33373   add r2, r2, r0, asl #3
33374   cmp r6, r8
33375   mov r1, r9, lsr #8
33376   add r0, r3, r2, asl #2
33377   and r8, r1, #240
33378   bge .L11505
33379   ldr sl, [sp, #8]
33380   rsb lr, r6, sl
33381   rsb sl, lr, r7
33382   cmp sl, #0
33383   ble .L11219
33384   ldr fp, [sp, #4]
33385   add r3, r6, r7
33386   cmp fp, r3
33387   bhi .L11508
33388   mov r3, lr, lsr #3
33389   ands  r4, lr, #7
33390   sub ip, r0, r3, asl #5
33391   bne .L11510
33392   ldr sl, [sp, #92]
33393   ldr r5, [sp, #68]
33394 .L11512:
33395   movs  r7, sl, lsr #3
33396   beq .L11533
33397   mov r0, r5
33398   mov r4, ip
33399   mov r6, #0
33400 .L11535:
33401   ldr r1, [r4, #0]
33402   cmp r1, #0
33403   beq .L11536
33404   ands  r3, r1, #15
33405   beq .L11538
33406   ldr r2, [r0, #28]
33407   orr lr, r8, r3
33408   tst r2, #256
33409   ldrne r9, [sp, #20]
33410   ldreq fp, [sp, #20]
33411   movne r3, r2, lsr #16
33412   movne r3, r3, asl #16
33413   orreq r3, fp, lr
33414   orrne r2, r9, lr
33415   orrne r3, r3, r2
33416   orreq r3, r3, r2, asl #16
33417   strne r3, [r0, #28]
33418   streq r3, [r0, #28]
33419 .L11538:
33420   mov r3, r1, lsr #4
33421   ands  r3, r3, #15
33422   beq .L11542
33423   ldr r2, [r0, #24]
33424   orr lr, r8, r3
33425   tst r2, #256
33426   ldrne r9, [sp, #20]
33427   ldreq fp, [sp, #20]
33428   movne r3, r2, lsr #16
33429   movne r3, r3, asl #16
33430   orreq r3, fp, lr
33431   orrne r2, r9, lr
33432   orrne r3, r3, r2
33433   orreq r3, r3, r2, asl #16
33434   strne r3, [r0, #24]
33435   streq r3, [r0, #24]
33436 .L11542:
33437   mov r3, r1, lsr #8
33438   ands  r3, r3, #15
33439   beq .L11546
33440   ldr r2, [r0, #20]
33441   orr lr, r8, r3
33442   tst r2, #256
33443   ldrne r9, [sp, #20]
33444   ldreq fp, [sp, #20]
33445   movne r3, r2, lsr #16
33446   movne r3, r3, asl #16
33447   orreq r3, fp, lr
33448   orrne r2, r9, lr
33449   orrne r3, r3, r2
33450   orreq r3, r3, r2, asl #16
33451   strne r3, [r0, #20]
33452   streq r3, [r0, #20]
33453 .L11546:
33454   mov r3, r1, lsr #12
33455   ands  r3, r3, #15
33456   beq .L11550
33457   ldr r2, [r0, #16]
33458   orr lr, r8, r3
33459   tst r2, #256
33460   ldrne r9, [sp, #20]
33461   ldreq fp, [sp, #20]
33462   movne r3, r2, lsr #16
33463   movne r3, r3, asl #16
33464   orreq r3, fp, lr
33465   orrne r2, r9, lr
33466   orrne r3, r3, r2
33467   orreq r3, r3, r2, asl #16
33468   strne r3, [r0, #16]
33469   streq r3, [r0, #16]
33470 .L11550:
33471   mov r3, r1, lsr #16
33472   ands  r3, r3, #15
33473   beq .L11554
33474   ldr r2, [r0, #12]
33475   orr lr, r8, r3
33476   tst r2, #256
33477   ldrne r9, [sp, #20]
33478   ldreq fp, [sp, #20]
33479   movne r3, r2, lsr #16
33480   movne r3, r3, asl #16
33481   orreq r3, fp, lr
33482   orrne r2, r9, lr
33483   orrne r3, r3, r2
33484   orreq r3, r3, r2, asl #16
33485   strne r3, [r0, #12]
33486   streq r3, [r0, #12]
33487 .L11554:
33488   mov r3, r1, lsr #20
33489   ands  r3, r3, #15
33490   beq .L11558
33491   ldr r2, [r0, #8]
33492   orr lr, r8, r3
33493   tst r2, #256
33494   ldrne r9, [sp, #20]
33495   ldreq fp, [sp, #20]
33496   movne r3, r2, lsr #16
33497   movne r3, r3, asl #16
33498   orreq r3, fp, lr
33499   orrne r2, r9, lr
33500   orrne r3, r3, r2
33501   orreq r3, r3, r2, asl #16
33502   strne r3, [r0, #8]
33503   streq r3, [r0, #8]
33504 .L11558:
33505   mov r3, r1, lsr #24
33506   ands  r3, r3, #15
33507   beq .L11562
33508   ldr r2, [r0, #4]
33509   orr lr, r8, r3
33510   tst r2, #256
33511   ldrne r9, [sp, #20]
33512   ldreq fp, [sp, #20]
33513   movne r3, r2, lsr #16
33514   movne r3, r3, asl #16
33515   orreq r3, fp, lr
33516   orrne r2, r9, lr
33517   orrne r3, r3, r2
33518   orreq r3, r3, r2, asl #16
33519   strne r3, [r0, #4]
33520   streq r3, [r0, #4]
33521 .L11562:
33522   movs  r3, r1, lsr #28
33523   beq .L11536
33524   ldr r2, [r0, #0]
33525   orr r1, r8, r3
33526   tst r2, #256
33527   ldrne lr, [sp, #20]
33528   ldreq r9, [sp, #20]
33529   movne r3, r2, lsr #16
33530   movne r3, r3, asl #16
33531   orreq r3, r9, r1
33532   orrne r2, lr, r1
33533   orrne r3, r3, r2
33534   orreq r3, r3, r2, asl #16
33535   strne r3, [r0, #0]
33536   streq r3, [r0, #0]
33537 .L11536:
33538   add r6, r6, #1
33539   cmp r7, r6
33540   sub r4, r4, #32
33541   add r0, r0, #32
33542   bne .L11535
33543   rsb r3, r7, r7, asl #27
33544   add ip, ip, r3, asl #5
33545   add r5, r5, r7, asl #5
33546 .L11533:
33547   ands  r4, sl, #7
33548   beq .L11219
33549   ldr ip, [ip, #0]
33550   mov lr, #0
33551 .L11571:
33552   movs  r3, ip, lsr #28
33553   beq .L11572
33554   ldr r1, [r5, #0]
33555   ldr sl, [sp, #20]
33556   orr r2, r8, r3
33557   mov r3, r1, lsr #16
33558   orr r0, sl, r2
33559   mov r3, r3, asl #16
33560   orr r2, sl, r2
33561   tst r1, #256
33562   orr r3, r3, r0
33563   orr r2, r2, r1, asl #16
33564   strne r3, [r5, #0]
33565   streq r2, [r5, #0]
33566 .L11572:
33567   add lr, lr, #1
33568   cmp r4, lr
33569   mov ip, ip, asl #4
33570   add r5, r5, #4
33571   bne .L11571
33572   b .L11219
33573 .L11298:
33574   ldr r5, [sp, #28]
33575   cmp r7, #0
33576   add r3, r7, #7
33577   mov r2, ip, lsr #3
33578   movge r3, r7
33579   mov r1, r5, asl #22
33580   mov r4, r3, asr #3
33581   mov r2, r2, asl #1
33582   mov r1, r1, lsr #22
33583   mla r0, r2, r4, r1
33584   and r3, ip, #7
33585   add r3, r3, r0, asl #2
33586   ldr r8, [sp, #8]
33587   mov r0, r3, asl #3
33588   ldr r3, .L12434+24
33589   cmp r6, r8
33590   add ip, r0, r3
33591   bge .L11709
33592   rsb r0, r6, r8
33593   rsb r8, r0, r7
33594   cmp r8, #0
33595   ble .L11219
33596   ldr r9, [sp, #4]
33597   add r3, r6, r7
33598   cmp r9, r3
33599   bhi .L11712
33600   mov r3, r0, lsr #3
33601   ands  lr, r0, #7
33602   add r7, ip, r3, asl #6
33603   bne .L11714
33604   ldr r6, [sp, #92]
33605   ldr r4, [sp, #68]
33606 .L11716:
33607   movs  r5, r6, lsr #3
33608   beq .L11794
33609   mov r1, r4
33610   mov ip, r7
33611   mov lr, #0
33612 .L11796:
33613   ldr r2, [ip, #0]
33614   cmp r2, #0
33615   beq .L11797
33616   ands  r0, r2, #255
33617   beq .L11799
33618   ldr r3, [r1, #0]
33619   tst r3, #256
33620   movne r3, r3, lsr #16
33621   ldrne r8, [sp, #20]
33622   ldreq r9, [sp, #20]
33623   movne r3, r3, asl #16
33624   orrne r3, r8, r3
33625   orreq r3, r9, r3, asl #16
33626   orrne r3, r0, r3
33627   orreq r3, r0, r3
33628   strne r3, [r1, #0]
33629   streq r3, [r1, #0]
33630 .L11799:
33631   mov r3, r2, lsr #8
33632   ands  r0, r3, #255
33633   beq .L11803
33634   ldr r3, [r1, #4]
33635   tst r3, #256
33636   movne r3, r3, lsr #16
33637   ldrne sl, [sp, #20]
33638   ldreq fp, [sp, #20]
33639   movne r3, r3, asl #16
33640   orrne r3, sl, r3
33641   orreq r3, fp, r3, asl #16
33642   orrne r3, r0, r3
33643   orreq r3, r0, r3
33644   strne r3, [r1, #4]
33645   streq r3, [r1, #4]
33646 .L11803:
33647   mov r3, r2, lsr #16
33648   ands  r0, r3, #255
33649   beq .L11807
33650   ldr r3, [r1, #8]
33651   tst r3, #256
33652   movne r3, r3, lsr #16
33653   ldrne r8, [sp, #20]
33654   ldreq r9, [sp, #20]
33655   movne r3, r3, asl #16
33656   orrne r3, r8, r3
33657   orreq r3, r9, r3, asl #16
33658   orrne r3, r0, r3
33659   orreq r3, r0, r3
33660   strne r3, [r1, #8]
33661   streq r3, [r1, #8]
33662 .L11807:
33663   movs  r0, r2, lsr #24
33664   beq .L11797
33665   ldr r2, [r1, #12]
33666   tst r2, #256
33667   ldrne sl, [sp, #20]
33668   ldreq fp, [sp, #20]
33669   movne r3, r2, lsr #16
33670   movne r3, r3, asl #16
33671   orreq r3, fp, r0
33672   orrne r2, sl, r0
33673   orrne r3, r3, r2
33674   orreq r3, r3, r2, asl #16
33675   strne r3, [r1, #12]
33676   streq r3, [r1, #12]
33677 .L11797:
33678   ldr r2, [ip, #4]
33679   cmp r2, #0
33680   beq .L11814
33681   ands  r0, r2, #255
33682   beq .L11816
33683   ldr r3, [r1, #16]
33684   tst r3, #256
33685   movne r3, r3, lsr #16
33686   ldrne r8, [sp, #20]
33687   ldreq r9, [sp, #20]
33688   movne r3, r3, asl #16
33689   orrne r3, r8, r3
33690   orreq r3, r9, r3, asl #16
33691   orrne r3, r0, r3
33692   orreq r3, r0, r3
33693   strne r3, [r1, #16]
33694   streq r3, [r1, #16]
33695 .L11816:
33696   mov r3, r2, lsr #8
33697   ands  r0, r3, #255
33698   beq .L11820
33699   ldr r3, [r1, #20]
33700   tst r3, #256
33701   movne r3, r3, lsr #16
33702   ldrne sl, [sp, #20]
33703   ldreq fp, [sp, #20]
33704   movne r3, r3, asl #16
33705   orrne r3, sl, r3
33706   orreq r3, fp, r3, asl #16
33707   orrne r3, r0, r3
33708   orreq r3, r0, r3
33709   strne r3, [r1, #20]
33710   streq r3, [r1, #20]
33711 .L11820:
33712   mov r3, r2, lsr #16
33713   ands  r0, r3, #255
33714   beq .L11824
33715   ldr r3, [r1, #24]
33716   tst r3, #256
33717   movne r3, r3, lsr #16
33718   ldrne r8, [sp, #20]
33719   ldreq r9, [sp, #20]
33720   movne r3, r3, asl #16
33721   orrne r3, r8, r3
33722   orreq r3, r9, r3, asl #16
33723   orrne r3, r0, r3
33724   orreq r3, r0, r3
33725   strne r3, [r1, #24]
33726   streq r3, [r1, #24]
33727 .L11824:
33728   movs  r2, r2, lsr #24
33729   beq .L11814
33730   ldr r3, [r1, #28]
33731   tst r3, #256
33732   movne r3, r3, lsr #16
33733   ldrne sl, [sp, #20]
33734   ldreq fp, [sp, #20]
33735   movne r3, r3, asl #16
33736   orrne r3, sl, r3
33737   orreq r3, fp, r3, asl #16
33738   orrne r3, r2, r3
33739   orreq r3, r2, r3
33740   strne r3, [r1, #28]
33741   streq r3, [r1, #28]
33742 .L11814:
33743   add lr, lr, #1
33744   cmp lr, r5
33745   add ip, ip, #64
33746   add r1, r1, #32
33747   bne .L11796
33748   add r7, r7, r5, asl #6
33749   add r4, r4, r5, asl #5
33750 .L11794:
33751   ands  r5, r6, #7
33752   beq .L11219
33753   cmp r5, #3
33754   ldrls ip, [r7, #0]
33755   bls .L11853
33756   ldr r2, [r7, #0]
33757   cmp r2, #0
33758   beq .L11835
33759   ands  r1, r2, #255
33760   beq .L11837
33761   ldr r3, [r4, #0]
33762   tst r3, #256
33763   movne r3, r3, lsr #16
33764   ldrne ip, [sp, #20]
33765   ldreq lr, [sp, #20]
33766   movne r3, r3, asl #16
33767   orrne r3, ip, r3
33768   orreq r3, lr, r3, asl #16
33769   orrne r3, r1, r3
33770   orreq r3, r1, r3
33771   strne r3, [r4, #0]
33772   streq r3, [r4, #0]
33773 .L11837:
33774   mov r3, r2, lsr #8
33775   ands  r1, r3, #255
33776   beq .L11841
33777   ldr r3, [r4, #4]
33778   tst r3, #256
33779   movne r3, r3, lsr #16
33780   ldrne r0, [sp, #20]
33781   ldreq r6, [sp, #20]
33782   movne r3, r3, asl #16
33783   orrne r3, r0, r3
33784   orreq r3, r6, r3, asl #16
33785   orrne r3, r1, r3
33786   orreq r3, r1, r3
33787   strne r3, [r4, #4]
33788   streq r3, [r4, #4]
33789 .L11841:
33790   mov r3, r2, lsr #16
33791   ands  r1, r3, #255
33792   beq .L11845
33793   ldr r3, [r4, #8]
33794   tst r3, #256
33795   movne r3, r3, lsr #16
33796   ldrne r8, [sp, #20]
33797   ldreq r9, [sp, #20]
33798   movne r3, r3, asl #16
33799   orrne r3, r8, r3
33800   orreq r3, r9, r3, asl #16
33801   orrne r3, r1, r3
33802   orreq r3, r1, r3
33803   strne r3, [r4, #8]
33804   streq r3, [r4, #8]
33805 .L11845:
33806   movs  r1, r2, lsr #24
33807   beq .L11835
33808   ldr r2, [r4, #12]
33809   tst r2, #256
33810   ldrne sl, [sp, #20]
33811   ldreq fp, [sp, #20]
33812   movne r3, r2, lsr #16
33813   movne r3, r3, asl #16
33814   orreq r3, fp, r1
33815   orrne r2, sl, r1
33816   orrne r3, r3, r2
33817   orreq r3, r3, r2, asl #16
33818   strne r3, [r4, #12]
33819   streq r3, [r4, #12]
33820 .L11835:
33821   subs  r5, r5, #4
33822   ldr ip, [r7, #4]
33823   addne r4, r4, #16
33824   beq .L11219
33825 .L11853:
33826   mov lr, #0
33827 .L11854:
33828   ands  r3, ip, #255
33829   beq .L11855
33830   ldr r2, [r4, #0]
33831   ldr r0, [sp, #20]
33832   tst r2, #256
33833   orr r1, r0, r3
33834   orr r0, r0, r3
33835   mov r3, r2, lsr #16
33836   mov r3, r3, asl #16
33837   orr r3, r3, r1
33838   orr r1, r0, r2, asl #16
33839   strne r3, [r4, #0]
33840   streq r1, [r4, #0]
33841 .L11855:
33842   add lr, lr, #1
33843   cmp r5, lr
33844   mov ip, ip, lsr #8
33845   add r4, r4, #4
33846   bhi .L11854
33847   b .L11219
33848 .L12435:
33849   .align  2
33850 .L12434:
33851   .word io_registers
33852   .word obj_priority_count
33853   .word obj_priority_list
33854   .word obj_width_table
33855   .word obj_height_table
33856   .word oam_ram
33857   .word vram+65536
33858   .word vram+65472
33859   .word vram+65600
33860 .L11299:
33861   cmp r7, #0
33862   add r2, r7, #7
33863   movge r2, r7
33864   subs  r3, r7, #8
33865   submi r3, r7, #1
33866   mov r5, r2, asr #3
33867   mov r3, r3, asr #3
33868   mov r1, ip, lsr #3
33869   mla r0, r5, r1, r3
33870   ldr sl, [sp, #28]
33871   and r3, ip, #7
33872   mov r2, sl, asl #22
33873   mov r2, r2, lsr #22
33874   add r2, r2, r0, asl #1
33875   add r3, r3, r2, asl #2
33876   ldr fp, [sp, #8]
33877   mov r0, r3, asl #3
33878   ldr r3, .L12434+24
33879   cmp r6, fp
33880   add ip, r0, r3
33881   bge .L12045
33882   rsb r0, r6, fp
33883   rsb r8, r0, r7
33884   cmp r8, #0
33885   ble .L11219
33886   ldr lr, [sp, #4]
33887   add r3, r6, r7
33888   cmp lr, r3
33889   bhi .L12048
33890   mov r3, r0, lsr #3
33891   ands  lr, r0, #7
33892   sub r8, ip, r3, asl #6
33893   bne .L12050
33894   ldr r7, [sp, #92]
33895   ldr r4, [sp, #68]
33896 .L12052:
33897   movs  r6, r7, lsr #3
33898   beq .L12130
33899   mov r0, r4
33900   mov lr, r8
33901   mov r5, #0
33902 .L12132:
33903   ldr r2, [lr, #4]
33904   cmp r2, #0
33905   beq .L12133
33906   ands  r1, r2, #255
33907   beq .L12135
33908   ldr r3, [r0, #12]
33909   tst r3, #256
33910   movne r3, r3, lsr #16
33911   ldrne r9, [sp, #20]
33912   ldreq sl, [sp, #20]
33913   movne r3, r3, asl #16
33914   orrne r3, r9, r3
33915   orreq r3, sl, r3, asl #16
33916   orrne r3, r1, r3
33917   orreq r3, r1, r3
33918   strne r3, [r0, #12]
33919   streq r3, [r0, #12]
33920 .L12135:
33921   mov r3, r2, lsr #8
33922   ands  r1, r3, #255
33923   beq .L12139
33924   ldr r3, [r0, #8]
33925   tst r3, #256
33926   movne r3, r3, lsr #16
33927   ldrne fp, [sp, #20]
33928   ldreq ip, [sp, #20]
33929   movne r3, r3, asl #16
33930   orrne r3, fp, r3
33931   orreq r3, ip, r3, asl #16
33932   orrne r3, r1, r3
33933   orreq r3, r1, r3
33934   strne r3, [r0, #8]
33935   streq r3, [r0, #8]
33936 .L12139:
33937   mov r3, r2, lsr #16
33938   ands  r1, r3, #255
33939   beq .L12143
33940   ldr r3, [r0, #4]
33941   tst r3, #256
33942   movne r3, r3, lsr #16
33943   ldrne r9, [sp, #20]
33944   ldreq sl, [sp, #20]
33945   movne r3, r3, asl #16
33946   orrne r3, r9, r3
33947   orreq r3, sl, r3, asl #16
33948   orrne r3, r1, r3
33949   orreq r3, r1, r3
33950   strne r3, [r0, #4]
33951   streq r3, [r0, #4]
33952 .L12143:
33953   movs  r2, r2, lsr #24
33954   beq .L12133
33955   ldr r3, [r0, #0]
33956   tst r3, #256
33957   movne r3, r3, lsr #16
33958   ldrne fp, [sp, #20]
33959   ldreq ip, [sp, #20]
33960   movne r3, r3, asl #16
33961   orrne r3, fp, r3
33962   orreq r3, ip, r3, asl #16
33963   orrne r3, r2, r3
33964   orreq r3, r2, r3
33965   strne r3, [r0, #0]
33966   streq r3, [r0, #0]
33967 .L12133:
33968   ldr r1, [lr, #0]
33969   cmp r1, #0
33970   beq .L12150
33971   ands  ip, r1, #255
33972   beq .L12152
33973   ldr r2, [r0, #28]
33974   tst r2, #256
33975   ldrne r9, [sp, #20]
33976   ldreq sl, [sp, #20]
33977   movne r3, r2, lsr #16
33978   movne r3, r3, asl #16
33979   orreq r3, sl, ip
33980   orrne r2, r9, ip
33981   orrne r3, r3, r2
33982   orreq r3, r3, r2, asl #16
33983   strne r3, [r0, #28]
33984   streq r3, [r0, #28]
33985 .L12152:
33986   mov r3, r1, lsr #8
33987   ands  r2, r3, #255
33988   beq .L12156
33989   ldr r3, [r0, #24]
33990   tst r3, #256
33991   movne r3, r3, lsr #16
33992   ldrne fp, [sp, #20]
33993   ldreq ip, [sp, #20]
33994   movne r3, r3, asl #16
33995   orrne r3, fp, r3
33996   orreq r3, ip, r3, asl #16
33997   orrne r3, r2, r3
33998   orreq r3, r2, r3
33999   strne r3, [r0, #24]
34000   streq r3, [r0, #24]
34001 .L12156:
34002   mov r3, r1, lsr #16
34003   ands  r2, r3, #255
34004   beq .L12160
34005   ldr r3, [r0, #20]
34006   tst r3, #256
34007   movne r3, r3, lsr #16
34008   ldrne r9, [sp, #20]
34009   ldreq sl, [sp, #20]
34010   movne r3, r3, asl #16
34011   orrne r3, r9, r3
34012   orreq r3, sl, r3, asl #16
34013   orrne r3, r2, r3
34014   orreq r3, r2, r3
34015   strne r3, [r0, #20]
34016   streq r3, [r0, #20]
34017 .L12160:
34018   movs  r1, r1, lsr #24
34019   beq .L12150
34020   ldr r2, [r0, #16]
34021   tst r2, #256
34022   ldrne fp, [sp, #20]
34023   ldreq ip, [sp, #20]
34024   movne r3, r2, lsr #16
34025   movne r3, r3, asl #16
34026   orreq r3, ip, r1
34027   orrne r2, fp, r1
34028   orrne r3, r3, r2
34029   orreq r3, r3, r2, asl #16
34030   strne r3, [r0, #16]
34031   streq r3, [r0, #16]
34032 .L12150:
34033   add r5, r5, #1
34034   cmp r5, r6
34035   sub lr, lr, #64
34036   add r0, r0, #32
34037   bne .L12132
34038   rsb r3, r6, r6, asl #26
34039   add r8, r8, r3, asl #6
34040   add r4, r4, r6, asl #5
34041 .L12130:
34042   ands  r5, r7, #7
34043   beq .L11219
34044   cmp r5, #3
34045   ldrls ip, [r8, #4]
34046   bls .L12189
34047   ldr r2, [r8, #4]
34048   cmp r2, #0
34049   beq .L12171
34050   ands  r1, r2, #255
34051   beq .L12173
34052   ldr r3, [r4, #12]
34053   tst r3, #256
34054   movne r3, r3, lsr #16
34055   ldrne lr, [sp, #20]
34056   ldreq r0, [sp, #20]
34057   movne r3, r3, asl #16
34058   orrne r3, lr, r3
34059   orreq r3, r0, r3, asl #16
34060   orrne r3, r1, r3
34061   orreq r3, r1, r3
34062   strne r3, [r4, #12]
34063   streq r3, [r4, #12]
34064 .L12173:
34065   mov r3, r2, lsr #8
34066   ands  r1, r3, #255
34067   beq .L12177
34068   ldr r3, [r4, #8]
34069   tst r3, #256
34070   movne r3, r3, lsr #16
34071   ldrne r6, [sp, #20]
34072   ldreq r7, [sp, #20]
34073   movne r3, r3, asl #16
34074   orrne r3, r6, r3
34075   orreq r3, r7, r3, asl #16
34076   orrne r3, r1, r3
34077   orreq r3, r1, r3
34078   strne r3, [r4, #8]
34079   streq r3, [r4, #8]
34080 .L12177:
34081   mov r3, r2, lsr #16
34082   ands  r1, r3, #255
34083   beq .L12181
34084   ldr r3, [r4, #4]
34085   tst r3, #256
34086   movne r3, r3, lsr #16
34087   ldrne r9, [sp, #20]
34088   ldreq sl, [sp, #20]
34089   movne r3, r3, asl #16
34090   orrne r3, r9, r3
34091   orreq r3, sl, r3, asl #16
34092   orrne r3, r1, r3
34093   orreq r3, r1, r3
34094   strne r3, [r4, #4]
34095   streq r3, [r4, #4]
34096 .L12181:
34097   movs  r2, r2, lsr #24
34098   beq .L12171
34099   ldr r3, [r4, #0]
34100   tst r3, #256
34101   movne r3, r3, lsr #16
34102   ldrne fp, [sp, #20]
34103   ldreq ip, [sp, #20]
34104   movne r3, r3, asl #16
34105   orrne r3, fp, r3
34106   orreq r3, ip, r3, asl #16
34107   orrne r3, r2, r3
34108   orreq r3, r2, r3
34109   strne r3, [r4, #0]
34110   streq r3, [r4, #0]
34111 .L12171:
34112   subs  r5, r5, #4
34113   ldr ip, [r8, #0]
34114   addne r4, r4, #16
34115   beq .L11219
34116 .L12189:
34117   mov lr, #0
34118 .L12190:
34119   movs  r3, ip, lsr #24
34120   beq .L12191
34121   ldr r2, [r4, #0]
34122   ldr r0, [sp, #20]
34123   tst r2, #256
34124   orr r1, r0, r3
34125   orr r0, r0, r3
34126   mov r3, r2, lsr #16
34127   mov r3, r3, asl #16
34128   orr r3, r3, r1
34129   orr r1, r0, r2, asl #16
34130   strne r3, [r4, #0]
34131   streq r1, [r4, #0]
34132 .L12191:
34133   add lr, lr, #1
34134   cmp r5, lr
34135   mov ip, ip, asl #8
34136   add r4, r4, #4
34137   bhi .L12190
34138   b .L11219
34139 .L11212:
34140   ldr ip, .L12434+20
34141   mov r3, r4, lsr #4
34142   add r2, r7, r7, lsr #31
34143   and r3, r3, #992
34144   tst lr, #512
34145   add r3, r3, ip
34146   mov lr, r2, asr #1
34147   add r1, r9, r9, lsr #31
34148   ldr r2, [sp, #8]
34149   mov r4, r1, asr #1
34150   ldrh  sl, [r3, #30]
34151   ldrh  r8, [r3, #6]
34152   ldrh  r1, [r3, #14]
34153   ldrh  r3, [r3, #22]
34154   moveq fp, r7
34155   moveq r5, lr
34156   moveq ip, r4
34157   movne fp, r7, asl #1
34158   movne r5, lr, asl #1
34159   movne ip, r4, asl #1
34160   cmp r6, r2
34161   str r3, [sp, #16]
34162   bge .L11254
34163   rsb r2, r6, r2
34164   rsb fp, r2, fp
34165   cmp fp, #0
34166   ble .L11219
34167   ldr r6, [sp, #8]
34168   rsb r5, r2, r5
34169 .L11254:
34170   ldr r2, [sp, #4]
34171   add r3, r6, fp
34172   cmp r3, r2
34173   blt .L11257
34174   rsb fp, r6, r2
34175   cmp fp, #0
34176   ble .L11219
34177 .L11257:
34178   mov r3, r8, asl #16
34179   mov r2, r1, asl #16
34180   ldr r8, [sp, #16]
34181   mov r1, sl, asl #16
34182   ldr sl, [sp, #28]
34183   mov lr, lr, asl #8
34184   add ip, r0, ip
34185   cmp r8, #0
34186   mov r0, sl, lsr #8
34187   mov r8, r1, asr #16
34188   str lr, [sp, #88]
34189   ldr r1, [sp, #32]
34190   ldr lr, [sp, #0]
34191   mov r3, r3, asr #16
34192   mov r2, r2, asr #16
34193   and r0, r0, #240
34194   add sl, lr, r6, asl #2
34195   str r3, [sp, #52]
34196   str r2, [sp, #56]
34197   mov r4, r4, asl #8
34198   rsb lr, ip, r1
34199   str r0, [sp, #84]
34200   bne .L11259
34201   mla r3, lr, r8, r4
34202   mov r0, r3, asr #8
34203   cmp r0, r9
34204   bcs .L11219
34205   ldr r4, [sp, #28]
34206   cmp r7, #0
34207   add r3, r7, #7
34208   mov r2, r4, asl #22
34209   movge r3, r7
34210   mov r3, r3, asr #3
34211   mov r1, r0, lsr #3
34212   mov r2, r2, lsr #22
34213   mla ip, r3, r1, r2
34214   and r0, r0, #7
34215   ldr r3, .L12434+24
34216   add r0, r0, ip, asl #3
34217   cmp fp, #0
34218   add r6, r3, r0, asl #2
34219   ble .L11219
34220   ldr r3, [sp, #56]
34221   ldr r2, [sp, #52]
34222   mul r3, lr, r3
34223   mul r2, r5, r2
34224   ldr r5, [sp, #88]
34225   rsb r3, r2, r3
34226   add ip, r5, r3
34227   mov r1, ip, asr #8
34228   cmp r1, r7
34229   ldrcc r4, [sp, #16]
34230   ldrcs r4, [sp, #16]
34231   bcs .L11266
34232   b .L12397
34233 .L11267:
34234   cmp r7, r2
34235   bhi .L11268
34236 .L11266:
34237   ldr r8, [sp, #52]
34238   add r4, r4, #1
34239   add ip, ip, r8
34240   cmp fp, r4
34241   mov r2, ip, asr #8
34242   add sl, sl, #4
34243   bne .L11267
34244   b .L11219
34245 .L12381:
34246   add sp, sp, #96
34247   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
34248 .L11223:
34249   ldr r0, [sp, #28]
34250   cmp r7, #0
34251   add r1, r7, #7
34252   mov r2, r0, asl #22
34253   movge r1, r7
34254   ldr r3, .L12434+24
34255   mov r2, r2, lsr #22
34256   mov r1, r1, asr #3
34257   add r2, r3, r2, asl #5
34258   mov r1, r1, asl #6
34259   cmp r8, #0
34260   str r2, [sp, #76]
34261   str r1, [sp, #48]
34262   ble .L11219
34263   ldr r1, [sp, #12]
34264   mul r2, lr, ip
34265   mov r3, r1, asl #16
34266   mov r6, r3, asr #16
34267   ldr r3, [sp, #44]
34268   mul r1, r6, fp
34269   mul r0, sl, fp
34270   mul r3, lr, r3
34271   ldr fp, [sp, #80]
34272   rsb r3, r0, r3
34273   rsb r2, r1, r2
34274   add ip, fp, r3
34275   add lr, r4, r2
34276   mov r1, ip, asr #8
34277   mov r0, lr, asr #8
34278   cmp r1, r7
34279   cmpcc r0, r9
34280   movcs r3, #0
34281   movcc r3, #1
34282   movcs r4, r3
34283   bcs .L11241
34284   b .L12432
34285 .L11242:
34286   cmp r7, r1
34287   cmphi r9, r0
34288   bhi .L11244
34289 .L11241:
34290   add r4, r4, #1
34291   add ip, ip, sl
34292   add lr, lr, r6
34293   cmp r8, r4
34294   mov r1, ip, asr #8
34295   mov r0, lr, asr #8
34296   add r5, r5, #4
34297   bne .L11242
34298   b .L11219
34299 .L12410:
34300   and r3, r0, #7
34301   mov r2, r1, asr #3
34302   mov r3, r3, asl #3
34303   add r3, r3, r2, asl #6
34304   ldr r2, [sp, #76]
34305   and r1, r1, #7
34306   add r3, r3, r2
34307   mov r2, r0, asr #3
34308   ldr r0, [sp, #48]
34309   mla r0, r2, r0, r3
34310   ldrb  r0, [r0, r1]  @ zero_extendqisi2
34311   cmp r0, #0
34312   beq .L11247
34313   ldr r3, [r5, #0]
34314   ldr fp, [sp, #20]
34315   mov r2, r3, lsr #16
34316   mov r2, r2, asl #16
34317   orr r2, fp, r2
34318   orr r1, fp, r3, asl #16
34319   tst r3, #256
34320   orr r2, r0, r2
34321   orr r1, r0, r1
34322   strne r2, [r5, #0]
34323   streq r1, [r5, #0]
34324 .L11247:
34325   add r4, r4, #1
34326   add ip, ip, sl
34327   add lr, lr, r6
34328   cmp r8, r4
34329   mov r1, ip, asr #8
34330   mov r0, lr, asr #8
34331   add r5, r5, #4
34332   ble .L11219
34333 .L11244:
34334   cmp r9, r0
34335   cmphi r7, r1
34336   bhi .L12410
34337   b .L11219
34338 .L11259:
34339   ldr r3, [sp, #28]
34340   cmp r7, #0
34341   add r1, r7, #7
34342   mov r2, r3, asl #22
34343   movge r1, r7
34344   ldr r3, .L12434+24
34345   mov r2, r2, lsr #22
34346   mov r1, r1, asr #3
34347   add r2, r3, r2, asl #5
34348   mov r1, r1, asl #5
34349   cmp fp, #0
34350   str r2, [sp, #72]
34351   str r1, [sp, #64]
34352   ble .L11219
34353   ldr r6, [sp, #16]
34354   ldr r0, [sp, #52]
34355   mov r3, r6, asl #16
34356   mov r3, r3, asr #16
34357   str r3, [sp, #60]
34358   ldr r1, [sp, #60]
34359   ldr r3, [sp, #56]
34360   mul r2, lr, r8
34361   mul r1, r5, r1
34362   mul r0, r5, r0
34363   mul r3, lr, r3
34364   ldr r8, [sp, #88]
34365   rsb r2, r1, r2
34366   rsb r3, r0, r3
34367   add r6, r8, r3
34368   add r5, r4, r2
34369   mov r3, r5, asr #8
34370   mov r4, r6, asr #8
34371   cmp r4, r7
34372   cmpcc r3, r9
34373   movcs r2, #0
34374   movcc r2, #1
34375   movcs r8, r2
34376   bcs .L11281
34377   b .L12433
34378 .L11282:
34379   cmp r7, r4
34380   cmphi r9, r3
34381   bhi .L11284
34382 .L11281:
34383   ldr ip, [sp, #52]
34384   ldr lr, [sp, #60]
34385   add r8, r8, #1
34386   add r6, r6, ip
34387   add r5, r5, lr
34388   cmp fp, r8
34389   mov r4, r6, asr #8
34390   mov r3, r5, asr #8
34391   add sl, sl, #4
34392   bne .L11282
34393   b .L11219
34394 .L12412:
34395   ldr r2, [sp, #64]
34396   and r0, r3, #7
34397   and ip, r3, #7
34398   mov r3, r3, asr #3
34399   mul r2, r3, r2
34400   ldr r3, [sp, #72]
34401   ldr r1, [sp, #72]
34402   add ip, r3, ip, asl #2
34403   mov r3, r4, asr #3
34404   add r0, r1, r0, asl #2
34405   mov lr, r4, asr #1
34406   mov r1, r4, asr #1
34407   add r2, r2, r3, asl #5
34408   tst r4, #1
34409   add r3, r0, r2
34410   and lr, lr, #3
34411   add r0, ip, r2
34412   and r1, r1, #3
34413   ldreqb  r3, [r0, r1]  @ zero_extendqisi2
34414   ldrneb  r3, [r3, lr]  @ zero_extendqisi2
34415   andeq r0, r3, #15
34416   movne r0, r3, lsr #4
34417   ldr r4, [sp, #84]
34418   cmp r0, #0
34419   orr r0, r0, r4
34420   beq .L11290
34421   ldr r2, [sl, #0]
34422   ldr ip, [sp, #20]
34423   mov r3, r2, lsr #16
34424   orr r1, ip, r0
34425   mov r3, r3, asl #16
34426   orr r0, ip, r0
34427   tst r2, #256
34428   orr r3, r3, r1
34429   orr r0, r0, r2, asl #16
34430   strne r3, [sl, #0]
34431   streq r0, [sl, #0]
34432 .L11290:
34433   ldr lr, [sp, #52]
34434   ldr r0, [sp, #60]
34435   add r8, r8, #1
34436   add r6, r6, lr
34437   add r5, r5, r0
34438   cmp fp, r8
34439   add sl, sl, #4
34440   mov r4, r6, asr #8
34441   mov r3, r5, asr #8
34442   ble .L11219
34443 .L11284:
34444   cmp r9, r3
34445   cmphi r7, r4
34446   bhi .L12412
34447   b .L11219
34448 .L11269:
34449   cmp r7, r1
34450   bls .L11219
34451 .L12397:
34452   mov r3, r1, asr #1
34453   and lr, r3, #3
34454   mov r3, r1, asr #3
34455   mov r3, r3, asl #5
34456   mov r2, r1, asr #1
34457   tst r1, #1
34458   and r0, r2, #3
34459   add r1, r3, r6
34460   add r2, r3, r6
34461   ldreqb  r3, [r2, r0]  @ zero_extendqisi2
34462   ldrneb  r3, [r1, lr]  @ zero_extendqisi2
34463   andeq r2, r3, #15
34464   movne r2, r3, lsr #4
34465   ldr r9, [sp, #84]
34466   cmp r2, #0
34467   orr r3, r2, r9
34468   beq .L11274
34469   ldr r2, [sl, #0]
34470   ldr lr, [sp, #20]
34471   tst r2, #256
34472   orr r1, lr, r3
34473   orr r0, lr, r3
34474   mov r3, r2, lsr #16
34475   mov r3, r3, asl #16
34476   orr r1, r3, r1
34477   orr r3, r0, r2, asl #16
34478   strne r1, [sl, #0]
34479   streq r3, [sl, #0]
34480 .L11274:
34481   ldr r0, [sp, #52]
34482   add r4, r4, #1
34483   add ip, ip, r0
34484   cmp fp, r4
34485   add sl, sl, #4
34486   mov r1, ip, asr #8
34487   bgt .L11269
34488   b .L11219
34489 .L11232:
34490   cmp r7, r2
34491   bls .L11219
34492 .L12395:
34493   mov r3, r2, asr #3
34494   add r3, r6, r3, asl #6
34495   and r2, r2, #7
34496   ldrb  ip, [r3, r2]  @ zero_extendqisi2
34497   cmp ip, #0
34498   beq .L11234
34499   ldr r3, [r5, #0]
34500   ldr fp, [sp, #20]
34501   mov r2, r3, lsr #16
34502   mov r2, r2, asl #16
34503   orr r2, fp, r2
34504   orr r1, fp, r3, asl #16
34505   orr r4, ip, r2
34506   tst r3, #256
34507   orr r2, ip, r1
34508   strne r4, [r5, #0]
34509   streq r2, [r5, #0]
34510 .L11234:
34511   add lr, lr, #1
34512   add r0, r0, sl
34513   cmp r8, lr
34514   add r5, r5, #4
34515   mov r2, r0, asr #8
34516   bgt .L11232
34517   b .L11219
34518 .L12045:
34519   add r3, r6, r7
34520   ldr r7, [sp, #4]
34521   cmp r3, r7
34522   bcs .L12413
34523   cmp r5, #0
34524   beq .L11219
34525   ldr r2, [sp, #0]
34526   ldr r3, .L12434+28
34527   add r1, r2, r6, asl #2
34528   add r0, r0, r3
34529   mov r6, #0
34530   b .L12345
34531 .L12414:
34532   sub ip, ip, #64
34533   add r1, r1, #32
34534 .L12345:
34535   ldr r2, [r0, #68]
34536   cmp r2, #0
34537   beq .L12346
34538   ands  lr, r2, #255
34539   beq .L12348
34540   ldr r3, [r1, #12]
34541   tst r3, #256
34542   movne r3, r3, lsr #16
34543   ldrne r4, [sp, #20]
34544   ldreq r7, [sp, #20]
34545   movne r3, r3, asl #16
34546   orrne r3, r4, r3
34547   orreq r3, r7, r3, asl #16
34548   orrne r3, lr, r3
34549   orreq r3, lr, r3
34550   strne r3, [r1, #12]
34551   streq r3, [r1, #12]
34552 .L12348:
34553   mov r3, r2, lsr #8
34554   ands  lr, r3, #255
34555   beq .L12352
34556   ldr r3, [r1, #8]
34557   tst r3, #256
34558   movne r3, r3, lsr #16
34559   ldrne r8, [sp, #20]
34560   ldreq r9, [sp, #20]
34561   movne r3, r3, asl #16
34562   orrne r3, r8, r3
34563   orreq r3, r9, r3, asl #16
34564   orrne r3, lr, r3
34565   orreq r3, lr, r3
34566   strne r3, [r1, #8]
34567   streq r3, [r1, #8]
34568 .L12352:
34569   mov r3, r2, lsr #16
34570   ands  lr, r3, #255
34571   beq .L12356
34572   ldr r3, [r1, #4]
34573   tst r3, #256
34574   movne r3, r3, lsr #16
34575   ldrne sl, [sp, #20]
34576   ldreq fp, [sp, #20]
34577   movne r3, r3, asl #16
34578   orrne r3, sl, r3
34579   orreq r3, fp, r3, asl #16
34580   orrne r3, lr, r3
34581   orreq r3, lr, r3
34582   strne r3, [r1, #4]
34583   streq r3, [r1, #4]
34584 .L12356:
34585   movs  r2, r2, lsr #24
34586   beq .L12346
34587   ldr r3, [r1, #0]
34588   tst r3, #256
34589   movne r3, r3, lsr #16
34590   ldrne lr, [sp, #20]
34591   ldreq r4, [sp, #20]
34592   movne r3, r3, asl #16
34593   orrne r3, lr, r3
34594   orreq r3, r4, r3, asl #16
34595   orrne r3, r2, r3
34596   orreq r3, r2, r3
34597   strne r3, [r1, #0]
34598   streq r3, [r1, #0]
34599 .L12346:
34600   ldr lr, [ip, #0]
34601   cmp lr, #0
34602   beq .L12363
34603   ands  r4, lr, #255
34604   beq .L12365
34605   ldr r2, [r1, #28]
34606   tst r2, #256
34607   ldrne r7, [sp, #20]
34608   ldreq r8, [sp, #20]
34609   movne r3, r2, lsr #16
34610   movne r3, r3, asl #16
34611   orreq r3, r8, r4
34612   orrne r2, r7, r4
34613   orrne r3, r3, r2
34614   orreq r3, r3, r2, asl #16
34615   strne r3, [r1, #28]
34616   streq r3, [r1, #28]
34617 .L12365:
34618   mov r3, lr, lsr #8
34619   ands  r2, r3, #255
34620   beq .L12369
34621   ldr r3, [r1, #24]
34622   tst r3, #256
34623   movne r3, r3, lsr #16
34624   ldrne r9, [sp, #20]
34625   ldreq sl, [sp, #20]
34626   movne r3, r3, asl #16
34627   orrne r3, r9, r3
34628   orreq r3, sl, r3, asl #16
34629   orrne r3, r2, r3
34630   orreq r3, r2, r3
34631   strne r3, [r1, #24]
34632   streq r3, [r1, #24]
34633 .L12369:
34634   mov r3, lr, lsr #16
34635   ands  r2, r3, #255
34636   beq .L12373
34637   ldr r3, [r1, #20]
34638   tst r3, #256
34639   movne r3, r3, lsr #16
34640   ldrne fp, [sp, #20]
34641   ldreq r4, [sp, #20]
34642   movne r3, r3, asl #16
34643   orrne r3, fp, r3
34644   orreq r3, r4, r3, asl #16
34645   orrne r3, r2, r3
34646   orreq r3, r2, r3
34647   strne r3, [r1, #20]
34648   streq r3, [r1, #20]
34649 .L12373:
34650   movs  lr, lr, lsr #24
34651   beq .L12363
34652   ldr r2, [r1, #16]
34653   tst r2, #256
34654   ldrne r7, [sp, #20]
34655   ldreq r8, [sp, #20]
34656   movne r3, r2, lsr #16
34657   movne r3, r3, asl #16
34658   orreq r3, r8, lr
34659   orrne r2, r7, lr
34660   orrne r3, r3, r2
34661   orreq r3, r3, r2, asl #16
34662   strne r3, [r1, #16]
34663   streq r3, [r1, #16]
34664 .L12363:
34665   add r6, r6, #1
34666   cmp r5, r6
34667   sub r0, r0, #64
34668   bne .L12414
34669   b .L11219
34670 .L11709:
34671   add r3, r6, r7
34672   ldr r7, [sp, #4]
34673   cmp r7, r3
34674   bls .L12415
34675   cmp r4, #0
34676   beq .L11219
34677   ldr fp, [sp, #0]
34678   ldr r3, .L12434+32
34679   add r1, fp, r6, asl #2
34680   add r0, r0, r3
34681   mov r5, #0
34682   b .L12009
34683 .L12416:
34684   add ip, ip, #64
34685   add r1, r1, #32
34686 .L12009:
34687   ldr r2, [ip, #0]
34688   cmp r2, #0
34689   beq .L12010
34690   ands  lr, r2, #255
34691   beq .L12012
34692   ldr r3, [r1, #0]
34693   tst r3, #256
34694   movne r3, r3, lsr #16
34695   ldrne r6, [sp, #20]
34696   ldreq r7, [sp, #20]
34697   movne r3, r3, asl #16
34698   orrne r3, r6, r3
34699   orreq r3, r7, r3, asl #16
34700   orrne r3, lr, r3
34701   orreq r3, lr, r3
34702   strne r3, [r1, #0]
34703   streq r3, [r1, #0]
34704 .L12012:
34705   mov r3, r2, lsr #8
34706   ands  lr, r3, #255
34707   beq .L12016
34708   ldr r3, [r1, #4]
34709   tst r3, #256
34710   movne r3, r3, lsr #16
34711   ldrne r8, [sp, #20]
34712   ldreq r9, [sp, #20]
34713   movne r3, r3, asl #16
34714   orrne r3, r8, r3
34715   orreq r3, r9, r3, asl #16
34716   orrne r3, lr, r3
34717   orreq r3, lr, r3
34718   strne r3, [r1, #4]
34719   streq r3, [r1, #4]
34720 .L12016:
34721   mov r3, r2, lsr #16
34722   ands  lr, r3, #255
34723   beq .L12020
34724   ldr r3, [r1, #8]
34725   tst r3, #256
34726   movne r3, r3, lsr #16
34727   ldrne sl, [sp, #20]
34728   ldreq fp, [sp, #20]
34729   movne r3, r3, asl #16
34730   orrne r3, sl, r3
34731   orreq r3, fp, r3, asl #16
34732   orrne r3, lr, r3
34733   orreq r3, lr, r3
34734   strne r3, [r1, #8]
34735   streq r3, [r1, #8]
34736 .L12020:
34737   movs  lr, r2, lsr #24
34738   beq .L12010
34739   ldr r2, [r1, #12]
34740   tst r2, #256
34741   ldrne r6, [sp, #20]
34742   ldreq r7, [sp, #20]
34743   movne r3, r2, lsr #16
34744   movne r3, r3, asl #16
34745   orreq r3, r7, lr
34746   orrne r2, r6, lr
34747   orrne r3, r3, r2
34748   orreq r3, r3, r2, asl #16
34749   strne r3, [r1, #12]
34750   streq r3, [r1, #12]
34751 .L12010:
34752   ldr r2, [r0, #-60]
34753   cmp r2, #0
34754   beq .L12027
34755   ands  lr, r2, #255
34756   beq .L12029
34757   ldr r3, [r1, #16]
34758   tst r3, #256
34759   movne r3, r3, lsr #16
34760   ldrne r8, [sp, #20]
34761   ldreq r9, [sp, #20]
34762   movne r3, r3, asl #16
34763   orrne r3, r8, r3
34764   orreq r3, r9, r3, asl #16
34765   orrne r3, lr, r3
34766   orreq r3, lr, r3
34767   strne r3, [r1, #16]
34768   streq r3, [r1, #16]
34769 .L12029:
34770   mov r3, r2, lsr #8
34771   ands  lr, r3, #255
34772   beq .L12033
34773   ldr r3, [r1, #20]
34774   tst r3, #256
34775   movne r3, r3, lsr #16
34776   ldrne sl, [sp, #20]
34777   ldreq fp, [sp, #20]
34778   movne r3, r3, asl #16
34779   orrne r3, sl, r3
34780   orreq r3, fp, r3, asl #16
34781   orrne r3, lr, r3
34782   orreq r3, lr, r3
34783   strne r3, [r1, #20]
34784   streq r3, [r1, #20]
34785 .L12033:
34786   mov r3, r2, lsr #16
34787   ands  lr, r3, #255
34788   beq .L12037
34789   ldr r3, [r1, #24]
34790   tst r3, #256
34791   movne r3, r3, lsr #16
34792   ldrne r6, [sp, #20]
34793   ldreq r7, [sp, #20]
34794   movne r3, r3, asl #16
34795   orrne r3, r6, r3
34796   orreq r3, r7, r3, asl #16
34797   orrne r3, lr, r3
34798   orreq r3, lr, r3
34799   strne r3, [r1, #24]
34800   streq r3, [r1, #24]
34801 .L12037:
34802   movs  r2, r2, lsr #24
34803   beq .L12027
34804   ldr r3, [r1, #28]
34805   tst r3, #256
34806   movne r3, r3, lsr #16
34807   ldrne r8, [sp, #20]
34808   ldreq r9, [sp, #20]
34809   movne r3, r3, asl #16
34810   orrne r3, r8, r3
34811   orreq r3, r9, r3, asl #16
34812   orrne r3, r2, r3
34813   orreq r3, r2, r3
34814   strne r3, [r1, #28]
34815   streq r3, [r1, #28]
34816 .L12027:
34817   add r5, r5, #1
34818   cmp r4, r5
34819   add r0, r0, #64
34820   bne .L12416
34821   b .L11219
34822 .L11505:
34823   ldr r1, [sp, #4]
34824   add r3, r6, r7
34825   cmp r1, r3
34826   bls .L12417
34827   cmp r5, #0
34828   beq .L11219
34829   ldr fp, [sp, #0]
34830   mov ip, #0
34831   add r1, fp, r6, asl #2
34832   b .L11674
34833 .L12418:
34834   sub r0, r0, #32
34835   add r1, r1, #32
34836 .L11674:
34837   ldr lr, [r0, #0]
34838   cmp lr, #0
34839   beq .L11675
34840   ands  r3, lr, #15
34841   beq .L11677
34842   ldr r2, [r1, #28]
34843   orr r4, r8, r3
34844   tst r2, #256
34845   ldrne r6, [sp, #20]
34846   ldreq r7, [sp, #20]
34847   movne r3, r2, lsr #16
34848   movne r3, r3, asl #16
34849   orreq r3, r7, r4
34850   orrne r2, r6, r4
34851   orrne r3, r3, r2
34852   orreq r3, r3, r2, asl #16
34853   strne r3, [r1, #28]
34854   streq r3, [r1, #28]
34855 .L11677:
34856   mov r3, lr, lsr #4
34857   ands  r3, r3, #15
34858   beq .L11681
34859   ldr r2, [r1, #24]
34860   orr r4, r8, r3
34861   tst r2, #256
34862   ldrne r9, [sp, #20]
34863   ldreq sl, [sp, #20]
34864   movne r3, r2, lsr #16
34865   movne r3, r3, asl #16
34866   orreq r3, sl, r4
34867   orrne r2, r9, r4
34868   orrne r3, r3, r2
34869   orreq r3, r3, r2, asl #16
34870   strne r3, [r1, #24]
34871   streq r3, [r1, #24]
34872 .L11681:
34873   mov r3, lr, lsr #8
34874   ands  r3, r3, #15
34875   beq .L11685
34876   ldr r2, [r1, #20]
34877   orr r4, r8, r3
34878   tst r2, #256
34879   ldrne fp, [sp, #20]
34880   ldreq r6, [sp, #20]
34881   movne r3, r2, lsr #16
34882   movne r3, r3, asl #16
34883   orreq r3, r6, r4
34884   orrne r2, fp, r4
34885   orrne r3, r3, r2
34886   orreq r3, r3, r2, asl #16
34887   strne r3, [r1, #20]
34888   streq r3, [r1, #20]
34889 .L11685:
34890   mov r3, lr, lsr #12
34891   ands  r3, r3, #15
34892   beq .L11689
34893   ldr r2, [r1, #16]
34894   orr r4, r8, r3
34895   tst r2, #256
34896   ldrne r7, [sp, #20]
34897   ldreq r9, [sp, #20]
34898   movne r3, r2, lsr #16
34899   movne r3, r3, asl #16
34900   orreq r3, r9, r4
34901   orrne r2, r7, r4
34902   orrne r3, r3, r2
34903   orreq r3, r3, r2, asl #16
34904   strne r3, [r1, #16]
34905   streq r3, [r1, #16]
34906 .L11689:
34907   mov r3, lr, lsr #16
34908   ands  r3, r3, #15
34909   beq .L11693
34910   ldr r2, [r1, #12]
34911   orr r4, r8, r3
34912   tst r2, #256
34913   ldrne sl, [sp, #20]
34914   ldreq fp, [sp, #20]
34915   movne r3, r2, lsr #16
34916   movne r3, r3, asl #16
34917   orreq r3, fp, r4
34918   orrne r2, sl, r4
34919   orrne r3, r3, r2
34920   orreq r3, r3, r2, asl #16
34921   strne r3, [r1, #12]
34922   streq r3, [r1, #12]
34923 .L11693:
34924   mov r3, lr, lsr #20
34925   ands  r3, r3, #15
34926   beq .L11697
34927   ldr r2, [r1, #8]
34928   orr r4, r8, r3
34929   tst r2, #256
34930   ldrne r6, [sp, #20]
34931   ldreq r7, [sp, #20]
34932   movne r3, r2, lsr #16
34933   movne r3, r3, asl #16
34934   orreq r3, r7, r4
34935   orrne r2, r6, r4
34936   orrne r3, r3, r2
34937   orreq r3, r3, r2, asl #16
34938   strne r3, [r1, #8]
34939   streq r3, [r1, #8]
34940 .L11697:
34941   mov r3, lr, lsr #24
34942   ands  r3, r3, #15
34943   beq .L11701
34944   ldr r2, [r1, #4]
34945   orr r4, r8, r3
34946   tst r2, #256
34947   ldrne r9, [sp, #20]
34948   ldreq sl, [sp, #20]
34949   movne r3, r2, lsr #16
34950   movne r3, r3, asl #16
34951   orreq r3, sl, r4
34952   orrne r2, r9, r4
34953   orrne r3, r3, r2
34954   orreq r3, r3, r2, asl #16
34955   strne r3, [r1, #4]
34956   streq r3, [r1, #4]
34957 .L11701:
34958   movs  r3, lr, lsr #28
34959   beq .L11675
34960   ldr r2, [r1, #0]
34961   orr lr, r8, r3
34962   tst r2, #256
34963   ldrne fp, [sp, #20]
34964   ldreq r4, [sp, #20]
34965   movne r3, r2, lsr #16
34966   movne r3, r3, asl #16
34967   orreq r3, r4, lr
34968   orrne r2, fp, lr
34969   orrne r3, r3, r2
34970   orreq r3, r3, r2, asl #16
34971   strne r3, [r1, #0]
34972   streq r3, [r1, #0]
34973 .L11675:
34974   add ip, ip, #1
34975   cmp r5, ip
34976   bne .L12418
34977   b .L11219
34978 .L11301:
34979   ldr lr, [sp, #4]
34980   add r3, r6, r7
34981   cmp lr, r3
34982   bls .L12419
34983   cmp r5, #0
34984   beq .L11219
34985   ldr fp, [sp, #0]
34986   mov ip, #0
34987   add r1, fp, r6, asl #2
34988   b .L11470
34989 .L12420:
34990   add r0, r0, #32
34991   add r1, r1, #32
34992 .L11470:
34993   ldr lr, [r0, #0]
34994   cmp lr, #0
34995   beq .L11471
34996   ands  r3, lr, #15
34997   beq .L11473
34998   ldr r2, [r1, #0]
34999   orr r4, r8, r3
35000   tst r2, #256
35001   ldrne r6, [sp, #20]
35002   ldreq r7, [sp, #20]
35003   movne r3, r2, lsr #16
35004   movne r3, r3, asl #16
35005   orreq r3, r7, r4
35006   orrne r2, r6, r4
35007   orrne r3, r3, r2
35008   orreq r3, r3, r2, asl #16
35009   strne r3, [r1, #0]
35010   streq r3, [r1, #0]
35011 .L11473:
35012   mov r3, lr, lsr #4
35013   ands  r3, r3, #15
35014   beq .L11477
35015   ldr r2, [r1, #4]
35016   orr r4, r8, r3
35017   tst r2, #256
35018   ldrne r9, [sp, #20]
35019   ldreq sl, [sp, #20]
35020   movne r3, r2, lsr #16
35021   movne r3, r3, asl #16
35022   orreq r3, sl, r4
35023   orrne r2, r9, r4
35024   orrne r3, r3, r2
35025   orreq r3, r3, r2, asl #16
35026   strne r3, [r1, #4]
35027   streq r3, [r1, #4]
35028 .L11477:
35029   mov r3, lr, lsr #8
35030   ands  r3, r3, #15
35031   beq .L11481
35032   ldr r2, [r1, #8]
35033   orr r4, r8, r3
35034   tst r2, #256
35035   ldrne fp, [sp, #20]
35036   ldreq r6, [sp, #20]
35037   movne r3, r2, lsr #16
35038   movne r3, r3, asl #16
35039   orreq r3, r6, r4
35040   orrne r2, fp, r4
35041   orrne r3, r3, r2
35042   orreq r3, r3, r2, asl #16
35043   strne r3, [r1, #8]
35044   streq r3, [r1, #8]
35045 .L11481:
35046   mov r3, lr, lsr #12
35047   ands  r3, r3, #15
35048   beq .L11485
35049   ldr r2, [r1, #12]
35050   orr r4, r8, r3
35051   tst r2, #256
35052   ldrne r7, [sp, #20]
35053   ldreq r9, [sp, #20]
35054   movne r3, r2, lsr #16
35055   movne r3, r3, asl #16
35056   orreq r3, r9, r4
35057   orrne r2, r7, r4
35058   orrne r3, r3, r2
35059   orreq r3, r3, r2, asl #16
35060   strne r3, [r1, #12]
35061   streq r3, [r1, #12]
35062 .L11485:
35063   mov r3, lr, lsr #16
35064   ands  r3, r3, #15
35065   beq .L11489
35066   ldr r2, [r1, #16]
35067   orr r4, r8, r3
35068   tst r2, #256
35069   ldrne sl, [sp, #20]
35070   ldreq fp, [sp, #20]
35071   movne r3, r2, lsr #16
35072   movne r3, r3, asl #16
35073   orreq r3, fp, r4
35074   orrne r2, sl, r4
35075   orrne r3, r3, r2
35076   orreq r3, r3, r2, asl #16
35077   strne r3, [r1, #16]
35078   streq r3, [r1, #16]
35079 .L11489:
35080   mov r3, lr, lsr #20
35081   ands  r3, r3, #15
35082   beq .L11493
35083   ldr r2, [r1, #20]
35084   orr r4, r8, r3
35085   tst r2, #256
35086   ldrne r6, [sp, #20]
35087   ldreq r7, [sp, #20]
35088   movne r3, r2, lsr #16
35089   movne r3, r3, asl #16
35090   orreq r3, r7, r4
35091   orrne r2, r6, r4
35092   orrne r3, r3, r2
35093   orreq r3, r3, r2, asl #16
35094   strne r3, [r1, #20]
35095   streq r3, [r1, #20]
35096 .L11493:
35097   mov r3, lr, lsr #24
35098   ands  r3, r3, #15
35099   beq .L11497
35100   ldr r2, [r1, #24]
35101   orr r4, r8, r3
35102   tst r2, #256
35103   ldrne r9, [sp, #20]
35104   ldreq sl, [sp, #20]
35105   movne r3, r2, lsr #16
35106   movne r3, r3, asl #16
35107   orreq r3, sl, r4
35108   orrne r2, r9, r4
35109   orrne r3, r3, r2
35110   orreq r3, r3, r2, asl #16
35111   strne r3, [r1, #24]
35112   streq r3, [r1, #24]
35113 .L11497:
35114   movs  r3, lr, lsr #28
35115   beq .L11471
35116   ldr r2, [r1, #28]
35117   orr lr, r8, r3
35118   tst r2, #256
35119   ldrne fp, [sp, #20]
35120   ldreq r4, [sp, #20]
35121   movne r3, r2, lsr #16
35122   movne r3, r3, asl #16
35123   orreq r3, r4, lr
35124   orrne r2, fp, lr
35125   orrne r3, r3, r2
35126   orreq r3, r3, r2, asl #16
35127   strne r3, [r1, #28]
35128   streq r3, [r1, #28]
35129 .L11471:
35130   add ip, ip, #1
35131   cmp r5, ip
35132   bne .L12420
35133   b .L11219
35134 .L12407:
35135   add sp, sp, #96
35136   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
35137   b render_scanline_obj_color32_1D
35138 .L12419:
35139   rsb ip, r6, lr
35140   cmp ip, #0
35141   ble .L11219
35142   ldr r1, [sp, #0]
35143   movs  sl, ip, lsr #3
35144   add r7, r1, r6, asl #2
35145   beq .L11425
35146   mov r4, r7
35147   mov r6, r0
35148   mov r1, #0
35149 .L11427:
35150   ldr lr, [r6, #0]
35151   cmp lr, #0
35152   beq .L11428
35153   ands  r3, lr, #15
35154   beq .L11430
35155   ldr r2, [r4, #0]
35156   orr r5, r8, r3
35157   tst r2, #256
35158   ldrne r9, [sp, #20]
35159   ldreq fp, [sp, #20]
35160   movne r3, r2, lsr #16
35161   movne r3, r3, asl #16
35162   orreq r3, fp, r5
35163   orrne r2, r9, r5
35164   orrne r3, r3, r2
35165   orreq r3, r3, r2, asl #16
35166   strne r3, [r4, #0]
35167   streq r3, [r4, #0]
35168 .L11430:
35169   mov r3, lr, lsr #4
35170   ands  r3, r3, #15
35171   beq .L11434
35172   ldr r2, [r4, #4]
35173   orr r5, r8, r3
35174   tst r2, #256
35175   ldrne r9, [sp, #20]
35176   ldreq fp, [sp, #20]
35177   movne r3, r2, lsr #16
35178   movne r3, r3, asl #16
35179   orreq r3, fp, r5
35180   orrne r2, r9, r5
35181   orrne r3, r3, r2
35182   orreq r3, r3, r2, asl #16
35183   strne r3, [r4, #4]
35184   streq r3, [r4, #4]
35185 .L11434:
35186   mov r3, lr, lsr #8
35187   ands  r3, r3, #15
35188   beq .L11438
35189   ldr r2, [r4, #8]
35190   orr r5, r8, r3
35191   tst r2, #256
35192   ldrne r9, [sp, #20]
35193   ldreq fp, [sp, #20]
35194   movne r3, r2, lsr #16
35195   movne r3, r3, asl #16
35196   orreq r3, fp, r5
35197   orrne r2, r9, r5
35198   orrne r3, r3, r2
35199   orreq r3, r3, r2, asl #16
35200   strne r3, [r4, #8]
35201   streq r3, [r4, #8]
35202 .L11438:
35203   mov r3, lr, lsr #12
35204   ands  r3, r3, #15
35205   beq .L11442
35206   ldr r2, [r4, #12]
35207   orr r5, r8, r3
35208   tst r2, #256
35209   ldrne r9, [sp, #20]
35210   ldreq fp, [sp, #20]
35211   movne r3, r2, lsr #16
35212   movne r3, r3, asl #16
35213   orreq r3, fp, r5
35214   orrne r2, r9, r5
35215   orrne r3, r3, r2
35216   orreq r3, r3, r2, asl #16
35217   strne r3, [r4, #12]
35218   streq r3, [r4, #12]
35219 .L11442:
35220   mov r3, lr, lsr #16
35221   ands  r3, r3, #15
35222   beq .L11446
35223   ldr r2, [r4, #16]
35224   orr r5, r8, r3
35225   tst r2, #256
35226   ldrne r9, [sp, #20]
35227   ldreq fp, [sp, #20]
35228   movne r3, r2, lsr #16
35229   movne r3, r3, asl #16
35230   orreq r3, fp, r5
35231   orrne r2, r9, r5
35232   orrne r3, r3, r2
35233   orreq r3, r3, r2, asl #16
35234   strne r3, [r4, #16]
35235   streq r3, [r4, #16]
35236 .L11446:
35237   mov r3, lr, lsr #20
35238   ands  r3, r3, #15
35239   beq .L11450
35240   ldr r2, [r4, #20]
35241   orr r5, r8, r3
35242   tst r2, #256
35243   ldrne r9, [sp, #20]
35244   ldreq fp, [sp, #20]
35245   movne r3, r2, lsr #16
35246   movne r3, r3, asl #16
35247   orreq r3, fp, r5
35248   orrne r2, r9, r5
35249   orrne r3, r3, r2
35250   orreq r3, r3, r2, asl #16
35251   strne r3, [r4, #20]
35252   streq r3, [r4, #20]
35253 .L11450:
35254   mov r3, lr, lsr #24
35255   ands  r3, r3, #15
35256   beq .L11454
35257   ldr r2, [r4, #24]
35258   orr r5, r8, r3
35259   tst r2, #256
35260   ldrne r9, [sp, #20]
35261   ldreq fp, [sp, #20]
35262   movne r3, r2, lsr #16
35263   movne r3, r3, asl #16
35264   orreq r3, fp, r5
35265   orrne r2, r9, r5
35266   orrne r3, r3, r2
35267   orreq r3, r3, r2, asl #16
35268   strne r3, [r4, #24]
35269   streq r3, [r4, #24]
35270 .L11454:
35271   movs  r3, lr, lsr #28
35272   beq .L11428
35273   ldr r2, [r4, #28]
35274   orr lr, r8, r3
35275   tst r2, #256
35276   ldrne r5, [sp, #20]
35277   ldreq r9, [sp, #20]
35278   movne r3, r2, lsr #16
35279   movne r3, r3, asl #16
35280   orreq r3, r9, lr
35281   orrne r2, r5, lr
35282   orrne r3, r3, r2
35283   orreq r3, r3, r2, asl #16
35284   strne r3, [r4, #28]
35285   streq r3, [r4, #28]
35286 .L11428:
35287   add r1, r1, #1
35288   cmp sl, r1
35289   add r6, r6, #32
35290   add r4, r4, #32
35291   bne .L11427
35292   mov r3, sl, asl #5
35293   add r0, r0, r3
35294   add r7, r7, r3
35295 .L11425:
35296   ands  r4, ip, #7
35297   beq .L11219
35298   ldr ip, [r0, #0]
35299   mov lr, #0
35300 .L11463:
35301   ands  r3, ip, #15
35302   beq .L11464
35303   ldr r1, [r7, #0]
35304   ldr sl, [sp, #20]
35305   orr r2, r8, r3
35306   mov r3, r1, lsr #16
35307   orr r0, sl, r2
35308   mov r3, r3, asl #16
35309   orr r2, sl, r2
35310   tst r1, #256
35311   orr r3, r3, r0
35312   orr r2, r2, r1, asl #16
35313   strne r3, [r7, #0]
35314   streq r2, [r7, #0]
35315 .L11464:
35316   add lr, lr, #1
35317   cmp r4, lr
35318   mov ip, ip, lsr #4
35319   add r7, r7, #4
35320   bne .L11463
35321   b .L11219
35322 .L12417:
35323   rsb sl, r6, r1
35324   cmp sl, #0
35325   ble .L11219
35326   ldr r2, [sp, #0]
35327   movs  r7, sl, lsr #3
35328   add r6, r2, r6, asl #2
35329   beq .L11629
35330   mov lr, r6
35331   mov r5, r0
35332   mov ip, #0
35333 .L11631:
35334   ldr r1, [r5, #0]
35335   cmp r1, #0
35336   beq .L11632
35337   ands  r3, r1, #15
35338   beq .L11634
35339   ldr r2, [lr, #28]
35340   orr r4, r8, r3
35341   tst r2, #256
35342   ldrne r9, [sp, #20]
35343   ldreq fp, [sp, #20]
35344   movne r3, r2, lsr #16
35345   movne r3, r3, asl #16
35346   orreq r3, fp, r4
35347   orrne r2, r9, r4
35348   orrne r3, r3, r2
35349   orreq r3, r3, r2, asl #16
35350   strne r3, [lr, #28]
35351   streq r3, [lr, #28]
35352 .L11634:
35353   mov r3, r1, lsr #4
35354   ands  r3, r3, #15
35355   beq .L11638
35356   ldr r2, [lr, #24]
35357   orr r4, r8, r3
35358   tst r2, #256
35359   ldrne r9, [sp, #20]
35360   ldreq fp, [sp, #20]
35361   movne r3, r2, lsr #16
35362   movne r3, r3, asl #16
35363   orreq r3, fp, r4
35364   orrne r2, r9, r4
35365   orrne r3, r3, r2
35366   orreq r3, r3, r2, asl #16
35367   strne r3, [lr, #24]
35368   streq r3, [lr, #24]
35369 .L11638:
35370   mov r3, r1, lsr #8
35371   ands  r3, r3, #15
35372   beq .L11642
35373   ldr r2, [lr, #20]
35374   orr r4, r8, r3
35375   tst r2, #256
35376   ldrne r9, [sp, #20]
35377   ldreq fp, [sp, #20]
35378   movne r3, r2, lsr #16
35379   movne r3, r3, asl #16
35380   orreq r3, fp, r4
35381   orrne r2, r9, r4
35382   orrne r3, r3, r2
35383   orreq r3, r3, r2, asl #16
35384   strne r3, [lr, #20]
35385   streq r3, [lr, #20]
35386 .L11642:
35387   mov r3, r1, lsr #12
35388   ands  r3, r3, #15
35389   beq .L11646
35390   ldr r2, [lr, #16]
35391   orr r4, r8, r3
35392   tst r2, #256
35393   ldrne r9, [sp, #20]
35394   ldreq fp, [sp, #20]
35395   movne r3, r2, lsr #16
35396   movne r3, r3, asl #16
35397   orreq r3, fp, r4
35398   orrne r2, r9, r4
35399   orrne r3, r3, r2
35400   orreq r3, r3, r2, asl #16
35401   strne r3, [lr, #16]
35402   streq r3, [lr, #16]
35403 .L11646:
35404   mov r3, r1, lsr #16
35405   ands  r3, r3, #15
35406   beq .L11650
35407   ldr r2, [lr, #12]
35408   orr r4, r8, r3
35409   tst r2, #256
35410   ldrne r9, [sp, #20]
35411   ldreq fp, [sp, #20]
35412   movne r3, r2, lsr #16
35413   movne r3, r3, asl #16
35414   orreq r3, fp, r4
35415   orrne r2, r9, r4
35416   orrne r3, r3, r2
35417   orreq r3, r3, r2, asl #16
35418   strne r3, [lr, #12]
35419   streq r3, [lr, #12]
35420 .L11650:
35421   mov r3, r1, lsr #20
35422   ands  r3, r3, #15
35423   beq .L11654
35424   ldr r2, [lr, #8]
35425   orr r4, r8, r3
35426   tst r2, #256
35427   ldrne r9, [sp, #20]
35428   ldreq fp, [sp, #20]
35429   movne r3, r2, lsr #16
35430   movne r3, r3, asl #16
35431   orreq r3, fp, r4
35432   orrne r2, r9, r4
35433   orrne r3, r3, r2
35434   orreq r3, r3, r2, asl #16
35435   strne r3, [lr, #8]
35436   streq r3, [lr, #8]
35437 .L11654:
35438   mov r3, r1, lsr #24
35439   ands  r3, r3, #15
35440   beq .L11658
35441   ldr r2, [lr, #4]
35442   orr r4, r8, r3
35443   tst r2, #256
35444   ldrne r9, [sp, #20]
35445   ldreq fp, [sp, #20]
35446   movne r3, r2, lsr #16
35447   movne r3, r3, asl #16
35448   orreq r3, fp, r4
35449   orrne r2, r9, r4
35450   orrne r3, r3, r2
35451   orreq r3, r3, r2, asl #16
35452   strne r3, [lr, #4]
35453   streq r3, [lr, #4]
35454 .L11658:
35455   movs  r3, r1, lsr #28
35456   beq .L11632
35457   ldr r2, [lr, #0]
35458   orr r1, r8, r3
35459   tst r2, #256
35460   ldrne r4, [sp, #20]
35461   ldreq r9, [sp, #20]
35462   movne r3, r2, lsr #16
35463   movne r3, r3, asl #16
35464   orreq r3, r9, r1
35465   orrne r2, r4, r1
35466   orrne r3, r3, r2
35467   orreq r3, r3, r2, asl #16
35468   strne r3, [lr, #0]
35469   streq r3, [lr, #0]
35470 .L11632:
35471   add ip, ip, #1
35472   cmp r7, ip
35473   sub r5, r5, #32
35474   add lr, lr, #32
35475   bne .L11631
35476   rsb r3, r7, r7, asl #27
35477   add r0, r0, r3, asl #5
35478   add r6, r6, r7, asl #5
35479 .L11629:
35480   ands  r4, sl, #7
35481   beq .L11219
35482   ldr ip, [r0, #0]
35483   mov lr, #0
35484 .L11667:
35485   movs  r3, ip, lsr #28
35486   beq .L11668
35487   ldr r1, [r6, #0]
35488   ldr sl, [sp, #20]
35489   orr r2, r8, r3
35490   mov r3, r1, lsr #16
35491   orr r0, sl, r2
35492   mov r3, r3, asl #16
35493   orr r2, sl, r2
35494   tst r1, #256
35495   orr r3, r3, r0
35496   orr r2, r2, r1, asl #16
35497   strne r3, [r6, #0]
35498   streq r2, [r6, #0]
35499 .L11668:
35500   add lr, lr, #1
35501   cmp r4, lr
35502   mov ip, ip, asl #4
35503   add r6, r6, #4
35504   bne .L11667
35505   b .L11219
35506 .L12415:
35507   rsb r8, r6, r7
35508   cmp r8, #0
35509   ble .L11219
35510   ldr r9, [sp, #0]
35511   movs  r7, r8, lsr #3
35512   add r6, r9, r6, asl #2
35513   beq .L11942
35514   ldr r3, .L12436
35515   mov lr, r6
35516   add r0, r0, r3
35517   mov r5, ip
35518   mov r1, #0
35519 .L11944:
35520   ldr r2, [r5, #0]
35521   cmp r2, #0
35522   beq .L11945
35523   ands  r4, r2, #255
35524   beq .L11947
35525   ldr r3, [lr, #0]
35526   tst r3, #256
35527   movne r3, r3, lsr #16
35528   ldrne sl, [sp, #20]
35529   ldreq fp, [sp, #20]
35530   movne r3, r3, asl #16
35531   orrne r3, sl, r3
35532   orreq r3, fp, r3, asl #16
35533   orrne r3, r4, r3
35534   orreq r3, r4, r3
35535   strne r3, [lr, #0]
35536   streq r3, [lr, #0]
35537 .L11947:
35538   mov r3, r2, lsr #8
35539   ands  r4, r3, #255
35540   beq .L11951
35541   ldr r3, [lr, #4]
35542   tst r3, #256
35543   movne r3, r3, lsr #16
35544   ldrne r9, [sp, #20]
35545   ldreq sl, [sp, #20]
35546   movne r3, r3, asl #16
35547   orrne r3, r9, r3
35548   orreq r3, sl, r3, asl #16
35549   orrne r3, r4, r3
35550   orreq r3, r4, r3
35551   strne r3, [lr, #4]
35552   streq r3, [lr, #4]
35553 .L11951:
35554   mov r3, r2, lsr #16
35555   ands  r4, r3, #255
35556   beq .L11955
35557   ldr r3, [lr, #8]
35558   tst r3, #256
35559   movne r3, r3, lsr #16
35560   ldrne fp, [sp, #20]
35561   ldreq r9, [sp, #20]
35562   movne r3, r3, asl #16
35563   orrne r3, fp, r3
35564   orreq r3, r9, r3, asl #16
35565   orrne r3, r4, r3
35566   orreq r3, r4, r3
35567   strne r3, [lr, #8]
35568   streq r3, [lr, #8]
35569 .L11955:
35570   movs  r4, r2, lsr #24
35571   beq .L11945
35572   ldr r2, [lr, #12]
35573   tst r2, #256
35574   ldrne sl, [sp, #20]
35575   ldreq fp, [sp, #20]
35576   movne r3, r2, lsr #16
35577   movne r3, r3, asl #16
35578   orreq r3, fp, r4
35579   orrne r2, sl, r4
35580   orrne r3, r3, r2
35581   orreq r3, r3, r2, asl #16
35582   strne r3, [lr, #12]
35583   streq r3, [lr, #12]
35584 .L11945:
35585   ldr r2, [r0, #-60]
35586   cmp r2, #0
35587   beq .L11962
35588   ands  r4, r2, #255
35589   beq .L11964
35590   ldr r3, [lr, #16]
35591   tst r3, #256
35592   movne r3, r3, lsr #16
35593   ldrne r9, [sp, #20]
35594   ldreq sl, [sp, #20]
35595   movne r3, r3, asl #16
35596   orrne r3, r9, r3
35597   orreq r3, sl, r3, asl #16
35598   orrne r3, r4, r3
35599   orreq r3, r4, r3
35600   strne r3, [lr, #16]
35601   streq r3, [lr, #16]
35602 .L11964:
35603   mov r3, r2, lsr #8
35604   ands  r4, r3, #255
35605   beq .L11968
35606   ldr r3, [lr, #20]
35607   tst r3, #256
35608   movne r3, r3, lsr #16
35609   ldrne fp, [sp, #20]
35610   ldreq r9, [sp, #20]
35611   movne r3, r3, asl #16
35612   orrne r3, fp, r3
35613   orreq r3, r9, r3, asl #16
35614   orrne r3, r4, r3
35615   orreq r3, r4, r3
35616   strne r3, [lr, #20]
35617   streq r3, [lr, #20]
35618 .L11968:
35619   mov r3, r2, lsr #16
35620   ands  r4, r3, #255
35621   beq .L11972
35622   ldr r3, [lr, #24]
35623   tst r3, #256
35624   movne r3, r3, lsr #16
35625   ldrne sl, [sp, #20]
35626   ldreq fp, [sp, #20]
35627   movne r3, r3, asl #16
35628   orrne r3, sl, r3
35629   orreq r3, fp, r3, asl #16
35630   orrne r3, r4, r3
35631   orreq r3, r4, r3
35632   strne r3, [lr, #24]
35633   streq r3, [lr, #24]
35634 .L11972:
35635   movs  r2, r2, lsr #24
35636   beq .L11962
35637   ldr r3, [lr, #28]
35638   tst r3, #256
35639   movne r3, r3, lsr #16
35640   ldrne r4, [sp, #20]
35641   ldreq r9, [sp, #20]
35642   movne r3, r3, asl #16
35643   orrne r3, r4, r3
35644   orreq r3, r9, r3, asl #16
35645   orrne r3, r2, r3
35646   orreq r3, r2, r3
35647   strne r3, [lr, #28]
35648   streq r3, [lr, #28]
35649 .L11962:
35650   add r1, r1, #1
35651   cmp r7, r1
35652   add r5, r5, #64
35653   add lr, lr, #32
35654   add r0, r0, #64
35655   bne .L11944
35656   add ip, ip, r7, asl #6
35657   add r6, r6, r7, asl #5
35658 .L11942:
35659   ands  r4, r8, #7
35660   beq .L11219
35661   cmp r4, #3
35662   ldrls ip, [ip, #0]
35663   bls .L12001
35664   ldr r2, [ip, #0]
35665   cmp r2, #0
35666   beq .L11983
35667   ands  r1, r2, #255
35668   beq .L11985
35669   ldr r3, [r6, #0]
35670   tst r3, #256
35671   movne r3, r3, lsr #16
35672   ldrne sl, [sp, #20]
35673   ldreq fp, [sp, #20]
35674   movne r3, r3, asl #16
35675   orrne r3, sl, r3
35676   orreq r3, fp, r3, asl #16
35677   orrne r3, r1, r3
35678   orreq r3, r1, r3
35679   strne r3, [r6, #0]
35680   streq r3, [r6, #0]
35681 .L11985:
35682   mov r3, r2, lsr #8
35683   ands  r1, r3, #255
35684   beq .L11989
35685   ldr r3, [r6, #4]
35686   tst r3, #256
35687   movne r3, r3, lsr #16
35688   ldrne lr, [sp, #20]
35689   ldreq r0, [sp, #20]
35690   movne r3, r3, asl #16
35691   orrne r3, lr, r3
35692   orreq r3, r0, r3, asl #16
35693   orrne r3, r1, r3
35694   orreq r3, r1, r3
35695   strne r3, [r6, #4]
35696   streq r3, [r6, #4]
35697 .L11989:
35698   mov r3, r2, lsr #16
35699   ands  r1, r3, #255
35700   beq .L11993
35701   ldr r3, [r6, #8]
35702   tst r3, #256
35703   movne r3, r3, lsr #16
35704   ldrne r5, [sp, #20]
35705   ldreq r7, [sp, #20]
35706   movne r3, r3, asl #16
35707   orrne r3, r5, r3
35708   orreq r3, r7, r3, asl #16
35709   orrne r3, r1, r3
35710   orreq r3, r1, r3
35711   strne r3, [r6, #8]
35712   streq r3, [r6, #8]
35713 .L11993:
35714   movs  r1, r2, lsr #24
35715   beq .L11983
35716   ldr r2, [r6, #12]
35717   tst r2, #256
35718   ldrne r8, [sp, #20]
35719   ldreq r9, [sp, #20]
35720   movne r3, r2, lsr #16
35721   movne r3, r3, asl #16
35722   orreq r3, r9, r1
35723   orrne r2, r8, r1
35724   orrne r3, r3, r2
35725   orreq r3, r3, r2, asl #16
35726   strne r3, [r6, #12]
35727   streq r3, [r6, #12]
35728 .L11983:
35729   subs  r4, r4, #4
35730   ldr ip, [ip, #4]
35731   addne r6, r6, #16
35732   beq .L11219
35733 .L12001:
35734   mov lr, #0
35735 .L12002:
35736   ands  r3, ip, #255
35737   beq .L12003
35738   ldr r2, [r6, #0]
35739   ldr sl, [sp, #20]
35740   tst r2, #256
35741   orr r1, sl, r3
35742   orr r0, sl, r3
35743   mov r3, r2, lsr #16
35744   mov r3, r3, asl #16
35745   orr r3, r3, r1
35746   orr r1, r0, r2, asl #16
35747   strne r3, [r6, #0]
35748   streq r1, [r6, #0]
35749 .L12003:
35750   add lr, lr, #1
35751   cmp lr, r4
35752   mov ip, ip, lsr #8
35753   add r6, r6, #4
35754   bcc .L12002
35755   b .L11219
35756 .L12413:
35757   rsb sl, r6, r7
35758   cmp sl, #0
35759   ble .L11219
35760   ldr r9, [sp, #0]
35761   movs  r8, sl, lsr #3
35762   add r7, r9, r6, asl #2
35763   beq .L12278
35764   ldr r3, .L12436+4
35765   mov r4, r7
35766   add r0, r0, r3
35767   mov r6, ip
35768   mov r1, #0
35769 .L12280:
35770   ldr r2, [r0, #68]
35771   cmp r2, #0
35772   beq .L12281
35773   ands  lr, r2, #255
35774   beq .L12283
35775   ldr r3, [r4, #12]
35776   tst r3, #256
35777   movne r3, r3, lsr #16
35778   ldrne fp, [sp, #20]
35779   ldreq r5, [sp, #20]
35780   movne r3, r3, asl #16
35781   orrne r3, fp, r3
35782   orreq r3, r5, r3, asl #16
35783   orrne r3, lr, r3
35784   orreq r3, lr, r3
35785   strne r3, [r4, #12]
35786   streq r3, [r4, #12]
35787 .L12283:
35788   mov r3, r2, lsr #8
35789   ands  lr, r3, #255
35790   beq .L12287
35791   ldr r3, [r4, #8]
35792   tst r3, #256
35793   movne r3, r3, lsr #16
35794   ldrne r9, [sp, #20]
35795   ldreq fp, [sp, #20]
35796   movne r3, r3, asl #16
35797   orrne r3, r9, r3
35798   orreq r3, fp, r3, asl #16
35799   orrne r3, lr, r3
35800   orreq r3, lr, r3
35801   strne r3, [r4, #8]
35802   streq r3, [r4, #8]
35803 .L12287:
35804   mov r3, r2, lsr #16
35805   ands  lr, r3, #255
35806   beq .L12291
35807   ldr r3, [r4, #4]
35808   tst r3, #256
35809   movne r3, r3, lsr #16
35810   ldrne r5, [sp, #20]
35811   ldreq r9, [sp, #20]
35812   movne r3, r3, asl #16
35813   orrne r3, r5, r3
35814   orreq r3, r9, r3, asl #16
35815   orrne r3, lr, r3
35816   orreq r3, lr, r3
35817   strne r3, [r4, #4]
35818   streq r3, [r4, #4]
35819 .L12291:
35820   movs  r2, r2, lsr #24
35821   beq .L12281
35822   ldr r3, [r4, #0]
35823   tst r3, #256
35824   movne r3, r3, lsr #16
35825   ldrne fp, [sp, #20]
35826   ldreq lr, [sp, #20]
35827   movne r3, r3, asl #16
35828   orrne r3, fp, r3
35829   orreq r3, lr, r3, asl #16
35830   orrne r3, r2, r3
35831   orreq r3, r2, r3
35832   strne r3, [r4, #0]
35833   streq r3, [r4, #0]
35834 .L12281:
35835   ldr lr, [r6, #0]
35836   cmp lr, #0
35837   beq .L12298
35838   ands  r5, lr, #255
35839   beq .L12300
35840   ldr r2, [r4, #28]
35841   tst r2, #256
35842   ldrne r9, [sp, #20]
35843   ldreq fp, [sp, #20]
35844   movne r3, r2, lsr #16
35845   movne r3, r3, asl #16
35846   orreq r3, fp, r5
35847   orrne r2, r9, r5
35848   orrne r3, r3, r2
35849   orreq r3, r3, r2, asl #16
35850   strne r3, [r4, #28]
35851   streq r3, [r4, #28]
35852 .L12300:
35853   mov r3, lr, lsr #8
35854   ands  r2, r3, #255
35855   beq .L12304
35856   ldr r3, [r4, #24]
35857   tst r3, #256
35858   movne r3, r3, lsr #16
35859   ldrne r5, [sp, #20]
35860   ldreq r9, [sp, #20]
35861   movne r3, r3, asl #16
35862   orrne r3, r5, r3
35863   orreq r3, r9, r3, asl #16
35864   orrne r3, r2, r3
35865   orreq r3, r2, r3
35866   strne r3, [r4, #24]
35867   streq r3, [r4, #24]
35868 .L12304:
35869   mov r3, lr, lsr #16
35870   ands  r2, r3, #255
35871   beq .L12308
35872   ldr r3, [r4, #20]
35873   tst r3, #256
35874   movne r3, r3, lsr #16
35875   ldrne fp, [sp, #20]
35876   ldreq r5, [sp, #20]
35877   movne r3, r3, asl #16
35878   orrne r3, fp, r3
35879   orreq r3, r5, r3, asl #16
35880   orrne r3, r2, r3
35881   orreq r3, r2, r3
35882   strne r3, [r4, #20]
35883   streq r3, [r4, #20]
35884 .L12308:
35885   movs  lr, lr, lsr #24
35886   beq .L12298
35887   ldr r2, [r4, #16]
35888   tst r2, #256
35889   ldrne r9, [sp, #20]
35890   ldreq fp, [sp, #20]
35891   movne r3, r2, lsr #16
35892   movne r3, r3, asl #16
35893   orreq r3, fp, lr
35894   orrne r2, r9, lr
35895   orrne r3, r3, r2
35896   orreq r3, r3, r2, asl #16
35897   strne r3, [r4, #16]
35898   streq r3, [r4, #16]
35899 .L12298:
35900   add r1, r1, #1
35901   cmp r8, r1
35902   sub r6, r6, #64
35903   add r4, r4, #32
35904   sub r0, r0, #64
35905   bne .L12280
35906   rsb r3, r8, r8, asl #26
35907   add ip, ip, r3, asl #6
35908   add r7, r7, r8, asl #5
35909 .L12278:
35910   ands  r4, sl, #7
35911   beq .L11219
35912   cmp r4, #3
35913   ldrls ip, [ip, #4]
35914   bls .L12337
35915   ldr r2, [ip, #4]
35916   cmp r2, #0
35917   beq .L12319
35918   ands  r1, r2, #255
35919   beq .L12321
35920   ldr r3, [r7, #12]
35921   tst r3, #256
35922   movne r3, r3, lsr #16
35923   ldrne lr, [sp, #20]
35924   ldreq r0, [sp, #20]
35925   movne r3, r3, asl #16
35926   orrne r3, lr, r3
35927   orreq r3, r0, r3, asl #16
35928   orrne r3, r1, r3
35929   orreq r3, r1, r3
35930   strne r3, [r7, #12]
35931   streq r3, [r7, #12]
35932 .L12321:
35933   mov r3, r2, lsr #8
35934   ands  r1, r3, #255
35935   beq .L12325
35936   ldr r3, [r7, #8]
35937   tst r3, #256
35938   movne r3, r3, lsr #16
35939   ldrne r5, [sp, #20]
35940   ldreq r6, [sp, #20]
35941   movne r3, r3, asl #16
35942   orrne r3, r5, r3
35943   orreq r3, r6, r3, asl #16
35944   orrne r3, r1, r3
35945   orreq r3, r1, r3
35946   strne r3, [r7, #8]
35947   streq r3, [r7, #8]
35948 .L12325:
35949   mov r3, r2, lsr #16
35950   ands  r1, r3, #255
35951   beq .L12329
35952   ldr r3, [r7, #4]
35953   tst r3, #256
35954   movne r3, r3, lsr #16
35955   ldrne r8, [sp, #20]
35956   ldreq r9, [sp, #20]
35957   movne r3, r3, asl #16
35958   orrne r3, r8, r3
35959   orreq r3, r9, r3, asl #16
35960   orrne r3, r1, r3
35961   orreq r3, r1, r3
35962   strne r3, [r7, #4]
35963   streq r3, [r7, #4]
35964 .L12329:
35965   movs  r2, r2, lsr #24
35966   beq .L12319
35967   ldr r3, [r7, #0]
35968   tst r3, #256
35969   movne r3, r3, lsr #16
35970   ldrne sl, [sp, #20]
35971   ldreq fp, [sp, #20]
35972   movne r3, r3, asl #16
35973   orrne r3, sl, r3
35974   orreq r3, fp, r3, asl #16
35975   orrne r3, r2, r3
35976   orreq r3, r2, r3
35977   strne r3, [r7, #0]
35978   streq r3, [r7, #0]
35979 .L12319:
35980   subs  r4, r4, #4
35981   ldr ip, [ip, #0]
35982   addne r7, r7, #16
35983   beq .L11219
35984 .L12337:
35985   mov lr, #0
35986 .L12338:
35987   movs  r3, ip, lsr #24
35988   beq .L12339
35989   ldr r2, [r7, #0]
35990   ldr r0, [sp, #20]
35991   tst r2, #256
35992   orr r1, r0, r3
35993   orr r0, r0, r3
35994   mov r3, r2, lsr #16
35995   mov r3, r3, asl #16
35996   orr r3, r3, r1
35997   orr r1, r0, r2, asl #16
35998   strne r3, [r7, #0]
35999   streq r1, [r7, #0]
36000 .L12339:
36001   add lr, lr, #1
36002   cmp r4, lr
36003   mov ip, ip, asl #8
36004   add r7, r7, #4
36005   bhi .L12338
36006   b .L11219
36007 .L12048:
36008   mov r3, r0, lsr #3
36009   ands  r2, r0, #7
36010   sub r4, ip, r3, asl #6
36011   ldreq r0, [sp, #68]
36012   beq .L12198
36013   cmp r2, #3
36014   rsb r6, r2, #8
36015   bhi .L12421
36016   subs  r7, r6, #4
36017   ldr r1, [r4, #4]
36018   ldreq r1, [sp, #68]
36019   beq .L12213
36020   mov r3, r2, asl #3
36021   sub r3, r3, #32
36022   mov ip, r1, asl r3
36023   ldr lr, [sp, #68]
36024   mov r5, #0
36025 .L12214:
36026   movs  r3, ip, lsr #24
36027   beq .L12215
36028   ldr r2, [lr, #0]
36029   ldr r9, [sp, #20]
36030   tst r2, #256
36031   orr r1, r9, r3
36032   orr r0, r9, r3
36033   mov r3, r2, lsr #16
36034   mov r3, r3, asl #16
36035   orr r3, r3, r1
36036   orr r1, r0, r2, asl #16
36037   strne r3, [lr, #0]
36038   streq r1, [lr, #0]
36039 .L12215:
36040   add r5, r5, #1
36041   cmp r7, r5
36042   mov ip, ip, asl #8
36043   add lr, lr, #4
36044   bne .L12214
36045   ldr sl, [sp, #68]
36046   add r3, sl, r6, asl #2
36047   sub r1, r3, #16
36048 .L12213:
36049   ldr r2, [r4, #0]
36050   cmp r2, #0
36051   beq .L12221
36052   ands  r0, r2, #255
36053   beq .L12223
36054   ldr r3, [r1, #12]
36055   tst r3, #256
36056   movne r3, r3, lsr #16
36057   ldrne fp, [sp, #20]
36058   ldreq ip, [sp, #20]
36059   movne r3, r3, asl #16
36060   orrne r3, fp, r3
36061   orreq r3, ip, r3, asl #16
36062   orrne r3, r0, r3
36063   orreq r3, r0, r3
36064   strne r3, [r1, #12]
36065   streq r3, [r1, #12]
36066 .L12223:
36067   mov r3, r2, lsr #8
36068   ands  r0, r3, #255
36069   beq .L12227
36070   ldr r3, [r1, #8]
36071   tst r3, #256
36072   movne r3, r3, lsr #16
36073   ldrne lr, [sp, #20]
36074   ldreq r5, [sp, #20]
36075   movne r3, r3, asl #16
36076   orrne r3, lr, r3
36077   orreq r3, r5, r3, asl #16
36078   orrne r3, r0, r3
36079   orreq r3, r0, r3
36080   strne r3, [r1, #8]
36081   streq r3, [r1, #8]
36082 .L12227:
36083   mov r3, r2, lsr #16
36084   ands  r0, r3, #255
36085   beq .L12231
36086   ldr r3, [r1, #4]
36087   tst r3, #256
36088   movne r3, r3, lsr #16
36089   ldrne r6, [sp, #20]
36090   ldreq r7, [sp, #20]
36091   movne r3, r3, asl #16
36092   orrne r3, r6, r3
36093   orreq r3, r7, r3, asl #16
36094   orrne r3, r0, r3
36095   orreq r3, r0, r3
36096   strne r3, [r1, #4]
36097   streq r3, [r1, #4]
36098 .L12231:
36099   movs  r2, r2, lsr #24
36100   beq .L12221
36101   ldr r3, [r1, #0]
36102   tst r3, #256
36103   beq .L12236
36104   mov r3, r3, lsr #16
36105   ldr r9, [sp, #20]
36106   mov r3, r3, asl #16
36107   orr r3, r9, r3
36108   orr r3, r2, r3
36109   str r3, [r1, #0]
36110 .L12221:
36111   add r0, r1, #16
36112 .L12203:
36113   sub r4, r4, #64
36114 .L12198:
36115   movs  r5, r8, lsr #3
36116   beq .L11219
36117   mov lr, #0
36118   b .L12239
36119 .L12422:
36120   sub r4, r4, #64
36121   add r0, r0, #32
36122 .L12239:
36123   ldr r2, [r4, #4]
36124   cmp r2, #0
36125   beq .L12240
36126   ands  r1, r2, #255
36127   beq .L12242
36128   ldr r3, [r0, #12]
36129   tst r3, #256
36130   movne r3, r3, lsr #16
36131   ldrne ip, [sp, #20]
36132   ldreq r6, [sp, #20]
36133   movne r3, r3, asl #16
36134   orrne r3, ip, r3
36135   orreq r3, r6, r3, asl #16
36136   orrne r3, r1, r3
36137   orreq r3, r1, r3
36138   strne r3, [r0, #12]
36139   streq r3, [r0, #12]
36140 .L12242:
36141   mov r3, r2, lsr #8
36142   ands  r1, r3, #255
36143   beq .L12246
36144   ldr r3, [r0, #8]
36145   tst r3, #256
36146   movne r3, r3, lsr #16
36147   ldrne r7, [sp, #20]
36148   ldreq r8, [sp, #20]
36149   movne r3, r3, asl #16
36150   orrne r3, r7, r3
36151   orreq r3, r8, r3, asl #16
36152   orrne r3, r1, r3
36153   orreq r3, r1, r3
36154   strne r3, [r0, #8]
36155   streq r3, [r0, #8]
36156 .L12246:
36157   mov r3, r2, lsr #16
36158   ands  r1, r3, #255
36159   beq .L12250
36160   ldr r3, [r0, #4]
36161   tst r3, #256
36162   movne r3, r3, lsr #16
36163   ldrne r9, [sp, #20]
36164   ldreq sl, [sp, #20]
36165   movne r3, r3, asl #16
36166   orrne r3, r9, r3
36167   orreq r3, sl, r3, asl #16
36168   orrne r3, r1, r3
36169   orreq r3, r1, r3
36170   strne r3, [r0, #4]
36171   streq r3, [r0, #4]
36172 .L12250:
36173   movs  r2, r2, lsr #24
36174   beq .L12240
36175   ldr r3, [r0, #0]
36176   tst r3, #256
36177   movne r3, r3, lsr #16
36178   ldrne fp, [sp, #20]
36179   ldreq ip, [sp, #20]
36180   movne r3, r3, asl #16
36181   orrne r3, fp, r3
36182   orreq r3, ip, r3, asl #16
36183   orrne r3, r2, r3
36184   orreq r3, r2, r3
36185   strne r3, [r0, #0]
36186   streq r3, [r0, #0]
36187 .L12240:
36188   ldr r1, [r4, #0]
36189   cmp r1, #0
36190   beq .L12257
36191   ands  ip, r1, #255
36192   beq .L12259
36193   ldr r2, [r0, #28]
36194   tst r2, #256
36195   ldrne r6, [sp, #20]
36196   ldreq r7, [sp, #20]
36197   movne r3, r2, lsr #16
36198   movne r3, r3, asl #16
36199   orreq r3, r7, ip
36200   orrne r2, r6, ip
36201   orrne r3, r3, r2
36202   orreq r3, r3, r2, asl #16
36203   strne r3, [r0, #28]
36204   streq r3, [r0, #28]
36205 .L12259:
36206   mov r3, r1, lsr #8
36207   ands  r2, r3, #255
36208   beq .L12263
36209   ldr r3, [r0, #24]
36210   tst r3, #256
36211   movne r3, r3, lsr #16
36212   ldrne r8, [sp, #20]
36213   ldreq r9, [sp, #20]
36214   movne r3, r3, asl #16
36215   orrne r3, r8, r3
36216   orreq r3, r9, r3, asl #16
36217   orrne r3, r2, r3
36218   orreq r3, r2, r3
36219   strne r3, [r0, #24]
36220   streq r3, [r0, #24]
36221 .L12263:
36222   mov r3, r1, lsr #16
36223   ands  r2, r3, #255
36224   beq .L12267
36225   ldr r3, [r0, #20]
36226   tst r3, #256
36227   movne r3, r3, lsr #16
36228   ldrne sl, [sp, #20]
36229   ldreq fp, [sp, #20]
36230   movne r3, r3, asl #16
36231   orrne r3, sl, r3
36232   orreq r3, fp, r3, asl #16
36233   orrne r3, r2, r3
36234   orreq r3, r2, r3
36235   strne r3, [r0, #20]
36236   streq r3, [r0, #20]
36237 .L12267:
36238   movs  r1, r1, lsr #24
36239   beq .L12257
36240   ldr r2, [r0, #16]
36241   tst r2, #256
36242   ldrne ip, [sp, #20]
36243   ldreq r6, [sp, #20]
36244   movne r3, r2, lsr #16
36245   movne r3, r3, asl #16
36246   orreq r3, r6, r1
36247   orrne r2, ip, r1
36248   orrne r3, r3, r2
36249   orreq r3, r3, r2, asl #16
36250   strne r3, [r0, #16]
36251   streq r3, [r0, #16]
36252 .L12257:
36253   add lr, lr, #1
36254   cmp lr, r5
36255   bne .L12422
36256   b .L11219
36257 .L11712:
36258   ands  r2, r0, #7
36259   mov r3, r0, lsr #3
36260   add r4, ip, r3, asl #6
36261   ldreq r1, [sp, #68]
36262   beq .L11862
36263   cmp r2, #3
36264   rsb r6, r2, #8
36265   bhi .L12423
36266   subs  r7, r6, #4
36267   ldr r1, [r4, #0]
36268   ldreq r1, [sp, #68]
36269   beq .L11877
36270   mov r3, r2, asl #3
36271   mov ip, r1, lsr r3
36272   ldr lr, [sp, #68]
36273   mov r5, #0
36274 .L11878:
36275   ands  r3, ip, #255
36276   beq .L11879
36277   ldr r2, [lr, #0]
36278   ldr r9, [sp, #20]
36279   tst r2, #256
36280   orr r1, r9, r3
36281   orr r0, r9, r3
36282   mov r3, r2, lsr #16
36283   mov r3, r3, asl #16
36284   orr r3, r3, r1
36285   orr r1, r0, r2, asl #16
36286   strne r3, [lr, #0]
36287   streq r1, [lr, #0]
36288 .L11879:
36289   add r5, r5, #1
36290   cmp r7, r5
36291   mov ip, ip, lsr #8
36292   add lr, lr, #4
36293   bne .L11878
36294   ldr sl, [sp, #68]
36295   add r3, sl, r6, asl #2
36296   sub r1, r3, #16
36297 .L11877:
36298   ldr r2, [r4, #4]
36299   cmp r2, #0
36300   beq .L11885
36301   ands  r0, r2, #255
36302   beq .L11887
36303   ldr r3, [r1, #0]
36304   tst r3, #256
36305   movne r3, r3, lsr #16
36306   ldrne fp, [sp, #20]
36307   ldreq ip, [sp, #20]
36308   movne r3, r3, asl #16
36309   orrne r3, fp, r3
36310   orreq r3, ip, r3, asl #16
36311   orrne r3, r0, r3
36312   orreq r3, r0, r3
36313   strne r3, [r1, #0]
36314   streq r3, [r1, #0]
36315 .L11887:
36316   mov r3, r2, lsr #8
36317   ands  r0, r3, #255
36318   beq .L11891
36319   ldr r3, [r1, #4]
36320   tst r3, #256
36321   movne r3, r3, lsr #16
36322   ldrne lr, [sp, #20]
36323   ldreq r5, [sp, #20]
36324   movne r3, r3, asl #16
36325   orrne r3, lr, r3
36326   orreq r3, r5, r3, asl #16
36327   orrne r3, r0, r3
36328   orreq r3, r0, r3
36329   strne r3, [r1, #4]
36330   streq r3, [r1, #4]
36331 .L11891:
36332   mov r3, r2, lsr #16
36333   ands  r0, r3, #255
36334   beq .L11895
36335   ldr r3, [r1, #8]
36336   tst r3, #256
36337   movne r3, r3, lsr #16
36338   ldrne r6, [sp, #20]
36339   ldreq r7, [sp, #20]
36340   movne r3, r3, asl #16
36341   orrne r3, r6, r3
36342   orreq r3, r7, r3, asl #16
36343   orrne r3, r0, r3
36344   orreq r3, r0, r3
36345   strne r3, [r1, #8]
36346   streq r3, [r1, #8]
36347 .L11895:
36348   movs  r2, r2, lsr #24
36349   beq .L11885
36350   ldr r3, [r1, #12]
36351   tst r3, #256
36352   beq .L11900
36353   mov r3, r3, lsr #16
36354   ldr r9, [sp, #20]
36355   mov r3, r3, asl #16
36356   orr r3, r9, r3
36357   orr r3, r2, r3
36358   str r3, [r1, #12]
36359 .L11885:
36360   add r1, r1, #16
36361 .L11867:
36362   add r4, r4, #64
36363 .L11862:
36364   movs  lr, r8, lsr #3
36365   beq .L11219
36366   mov ip, #0
36367   b .L11903
36368 .L12424:
36369   add r4, r4, #64
36370   add r1, r1, #32
36371 .L11903:
36372   ldr r2, [r4, #0]
36373   cmp r2, #0
36374   beq .L11904
36375   ands  r0, r2, #255
36376   beq .L11906
36377   ldr r3, [r1, #0]
36378   tst r3, #256
36379   movne r3, r3, lsr #16
36380   ldrne r5, [sp, #20]
36381   ldreq r6, [sp, #20]
36382   movne r3, r3, asl #16
36383   orrne r3, r5, r3
36384   orreq r3, r6, r3, asl #16
36385   orrne r3, r0, r3
36386   orreq r3, r0, r3
36387   strne r3, [r1, #0]
36388   streq r3, [r1, #0]
36389 .L11906:
36390   mov r3, r2, lsr #8
36391   ands  r0, r3, #255
36392   beq .L11910
36393   ldr r3, [r1, #4]
36394   tst r3, #256
36395   movne r3, r3, lsr #16
36396   ldrne r7, [sp, #20]
36397   ldreq r8, [sp, #20]
36398   movne r3, r3, asl #16
36399   orrne r3, r7, r3
36400   orreq r3, r8, r3, asl #16
36401   orrne r3, r0, r3
36402   orreq r3, r0, r3
36403   strne r3, [r1, #4]
36404   streq r3, [r1, #4]
36405 .L11910:
36406   mov r3, r2, lsr #16
36407   ands  r0, r3, #255
36408   beq .L11914
36409   ldr r3, [r1, #8]
36410   tst r3, #256
36411   movne r3, r3, lsr #16
36412   ldrne r9, [sp, #20]
36413   ldreq sl, [sp, #20]
36414   movne r3, r3, asl #16
36415   orrne r3, r9, r3
36416   orreq r3, sl, r3, asl #16
36417   orrne r3, r0, r3
36418   orreq r3, r0, r3
36419   strne r3, [r1, #8]
36420   streq r3, [r1, #8]
36421 .L11914:
36422   movs  r0, r2, lsr #24
36423   beq .L11904
36424   ldr r2, [r1, #12]
36425   tst r2, #256
36426   ldrne fp, [sp, #20]
36427   ldreq r5, [sp, #20]
36428   movne r3, r2, lsr #16
36429   movne r3, r3, asl #16
36430   orreq r3, r5, r0
36431   orrne r2, fp, r0
36432   orrne r3, r3, r2
36433   orreq r3, r3, r2, asl #16
36434   strne r3, [r1, #12]
36435   streq r3, [r1, #12]
36436 .L11904:
36437   ldr r2, [r4, #4]
36438   cmp r2, #0
36439   beq .L11921
36440   ands  r0, r2, #255
36441   beq .L11923
36442   ldr r3, [r1, #16]
36443   tst r3, #256
36444   movne r3, r3, lsr #16
36445   ldrne r6, [sp, #20]
36446   ldreq r7, [sp, #20]
36447   movne r3, r3, asl #16
36448   orrne r3, r6, r3
36449   orreq r3, r7, r3, asl #16
36450   orrne r3, r0, r3
36451   orreq r3, r0, r3
36452   strne r3, [r1, #16]
36453   streq r3, [r1, #16]
36454 .L11923:
36455   mov r3, r2, lsr #8
36456   ands  r0, r3, #255
36457   beq .L11927
36458   ldr r3, [r1, #20]
36459   tst r3, #256
36460   movne r3, r3, lsr #16
36461   ldrne r8, [sp, #20]
36462   ldreq r9, [sp, #20]
36463   movne r3, r3, asl #16
36464   orrne r3, r8, r3
36465   orreq r3, r9, r3, asl #16
36466   orrne r3, r0, r3
36467   orreq r3, r0, r3
36468   strne r3, [r1, #20]
36469   streq r3, [r1, #20]
36470 .L11927:
36471   mov r3, r2, lsr #16
36472   ands  r0, r3, #255
36473   beq .L11931
36474   ldr r3, [r1, #24]
36475   tst r3, #256
36476   movne r3, r3, lsr #16
36477   ldrne sl, [sp, #20]
36478   ldreq fp, [sp, #20]
36479   movne r3, r3, asl #16
36480   orrne r3, sl, r3
36481   orreq r3, fp, r3, asl #16
36482   orrne r3, r0, r3
36483   orreq r3, r0, r3
36484   strne r3, [r1, #24]
36485   streq r3, [r1, #24]
36486 .L11931:
36487   movs  r2, r2, lsr #24
36488   beq .L11921
36489   ldr r3, [r1, #28]
36490   tst r3, #256
36491   movne r3, r3, lsr #16
36492   ldrne r0, [sp, #20]
36493   ldreq r5, [sp, #20]
36494   movne r3, r3, asl #16
36495   orrne r3, r0, r3
36496   orreq r3, r5, r3, asl #16
36497   orrne r3, r2, r3
36498   orreq r3, r2, r3
36499   strne r3, [r1, #28]
36500   streq r3, [r1, #28]
36501 .L11921:
36502   add ip, ip, #1
36503   cmp ip, lr
36504   bne .L12424
36505   b .L11219
36506 .L11508:
36507   ands  r2, lr, #7
36508   mov r3, lr, lsr #3
36509   sub ip, r0, r3, asl #5
36510   ldreq r0, [sp, #68]
36511   beq .L11579
36512   rsbs  r6, r2, #8
36513   ldr r1, [ip, #0]
36514   ldreq r0, [sp, #68]
36515   beq .L11582
36516   mov r3, r2, asl #2
36517   mov lr, r1, asl r3
36518   ldr r4, [sp, #68]
36519   mov r5, #0
36520 .L11583:
36521   movs  r3, lr, lsr #28
36522   beq .L11584
36523   ldr r1, [r4, #0]
36524   ldr fp, [sp, #20]
36525   orr r2, r8, r3
36526   mov r3, r1, lsr #16
36527   orr r0, fp, r2
36528   mov r3, r3, asl #16
36529   orr r2, fp, r2
36530   tst r1, #256
36531   orr r3, r3, r0
36532   orr r2, r2, r1, asl #16
36533   strne r3, [r4, #0]
36534   streq r2, [r4, #0]
36535 .L11584:
36536   add r5, r5, #1
36537   cmp r5, r6
36538   mov lr, lr, asl #4
36539   add r4, r4, #4
36540   bne .L11583
36541   ldr lr, [sp, #68]
36542   add r0, lr, r6, asl #2
36543 .L11582:
36544   sub ip, ip, #32
36545 .L11579:
36546   movs  r5, sl, lsr #3
36547   beq .L11219
36548   mov r4, #0
36549   b .L11591
36550 .L12437:
36551   .align  2
36552 .L12436:
36553   .word vram+65600
36554   .word vram+65472
36555 .L12425:
36556   sub ip, ip, #32
36557   add r0, r0, #32
36558 .L11591:
36559   ldr r1, [ip, #0]
36560   cmp r1, #0
36561   beq .L11592
36562   ands  r3, r1, #15
36563   beq .L11594
36564   ldr r2, [r0, #28]
36565   orr lr, r8, r3
36566   tst r2, #256
36567   ldrne r6, [sp, #20]
36568   ldreq r7, [sp, #20]
36569   movne r3, r2, lsr #16
36570   movne r3, r3, asl #16
36571   orreq r3, r7, lr
36572   orrne r2, r6, lr
36573   orrne r3, r3, r2
36574   orreq r3, r3, r2, asl #16
36575   strne r3, [r0, #28]
36576   streq r3, [r0, #28]
36577 .L11594:
36578   mov r3, r1, lsr #4
36579   ands  r3, r3, #15
36580   beq .L11598
36581   ldr r2, [r0, #24]
36582   orr lr, r8, r3
36583   tst r2, #256
36584   ldrne r9, [sp, #20]
36585   ldreq sl, [sp, #20]
36586   movne r3, r2, lsr #16
36587   movne r3, r3, asl #16
36588   orreq r3, sl, lr
36589   orrne r2, r9, lr
36590   orrne r3, r3, r2
36591   orreq r3, r3, r2, asl #16
36592   strne r3, [r0, #24]
36593   streq r3, [r0, #24]
36594 .L11598:
36595   mov r3, r1, lsr #8
36596   ands  r3, r3, #15
36597   beq .L11602
36598   ldr r2, [r0, #20]
36599   orr lr, r8, r3
36600   tst r2, #256
36601   ldrne fp, [sp, #20]
36602   ldreq r6, [sp, #20]
36603   movne r3, r2, lsr #16
36604   movne r3, r3, asl #16
36605   orreq r3, r6, lr
36606   orrne r2, fp, lr
36607   orrne r3, r3, r2
36608   orreq r3, r3, r2, asl #16
36609   strne r3, [r0, #20]
36610   streq r3, [r0, #20]
36611 .L11602:
36612   mov r3, r1, lsr #12
36613   ands  r3, r3, #15
36614   beq .L11606
36615   ldr r2, [r0, #16]
36616   orr lr, r8, r3
36617   tst r2, #256
36618   ldrne r7, [sp, #20]
36619   ldreq r9, [sp, #20]
36620   movne r3, r2, lsr #16
36621   movne r3, r3, asl #16
36622   orreq r3, r9, lr
36623   orrne r2, r7, lr
36624   orrne r3, r3, r2
36625   orreq r3, r3, r2, asl #16
36626   strne r3, [r0, #16]
36627   streq r3, [r0, #16]
36628 .L11606:
36629   mov r3, r1, lsr #16
36630   ands  r3, r3, #15
36631   beq .L11610
36632   ldr r2, [r0, #12]
36633   orr lr, r8, r3
36634   tst r2, #256
36635   ldrne sl, [sp, #20]
36636   ldreq fp, [sp, #20]
36637   movne r3, r2, lsr #16
36638   movne r3, r3, asl #16
36639   orreq r3, fp, lr
36640   orrne r2, sl, lr
36641   orrne r3, r3, r2
36642   orreq r3, r3, r2, asl #16
36643   strne r3, [r0, #12]
36644   streq r3, [r0, #12]
36645 .L11610:
36646   mov r3, r1, lsr #20
36647   ands  r3, r3, #15
36648   beq .L11614
36649   ldr r2, [r0, #8]
36650   orr lr, r8, r3
36651   tst r2, #256
36652   ldrne r6, [sp, #20]
36653   ldreq r7, [sp, #20]
36654   movne r3, r2, lsr #16
36655   movne r3, r3, asl #16
36656   orreq r3, r7, lr
36657   orrne r2, r6, lr
36658   orrne r3, r3, r2
36659   orreq r3, r3, r2, asl #16
36660   strne r3, [r0, #8]
36661   streq r3, [r0, #8]
36662 .L11614:
36663   mov r3, r1, lsr #24
36664   ands  r3, r3, #15
36665   beq .L11618
36666   ldr r2, [r0, #4]
36667   orr lr, r8, r3
36668   tst r2, #256
36669   ldrne r9, [sp, #20]
36670   ldreq sl, [sp, #20]
36671   movne r3, r2, lsr #16
36672   movne r3, r3, asl #16
36673   orreq r3, sl, lr
36674   orrne r2, r9, lr
36675   orrne r3, r3, r2
36676   orreq r3, r3, r2, asl #16
36677   strne r3, [r0, #4]
36678   streq r3, [r0, #4]
36679 .L11618:
36680   movs  r3, r1, lsr #28
36681   beq .L11592
36682   ldr r2, [r0, #0]
36683   orr r1, r8, r3
36684   tst r2, #256
36685   ldrne fp, [sp, #20]
36686   ldreq lr, [sp, #20]
36687   movne r3, r2, lsr #16
36688   movne r3, r3, asl #16
36689   orreq r3, lr, r1
36690   orrne r2, fp, r1
36691   orrne r3, r3, r2
36692   orreq r3, r3, r2, asl #16
36693   strne r3, [r0, #0]
36694   streq r3, [r0, #0]
36695 .L11592:
36696   add r4, r4, #1
36697   cmp r5, r4
36698   bne .L12425
36699   b .L11219
36700 .L11304:
36701   mov r3, lr, lsr #3
36702   mov r1, r3, asl #5
36703   ands  r3, lr, #7
36704   add r6, r0, r1
36705   ldreq r0, [sp, #68]
36706   beq .L11375
36707   rsbs  r7, r3, #8
36708   ldr r0, [r0, r1]
36709   ldreq r0, [sp, #68]
36710   beq .L11378
36711   mov r3, r3, asl #2
36712   mov ip, r0, lsr r3
36713   ldr lr, [sp, #68]
36714   mov r4, #0
36715 .L11379:
36716   ands  r3, ip, #15
36717   beq .L11380
36718   ldr r1, [lr, #0]
36719   ldr fp, [sp, #20]
36720   orr r2, r8, r3
36721   mov r3, r1, lsr #16
36722   orr r0, fp, r2
36723   mov r3, r3, asl #16
36724   orr r2, fp, r2
36725   tst r1, #256
36726   orr r3, r3, r0
36727   orr r2, r2, r1, asl #16
36728   strne r3, [lr, #0]
36729   streq r2, [lr, #0]
36730 .L11380:
36731   add r4, r4, #1
36732   cmp r7, r4
36733   mov ip, ip, lsr #4
36734   add lr, lr, #4
36735   bne .L11379
36736   ldr ip, [sp, #68]
36737   add r0, ip, r7, asl #2
36738 .L11378:
36739   add r6, r6, #32
36740 .L11375:
36741   movs  r4, r5, lsr #3
36742   beq .L11219
36743   mov lr, #0
36744   b .L11387
36745 .L12426:
36746   add r6, r6, #32
36747   add r0, r0, #32
36748 .L11387:
36749   ldr r1, [r6, #0]
36750   cmp r1, #0
36751   beq .L11388
36752   ands  r3, r1, #15
36753   beq .L11390
36754   ldr r2, [r0, #0]
36755   orr ip, r8, r3
36756   tst r2, #256
36757   ldrne r5, [sp, #20]
36758   ldreq r7, [sp, #20]
36759   movne r3, r2, lsr #16
36760   movne r3, r3, asl #16
36761   orreq r3, r7, ip
36762   orrne r2, r5, ip
36763   orrne r3, r3, r2
36764   orreq r3, r3, r2, asl #16
36765   strne r3, [r0, #0]
36766   streq r3, [r0, #0]
36767 .L11390:
36768   mov r3, r1, lsr #4
36769   ands  r3, r3, #15
36770   beq .L11394
36771   ldr r2, [r0, #4]
36772   orr ip, r8, r3
36773   tst r2, #256
36774   ldrne r9, [sp, #20]
36775   ldreq sl, [sp, #20]
36776   movne r3, r2, lsr #16
36777   movne r3, r3, asl #16
36778   orreq r3, sl, ip
36779   orrne r2, r9, ip
36780   orrne r3, r3, r2
36781   orreq r3, r3, r2, asl #16
36782   strne r3, [r0, #4]
36783   streq r3, [r0, #4]
36784 .L11394:
36785   mov r3, r1, lsr #8
36786   ands  r3, r3, #15
36787   beq .L11398
36788   ldr r2, [r0, #8]
36789   orr ip, r8, r3
36790   tst r2, #256
36791   ldrne fp, [sp, #20]
36792   ldreq r5, [sp, #20]
36793   movne r3, r2, lsr #16
36794   movne r3, r3, asl #16
36795   orreq r3, r5, ip
36796   orrne r2, fp, ip
36797   orrne r3, r3, r2
36798   orreq r3, r3, r2, asl #16
36799   strne r3, [r0, #8]
36800   streq r3, [r0, #8]
36801 .L11398:
36802   mov r3, r1, lsr #12
36803   ands  r3, r3, #15
36804   beq .L11402
36805   ldr r2, [r0, #12]
36806   orr ip, r8, r3
36807   tst r2, #256
36808   ldrne r7, [sp, #20]
36809   ldreq r9, [sp, #20]
36810   movne r3, r2, lsr #16
36811   movne r3, r3, asl #16
36812   orreq r3, r9, ip
36813   orrne r2, r7, ip
36814   orrne r3, r3, r2
36815   orreq r3, r3, r2, asl #16
36816   strne r3, [r0, #12]
36817   streq r3, [r0, #12]
36818 .L11402:
36819   mov r3, r1, lsr #16
36820   ands  r3, r3, #15
36821   beq .L11406
36822   ldr r2, [r0, #16]
36823   orr ip, r8, r3
36824   tst r2, #256
36825   ldrne sl, [sp, #20]
36826   ldreq fp, [sp, #20]
36827   movne r3, r2, lsr #16
36828   movne r3, r3, asl #16
36829   orreq r3, fp, ip
36830   orrne r2, sl, ip
36831   orrne r3, r3, r2
36832   orreq r3, r3, r2, asl #16
36833   strne r3, [r0, #16]
36834   streq r3, [r0, #16]
36835 .L11406:
36836   mov r3, r1, lsr #20
36837   ands  r3, r3, #15
36838   beq .L11410
36839   ldr r2, [r0, #20]
36840   orr ip, r8, r3
36841   tst r2, #256
36842   ldrne r5, [sp, #20]
36843   ldreq r7, [sp, #20]
36844   movne r3, r2, lsr #16
36845   movne r3, r3, asl #16
36846   orreq r3, r7, ip
36847   orrne r2, r5, ip
36848   orrne r3, r3, r2
36849   orreq r3, r3, r2, asl #16
36850   strne r3, [r0, #20]
36851   streq r3, [r0, #20]
36852 .L11410:
36853   mov r3, r1, lsr #24
36854   ands  r3, r3, #15
36855   beq .L11414
36856   ldr r2, [r0, #24]
36857   orr ip, r8, r3
36858   tst r2, #256
36859   ldrne r9, [sp, #20]
36860   ldreq sl, [sp, #20]
36861   movne r3, r2, lsr #16
36862   movne r3, r3, asl #16
36863   orreq r3, sl, ip
36864   orrne r2, r9, ip
36865   orrne r3, r3, r2
36866   orreq r3, r3, r2, asl #16
36867   strne r3, [r0, #24]
36868   streq r3, [r0, #24]
36869 .L11414:
36870   movs  r3, r1, lsr #28
36871   beq .L11388
36872   ldr r2, [r0, #28]
36873   orr r1, r8, r3
36874   tst r2, #256
36875   ldrne fp, [sp, #20]
36876   ldreq ip, [sp, #20]
36877   movne r3, r2, lsr #16
36878   movne r3, r3, asl #16
36879   orreq r3, ip, r1
36880   orrne r2, fp, r1
36881   orrne r3, r3, r2
36882   orreq r3, r3, r2, asl #16
36883   strne r3, [r0, #28]
36884   streq r3, [r0, #28]
36885 .L11388:
36886   add lr, lr, #1
36887   cmp r4, lr
36888   bne .L12426
36889   b .L11219
36890 .L11268:
36891   mov r1, r2
36892   b .L12397
36893 .L11510:
36894   ldr lr, [sp, #92]
36895   rsb r6, r4, #8
36896   cmp lr, r6
36897   blt .L12427
36898   cmp r6, #0
36899   ldr r2, [ip, #0]
36900   ldreq r5, [sp, #68]
36901   beq .L11525
36902   mov r3, r4, asl #2
36903   mov lr, r2, asl r3
36904   ldr r4, [sp, #68]
36905   mov r5, #0
36906 .L11526:
36907   movs  r3, lr, lsr #28
36908   beq .L11527
36909   ldr r1, [r4, #0]
36910   ldr r7, [sp, #20]
36911   orr r2, r8, r3
36912   mov r3, r1, lsr #16
36913   orr r0, r7, r2
36914   mov r3, r3, asl #16
36915   orr r2, r7, r2
36916   tst r1, #256
36917   orr r3, r3, r0
36918   orr r2, r2, r1, asl #16
36919   strne r3, [r4, #0]
36920   streq r2, [r4, #0]
36921 .L11527:
36922   add r5, r5, #1
36923   cmp r6, r5
36924   mov lr, lr, asl #4
36925   add r4, r4, #4
36926   bne .L11526
36927   ldr r9, [sp, #68]
36928   add r5, r9, r6, asl #2
36929 .L11525:
36930   ldr fp, [sp, #92]
36931   sub ip, ip, #32
36932   rsb sl, r6, fp
36933   b .L11512
36934 .L12050:
36935   ldr r0, [sp, #92]
36936   rsb r5, lr, #8
36937   cmp r0, r5
36938   blt .L12428
36939   cmp lr, #3
36940   bls .L12091
36941   cmp r5, #0
36942   ldr r2, [r8, #0]
36943   ldreq r4, [sp, #68]
36944   beq .L12095
36945   mov r3, lr, asl #3
36946   sub r3, r3, #32
36947   mov ip, r2, asl r3
36948   ldr lr, [sp, #68]
36949   mov r4, #0
36950 .L12096:
36951   movs  r3, ip, lsr #24
36952   beq .L12097
36953   ldr r2, [lr, #0]
36954   ldr r7, [sp, #20]
36955   tst r2, #256
36956   orr r1, r7, r3
36957   orr r0, r7, r3
36958   mov r3, r2, lsr #16
36959   mov r3, r3, asl #16
36960   orr r3, r3, r1
36961   orr r1, r0, r2, asl #16
36962   strne r3, [lr, #0]
36963   streq r1, [lr, #0]
36964 .L12097:
36965   add r4, r4, #1
36966   cmp r5, r4
36967   mov ip, ip, asl #8
36968   add lr, lr, #4
36969   bne .L12096
36970   ldr sl, [sp, #68]
36971   add r4, sl, r5, asl #2
36972 .L12095:
36973   ldr ip, [sp, #92]
36974   sub r8, r8, #64
36975   rsb r7, r5, ip
36976   b .L12052
36977 .L11714:
36978   ldr sl, [sp, #92]
36979   rsb r5, lr, #8
36980   cmp sl, r5
36981   blt .L12429
36982   cmp lr, #3
36983   bls .L11755
36984   cmp r5, #0
36985   ldr r2, [r7, #4]
36986   ldreq r4, [sp, #68]
36987   beq .L11759
36988   mov r3, lr, asl #3
36989   sub r3, r3, #32
36990   mov ip, r2, lsr r3
36991   ldr lr, [sp, #68]
36992   mov r4, #0
36993 .L11760:
36994   ands  r3, ip, #255
36995   beq .L11761
36996   ldr r2, [lr, #0]
36997   ldr r6, [sp, #20]
36998   tst r2, #256
36999   orr r1, r6, r3
37000   orr r0, r6, r3
37001   mov r3, r2, lsr #16
37002   mov r3, r3, asl #16
37003   orr r3, r3, r1
37004   orr r1, r0, r2, asl #16
37005   strne r3, [lr, #0]
37006   streq r1, [lr, #0]
37007 .L11761:
37008   add r4, r4, #1
37009   cmp r5, r4
37010   mov ip, ip, lsr #8
37011   add lr, lr, #4
37012   bne .L11760
37013   ldr r9, [sp, #68]
37014   add r4, r9, r5, asl #2
37015 .L11759:
37016   ldr fp, [sp, #92]
37017   add r7, r7, #64
37018   rsb r6, r5, fp
37019   b .L11716
37020 .L11306:
37021   ldr fp, [sp, #92]
37022   rsb r5, r3, #8
37023   cmp fp, r5
37024   blt .L12430
37025   cmp r5, #0
37026   ldr r2, [r6, #0]
37027   ldreq r4, [sp, #68]
37028   beq .L11321
37029   mov r3, r3, asl #2
37030   mov ip, r2, lsr r3
37031   ldr lr, [sp, #68]
37032   mov r4, #0
37033 .L11322:
37034   ands  r3, ip, #15
37035   beq .L11323
37036   ldr r1, [lr, #0]
37037   ldr r7, [sp, #20]
37038   orr r2, r8, r3
37039   mov r3, r1, lsr #16
37040   orr r0, r7, r2
37041   mov r3, r3, asl #16
37042   orr r2, r7, r2
37043   tst r1, #256
37044   orr r3, r3, r0
37045   orr r2, r2, r1, asl #16
37046   strne r3, [lr, #0]
37047   streq r2, [lr, #0]
37048 .L11323:
37049   add r4, r4, #1
37050   cmp r5, r4
37051   mov ip, ip, lsr #4
37052   add lr, lr, #4
37053   bne .L11322
37054   ldr r9, [sp, #68]
37055   add r4, r9, r5, asl #2
37056 .L11321:
37057   ldr fp, [sp, #92]
37058   add r6, r6, #32
37059   rsb sl, r5, fp
37060   b .L11308
37061 .L12423:
37062   cmp r6, #0
37063   ldr r1, [r4, #4]
37064   ldreq r1, [sp, #68]
37065   beq .L11867
37066   mov r3, r2, asl #3
37067   sub r3, r3, #32
37068   mov ip, r1, lsr r3
37069   ldr lr, [sp, #68]
37070   mov r5, #0
37071 .L11868:
37072   ands  r3, ip, #255
37073   beq .L11869
37074   ldr r2, [lr, #0]
37075   ldr r7, [sp, #20]
37076   tst r2, #256
37077   orr r1, r7, r3
37078   orr r0, r7, r3
37079   mov r3, r2, lsr #16
37080   mov r3, r3, asl #16
37081   orr r3, r3, r1
37082   orr r1, r0, r2, asl #16
37083   strne r3, [lr, #0]
37084   streq r1, [lr, #0]
37085 .L11869:
37086   add r5, r5, #1
37087   cmp r5, r6
37088   mov ip, ip, lsr #8
37089   add lr, lr, #4
37090   bne .L11868
37091   ldr sl, [sp, #68]
37092   add r4, r4, #64
37093   add r1, sl, r6, asl #2
37094   b .L11862
37095 .L12430:
37096   cmp fp, #0
37097   ble .L11219
37098   ldr r2, [r0, r1]
37099   mov r3, r3, asl #2
37100   mov ip, r2, lsr r3
37101   ldr lr, [sp, #68]
37102   mov r4, #0
37103 .L11313:
37104   ands  r3, ip, #15
37105   beq .L11314
37106   ldr r1, [lr, #0]
37107   orr r2, r8, r3
37108   ldr r3, [sp, #20]
37109   ldr r5, [sp, #20]
37110   orr r0, r3, r2
37111   mov r3, r1, lsr #16
37112   mov r3, r3, asl #16
37113   orr r2, r5, r2
37114   tst r1, #256
37115   orr r3, r3, r0
37116   orr r2, r2, r1, asl #16
37117   strne r3, [lr, #0]
37118   streq r2, [lr, #0]
37119 .L11314:
37120   ldr r6, [sp, #92]
37121   add r4, r4, #1
37122   cmp r6, r4
37123   mov ip, ip, lsr #4
37124   add lr, lr, #4
37125   bne .L11313
37126   b .L11219
37127 .L12421:
37128   cmp r6, #0
37129   ldr r1, [r4, #0]
37130   ldreq r0, [sp, #68]
37131   beq .L12203
37132   mov r3, r2, asl #3
37133   sub r3, r3, #32
37134   mov ip, r1, asl r3
37135   ldr lr, [sp, #68]
37136   mov r5, #0
37137 .L12204:
37138   movs  r3, ip, lsr #24
37139   beq .L12205
37140   ldr r2, [lr, #0]
37141   ldr r7, [sp, #20]
37142   tst r2, #256
37143   orr r1, r7, r3
37144   orr r0, r7, r3
37145   mov r3, r2, lsr #16
37146   mov r3, r3, asl #16
37147   orr r3, r3, r1
37148   orr r1, r0, r2, asl #16
37149   strne r3, [lr, #0]
37150   streq r1, [lr, #0]
37151 .L12205:
37152   add r5, r5, #1
37153   cmp r5, r6
37154   mov ip, ip, asl #8
37155   add lr, lr, #4
37156   bne .L12204
37157   ldr sl, [sp, #68]
37158   sub r4, r4, #64
37159   add r0, sl, r6, asl #2
37160   b .L12198
37161 .L12428:
37162   cmp r0, #0
37163   ble .L11219
37164   cmp lr, #3
37165   bls .L12056
37166   mov r3, lr, asl #3
37167   ldr r2, [r8, #0]
37168   sub r3, r3, #32
37169   mov ip, r2, asl r3
37170   ldr lr, [sp, #68]
37171   mov r4, #0
37172 .L12059:
37173   movs  r3, ip, lsr #24
37174   beq .L12060
37175   ldr r2, [lr, #0]
37176   ldr r5, [sp, #20]
37177   tst r2, #256
37178   orr r1, r5, r3
37179   orr r0, r5, r3
37180   mov r3, r2, lsr #16
37181   mov r3, r3, asl #16
37182   orr r3, r3, r1
37183   orr r1, r0, r2, asl #16
37184   strne r3, [lr, #0]
37185   streq r1, [lr, #0]
37186 .L12060:
37187   ldr r6, [sp, #92]
37188   add r4, r4, #1
37189   cmp r6, r4
37190   mov ip, ip, asl #8
37191   add lr, lr, #4
37192   bne .L12059
37193   b .L11219
37194 .L12429:
37195   cmp sl, #0
37196   ble .L11219
37197   cmp lr, #3
37198   bls .L11720
37199   mov r3, lr, asl #3
37200   ldr r2, [r7, #4]
37201   sub r3, r3, #32
37202   mov ip, r2, lsr r3
37203   ldr lr, [sp, #68]
37204   mov r4, #0
37205 .L11723:
37206   ands  r3, ip, #255
37207   beq .L11724
37208   ldr r2, [lr, #0]
37209   ldr fp, [sp, #20]
37210   tst r2, #256
37211   orr r1, fp, r3
37212   orr r0, fp, r3
37213   mov r3, r2, lsr #16
37214   mov r3, r3, asl #16
37215   orr r3, r3, r1
37216   orr r1, r0, r2, asl #16
37217   strne r3, [lr, #0]
37218   streq r1, [lr, #0]
37219 .L11724:
37220   ldr r0, [sp, #92]
37221   add r4, r4, #1
37222   cmp r0, r4
37223   mov ip, ip, lsr #8
37224   add lr, lr, #4
37225   bne .L11723
37226   b .L11219
37227 .L12427:
37228   cmp lr, #0
37229   ble .L11219
37230   ldr r2, [ip, #0]
37231   mov r3, r4, asl #2
37232   mov ip, r2, asl r3
37233   ldr lr, [sp, #68]
37234   mov r4, #0
37235 .L11517:
37236   movs  r3, ip, lsr #28
37237   beq .L11518
37238   ldr r1, [lr, #0]
37239   orr r2, r8, r3
37240   ldr r3, [sp, #20]
37241   ldr r5, [sp, #20]
37242   orr r0, r3, r2
37243   mov r3, r1, lsr #16
37244   mov r3, r3, asl #16
37245   orr r2, r5, r2
37246   tst r1, #256
37247   orr r3, r3, r0
37248   orr r2, r2, r1, asl #16
37249   strne r3, [lr, #0]
37250   streq r2, [lr, #0]
37251 .L11518:
37252   ldr r6, [sp, #92]
37253   add r4, r4, #1
37254   cmp r6, r4
37255   mov ip, ip, asl #4
37256   add lr, lr, #4
37257   bne .L11517
37258   b .L11219
37259 .L12433:
37260   mov r8, #0
37261   b .L11284
37262 .L12432:
37263   mov r4, #0
37264   b .L11244
37265 .L12091:
37266   subs  r6, r5, #4
37267   ldr r2, [r8, #4]
37268   ldreq r2, [sp, #68]
37269   beq .L12105
37270   mov r3, lr, asl #3
37271   sub r3, r3, #32
37272   mov ip, r2, asl r3
37273   ldr lr, [sp, #68]
37274   mov r4, #0
37275 .L12106:
37276   movs  r3, ip, lsr #24
37277   beq .L12107
37278   ldr r2, [lr, #0]
37279   ldr r9, [sp, #20]
37280   tst r2, #256
37281   orr r1, r9, r3
37282   orr r0, r9, r3
37283   mov r3, r2, lsr #16
37284   mov r3, r3, asl #16
37285   orr r3, r3, r1
37286   orr r1, r0, r2, asl #16
37287   strne r3, [lr, #0]
37288   streq r1, [lr, #0]
37289 .L12107:
37290   add r4, r4, #1
37291   cmp r4, r6
37292   mov ip, ip, asl #8
37293   add lr, lr, #4
37294   bne .L12106
37295   ldr sl, [sp, #68]
37296   add r3, sl, r5, asl #2
37297   sub r2, r3, #16
37298 .L12105:
37299   ldr r1, [r8, #0]
37300   cmp r1, #0
37301   beq .L12113
37302   ands  r0, r1, #255
37303   beq .L12115
37304   ldr r3, [r2, #12]
37305   tst r3, #256
37306   movne r3, r3, lsr #16
37307   ldrne fp, [sp, #20]
37308   ldreq ip, [sp, #20]
37309   movne r3, r3, asl #16
37310   orrne r3, fp, r3
37311   orreq r3, ip, r3, asl #16
37312   orrne r3, r0, r3
37313   orreq r3, r0, r3
37314   strne r3, [r2, #12]
37315   streq r3, [r2, #12]
37316 .L12115:
37317   mov r3, r1, lsr #8
37318   ands  r0, r3, #255
37319   beq .L12119
37320   ldr r3, [r2, #8]
37321   tst r3, #256
37322   movne r3, r3, lsr #16
37323   ldrne lr, [sp, #20]
37324   ldreq r4, [sp, #20]
37325   movne r3, r3, asl #16
37326   orrne r3, lr, r3
37327   orreq r3, r4, r3, asl #16
37328   orrne r3, r0, r3
37329   orreq r3, r0, r3
37330   strne r3, [r2, #8]
37331   streq r3, [r2, #8]
37332 .L12119:
37333   mov r3, r1, lsr #16
37334   ands  r0, r3, #255
37335   beq .L12123
37336   ldr r3, [r2, #4]
37337   tst r3, #256
37338   movne r3, r3, lsr #16
37339   ldrne r6, [sp, #20]
37340   ldreq r7, [sp, #20]
37341   movne r3, r3, asl #16
37342   orrne r3, r6, r3
37343   orreq r3, r7, r3, asl #16
37344   orrne r3, r0, r3
37345   orreq r3, r0, r3
37346   strne r3, [r2, #4]
37347   streq r3, [r2, #4]
37348 .L12123:
37349   movs  r1, r1, lsr #24
37350   beq .L12113
37351   ldr r3, [r2, #0]
37352   tst r3, #256
37353   beq .L12128
37354   mov r3, r3, lsr #16
37355   ldr r9, [sp, #20]
37356   mov r3, r3, asl #16
37357   orr r3, r9, r3
37358   orr r3, r1, r3
37359   str r3, [r2, #0]
37360 .L12113:
37361   add r4, r2, #16
37362   b .L12095
37363 .L11755:
37364   subs  r6, r5, #4
37365   ldr r2, [r7, #0]
37366   ldreq r2, [sp, #68]
37367   beq .L11769
37368   mov r3, lr, asl #3
37369   mov ip, r2, lsr r3
37370   ldr lr, [sp, #68]
37371   mov r4, #0
37372 .L11770:
37373   ands  r3, ip, #255
37374   beq .L11771
37375   ldr r2, [lr, #0]
37376   ldr r8, [sp, #20]
37377   tst r2, #256
37378   orr r1, r8, r3
37379   orr r0, r8, r3
37380   mov r3, r2, lsr #16
37381   mov r3, r3, asl #16
37382   orr r3, r3, r1
37383   orr r1, r0, r2, asl #16
37384   strne r3, [lr, #0]
37385   streq r1, [lr, #0]
37386 .L11771:
37387   add r4, r4, #1
37388   cmp r6, r4
37389   mov ip, ip, lsr #8
37390   add lr, lr, #4
37391   bne .L11770
37392   ldr r9, [sp, #68]
37393   add r3, r9, r5, asl #2
37394   sub r2, r3, #16
37395 .L11769:
37396   ldr r1, [r7, #4]
37397   cmp r1, #0
37398   beq .L11777
37399   ands  r0, r1, #255
37400   beq .L11779
37401   ldr r3, [r2, #0]
37402   tst r3, #256
37403   movne r3, r3, lsr #16
37404   ldrne sl, [sp, #20]
37405   ldreq fp, [sp, #20]
37406   movne r3, r3, asl #16
37407   orrne r3, sl, r3
37408   orreq r3, fp, r3, asl #16
37409   orrne r3, r0, r3
37410   orreq r3, r0, r3
37411   strne r3, [r2, #0]
37412   streq r3, [r2, #0]
37413 .L11779:
37414   mov r3, r1, lsr #8
37415   ands  r0, r3, #255
37416   beq .L11783
37417   ldr r3, [r2, #4]
37418   tst r3, #256
37419   movne r3, r3, lsr #16
37420   ldrne ip, [sp, #20]
37421   ldreq lr, [sp, #20]
37422   movne r3, r3, asl #16
37423   orrne r3, ip, r3
37424   orreq r3, lr, r3, asl #16
37425   orrne r3, r0, r3
37426   orreq r3, r0, r3
37427   strne r3, [r2, #4]
37428   streq r3, [r2, #4]
37429 .L11783:
37430   mov r3, r1, lsr #16
37431   ands  r0, r3, #255
37432   beq .L11787
37433   ldr r3, [r2, #8]
37434   tst r3, #256
37435   movne r3, r3, lsr #16
37436   ldrne r4, [sp, #20]
37437   ldreq r6, [sp, #20]
37438   movne r3, r3, asl #16
37439   orrne r3, r4, r3
37440   orreq r3, r6, r3, asl #16
37441   orrne r3, r0, r3
37442   orreq r3, r0, r3
37443   strne r3, [r2, #8]
37444   streq r3, [r2, #8]
37445 .L11787:
37446   movs  r1, r1, lsr #24
37447   beq .L11777
37448   ldr r3, [r2, #12]
37449   tst r3, #256
37450   beq .L11792
37451   mov r3, r3, lsr #16
37452   ldr r8, [sp, #20]
37453   mov r3, r3, asl #16
37454   orr r3, r8, r3
37455   orr r3, r1, r3
37456   str r3, [r2, #12]
37457 .L11777:
37458   add r4, r2, #16
37459   b .L11759
37460 .L12431:
37461   ldr lr, [sp, #12]
37462   b .L12395
37463 .L12056:
37464   ldr r7, [sp, #92]
37465   mov r3, lr, asl #3
37466   ldr r1, [r8, #4]
37467   add r2, r7, lr
37468   sub r3, r3, #32
37469   cmp r2, #4
37470   mov ip, r1, asl r3
37471   bhi .L12065
37472   cmp r7, #0
37473   ldrne lr, [sp, #68]
37474   movne r4, #0
37475   beq .L11219
37476 .L12085:
37477   movs  r3, ip, lsr #24
37478   beq .L12086
37479   ldr r2, [lr, #0]
37480   ldr r5, [sp, #20]
37481   tst r2, #256
37482   orr r1, r5, r3
37483   orr r0, r5, r3
37484   mov r3, r2, lsr #16
37485   mov r3, r3, asl #16
37486   orr r3, r3, r1
37487   orr r1, r0, r2, asl #16
37488   strne r3, [lr, #0]
37489   streq r1, [lr, #0]
37490 .L12086:
37491   ldr r6, [sp, #92]
37492   add r4, r4, #1
37493   cmp r6, r4
37494   mov ip, ip, asl #8
37495   add lr, lr, #4
37496   bne .L12085
37497   b .L11219
37498 .L11720:
37499   ldr r1, [sp, #92]
37500   ldr r3, [r7, #0]
37501   add r2, r1, lr
37502   cmp r2, #4
37503   mov r1, lr, asl #3
37504   mov ip, r3, lsr r1
37505   bhi .L11729
37506   ldr r2, [sp, #92]
37507   cmp r2, #0
37508   ldrne lr, [sp, #68]
37509   movne r4, #0
37510   beq .L11219
37511 .L11749:
37512   ands  r3, ip, #255
37513   beq .L11750
37514   ldr r2, [lr, #0]
37515   ldr fp, [sp, #20]
37516   tst r2, #256
37517   orr r1, fp, r3
37518   orr r0, fp, r3
37519   mov r3, r2, lsr #16
37520   mov r3, r3, asl #16
37521   orr r3, r3, r1
37522   orr r1, r0, r2, asl #16
37523   strne r3, [lr, #0]
37524   streq r1, [lr, #0]
37525 .L11750:
37526   ldr r0, [sp, #92]
37527   add r4, r4, #1
37528   cmp r0, r4
37529   mov ip, ip, lsr #8
37530   add lr, lr, #4
37531   bne .L11749
37532   b .L11219
37533 .L11729:
37534   rsbs  r5, lr, #4
37535   ldreq lr, [sp, #68]
37536   beq .L11734
37537   ldr lr, [sp, #68]
37538   mov r4, #0
37539 .L11735:
37540   ands  r3, ip, #255
37541   beq .L11736
37542   ldr r2, [lr, #0]
37543   ldr r6, [sp, #20]
37544   tst r2, #256
37545   orr r1, r6, r3
37546   orr r0, r6, r3
37547   mov r3, r2, lsr #16
37548   mov r3, r3, asl #16
37549   orr r3, r3, r1
37550   orr r1, r0, r2, asl #16
37551   strne r3, [lr, #0]
37552   streq r1, [lr, #0]
37553 .L11736:
37554   add r4, r4, #1
37555   cmp r5, r4
37556   mov ip, ip, lsr #8
37557   add lr, lr, #4
37558   bne .L11735
37559   ldr r8, [sp, #68]
37560   add lr, r8, r5, asl #2
37561 .L11734:
37562   ldr r9, [sp, #92]
37563   ldr ip, [r7, #4]
37564   subs  r5, r9, r5
37565   beq .L11219
37566   mov r4, #0
37567 .L11743:
37568   ands  r3, ip, #255
37569   beq .L11744
37570   ldr r2, [lr, #0]
37571   ldr sl, [sp, #20]
37572   tst r2, #256
37573   orr r1, sl, r3
37574   orr r0, sl, r3
37575   mov r3, r2, lsr #16
37576   mov r3, r3, asl #16
37577   orr r3, r3, r1
37578   orr r1, r0, r2, asl #16
37579   strne r3, [lr, #0]
37580   streq r1, [lr, #0]
37581 .L11744:
37582   add r4, r4, #1
37583   cmp r5, r4
37584   mov ip, ip, lsr #8
37585   add lr, lr, #4
37586   bne .L11743
37587   b .L11219
37588 .L12065:
37589   rsbs  r5, lr, #4
37590   ldreq lr, [sp, #68]
37591   beq .L12070
37592   ldr lr, [sp, #68]
37593   mov r4, #0
37594 .L12071:
37595   movs  r3, ip, lsr #24
37596   beq .L12072
37597   ldr r2, [lr, #0]
37598   ldr r9, [sp, #20]
37599   tst r2, #256
37600   orr r1, r9, r3
37601   orr r0, r9, r3
37602   mov r3, r2, lsr #16
37603   mov r3, r3, asl #16
37604   orr r3, r3, r1
37605   orr r1, r0, r2, asl #16
37606   strne r3, [lr, #0]
37607   streq r1, [lr, #0]
37608 .L12072:
37609   add r4, r4, #1
37610   cmp r4, r5
37611   mov ip, ip, asl #8
37612   add lr, lr, #4
37613   bne .L12071
37614   ldr sl, [sp, #68]
37615   add lr, sl, r5, asl #2
37616 .L12070:
37617   ldr fp, [sp, #92]
37618   ldr ip, [r8, #0]
37619   subs  r5, fp, r5
37620   beq .L11219
37621   mov r4, #0
37622 .L12079:
37623   movs  r3, ip, lsr #24
37624   beq .L12080
37625   ldr r2, [lr, #0]
37626   ldr r0, [sp, #20]
37627   tst r2, #256
37628   orr r1, r0, r3
37629   orr r0, r0, r3
37630   mov r3, r2, lsr #16
37631   mov r3, r3, asl #16
37632   orr r3, r3, r1
37633   orr r1, r0, r2, asl #16
37634   strne r3, [lr, #0]
37635   streq r1, [lr, #0]
37636 .L12080:
37637   add r4, r4, #1
37638   cmp r5, r4
37639   mov ip, ip, asl #8
37640   add lr, lr, #4
37641   bne .L12079
37642   b .L11219
37643 .L11900:
37644   ldr fp, [sp, #20]
37645   orr r3, fp, r3, asl #16
37646   orr r3, r2, r3
37647   str r3, [r1, #12]
37648   add r1, r1, #16
37649   b .L11867
37650 .L12236:
37651   ldr fp, [sp, #20]
37652   add r0, r1, #16
37653   orr r3, fp, r3, asl #16
37654   orr r3, r2, r3
37655   str r3, [r1, #0]
37656   b .L12203
37657 .L12128:
37658   ldr fp, [sp, #20]
37659   add r4, r2, #16
37660   orr r3, fp, r3, asl #16
37661   orr r3, r1, r3
37662   str r3, [r2, #0]
37663   b .L12095
37664 .L11792:
37665   ldr sl, [sp, #20]
37666   add r4, r2, #16
37667   orr r3, sl, r3, asl #16
37668   orr r3, r1, r3
37669   str r3, [r2, #12]
37670   b .L11759
37671   .size render_scanline_obj_alpha_obj_1D, .-render_scanline_obj_alpha_obj_1D
37672   .align  2
37673   .global render_scanline_obj_alpha_obj_2D
37674   .type render_scanline_obj_alpha_obj_2D, %function
37675 render_scanline_obj_alpha_obj_2D:
37676   @ args = 0, pretend = 0, frame = 88
37677   @ frame_needed = 0, uses_anonymous_args = 0
37678   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
37679   ldr r5, .L13670
37680   sub sp, sp, #88
37681   ldrh  lr, [r5, #80]
37682   mov r4, r0
37683   mov ip, lr, lsr #11
37684   and ip, ip, #2
37685   mov lr, lr, asl #27
37686   orr ip, ip, lr, lsr #31
37687   mov ip, ip, asl #9
37688   orr ip, ip, #256
37689   tst ip, #512
37690   str r1, [sp, #12]
37691   str ip, [sp, #24]
37692   str r2, [sp, #8]
37693   str r3, [sp, #4]
37694   beq .L13643
37695   ldrh  r5, [r5, #6]
37696   add r3, r0, r0, asl #2
37697   ldr r2, .L13670+4
37698   add r3, r5, r3, asl #5
37699   ldr r2, [r2, r3, asl #2]
37700   str r5, [sp, #32]
37701   str r2, [sp, #36]
37702   cmp r2, #0
37703   ldr r2, .L13670+8
37704   add r3, r2, r3, asl #7
37705   str r3, [sp, #40]
37706   beq .L13617
37707   ldr r1, [sp, #12]
37708   ldmib sp, {r0, r2}  @ phole ldm
37709   mov r3, #0
37710   add r0, r0, r1, asl #2
37711   rsb r2, r1, r2
37712   str r0, [sp, #60]
37713   str r2, [sp, #80]
37714   str r3, [sp, #28]
37715   mov r4, r3
37716 .L12443:
37717   ldr r5, [sp, #40]
37718   ldr r6, .L13670+20
37719   ldrb  r3, [r4, r5]  @ zero_extendqisi2
37720   ldr r7, .L13670+12
37721   mov r3, r3, asl #3
37722   ldrh  lr, [r3, r6]
37723   add r3, r3, r6
37724   ldrh  r1, [r3, #2]
37725   mov r4, lr, lsr #12
37726   and r2, r4, #12
37727   orr r0, r2, r1, lsr #14
37728   and ip, lr, #255
37729   mov r2, r1, asl #23
37730   cmp ip, #160
37731   mov r5, r2, asr #23
37732   ldr r2, .L13670+16
37733   subgt ip, ip, #256
37734   tst lr, #256
37735   ldrh  r9, [r3, #4]
37736   ldr r8, [r7, r0, asl #2]
37737   ldr sl, [r2, r0, asl #2]
37738   beq .L12446
37739   tst lr, #8192
37740   beq .L12448
37741   mov r3, r1, lsr #4
37742   ldr r4, .L13670+20
37743   and r3, r3, #992
37744   add r3, r3, r4
37745   add r2, r8, r8, lsr #31
37746   tst lr, #512
37747   ldrh  r6, [r3, #30]
37748   mov lr, r2, asr #1
37749   add r1, sl, sl, lsr #31
37750   ldr r2, [sp, #12]
37751   mov r4, r1, asr #1
37752   movne r0, lr, asl #1
37753   str r6, [sp, #16]
37754   strne r0, [sp, #44]
37755   moveq r6, r8
37756   streq lr, [sp, #44]
37757   moveq r0, r4
37758   movne r6, r8, asl #1
37759   movne r0, r4, asl #1
37760   cmp r5, r2
37761   ldrh  fp, [r3, #6]
37762   ldrh  r1, [r3, #14]
37763   ldrh  r7, [r3, #22]
37764   bge .L12453
37765   rsb r2, r5, r2
37766   rsb r6, r2, r6
37767   cmp r6, #0
37768   ble .L12455
37769   ldr r3, [sp, #44]
37770   ldr r5, [sp, #12]
37771   rsb r3, r2, r3
37772   str r3, [sp, #44]
37773 .L12453:
37774   ldr r2, [sp, #8]
37775   add r3, r5, r6
37776   cmp r3, r2
37777   blt .L12457
37778   rsb r6, r5, r2
37779   cmp r6, #0
37780   ble .L12455
37781 .L12457:
37782   add r0, ip, r0
37783   ldr ip, [sp, #16]
37784   mov r2, r1, asl #16
37785   mov r3, fp, asl #16
37786   mov r1, ip, asl #16
37787   mov fp, r3, asr #16
37788   mov ip, r2, asr #16
37789   ldr r3, [sp, #32]
37790   ldr r2, [sp, #4]
37791   mov lr, lr, asl #8
37792   cmp r7, #0
37793   str lr, [sp, #72]
37794   mov r1, r1, asr #16
37795   mov lr, r4, asl #8
37796   add r5, r2, r5, asl #2
37797   rsb r0, r0, r3
37798   bne .L12459
37799   mla r3, r0, r1, lr
37800   mov r1, r3, asr #8
37801   cmp r1, sl
37802   bcs .L12455
37803   mov r3, r9, asl #22
37804   mov r2, r1, lsr #3
37805   mov r3, r3, lsr #22
37806   add r3, r3, r2, asl #5
37807   and r1, r1, #7
37808   add r1, r1, r3, asl #2
37809   ldr r3, .L13670+24
37810   cmp r6, #0
37811   add sl, r3, r1, asl #3
37812   ble .L12455
37813   ldr r2, [sp, #44]
37814   mul r3, r0, ip
37815   mul r2, fp, r2
37816   ldr r4, [sp, #72]
37817   rsb r3, r2, r3
37818   add r0, r4, r3
37819   mov r2, r0, asr #8
37820   cmp r8, r2
37821   movls lr, r7
37822   bls .L12465
37823   b .L13667
37824 .L12466:
37825   cmp r8, r2
37826   bhi .L13631
37827 .L12465:
37828   add lr, lr, #1
37829   add r0, r0, fp
37830   cmp r6, lr
37831   mov r2, r0, asr #8
37832   add r5, r5, #4
37833   bne .L12466
37834 .L12455:
37835   ldr r5, [sp, #28]
37836   ldr r6, [sp, #36]
37837   add r5, r5, #1
37838   cmp r5, r6
37839   str r5, [sp, #28]
37840   beq .L13617
37841   ldr r4, [sp, #28]
37842   b .L12443
37843 .L12446:
37844   ldr r2, [sp, #32]
37845   tst r1, #8192
37846   rsb r0, ip, r2
37847   rsbne r3, r0, sl
37848   subne r0, r3, #1
37849   mov r2, r1, asl #19
37850   and r3, r4, #2
37851   orr r3, r3, r2, lsr #31
37852   cmp r3, #3
37853   ldrls pc, [pc, r3, asl #2]
37854   b .L12455
37855   .p2align 2
37856 .L12536:
37857   .word .L12532
37858   .word .L12533
37859   .word .L12534
37860   .word .L12535
37861 .L12532:
37862   mov r3, r9, asl #22
37863   mov r2, r0, lsr #3
37864   mov r3, r3, lsr #22
37865   add r3, r3, r2, asl #5
37866   and r1, r0, #7
37867   add r1, r1, r3, asl #3
37868   ldr r3, [sp, #12]
37869   mov r2, r9, lsr #8
37870   cmp r5, r3
37871   ldr r3, .L13670+24
37872   and r6, r2, #240
37873   add ip, r3, r1, asl #2
37874   bge .L12537
37875   ldr r4, [sp, #12]
37876   rsb lr, r5, r4
37877   rsb r7, lr, r8
37878   cmp r7, #0
37879   ble .L12455
37880   add r3, r5, r8
37881   ldr r5, [sp, #8]
37882   cmp r5, r3
37883   bhi .L12540
37884   mov r3, lr, lsr #3
37885   mov r0, r3, asl #5
37886   ands  r3, lr, #7
37887   add r7, ip, r0
37888   bne .L12542
37889   ldr sl, [sp, #80]
37890   ldr r4, [sp, #60]
37891 .L12544:
37892   movs  r8, sl, lsr #3
37893   beq .L12565
37894   mov r0, r4
37895   mov lr, r7
37896   mov r5, #0
37897 .L12567:
37898   ldr r1, [lr, #0]
37899   cmp r1, #0
37900   beq .L12568
37901   ands  r3, r1, #15
37902   beq .L12570
37903   ldr r2, [r0, #0]
37904   orr ip, r6, r3
37905   tst r2, #256
37906   ldrne r9, [sp, #24]
37907   ldreq r9, [sp, #24]
37908   movne r3, r2, lsr #16
37909   movne r3, r3, asl #16
37910   orreq r3, r9, ip
37911   orrne r2, r9, ip
37912   orrne r3, r3, r2
37913   orreq r3, r3, r2, asl #16
37914   strne r3, [r0, #0]
37915   streq r3, [r0, #0]
37916 .L12570:
37917   mov r3, r1, lsr #4
37918   ands  r3, r3, #15
37919   beq .L12574
37920   ldr r2, [r0, #4]
37921   orr ip, r6, r3
37922   tst r2, #256
37923   ldrne r9, [sp, #24]
37924   ldreq r9, [sp, #24]
37925   movne r3, r2, lsr #16
37926   movne r3, r3, asl #16
37927   orreq r3, r9, ip
37928   orrne r2, r9, ip
37929   orrne r3, r3, r2
37930   orreq r3, r3, r2, asl #16
37931   strne r3, [r0, #4]
37932   streq r3, [r0, #4]
37933 .L12574:
37934   mov r3, r1, lsr #8
37935   ands  r3, r3, #15
37936   beq .L12578
37937   ldr r2, [r0, #8]
37938   orr ip, r6, r3
37939   tst r2, #256
37940   ldrne r9, [sp, #24]
37941   ldreq r9, [sp, #24]
37942   movne r3, r2, lsr #16
37943   movne r3, r3, asl #16
37944   orreq r3, r9, ip
37945   orrne r2, r9, ip
37946   orrne r3, r3, r2
37947   orreq r3, r3, r2, asl #16
37948   strne r3, [r0, #8]
37949   streq r3, [r0, #8]
37950 .L12578:
37951   mov r3, r1, lsr #12
37952   ands  r3, r3, #15
37953   beq .L12582
37954   ldr r2, [r0, #12]
37955   orr ip, r6, r3
37956   tst r2, #256
37957   ldrne r9, [sp, #24]
37958   ldreq r9, [sp, #24]
37959   movne r3, r2, lsr #16
37960   movne r3, r3, asl #16
37961   orreq r3, r9, ip
37962   orrne r2, r9, ip
37963   orrne r3, r3, r2
37964   orreq r3, r3, r2, asl #16
37965   strne r3, [r0, #12]
37966   streq r3, [r0, #12]
37967 .L12582:
37968   mov r3, r1, lsr #16
37969   ands  r3, r3, #15
37970   beq .L12586
37971   ldr r2, [r0, #16]
37972   orr ip, r6, r3
37973   tst r2, #256
37974   ldrne r9, [sp, #24]
37975   ldreq r9, [sp, #24]
37976   movne r3, r2, lsr #16
37977   movne r3, r3, asl #16
37978   orreq r3, r9, ip
37979   orrne r2, r9, ip
37980   orrne r3, r3, r2
37981   orreq r3, r3, r2, asl #16
37982   strne r3, [r0, #16]
37983   streq r3, [r0, #16]
37984 .L12586:
37985   mov r3, r1, lsr #20
37986   ands  r3, r3, #15
37987   beq .L12590
37988   ldr r2, [r0, #20]
37989   orr ip, r6, r3
37990   tst r2, #256
37991   ldrne r9, [sp, #24]
37992   ldreq r9, [sp, #24]
37993   movne r3, r2, lsr #16
37994   movne r3, r3, asl #16
37995   orreq r3, r9, ip
37996   orrne r2, r9, ip
37997   orrne r3, r3, r2
37998   orreq r3, r3, r2, asl #16
37999   strne r3, [r0, #20]
38000   streq r3, [r0, #20]
38001 .L12590:
38002   mov r3, r1, lsr #24
38003   ands  r3, r3, #15
38004   beq .L12594
38005   ldr r2, [r0, #24]
38006   orr ip, r6, r3
38007   tst r2, #256
38008   ldrne r9, [sp, #24]
38009   ldreq r9, [sp, #24]
38010   movne r3, r2, lsr #16
38011   movne r3, r3, asl #16
38012   orreq r3, r9, ip
38013   orrne r2, r9, ip
38014   orrne r3, r3, r2
38015   orreq r3, r3, r2, asl #16
38016   strne r3, [r0, #24]
38017   streq r3, [r0, #24]
38018 .L12594:
38019   movs  r3, r1, lsr #28
38020   beq .L12568
38021   ldr r2, [r0, #28]
38022   orr r1, r6, r3
38023   tst r2, #256
38024   ldrne ip, [sp, #24]
38025   ldreq r9, [sp, #24]
38026   movne r3, r2, lsr #16
38027   movne r3, r3, asl #16
38028   orreq r3, r9, r1
38029   orrne r2, ip, r1
38030   orrne r3, r3, r2
38031   orreq r3, r3, r2, asl #16
38032   strne r3, [r0, #28]
38033   streq r3, [r0, #28]
38034 .L12568:
38035   add r5, r5, #1
38036   cmp r5, r8
38037   add lr, lr, #32
38038   add r0, r0, #32
38039   bne .L12567
38040   mov r3, r8, asl #5
38041   add r7, r7, r3
38042   add r4, r4, r3
38043 .L12565:
38044   ands  r5, sl, #7
38045   beq .L12455
38046   ldr ip, [r7, #0]
38047   mov lr, #0
38048 .L12603:
38049   ands  r3, ip, #15
38050   beq .L12604
38051   ldr r1, [r4, #0]
38052   ldr sl, [sp, #24]
38053   orr r2, r6, r3
38054   mov r3, r1, lsr #16
38055   orr r0, sl, r2
38056   mov r3, r3, asl #16
38057   orr r2, sl, r2
38058   tst r1, #256
38059   orr r3, r3, r0
38060   orr r2, r2, r1, asl #16
38061   strne r3, [r4, #0]
38062   streq r2, [r4, #0]
38063 .L12604:
38064   add lr, lr, #1
38065   cmp r5, lr
38066   mov ip, ip, lsr #4
38067   add r4, r4, #4
38068   bne .L12603
38069   b .L12455
38070 .L12533:
38071   mov r3, r9, asl #22
38072   mov r1, r0, lsr #3
38073   subs  r2, r8, #8
38074   mov r3, r3, lsr #22
38075   submi r2, r8, #1
38076   add r3, r3, r1, asl #5
38077   add r3, r3, r2, asr #3
38078   and r1, r0, #7
38079   ldr ip, [sp, #12]
38080   add r1, r1, r3, asl #3
38081   ldr r3, .L13670+24
38082   mov r2, r9, lsr #8
38083   cmp r5, ip
38084   add r0, r3, r1, asl #2
38085   and r6, r2, #240
38086   bge .L12741
38087   rsb lr, r5, ip
38088   rsb r7, lr, r8
38089   cmp r7, #0
38090   ble .L12455
38091   ldr r1, [sp, #8]
38092   add r3, r5, r8
38093   cmp r1, r3
38094   bhi .L12744
38095   mov r3, lr, lsr #3
38096   ands  r4, lr, #7
38097   sub ip, r0, r3, asl #5
38098   bne .L12746
38099   ldr sl, [sp, #80]
38100   ldr r5, [sp, #60]
38101 .L12748:
38102   movs  r8, sl, lsr #3
38103   beq .L12769
38104   mov r0, r5
38105   mov r4, ip
38106   mov r7, #0
38107 .L12771:
38108   ldr r1, [r4, #0]
38109   cmp r1, #0
38110   beq .L12772
38111   ands  r3, r1, #15
38112   beq .L12774
38113   ldr r2, [r0, #28]
38114   orr lr, r6, r3
38115   tst r2, #256
38116   ldrne r9, [sp, #24]
38117   ldreq r9, [sp, #24]
38118   movne r3, r2, lsr #16
38119   movne r3, r3, asl #16
38120   orreq r3, r9, lr
38121   orrne r2, r9, lr
38122   orrne r3, r3, r2
38123   orreq r3, r3, r2, asl #16
38124   strne r3, [r0, #28]
38125   streq r3, [r0, #28]
38126 .L12774:
38127   mov r3, r1, lsr #4
38128   ands  r3, r3, #15
38129   beq .L12778
38130   ldr r2, [r0, #24]
38131   orr lr, r6, r3
38132   tst r2, #256
38133   ldrne r9, [sp, #24]
38134   ldreq r9, [sp, #24]
38135   movne r3, r2, lsr #16
38136   movne r3, r3, asl #16
38137   orreq r3, r9, lr
38138   orrne r2, r9, lr
38139   orrne r3, r3, r2
38140   orreq r3, r3, r2, asl #16
38141   strne r3, [r0, #24]
38142   streq r3, [r0, #24]
38143 .L12778:
38144   mov r3, r1, lsr #8
38145   ands  r3, r3, #15
38146   beq .L12782
38147   ldr r2, [r0, #20]
38148   orr lr, r6, r3
38149   tst r2, #256
38150   ldrne r9, [sp, #24]
38151   ldreq r9, [sp, #24]
38152   movne r3, r2, lsr #16
38153   movne r3, r3, asl #16
38154   orreq r3, r9, lr
38155   orrne r2, r9, lr
38156   orrne r3, r3, r2
38157   orreq r3, r3, r2, asl #16
38158   strne r3, [r0, #20]
38159   streq r3, [r0, #20]
38160 .L12782:
38161   mov r3, r1, lsr #12
38162   ands  r3, r3, #15
38163   beq .L12786
38164   ldr r2, [r0, #16]
38165   orr lr, r6, r3
38166   tst r2, #256
38167   ldrne r9, [sp, #24]
38168   ldreq r9, [sp, #24]
38169   movne r3, r2, lsr #16
38170   movne r3, r3, asl #16
38171   orreq r3, r9, lr
38172   orrne r2, r9, lr
38173   orrne r3, r3, r2
38174   orreq r3, r3, r2, asl #16
38175   strne r3, [r0, #16]
38176   streq r3, [r0, #16]
38177 .L12786:
38178   mov r3, r1, lsr #16
38179   ands  r3, r3, #15
38180   beq .L12790
38181   ldr r2, [r0, #12]
38182   orr lr, r6, r3
38183   tst r2, #256
38184   ldrne r9, [sp, #24]
38185   ldreq r9, [sp, #24]
38186   movne r3, r2, lsr #16
38187   movne r3, r3, asl #16
38188   orreq r3, r9, lr
38189   orrne r2, r9, lr
38190   orrne r3, r3, r2
38191   orreq r3, r3, r2, asl #16
38192   strne r3, [r0, #12]
38193   streq r3, [r0, #12]
38194 .L12790:
38195   mov r3, r1, lsr #20
38196   ands  r3, r3, #15
38197   beq .L12794
38198   ldr r2, [r0, #8]
38199   orr lr, r6, r3
38200   tst r2, #256
38201   ldrne r9, [sp, #24]
38202   ldreq r9, [sp, #24]
38203   movne r3, r2, lsr #16
38204   movne r3, r3, asl #16
38205   orreq r3, r9, lr
38206   orrne r2, r9, lr
38207   orrne r3, r3, r2
38208   orreq r3, r3, r2, asl #16
38209   strne r3, [r0, #8]
38210   streq r3, [r0, #8]
38211 .L12794:
38212   mov r3, r1, lsr #24
38213   ands  r3, r3, #15
38214   beq .L12798
38215   ldr r2, [r0, #4]
38216   orr lr, r6, r3
38217   tst r2, #256
38218   ldrne r9, [sp, #24]
38219   ldreq r9, [sp, #24]
38220   movne r3, r2, lsr #16
38221   movne r3, r3, asl #16
38222   orreq r3, r9, lr
38223   orrne r2, r9, lr
38224   orrne r3, r3, r2
38225   orreq r3, r3, r2, asl #16
38226   strne r3, [r0, #4]
38227   streq r3, [r0, #4]
38228 .L12798:
38229   movs  r3, r1, lsr #28
38230   beq .L12772
38231   ldr r2, [r0, #0]
38232   orr r1, r6, r3
38233   tst r2, #256
38234   ldrne lr, [sp, #24]
38235   ldreq r9, [sp, #24]
38236   movne r3, r2, lsr #16
38237   movne r3, r3, asl #16
38238   orreq r3, r9, r1
38239   orrne r2, lr, r1
38240   orrne r3, r3, r2
38241   orreq r3, r3, r2, asl #16
38242   strne r3, [r0, #0]
38243   streq r3, [r0, #0]
38244 .L12772:
38245   add r7, r7, #1
38246   cmp r8, r7
38247   sub r4, r4, #32
38248   add r0, r0, #32
38249   bne .L12771
38250   rsb r3, r8, r8, asl #27
38251   add ip, ip, r3, asl #5
38252   add r5, r5, r8, asl #5
38253 .L12769:
38254   ands  r4, sl, #7
38255   beq .L12455
38256   ldr ip, [ip, #0]
38257   mov lr, #0
38258 .L12807:
38259   movs  r3, ip, lsr #28
38260   beq .L12808
38261   ldr r1, [r5, #0]
38262   ldr sl, [sp, #24]
38263   orr r2, r6, r3
38264   mov r3, r1, lsr #16
38265   orr r0, sl, r2
38266   mov r3, r3, asl #16
38267   orr r2, sl, r2
38268   tst r1, #256
38269   orr r3, r3, r0
38270   orr r2, r2, r1, asl #16
38271   strne r3, [r5, #0]
38272   streq r2, [r5, #0]
38273 .L12808:
38274   add lr, lr, #1
38275   cmp r4, lr
38276   mov ip, ip, asl #4
38277   add r5, r5, #4
38278   bne .L12807
38279   b .L12455
38280 .L12534:
38281   mov r2, r9, asl #22
38282   mov r1, r0, lsr #3
38283   mov r2, r2, lsr #22
38284   and r3, r0, #7
38285   add r2, r2, r1, asl #5
38286   add r3, r3, r2, asl #2
38287   ldr ip, [sp, #12]
38288   mov r0, r3, asl #3
38289   ldr r3, .L13670+24
38290   cmp r5, ip
38291   add ip, r0, r3
38292   bge .L12945
38293   ldr lr, [sp, #12]
38294   rsb r0, r5, lr
38295   rsb r7, r0, r8
38296   cmp r7, #0
38297   ble .L12455
38298   ldr r1, [sp, #8]
38299   add r3, r5, r8
38300   cmp r1, r3
38301   bhi .L12948
38302   mov r3, r0, lsr #3
38303   ands  lr, r0, #7
38304   add r7, ip, r3, asl #6
38305   bne .L12950
38306   ldr r6, [sp, #80]
38307   ldr r4, [sp, #60]
38308 .L12952:
38309   movs  r5, r6, lsr #3
38310   beq .L13030
38311   mov r1, r4
38312   mov ip, r7
38313   mov lr, #0
38314 .L13032:
38315   ldr r2, [ip, #0]
38316   cmp r2, #0
38317   beq .L13033
38318   ands  r0, r2, #255
38319   beq .L13035
38320   ldr r3, [r1, #0]
38321   tst r3, #256
38322   movne r3, r3, lsr #16
38323   ldrne r8, [sp, #24]
38324   ldreq r9, [sp, #24]
38325   movne r3, r3, asl #16
38326   orrne r3, r8, r3
38327   orreq r3, r9, r3, asl #16
38328   orrne r3, r0, r3
38329   orreq r3, r0, r3
38330   strne r3, [r1, #0]
38331   streq r3, [r1, #0]
38332 .L13035:
38333   mov r3, r2, lsr #8
38334   ands  r0, r3, #255
38335   beq .L13039
38336   ldr r3, [r1, #4]
38337   tst r3, #256
38338   movne r3, r3, lsr #16
38339   ldrne sl, [sp, #24]
38340   ldreq r8, [sp, #24]
38341   movne r3, r3, asl #16
38342   orrne r3, sl, r3
38343   orreq r3, r8, r3, asl #16
38344   orrne r3, r0, r3
38345   orreq r3, r0, r3
38346   strne r3, [r1, #4]
38347   streq r3, [r1, #4]
38348 .L13039:
38349   mov r3, r2, lsr #16
38350   ands  r0, r3, #255
38351   beq .L13043
38352   ldr r3, [r1, #8]
38353   tst r3, #256
38354   movne r3, r3, lsr #16
38355   ldrne r9, [sp, #24]
38356   ldreq sl, [sp, #24]
38357   movne r3, r3, asl #16
38358   orrne r3, r9, r3
38359   orreq r3, sl, r3, asl #16
38360   orrne r3, r0, r3
38361   orreq r3, r0, r3
38362   strne r3, [r1, #8]
38363   streq r3, [r1, #8]
38364 .L13043:
38365   movs  r0, r2, lsr #24
38366   beq .L13033
38367   ldr r2, [r1, #12]
38368   tst r2, #256
38369   ldrne r8, [sp, #24]
38370   ldreq r9, [sp, #24]
38371   movne r3, r2, lsr #16
38372   movne r3, r3, asl #16
38373   orreq r3, r9, r0
38374   orrne r2, r8, r0
38375   orrne r3, r3, r2
38376   orreq r3, r3, r2, asl #16
38377   strne r3, [r1, #12]
38378   streq r3, [r1, #12]
38379 .L13033:
38380   ldr r2, [ip, #4]
38381   cmp r2, #0
38382   beq .L13050
38383   ands  r0, r2, #255
38384   beq .L13052
38385   ldr r3, [r1, #16]
38386   tst r3, #256
38387   movne r3, r3, lsr #16
38388   ldrne sl, [sp, #24]
38389   ldreq r8, [sp, #24]
38390   movne r3, r3, asl #16
38391   orrne r3, sl, r3
38392   orreq r3, r8, r3, asl #16
38393   orrne r3, r0, r3
38394   orreq r3, r0, r3
38395   strne r3, [r1, #16]
38396   streq r3, [r1, #16]
38397 .L13052:
38398   mov r3, r2, lsr #8
38399   ands  r0, r3, #255
38400   beq .L13056
38401   ldr r3, [r1, #20]
38402   tst r3, #256
38403   movne r3, r3, lsr #16
38404   ldrne r9, [sp, #24]
38405   ldreq sl, [sp, #24]
38406   movne r3, r3, asl #16
38407   orrne r3, r9, r3
38408   orreq r3, sl, r3, asl #16
38409   orrne r3, r0, r3
38410   orreq r3, r0, r3
38411   strne r3, [r1, #20]
38412   streq r3, [r1, #20]
38413 .L13056:
38414   mov r3, r2, lsr #16
38415   ands  r0, r3, #255
38416   beq .L13060
38417   ldr r3, [r1, #24]
38418   tst r3, #256
38419   movne r3, r3, lsr #16
38420   ldrne r8, [sp, #24]
38421   ldreq r9, [sp, #24]
38422   movne r3, r3, asl #16
38423   orrne r3, r8, r3
38424   orreq r3, r9, r3, asl #16
38425   orrne r3, r0, r3
38426   orreq r3, r0, r3
38427   strne r3, [r1, #24]
38428   streq r3, [r1, #24]
38429 .L13060:
38430   movs  r2, r2, lsr #24
38431   beq .L13050
38432   ldr r3, [r1, #28]
38433   tst r3, #256
38434   movne r3, r3, lsr #16
38435   ldrne sl, [sp, #24]
38436   ldreq r0, [sp, #24]
38437   movne r3, r3, asl #16
38438   orrne r3, sl, r3
38439   orreq r3, r0, r3, asl #16
38440   orrne r3, r2, r3
38441   orreq r3, r2, r3
38442   strne r3, [r1, #28]
38443   streq r3, [r1, #28]
38444 .L13050:
38445   add lr, lr, #1
38446   cmp lr, r5
38447   add ip, ip, #64
38448   add r1, r1, #32
38449   bne .L13032
38450   add r7, r7, r5, asl #6
38451   add r4, r4, r5, asl #5
38452 .L13030:
38453   ands  r5, r6, #7
38454   beq .L12455
38455   cmp r5, #3
38456   ldrls ip, [r7, #0]
38457   bls .L13089
38458   ldr r2, [r7, #0]
38459   cmp r2, #0
38460   beq .L13071
38461   ands  r1, r2, #255
38462   beq .L13073
38463   ldr r3, [r4, #0]
38464   tst r3, #256
38465   movne r3, r3, lsr #16
38466   ldrne r6, [sp, #24]
38467   ldreq r8, [sp, #24]
38468   movne r3, r3, asl #16
38469   orrne r3, r6, r3
38470   orreq r3, r8, r3, asl #16
38471   orrne r3, r1, r3
38472   orreq r3, r1, r3
38473   strne r3, [r4, #0]
38474   streq r3, [r4, #0]
38475 .L13073:
38476   mov r3, r2, lsr #8
38477   ands  r1, r3, #255
38478   beq .L13077
38479   ldr r3, [r4, #4]
38480   tst r3, #256
38481   movne r3, r3, lsr #16
38482   ldrne r9, [sp, #24]
38483   ldreq sl, [sp, #24]
38484   movne r3, r3, asl #16
38485   orrne r3, r9, r3
38486   orreq r3, sl, r3, asl #16
38487   orrne r3, r1, r3
38488   orreq r3, r1, r3
38489   strne r3, [r4, #4]
38490   streq r3, [r4, #4]
38491 .L13077:
38492   mov r3, r2, lsr #16
38493   ands  r1, r3, #255
38494   beq .L13081
38495   ldr r3, [r4, #8]
38496   tst r3, #256
38497   movne r3, r3, lsr #16
38498   ldrne ip, [sp, #24]
38499   ldreq lr, [sp, #24]
38500   movne r3, r3, asl #16
38501   orrne r3, ip, r3
38502   orreq r3, lr, r3, asl #16
38503   orrne r3, r1, r3
38504   orreq r3, r1, r3
38505   strne r3, [r4, #8]
38506   streq r3, [r4, #8]
38507 .L13081:
38508   movs  r1, r2, lsr #24
38509   beq .L13071
38510   ldr r2, [r4, #12]
38511   tst r2, #256
38512   ldrne r0, [sp, #24]
38513   ldreq r6, [sp, #24]
38514   movne r3, r2, lsr #16
38515   movne r3, r3, asl #16
38516   orreq r3, r6, r1
38517   orrne r2, r0, r1
38518   orrne r3, r3, r2
38519   orreq r3, r3, r2, asl #16
38520   strne r3, [r4, #12]
38521   streq r3, [r4, #12]
38522 .L13071:
38523   subs  r5, r5, #4
38524   ldr ip, [r7, #4]
38525   addne r4, r4, #16
38526   beq .L12455
38527 .L13089:
38528   mov lr, #0
38529 .L13090:
38530   ands  r3, ip, #255
38531   beq .L13091
38532   ldr r2, [r4, #0]
38533   ldr r7, [sp, #24]
38534   tst r2, #256
38535   orr r1, r7, r3
38536   orr r0, r7, r3
38537   mov r3, r2, lsr #16
38538   mov r3, r3, asl #16
38539   orr r3, r3, r1
38540   orr r1, r0, r2, asl #16
38541   strne r3, [r4, #0]
38542   streq r1, [r4, #0]
38543 .L13091:
38544   add lr, lr, #1
38545   cmp r5, lr
38546   mov ip, ip, lsr #8
38547   add r4, r4, #4
38548   bhi .L13090
38549   b .L12455
38550 .L13671:
38551   .align  2
38552 .L13670:
38553   .word io_registers
38554   .word obj_priority_count
38555   .word obj_priority_list
38556   .word obj_width_table
38557   .word obj_height_table
38558   .word oam_ram
38559   .word vram+65536
38560   .word vram+65472
38561   .word vram+65600
38562 .L12535:
38563   subs  r2, r8, #8
38564   submi r2, r8, #1
38565   mov r3, r0, lsr #3
38566   mov r2, r2, asr #3
38567   mov r1, r9, asl #22
38568   add r2, r2, r3, asl #4
38569   mov r1, r1, lsr #22
38570   add r1, r1, r2, asl #1
38571   and r3, r0, #7
38572   add r3, r3, r1, asl #2
38573   ldr r1, [sp, #12]
38574   mov r0, r3, asl #3
38575   ldr r3, .L13670+24
38576   cmp r5, r1
38577   add ip, r0, r3
38578   bge .L13281
38579   rsb r0, r5, r1
38580   rsb r7, r0, r8
38581   cmp r7, #0
38582   ble .L12455
38583   ldr r2, [sp, #8]
38584   add r3, r5, r8
38585   cmp r2, r3
38586   bhi .L13284
38587   mov r3, r0, lsr #3
38588   ands  lr, r0, #7
38589   sub r8, ip, r3, asl #6
38590   bne .L13286
38591   ldr r7, [sp, #80]
38592   ldr r4, [sp, #60]
38593 .L13288:
38594   movs  r6, r7, lsr #3
38595   beq .L13366
38596   mov r0, r4
38597   mov lr, r8
38598   mov r5, #0
38599 .L13368:
38600   ldr r2, [lr, #4]
38601   cmp r2, #0
38602   beq .L13369
38603   ands  r1, r2, #255
38604   beq .L13371
38605   ldr r3, [r0, #12]
38606   tst r3, #256
38607   movne r3, r3, lsr #16
38608   ldrne r9, [sp, #24]
38609   ldreq sl, [sp, #24]
38610   movne r3, r3, asl #16
38611   orrne r3, r9, r3
38612   orreq r3, sl, r3, asl #16
38613   orrne r3, r1, r3
38614   orreq r3, r1, r3
38615   strne r3, [r0, #12]
38616   streq r3, [r0, #12]
38617 .L13371:
38618   mov r3, r2, lsr #8
38619   ands  r1, r3, #255
38620   beq .L13375
38621   ldr r3, [r0, #8]
38622   tst r3, #256
38623   movne r3, r3, lsr #16
38624   ldrne ip, [sp, #24]
38625   ldreq r9, [sp, #24]
38626   movne r3, r3, asl #16
38627   orrne r3, ip, r3
38628   orreq r3, r9, r3, asl #16
38629   orrne r3, r1, r3
38630   orreq r3, r1, r3
38631   strne r3, [r0, #8]
38632   streq r3, [r0, #8]
38633 .L13375:
38634   mov r3, r2, lsr #16
38635   ands  r1, r3, #255
38636   beq .L13379
38637   ldr r3, [r0, #4]
38638   tst r3, #256
38639   movne r3, r3, lsr #16
38640   ldrne sl, [sp, #24]
38641   ldreq ip, [sp, #24]
38642   movne r3, r3, asl #16
38643   orrne r3, sl, r3
38644   orreq r3, ip, r3, asl #16
38645   orrne r3, r1, r3
38646   orreq r3, r1, r3
38647   strne r3, [r0, #4]
38648   streq r3, [r0, #4]
38649 .L13379:
38650   movs  r2, r2, lsr #24
38651   beq .L13369
38652   ldr r3, [r0, #0]
38653   tst r3, #256
38654   movne r3, r3, lsr #16
38655   ldrne r1, [sp, #24]
38656   ldreq r9, [sp, #24]
38657   movne r3, r3, asl #16
38658   orrne r3, r1, r3
38659   orreq r3, r9, r3, asl #16
38660   orrne r3, r2, r3
38661   orreq r3, r2, r3
38662   strne r3, [r0, #0]
38663   streq r3, [r0, #0]
38664 .L13369:
38665   ldr r1, [lr, #0]
38666   cmp r1, #0
38667   beq .L13386
38668   ands  ip, r1, #255
38669   beq .L13388
38670   ldr r2, [r0, #28]
38671   tst r2, #256
38672   ldrne sl, [sp, #24]
38673   ldreq r9, [sp, #24]
38674   movne r3, r2, lsr #16
38675   movne r3, r3, asl #16
38676   orreq r3, r9, ip
38677   orrne r2, sl, ip
38678   orrne r3, r3, r2
38679   orreq r3, r3, r2, asl #16
38680   strne r3, [r0, #28]
38681   streq r3, [r0, #28]
38682 .L13388:
38683   mov r3, r1, lsr #8
38684   ands  r2, r3, #255
38685   beq .L13392
38686   ldr r3, [r0, #24]
38687   tst r3, #256
38688   movne r3, r3, lsr #16
38689   ldrne sl, [sp, #24]
38690   ldreq ip, [sp, #24]
38691   movne r3, r3, asl #16
38692   orrne r3, sl, r3
38693   orreq r3, ip, r3, asl #16
38694   orrne r3, r2, r3
38695   orreq r3, r2, r3
38696   strne r3, [r0, #24]
38697   streq r3, [r0, #24]
38698 .L13392:
38699   mov r3, r1, lsr #16
38700   ands  r2, r3, #255
38701   beq .L13396
38702   ldr r3, [r0, #20]
38703   tst r3, #256
38704   movne r3, r3, lsr #16
38705   ldrne r9, [sp, #24]
38706   ldreq sl, [sp, #24]
38707   movne r3, r3, asl #16
38708   orrne r3, r9, r3
38709   orreq r3, sl, r3, asl #16
38710   orrne r3, r2, r3
38711   orreq r3, r2, r3
38712   strne r3, [r0, #20]
38713   streq r3, [r0, #20]
38714 .L13396:
38715   movs  r1, r1, lsr #24
38716   beq .L13386
38717   ldr r2, [r0, #16]
38718   tst r2, #256
38719   ldrne ip, [sp, #24]
38720   ldreq r9, [sp, #24]
38721   movne r3, r2, lsr #16
38722   movne r3, r3, asl #16
38723   orreq r3, r9, r1
38724   orrne r2, ip, r1
38725   orrne r3, r3, r2
38726   orreq r3, r3, r2, asl #16
38727   strne r3, [r0, #16]
38728   streq r3, [r0, #16]
38729 .L13386:
38730   add r5, r5, #1
38731   cmp r5, r6
38732   sub lr, lr, #64
38733   add r0, r0, #32
38734   bne .L13368
38735   rsb r3, r6, r6, asl #26
38736   add r8, r8, r3, asl #6
38737   add r4, r4, r6, asl #5
38738 .L13366:
38739   ands  r5, r7, #7
38740   beq .L12455
38741   cmp r5, #3
38742   ldrls ip, [r8, #4]
38743   bls .L13425
38744   ldr r2, [r8, #4]
38745   cmp r2, #0
38746   beq .L13407
38747   ands  r1, r2, #255
38748   beq .L13409
38749   ldr r3, [r4, #12]
38750   tst r3, #256
38751   movne r3, r3, lsr #16
38752   ldrne sl, [sp, #24]
38753   ldreq ip, [sp, #24]
38754   movne r3, r3, asl #16
38755   orrne r3, sl, r3
38756   orreq r3, ip, r3, asl #16
38757   orrne r3, r1, r3
38758   orreq r3, r1, r3
38759   strne r3, [r4, #12]
38760   streq r3, [r4, #12]
38761 .L13409:
38762   mov r3, r2, lsr #8
38763   ands  r1, r3, #255
38764   beq .L13413
38765   ldr r3, [r4, #8]
38766   tst r3, #256
38767   movne r3, r3, lsr #16
38768   ldrne lr, [sp, #24]
38769   ldreq r0, [sp, #24]
38770   movne r3, r3, asl #16
38771   orrne r3, lr, r3
38772   orreq r3, r0, r3, asl #16
38773   orrne r3, r1, r3
38774   orreq r3, r1, r3
38775   strne r3, [r4, #8]
38776   streq r3, [r4, #8]
38777 .L13413:
38778   mov r3, r2, lsr #16
38779   ands  r1, r3, #255
38780   beq .L13417
38781   ldr r3, [r4, #4]
38782   tst r3, #256
38783   movne r3, r3, lsr #16
38784   ldrne r6, [sp, #24]
38785   ldreq r7, [sp, #24]
38786   movne r3, r3, asl #16
38787   orrne r3, r6, r3
38788   orreq r3, r7, r3, asl #16
38789   orrne r3, r1, r3
38790   orreq r3, r1, r3
38791   strne r3, [r4, #4]
38792   streq r3, [r4, #4]
38793 .L13417:
38794   movs  r2, r2, lsr #24
38795   beq .L13407
38796   ldr r3, [r4, #0]
38797   tst r3, #256
38798   movne r3, r3, lsr #16
38799   ldrne r9, [sp, #24]
38800   ldreq sl, [sp, #24]
38801   movne r3, r3, asl #16
38802   orrne r3, r9, r3
38803   orreq r3, sl, r3, asl #16
38804   orrne r3, r2, r3
38805   orreq r3, r2, r3
38806   strne r3, [r4, #0]
38807   streq r3, [r4, #0]
38808 .L13407:
38809   subs  r5, r5, #4
38810   ldr ip, [r8, #0]
38811   addne r4, r4, #16
38812   beq .L12455
38813 .L13425:
38814   mov lr, #0
38815 .L13426:
38816   movs  r3, ip, lsr #24
38817   beq .L13427
38818   ldr r2, [r4, #0]
38819   ldr r0, [sp, #24]
38820   tst r2, #256
38821   orr r1, r0, r3
38822   orr r0, r0, r3
38823   mov r3, r2, lsr #16
38824   mov r3, r3, asl #16
38825   orr r3, r3, r1
38826   orr r1, r0, r2, asl #16
38827   strne r3, [r4, #0]
38828   streq r1, [r4, #0]
38829 .L13427:
38830   add lr, lr, #1
38831   cmp r5, lr
38832   mov ip, ip, asl #8
38833   add r4, r4, #4
38834   bhi .L13426
38835   b .L12455
38836 .L12448:
38837   mov r3, r1, lsr #4
38838   ldr r4, .L13670+20
38839   and r3, r3, #992
38840   add r3, r3, r4
38841   add r2, r8, r8, lsr #31
38842   tst lr, #512
38843   ldrh  r6, [r3, #30]
38844   mov lr, r2, asr #1
38845   add r1, sl, sl, lsr #31
38846   ldr r2, [sp, #12]
38847   mov r4, r1, asr #1
38848   movne r0, r8, asl #1
38849   str r6, [sp, #20]
38850   strne r0, [sp, #84]
38851   streq r8, [sp, #84]
38852   moveq r6, lr
38853   moveq r0, r4
38854   movne r6, lr, asl #1
38855   movne r0, r4, asl #1
38856   cmp r5, r2
38857   ldrh  r7, [r3, #6]
38858   ldrh  r1, [r3, #14]
38859   ldrh  fp, [r3, #22]
38860   bge .L12490
38861   ldr r3, [sp, #84]
38862   rsb r2, r5, r2
38863   rsb r3, r2, r3
38864   cmp r3, #0
38865   str r3, [sp, #84]
38866   ble .L12455
38867   ldr r5, [sp, #12]
38868   rsb r6, r2, r6
38869 .L12490:
38870   ldr r2, [sp, #84]
38871   add r3, r5, r2
38872   ldr r2, [sp, #8]
38873   cmp r3, r2
38874   blt .L12493
38875   rsb r3, r5, r2
38876   cmp r3, #0
38877   str r3, [sp, #84]
38878   ble .L12455
38879 .L12493:
38880   mov r3, r7, asl #16
38881   mov r2, r1, asl #16
38882   ldr r7, [sp, #20]
38883   mov r3, r3, asr #16
38884   mov r2, r2, asr #16
38885   add ip, ip, r0
38886   str r3, [sp, #48]
38887   mov r0, r9, lsr #8
38888   str r2, [sp, #52]
38889   ldr r3, [sp, #32]
38890   ldr r2, [sp, #4]
38891   mov r1, r7, asl #16
38892   mov lr, lr, asl #8
38893   and r0, r0, #240
38894   cmp fp, #0
38895   str lr, [sp, #64]
38896   mov r1, r1, asr #16
38897   mov lr, r4, asl #8
38898   add r7, r2, r5, asl #2
38899   rsb ip, ip, r3
38900   str r0, [sp, #76]
38901   bne .L12495
38902   mla r3, ip, r1, lr
38903   mov r1, r3, asr #8
38904   cmp r1, sl
38905   bcs .L12455
38906   mov r3, r9, asl #22
38907   mov r2, r1, lsr #3
38908   mov r3, r3, lsr #22
38909   add r3, r3, r2, asl #5
38910   and r1, r1, #7
38911   ldr r4, [sp, #84]
38912   add r1, r1, r3, asl #3
38913   ldr r3, .L13670+24
38914   cmp r4, #0
38915   add r5, r3, r1, asl #2
38916   ble .L12455
38917   ldr r3, [sp, #52]
38918   ldr r2, [sp, #48]
38919   mul r3, ip, r3
38920   mul r2, r6, r2
38921   ldr r6, [sp, #64]
38922   rsb r3, r2, r3
38923   add ip, r6, r3
38924   mov r1, ip, asr #8
38925   cmp r1, r8
38926   movcc r4, fp
38927   movcs r4, fp
38928   bcs .L12502
38929   b .L13633
38930 .L12503:
38931   cmp r8, r2
38932   bhi .L12504
38933 .L12502:
38934   ldr r9, [sp, #48]
38935   ldr sl, [sp, #84]
38936   add r4, r4, #1
38937   add ip, ip, r9
38938   cmp sl, r4
38939   mov r2, ip, asr #8
38940   add r7, r7, #4
38941   bne .L12503
38942   b .L12455
38943 .L13617:
38944   add sp, sp, #88
38945   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
38946 .L12459:
38947   mov r3, r9, asl #22
38948   ldr r2, .L13670+24
38949   mov r3, r3, lsr #22
38950   cmp r6, #0
38951   add r9, r2, r3, asl #5
38952   ble .L12455
38953   mov r3, r7, asl #16
38954   mul r2, r0, r1
38955   mov r7, r3, asr #16
38956   mul r3, r0, ip
38957   ldr r0, [sp, #44]
38958   ldr r1, [sp, #44]
38959   mul r0, fp, r0
38960   mul r1, r7, r1
38961   rsb r3, r0, r3
38962   ldr r0, [sp, #72]
38963   rsb r2, r1, r2
38964   add ip, r0, r3
38965   add r0, lr, r2
38966   mov r1, r0, asr #8
38967   mov lr, ip, asr #8
38968   cmp lr, r8
38969   cmpcc r1, sl
38970   movcs r3, #0
38971   movcc r3, #1
38972   movcs r4, r3
38973   bcs .L12477
38974   b .L13668
38975 .L12478:
38976   cmp r8, lr
38977   cmphi sl, r1
38978   bhi .L12480
38979 .L12477:
38980   add r4, r4, #1
38981   add ip, ip, fp
38982   add r0, r0, r7
38983   cmp r6, r4
38984   mov lr, ip, asr #8
38985   mov r1, r0, asr #8
38986   add r5, r5, #4
38987   bne .L12478
38988   b .L12455
38989 .L13646:
38990   and r3, r1, #7
38991   mov r2, lr, asr #3
38992   mov r3, r3, asl #3
38993   add r3, r3, r2, asl #6
38994   mov r1, r1, asr #3
38995   add r3, r3, r1, asl #10
38996   and r2, lr, #7
38997   add r3, r3, r9
38998   ldrb  lr, [r3, r2]  @ zero_extendqisi2
38999   cmp lr, #0
39000   beq .L12483
39001   ldr r3, [r5, #0]
39002   ldr r1, [sp, #24]
39003   mov r2, r3, lsr #16
39004   mov r2, r2, asl #16
39005   orr r2, r1, r2
39006   orr r1, r1, r3, asl #16
39007   orr r2, lr, r2
39008   tst r3, #256
39009   orr r1, lr, r1
39010   str r2, [sp, #0]
39011   strne r2, [r5, #0]
39012   streq r1, [r5, #0]
39013 .L12483:
39014   add r4, r4, #1
39015   add ip, ip, fp
39016   add r0, r0, r7
39017   cmp r6, r4
39018   mov lr, ip, asr #8
39019   mov r1, r0, asr #8
39020   add r5, r5, #4
39021   ble .L12455
39022 .L12480:
39023   cmp sl, r1
39024   cmphi r8, lr
39025   bhi .L13646
39026   b .L12455
39027 .L12495:
39028   mov r3, r9, asl #22
39029   ldr r4, [sp, #84]
39030   ldr r2, .L13670+24
39031   mov r3, r3, lsr #22
39032   add r3, r2, r3, asl #5
39033   cmp r4, #0
39034   str r3, [sp, #68]
39035   ble .L12455
39036   mov r3, fp, asl #16
39037   mov r3, r3, asr #16
39038   str r3, [sp, #56]
39039   mul r2, ip, r1
39040   ldr r3, [sp, #52]
39041   ldr r1, [sp, #56]
39042   ldr r0, [sp, #48]
39043   mul r3, ip, r3
39044   mul r1, r6, r1
39045   mul r0, r6, r0
39046   ldr r6, [sp, #64]
39047   rsb r3, r0, r3
39048   rsb r2, r1, r2
39049   add r5, r6, r3
39050   add r4, lr, r2
39051   mov ip, r5, asr #8
39052   mov lr, r4, asr #8
39053   cmp ip, r8
39054   cmpcc lr, sl
39055   movcs r3, #0
39056   movcc r3, #1
39057   movcs r6, r3
39058   bcs .L12517
39059   b .L13669
39060 .L12518:
39061   cmp r8, ip
39062   cmphi sl, lr
39063   bhi .L12520
39064 .L12517:
39065   ldr ip, [sp, #56]
39066   ldr r9, [sp, #48]
39067   ldr r0, [sp, #84]
39068   add r6, r6, #1
39069   add r4, r4, ip
39070   add r5, r5, r9
39071   cmp r0, r6
39072   mov ip, r5, asr #8
39073   mov lr, r4, asr #8
39074   add r7, r7, #4
39075   bne .L12518
39076   b .L12455
39077 .L13648:
39078   mov r3, ip, asr #1
39079   ldr r2, [sp, #68]
39080   and fp, r3, #3
39081   ldr r3, [sp, #68]
39082   and r1, lr, #7
39083   and r0, lr, #7
39084   add r1, r2, r1, asl #2
39085   add r0, r3, r0, asl #2
39086   mov r2, ip, asr #1
39087   mov r3, lr, asr #3
39088   and r9, r2, #3
39089   mov r3, r3, asl #10
39090   mov r2, ip, asr #3
39091   add r3, r3, r2, asl #5
39092   add r0, r0, r3
39093   tst ip, #1
39094   add r1, r1, r3
39095   ldrneb  r3, [r1, fp]  @ zero_extendqisi2
39096   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
39097   movne r0, r3, lsr #4
39098   andeq r0, r3, #15
39099   ldr r9, [sp, #76]
39100   cmp r0, #0
39101   orr r0, r0, r9
39102   beq .L12526
39103   ldr r2, [r7, #0]
39104   ldr ip, [sp, #24]
39105   mov r3, r2, lsr #16
39106   orr r1, ip, r0
39107   mov r3, r3, asl #16
39108   orr r0, ip, r0
39109   tst r2, #256
39110   orr r3, r3, r1
39111   orr r0, r0, r2, asl #16
39112   strne r3, [r7, #0]
39113   streq r0, [r7, #0]
39114 .L12526:
39115   ldr lr, [sp, #48]
39116   ldr r0, [sp, #56]
39117   ldr r1, [sp, #84]
39118   add r6, r6, #1
39119   add r5, r5, lr
39120   add r4, r4, r0
39121   cmp r1, r6
39122   add r7, r7, #4
39123   mov ip, r5, asr #8
39124   mov lr, r4, asr #8
39125   ble .L12455
39126 .L12520:
39127   cmp sl, lr
39128   cmphi r8, ip
39129   bhi .L13648
39130   b .L12455
39131 .L12505:
39132   cmp r8, r1
39133   bls .L12455
39134 .L13633:
39135   mov r3, r1, asr #1
39136   and lr, r3, #3
39137   mov r3, r1, asr #3
39138   mov r3, r3, asl #5
39139   mov r2, r1, asr #1
39140   tst r1, #1
39141   and r0, r2, #3
39142   add r1, r3, r5
39143   add r2, r3, r5
39144   ldreqb  r3, [r2, r0]  @ zero_extendqisi2
39145   ldrneb  r3, [r1, lr]  @ zero_extendqisi2
39146   andeq r2, r3, #15
39147   movne r2, r3, lsr #4
39148   ldr lr, [sp, #76]
39149   cmp r2, #0
39150   orr r3, r2, lr
39151   beq .L12510
39152   ldr r2, [r7, #0]
39153   ldr r0, [sp, #24]
39154   tst r2, #256
39155   orr r1, r0, r3
39156   orr r0, r0, r3
39157   mov r3, r2, lsr #16
39158   mov r3, r3, asl #16
39159   orr r1, r3, r1
39160   orr r3, r0, r2, asl #16
39161   strne r1, [r7, #0]
39162   streq r3, [r7, #0]
39163 .L12510:
39164   ldr r1, [sp, #48]
39165   ldr r2, [sp, #84]
39166   add r4, r4, #1
39167   add ip, ip, r1
39168   cmp r2, r4
39169   add r7, r7, #4
39170   mov r1, ip, asr #8
39171   bgt .L12505
39172   b .L12455
39173 .L12468:
39174   cmp r8, r2
39175   bls .L12455
39176 .L13631:
39177   mov r3, r2, asr #3
39178   add r3, sl, r3, asl #6
39179   and r2, r2, #7
39180   ldrb  ip, [r3, r2]  @ zero_extendqisi2
39181   cmp ip, #0
39182   beq .L12470
39183   ldr r3, [r5, #0]
39184   ldr r7, [sp, #24]
39185   mov r2, r3, lsr #16
39186   mov r2, r2, asl #16
39187   orr r2, r7, r2
39188   orr r1, r7, r3, asl #16
39189   orr r4, ip, r2
39190   tst r3, #256
39191   orr r2, ip, r1
39192   strne r4, [r5, #0]
39193   streq r2, [r5, #0]
39194 .L12470:
39195   add lr, lr, #1
39196   add r0, r0, fp
39197   cmp r6, lr
39198   add r5, r5, #4
39199   mov r2, r0, asr #8
39200   bgt .L12468
39201   b .L12455
39202 .L13281:
39203   ldr r9, [sp, #8]
39204   add r3, r5, r8
39205   cmp r3, r9
39206   bcs .L13649
39207   cmp r8, #0
39208   add r3, r8, #7
39209   movge r3, r8
39210   movs  r6, r3, asr #3
39211   beq .L12455
39212   ldr r2, [sp, #4]
39213   ldr r3, .L13670+28
39214   add r1, r2, r5, asl #2
39215   add r0, r0, r3
39216   mov r5, #0
39217   b .L13581
39218 .L13650:
39219   sub ip, ip, #64
39220   add r1, r1, #32
39221 .L13581:
39222   ldr r2, [r0, #68]
39223   cmp r2, #0
39224   beq .L13582
39225   ands  lr, r2, #255
39226   beq .L13584
39227   ldr r3, [r1, #12]
39228   tst r3, #256
39229   movne r3, r3, lsr #16
39230   ldrne r4, [sp, #24]
39231   ldreq r7, [sp, #24]
39232   movne r3, r3, asl #16
39233   orrne r3, r4, r3
39234   orreq r3, r7, r3, asl #16
39235   orrne r3, lr, r3
39236   orreq r3, lr, r3
39237   strne r3, [r1, #12]
39238   streq r3, [r1, #12]
39239 .L13584:
39240   mov r3, r2, lsr #8
39241   ands  lr, r3, #255
39242   beq .L13588
39243   ldr r3, [r1, #8]
39244   tst r3, #256
39245   movne r3, r3, lsr #16
39246   ldrne r8, [sp, #24]
39247   ldreq r9, [sp, #24]
39248   movne r3, r3, asl #16
39249   orrne r3, r8, r3
39250   orreq r3, r9, r3, asl #16
39251   orrne r3, lr, r3
39252   orreq r3, lr, r3
39253   strne r3, [r1, #8]
39254   streq r3, [r1, #8]
39255 .L13588:
39256   mov r3, r2, lsr #16
39257   ands  lr, r3, #255
39258   beq .L13592
39259   ldr r3, [r1, #4]
39260   tst r3, #256
39261   movne r3, r3, lsr #16
39262   ldrne sl, [sp, #24]
39263   ldreq r4, [sp, #24]
39264   movne r3, r3, asl #16
39265   orrne r3, sl, r3
39266   orreq r3, r4, r3, asl #16
39267   orrne r3, lr, r3
39268   orreq r3, lr, r3
39269   strne r3, [r1, #4]
39270   streq r3, [r1, #4]
39271 .L13592:
39272   movs  r2, r2, lsr #24
39273   beq .L13582
39274   ldr r3, [r1, #0]
39275   tst r3, #256
39276   movne r3, r3, lsr #16
39277   ldrne r7, [sp, #24]
39278   ldreq r8, [sp, #24]
39279   movne r3, r3, asl #16
39280   orrne r3, r7, r3
39281   orreq r3, r8, r3, asl #16
39282   orrne r3, r2, r3
39283   orreq r3, r2, r3
39284   strne r3, [r1, #0]
39285   streq r3, [r1, #0]
39286 .L13582:
39287   ldr lr, [ip, #0]
39288   cmp lr, #0
39289   beq .L13599
39290   ands  r4, lr, #255
39291   beq .L13601
39292   ldr r2, [r1, #28]
39293   tst r2, #256
39294   ldrne r9, [sp, #24]
39295   ldreq sl, [sp, #24]
39296   movne r3, r2, lsr #16
39297   movne r3, r3, asl #16
39298   orreq r3, sl, r4
39299   orrne r2, r9, r4
39300   orrne r3, r3, r2
39301   orreq r3, r3, r2, asl #16
39302   strne r3, [r1, #28]
39303   streq r3, [r1, #28]
39304 .L13601:
39305   mov r3, lr, lsr #8
39306   ands  r2, r3, #255
39307   beq .L13605
39308   ldr r3, [r1, #24]
39309   tst r3, #256
39310   movne r3, r3, lsr #16
39311   ldrne r4, [sp, #24]
39312   ldreq r7, [sp, #24]
39313   movne r3, r3, asl #16
39314   orrne r3, r4, r3
39315   orreq r3, r7, r3, asl #16
39316   orrne r3, r2, r3
39317   orreq r3, r2, r3
39318   strne r3, [r1, #24]
39319   streq r3, [r1, #24]
39320 .L13605:
39321   mov r3, lr, lsr #16
39322   ands  r2, r3, #255
39323   beq .L13609
39324   ldr r3, [r1, #20]
39325   tst r3, #256
39326   movne r3, r3, lsr #16
39327   ldrne r8, [sp, #24]
39328   ldreq r9, [sp, #24]
39329   movne r3, r3, asl #16
39330   orrne r3, r8, r3
39331   orreq r3, r9, r3, asl #16
39332   orrne r3, r2, r3
39333   orreq r3, r2, r3
39334   strne r3, [r1, #20]
39335   streq r3, [r1, #20]
39336 .L13609:
39337   movs  lr, lr, lsr #24
39338   beq .L13599
39339   ldr r2, [r1, #16]
39340   tst r2, #256
39341   ldrne sl, [sp, #24]
39342   ldreq r4, [sp, #24]
39343   movne r3, r2, lsr #16
39344   movne r3, r3, asl #16
39345   orreq r3, r4, lr
39346   orrne r2, sl, lr
39347   orrne r3, r3, r2
39348   orreq r3, r3, r2, asl #16
39349   strne r3, [r1, #16]
39350   streq r3, [r1, #16]
39351 .L13599:
39352   add r5, r5, #1
39353   cmp r6, r5
39354   sub r0, r0, #64
39355   bne .L13650
39356   b .L12455
39357 .L12945:
39358   ldr r9, [sp, #8]
39359   add r3, r5, r8
39360   cmp r9, r3
39361   bls .L13651
39362   cmp r8, #0
39363   add r3, r8, #7
39364   movge r3, r8
39365   movs  r6, r3, asr #3
39366   beq .L12455
39367   ldr r2, [sp, #4]
39368   ldr r3, .L13670+32
39369   add r1, r2, r5, asl #2
39370   add r0, r0, r3
39371   mov r4, #0
39372   b .L13245
39373 .L13652:
39374   add ip, ip, #64
39375   add r1, r1, #32
39376 .L13245:
39377   ldr r2, [ip, #0]
39378   cmp r2, #0
39379   beq .L13246
39380   ands  lr, r2, #255
39381   beq .L13248
39382   ldr r3, [r1, #0]
39383   tst r3, #256
39384   movne r3, r3, lsr #16
39385   ldrne r5, [sp, #24]
39386   ldreq r7, [sp, #24]
39387   movne r3, r3, asl #16
39388   orrne r3, r5, r3
39389   orreq r3, r7, r3, asl #16
39390   orrne r3, lr, r3
39391   orreq r3, lr, r3
39392   strne r3, [r1, #0]
39393   streq r3, [r1, #0]
39394 .L13248:
39395   mov r3, r2, lsr #8
39396   ands  lr, r3, #255
39397   beq .L13252
39398   ldr r3, [r1, #4]
39399   tst r3, #256
39400   movne r3, r3, lsr #16
39401   ldrne r8, [sp, #24]
39402   ldreq r9, [sp, #24]
39403   movne r3, r3, asl #16
39404   orrne r3, r8, r3
39405   orreq r3, r9, r3, asl #16
39406   orrne r3, lr, r3
39407   orreq r3, lr, r3
39408   strne r3, [r1, #4]
39409   streq r3, [r1, #4]
39410 .L13252:
39411   mov r3, r2, lsr #16
39412   ands  lr, r3, #255
39413   beq .L13256
39414   ldr r3, [r1, #8]
39415   tst r3, #256
39416   movne r3, r3, lsr #16
39417   ldrne sl, [sp, #24]
39418   ldreq r5, [sp, #24]
39419   movne r3, r3, asl #16
39420   orrne r3, sl, r3
39421   orreq r3, r5, r3, asl #16
39422   orrne r3, lr, r3
39423   orreq r3, lr, r3
39424   strne r3, [r1, #8]
39425   streq r3, [r1, #8]
39426 .L13256:
39427   movs  lr, r2, lsr #24
39428   beq .L13246
39429   ldr r2, [r1, #12]
39430   tst r2, #256
39431   ldrne r7, [sp, #24]
39432   ldreq r8, [sp, #24]
39433   movne r3, r2, lsr #16
39434   movne r3, r3, asl #16
39435   orreq r3, r8, lr
39436   orrne r2, r7, lr
39437   orrne r3, r3, r2
39438   orreq r3, r3, r2, asl #16
39439   strne r3, [r1, #12]
39440   streq r3, [r1, #12]
39441 .L13246:
39442   ldr r2, [r0, #-60]
39443   cmp r2, #0
39444   beq .L13263
39445   ands  lr, r2, #255
39446   beq .L13265
39447   ldr r3, [r1, #16]
39448   tst r3, #256
39449   movne r3, r3, lsr #16
39450   ldrne r9, [sp, #24]
39451   ldreq sl, [sp, #24]
39452   movne r3, r3, asl #16
39453   orrne r3, r9, r3
39454   orreq r3, sl, r3, asl #16
39455   orrne r3, lr, r3
39456   orreq r3, lr, r3
39457   strne r3, [r1, #16]
39458   streq r3, [r1, #16]
39459 .L13265:
39460   mov r3, r2, lsr #8
39461   ands  lr, r3, #255
39462   beq .L13269
39463   ldr r3, [r1, #20]
39464   tst r3, #256
39465   movne r3, r3, lsr #16
39466   ldrne r5, [sp, #24]
39467   ldreq r7, [sp, #24]
39468   movne r3, r3, asl #16
39469   orrne r3, r5, r3
39470   orreq r3, r7, r3, asl #16
39471   orrne r3, lr, r3
39472   orreq r3, lr, r3
39473   strne r3, [r1, #20]
39474   streq r3, [r1, #20]
39475 .L13269:
39476   mov r3, r2, lsr #16
39477   ands  lr, r3, #255
39478   beq .L13273
39479   ldr r3, [r1, #24]
39480   tst r3, #256
39481   movne r3, r3, lsr #16
39482   ldrne r8, [sp, #24]
39483   ldreq r9, [sp, #24]
39484   movne r3, r3, asl #16
39485   orrne r3, r8, r3
39486   orreq r3, r9, r3, asl #16
39487   orrne r3, lr, r3
39488   orreq r3, lr, r3
39489   strne r3, [r1, #24]
39490   streq r3, [r1, #24]
39491 .L13273:
39492   movs  r2, r2, lsr #24
39493   beq .L13263
39494   ldr r3, [r1, #28]
39495   tst r3, #256
39496   movne r3, r3, lsr #16
39497   ldrne sl, [sp, #24]
39498   ldreq lr, [sp, #24]
39499   movne r3, r3, asl #16
39500   orrne r3, sl, r3
39501   orreq r3, lr, r3, asl #16
39502   orrne r3, r2, r3
39503   orreq r3, r2, r3
39504   strne r3, [r1, #28]
39505   streq r3, [r1, #28]
39506 .L13263:
39507   add r4, r4, #1
39508   cmp r6, r4
39509   add r0, r0, #64
39510   bne .L13652
39511   b .L12455
39512 .L12741:
39513   ldr ip, [sp, #8]
39514   add r3, r5, r8
39515   cmp ip, r3
39516   bls .L13653
39517   cmp r8, #0
39518   add r3, r8, #7
39519   movge r3, r8
39520   movs  r7, r3, asr #3
39521   beq .L12455
39522   ldr ip, [sp, #4]
39523   add r1, ip, r5, asl #2
39524   mov ip, #0
39525   b .L12910
39526 .L13654:
39527   sub r0, r0, #32
39528   add r1, r1, #32
39529 .L12910:
39530   ldr lr, [r0, #0]
39531   cmp lr, #0
39532   beq .L12911
39533   ands  r3, lr, #15
39534   beq .L12913
39535   ldr r2, [r1, #28]
39536   orr r4, r6, r3
39537   tst r2, #256
39538   ldrne r5, [sp, #24]
39539   ldreq r8, [sp, #24]
39540   movne r3, r2, lsr #16
39541   movne r3, r3, asl #16
39542   orreq r3, r8, r4
39543   orrne r2, r5, r4
39544   orrne r3, r3, r2
39545   orreq r3, r3, r2, asl #16
39546   strne r3, [r1, #28]
39547   streq r3, [r1, #28]
39548 .L12913:
39549   mov r3, lr, lsr #4
39550   ands  r3, r3, #15
39551   beq .L12917
39552   ldr r2, [r1, #24]
39553   orr r4, r6, r3
39554   tst r2, #256
39555   ldrne r9, [sp, #24]
39556   ldreq sl, [sp, #24]
39557   movne r3, r2, lsr #16
39558   movne r3, r3, asl #16
39559   orreq r3, sl, r4
39560   orrne r2, r9, r4
39561   orrne r3, r3, r2
39562   orreq r3, r3, r2, asl #16
39563   strne r3, [r1, #24]
39564   streq r3, [r1, #24]
39565 .L12917:
39566   mov r3, lr, lsr #8
39567   ands  r3, r3, #15
39568   beq .L12921
39569   ldr r2, [r1, #20]
39570   orr r4, r6, r3
39571   tst r2, #256
39572   ldrne r5, [sp, #24]
39573   ldreq r8, [sp, #24]
39574   movne r3, r2, lsr #16
39575   movne r3, r3, asl #16
39576   orreq r3, r8, r4
39577   orrne r2, r5, r4
39578   orrne r3, r3, r2
39579   orreq r3, r3, r2, asl #16
39580   strne r3, [r1, #20]
39581   streq r3, [r1, #20]
39582 .L12921:
39583   mov r3, lr, lsr #12
39584   ands  r3, r3, #15
39585   beq .L12925
39586   ldr r2, [r1, #16]
39587   orr r4, r6, r3
39588   tst r2, #256
39589   ldrne r9, [sp, #24]
39590   ldreq sl, [sp, #24]
39591   movne r3, r2, lsr #16
39592   movne r3, r3, asl #16
39593   orreq r3, sl, r4
39594   orrne r2, r9, r4
39595   orrne r3, r3, r2
39596   orreq r3, r3, r2, asl #16
39597   strne r3, [r1, #16]
39598   streq r3, [r1, #16]
39599 .L12925:
39600   mov r3, lr, lsr #16
39601   ands  r3, r3, #15
39602   beq .L12929
39603   ldr r2, [r1, #12]
39604   orr r4, r6, r3
39605   tst r2, #256
39606   ldrne r5, [sp, #24]
39607   ldreq r8, [sp, #24]
39608   movne r3, r2, lsr #16
39609   movne r3, r3, asl #16
39610   orreq r3, r8, r4
39611   orrne r2, r5, r4
39612   orrne r3, r3, r2
39613   orreq r3, r3, r2, asl #16
39614   strne r3, [r1, #12]
39615   streq r3, [r1, #12]
39616 .L12929:
39617   mov r3, lr, lsr #20
39618   ands  r3, r3, #15
39619   beq .L12933
39620   ldr r2, [r1, #8]
39621   orr r4, r6, r3
39622   tst r2, #256
39623   ldrne r9, [sp, #24]
39624   ldreq sl, [sp, #24]
39625   movne r3, r2, lsr #16
39626   movne r3, r3, asl #16
39627   orreq r3, sl, r4
39628   orrne r2, r9, r4
39629   orrne r3, r3, r2
39630   orreq r3, r3, r2, asl #16
39631   strne r3, [r1, #8]
39632   streq r3, [r1, #8]
39633 .L12933:
39634   mov r3, lr, lsr #24
39635   ands  r3, r3, #15
39636   beq .L12937
39637   ldr r2, [r1, #4]
39638   orr r4, r6, r3
39639   tst r2, #256
39640   ldrne r5, [sp, #24]
39641   ldreq r8, [sp, #24]
39642   movne r3, r2, lsr #16
39643   movne r3, r3, asl #16
39644   orreq r3, r8, r4
39645   orrne r2, r5, r4
39646   orrne r3, r3, r2
39647   orreq r3, r3, r2, asl #16
39648   strne r3, [r1, #4]
39649   streq r3, [r1, #4]
39650 .L12937:
39651   movs  r3, lr, lsr #28
39652   beq .L12911
39653   ldr r2, [r1, #0]
39654   orr lr, r6, r3
39655   tst r2, #256
39656   ldrne r9, [sp, #24]
39657   ldreq sl, [sp, #24]
39658   movne r3, r2, lsr #16
39659   movne r3, r3, asl #16
39660   orreq r3, sl, lr
39661   orrne r2, r9, lr
39662   orrne r3, r3, r2
39663   orreq r3, r3, r2, asl #16
39664   strne r3, [r1, #0]
39665   streq r3, [r1, #0]
39666 .L12911:
39667   add ip, ip, #1
39668   cmp r7, ip
39669   bne .L13654
39670   b .L12455
39671 .L12537:
39672   ldr lr, [sp, #8]
39673   add r3, r5, r8
39674   cmp lr, r3
39675   bls .L13655
39676   cmp r8, #0
39677   add r3, r8, #7
39678   movge r3, r8
39679   movs  r7, r3, asr #3
39680   beq .L12455
39681   ldr lr, [sp, #4]
39682   mov r0, #0
39683   add r1, lr, r5, asl #2
39684   b .L12706
39685 .L13656:
39686   add ip, ip, #32
39687   add r1, r1, #32
39688 .L12706:
39689   ldr lr, [ip, #0]
39690   cmp lr, #0
39691   beq .L12707
39692   ands  r3, lr, #15
39693   beq .L12709
39694   ldr r2, [r1, #0]
39695   orr r4, r6, r3
39696   tst r2, #256
39697   ldrne r5, [sp, #24]
39698   ldreq r8, [sp, #24]
39699   movne r3, r2, lsr #16
39700   movne r3, r3, asl #16
39701   orreq r3, r8, r4
39702   orrne r2, r5, r4
39703   orrne r3, r3, r2
39704   orreq r3, r3, r2, asl #16
39705   strne r3, [r1, #0]
39706   streq r3, [r1, #0]
39707 .L12709:
39708   mov r3, lr, lsr #4
39709   ands  r3, r3, #15
39710   beq .L12713
39711   ldr r2, [r1, #4]
39712   orr r4, r6, r3
39713   tst r2, #256
39714   ldrne r9, [sp, #24]
39715   ldreq sl, [sp, #24]
39716   movne r3, r2, lsr #16
39717   movne r3, r3, asl #16
39718   orreq r3, sl, r4
39719   orrne r2, r9, r4
39720   orrne r3, r3, r2
39721   orreq r3, r3, r2, asl #16
39722   strne r3, [r1, #4]
39723   streq r3, [r1, #4]
39724 .L12713:
39725   mov r3, lr, lsr #8
39726   ands  r3, r3, #15
39727   beq .L12717
39728   ldr r2, [r1, #8]
39729   orr r4, r6, r3
39730   tst r2, #256
39731   ldrne r5, [sp, #24]
39732   ldreq r8, [sp, #24]
39733   movne r3, r2, lsr #16
39734   movne r3, r3, asl #16
39735   orreq r3, r8, r4
39736   orrne r2, r5, r4
39737   orrne r3, r3, r2
39738   orreq r3, r3, r2, asl #16
39739   strne r3, [r1, #8]
39740   streq r3, [r1, #8]
39741 .L12717:
39742   mov r3, lr, lsr #12
39743   ands  r3, r3, #15
39744   beq .L12721
39745   ldr r2, [r1, #12]
39746   orr r4, r6, r3
39747   tst r2, #256
39748   ldrne r9, [sp, #24]
39749   ldreq sl, [sp, #24]
39750   movne r3, r2, lsr #16
39751   movne r3, r3, asl #16
39752   orreq r3, sl, r4
39753   orrne r2, r9, r4
39754   orrne r3, r3, r2
39755   orreq r3, r3, r2, asl #16
39756   strne r3, [r1, #12]
39757   streq r3, [r1, #12]
39758 .L12721:
39759   mov r3, lr, lsr #16
39760   ands  r3, r3, #15
39761   beq .L12725
39762   ldr r2, [r1, #16]
39763   orr r4, r6, r3
39764   tst r2, #256
39765   ldrne r5, [sp, #24]
39766   ldreq r8, [sp, #24]
39767   movne r3, r2, lsr #16
39768   movne r3, r3, asl #16
39769   orreq r3, r8, r4
39770   orrne r2, r5, r4
39771   orrne r3, r3, r2
39772   orreq r3, r3, r2, asl #16
39773   strne r3, [r1, #16]
39774   streq r3, [r1, #16]
39775 .L12725:
39776   mov r3, lr, lsr #20
39777   ands  r3, r3, #15
39778   beq .L12729
39779   ldr r2, [r1, #20]
39780   orr r4, r6, r3
39781   tst r2, #256
39782   ldrne r9, [sp, #24]
39783   ldreq sl, [sp, #24]
39784   movne r3, r2, lsr #16
39785   movne r3, r3, asl #16
39786   orreq r3, sl, r4
39787   orrne r2, r9, r4
39788   orrne r3, r3, r2
39789   orreq r3, r3, r2, asl #16
39790   strne r3, [r1, #20]
39791   streq r3, [r1, #20]
39792 .L12729:
39793   mov r3, lr, lsr #24
39794   ands  r3, r3, #15
39795   beq .L12733
39796   ldr r2, [r1, #24]
39797   orr r4, r6, r3
39798   tst r2, #256
39799   ldrne r5, [sp, #24]
39800   ldreq r8, [sp, #24]
39801   movne r3, r2, lsr #16
39802   movne r3, r3, asl #16
39803   orreq r3, r8, r4
39804   orrne r2, r5, r4
39805   orrne r3, r3, r2
39806   orreq r3, r3, r2, asl #16
39807   strne r3, [r1, #24]
39808   streq r3, [r1, #24]
39809 .L12733:
39810   movs  r3, lr, lsr #28
39811   beq .L12707
39812   ldr r2, [r1, #28]
39813   orr lr, r6, r3
39814   tst r2, #256
39815   ldrne r9, [sp, #24]
39816   ldreq sl, [sp, #24]
39817   movne r3, r2, lsr #16
39818   movne r3, r3, asl #16
39819   orreq r3, sl, lr
39820   orrne r2, r9, lr
39821   orrne r3, r3, r2
39822   orreq r3, r3, r2, asl #16
39823   strne r3, [r1, #28]
39824   streq r3, [r1, #28]
39825 .L12707:
39826   add r0, r0, #1
39827   cmp r7, r0
39828   bne .L13656
39829   b .L12455
39830 .L13643:
39831   add sp, sp, #88
39832   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
39833   b render_scanline_obj_color32_2D
39834 .L13655:
39835   rsb r0, r5, lr
39836   cmp r0, #0
39837   ble .L12455
39838   ldr r1, [sp, #4]
39839   movs  sl, r0, lsr #3
39840   add r8, r1, r5, asl #2
39841   beq .L12661
39842   mov r4, r8
39843   mov r7, ip
39844   mov r1, #0
39845 .L12663:
39846   ldr lr, [r7, #0]
39847   cmp lr, #0
39848   beq .L12664
39849   ands  r3, lr, #15
39850   beq .L12666
39851   ldr r2, [r4, #0]
39852   orr r5, r6, r3
39853   tst r2, #256
39854   ldrne r9, [sp, #24]
39855   ldreq r9, [sp, #24]
39856   movne r3, r2, lsr #16
39857   movne r3, r3, asl #16
39858   orreq r3, r9, r5
39859   orrne r2, r9, r5
39860   orrne r3, r3, r2
39861   orreq r3, r3, r2, asl #16
39862   strne r3, [r4, #0]
39863   streq r3, [r4, #0]
39864 .L12666:
39865   mov r3, lr, lsr #4
39866   ands  r3, r3, #15
39867   beq .L12670
39868   ldr r2, [r4, #4]
39869   orr r5, r6, r3
39870   tst r2, #256
39871   ldrne r9, [sp, #24]
39872   ldreq r9, [sp, #24]
39873   movne r3, r2, lsr #16
39874   movne r3, r3, asl #16
39875   orreq r3, r9, r5
39876   orrne r2, r9, r5
39877   orrne r3, r3, r2
39878   orreq r3, r3, r2, asl #16
39879   strne r3, [r4, #4]
39880   streq r3, [r4, #4]
39881 .L12670:
39882   mov r3, lr, lsr #8
39883   ands  r3, r3, #15
39884   beq .L12674
39885   ldr r2, [r4, #8]
39886   orr r5, r6, r3
39887   tst r2, #256
39888   ldrne r9, [sp, #24]
39889   ldreq r9, [sp, #24]
39890   movne r3, r2, lsr #16
39891   movne r3, r3, asl #16
39892   orreq r3, r9, r5
39893   orrne r2, r9, r5
39894   orrne r3, r3, r2
39895   orreq r3, r3, r2, asl #16
39896   strne r3, [r4, #8]
39897   streq r3, [r4, #8]
39898 .L12674:
39899   mov r3, lr, lsr #12
39900   ands  r3, r3, #15
39901   beq .L12678
39902   ldr r2, [r4, #12]
39903   orr r5, r6, r3
39904   tst r2, #256
39905   ldrne r9, [sp, #24]
39906   ldreq r9, [sp, #24]
39907   movne r3, r2, lsr #16
39908   movne r3, r3, asl #16
39909   orreq r3, r9, r5
39910   orrne r2, r9, r5
39911   orrne r3, r3, r2
39912   orreq r3, r3, r2, asl #16
39913   strne r3, [r4, #12]
39914   streq r3, [r4, #12]
39915 .L12678:
39916   mov r3, lr, lsr #16
39917   ands  r3, r3, #15
39918   beq .L12682
39919   ldr r2, [r4, #16]
39920   orr r5, r6, r3
39921   tst r2, #256
39922   ldrne r9, [sp, #24]
39923   ldreq r9, [sp, #24]
39924   movne r3, r2, lsr #16
39925   movne r3, r3, asl #16
39926   orreq r3, r9, r5
39927   orrne r2, r9, r5
39928   orrne r3, r3, r2
39929   orreq r3, r3, r2, asl #16
39930   strne r3, [r4, #16]
39931   streq r3, [r4, #16]
39932 .L12682:
39933   mov r3, lr, lsr #20
39934   ands  r3, r3, #15
39935   beq .L12686
39936   ldr r2, [r4, #20]
39937   orr r5, r6, r3
39938   tst r2, #256
39939   ldrne r9, [sp, #24]
39940   ldreq r9, [sp, #24]
39941   movne r3, r2, lsr #16
39942   movne r3, r3, asl #16
39943   orreq r3, r9, r5
39944   orrne r2, r9, r5
39945   orrne r3, r3, r2
39946   orreq r3, r3, r2, asl #16
39947   strne r3, [r4, #20]
39948   streq r3, [r4, #20]
39949 .L12686:
39950   mov r3, lr, lsr #24
39951   ands  r3, r3, #15
39952   beq .L12690
39953   ldr r2, [r4, #24]
39954   orr r5, r6, r3
39955   tst r2, #256
39956   ldrne r9, [sp, #24]
39957   ldreq r9, [sp, #24]
39958   movne r3, r2, lsr #16
39959   movne r3, r3, asl #16
39960   orreq r3, r9, r5
39961   orrne r2, r9, r5
39962   orrne r3, r3, r2
39963   orreq r3, r3, r2, asl #16
39964   strne r3, [r4, #24]
39965   streq r3, [r4, #24]
39966 .L12690:
39967   movs  r3, lr, lsr #28
39968   beq .L12664
39969   ldr r2, [r4, #28]
39970   orr lr, r6, r3
39971   tst r2, #256
39972   ldrne r5, [sp, #24]
39973   ldreq r9, [sp, #24]
39974   movne r3, r2, lsr #16
39975   movne r3, r3, asl #16
39976   orreq r3, r9, lr
39977   orrne r2, r5, lr
39978   orrne r3, r3, r2
39979   orreq r3, r3, r2, asl #16
39980   strne r3, [r4, #28]
39981   streq r3, [r4, #28]
39982 .L12664:
39983   add r1, r1, #1
39984   cmp sl, r1
39985   add r7, r7, #32
39986   add r4, r4, #32
39987   bne .L12663
39988   mov r3, sl, asl #5
39989   add ip, ip, r3
39990   add r8, r8, r3
39991 .L12661:
39992   ands  r4, r0, #7
39993   beq .L12455
39994   ldr ip, [ip, #0]
39995   mov lr, #0
39996 .L12699:
39997   ands  r3, ip, #15
39998   beq .L12700
39999   ldr r1, [r8, #0]
40000   ldr sl, [sp, #24]
40001   orr r2, r6, r3
40002   mov r3, r1, lsr #16
40003   orr r0, sl, r2
40004   mov r3, r3, asl #16
40005   orr r2, sl, r2
40006   tst r1, #256
40007   orr r3, r3, r0
40008   orr r2, r2, r1, asl #16
40009   strne r3, [r8, #0]
40010   streq r2, [r8, #0]
40011 .L12700:
40012   add lr, lr, #1
40013   cmp r4, lr
40014   mov ip, ip, lsr #4
40015   add r8, r8, #4
40016   bne .L12699
40017   b .L12455
40018 .L13653:
40019   rsb sl, r5, ip
40020   cmp sl, #0
40021   ble .L12455
40022   ldr lr, [sp, #4]
40023   movs  ip, sl, lsr #3
40024   add r8, lr, r5, asl #2
40025   beq .L12865
40026   mov r4, r8
40027   mov r7, r0
40028   mov r1, #0
40029 .L12867:
40030   ldr lr, [r7, #0]
40031   cmp lr, #0
40032   beq .L12868
40033   ands  r3, lr, #15
40034   beq .L12870
40035   ldr r2, [r4, #28]
40036   orr r5, r6, r3
40037   tst r2, #256
40038   ldrne r9, [sp, #24]
40039   ldreq r9, [sp, #24]
40040   movne r3, r2, lsr #16
40041   movne r3, r3, asl #16
40042   orreq r3, r9, r5
40043   orrne r2, r9, r5
40044   orrne r3, r3, r2
40045   orreq r3, r3, r2, asl #16
40046   strne r3, [r4, #28]
40047   streq r3, [r4, #28]
40048 .L12870:
40049   mov r3, lr, lsr #4
40050   ands  r3, r3, #15
40051   beq .L12874
40052   ldr r2, [r4, #24]
40053   orr r5, r6, r3
40054   tst r2, #256
40055   ldrne r9, [sp, #24]
40056   ldreq r9, [sp, #24]
40057   movne r3, r2, lsr #16
40058   movne r3, r3, asl #16
40059   orreq r3, r9, r5
40060   orrne r2, r9, r5
40061   orrne r3, r3, r2
40062   orreq r3, r3, r2, asl #16
40063   strne r3, [r4, #24]
40064   streq r3, [r4, #24]
40065 .L12874:
40066   mov r3, lr, lsr #8
40067   ands  r3, r3, #15
40068   beq .L12878
40069   ldr r2, [r4, #20]
40070   orr r5, r6, r3
40071   tst r2, #256
40072   ldrne r9, [sp, #24]
40073   ldreq r9, [sp, #24]
40074   movne r3, r2, lsr #16
40075   movne r3, r3, asl #16
40076   orreq r3, r9, r5
40077   orrne r2, r9, r5
40078   orrne r3, r3, r2
40079   orreq r3, r3, r2, asl #16
40080   strne r3, [r4, #20]
40081   streq r3, [r4, #20]
40082 .L12878:
40083   mov r3, lr, lsr #12
40084   ands  r3, r3, #15
40085   beq .L12882
40086   ldr r2, [r4, #16]
40087   orr r5, r6, r3
40088   tst r2, #256
40089   ldrne r9, [sp, #24]
40090   ldreq r9, [sp, #24]
40091   movne r3, r2, lsr #16
40092   movne r3, r3, asl #16
40093   orreq r3, r9, r5
40094   orrne r2, r9, r5
40095   orrne r3, r3, r2
40096   orreq r3, r3, r2, asl #16
40097   strne r3, [r4, #16]
40098   streq r3, [r4, #16]
40099 .L12882:
40100   mov r3, lr, lsr #16
40101   ands  r3, r3, #15
40102   beq .L12886
40103   ldr r2, [r4, #12]
40104   orr r5, r6, r3
40105   tst r2, #256
40106   ldrne r9, [sp, #24]
40107   ldreq r9, [sp, #24]
40108   movne r3, r2, lsr #16
40109   movne r3, r3, asl #16
40110   orreq r3, r9, r5
40111   orrne r2, r9, r5
40112   orrne r3, r3, r2
40113   orreq r3, r3, r2, asl #16
40114   strne r3, [r4, #12]
40115   streq r3, [r4, #12]
40116 .L12886:
40117   mov r3, lr, lsr #20
40118   ands  r3, r3, #15
40119   beq .L12890
40120   ldr r2, [r4, #8]
40121   orr r5, r6, r3
40122   tst r2, #256
40123   ldrne r9, [sp, #24]
40124   ldreq r9, [sp, #24]
40125   movne r3, r2, lsr #16
40126   movne r3, r3, asl #16
40127   orreq r3, r9, r5
40128   orrne r2, r9, r5
40129   orrne r3, r3, r2
40130   orreq r3, r3, r2, asl #16
40131   strne r3, [r4, #8]
40132   streq r3, [r4, #8]
40133 .L12890:
40134   mov r3, lr, lsr #24
40135   ands  r3, r3, #15
40136   beq .L12894
40137   ldr r2, [r4, #4]
40138   orr r5, r6, r3
40139   tst r2, #256
40140   ldrne r9, [sp, #24]
40141   ldreq r9, [sp, #24]
40142   movne r3, r2, lsr #16
40143   movne r3, r3, asl #16
40144   orreq r3, r9, r5
40145   orrne r2, r9, r5
40146   orrne r3, r3, r2
40147   orreq r3, r3, r2, asl #16
40148   strne r3, [r4, #4]
40149   streq r3, [r4, #4]
40150 .L12894:
40151   movs  r3, lr, lsr #28
40152   beq .L12868
40153   ldr r2, [r4, #0]
40154   orr lr, r6, r3
40155   tst r2, #256
40156   ldrne r5, [sp, #24]
40157   ldreq r9, [sp, #24]
40158   movne r3, r2, lsr #16
40159   movne r3, r3, asl #16
40160   orreq r3, r9, lr
40161   orrne r2, r5, lr
40162   orrne r3, r3, r2
40163   orreq r3, r3, r2, asl #16
40164   strne r3, [r4, #0]
40165   streq r3, [r4, #0]
40166 .L12868:
40167   add r1, r1, #1
40168   cmp ip, r1
40169   sub r7, r7, #32
40170   add r4, r4, #32
40171   bne .L12867
40172   rsb r3, ip, ip, asl #27
40173   add r0, r0, r3, asl #5
40174   add r8, r8, ip, asl #5
40175 .L12865:
40176   ands  r4, sl, #7
40177   beq .L12455
40178   ldr ip, [r0, #0]
40179   mov lr, #0
40180 .L12903:
40181   movs  r3, ip, lsr #28
40182   beq .L12904
40183   ldr r1, [r8, #0]
40184   ldr sl, [sp, #24]
40185   orr r2, r6, r3
40186   mov r3, r1, lsr #16
40187   orr r0, sl, r2
40188   mov r3, r3, asl #16
40189   orr r2, sl, r2
40190   tst r1, #256
40191   orr r3, r3, r0
40192   orr r2, r2, r1, asl #16
40193   strne r3, [r8, #0]
40194   streq r2, [r8, #0]
40195 .L12904:
40196   add lr, lr, #1
40197   cmp r4, lr
40198   mov ip, ip, asl #4
40199   add r8, r8, #4
40200   bne .L12903
40201   b .L12455
40202 .L13651:
40203   rsb r8, r5, r9
40204   cmp r8, #0
40205   ble .L12455
40206   ldr sl, [sp, #4]
40207   movs  r7, r8, lsr #3
40208   add r6, sl, r5, asl #2
40209   beq .L13178
40210   ldr r3, .L13672
40211   mov lr, r6
40212   add r0, r0, r3
40213   mov r5, ip
40214   mov r1, #0
40215 .L13180:
40216   ldr r2, [r5, #0]
40217   cmp r2, #0
40218   beq .L13181
40219   ands  r4, r2, #255
40220   beq .L13183
40221   ldr r3, [lr, #0]
40222   tst r3, #256
40223   movne r3, r3, lsr #16
40224   ldrne r9, [sp, #24]
40225   ldreq sl, [sp, #24]
40226   movne r3, r3, asl #16
40227   orrne r3, r9, r3
40228   orreq r3, sl, r3, asl #16
40229   orrne r3, r4, r3
40230   orreq r3, r4, r3
40231   strne r3, [lr, #0]
40232   streq r3, [lr, #0]
40233 .L13183:
40234   mov r3, r2, lsr #8
40235   ands  r4, r3, #255
40236   beq .L13187
40237   ldr r3, [lr, #4]
40238   tst r3, #256
40239   movne r3, r3, lsr #16
40240   ldrne r9, [sp, #24]
40241   ldreq sl, [sp, #24]
40242   movne r3, r3, asl #16
40243   orrne r3, r9, r3
40244   orreq r3, sl, r3, asl #16
40245   orrne r3, r4, r3
40246   orreq r3, r4, r3
40247   strne r3, [lr, #4]
40248   streq r3, [lr, #4]
40249 .L13187:
40250   mov r3, r2, lsr #16
40251   ands  r4, r3, #255
40252   beq .L13191
40253   ldr r3, [lr, #8]
40254   tst r3, #256
40255   movne r3, r3, lsr #16
40256   ldrne r9, [sp, #24]
40257   ldreq sl, [sp, #24]
40258   movne r3, r3, asl #16
40259   orrne r3, r9, r3
40260   orreq r3, sl, r3, asl #16
40261   orrne r3, r4, r3
40262   orreq r3, r4, r3
40263   strne r3, [lr, #8]
40264   streq r3, [lr, #8]
40265 .L13191:
40266   movs  r4, r2, lsr #24
40267   beq .L13181
40268   ldr r2, [lr, #12]
40269   tst r2, #256
40270   ldrne r9, [sp, #24]
40271   ldreq sl, [sp, #24]
40272   movne r3, r2, lsr #16
40273   movne r3, r3, asl #16
40274   orreq r3, sl, r4
40275   orrne r2, r9, r4
40276   orrne r3, r3, r2
40277   orreq r3, r3, r2, asl #16
40278   strne r3, [lr, #12]
40279   streq r3, [lr, #12]
40280 .L13181:
40281   ldr r2, [r0, #-60]
40282   cmp r2, #0
40283   beq .L13198
40284   ands  r4, r2, #255
40285   beq .L13200
40286   ldr r3, [lr, #16]
40287   tst r3, #256
40288   movne r3, r3, lsr #16
40289   ldrne r9, [sp, #24]
40290   ldreq sl, [sp, #24]
40291   movne r3, r3, asl #16
40292   orrne r3, r9, r3
40293   orreq r3, sl, r3, asl #16
40294   orrne r3, r4, r3
40295   orreq r3, r4, r3
40296   strne r3, [lr, #16]
40297   streq r3, [lr, #16]
40298 .L13200:
40299   mov r3, r2, lsr #8
40300   ands  r4, r3, #255
40301   beq .L13204
40302   ldr r3, [lr, #20]
40303   tst r3, #256
40304   movne r3, r3, lsr #16
40305   ldrne r9, [sp, #24]
40306   ldreq sl, [sp, #24]
40307   movne r3, r3, asl #16
40308   orrne r3, r9, r3
40309   orreq r3, sl, r3, asl #16
40310   orrne r3, r4, r3
40311   orreq r3, r4, r3
40312   strne r3, [lr, #20]
40313   streq r3, [lr, #20]
40314 .L13204:
40315   mov r3, r2, lsr #16
40316   ands  r4, r3, #255
40317   beq .L13208
40318   ldr r3, [lr, #24]
40319   tst r3, #256
40320   movne r3, r3, lsr #16
40321   ldrne r9, [sp, #24]
40322   ldreq sl, [sp, #24]
40323   movne r3, r3, asl #16
40324   orrne r3, r9, r3
40325   orreq r3, sl, r3, asl #16
40326   orrne r3, r4, r3
40327   orreq r3, r4, r3
40328   strne r3, [lr, #24]
40329   streq r3, [lr, #24]
40330 .L13208:
40331   movs  r2, r2, lsr #24
40332   beq .L13198
40333   ldr r3, [lr, #28]
40334   tst r3, #256
40335   movne r3, r3, lsr #16
40336   ldrne r4, [sp, #24]
40337   ldreq r9, [sp, #24]
40338   movne r3, r3, asl #16
40339   orrne r3, r4, r3
40340   orreq r3, r9, r3, asl #16
40341   orrne r3, r2, r3
40342   orreq r3, r2, r3
40343   strne r3, [lr, #28]
40344   streq r3, [lr, #28]
40345 .L13198:
40346   add r1, r1, #1
40347   cmp r7, r1
40348   add r5, r5, #64
40349   add lr, lr, #32
40350   add r0, r0, #64
40351   bne .L13180
40352   add ip, ip, r7, asl #6
40353   add r6, r6, r7, asl #5
40354 .L13178:
40355   ands  r4, r8, #7
40356   beq .L12455
40357   cmp r4, #3
40358   ldrls ip, [ip, #0]
40359   bls .L13237
40360   ldr r2, [ip, #0]
40361   cmp r2, #0
40362   beq .L13219
40363   ands  r1, r2, #255
40364   beq .L13221
40365   ldr r3, [r6, #0]
40366   tst r3, #256
40367   movne r3, r3, lsr #16
40368   ldrne sl, [sp, #24]
40369   ldreq lr, [sp, #24]
40370   movne r3, r3, asl #16
40371   orrne r3, sl, r3
40372   orreq r3, lr, r3, asl #16
40373   orrne r3, r1, r3
40374   orreq r3, r1, r3
40375   strne r3, [r6, #0]
40376   streq r3, [r6, #0]
40377 .L13221:
40378   mov r3, r2, lsr #8
40379   ands  r1, r3, #255
40380   beq .L13225
40381   ldr r3, [r6, #4]
40382   tst r3, #256
40383   movne r3, r3, lsr #16
40384   ldrne r0, [sp, #24]
40385   ldreq r5, [sp, #24]
40386   movne r3, r3, asl #16
40387   orrne r3, r0, r3
40388   orreq r3, r5, r3, asl #16
40389   orrne r3, r1, r3
40390   orreq r3, r1, r3
40391   strne r3, [r6, #4]
40392   streq r3, [r6, #4]
40393 .L13225:
40394   mov r3, r2, lsr #16
40395   ands  r1, r3, #255
40396   beq .L13229
40397   ldr r3, [r6, #8]
40398   tst r3, #256
40399   movne r3, r3, lsr #16
40400   ldrne r7, [sp, #24]
40401   ldreq r8, [sp, #24]
40402   movne r3, r3, asl #16
40403   orrne r3, r7, r3
40404   orreq r3, r8, r3, asl #16
40405   orrne r3, r1, r3
40406   orreq r3, r1, r3
40407   strne r3, [r6, #8]
40408   streq r3, [r6, #8]
40409 .L13229:
40410   movs  r1, r2, lsr #24
40411   beq .L13219
40412   ldr r2, [r6, #12]
40413   tst r2, #256
40414   ldrne r9, [sp, #24]
40415   ldreq sl, [sp, #24]
40416   movne r3, r2, lsr #16
40417   movne r3, r3, asl #16
40418   orreq r3, sl, r1
40419   orrne r2, r9, r1
40420   orrne r3, r3, r2
40421   orreq r3, r3, r2, asl #16
40422   strne r3, [r6, #12]
40423   streq r3, [r6, #12]
40424 .L13219:
40425   subs  r4, r4, #4
40426   ldr ip, [ip, #4]
40427   addne r6, r6, #16
40428   beq .L12455
40429 .L13237:
40430   mov lr, #0
40431 .L13238:
40432   ands  r3, ip, #255
40433   beq .L13239
40434   ldr r2, [r6, #0]
40435   ldr r0, [sp, #24]
40436   tst r2, #256
40437   orr r1, r0, r3
40438   orr r0, r0, r3
40439   mov r3, r2, lsr #16
40440   mov r3, r3, asl #16
40441   orr r3, r3, r1
40442   orr r1, r0, r2, asl #16
40443   strne r3, [r6, #0]
40444   streq r1, [r6, #0]
40445 .L13239:
40446   add lr, lr, #1
40447   cmp lr, r4
40448   mov ip, ip, lsr #8
40449   add r6, r6, #4
40450   bcc .L13238
40451   b .L12455
40452 .L13649:
40453   rsb sl, r5, r9
40454   cmp sl, #0
40455   ble .L12455
40456   ldr lr, [sp, #4]
40457   movs  r8, sl, lsr #3
40458   add r7, lr, r5, asl #2
40459   beq .L13514
40460   ldr r3, .L13672+4
40461   mov r4, r7
40462   add r0, r0, r3
40463   mov r6, ip
40464   mov r1, #0
40465 .L13516:
40466   ldr r2, [r0, #68]
40467   cmp r2, #0
40468   beq .L13517
40469   ands  lr, r2, #255
40470   beq .L13519
40471   ldr r3, [r4, #12]
40472   tst r3, #256
40473   movne r3, r3, lsr #16
40474   ldrne r5, [sp, #24]
40475   ldreq r9, [sp, #24]
40476   movne r3, r3, asl #16
40477   orrne r3, r5, r3
40478   orreq r3, r9, r3, asl #16
40479   orrne r3, lr, r3
40480   orreq r3, lr, r3
40481   strne r3, [r4, #12]
40482   streq r3, [r4, #12]
40483 .L13519:
40484   mov r3, r2, lsr #8
40485   ands  lr, r3, #255
40486   beq .L13523
40487   ldr r3, [r4, #8]
40488   tst r3, #256
40489   movne r3, r3, lsr #16
40490   ldrne r5, [sp, #24]
40491   ldreq r9, [sp, #24]
40492   movne r3, r3, asl #16
40493   orrne r3, r5, r3
40494   orreq r3, r9, r3, asl #16
40495   orrne r3, lr, r3
40496   orreq r3, lr, r3
40497   strne r3, [r4, #8]
40498   streq r3, [r4, #8]
40499 .L13523:
40500   mov r3, r2, lsr #16
40501   ands  lr, r3, #255
40502   beq .L13527
40503   ldr r3, [r4, #4]
40504   tst r3, #256
40505   movne r3, r3, lsr #16
40506   ldrne r5, [sp, #24]
40507   ldreq r9, [sp, #24]
40508   movne r3, r3, asl #16
40509   orrne r3, r5, r3
40510   orreq r3, r9, r3, asl #16
40511   orrne r3, lr, r3
40512   orreq r3, lr, r3
40513   strne r3, [r4, #4]
40514   streq r3, [r4, #4]
40515 .L13527:
40516   movs  r2, r2, lsr #24
40517   beq .L13517
40518   ldr r3, [r4, #0]
40519   tst r3, #256
40520   movne r3, r3, lsr #16
40521   ldrne lr, [sp, #24]
40522   ldreq r5, [sp, #24]
40523   movne r3, r3, asl #16
40524   orrne r3, lr, r3
40525   orreq r3, r5, r3, asl #16
40526   orrne r3, r2, r3
40527   orreq r3, r2, r3
40528   strne r3, [r4, #0]
40529   streq r3, [r4, #0]
40530 .L13517:
40531   ldr lr, [r6, #0]
40532   cmp lr, #0
40533   beq .L13534
40534   ands  r5, lr, #255
40535   beq .L13536
40536   ldr r2, [r4, #28]
40537   tst r2, #256
40538   ldrne r9, [sp, #24]
40539   ldreq r9, [sp, #24]
40540   movne r3, r2, lsr #16
40541   movne r3, r3, asl #16
40542   orreq r3, r9, r5
40543   orrne r2, r9, r5
40544   orrne r3, r3, r2
40545   orreq r3, r3, r2, asl #16
40546   strne r3, [r4, #28]
40547   streq r3, [r4, #28]
40548 .L13536:
40549   mov r3, lr, lsr #8
40550   ands  r2, r3, #255
40551   beq .L13540
40552   ldr r3, [r4, #24]
40553   tst r3, #256
40554   movne r3, r3, lsr #16
40555   ldrne r5, [sp, #24]
40556   ldreq r9, [sp, #24]
40557   movne r3, r3, asl #16
40558   orrne r3, r5, r3
40559   orreq r3, r9, r3, asl #16
40560   orrne r3, r2, r3
40561   orreq r3, r2, r3
40562   strne r3, [r4, #24]
40563   streq r3, [r4, #24]
40564 .L13540:
40565   mov r3, lr, lsr #16
40566   ands  r2, r3, #255
40567   beq .L13544
40568   ldr r3, [r4, #20]
40569   tst r3, #256
40570   movne r3, r3, lsr #16
40571   ldrne r5, [sp, #24]
40572   ldreq r9, [sp, #24]
40573   movne r3, r3, asl #16
40574   orrne r3, r5, r3
40575   orreq r3, r9, r3, asl #16
40576   orrne r3, r2, r3
40577   orreq r3, r2, r3
40578   strne r3, [r4, #20]
40579   streq r3, [r4, #20]
40580 .L13544:
40581   movs  lr, lr, lsr #24
40582   beq .L13534
40583   ldr r2, [r4, #16]
40584   tst r2, #256
40585   ldrne r5, [sp, #24]
40586   ldreq r9, [sp, #24]
40587   movne r3, r2, lsr #16
40588   movne r3, r3, asl #16
40589   orreq r3, r9, lr
40590   orrne r2, r5, lr
40591   orrne r3, r3, r2
40592   orreq r3, r3, r2, asl #16
40593   strne r3, [r4, #16]
40594   streq r3, [r4, #16]
40595 .L13534:
40596   add r1, r1, #1
40597   cmp r8, r1
40598   sub r6, r6, #64
40599   add r4, r4, #32
40600   sub r0, r0, #64
40601   bne .L13516
40602   rsb r3, r8, r8, asl #26
40603   add ip, ip, r3, asl #6
40604   add r7, r7, r8, asl #5
40605 .L13514:
40606   ands  r4, sl, #7
40607   beq .L12455
40608   cmp r4, #3
40609   ldrls ip, [ip, #4]
40610   bls .L13573
40611   ldr r2, [ip, #4]
40612   cmp r2, #0
40613   beq .L13555
40614   ands  r1, r2, #255
40615   beq .L13557
40616   ldr r3, [r7, #12]
40617   tst r3, #256
40618   movne r3, r3, lsr #16
40619   ldrne sl, [sp, #24]
40620   ldreq lr, [sp, #24]
40621   movne r3, r3, asl #16
40622   orrne r3, sl, r3
40623   orreq r3, lr, r3, asl #16
40624   orrne r3, r1, r3
40625   orreq r3, r1, r3
40626   strne r3, [r7, #12]
40627   streq r3, [r7, #12]
40628 .L13557:
40629   mov r3, r2, lsr #8
40630   ands  r1, r3, #255
40631   beq .L13561
40632   ldr r3, [r7, #8]
40633   tst r3, #256
40634   movne r3, r3, lsr #16
40635   ldrne r0, [sp, #24]
40636   ldreq r5, [sp, #24]
40637   movne r3, r3, asl #16
40638   orrne r3, r0, r3
40639   orreq r3, r5, r3, asl #16
40640   orrne r3, r1, r3
40641   orreq r3, r1, r3
40642   strne r3, [r7, #8]
40643   streq r3, [r7, #8]
40644 .L13561:
40645   mov r3, r2, lsr #16
40646   ands  r1, r3, #255
40647   beq .L13565
40648   ldr r3, [r7, #4]
40649   tst r3, #256
40650   movne r3, r3, lsr #16
40651   ldrne r6, [sp, #24]
40652   ldreq r8, [sp, #24]
40653   movne r3, r3, asl #16
40654   orrne r3, r6, r3
40655   orreq r3, r8, r3, asl #16
40656   orrne r3, r1, r3
40657   orreq r3, r1, r3
40658   strne r3, [r7, #4]
40659   streq r3, [r7, #4]
40660 .L13565:
40661   movs  r2, r2, lsr #24
40662   beq .L13555
40663   ldr r3, [r7, #0]
40664   tst r3, #256
40665   movne r3, r3, lsr #16
40666   ldrne r9, [sp, #24]
40667   ldreq sl, [sp, #24]
40668   movne r3, r3, asl #16
40669   orrne r3, r9, r3
40670   orreq r3, sl, r3, asl #16
40671   orrne r3, r2, r3
40672   orreq r3, r2, r3
40673   strne r3, [r7, #0]
40674   streq r3, [r7, #0]
40675 .L13555:
40676   subs  r4, r4, #4
40677   ldr ip, [ip, #0]
40678   addne r7, r7, #16
40679   beq .L12455
40680 .L13573:
40681   mov lr, #0
40682 .L13574:
40683   movs  r3, ip, lsr #24
40684   beq .L13575
40685   ldr r2, [r7, #0]
40686   ldr r0, [sp, #24]
40687   tst r2, #256
40688   orr r1, r0, r3
40689   orr r0, r0, r3
40690   mov r3, r2, lsr #16
40691   mov r3, r3, asl #16
40692   orr r3, r3, r1
40693   orr r1, r0, r2, asl #16
40694   strne r3, [r7, #0]
40695   streq r1, [r7, #0]
40696 .L13575:
40697   add lr, lr, #1
40698   cmp r4, lr
40699   mov ip, ip, asl #8
40700   add r7, r7, #4
40701   bhi .L13574
40702   b .L12455
40703 .L13284:
40704   mov r3, r0, lsr #3
40705   ands  r2, r0, #7
40706   sub r4, ip, r3, asl #6
40707   ldreq r0, [sp, #60]
40708   beq .L13434
40709   cmp r2, #3
40710   rsb r6, r2, #8
40711   bhi .L13657
40712   subs  r8, r6, #4
40713   ldr r1, [r4, #4]
40714   ldreq r1, [sp, #60]
40715   beq .L13449
40716   mov r3, r2, asl #3
40717   sub r3, r3, #32
40718   mov ip, r1, asl r3
40719   ldr lr, [sp, #60]
40720   mov r5, #0
40721 .L13450:
40722   movs  r3, ip, lsr #24
40723   beq .L13451
40724   ldr r2, [lr, #0]
40725   ldr r9, [sp, #24]
40726   tst r2, #256
40727   orr r1, r9, r3
40728   orr r0, r9, r3
40729   mov r3, r2, lsr #16
40730   mov r3, r3, asl #16
40731   orr r3, r3, r1
40732   orr r1, r0, r2, asl #16
40733   strne r3, [lr, #0]
40734   streq r1, [lr, #0]
40735 .L13451:
40736   add r5, r5, #1
40737   cmp r8, r5
40738   mov ip, ip, asl #8
40739   add lr, lr, #4
40740   bne .L13450
40741   ldr sl, [sp, #60]
40742   add r3, sl, r6, asl #2
40743   sub r1, r3, #16
40744 .L13449:
40745   ldr r2, [r4, #0]
40746   cmp r2, #0
40747   beq .L13457
40748   ands  r0, r2, #255
40749   beq .L13459
40750   ldr r3, [r1, #12]
40751   tst r3, #256
40752   movne r3, r3, lsr #16
40753   ldrne ip, [sp, #24]
40754   ldreq lr, [sp, #24]
40755   movne r3, r3, asl #16
40756   orrne r3, ip, r3
40757   orreq r3, lr, r3, asl #16
40758   orrne r3, r0, r3
40759   orreq r3, r0, r3
40760   strne r3, [r1, #12]
40761   streq r3, [r1, #12]
40762 .L13459:
40763   mov r3, r2, lsr #8
40764   ands  r0, r3, #255
40765   beq .L13463
40766   ldr r3, [r1, #8]
40767   tst r3, #256
40768   movne r3, r3, lsr #16
40769   ldrne r5, [sp, #24]
40770   ldreq r6, [sp, #24]
40771   movne r3, r3, asl #16
40772   orrne r3, r5, r3
40773   orreq r3, r6, r3, asl #16
40774   orrne r3, r0, r3
40775   orreq r3, r0, r3
40776   strne r3, [r1, #8]
40777   streq r3, [r1, #8]
40778 .L13463:
40779   mov r3, r2, lsr #16
40780   ands  r0, r3, #255
40781   beq .L13467
40782   ldr r3, [r1, #4]
40783   tst r3, #256
40784   movne r3, r3, lsr #16
40785   ldrne r8, [sp, #24]
40786   ldreq r9, [sp, #24]
40787   movne r3, r3, asl #16
40788   orrne r3, r8, r3
40789   orreq r3, r9, r3, asl #16
40790   orrne r3, r0, r3
40791   orreq r3, r0, r3
40792   strne r3, [r1, #4]
40793   streq r3, [r1, #4]
40794 .L13467:
40795   movs  r2, r2, lsr #24
40796   beq .L13457
40797   ldr r3, [r1, #0]
40798   tst r3, #256
40799   beq .L13472
40800   mov r3, r3, lsr #16
40801   ldr sl, [sp, #24]
40802   mov r3, r3, asl #16
40803   orr r3, sl, r3
40804   orr r3, r2, r3
40805   str r3, [r1, #0]
40806 .L13457:
40807   add r0, r1, #16
40808 .L13439:
40809   sub r4, r4, #64
40810 .L13434:
40811   movs  r5, r7, lsr #3
40812   beq .L12455
40813   mov lr, #0
40814   b .L13475
40815 .L13658:
40816   sub r4, r4, #64
40817   add r0, r0, #32
40818 .L13475:
40819   ldr r2, [r4, #4]
40820   cmp r2, #0
40821   beq .L13476
40822   ands  r1, r2, #255
40823   beq .L13478
40824   ldr r3, [r0, #12]
40825   tst r3, #256
40826   movne r3, r3, lsr #16
40827   ldrne r6, [sp, #24]
40828   ldreq r7, [sp, #24]
40829   movne r3, r3, asl #16
40830   orrne r3, r6, r3
40831   orreq r3, r7, r3, asl #16
40832   orrne r3, r1, r3
40833   orreq r3, r1, r3
40834   strne r3, [r0, #12]
40835   streq r3, [r0, #12]
40836 .L13478:
40837   mov r3, r2, lsr #8
40838   ands  r1, r3, #255
40839   beq .L13482
40840   ldr r3, [r0, #8]
40841   tst r3, #256
40842   movne r3, r3, lsr #16
40843   ldrne r8, [sp, #24]
40844   ldreq r9, [sp, #24]
40845   movne r3, r3, asl #16
40846   orrne r3, r8, r3
40847   orreq r3, r9, r3, asl #16
40848   orrne r3, r1, r3
40849   orreq r3, r1, r3
40850   strne r3, [r0, #8]
40851   streq r3, [r0, #8]
40852 .L13482:
40853   mov r3, r2, lsr #16
40854   ands  r1, r3, #255
40855   beq .L13486
40856   ldr r3, [r0, #4]
40857   tst r3, #256
40858   movne r3, r3, lsr #16
40859   ldrne sl, [sp, #24]
40860   ldreq ip, [sp, #24]
40861   movne r3, r3, asl #16
40862   orrne r3, sl, r3
40863   orreq r3, ip, r3, asl #16
40864   orrne r3, r1, r3
40865   orreq r3, r1, r3
40866   strne r3, [r0, #4]
40867   streq r3, [r0, #4]
40868 .L13486:
40869   movs  r2, r2, lsr #24
40870   beq .L13476
40871   ldr r3, [r0, #0]
40872   tst r3, #256
40873   movne r3, r3, lsr #16
40874   ldrne r1, [sp, #24]
40875   ldreq r6, [sp, #24]
40876   movne r3, r3, asl #16
40877   orrne r3, r1, r3
40878   orreq r3, r6, r3, asl #16
40879   orrne r3, r2, r3
40880   orreq r3, r2, r3
40881   strne r3, [r0, #0]
40882   streq r3, [r0, #0]
40883 .L13476:
40884   ldr r1, [r4, #0]
40885   cmp r1, #0
40886   beq .L13493
40887   ands  ip, r1, #255
40888   beq .L13495
40889   ldr r2, [r0, #28]
40890   tst r2, #256
40891   ldrne r7, [sp, #24]
40892   ldreq r8, [sp, #24]
40893   movne r3, r2, lsr #16
40894   movne r3, r3, asl #16
40895   orreq r3, r8, ip
40896   orrne r2, r7, ip
40897   orrne r3, r3, r2
40898   orreq r3, r3, r2, asl #16
40899   strne r3, [r0, #28]
40900   streq r3, [r0, #28]
40901 .L13495:
40902   mov r3, r1, lsr #8
40903   ands  r2, r3, #255
40904   beq .L13499
40905   ldr r3, [r0, #24]
40906   tst r3, #256
40907   movne r3, r3, lsr #16
40908   ldrne r9, [sp, #24]
40909   ldreq sl, [sp, #24]
40910   movne r3, r3, asl #16
40911   orrne r3, r9, r3
40912   orreq r3, sl, r3, asl #16
40913   orrne r3, r2, r3
40914   orreq r3, r2, r3
40915   strne r3, [r0, #24]
40916   streq r3, [r0, #24]
40917 .L13499:
40918   mov r3, r1, lsr #16
40919   ands  r2, r3, #255
40920   beq .L13503
40921   ldr r3, [r0, #20]
40922   tst r3, #256
40923   movne r3, r3, lsr #16
40924   ldrne ip, [sp, #24]
40925   ldreq r6, [sp, #24]
40926   movne r3, r3, asl #16
40927   orrne r3, ip, r3
40928   orreq r3, r6, r3, asl #16
40929   orrne r3, r2, r3
40930   orreq r3, r2, r3
40931   strne r3, [r0, #20]
40932   streq r3, [r0, #20]
40933 .L13503:
40934   movs  r1, r1, lsr #24
40935   beq .L13493
40936   ldr r2, [r0, #16]
40937   tst r2, #256
40938   ldrne r7, [sp, #24]
40939   ldreq r8, [sp, #24]
40940   movne r3, r2, lsr #16
40941   movne r3, r3, asl #16
40942   orreq r3, r8, r1
40943   orrne r2, r7, r1
40944   orrne r3, r3, r2
40945   orreq r3, r3, r2, asl #16
40946   strne r3, [r0, #16]
40947   streq r3, [r0, #16]
40948 .L13493:
40949   add lr, lr, #1
40950   cmp lr, r5
40951   bne .L13658
40952   b .L12455
40953 .L12948:
40954   ands  r2, r0, #7
40955   mov r3, r0, lsr #3
40956   add r4, ip, r3, asl #6
40957   ldreq r1, [sp, #60]
40958   beq .L13098
40959   cmp r2, #3
40960   rsb r6, r2, #8
40961   bhi .L13659
40962   subs  r8, r6, #4
40963   ldr r1, [r4, #0]
40964   ldreq r1, [sp, #60]
40965   beq .L13113
40966   mov r3, r2, asl #3
40967   mov ip, r1, lsr r3
40968   ldr lr, [sp, #60]
40969   mov r5, #0
40970 .L13114:
40971   ands  r3, ip, #255
40972   beq .L13115
40973   ldr r2, [lr, #0]
40974   ldr r9, [sp, #24]
40975   tst r2, #256
40976   orr r1, r9, r3
40977   orr r0, r9, r3
40978   mov r3, r2, lsr #16
40979   mov r3, r3, asl #16
40980   orr r3, r3, r1
40981   orr r1, r0, r2, asl #16
40982   strne r3, [lr, #0]
40983   streq r1, [lr, #0]
40984 .L13115:
40985   add r5, r5, #1
40986   cmp r8, r5
40987   mov ip, ip, lsr #8
40988   add lr, lr, #4
40989   bne .L13114
40990   ldr sl, [sp, #60]
40991   add r3, sl, r6, asl #2
40992   sub r1, r3, #16
40993 .L13113:
40994   ldr r2, [r4, #4]
40995   cmp r2, #0
40996   beq .L13121
40997   ands  r0, r2, #255
40998   beq .L13123
40999   ldr r3, [r1, #0]
41000   tst r3, #256
41001   movne r3, r3, lsr #16
41002   ldrne ip, [sp, #24]
41003   ldreq lr, [sp, #24]
41004   movne r3, r3, asl #16
41005   orrne r3, ip, r3
41006   orreq r3, lr, r3, asl #16
41007   orrne r3, r0, r3
41008   orreq r3, r0, r3
41009   strne r3, [r1, #0]
41010   streq r3, [r1, #0]
41011 .L13123:
41012   mov r3, r2, lsr #8
41013   ands  r0, r3, #255
41014   beq .L13127
41015   ldr r3, [r1, #4]
41016   tst r3, #256
41017   movne r3, r3, lsr #16
41018   ldrne r5, [sp, #24]
41019   ldreq r6, [sp, #24]
41020   movne r3, r3, asl #16
41021   orrne r3, r5, r3
41022   orreq r3, r6, r3, asl #16
41023   orrne r3, r0, r3
41024   orreq r3, r0, r3
41025   strne r3, [r1, #4]
41026   streq r3, [r1, #4]
41027 .L13127:
41028   mov r3, r2, lsr #16
41029   ands  r0, r3, #255
41030   beq .L13131
41031   ldr r3, [r1, #8]
41032   tst r3, #256
41033   movne r3, r3, lsr #16
41034   ldrne r8, [sp, #24]
41035   ldreq r9, [sp, #24]
41036   movne r3, r3, asl #16
41037   orrne r3, r8, r3
41038   orreq r3, r9, r3, asl #16
41039   orrne r3, r0, r3
41040   orreq r3, r0, r3
41041   strne r3, [r1, #8]
41042   streq r3, [r1, #8]
41043 .L13131:
41044   movs  r2, r2, lsr #24
41045   beq .L13121
41046   ldr r3, [r1, #12]
41047   tst r3, #256
41048   beq .L13136
41049   mov r3, r3, lsr #16
41050   ldr sl, [sp, #24]
41051   mov r3, r3, asl #16
41052   orr r3, sl, r3
41053   orr r3, r2, r3
41054   str r3, [r1, #12]
41055 .L13121:
41056   add r1, r1, #16
41057 .L13103:
41058   add r4, r4, #64
41059 .L13098:
41060   movs  lr, r7, lsr #3
41061   beq .L12455
41062   mov ip, #0
41063   b .L13139
41064 .L13660:
41065   add r4, r4, #64
41066   add r1, r1, #32
41067 .L13139:
41068   ldr r2, [r4, #0]
41069   cmp r2, #0
41070   beq .L13140
41071   ands  r0, r2, #255
41072   beq .L13142
41073   ldr r3, [r1, #0]
41074   tst r3, #256
41075   movne r3, r3, lsr #16
41076   ldrne r5, [sp, #24]
41077   ldreq r6, [sp, #24]
41078   movne r3, r3, asl #16
41079   orrne r3, r5, r3
41080   orreq r3, r6, r3, asl #16
41081   orrne r3, r0, r3
41082   orreq r3, r0, r3
41083   strne r3, [r1, #0]
41084   streq r3, [r1, #0]
41085 .L13142:
41086   mov r3, r2, lsr #8
41087   ands  r0, r3, #255
41088   beq .L13146
41089   ldr r3, [r1, #4]
41090   tst r3, #256
41091   movne r3, r3, lsr #16
41092   ldrne r7, [sp, #24]
41093   ldreq r8, [sp, #24]
41094   movne r3, r3, asl #16
41095   orrne r3, r7, r3
41096   orreq r3, r8, r3, asl #16
41097   orrne r3, r0, r3
41098   orreq r3, r0, r3
41099   strne r3, [r1, #4]
41100   streq r3, [r1, #4]
41101 .L13146:
41102   mov r3, r2, lsr #16
41103   ands  r0, r3, #255
41104   beq .L13150
41105   ldr r3, [r1, #8]
41106   tst r3, #256
41107   movne r3, r3, lsr #16
41108   ldrne r9, [sp, #24]
41109   ldreq sl, [sp, #24]
41110   movne r3, r3, asl #16
41111   orrne r3, r9, r3
41112   orreq r3, sl, r3, asl #16
41113   orrne r3, r0, r3
41114   orreq r3, r0, r3
41115   strne r3, [r1, #8]
41116   streq r3, [r1, #8]
41117 .L13150:
41118   movs  r0, r2, lsr #24
41119   beq .L13140
41120   ldr r2, [r1, #12]
41121   tst r2, #256
41122   ldrne r5, [sp, #24]
41123   ldreq r6, [sp, #24]
41124   movne r3, r2, lsr #16
41125   movne r3, r3, asl #16
41126   orreq r3, r6, r0
41127   orrne r2, r5, r0
41128   orrne r3, r3, r2
41129   orreq r3, r3, r2, asl #16
41130   strne r3, [r1, #12]
41131   streq r3, [r1, #12]
41132 .L13140:
41133   ldr r2, [r4, #4]
41134   cmp r2, #0
41135   beq .L13157
41136   ands  r0, r2, #255
41137   beq .L13159
41138   ldr r3, [r1, #16]
41139   tst r3, #256
41140   movne r3, r3, lsr #16
41141   ldrne r7, [sp, #24]
41142   ldreq r8, [sp, #24]
41143   movne r3, r3, asl #16
41144   orrne r3, r7, r3
41145   orreq r3, r8, r3, asl #16
41146   orrne r3, r0, r3
41147   orreq r3, r0, r3
41148   strne r3, [r1, #16]
41149   streq r3, [r1, #16]
41150 .L13159:
41151   mov r3, r2, lsr #8
41152   ands  r0, r3, #255
41153   beq .L13163
41154   ldr r3, [r1, #20]
41155   tst r3, #256
41156   movne r3, r3, lsr #16
41157   ldrne r9, [sp, #24]
41158   ldreq sl, [sp, #24]
41159   movne r3, r3, asl #16
41160   orrne r3, r9, r3
41161   orreq r3, sl, r3, asl #16
41162   orrne r3, r0, r3
41163   orreq r3, r0, r3
41164   strne r3, [r1, #20]
41165   streq r3, [r1, #20]
41166 .L13163:
41167   mov r3, r2, lsr #16
41168   ands  r0, r3, #255
41169   beq .L13167
41170   ldr r3, [r1, #24]
41171   tst r3, #256
41172   movne r3, r3, lsr #16
41173   ldrne r5, [sp, #24]
41174   ldreq r6, [sp, #24]
41175   movne r3, r3, asl #16
41176   orrne r3, r5, r3
41177   orreq r3, r6, r3, asl #16
41178   orrne r3, r0, r3
41179   orreq r3, r0, r3
41180   strne r3, [r1, #24]
41181   streq r3, [r1, #24]
41182 .L13167:
41183   movs  r2, r2, lsr #24
41184   beq .L13157
41185   ldr r3, [r1, #28]
41186   tst r3, #256
41187   movne r3, r3, lsr #16
41188   ldrne r7, [sp, #24]
41189   ldreq r8, [sp, #24]
41190   movne r3, r3, asl #16
41191   orrne r3, r7, r3
41192   orreq r3, r8, r3, asl #16
41193   orrne r3, r2, r3
41194   orreq r3, r2, r3
41195   strne r3, [r1, #28]
41196   streq r3, [r1, #28]
41197 .L13157:
41198   add ip, ip, #1
41199   cmp ip, lr
41200   bne .L13660
41201   b .L12455
41202 .L12744:
41203   ands  r2, lr, #7
41204   mov r3, lr, lsr #3
41205   sub ip, r0, r3, asl #5
41206   ldreq r0, [sp, #60]
41207   beq .L12815
41208   rsbs  r8, r2, #8
41209   ldr r1, [ip, #0]
41210   ldreq r0, [sp, #60]
41211   beq .L12818
41212   mov r3, r2, asl #2
41213   mov lr, r1, asl r3
41214   ldr r4, [sp, #60]
41215   mov r5, #0
41216 .L12819:
41217   movs  r3, lr, lsr #28
41218   beq .L12820
41219   ldr r1, [r4, #0]
41220   orr r2, r6, r3
41221   ldr r3, [sp, #24]
41222   ldr r9, [sp, #24]
41223   orr r0, r3, r2
41224   mov r3, r1, lsr #16
41225   mov r3, r3, asl #16
41226   orr r2, r9, r2
41227   tst r1, #256
41228   orr r3, r3, r0
41229   orr r2, r2, r1, asl #16
41230   strne r3, [r4, #0]
41231   streq r2, [r4, #0]
41232 .L12820:
41233   add r5, r5, #1
41234   cmp r5, r8
41235   mov lr, lr, asl #4
41236   add r4, r4, #4
41237   bne .L12819
41238   ldr sl, [sp, #60]
41239   add r0, sl, r8, asl #2
41240 .L12818:
41241   sub ip, ip, #32
41242 .L12815:
41243   movs  r5, r7, lsr #3
41244   beq .L12455
41245   mov r4, #0
41246   b .L12827
41247 .L13673:
41248   .align  2
41249 .L13672:
41250   .word vram+65600
41251   .word vram+65472
41252 .L13661:
41253   sub ip, ip, #32
41254   add r0, r0, #32
41255 .L12827:
41256   ldr r1, [ip, #0]
41257   cmp r1, #0
41258   beq .L12828
41259   ands  r3, r1, #15
41260   beq .L12830
41261   ldr r2, [r0, #28]
41262   orr lr, r6, r3
41263   tst r2, #256
41264   ldrne r7, [sp, #24]
41265   ldreq r8, [sp, #24]
41266   movne r3, r2, lsr #16
41267   movne r3, r3, asl #16
41268   orreq r3, r8, lr
41269   orrne r2, r7, lr
41270   orrne r3, r3, r2
41271   orreq r3, r3, r2, asl #16
41272   strne r3, [r0, #28]
41273   streq r3, [r0, #28]
41274 .L12830:
41275   mov r3, r1, lsr #4
41276   ands  r3, r3, #15
41277   beq .L12834
41278   ldr r2, [r0, #24]
41279   orr lr, r6, r3
41280   tst r2, #256
41281   ldrne r9, [sp, #24]
41282   ldreq sl, [sp, #24]
41283   movne r3, r2, lsr #16
41284   movne r3, r3, asl #16
41285   orreq r3, sl, lr
41286   orrne r2, r9, lr
41287   orrne r3, r3, r2
41288   orreq r3, r3, r2, asl #16
41289   strne r3, [r0, #24]
41290   streq r3, [r0, #24]
41291 .L12834:
41292   mov r3, r1, lsr #8
41293   ands  r3, r3, #15
41294   beq .L12838
41295   ldr r2, [r0, #20]
41296   orr lr, r6, r3
41297   tst r2, #256
41298   ldrne r7, [sp, #24]
41299   ldreq r8, [sp, #24]
41300   movne r3, r2, lsr #16
41301   movne r3, r3, asl #16
41302   orreq r3, r8, lr
41303   orrne r2, r7, lr
41304   orrne r3, r3, r2
41305   orreq r3, r3, r2, asl #16
41306   strne r3, [r0, #20]
41307   streq r3, [r0, #20]
41308 .L12838:
41309   mov r3, r1, lsr #12
41310   ands  r3, r3, #15
41311   beq .L12842
41312   ldr r2, [r0, #16]
41313   orr lr, r6, r3
41314   tst r2, #256
41315   ldrne r9, [sp, #24]
41316   ldreq sl, [sp, #24]
41317   movne r3, r2, lsr #16
41318   movne r3, r3, asl #16
41319   orreq r3, sl, lr
41320   orrne r2, r9, lr
41321   orrne r3, r3, r2
41322   orreq r3, r3, r2, asl #16
41323   strne r3, [r0, #16]
41324   streq r3, [r0, #16]
41325 .L12842:
41326   mov r3, r1, lsr #16
41327   ands  r3, r3, #15
41328   beq .L12846
41329   ldr r2, [r0, #12]
41330   orr lr, r6, r3
41331   tst r2, #256
41332   ldrne r7, [sp, #24]
41333   ldreq r8, [sp, #24]
41334   movne r3, r2, lsr #16
41335   movne r3, r3, asl #16
41336   orreq r3, r8, lr
41337   orrne r2, r7, lr
41338   orrne r3, r3, r2
41339   orreq r3, r3, r2, asl #16
41340   strne r3, [r0, #12]
41341   streq r3, [r0, #12]
41342 .L12846:
41343   mov r3, r1, lsr #20
41344   ands  r3, r3, #15
41345   beq .L12850
41346   ldr r2, [r0, #8]
41347   orr lr, r6, r3
41348   tst r2, #256
41349   ldrne r9, [sp, #24]
41350   ldreq sl, [sp, #24]
41351   movne r3, r2, lsr #16
41352   movne r3, r3, asl #16
41353   orreq r3, sl, lr
41354   orrne r2, r9, lr
41355   orrne r3, r3, r2
41356   orreq r3, r3, r2, asl #16
41357   strne r3, [r0, #8]
41358   streq r3, [r0, #8]
41359 .L12850:
41360   mov r3, r1, lsr #24
41361   ands  r3, r3, #15
41362   beq .L12854
41363   ldr r2, [r0, #4]
41364   orr lr, r6, r3
41365   tst r2, #256
41366   ldrne r7, [sp, #24]
41367   ldreq r8, [sp, #24]
41368   movne r3, r2, lsr #16
41369   movne r3, r3, asl #16
41370   orreq r3, r8, lr
41371   orrne r2, r7, lr
41372   orrne r3, r3, r2
41373   orreq r3, r3, r2, asl #16
41374   strne r3, [r0, #4]
41375   streq r3, [r0, #4]
41376 .L12854:
41377   movs  r3, r1, lsr #28
41378   beq .L12828
41379   ldr r2, [r0, #0]
41380   orr r1, r6, r3
41381   tst r2, #256
41382   ldrne r9, [sp, #24]
41383   ldreq sl, [sp, #24]
41384   movne r3, r2, lsr #16
41385   movne r3, r3, asl #16
41386   orreq r3, sl, r1
41387   orrne r2, r9, r1
41388   orrne r3, r3, r2
41389   orreq r3, r3, r2, asl #16
41390   strne r3, [r0, #0]
41391   streq r3, [r0, #0]
41392 .L12828:
41393   add r4, r4, #1
41394   cmp r5, r4
41395   bne .L13661
41396   b .L12455
41397 .L12540:
41398   mov r3, lr, lsr #3
41399   mov r0, r3, asl #5
41400   ands  r3, lr, #7
41401   add r5, ip, r0
41402   ldreq r0, [sp, #60]
41403   beq .L12611
41404   rsbs  r8, r3, #8
41405   ldr r0, [ip, r0]
41406   ldreq r0, [sp, #60]
41407   beq .L12614
41408   mov r3, r3, asl #2
41409   mov ip, r0, lsr r3
41410   ldr lr, [sp, #60]
41411   mov r4, #0
41412 .L12615:
41413   ands  r3, ip, #15
41414   beq .L12616
41415   ldr r1, [lr, #0]
41416   orr r2, r6, r3
41417   ldr r3, [sp, #24]
41418   ldr r9, [sp, #24]
41419   orr r0, r3, r2
41420   mov r3, r1, lsr #16
41421   mov r3, r3, asl #16
41422   orr r2, r9, r2
41423   tst r1, #256
41424   orr r3, r3, r0
41425   orr r2, r2, r1, asl #16
41426   strne r3, [lr, #0]
41427   streq r2, [lr, #0]
41428 .L12616:
41429   add r4, r4, #1
41430   cmp r8, r4
41431   mov ip, ip, lsr #4
41432   add lr, lr, #4
41433   bne .L12615
41434   ldr sl, [sp, #60]
41435   add r0, sl, r8, asl #2
41436 .L12614:
41437   add r5, r5, #32
41438 .L12611:
41439   movs  r4, r7, lsr #3
41440   beq .L12455
41441   mov lr, #0
41442   b .L12623
41443 .L13662:
41444   add r5, r5, #32
41445   add r0, r0, #32
41446 .L12623:
41447   ldr r1, [r5, #0]
41448   cmp r1, #0
41449   beq .L12624
41450   ands  r3, r1, #15
41451   beq .L12626
41452   ldr r2, [r0, #0]
41453   orr ip, r6, r3
41454   tst r2, #256
41455   ldrne r7, [sp, #24]
41456   ldreq r8, [sp, #24]
41457   movne r3, r2, lsr #16
41458   movne r3, r3, asl #16
41459   orreq r3, r8, ip
41460   orrne r2, r7, ip
41461   orrne r3, r3, r2
41462   orreq r3, r3, r2, asl #16
41463   strne r3, [r0, #0]
41464   streq r3, [r0, #0]
41465 .L12626:
41466   mov r3, r1, lsr #4
41467   ands  r3, r3, #15
41468   beq .L12630
41469   ldr r2, [r0, #4]
41470   orr ip, r6, r3
41471   tst r2, #256
41472   ldrne r9, [sp, #24]
41473   ldreq sl, [sp, #24]
41474   movne r3, r2, lsr #16
41475   movne r3, r3, asl #16
41476   orreq r3, sl, ip
41477   orrne r2, r9, ip
41478   orrne r3, r3, r2
41479   orreq r3, r3, r2, asl #16
41480   strne r3, [r0, #4]
41481   streq r3, [r0, #4]
41482 .L12630:
41483   mov r3, r1, lsr #8
41484   ands  r3, r3, #15
41485   beq .L12634
41486   ldr r2, [r0, #8]
41487   orr ip, r6, r3
41488   tst r2, #256
41489   ldrne r7, [sp, #24]
41490   ldreq r8, [sp, #24]
41491   movne r3, r2, lsr #16
41492   movne r3, r3, asl #16
41493   orreq r3, r8, ip
41494   orrne r2, r7, ip
41495   orrne r3, r3, r2
41496   orreq r3, r3, r2, asl #16
41497   strne r3, [r0, #8]
41498   streq r3, [r0, #8]
41499 .L12634:
41500   mov r3, r1, lsr #12
41501   ands  r3, r3, #15
41502   beq .L12638
41503   ldr r2, [r0, #12]
41504   orr ip, r6, r3
41505   tst r2, #256
41506   ldrne r9, [sp, #24]
41507   ldreq sl, [sp, #24]
41508   movne r3, r2, lsr #16
41509   movne r3, r3, asl #16
41510   orreq r3, sl, ip
41511   orrne r2, r9, ip
41512   orrne r3, r3, r2
41513   orreq r3, r3, r2, asl #16
41514   strne r3, [r0, #12]
41515   streq r3, [r0, #12]
41516 .L12638:
41517   mov r3, r1, lsr #16
41518   ands  r3, r3, #15
41519   beq .L12642
41520   ldr r2, [r0, #16]
41521   orr ip, r6, r3
41522   tst r2, #256
41523   ldrne r7, [sp, #24]
41524   ldreq r8, [sp, #24]
41525   movne r3, r2, lsr #16
41526   movne r3, r3, asl #16
41527   orreq r3, r8, ip
41528   orrne r2, r7, ip
41529   orrne r3, r3, r2
41530   orreq r3, r3, r2, asl #16
41531   strne r3, [r0, #16]
41532   streq r3, [r0, #16]
41533 .L12642:
41534   mov r3, r1, lsr #20
41535   ands  r3, r3, #15
41536   beq .L12646
41537   ldr r2, [r0, #20]
41538   orr ip, r6, r3
41539   tst r2, #256
41540   ldrne r9, [sp, #24]
41541   ldreq sl, [sp, #24]
41542   movne r3, r2, lsr #16
41543   movne r3, r3, asl #16
41544   orreq r3, sl, ip
41545   orrne r2, r9, ip
41546   orrne r3, r3, r2
41547   orreq r3, r3, r2, asl #16
41548   strne r3, [r0, #20]
41549   streq r3, [r0, #20]
41550 .L12646:
41551   mov r3, r1, lsr #24
41552   ands  r3, r3, #15
41553   beq .L12650
41554   ldr r2, [r0, #24]
41555   orr ip, r6, r3
41556   tst r2, #256
41557   ldrne r7, [sp, #24]
41558   ldreq r8, [sp, #24]
41559   movne r3, r2, lsr #16
41560   movne r3, r3, asl #16
41561   orreq r3, r8, ip
41562   orrne r2, r7, ip
41563   orrne r3, r3, r2
41564   orreq r3, r3, r2, asl #16
41565   strne r3, [r0, #24]
41566   streq r3, [r0, #24]
41567 .L12650:
41568   movs  r3, r1, lsr #28
41569   beq .L12624
41570   ldr r2, [r0, #28]
41571   orr r1, r6, r3
41572   tst r2, #256
41573   ldrne r9, [sp, #24]
41574   ldreq sl, [sp, #24]
41575   movne r3, r2, lsr #16
41576   movne r3, r3, asl #16
41577   orreq r3, sl, r1
41578   orrne r2, r9, r1
41579   orrne r3, r3, r2
41580   orreq r3, r3, r2, asl #16
41581   strne r3, [r0, #28]
41582   streq r3, [r0, #28]
41583 .L12624:
41584   add lr, lr, #1
41585   cmp r4, lr
41586   bne .L13662
41587   b .L12455
41588 .L12504:
41589   mov r1, r2
41590   b .L13633
41591 .L12746:
41592   ldr r2, [sp, #80]
41593   rsb r7, r4, #8
41594   cmp r2, r7
41595   blt .L13663
41596   cmp r7, #0
41597   ldr r2, [ip, #0]
41598   ldreq r5, [sp, #60]
41599   beq .L12761
41600   mov r3, r4, asl #2
41601   mov lr, r2, asl r3
41602   ldr r4, [sp, #60]
41603   mov r5, #0
41604 .L12762:
41605   movs  r3, lr, lsr #28
41606   beq .L12763
41607   ldr r1, [r4, #0]
41608   ldr r8, [sp, #24]
41609   orr r2, r6, r3
41610   mov r3, r1, lsr #16
41611   orr r0, r8, r2
41612   mov r3, r3, asl #16
41613   orr r2, r8, r2
41614   tst r1, #256
41615   orr r3, r3, r0
41616   orr r2, r2, r1, asl #16
41617   strne r3, [r4, #0]
41618   streq r2, [r4, #0]
41619 .L12763:
41620   add r5, r5, #1
41621   cmp r7, r5
41622   mov lr, lr, asl #4
41623   add r4, r4, #4
41624   bne .L12762
41625   ldr r9, [sp, #60]
41626   add r5, r9, r7, asl #2
41627 .L12761:
41628   ldr lr, [sp, #80]
41629   sub ip, ip, #32
41630   rsb sl, r7, lr
41631   b .L12748
41632 .L13286:
41633   ldr r3, [sp, #80]
41634   rsb r5, lr, #8
41635   cmp r3, r5
41636   blt .L13664
41637   cmp lr, #3
41638   bls .L13327
41639   cmp r5, #0
41640   ldr r2, [r8, #0]
41641   ldreq r4, [sp, #60]
41642   beq .L13331
41643   mov r3, lr, asl #3
41644   sub r3, r3, #32
41645   mov ip, r2, asl r3
41646   ldr lr, [sp, #60]
41647   mov r4, #0
41648 .L13332:
41649   movs  r3, ip, lsr #24
41650   beq .L13333
41651   ldr r2, [lr, #0]
41652   ldr r7, [sp, #24]
41653   tst r2, #256
41654   orr r1, r7, r3
41655   orr r0, r7, r3
41656   mov r3, r2, lsr #16
41657   mov r3, r3, asl #16
41658   orr r3, r3, r1
41659   orr r1, r0, r2, asl #16
41660   strne r3, [lr, #0]
41661   streq r1, [lr, #0]
41662 .L13333:
41663   add r4, r4, #1
41664   cmp r5, r4
41665   mov ip, ip, asl #8
41666   add lr, lr, #4
41667   bne .L13332
41668   ldr ip, [sp, #60]
41669   add r4, ip, r5, asl #2
41670 .L13331:
41671   ldr r0, [sp, #80]
41672   sub r8, r8, #64
41673   rsb r7, r5, r0
41674   b .L13288
41675 .L12950:
41676   ldr r2, [sp, #80]
41677   rsb r5, lr, #8
41678   cmp r2, r5
41679   blt .L13665
41680   cmp lr, #3
41681   bls .L12991
41682   cmp r5, #0
41683   ldr r2, [r7, #4]
41684   ldreq r4, [sp, #60]
41685   beq .L12995
41686   mov r3, lr, asl #3
41687   sub r3, r3, #32
41688   mov ip, r2, lsr r3
41689   ldr lr, [sp, #60]
41690   mov r4, #0
41691 .L12996:
41692   ands  r3, ip, #255
41693   beq .L12997
41694   ldr r2, [lr, #0]
41695   ldr r8, [sp, #24]
41696   tst r2, #256
41697   orr r1, r8, r3
41698   orr r0, r8, r3
41699   mov r3, r2, lsr #16
41700   mov r3, r3, asl #16
41701   orr r3, r3, r1
41702   orr r1, r0, r2, asl #16
41703   strne r3, [lr, #0]
41704   streq r1, [lr, #0]
41705 .L12997:
41706   add r4, r4, #1
41707   cmp r5, r4
41708   mov ip, ip, lsr #8
41709   add lr, lr, #4
41710   bne .L12996
41711   ldr ip, [sp, #60]
41712   add r4, ip, r5, asl #2
41713 .L12995:
41714   ldr r0, [sp, #80]
41715   add r7, r7, #64
41716   rsb r6, r5, r0
41717   b .L12952
41718 .L12542:
41719   ldr r8, [sp, #80]
41720   rsb r5, r3, #8
41721   cmp r8, r5
41722   blt .L13666
41723   cmp r5, #0
41724   ldr r2, [r7, #0]
41725   ldreq r4, [sp, #60]
41726   beq .L12557
41727   mov r3, r3, asl #2
41728   mov ip, r2, lsr r3
41729   ldr lr, [sp, #60]
41730   mov r4, #0
41731 .L12558:
41732   ands  r3, ip, #15
41733   beq .L12559
41734   ldr r1, [lr, #0]
41735   orr r2, r6, r3
41736   ldr r3, [sp, #24]
41737   ldr r8, [sp, #24]
41738   orr r0, r3, r2
41739   mov r3, r1, lsr #16
41740   mov r3, r3, asl #16
41741   orr r2, r8, r2
41742   tst r1, #256
41743   orr r3, r3, r0
41744   orr r2, r2, r1, asl #16
41745   strne r3, [lr, #0]
41746   streq r2, [lr, #0]
41747 .L12559:
41748   add r4, r4, #1
41749   cmp r5, r4
41750   mov ip, ip, lsr #4
41751   add lr, lr, #4
41752   bne .L12558
41753   ldr r9, [sp, #60]
41754   add r4, r9, r5, asl #2
41755 .L12557:
41756   ldr ip, [sp, #80]
41757   add r7, r7, #32
41758   rsb sl, r5, ip
41759   b .L12544
41760 .L13659:
41761   cmp r6, #0
41762   ldr r1, [r4, #4]
41763   ldreq r1, [sp, #60]
41764   beq .L13103
41765   mov r3, r2, asl #3
41766   sub r3, r3, #32
41767   mov ip, r1, lsr r3
41768   ldr lr, [sp, #60]
41769   mov r5, #0
41770 .L13104:
41771   ands  r3, ip, #255
41772   beq .L13105
41773   ldr r2, [lr, #0]
41774   ldr r8, [sp, #24]
41775   tst r2, #256
41776   orr r1, r8, r3
41777   orr r0, r8, r3
41778   mov r3, r2, lsr #16
41779   mov r3, r3, asl #16
41780   orr r3, r3, r1
41781   orr r1, r0, r2, asl #16
41782   strne r3, [lr, #0]
41783   streq r1, [lr, #0]
41784 .L13105:
41785   add r5, r5, #1
41786   cmp r5, r6
41787   mov ip, ip, lsr #8
41788   add lr, lr, #4
41789   bne .L13104
41790   ldr ip, [sp, #60]
41791   add r4, r4, #64
41792   add r1, ip, r6, asl #2
41793   b .L13098
41794 .L13666:
41795   cmp r8, #0
41796   ble .L12455
41797   ldr r2, [ip, r0]
41798   mov r3, r3, asl #2
41799   mov ip, r2, lsr r3
41800   ldr lr, [sp, #60]
41801   mov r4, #0
41802 .L12549:
41803   ands  r3, ip, #15
41804   beq .L12550
41805   ldr r1, [lr, #0]
41806   ldr r9, [sp, #24]
41807   orr r2, r6, r3
41808   mov r3, r1, lsr #16
41809   orr r0, r9, r2
41810   mov r3, r3, asl #16
41811   orr r2, r9, r2
41812   tst r1, #256
41813   orr r3, r3, r0
41814   orr r2, r2, r1, asl #16
41815   strne r3, [lr, #0]
41816   streq r2, [lr, #0]
41817 .L12550:
41818   ldr sl, [sp, #80]
41819   add r4, r4, #1
41820   cmp sl, r4
41821   mov ip, ip, lsr #4
41822   add lr, lr, #4
41823   bne .L12549
41824   b .L12455
41825 .L13657:
41826   cmp r6, #0
41827   ldr r1, [r4, #0]
41828   ldreq r0, [sp, #60]
41829   beq .L13439
41830   mov r3, r2, asl #3
41831   sub r3, r3, #32
41832   mov ip, r1, asl r3
41833   ldr lr, [sp, #60]
41834   mov r5, #0
41835 .L13440:
41836   movs  r3, ip, lsr #24
41837   beq .L13441
41838   ldr r2, [lr, #0]
41839   ldr r8, [sp, #24]
41840   tst r2, #256
41841   orr r1, r8, r3
41842   orr r0, r8, r3
41843   mov r3, r2, lsr #16
41844   mov r3, r3, asl #16
41845   orr r3, r3, r1
41846   orr r1, r0, r2, asl #16
41847   strne r3, [lr, #0]
41848   streq r1, [lr, #0]
41849 .L13441:
41850   add r5, r5, #1
41851   cmp r5, r6
41852   mov ip, ip, asl #8
41853   add lr, lr, #4
41854   bne .L13440
41855   ldr ip, [sp, #60]
41856   sub r4, r4, #64
41857   add r0, ip, r6, asl #2
41858   b .L13434
41859 .L13664:
41860   cmp r3, #0
41861   ble .L12455
41862   cmp lr, #3
41863   bls .L13292
41864   mov r3, lr, asl #3
41865   ldr r2, [r8, #0]
41866   sub r3, r3, #32
41867   mov ip, r2, asl r3
41868   ldr lr, [sp, #60]
41869   mov r4, #0
41870 .L13295:
41871   movs  r3, ip, lsr #24
41872   beq .L13296
41873   ldr r2, [lr, #0]
41874   ldr r5, [sp, #24]
41875   tst r2, #256
41876   orr r1, r5, r3
41877   orr r0, r5, r3
41878   mov r3, r2, lsr #16
41879   mov r3, r3, asl #16
41880   orr r3, r3, r1
41881   orr r1, r0, r2, asl #16
41882   strne r3, [lr, #0]
41883   streq r1, [lr, #0]
41884 .L13296:
41885   ldr r6, [sp, #80]
41886   add r4, r4, #1
41887   cmp r6, r4
41888   mov ip, ip, asl #8
41889   add lr, lr, #4
41890   bne .L13295
41891   b .L12455
41892 .L13665:
41893   cmp r2, #0
41894   ble .L12455
41895   cmp lr, #3
41896   bls .L12956
41897   mov r3, lr, asl #3
41898   ldr r2, [r7, #4]
41899   sub r3, r3, #32
41900   mov ip, r2, lsr r3
41901   ldr lr, [sp, #60]
41902   mov r4, #0
41903 .L12959:
41904   ands  r3, ip, #255
41905   beq .L12960
41906   ldr r2, [lr, #0]
41907   ldr r5, [sp, #24]
41908   tst r2, #256
41909   orr r1, r5, r3
41910   orr r0, r5, r3
41911   mov r3, r2, lsr #16
41912   mov r3, r3, asl #16
41913   orr r3, r3, r1
41914   orr r1, r0, r2, asl #16
41915   strne r3, [lr, #0]
41916   streq r1, [lr, #0]
41917 .L12960:
41918   ldr r6, [sp, #80]
41919   add r4, r4, #1
41920   cmp r6, r4
41921   mov ip, ip, lsr #8
41922   add lr, lr, #4
41923   bne .L12959
41924   b .L12455
41925 .L13663:
41926   cmp r2, #0
41927   ble .L12455
41928   ldr r2, [ip, #0]
41929   mov r3, r4, asl #2
41930   mov ip, r2, asl r3
41931   ldr lr, [sp, #60]
41932   mov r4, #0
41933 .L12753:
41934   movs  r3, ip, lsr #28
41935   beq .L12754
41936   ldr r1, [lr, #0]
41937   orr r2, r6, r3
41938   ldr r3, [sp, #24]
41939   ldr r5, [sp, #24]
41940   orr r0, r3, r2
41941   mov r3, r1, lsr #16
41942   mov r3, r3, asl #16
41943   orr r2, r5, r2
41944   tst r1, #256
41945   orr r3, r3, r0
41946   orr r2, r2, r1, asl #16
41947   strne r3, [lr, #0]
41948   streq r2, [lr, #0]
41949 .L12754:
41950   ldr r7, [sp, #80]
41951   add r4, r4, #1
41952   cmp r7, r4
41953   mov ip, ip, asl #4
41954   add lr, lr, #4
41955   bne .L12753
41956   b .L12455
41957 .L13669:
41958   mov r6, #0
41959   b .L12520
41960 .L13668:
41961   mov r4, #0
41962   b .L12480
41963 .L13327:
41964   subs  r6, r5, #4
41965   ldr r2, [r8, #4]
41966   ldreq r2, [sp, #60]
41967   beq .L13341
41968   mov r3, lr, asl #3
41969   sub r3, r3, #32
41970   mov ip, r2, asl r3
41971   ldr lr, [sp, #60]
41972   mov r4, #0
41973 .L13342:
41974   movs  r3, ip, lsr #24
41975   beq .L13343
41976   ldr r2, [lr, #0]
41977   ldr r9, [sp, #24]
41978   tst r2, #256
41979   orr r1, r9, r3
41980   orr r0, r9, r3
41981   mov r3, r2, lsr #16
41982   mov r3, r3, asl #16
41983   orr r3, r3, r1
41984   orr r1, r0, r2, asl #16
41985   strne r3, [lr, #0]
41986   streq r1, [lr, #0]
41987 .L13343:
41988   add r4, r4, #1
41989   cmp r4, r6
41990   mov ip, ip, asl #8
41991   add lr, lr, #4
41992   bne .L13342
41993   ldr sl, [sp, #60]
41994   add r3, sl, r5, asl #2
41995   sub r2, r3, #16
41996 .L13341:
41997   ldr r1, [r8, #0]
41998   cmp r1, #0
41999   beq .L13349
42000   ands  r0, r1, #255
42001   beq .L13351
42002   ldr r3, [r2, #12]
42003   tst r3, #256
42004   movne r3, r3, lsr #16
42005   ldrne ip, [sp, #24]
42006   ldreq lr, [sp, #24]
42007   movne r3, r3, asl #16
42008   orrne r3, ip, r3
42009   orreq r3, lr, r3, asl #16
42010   orrne r3, r0, r3
42011   orreq r3, r0, r3
42012   strne r3, [r2, #12]
42013   streq r3, [r2, #12]
42014 .L13351:
42015   mov r3, r1, lsr #8
42016   ands  r0, r3, #255
42017   beq .L13355
42018   ldr r3, [r2, #8]
42019   tst r3, #256
42020   movne r3, r3, lsr #16
42021   ldrne r4, [sp, #24]
42022   ldreq r6, [sp, #24]
42023   movne r3, r3, asl #16
42024   orrne r3, r4, r3
42025   orreq r3, r6, r3, asl #16
42026   orrne r3, r0, r3
42027   orreq r3, r0, r3
42028   strne r3, [r2, #8]
42029   streq r3, [r2, #8]
42030 .L13355:
42031   mov r3, r1, lsr #16
42032   ands  r0, r3, #255
42033   beq .L13359
42034   ldr r3, [r2, #4]
42035   tst r3, #256
42036   movne r3, r3, lsr #16
42037   ldrne r7, [sp, #24]
42038   ldreq r9, [sp, #24]
42039   movne r3, r3, asl #16
42040   orrne r3, r7, r3
42041   orreq r3, r9, r3, asl #16
42042   orrne r3, r0, r3
42043   orreq r3, r0, r3
42044   strne r3, [r2, #4]
42045   streq r3, [r2, #4]
42046 .L13359:
42047   movs  r1, r1, lsr #24
42048   beq .L13349
42049   ldr r3, [r2, #0]
42050   tst r3, #256
42051   beq .L13364
42052   mov r3, r3, lsr #16
42053   ldr sl, [sp, #24]
42054   mov r3, r3, asl #16
42055   orr r3, sl, r3
42056   orr r3, r1, r3
42057   str r3, [r2, #0]
42058 .L13349:
42059   add r4, r2, #16
42060   b .L13331
42061 .L12991:
42062   subs  r6, r5, #4
42063   ldr r2, [r7, #0]
42064   ldreq r2, [sp, #60]
42065   beq .L13005
42066   mov r3, lr, asl #3
42067   mov ip, r2, lsr r3
42068   ldr lr, [sp, #60]
42069   mov r4, #0
42070 .L13006:
42071   ands  r3, ip, #255
42072   beq .L13007
42073   ldr r2, [lr, #0]
42074   ldr r9, [sp, #24]
42075   tst r2, #256
42076   orr r1, r9, r3
42077   orr r0, r9, r3
42078   mov r3, r2, lsr #16
42079   mov r3, r3, asl #16
42080   orr r3, r3, r1
42081   orr r1, r0, r2, asl #16
42082   strne r3, [lr, #0]
42083   streq r1, [lr, #0]
42084 .L13007:
42085   add r4, r4, #1
42086   cmp r6, r4
42087   mov ip, ip, lsr #8
42088   add lr, lr, #4
42089   bne .L13006
42090   ldr sl, [sp, #60]
42091   add r3, sl, r5, asl #2
42092   sub r2, r3, #16
42093 .L13005:
42094   ldr r1, [r7, #4]
42095   cmp r1, #0
42096   beq .L13013
42097   ands  r0, r1, #255
42098   beq .L13015
42099   ldr r3, [r2, #0]
42100   tst r3, #256
42101   movne r3, r3, lsr #16
42102   ldrne ip, [sp, #24]
42103   ldreq lr, [sp, #24]
42104   movne r3, r3, asl #16
42105   orrne r3, ip, r3
42106   orreq r3, lr, r3, asl #16
42107   orrne r3, r0, r3
42108   orreq r3, r0, r3
42109   strne r3, [r2, #0]
42110   streq r3, [r2, #0]
42111 .L13015:
42112   mov r3, r1, lsr #8
42113   ands  r0, r3, #255
42114   beq .L13019
42115   ldr r3, [r2, #4]
42116   tst r3, #256
42117   movne r3, r3, lsr #16
42118   ldrne r4, [sp, #24]
42119   ldreq r6, [sp, #24]
42120   movne r3, r3, asl #16
42121   orrne r3, r4, r3
42122   orreq r3, r6, r3, asl #16
42123   orrne r3, r0, r3
42124   orreq r3, r0, r3
42125   strne r3, [r2, #4]
42126   streq r3, [r2, #4]
42127 .L13019:
42128   mov r3, r1, lsr #16
42129   ands  r0, r3, #255
42130   beq .L13023
42131   ldr r3, [r2, #8]
42132   tst r3, #256
42133   movne r3, r3, lsr #16
42134   ldrne r8, [sp, #24]
42135   ldreq r9, [sp, #24]
42136   movne r3, r3, asl #16
42137   orrne r3, r8, r3
42138   orreq r3, r9, r3, asl #16
42139   orrne r3, r0, r3
42140   orreq r3, r0, r3
42141   strne r3, [r2, #8]
42142   streq r3, [r2, #8]
42143 .L13023:
42144   movs  r1, r1, lsr #24
42145   beq .L13013
42146   ldr r3, [r2, #12]
42147   tst r3, #256
42148   beq .L13028
42149   mov r3, r3, lsr #16
42150   ldr sl, [sp, #24]
42151   mov r3, r3, asl #16
42152   orr r3, sl, r3
42153   orr r3, r1, r3
42154   str r3, [r2, #12]
42155 .L13013:
42156   add r4, r2, #16
42157   b .L12995
42158 .L13667:
42159   mov lr, r7
42160   b .L13631
42161 .L13292:
42162   ldr r7, [sp, #80]
42163   mov r3, lr, asl #3
42164   ldr r1, [r8, #4]
42165   add r2, r7, lr
42166   sub r3, r3, #32
42167   cmp r2, #4
42168   mov ip, r1, asl r3
42169   bhi .L13301
42170   cmp r7, #0
42171   ldrne lr, [sp, #60]
42172   movne r4, #0
42173   beq .L12455
42174 .L13321:
42175   movs  r3, ip, lsr #24
42176   beq .L13322
42177   ldr r2, [lr, #0]
42178   ldr r5, [sp, #24]
42179   tst r2, #256
42180   orr r1, r5, r3
42181   orr r0, r5, r3
42182   mov r3, r2, lsr #16
42183   mov r3, r3, asl #16
42184   orr r3, r3, r1
42185   orr r1, r0, r2, asl #16
42186   strne r3, [lr, #0]
42187   streq r1, [lr, #0]
42188 .L13322:
42189   ldr r6, [sp, #80]
42190   add r4, r4, #1
42191   cmp r6, r4
42192   mov ip, ip, asl #8
42193   add lr, lr, #4
42194   bne .L13321
42195   b .L12455
42196 .L12956:
42197   ldr r8, [sp, #80]
42198   ldr r3, [r7, #0]
42199   add r2, r8, lr
42200   mov r1, lr, asl #3
42201   cmp r2, #4
42202   mov ip, r3, lsr r1
42203   bhi .L12965
42204   cmp r8, #0
42205   ldrne lr, [sp, #60]
42206   movne r4, #0
42207   beq .L12455
42208 .L12985:
42209   ands  r3, ip, #255
42210   beq .L12986
42211   ldr r2, [lr, #0]
42212   ldr r5, [sp, #24]
42213   tst r2, #256
42214   orr r1, r5, r3
42215   orr r0, r5, r3
42216   mov r3, r2, lsr #16
42217   mov r3, r3, asl #16
42218   orr r3, r3, r1
42219   orr r1, r0, r2, asl #16
42220   strne r3, [lr, #0]
42221   streq r1, [lr, #0]
42222 .L12986:
42223   ldr r6, [sp, #80]
42224   add r4, r4, #1
42225   cmp r6, r4
42226   mov ip, ip, lsr #8
42227   add lr, lr, #4
42228   bne .L12985
42229   b .L12455
42230 .L12965:
42231   rsbs  r5, lr, #4
42232   ldreq lr, [sp, #60]
42233   beq .L12970
42234   ldr lr, [sp, #60]
42235   mov r4, #0
42236 .L12971:
42237   ands  r3, ip, #255
42238   beq .L12972
42239   ldr r2, [lr, #0]
42240   ldr r9, [sp, #24]
42241   tst r2, #256
42242   orr r1, r9, r3
42243   orr r0, r9, r3
42244   mov r3, r2, lsr #16
42245   mov r3, r3, asl #16
42246   orr r3, r3, r1
42247   orr r1, r0, r2, asl #16
42248   strne r3, [lr, #0]
42249   streq r1, [lr, #0]
42250 .L12972:
42251   add r4, r4, #1
42252   cmp r5, r4
42253   mov ip, ip, lsr #8
42254   add lr, lr, #4
42255   bne .L12971
42256   ldr sl, [sp, #60]
42257   add lr, sl, r5, asl #2
42258 .L12970:
42259   ldr ip, [sp, #80]
42260   subs  r5, ip, r5
42261   ldr ip, [r7, #4]
42262   beq .L12455
42263   mov r4, #0
42264 .L12979:
42265   ands  r3, ip, #255
42266   beq .L12980
42267   ldr r2, [lr, #0]
42268   ldr r0, [sp, #24]
42269   tst r2, #256
42270   orr r1, r0, r3
42271   orr r0, r0, r3
42272   mov r3, r2, lsr #16
42273   mov r3, r3, asl #16
42274   orr r3, r3, r1
42275   orr r1, r0, r2, asl #16
42276   strne r3, [lr, #0]
42277   streq r1, [lr, #0]
42278 .L12980:
42279   add r4, r4, #1
42280   cmp r5, r4
42281   mov ip, ip, lsr #8
42282   add lr, lr, #4
42283   bne .L12979
42284   b .L12455
42285 .L13301:
42286   rsbs  r5, lr, #4
42287   ldreq lr, [sp, #60]
42288   beq .L13306
42289   ldr lr, [sp, #60]
42290   mov r4, #0
42291 .L13307:
42292   movs  r3, ip, lsr #24
42293   beq .L13308
42294   ldr r2, [lr, #0]
42295   ldr r9, [sp, #24]
42296   tst r2, #256
42297   orr r1, r9, r3
42298   orr r0, r9, r3
42299   mov r3, r2, lsr #16
42300   mov r3, r3, asl #16
42301   orr r3, r3, r1
42302   orr r1, r0, r2, asl #16
42303   strne r3, [lr, #0]
42304   streq r1, [lr, #0]
42305 .L13308:
42306   add r4, r4, #1
42307   cmp r4, r5
42308   mov ip, ip, asl #8
42309   add lr, lr, #4
42310   bne .L13307
42311   ldr sl, [sp, #60]
42312   add lr, sl, r5, asl #2
42313 .L13306:
42314   ldr ip, [sp, #80]
42315   subs  r5, ip, r5
42316   ldr ip, [r8, #0]
42317   beq .L12455
42318   mov r4, #0
42319 .L13315:
42320   movs  r3, ip, lsr #24
42321   beq .L13316
42322   ldr r2, [lr, #0]
42323   ldr r0, [sp, #24]
42324   tst r2, #256
42325   orr r1, r0, r3
42326   orr r0, r0, r3
42327   mov r3, r2, lsr #16
42328   mov r3, r3, asl #16
42329   orr r3, r3, r1
42330   orr r1, r0, r2, asl #16
42331   strne r3, [lr, #0]
42332   streq r1, [lr, #0]
42333 .L13316:
42334   add r4, r4, #1
42335   cmp r5, r4
42336   mov ip, ip, asl #8
42337   add lr, lr, #4
42338   bne .L13315
42339   b .L12455
42340 .L13136:
42341   ldr lr, [sp, #24]
42342   orr r3, lr, r3, asl #16
42343   orr r3, r2, r3
42344   str r3, [r1, #12]
42345   add r1, r1, #16
42346   b .L13103
42347 .L13472:
42348   ldr lr, [sp, #24]
42349   add r0, r1, #16
42350   orr r3, lr, r3, asl #16
42351   orr r3, r2, r3
42352   str r3, [r1, #0]
42353   b .L13439
42354 .L13364:
42355   ldr lr, [sp, #24]
42356   add r4, r2, #16
42357   orr r3, lr, r3, asl #16
42358   orr r3, r1, r3
42359   str r3, [r2, #0]
42360   b .L13331
42361 .L13028:
42362   ldr lr, [sp, #24]
42363   add r4, r2, #16
42364   orr r3, lr, r3, asl #16
42365   orr r3, r1, r3
42366   str r3, [r2, #12]
42367   b .L12995
42368   .size render_scanline_obj_alpha_obj_2D, .-render_scanline_obj_alpha_obj_2D
42369   .align  2
42370   .global render_scanline_obj_partial_alpha_1D
42371   .type render_scanline_obj_partial_alpha_1D, %function
42372 render_scanline_obj_partial_alpha_1D:
42373   @ args = 0, pretend = 0, frame = 148
42374   @ frame_needed = 0, uses_anonymous_args = 0
42375   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
42376   ldr ip, .L15733
42377   sub sp, sp, #148
42378   ldrh  r4, [ip, #6]
42379   add r0, r0, r0, asl #2
42380   str r4, [sp, #40]
42381   ldr r5, [sp, #40]
42382   ldrh  r4, [ip, #80]
42383   ldr ip, .L15733+4
42384   add r0, r5, r0, asl #5
42385   ldr ip, [ip, r0, asl #2]
42386   mov lr, r4, lsr #11
42387   and lr, lr, #2
42388   mov r4, r4, asl #27
42389   str ip, [sp, #44]
42390   orr lr, lr, r4, lsr #31
42391   cmp ip, #0
42392   ldr ip, .L15733+8
42393   mov lr, lr, asl #9
42394   add r0, ip, r0, asl #7
42395   orr lr, lr, #256
42396   str r0, [sp, #48]
42397   str r1, [sp, #8]
42398   str r2, [sp, #4]
42399   str r3, [sp, #0]
42400   str lr, [sp, #28]
42401   beq .L15634
42402   mov ip, #0
42403   add r7, r3, r1, asl #2
42404   rsb r8, r1, r2
42405   str r7, [sp, #108]
42406   str r8, [sp, #144]
42407   str ip, [sp, #32]
42408   mov lr, ip
42409 .L13677:
42410   ldr r0, [sp, #48]
42411   ldr r1, .L15733+12
42412   ldrb  r3, [lr, r0]  @ zero_extendqisi2
42413   mov r3, r3, asl #3
42414   ldrh  lr, [r3, r1]
42415   add r3, r3, r1
42416   ldrh  r4, [r3, #2]
42417   mov r0, lr, lsr #12
42418   and r2, r0, #12
42419   ldrh  r3, [r3, #4]
42420   orr r1, r2, r4, lsr #14
42421   and ip, lr, #255
42422   mov r2, r4, asl #23
42423   cmp ip, #160
42424   str r3, [sp, #36]
42425   mov r5, r2, asr #23
42426   ldr r3, .L15733+16
42427   ldr r2, .L15733+20
42428   subgt ip, ip, #256
42429   tst lr, #3072
42430   ldr r7, [r2, r1, asl #2]
42431   ldr sl, [r3, r1, asl #2]
42432   beq .L13680
42433   tst lr, #256
42434   beq .L13682
42435   tst lr, #8192
42436   beq .L13684
42437   mov r3, r4, lsr #4
42438   ldr r4, .L15733+12
42439   add r2, r7, r7, lsr #31
42440   and r3, r3, #992
42441   tst lr, #512
42442   add r3, r3, r4
42443   mov lr, r2, asr #1
42444   add r1, sl, sl, lsr #31
42445   ldr r2, [sp, #8]
42446   mov r4, r1, asr #1
42447   ldrh  r9, [r3, #30]
42448   ldrh  r8, [r3, #6]
42449   ldrh  r1, [r3, #14]
42450   ldrh  r3, [r3, #22]
42451   moveq r6, r7
42452   moveq fp, lr
42453   moveq r0, r4
42454   movne r6, r7, asl #1
42455   movne fp, lr, asl #1
42456   movne r0, r4, asl #1
42457   cmp r5, r2
42458   str r3, [sp, #12]
42459   bge .L13689
42460   rsb r2, r5, r2
42461   rsb r6, r2, r6
42462   cmp r6, #0
42463   ble .L13691
42464   ldr r5, [sp, #8]
42465   rsb fp, r2, fp
42466 .L13689:
42467   ldr r2, [sp, #4]
42468   add r3, r5, r6
42469   cmp r3, r2
42470   blt .L13693
42471   rsb r6, r5, r2
42472   cmp r6, #0
42473   ble .L13691
42474 .L13693:
42475   mov r2, r1, asl #16
42476   mov r3, r8, asl #16
42477   mov r2, r2, asr #16
42478   ldr r8, [sp, #12]
42479   add r0, ip, r0
42480   str r2, [sp, #52]
42481   ldr ip, [sp, #0]
42482   ldr r2, [sp, #40]
42483   mov r1, r9, asl #16
42484   mov lr, lr, asl #8
42485   cmp r8, #0
42486   str lr, [sp, #128]
42487   mov r9, r3, asr #16
42488   mov r1, r1, asr #16
42489   mov r4, r4, asl #8
42490   add r5, ip, r5, asl #2
42491   rsb lr, r0, r2
42492   bne .L13695
42493   mla r3, lr, r1, r4
42494   mov r2, r3, asr #8
42495   cmp r2, sl
42496   bcs .L13691
42497   cmp r7, #0
42498   ldr r4, [sp, #36]
42499   add r3, r7, #7
42500   movge r3, r7
42501   mov r1, r4, asl #22
42502   mov r3, r3, asr #3
42503   mov r0, r2, lsr #3
42504   mov r3, r3, asl #1
42505   mov r1, r1, lsr #22
42506   mla ip, r3, r0, r1
42507   and r2, r2, #7
42508   ldr r8, .L15733+24
42509   add r2, r2, ip, asl #2
42510   cmp r6, #0
42511   add r4, r8, r2, asl #3
42512   ble .L13691
42513   ldr r3, [sp, #52]
42514   mul r2, r9, fp
42515   mul r3, lr, r3
42516   ldr ip, [sp, #128]
42517   rsb r3, r2, r3
42518   add r0, ip, r3
42519   mov r2, r0, asr #8
42520   cmp r2, r7
42521   ldrcs ip, [sp, #12]
42522   bcs .L13701
42523   b .L15725
42524 .L13702:
42525   cmp r2, r7
42526   bcc .L15660
42527 .L13701:
42528   add ip, ip, #1
42529   add r0, r0, r9
42530   cmp r6, ip
42531   mov r2, r0, asr #8
42532   add r5, r5, #4
42533   bne .L13702
42534 .L13691:
42535   ldr r0, [sp, #32]
42536   ldr r1, [sp, #44]
42537   add r0, r0, #1
42538   cmp r0, r1
42539   str r0, [sp, #32]
42540   beq .L15634
42541 .L15686:
42542   ldr lr, [sp, #32]
42543   b .L13677
42544 .L13680:
42545   tst lr, #256
42546   beq .L14852
42547   tst lr, #8192
42548   beq .L14854
42549   mov r3, r4, lsr #4
42550   ldr r4, .L15733+12
42551   add r1, sl, sl, lsr #31
42552   and r3, r3, #992
42553   add r3, r3, r4
42554   add r2, r7, r7, lsr #31
42555   mov r4, r1, asr #1
42556   ldr r1, [sp, #8]
42557   tst lr, #512
42558   ldrh  r8, [r3, #30]
42559   mov lr, r2, asr #1
42560   moveq r9, r7
42561   moveq r6, lr
42562   moveq r0, r4
42563   movne r9, r7, asl #1
42564   movne r6, lr, asl #1
42565   movne r0, r4, asl #1
42566   cmp r5, r1
42567   str r8, [sp, #20]
42568   ldrh  r2, [r3, #14]
42569   ldrh  r8, [r3, #6]
42570   ldrh  fp, [r3, #22]
42571   bge .L14859
42572   rsb r1, r5, r1
42573   rsb r9, r1, r9
42574   cmp r9, #0
42575   ble .L13691
42576   ldr r5, [sp, #8]
42577   rsb r6, r1, r6
42578 .L14859:
42579   ldr r1, [sp, #4]
42580   add r3, r5, r9
42581   cmp r3, r1
42582   blt .L14862
42583   rsb r9, r5, r1
42584   cmp r9, #0
42585   ble .L13691
42586 .L14862:
42587   mov r2, r2, asl #16
42588   mov r3, r8, asl #16
42589   mov r2, r2, asr #16
42590   ldr r8, [sp, #20]
42591   mov lr, lr, asl #8
42592   str r2, [sp, #76]
42593   str lr, [sp, #80]
42594   ldr r2, [sp, #40]
42595   ldr lr, [sp, #0]
42596   add r0, ip, r0
42597   mov r1, r8, asl #16
42598   mov r3, r3, asr #16
42599   cmp fp, #0
42600   add r8, lr, r5, asl #2
42601   str r3, [sp, #72]
42602   mov r1, r1, asr #16
42603   mov ip, r4, asl #8
42604   rsb lr, r0, r2
42605   bne .L14864
42606   mla r3, lr, r1, ip
42607   mov r2, r3, asr #8
42608   cmp r2, sl
42609   bcs .L13691
42610   cmp r7, #0
42611   ldr r4, [sp, #36]
42612   add r3, r7, #7
42613   movge r3, r7
42614   mov r1, r4, asl #22
42615   mov r3, r3, asr #3
42616   mov r0, r2, lsr #3
42617   mov r3, r3, asl #1
42618   mov r1, r1, lsr #22
42619   mla ip, r3, r0, r1
42620   and r2, r2, #7
42621   ldr r5, .L15733+24
42622   add r2, r2, ip, asl #2
42623   cmp r9, #0
42624   add r4, r5, r2, asl #3
42625   ble .L13691
42626   ldr r3, [sp, #76]
42627   ldr r2, [sp, #72]
42628   mul r3, lr, r3
42629   mul r2, r6, r2
42630   ldr ip, [sp, #80]
42631   rsb r3, r2, r3
42632   add r0, ip, r3
42633   mov lr, r0, asr #8
42634   cmp lr, r7
42635   movcs ip, fp
42636   bcs .L14870
42637   b .L15726
42638 .L14871:
42639   cmp lr, r7
42640   bcc .L15672
42641 .L14870:
42642   ldr lr, [sp, #72]
42643   add ip, ip, #1
42644   add r0, r0, lr
42645   cmp r9, ip
42646   mov lr, r0, asr #8
42647   add r8, r8, #4
42648   bne .L14871
42649   ldr r0, [sp, #32]
42650   ldr r1, [sp, #44]
42651   add r0, r0, #1
42652   cmp r0, r1
42653   str r0, [sp, #32]
42654   bne .L15686
42655 .L15634:
42656   add sp, sp, #148
42657   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
42658 .L13682:
42659   ldr r1, [sp, #40]
42660   tst r4, #8192
42661   rsb ip, ip, r1
42662   rsbne r3, ip, sl
42663   subne ip, r3, #1
42664   mov r2, r4, asl #19
42665   and r3, r0, #2
42666   orr r3, r3, r2, lsr #31
42667   cmp r3, #3
42668   ldrls pc, [pc, r3, asl #2]
42669   b .L13691
42670   .p2align 2
42671 .L13771:
42672   .word .L13767
42673   .word .L13768
42674   .word .L13769
42675   .word .L13770
42676 .L14852:
42677   ldr lr, [sp, #40]
42678   tst r4, #8192
42679   rsb ip, ip, lr
42680   rsbne r3, ip, sl
42681   subne ip, r3, #1
42682   mov r2, r4, asl #19
42683   and r3, r0, #2
42684   orr r3, r3, r2, lsr #31
42685   cmp r3, #3
42686   ldrls pc, [pc, r3, asl #2]
42687   b .L13691
42688   .p2align 2
42689 .L14933:
42690   .word .L14929
42691   .word .L14930
42692   .word .L14931
42693   .word .L14932
42694 .L14854:
42695   mov r3, r4, lsr #4
42696   ldr r1, .L15733+12
42697   and r3, r3, #992
42698   add r3, r3, r1
42699   ldrh  r4, [r3, #30]
42700   add r1, sl, sl, lsr #31
42701   add r2, r7, r7, lsr #31
42702   str r4, [sp, #24]
42703   mov r4, r1, asr #1
42704   ldr r1, [sp, #8]
42705   tst lr, #512
42706   mov lr, r2, asr #1
42707   moveq fp, r7
42708   moveq r6, lr
42709   moveq r0, r4
42710   movne fp, r7, asl #1
42711   movne r6, lr, asl #1
42712   movne r0, r4, asl #1
42713   cmp r5, r1
42714   ldrh  r8, [r3, #6]
42715   ldrh  r2, [r3, #14]
42716   ldrh  r9, [r3, #22]
42717   bge .L14891
42718   rsb r1, r5, r1
42719   rsb fp, r1, fp
42720   cmp fp, #0
42721   ble .L13691
42722   ldr r5, [sp, #8]
42723   rsb r6, r1, r6
42724 .L14891:
42725   ldr r1, [sp, #4]
42726   add r3, r5, fp
42727   cmp r3, r1
42728   blt .L14894
42729   rsb fp, r5, r1
42730   cmp fp, #0
42731   ble .L13691
42732 .L14894:
42733   mov r3, r8, asl #16
42734   ldr r8, [sp, #24]
42735   mov r2, r2, asl #16
42736   mov r1, r8, asl #16
42737   ldr r8, [sp, #36]
42738   mov r2, r2, asr #16
42739   mov lr, lr, asl #8
42740   add ip, ip, r0
42741   str r2, [sp, #92]
42742   mov r0, r8, lsr #8
42743   str lr, [sp, #100]
42744   ldr r2, [sp, #40]
42745   ldr lr, [sp, #0]
42746   mov r3, r3, asr #16
42747   and r0, r0, #240
42748   cmp r9, #0
42749   add r8, lr, r5, asl #2
42750   str r3, [sp, #88]
42751   mov r1, r1, asr #16
42752   mov r4, r4, asl #8
42753   rsb lr, ip, r2
42754   str r0, [sp, #136]
42755   bne .L14896
42756   mla r3, lr, r1, r4
42757   mov r3, r3, asr #8
42758   cmp r3, sl
42759   bcs .L13691
42760   ldr r4, [sp, #36]
42761   cmp r7, #0
42762   add r2, r7, #7
42763   mov r1, r4, asl #22
42764   movge r2, r7
42765   mov r1, r1, lsr #22
42766   mov r0, r3, lsr #3
42767   mov r2, r2, asr #3
42768   mla ip, r2, r0, r1
42769   and r3, r3, #7
42770   ldr r5, .L15733+24
42771   add r3, r3, ip, asl #3
42772   cmp fp, #0
42773   add r1, r5, r3, asl #2
42774   ble .L13691
42775   ldr r3, [sp, #92]
42776   ldr r2, [sp, #88]
42777   mul r3, lr, r3
42778   mul r2, r6, r2
42779   ldr ip, [sp, #100]
42780   rsb r3, r2, r3
42781   add r0, ip, r3
42782   mov r3, r0, asr #8
42783   cmp r3, r7
42784   mov lr, r3
42785   movcs r4, r9
42786   bcs .L14902
42787   b .L15727
42788 .L14903:
42789   cmp r3, r7
42790   bcc .L14904
42791 .L14902:
42792   ldr lr, [sp, #88]
42793   add r4, r4, #1
42794   add r0, r0, lr
42795   mov r3, r0, asr #8
42796   cmp fp, r4
42797   add r8, r8, #4
42798   mov lr, r3
42799   bne .L14903
42800   b .L13691
42801 .L13684:
42802   mov r3, r4, lsr #4
42803   ldr r4, .L15733+12
42804   add r2, r7, r7, lsr #31
42805   and r3, r3, #992
42806   tst lr, #512
42807   add r3, r3, r4
42808   mov lr, r2, asr #1
42809   add r1, sl, sl, lsr #31
42810   ldr r2, [sp, #8]
42811   mov r4, r1, asr #1
42812   ldrh  r9, [r3, #30]
42813   ldrh  r8, [r3, #6]
42814   ldrh  r1, [r3, #14]
42815   ldrh  r3, [r3, #22]
42816   moveq fp, r7
42817   moveq r6, lr
42818   moveq r0, r4
42819   movne fp, r7, asl #1
42820   movne r6, lr, asl #1
42821   movne r0, r4, asl #1
42822   cmp r5, r2
42823   str r3, [sp, #16]
42824   bge .L13726
42825   rsb r2, r5, r2
42826   rsb fp, r2, fp
42827   cmp fp, #0
42828   ble .L13691
42829   ldr r5, [sp, #8]
42830   rsb r6, r2, r6
42831 .L13726:
42832   ldr r2, [sp, #4]
42833   add r3, r5, fp
42834   cmp r3, r2
42835   blt .L13729
42836   rsb fp, r5, r2
42837   cmp fp, #0
42838   ble .L13691
42839 .L13729:
42840   mov r3, r8, asl #16
42841   ldr r8, [sp, #16]
42842   mov r2, r1, asl #16
42843   cmp r8, #0
42844   ldr r8, [sp, #36]
42845   mov lr, lr, asl #8
42846   add ip, ip, r0
42847   str lr, [sp, #132]
42848   mov r0, r8, lsr #8
42849   ldr lr, [sp, #0]
42850   mov r8, r2, asr #16
42851   ldr r2, [sp, #40]
42852   mov r1, r9, asl #16
42853   mov r3, r3, asr #16
42854   and r0, r0, #240
42855   add r9, lr, r5, asl #2
42856   str r3, [sp, #60]
42857   mov r1, r1, asr #16
42858   mov r4, r4, asl #8
42859   rsb lr, ip, r2
42860   str r0, [sp, #140]
42861   bne .L13731
42862   mla r3, lr, r1, r4
42863   mov r3, r3, asr #8
42864   cmp r3, sl
42865   bcs .L13691
42866   ldr r4, [sp, #36]
42867   cmp r7, #0
42868   add r2, r7, #7
42869   mov r1, r4, asl #22
42870   movge r2, r7
42871   mov r0, r3, lsr #3
42872   mov r1, r1, lsr #22
42873   mov r2, r2, asr #3
42874   mla ip, r2, r0, r1
42875   and r3, r3, #7
42876   add r3, r3, ip, asl #3
42877   ldr ip, .L15733+24
42878   cmp fp, #0
42879   add r5, ip, r3, asl #2
42880   ble .L13691
42881   ldr r2, [sp, #60]
42882   mul r3, lr, r8
42883   mul r2, r6, r2
42884   ldr lr, [sp, #132]
42885   rsb r3, r2, r3
42886   add ip, lr, r3
42887   mov r1, ip, asr #8
42888   cmp r1, r7
42889   ldrcs lr, [sp, #16]
42890   bcs .L13737
42891   b .L15728
42892 .L13738:
42893   cmp r1, r7
42894   bcc .L15662
42895 .L13737:
42896   ldr r0, [sp, #60]
42897   add lr, lr, #1
42898   add ip, ip, r0
42899   cmp fp, lr
42900   mov r1, ip, asr #8
42901   add r9, r9, #4
42902   bne .L13738
42903   b .L13691
42904 .L13740:
42905   cmp r1, r7
42906   bcs .L13691
42907 .L15662:
42908   mov r3, r1, asr #1
42909   and r4, r3, #3
42910   mov r3, r1, asr #3
42911   mov r3, r3, asl #5
42912   mov r2, r1, asr #1
42913   and r0, r2, #3
42914   tst r1, #1
42915   add r2, r3, r5
42916   add r1, r3, r5
42917   ldrneb  r3, [r1, r4]  @ zero_extendqisi2
42918   ldreqb  r3, [r2, r0]  @ zero_extendqisi2
42919   movne r0, r3, lsr #4
42920   andeq r0, r3, #15
42921   ldr r1, [sp, #140]
42922   cmp r0, #0
42923   orr r0, r0, r1
42924   beq .L13745
42925   ldr r2, [r9, #0]
42926   orr r1, r0, #768
42927   mov r3, r2, lsr #16
42928   orr r0, r0, #768
42929   mov r3, r3, asl #16
42930   tst r2, #256
42931   orr r3, r3, r1
42932   orr r0, r0, r2, asl #16
42933   strne r3, [r9, #0]
42934   streq r0, [r9, #0]
42935 .L13745:
42936   ldr r2, [sp, #60]
42937   add lr, lr, #1
42938   add ip, ip, r2
42939   cmp fp, lr
42940   add r9, r9, #4
42941   mov r1, ip, asr #8
42942   bgt .L13740
42943   b .L13691
42944 .L13731:
42945   ldr r5, [sp, #36]
42946   cmp r7, #0
42947   add r2, r7, #7
42948   mov r3, r5, asl #22
42949   movge r2, r7
42950   ldr ip, .L15733+24
42951   mov r3, r3, lsr #22
42952   mov r2, r2, asr #3
42953   add r3, ip, r3, asl #5
42954   mov r2, r2, asl #5
42955   cmp fp, #0
42956   str r3, [sp, #120]
42957   str r2, [sp, #68]
42958   ble .L13691
42959   ldr r0, [sp, #16]
42960   mul r2, lr, r1
42961   mov r3, r0, asl #16
42962   mov r3, r3, asr #16
42963   str r3, [sp, #64]
42964   ldr r1, [sp, #64]
42965   ldr r0, [sp, #60]
42966   mul r1, r6, r1
42967   mul r3, lr, r8
42968   mul r0, r6, r0
42969   rsb r2, r1, r2
42970   ldr r1, [sp, #132]
42971   rsb r3, r0, r3
42972   add r5, r4, r2
42973   add r6, r1, r3
42974   mov r4, r6, asr #8
42975   mov r3, r5, asr #8
42976   cmp r4, r7
42977   cmpcc r3, sl
42978   movcs r2, #0
42979   movcc r2, #1
42980   movcs r8, r2
42981   bcs .L13752
42982   b .L15729
42983 .L13753:
42984   cmp r4, r7
42985   cmpcc r3, sl
42986   bcc .L13754
42987 .L13752:
42988   ldr r3, [sp, #64]
42989   ldr r2, [sp, #60]
42990   add r8, r8, #1
42991   add r6, r6, r2
42992   add r5, r5, r3
42993   cmp fp, r8
42994   mov r4, r6, asr #8
42995   mov r3, r5, asr #8
42996   add r9, r9, #4
42997   bne .L13753
42998   b .L13691
42999 .L14896:
43000   ldr r0, [sp, #36]
43001   cmp r7, #0
43002   add r2, r7, #7
43003   mov r3, r0, asl #22
43004   movge r2, r7
43005   ldr r5, .L15733+24
43006   mov r3, r3, lsr #22
43007   mov r2, r2, asr #3
43008   add r3, r5, r3, asl #5
43009   mov r2, r2, asl #5
43010   cmp fp, #0
43011   str r3, [sp, #112]
43012   str r2, [sp, #104]
43013   ble .L13691
43014   mov r3, r9, asl #16
43015   mov r3, r3, asr #16
43016   str r3, [sp, #96]
43017   mul r2, lr, r1
43018   ldr r3, [sp, #92]
43019   ldr r1, [sp, #96]
43020   ldr r0, [sp, #88]
43021   mul r3, lr, r3
43022   mul r1, r6, r1
43023   mul r0, r6, r0
43024   ldr ip, [sp, #100]
43025   rsb r2, r1, r2
43026   rsb r3, r0, r3
43027   add r5, ip, r3
43028   add r4, r4, r2
43029   mov lr, r5, asr #8
43030   mov r2, r4, asr #8
43031   cmp lr, r7
43032   cmpcc r2, sl
43033   movcs r3, #0
43034   movcc r3, #1
43035   movcs r6, r3
43036   bcs .L14916
43037   b .L15730
43038 .L14917:
43039   cmp lr, r7
43040   cmpcc r2, sl
43041   bcc .L14918
43042 .L14916:
43043   ldr lr, [sp, #88]
43044   ldr r0, [sp, #96]
43045   add r6, r6, #1
43046   add r5, r5, lr
43047   add r4, r4, r0
43048   cmp fp, r6
43049   mov lr, r5, asr #8
43050   mov r2, r4, asr #8
43051   add r8, r8, #4
43052   bne .L14917
43053   b .L13691
43054 .L14873:
43055   cmp lr, r7
43056   bcs .L13691
43057 .L15672:
43058   ldr r1, [sp, #72]
43059   mov r3, lr, asr #3
43060   add r0, r0, r1
43061   add r3, r4, r3, asl #6
43062   and r1, lr, #7
43063   ldrb  r2, [r3, r1]  @ zero_extendqisi2
43064   ldr r5, [sp, #28]
43065   cmp r2, #0
43066   add ip, ip, #1
43067   orr r3, r5, r2
43068   strne r3, [r8, #0]
43069   cmp r9, ip
43070   mov lr, r0, asr #8
43071   add r8, r8, #4
43072   bgt .L14873
43073   b .L13691
43074 .L13704:
43075   cmp r2, r7
43076   bcs .L13691
43077 .L15660:
43078   mov r3, r2, asr #3
43079   add r3, r4, r3, asl #6
43080   and r2, r2, #7
43081   ldrb  lr, [r3, r2]  @ zero_extendqisi2
43082   cmp lr, #0
43083   beq .L13706
43084   ldr r3, [r5, #0]
43085   mov r2, r3, lsr #16
43086   mov r2, r2, asl #16
43087   orr r1, lr, r3, asl #16
43088   orr r2, r2, #768
43089   tst r3, #256
43090   orr r2, lr, r2
43091   orr r1, r1, #768
43092   strne r2, [r5, #0]
43093   streq r1, [r5, #0]
43094 .L13706:
43095   add ip, ip, #1
43096   add r0, r0, r9
43097   cmp r6, ip
43098   add r5, r5, #4
43099   mov r2, r0, asr #8
43100   bgt .L13704
43101   b .L13691
43102 .L13695:
43103   ldr r0, [sp, #36]
43104   cmp r7, #0
43105   add r2, r7, #7
43106   mov r3, r0, asl #22
43107   movge r2, r7
43108   ldr r8, .L15733+24
43109   mov r3, r3, lsr #22
43110   mov r2, r2, asr #3
43111   add r3, r8, r3, asl #5
43112   mov r2, r2, asl #6
43113   cmp r6, #0
43114   str r3, [sp, #124]
43115   str r2, [sp, #56]
43116   ble .L13691
43117   ldr ip, [sp, #12]
43118   mul r2, lr, r1
43119   mov r3, ip, asl #16
43120   mov r8, r3, asr #16
43121   ldr r3, [sp, #52]
43122   mul r1, r8, fp
43123   mul r3, lr, r3
43124   mul r0, r9, fp
43125   ldr lr, [sp, #128]
43126   rsb r3, r0, r3
43127   rsb r2, r1, r2
43128   add ip, lr, r3
43129   add lr, r4, r2
43130   mov r1, ip, asr #8
43131   mov r0, lr, asr #8
43132   cmp r1, r7
43133   cmpcc r0, sl
43134   movcs r3, #0
43135   movcc r3, #1
43136   movcs r4, r3
43137   bcs .L13713
43138   b .L15731
43139 .L13714:
43140   cmp r1, r7
43141   cmpcc r0, sl
43142   bcc .L13715
43143 .L13713:
43144   add r4, r4, #1
43145   add ip, ip, r9
43146   add lr, lr, r8
43147   cmp r6, r4
43148   mov r1, ip, asr #8
43149   mov r0, lr, asr #8
43150   add r5, r5, #4
43151   bne .L13714
43152   b .L13691
43153 .L14864:
43154   ldr r0, [sp, #36]
43155   cmp r7, #0
43156   add r2, r7, #7
43157   mov r3, r0, asl #22
43158   movge r2, r7
43159   ldr r4, .L15733+24
43160   mov r3, r3, lsr #22
43161   mov r2, r2, asr #3
43162   add r3, r4, r3, asl #5
43163   mov r2, r2, asl #6
43164   cmp r9, #0
43165   str r3, [sp, #116]
43166   str r2, [sp, #84]
43167   ble .L13691
43168   mov r3, fp, asl #16
43169   mov fp, r3, asr #16
43170   ldr r0, [sp, #72]
43171   ldr r3, [sp, #76]
43172   mul r2, lr, r1
43173   mul r3, lr, r3
43174   mul r1, fp, r6
43175   mul r0, r6, r0
43176   ldr lr, [sp, #80]
43177   rsb r3, r0, r3
43178   rsb r2, r1, r2
43179   add r5, lr, r3
43180   add ip, ip, r2
43181   mov r4, r5, asr #8
43182   mov lr, ip, asr #8
43183   cmp r4, r7
43184   cmpcc lr, sl
43185   movcs r3, #0
43186   movcc r3, #1
43187   movcs r6, r3
43188   bcs .L14880
43189   b .L15732
43190 .L14881:
43191   cmp r4, r7
43192   cmpcc lr, sl
43193   bcc .L14882
43194 .L14880:
43195   ldr r0, [sp, #72]
43196   add r6, r6, #1
43197   add r5, r5, r0
43198   add ip, ip, fp
43199   cmp r9, r6
43200   mov r4, r5, asr #8
43201   mov lr, ip, asr #8
43202   add r8, r8, #4
43203   bne .L14881
43204   b .L13691
43205 .L14929:
43206   ldr r0, [sp, #36]
43207   cmp r7, #0
43208   add r3, r7, #7
43209   mov r2, r0, asl #22
43210   movge r3, r7
43211   mov r4, r3, asr #3
43212   mov r2, r2, lsr #22
43213   mov r3, ip, lsr #3
43214   mla r0, r4, r3, r2
43215   ldr r8, [sp, #36]
43216   ldr r2, [sp, #8]
43217   and r1, ip, #7
43218   ldr ip, .L15733+24
43219   add r1, r1, r0, asl #3
43220   mov r3, r8, lsr #8
43221   cmp r5, r2
43222   and r6, r3, #240
43223   add r0, ip, r1, asl #2
43224   bge .L14934
43225   rsb lr, r5, r2
43226   rsb r4, lr, r7
43227   cmp r4, #0
43228   ble .L13691
43229   ldr r1, [sp, #4]
43230   add r3, r5, r7
43231   cmp r1, r3
43232   bhi .L14937
43233   mov r3, lr, lsr #3
43234   mov r1, r3, asl #5
43235   ands  r3, lr, #7
43236   add r4, r0, r1
43237   bne .L14939
43238   ldr r5, [sp, #144]
43239   ldr r7, [sp, #108]
43240 .L14941:
43241   movs  lr, r5, lsr #3
43242   beq .L14958
43243   mov r1, r7
43244   mov r0, r4
43245   mov ip, #0
43246 .L14960:
43247   ldr r2, [r0, #0]
43248   cmp r2, #0
43249   beq .L14961
43250   ands  r3, r2, #15
43251   ldrne r8, [sp, #28]
43252   orrne r3, r8, r3
43253   orrne r3, r6, r3
43254   strne r3, [r1, #0]
43255   mov r3, r2, lsr #4
43256   ands  r3, r3, #15
43257   ldrne r8, [sp, #28]
43258   orrne r3, r8, r3
43259   orrne r3, r6, r3
43260   strne r3, [r1, #4]
43261   mov r3, r2, lsr #8
43262   ands  r3, r3, #15
43263   ldrne r8, [sp, #28]
43264   orrne r3, r8, r3
43265   orrne r3, r6, r3
43266   strne r3, [r1, #8]
43267   mov r3, r2, lsr #12
43268   ands  r3, r3, #15
43269   ldrne r8, [sp, #28]
43270   orrne r3, r8, r3
43271   orrne r3, r6, r3
43272   strne r3, [r1, #12]
43273   mov r3, r2, lsr #16
43274   ands  r3, r3, #15
43275   ldrne r8, [sp, #28]
43276   orrne r3, r8, r3
43277   orrne r3, r6, r3
43278   strne r3, [r1, #16]
43279   mov r3, r2, lsr #20
43280   ands  r3, r3, #15
43281   ldrne r8, [sp, #28]
43282   orrne r3, r8, r3
43283   orrne r3, r6, r3
43284   strne r3, [r1, #20]
43285   mov r3, r2, lsr #24
43286   ands  r3, r3, #15
43287   ldrne r8, [sp, #28]
43288   orrne r3, r8, r3
43289   orrne r3, r6, r3
43290   strne r3, [r1, #24]
43291   movs  r3, r2, lsr #28
43292   ldrne r2, [sp, #28]
43293   orrne r3, r2, r3
43294   orrne r3, r6, r3
43295   strne r3, [r1, #28]
43296 .L14961:
43297   add ip, ip, #1
43298   cmp lr, ip
43299   add r0, r0, #32
43300   add r1, r1, #32
43301   bne .L14960
43302   mov r3, lr, asl #5
43303   add r4, r4, r3
43304   add r7, r7, r3
43305 .L14958:
43306   ands  r0, r5, #7
43307   beq .L13691
43308   ldr r2, [r4, #0]
43309   mov r1, #0
43310 .L14980:
43311   ldr r4, [sp, #28]
43312   ands  r3, r2, #15
43313   orr r3, r4, r3
43314   orr r3, r6, r3
43315   strne r3, [r7, r1, asl #2]
43316   add r1, r1, #1
43317   cmp r1, r0
43318   mov r2, r2, lsr #4
43319   bne .L14980
43320   b .L13691
43321 .L14930:
43322   ldr lr, [sp, #36]
43323   cmp r7, #0
43324   add r3, r7, #7
43325   mov r2, lr, asl #22
43326   movge r3, r7
43327   mov r4, r3, asr #3
43328   mov r2, r2, lsr #22
43329   mov r1, ip, lsr #3
43330   mla r0, r4, r1, r2
43331   subs  r3, r7, #8
43332   submi r3, r7, #1
43333   add r0, r0, r3, asr #3
43334   and r2, ip, #7
43335   add r2, r2, r0, asl #3
43336   ldr r0, [sp, #8]
43337   ldr r1, .L15733+24
43338   cmp r5, r0
43339   mov r3, lr, lsr #8
43340   and r6, r3, #240
43341   add r0, r1, r2, asl #2
43342   bge .L15064
43343   ldr r2, [sp, #8]
43344   rsb lr, r5, r2
43345   rsb r1, lr, r7
43346   cmp r1, #0
43347   ble .L13691
43348   ldr r4, [sp, #4]
43349   add r3, r5, r7
43350   cmp r4, r3
43351   bhi .L15067
43352   mov r3, lr, lsr #3
43353   ands  r4, lr, #7
43354   sub r0, r0, r3, asl #5
43355   bne .L15069
43356   ldr r2, [sp, #144]
43357   ldr r1, [sp, #108]
43358 .L15071:
43359   movs  r8, r2, lsr #3
43360   beq .L15088
43361   mov r4, r1
43362   mov r5, r0
43363   mov r7, #0
43364 .L15090:
43365   ldr lr, [r5, #0]
43366   cmp lr, #0
43367   beq .L15091
43368   ands  r3, lr, #15
43369   ldrne ip, [sp, #28]
43370   orrne r3, ip, r3
43371   orrne r3, r6, r3
43372   strne r3, [r4, #28]
43373   mov r3, lr, lsr #4
43374   ands  r3, r3, #15
43375   ldrne ip, [sp, #28]
43376   orrne r3, ip, r3
43377   orrne r3, r6, r3
43378   strne r3, [r4, #24]
43379   mov r3, lr, lsr #8
43380   ands  r3, r3, #15
43381   ldrne ip, [sp, #28]
43382   orrne r3, ip, r3
43383   orrne r3, r6, r3
43384   strne r3, [r4, #20]
43385   mov r3, lr, lsr #12
43386   ands  r3, r3, #15
43387   ldrne ip, [sp, #28]
43388   orrne r3, ip, r3
43389   orrne r3, r6, r3
43390   strne r3, [r4, #16]
43391   mov r3, lr, lsr #16
43392   ands  r3, r3, #15
43393   ldrne ip, [sp, #28]
43394   orrne r3, ip, r3
43395   orrne r3, r6, r3
43396   strne r3, [r4, #12]
43397   mov r3, lr, lsr #20
43398   ands  r3, r3, #15
43399   ldrne ip, [sp, #28]
43400   orrne r3, ip, r3
43401   orrne r3, r6, r3
43402   strne r3, [r4, #8]
43403   mov r3, lr, lsr #24
43404   ands  r3, r3, #15
43405   ldrne ip, [sp, #28]
43406   orrne r3, ip, r3
43407   orrne r3, r6, r3
43408   strne r3, [r4, #4]
43409   movs  r3, lr, lsr #28
43410   ldrne lr, [sp, #28]
43411   orrne r3, lr, r3
43412   orrne r3, r6, r3
43413   strne r3, [r4, #0]
43414 .L15091:
43415   add r7, r7, #1
43416   cmp r7, r8
43417   sub r5, r5, #32
43418   add r4, r4, #32
43419   bne .L15090
43420   rsb r3, r8, r8, asl #27
43421   add r0, r0, r3, asl #5
43422   add r1, r1, r8, asl #5
43423 .L15088:
43424   ands  lr, r2, #7
43425   beq .L13691
43426   ldr r0, [r0, #0]
43427   mov r2, #0
43428 .L15110:
43429   ldr r4, [sp, #28]
43430   movs  r3, r0, lsr #28
43431   orr r3, r4, r3
43432   orr r3, r6, r3
43433   strne r3, [r1, r2, asl #2]
43434   add r2, r2, #1
43435   cmp r2, lr
43436   mov r0, r0, asl #4
43437   bne .L15110
43438   b .L13691
43439 .L15734:
43440   .align  2
43441 .L15733:
43442   .word io_registers
43443   .word obj_priority_count
43444   .word obj_priority_list
43445   .word oam_ram
43446   .word obj_height_table
43447   .word obj_width_table
43448   .word vram+65536
43449 .L14931:
43450   ldr lr, [sp, #36]
43451   cmp r7, #0
43452   add r3, r7, #7
43453   mov r2, ip, lsr #3
43454   movge r3, r7
43455   mov r1, lr, asl #22
43456   mov r4, r3, asr #3
43457   mov r2, r2, asl #1
43458   mov r1, r1, lsr #22
43459   mla r0, r2, r4, r1
43460   and r3, ip, #7
43461   ldr r1, [sp, #8]
43462   add r3, r3, r0, asl #2
43463   ldr r2, .L15733+24
43464   mov r0, r3, asl #3
43465   cmp r5, r1
43466   add ip, r0, r2
43467   bge .L15194
43468   rsb r0, r5, r1
43469   rsb lr, r0, r7
43470   cmp lr, #0
43471   ble .L13691
43472   ldr r4, [sp, #4]
43473   add r3, r5, r7
43474   cmp r4, r3
43475   bhi .L15197
43476   mov r3, r0, lsr #3
43477   ands  lr, r0, #7
43478   add r6, ip, r3, asl #6
43479   bne .L15199
43480   ldr r5, [sp, #144]
43481   ldr r4, [sp, #108]
43482 .L15201:
43483   movs  lr, r5, lsr #3
43484   beq .L15259
43485   mov r1, r4
43486   mov r0, r6
43487   mov ip, #0
43488 .L15261:
43489   ldr r2, [r0, #0]
43490   cmp r2, #0
43491   beq .L15262
43492   ands  r3, r2, #255
43493   ldrne r7, [sp, #28]
43494   orrne r3, r7, r3
43495   strne r3, [r1, #0]
43496   mov r3, r2, lsr #8
43497   ands  r3, r3, #255
43498   ldrne r8, [sp, #28]
43499   orrne r3, r8, r3
43500   strne r3, [r1, #4]
43501   mov r3, r2, lsr #16
43502   ands  r3, r3, #255
43503   ldrne r7, [sp, #28]
43504   orrne r3, r7, r3
43505   strne r3, [r1, #8]
43506   movs  r3, r2, lsr #24
43507   ldrne r8, [sp, #28]
43508   orrne r3, r8, r3
43509   strne r3, [r1, #12]
43510 .L15262:
43511   ldr r2, [r0, #4]
43512   cmp r2, #0
43513   beq .L15271
43514   ands  r3, r2, #255
43515   ldrne r7, [sp, #28]
43516   orrne r3, r7, r3
43517   strne r3, [r1, #16]
43518   mov r3, r2, lsr #8
43519   ands  r3, r3, #255
43520   ldrne r8, [sp, #28]
43521   orrne r3, r8, r3
43522   strne r3, [r1, #20]
43523   mov r3, r2, lsr #16
43524   ands  r3, r3, #255
43525   ldrne r7, [sp, #28]
43526   orrne r3, r7, r3
43527   strne r3, [r1, #24]
43528   movs  r3, r2, lsr #24
43529   ldrne r8, [sp, #28]
43530   orrne r3, r8, r3
43531   strne r3, [r1, #28]
43532 .L15271:
43533   add ip, ip, #1
43534   cmp ip, lr
43535   add r0, r0, #64
43536   add r1, r1, #32
43537   bne .L15261
43538   add r6, r6, lr, asl #6
43539   add r4, r4, lr, asl #5
43540 .L15259:
43541   ands  r0, r5, #7
43542   beq .L13691
43543   cmp r0, #3
43544   ldrls r1, [r6, #0]
43545   bls .L15294
43546   ldr r2, [r6, #0]
43547   cmp r2, #0
43548   beq .L15284
43549   ands  r3, r2, #255
43550   ldrne ip, [sp, #28]
43551   orrne r3, ip, r3
43552   strne r3, [r4, #0]
43553   mov r3, r2, lsr #8
43554   ands  r3, r3, #255
43555   ldrne lr, [sp, #28]
43556   orrne r3, lr, r3
43557   strne r3, [r4, #4]
43558   mov r3, r2, lsr #16
43559   ands  r3, r3, #255
43560   ldrne r1, [sp, #28]
43561   orrne r3, r1, r3
43562   strne r3, [r4, #8]
43563   movs  r3, r2, lsr #24
43564   ldrne r2, [sp, #28]
43565   orrne r3, r2, r3
43566   strne r3, [r4, #12]
43567 .L15284:
43568   subs  r0, r0, #4
43569   ldr r1, [r6, #4]
43570   addne r4, r4, #16
43571   beq .L13691
43572 .L15294:
43573   mov r2, #0
43574 .L15295:
43575   ldr r5, [sp, #28]
43576   ands  r3, r1, #255
43577   orr r3, r5, r3
43578   strne r3, [r4, r2, asl #2]
43579   add r2, r2, #1
43580   cmp r0, r2
43581   mov r1, r1, lsr #8
43582   bhi .L15295
43583   b .L13691
43584 .L13769:
43585   ldr r4, [sp, #36]
43586   cmp r7, #0
43587   add r3, r7, #7
43588   mov r1, r4, asl #22
43589   movge r3, r7
43590   mov r2, ip, lsr #3
43591   mov r4, r3, asr #3
43592   mov r2, r2, asl #1
43593   mov r1, r1, lsr #22
43594   mla r0, r2, r4, r1
43595   and r3, ip, #7
43596   ldr r8, [sp, #8]
43597   add r3, r3, r0, asl #2
43598   ldr lr, .L15733+24
43599   mov r0, r3, asl #3
43600   cmp r5, r8
43601   add ip, r0, lr
43602   bge .L14180
43603   rsb r0, r5, r8
43604   rsb r8, r0, r7
43605   cmp r8, #0
43606   ble .L13691
43607   ldr r1, [sp, #4]
43608   add r3, r5, r7
43609   cmp r1, r3
43610   bhi .L14183
43611   mov r3, r0, lsr #3
43612   ands  lr, r0, #7
43613   add r7, ip, r3, asl #6
43614   bne .L14185
43615   ldr r6, [sp, #144]
43616   ldr r4, [sp, #108]
43617 .L14187:
43618   movs  r5, r6, lsr #3
43619   beq .L14265
43620   mov r0, r4
43621   mov ip, r7
43622   mov lr, #0
43623 .L14267:
43624   ldr r2, [ip, #0]
43625   cmp r2, #0
43626   beq .L14268
43627   ands  r1, r2, #255
43628   beq .L14270
43629   ldr r3, [r0, #0]
43630   tst r3, #256
43631   movne r3, r3, lsr #16
43632   movne r3, r3, asl #16
43633   orrne r3, r3, #768
43634   orreq r3, r1, r3, asl #16
43635   orrne r3, r1, r3
43636   orreq r3, r3, #768
43637   strne r3, [r0, #0]
43638   streq r3, [r0, #0]
43639 .L14270:
43640   mov r3, r2, lsr #8
43641   ands  r1, r3, #255
43642   beq .L14274
43643   ldr r3, [r0, #4]
43644   tst r3, #256
43645   movne r3, r3, lsr #16
43646   movne r3, r3, asl #16
43647   orrne r3, r3, #768
43648   orreq r3, r1, r3, asl #16
43649   orrne r3, r1, r3
43650   orreq r3, r3, #768
43651   strne r3, [r0, #4]
43652   streq r3, [r0, #4]
43653 .L14274:
43654   mov r3, r2, lsr #16
43655   ands  r1, r3, #255
43656   beq .L14278
43657   ldr r3, [r0, #8]
43658   tst r3, #256
43659   movne r3, r3, lsr #16
43660   movne r3, r3, asl #16
43661   orrne r3, r3, #768
43662   orreq r3, r1, r3, asl #16
43663   orrne r3, r1, r3
43664   orreq r3, r3, #768
43665   strne r3, [r0, #8]
43666   streq r3, [r0, #8]
43667 .L14278:
43668   movs  r2, r2, lsr #24
43669   beq .L14268
43670   ldr r1, [r0, #12]
43671   tst r1, #256
43672   movne r3, r1, lsr #16
43673   movne r3, r3, asl #16
43674   orreq r3, r2, #768
43675   orrne r2, r2, #768
43676   orrne r3, r3, r2
43677   orreq r3, r3, r1, asl #16
43678   strne r3, [r0, #12]
43679   streq r3, [r0, #12]
43680 .L14268:
43681   ldr r2, [ip, #4]
43682   cmp r2, #0
43683   beq .L14285
43684   ands  r1, r2, #255
43685   beq .L14287
43686   ldr r3, [r0, #16]
43687   tst r3, #256
43688   movne r3, r3, lsr #16
43689   movne r3, r3, asl #16
43690   orrne r3, r3, #768
43691   orreq r3, r1, r3, asl #16
43692   orrne r3, r1, r3
43693   orreq r3, r3, #768
43694   strne r3, [r0, #16]
43695   streq r3, [r0, #16]
43696 .L14287:
43697   mov r3, r2, lsr #8
43698   ands  r1, r3, #255
43699   beq .L14291
43700   ldr r3, [r0, #20]
43701   tst r3, #256
43702   movne r3, r3, lsr #16
43703   movne r3, r3, asl #16
43704   orrne r3, r3, #768
43705   orreq r3, r1, r3, asl #16
43706   orrne r3, r1, r3
43707   orreq r3, r3, #768
43708   strne r3, [r0, #20]
43709   streq r3, [r0, #20]
43710 .L14291:
43711   mov r3, r2, lsr #16
43712   ands  r1, r3, #255
43713   beq .L14295
43714   ldr r3, [r0, #24]
43715   tst r3, #256
43716   movne r3, r3, lsr #16
43717   movne r3, r3, asl #16
43718   orrne r3, r3, #768
43719   orreq r3, r1, r3, asl #16
43720   orrne r3, r1, r3
43721   orreq r3, r3, #768
43722   strne r3, [r0, #24]
43723   streq r3, [r0, #24]
43724 .L14295:
43725   movs  r2, r2, lsr #24
43726   beq .L14285
43727   ldr r3, [r0, #28]
43728   tst r3, #256
43729   movne r3, r3, lsr #16
43730   movne r3, r3, asl #16
43731   orrne r3, r3, #768
43732   orreq r3, r2, r3, asl #16
43733   orrne r3, r2, r3
43734   orreq r3, r3, #768
43735   strne r3, [r0, #28]
43736   streq r3, [r0, #28]
43737 .L14285:
43738   add lr, lr, #1
43739   cmp r5, lr
43740   add ip, ip, #64
43741   add r0, r0, #32
43742   bne .L14267
43743   add r7, r7, r5, asl #6
43744   add r4, r4, r5, asl #5
43745 .L14265:
43746   ands  r5, r6, #7
43747   beq .L13691
43748   cmp r5, #3
43749   ldrls ip, [r7, #0]
43750   bls .L14324
43751   ldr r2, [r7, #0]
43752   cmp r2, #0
43753   beq .L14306
43754   ands  r1, r2, #255
43755   beq .L14308
43756   ldr r3, [r4, #0]
43757   tst r3, #256
43758   movne r3, r3, lsr #16
43759   movne r3, r3, asl #16
43760   orrne r3, r3, #768
43761   orreq r3, r1, r3, asl #16
43762   orrne r3, r1, r3
43763   orreq r3, r3, #768
43764   strne r3, [r4, #0]
43765   streq r3, [r4, #0]
43766 .L14308:
43767   mov r3, r2, lsr #8
43768   ands  r1, r3, #255
43769   beq .L14312
43770   ldr r3, [r4, #4]
43771   tst r3, #256
43772   movne r3, r3, lsr #16
43773   movne r3, r3, asl #16
43774   orrne r3, r3, #768
43775   orreq r3, r1, r3, asl #16
43776   orrne r3, r1, r3
43777   orreq r3, r3, #768
43778   strne r3, [r4, #4]
43779   streq r3, [r4, #4]
43780 .L14312:
43781   mov r3, r2, lsr #16
43782   ands  r1, r3, #255
43783   beq .L14316
43784   ldr r3, [r4, #8]
43785   tst r3, #256
43786   movne r3, r3, lsr #16
43787   movne r3, r3, asl #16
43788   orrne r3, r3, #768
43789   orreq r3, r1, r3, asl #16
43790   orrne r3, r1, r3
43791   orreq r3, r3, #768
43792   strne r3, [r4, #8]
43793   streq r3, [r4, #8]
43794 .L14316:
43795   movs  r2, r2, lsr #24
43796   beq .L14306
43797   ldr r1, [r4, #12]
43798   tst r1, #256
43799   movne r3, r1, lsr #16
43800   movne r3, r3, asl #16
43801   orreq r3, r2, #768
43802   orrne r2, r2, #768
43803   orrne r3, r3, r2
43804   orreq r3, r3, r1, asl #16
43805   strne r3, [r4, #12]
43806   streq r3, [r4, #12]
43807 .L14306:
43808   subs  r5, r5, #4
43809   ldr ip, [r7, #4]
43810   addne r4, r4, #16
43811   beq .L13691
43812 .L14324:
43813   mov lr, #0
43814 .L14325:
43815   ands  r0, ip, #255
43816   beq .L14326
43817   ldr r2, [r4, #0]
43818   orr r1, r0, #768
43819   mov r3, r2, lsr #16
43820   orr r0, r0, #768
43821   mov r3, r3, asl #16
43822   tst r2, #256
43823   orr r3, r3, r1
43824   orr r0, r0, r2, asl #16
43825   strne r3, [r4, #0]
43826   streq r0, [r4, #0]
43827 .L14326:
43828   add lr, lr, #1
43829   cmp lr, r5
43830   mov ip, ip, lsr #8
43831   add r4, r4, #4
43832   bcc .L14325
43833   b .L13691
43834 .L13767:
43835   ldr r4, [sp, #36]
43836   cmp r7, #0
43837   add r3, r7, #7
43838   mov r2, r4, asl #22
43839   movge r3, r7
43840   mov r8, r3, asr #3
43841   mov r2, r2, lsr #22
43842   mov r3, ip, lsr #3
43843   mla r0, r8, r3, r2
43844   and r1, ip, #7
43845   ldr ip, [sp, #8]
43846   ldr lr, .L15733+24
43847   add r1, r1, r0, asl #3
43848   mov r3, r4, lsr #8
43849   cmp r5, ip
43850   and r6, r3, #240
43851   add r0, lr, r1, asl #2
43852   bge .L13772
43853   rsb lr, r5, ip
43854   rsb r8, lr, r7
43855   cmp r8, #0
43856   ble .L13691
43857   ldr r1, [sp, #4]
43858   add r3, r5, r7
43859   cmp r1, r3
43860   bhi .L13775
43861   mov r3, lr, lsr #3
43862   mov r1, r3, asl #5
43863   ands  r3, lr, #7
43864   add r8, r0, r1
43865   bne .L13777
43866   ldr sl, [sp, #144]
43867   ldr r4, [sp, #108]
43868 .L13779:
43869   movs  r7, sl, lsr #3
43870   beq .L13800
43871   mov ip, r4
43872   mov lr, r8
43873   mov r5, #0
43874 .L13802:
43875   ldr r0, [lr, #0]
43876   cmp r0, #0
43877   beq .L13803
43878   ands  r2, r0, #15
43879   beq .L13805
43880   ldr r1, [ip, #0]
43881   orr r2, r6, r2
43882   tst r1, #256
43883   movne r3, r1, lsr #16
43884   movne r3, r3, asl #16
43885   orreq r3, r2, #768
43886   orrne r2, r2, #768
43887   orrne r3, r3, r2
43888   orreq r3, r3, r1, asl #16
43889   strne r3, [ip, #0]
43890   streq r3, [ip, #0]
43891 .L13805:
43892   mov r3, r0, lsr #4
43893   ands  r2, r3, #15
43894   beq .L13809
43895   ldr r1, [ip, #4]
43896   orr r2, r6, r2
43897   tst r1, #256
43898   movne r3, r1, lsr #16
43899   movne r3, r3, asl #16
43900   orreq r3, r2, #768
43901   orrne r2, r2, #768
43902   orrne r3, r3, r2
43903   orreq r3, r3, r1, asl #16
43904   strne r3, [ip, #4]
43905   streq r3, [ip, #4]
43906 .L13809:
43907   mov r3, r0, lsr #8
43908   ands  r2, r3, #15
43909   beq .L13813
43910   ldr r1, [ip, #8]
43911   orr r2, r6, r2
43912   tst r1, #256
43913   movne r3, r1, lsr #16
43914   movne r3, r3, asl #16
43915   orreq r3, r2, #768
43916   orrne r2, r2, #768
43917   orrne r3, r3, r2
43918   orreq r3, r3, r1, asl #16
43919   strne r3, [ip, #8]
43920   streq r3, [ip, #8]
43921 .L13813:
43922   mov r3, r0, lsr #12
43923   ands  r2, r3, #15
43924   beq .L13817
43925   ldr r1, [ip, #12]
43926   orr r2, r6, r2
43927   tst r1, #256
43928   movne r3, r1, lsr #16
43929   movne r3, r3, asl #16
43930   orreq r3, r2, #768
43931   orrne r2, r2, #768
43932   orrne r3, r3, r2
43933   orreq r3, r3, r1, asl #16
43934   strne r3, [ip, #12]
43935   streq r3, [ip, #12]
43936 .L13817:
43937   mov r3, r0, lsr #16
43938   ands  r2, r3, #15
43939   beq .L13821
43940   ldr r1, [ip, #16]
43941   orr r2, r6, r2
43942   tst r1, #256
43943   movne r3, r1, lsr #16
43944   movne r3, r3, asl #16
43945   orreq r3, r2, #768
43946   orrne r2, r2, #768
43947   orrne r3, r3, r2
43948   orreq r3, r3, r1, asl #16
43949   strne r3, [ip, #16]
43950   streq r3, [ip, #16]
43951 .L13821:
43952   mov r3, r0, lsr #20
43953   ands  r2, r3, #15
43954   beq .L13825
43955   ldr r1, [ip, #20]
43956   orr r2, r6, r2
43957   tst r1, #256
43958   movne r3, r1, lsr #16
43959   movne r3, r3, asl #16
43960   orreq r3, r2, #768
43961   orrne r2, r2, #768
43962   orrne r3, r3, r2
43963   orreq r3, r3, r1, asl #16
43964   strne r3, [ip, #20]
43965   streq r3, [ip, #20]
43966 .L13825:
43967   mov r3, r0, lsr #24
43968   ands  r2, r3, #15
43969   beq .L13829
43970   ldr r1, [ip, #24]
43971   orr r2, r6, r2
43972   tst r1, #256
43973   movne r3, r1, lsr #16
43974   movne r3, r3, asl #16
43975   orreq r3, r2, #768
43976   orrne r2, r2, #768
43977   orrne r3, r3, r2
43978   orreq r3, r3, r1, asl #16
43979   strne r3, [ip, #24]
43980   streq r3, [ip, #24]
43981 .L13829:
43982   movs  r2, r0, lsr #28
43983   beq .L13803
43984   ldr r1, [ip, #28]
43985   orr r2, r6, r2
43986   tst r1, #256
43987   movne r3, r1, lsr #16
43988   movne r3, r3, asl #16
43989   orreq r3, r2, #768
43990   orrne r2, r2, #768
43991   orrne r3, r3, r2
43992   orreq r3, r3, r1, asl #16
43993   strne r3, [ip, #28]
43994   streq r3, [ip, #28]
43995 .L13803:
43996   add r5, r5, #1
43997   cmp r7, r5
43998   add lr, lr, #32
43999   add ip, ip, #32
44000   bne .L13802
44001   mov r3, r7, asl #5
44002   add r8, r8, r3
44003   add r4, r4, r3
44004 .L13800:
44005   ands  r5, sl, #7
44006   beq .L13691
44007   ldr ip, [r8, #0]
44008   mov lr, #0
44009 .L13838:
44010   ands  r3, ip, #15
44011   beq .L13839
44012   ldr r1, [r4, #0]
44013   orr r2, r6, r3
44014   mov r3, r1, lsr #16
44015   orr r0, r2, #768
44016   mov r3, r3, asl #16
44017   orr r2, r2, #768
44018   tst r1, #256
44019   orr r3, r3, r0
44020   orr r2, r2, r1, asl #16
44021   strne r3, [r4, #0]
44022   streq r2, [r4, #0]
44023 .L13839:
44024   add lr, lr, #1
44025   cmp r5, lr
44026   mov ip, ip, lsr #4
44027   add r4, r4, #4
44028   bne .L13838
44029   b .L13691
44030 .L13770:
44031   cmp r7, #0
44032   add r2, r7, #7
44033   movge r2, r7
44034   subs  r3, r7, #8
44035   submi r3, r7, #1
44036   mov r6, r2, asr #3
44037   mov r3, r3, asr #3
44038   mov r1, ip, lsr #3
44039   mla r0, r6, r1, r3
44040   ldr r3, [sp, #36]
44041   ldr r4, [sp, #8]
44042   mov r2, r3, asl #22
44043   mov r2, r2, lsr #22
44044   add r2, r2, r0, asl #1
44045   and r3, ip, #7
44046   add r3, r3, r2, asl #2
44047   ldr r8, .L15733+24
44048   mov r0, r3, asl #3
44049   cmp r5, r4
44050   add ip, r0, r8
44051   bge .L14516
44052   rsb r0, r5, r4
44053   rsb r8, r0, r7
44054   cmp r8, #0
44055   ble .L13691
44056   ldr lr, [sp, #4]
44057   add r3, r5, r7
44058   cmp lr, r3
44059   bhi .L14519
44060   mov r3, r0, lsr #3
44061   ands  lr, r0, #7
44062   sub r8, ip, r3, asl #6
44063   bne .L14521
44064   ldr r7, [sp, #144]
44065   ldr r4, [sp, #108]
44066 .L14523:
44067   movs  r6, r7, lsr #3
44068   beq .L14601
44069   mov ip, r4
44070   mov lr, r8
44071   mov r5, #0
44072 .L14603:
44073   ldr r2, [lr, #4]
44074   cmp r2, #0
44075   beq .L14604
44076   ands  r1, r2, #255
44077   beq .L14606
44078   ldr r3, [ip, #12]
44079   tst r3, #256
44080   movne r3, r3, lsr #16
44081   movne r3, r3, asl #16
44082   orrne r3, r3, #768
44083   orreq r3, r1, r3, asl #16
44084   orrne r3, r1, r3
44085   orreq r3, r3, #768
44086   strne r3, [ip, #12]
44087   streq r3, [ip, #12]
44088 .L14606:
44089   mov r3, r2, lsr #8
44090   ands  r1, r3, #255
44091   beq .L14610
44092   ldr r3, [ip, #8]
44093   tst r3, #256
44094   movne r3, r3, lsr #16
44095   movne r3, r3, asl #16
44096   orrne r3, r3, #768
44097   orreq r3, r1, r3, asl #16
44098   orrne r3, r1, r3
44099   orreq r3, r3, #768
44100   strne r3, [ip, #8]
44101   streq r3, [ip, #8]
44102 .L14610:
44103   mov r3, r2, lsr #16
44104   ands  r1, r3, #255
44105   beq .L14614
44106   ldr r3, [ip, #4]
44107   tst r3, #256
44108   movne r3, r3, lsr #16
44109   movne r3, r3, asl #16
44110   orrne r3, r3, #768
44111   orreq r3, r1, r3, asl #16
44112   orrne r3, r1, r3
44113   orreq r3, r3, #768
44114   strne r3, [ip, #4]
44115   streq r3, [ip, #4]
44116 .L14614:
44117   movs  r2, r2, lsr #24
44118   beq .L14604
44119   ldr r3, [ip, #0]
44120   tst r3, #256
44121   movne r3, r3, lsr #16
44122   movne r3, r3, asl #16
44123   orrne r3, r3, #768
44124   orreq r3, r2, r3, asl #16
44125   orrne r3, r2, r3
44126   orreq r3, r3, #768
44127   strne r3, [ip, #0]
44128   streq r3, [ip, #0]
44129 .L14604:
44130   ldr r1, [lr, #0]
44131   cmp r1, #0
44132   beq .L14621
44133   ands  r2, r1, #255
44134   beq .L14623
44135   ldr r0, [ip, #28]
44136   tst r0, #256
44137   movne r3, r0, lsr #16
44138   movne r3, r3, asl #16
44139   orreq r3, r2, #768
44140   orrne r2, r2, #768
44141   orrne r3, r3, r2
44142   orreq r3, r3, r0, asl #16
44143   strne r3, [ip, #28]
44144   streq r3, [ip, #28]
44145 .L14623:
44146   mov r3, r1, lsr #8
44147   ands  r2, r3, #255
44148   beq .L14627
44149   ldr r3, [ip, #24]
44150   tst r3, #256
44151   movne r3, r3, lsr #16
44152   movne r3, r3, asl #16
44153   orrne r3, r3, #768
44154   orreq r3, r2, r3, asl #16
44155   orrne r3, r2, r3
44156   orreq r3, r3, #768
44157   strne r3, [ip, #24]
44158   streq r3, [ip, #24]
44159 .L14627:
44160   mov r3, r1, lsr #16
44161   ands  r2, r3, #255
44162   beq .L14631
44163   ldr r3, [ip, #20]
44164   tst r3, #256
44165   movne r3, r3, lsr #16
44166   movne r3, r3, asl #16
44167   orrne r3, r3, #768
44168   orreq r3, r2, r3, asl #16
44169   orrne r3, r2, r3
44170   orreq r3, r3, #768
44171   strne r3, [ip, #20]
44172   streq r3, [ip, #20]
44173 .L14631:
44174   movs  r2, r1, lsr #24
44175   beq .L14621
44176   ldr r1, [ip, #16]
44177   tst r1, #256
44178   movne r3, r1, lsr #16
44179   movne r3, r3, asl #16
44180   orreq r3, r2, #768
44181   orrne r2, r2, #768
44182   orrne r3, r3, r2
44183   orreq r3, r3, r1, asl #16
44184   strne r3, [ip, #16]
44185   streq r3, [ip, #16]
44186 .L14621:
44187   add r5, r5, #1
44188   cmp r5, r6
44189   sub lr, lr, #64
44190   add ip, ip, #32
44191   bne .L14603
44192   rsb r3, r6, r6, asl #26
44193   add r8, r8, r3, asl #6
44194   add r4, r4, r6, asl #5
44195 .L14601:
44196   ands  r5, r7, #7
44197   beq .L13691
44198   cmp r5, #3
44199   ldrls ip, [r8, #4]
44200   bls .L14660
44201   ldr r2, [r8, #4]
44202   cmp r2, #0
44203   beq .L14642
44204   ands  r1, r2, #255
44205   beq .L14644
44206   ldr r3, [r4, #12]
44207   tst r3, #256
44208   movne r3, r3, lsr #16
44209   movne r3, r3, asl #16
44210   orrne r3, r3, #768
44211   orreq r3, r1, r3, asl #16
44212   orrne r3, r1, r3
44213   orreq r3, r3, #768
44214   strne r3, [r4, #12]
44215   streq r3, [r4, #12]
44216 .L14644:
44217   mov r3, r2, lsr #8
44218   ands  r1, r3, #255
44219   beq .L14648
44220   ldr r3, [r4, #8]
44221   tst r3, #256
44222   movne r3, r3, lsr #16
44223   movne r3, r3, asl #16
44224   orrne r3, r3, #768
44225   orreq r3, r1, r3, asl #16
44226   orrne r3, r1, r3
44227   orreq r3, r3, #768
44228   strne r3, [r4, #8]
44229   streq r3, [r4, #8]
44230 .L14648:
44231   mov r3, r2, lsr #16
44232   ands  r1, r3, #255
44233   beq .L14652
44234   ldr r3, [r4, #4]
44235   tst r3, #256
44236   movne r3, r3, lsr #16
44237   movne r3, r3, asl #16
44238   orrne r3, r3, #768
44239   orreq r3, r1, r3, asl #16
44240   orrne r3, r1, r3
44241   orreq r3, r3, #768
44242   strne r3, [r4, #4]
44243   streq r3, [r4, #4]
44244 .L14652:
44245   movs  r2, r2, lsr #24
44246   beq .L14642
44247   ldr r3, [r4, #0]
44248   tst r3, #256
44249   movne r3, r3, lsr #16
44250   movne r3, r3, asl #16
44251   orrne r3, r3, #768
44252   orreq r3, r2, r3, asl #16
44253   orrne r3, r2, r3
44254   orreq r3, r3, #768
44255   strne r3, [r4, #0]
44256   streq r3, [r4, #0]
44257 .L14642:
44258   subs  r5, r5, #4
44259   ldr ip, [r8, #0]
44260   addne r4, r4, #16
44261   beq .L13691
44262 .L14660:
44263   mov lr, #0
44264 .L14661:
44265   movs  r0, ip, lsr #24
44266   beq .L14662
44267   ldr r2, [r4, #0]
44268   orr r1, r0, #768
44269   mov r3, r2, lsr #16
44270   orr r0, r0, #768
44271   mov r3, r3, asl #16
44272   tst r2, #256
44273   orr r3, r3, r1
44274   orr r0, r0, r2, asl #16
44275   strne r3, [r4, #0]
44276   streq r0, [r4, #0]
44277 .L14662:
44278   add lr, lr, #1
44279   cmp lr, r5
44280   mov ip, ip, asl #8
44281   add r4, r4, #4
44282   bcc .L14661
44283   b .L13691
44284 .L14932:
44285   cmp r7, #0
44286   add r2, r7, #7
44287   movge r2, r7
44288   subs  r3, r7, #8
44289   submi r3, r7, #1
44290   mov r4, r2, asr #3
44291   mov r3, r3, asr #3
44292   mov r1, ip, lsr #3
44293   mla r0, r4, r1, r3
44294   ldr r1, [sp, #36]
44295   and r3, ip, #7
44296   mov r2, r1, asl #22
44297   mov r2, r2, lsr #22
44298   add r2, r2, r0, asl #1
44299   add r3, r3, r2, asl #2
44300   ldr r2, [sp, #8]
44301   mov r0, r3, asl #3
44302   ldr r3, .L15733+24
44303   cmp r5, r2
44304   add r2, r0, r3
44305   bge .L15414
44306   ldr r4, [sp, #8]
44307   rsb r0, r5, r4
44308   rsb lr, r0, r7
44309   cmp lr, #0
44310   ble .L13691
44311   add r3, r5, r7
44312   ldr r5, [sp, #4]
44313   cmp r5, r3
44314   bhi .L15417
44315   mov r3, r0, lsr #3
44316   ands  ip, r0, #7
44317   sub r6, r2, r3, asl #6
44318   bne .L15419
44319   ldr r5, [sp, #144]
44320   ldr r4, [sp, #108]
44321 .L15421:
44322   movs  lr, r5, lsr #3
44323   beq .L15479
44324   mov r1, r4
44325   mov r0, r6
44326   mov ip, #0
44327 .L15481:
44328   ldr r2, [r0, #4]
44329   cmp r2, #0
44330   beq .L15482
44331   ands  r3, r2, #255
44332   ldrne r7, [sp, #28]
44333   orrne r3, r7, r3
44334   strne r3, [r1, #12]
44335   mov r3, r2, lsr #8
44336   ands  r3, r3, #255
44337   ldrne r8, [sp, #28]
44338   orrne r3, r8, r3
44339   strne r3, [r1, #8]
44340   mov r3, r2, lsr #16
44341   ands  r3, r3, #255
44342   ldrne r7, [sp, #28]
44343   orrne r3, r7, r3
44344   strne r3, [r1, #4]
44345   movs  r3, r2, lsr #24
44346   ldrne r8, [sp, #28]
44347   orrne r3, r8, r3
44348   strne r3, [r1, #0]
44349 .L15482:
44350   ldr r2, [r0, #0]
44351   cmp r2, #0
44352   beq .L15491
44353   ands  r3, r2, #255
44354   ldrne r7, [sp, #28]
44355   orrne r3, r7, r3
44356   strne r3, [r1, #28]
44357   mov r3, r2, lsr #8
44358   ands  r3, r3, #255
44359   ldrne r8, [sp, #28]
44360   orrne r3, r8, r3
44361   strne r3, [r1, #24]
44362   mov r3, r2, lsr #16
44363   ands  r3, r3, #255
44364   ldrne r7, [sp, #28]
44365   orrne r3, r7, r3
44366   strne r3, [r1, #20]
44367   movs  r3, r2, lsr #24
44368   ldrne r8, [sp, #28]
44369   orrne r3, r8, r3
44370   strne r3, [r1, #16]
44371 .L15491:
44372   add ip, ip, #1
44373   cmp ip, lr
44374   sub r0, r0, #64
44375   add r1, r1, #32
44376   bne .L15481
44377   rsb r3, lr, lr, asl #26
44378   add r6, r6, r3, asl #6
44379   add r4, r4, lr, asl #5
44380 .L15479:
44381   ands  r0, r5, #7
44382   beq .L13691
44383   cmp r0, #3
44384   ldrls r2, [r6, #4]
44385   bls .L15514
44386   ldr r2, [r6, #4]
44387   cmp r2, #0
44388   beq .L15504
44389   ands  r3, r2, #255
44390   ldrne ip, [sp, #28]
44391   orrne r3, ip, r3
44392   strne r3, [r4, #12]
44393   mov r3, r2, lsr #8
44394   ands  r3, r3, #255
44395   ldrne lr, [sp, #28]
44396   orrne r3, lr, r3
44397   strne r3, [r4, #8]
44398   mov r3, r2, lsr #16
44399   ands  r3, r3, #255
44400   ldrne r1, [sp, #28]
44401   orrne r3, r1, r3
44402   strne r3, [r4, #4]
44403   movs  r3, r2, lsr #24
44404   ldrne r2, [sp, #28]
44405   orrne r3, r2, r3
44406   strne r3, [r4, #0]
44407 .L15504:
44408   subs  r0, r0, #4
44409   ldr r2, [r6, #0]
44410   addne r4, r4, #16
44411   beq .L13691
44412 .L15514:
44413   mov r1, #0
44414 .L15515:
44415   ldr r5, [sp, #28]
44416   movs  r3, r2, lsr #24
44417   orr r3, r5, r3
44418   strne r3, [r4, r1, asl #2]
44419   add r1, r1, #1
44420   cmp r0, r1
44421   mov r2, r2, asl #8
44422   bhi .L15515
44423   b .L13691
44424 .L13768:
44425   ldr r4, [sp, #36]
44426   cmp r7, #0
44427   add r3, r7, #7
44428   mov r2, r4, asl #22
44429   movge r3, r7
44430   mov r8, r3, asr #3
44431   mov r2, r2, lsr #22
44432   mov r1, ip, lsr #3
44433   mla r0, r8, r1, r2
44434   subs  r3, r7, #8
44435   submi r3, r7, #1
44436   and r2, ip, #7
44437   ldr ip, [sp, #8]
44438   add r0, r0, r3, asr #3
44439   ldr lr, .L15733+24
44440   add r2, r2, r0, asl #3
44441   mov r3, r4, lsr #8
44442   cmp r5, ip
44443   and r6, r3, #240
44444   add r0, lr, r2, asl #2
44445   bge .L13976
44446   rsb lr, r5, ip
44447   rsb r8, lr, r7
44448   cmp r8, #0
44449   ble .L13691
44450   ldr r1, [sp, #4]
44451   add r3, r5, r7
44452   cmp r1, r3
44453   bhi .L13979
44454   mov r3, lr, lsr #3
44455   ands  r4, lr, #7
44456   sub ip, r0, r3, asl #5
44457   bne .L13981
44458   ldr sl, [sp, #144]
44459   ldr r5, [sp, #108]
44460 .L13983:
44461   movs  r8, sl, lsr #3
44462   beq .L14004
44463   mov lr, r5
44464   mov r4, ip
44465   mov r7, #0
44466 .L14006:
44467   ldr r0, [r4, #0]
44468   cmp r0, #0
44469   beq .L14007
44470   ands  r2, r0, #15
44471   beq .L14009
44472   ldr r1, [lr, #28]
44473   orr r2, r6, r2
44474   tst r1, #256
44475   movne r3, r1, lsr #16
44476   movne r3, r3, asl #16
44477   orreq r3, r2, #768
44478   orrne r2, r2, #768
44479   orrne r3, r3, r2
44480   orreq r3, r3, r1, asl #16
44481   strne r3, [lr, #28]
44482   streq r3, [lr, #28]
44483 .L14009:
44484   mov r3, r0, lsr #4
44485   ands  r2, r3, #15
44486   beq .L14013
44487   ldr r1, [lr, #24]
44488   orr r2, r6, r2
44489   tst r1, #256
44490   movne r3, r1, lsr #16
44491   movne r3, r3, asl #16
44492   orreq r3, r2, #768
44493   orrne r2, r2, #768
44494   orrne r3, r3, r2
44495   orreq r3, r3, r1, asl #16
44496   strne r3, [lr, #24]
44497   streq r3, [lr, #24]
44498 .L14013:
44499   mov r3, r0, lsr #8
44500   ands  r2, r3, #15
44501   beq .L14017
44502   ldr r1, [lr, #20]
44503   orr r2, r6, r2
44504   tst r1, #256
44505   movne r3, r1, lsr #16
44506   movne r3, r3, asl #16
44507   orreq r3, r2, #768
44508   orrne r2, r2, #768
44509   orrne r3, r3, r2
44510   orreq r3, r3, r1, asl #16
44511   strne r3, [lr, #20]
44512   streq r3, [lr, #20]
44513 .L14017:
44514   mov r3, r0, lsr #12
44515   ands  r2, r3, #15
44516   beq .L14021
44517   ldr r1, [lr, #16]
44518   orr r2, r6, r2
44519   tst r1, #256
44520   movne r3, r1, lsr #16
44521   movne r3, r3, asl #16
44522   orreq r3, r2, #768
44523   orrne r2, r2, #768
44524   orrne r3, r3, r2
44525   orreq r3, r3, r1, asl #16
44526   strne r3, [lr, #16]
44527   streq r3, [lr, #16]
44528 .L14021:
44529   mov r3, r0, lsr #16
44530   ands  r2, r3, #15
44531   beq .L14025
44532   ldr r1, [lr, #12]
44533   orr r2, r6, r2
44534   tst r1, #256
44535   movne r3, r1, lsr #16
44536   movne r3, r3, asl #16
44537   orreq r3, r2, #768
44538   orrne r2, r2, #768
44539   orrne r3, r3, r2
44540   orreq r3, r3, r1, asl #16
44541   strne r3, [lr, #12]
44542   streq r3, [lr, #12]
44543 .L14025:
44544   mov r3, r0, lsr #20
44545   ands  r2, r3, #15
44546   beq .L14029
44547   ldr r1, [lr, #8]
44548   orr r2, r6, r2
44549   tst r1, #256
44550   movne r3, r1, lsr #16
44551   movne r3, r3, asl #16
44552   orreq r3, r2, #768
44553   orrne r2, r2, #768
44554   orrne r3, r3, r2
44555   orreq r3, r3, r1, asl #16
44556   strne r3, [lr, #8]
44557   streq r3, [lr, #8]
44558 .L14029:
44559   mov r3, r0, lsr #24
44560   ands  r2, r3, #15
44561   beq .L14033
44562   ldr r1, [lr, #4]
44563   orr r2, r6, r2
44564   tst r1, #256
44565   movne r3, r1, lsr #16
44566   movne r3, r3, asl #16
44567   orreq r3, r2, #768
44568   orrne r2, r2, #768
44569   orrne r3, r3, r2
44570   orreq r3, r3, r1, asl #16
44571   strne r3, [lr, #4]
44572   streq r3, [lr, #4]
44573 .L14033:
44574   movs  r2, r0, lsr #28
44575   beq .L14007
44576   ldr r1, [lr, #0]
44577   orr r2, r6, r2
44578   tst r1, #256
44579   movne r3, r1, lsr #16
44580   movne r3, r3, asl #16
44581   orreq r3, r2, #768
44582   orrne r2, r2, #768
44583   orrne r3, r3, r2
44584   orreq r3, r3, r1, asl #16
44585   strne r3, [lr, #0]
44586   streq r3, [lr, #0]
44587 .L14007:
44588   add r7, r7, #1
44589   cmp r8, r7
44590   sub r4, r4, #32
44591   add lr, lr, #32
44592   bne .L14006
44593   rsb r3, r8, r8, asl #27
44594   add ip, ip, r3, asl #5
44595   add r5, r5, r8, asl #5
44596 .L14004:
44597   ands  r4, sl, #7
44598   beq .L13691
44599   ldr ip, [ip, #0]
44600   mov lr, #0
44601 .L14042:
44602   movs  r3, ip, lsr #28
44603   beq .L14043
44604   ldr r1, [r5, #0]
44605   orr r2, r6, r3
44606   mov r3, r1, lsr #16
44607   orr r0, r2, #768
44608   mov r3, r3, asl #16
44609   orr r2, r2, #768
44610   tst r1, #256
44611   orr r3, r3, r0
44612   orr r2, r2, r1, asl #16
44613   strne r3, [r5, #0]
44614   streq r2, [r5, #0]
44615 .L14043:
44616   add lr, lr, #1
44617   cmp r4, lr
44618   mov ip, ip, asl #4
44619   add r5, r5, #4
44620   bne .L14042
44621   b .L13691
44622 .L13976:
44623   ldr r1, [sp, #4]
44624   add r3, r5, r7
44625   cmp r1, r3
44626   bls .L15693
44627   cmp r8, #0
44628   beq .L13691
44629   ldr r3, [sp, #0]
44630   mov ip, #0
44631   add r1, r3, r5, asl #2
44632   b .L14145
44633 .L15694:
44634   sub r0, r0, #32
44635   add r1, r1, #32
44636 .L14145:
44637   ldr r4, [r0, #0]
44638   cmp r4, #0
44639   beq .L14146
44640   ands  r2, r4, #15
44641   beq .L14148
44642   ldr lr, [r1, #28]
44643   orr r2, r6, r2
44644   tst lr, #256
44645   movne r3, lr, lsr #16
44646   movne r3, r3, asl #16
44647   orreq r3, r2, #768
44648   orrne r2, r2, #768
44649   orrne r3, r3, r2
44650   orreq r3, r3, lr, asl #16
44651   strne r3, [r1, #28]
44652   streq r3, [r1, #28]
44653 .L14148:
44654   mov r3, r4, lsr #4
44655   ands  r2, r3, #15
44656   beq .L14152
44657   ldr lr, [r1, #24]
44658   orr r2, r6, r2
44659   tst lr, #256
44660   movne r3, lr, lsr #16
44661   movne r3, r3, asl #16
44662   orreq r3, r2, #768
44663   orrne r2, r2, #768
44664   orrne r3, r3, r2
44665   orreq r3, r3, lr, asl #16
44666   strne r3, [r1, #24]
44667   streq r3, [r1, #24]
44668 .L14152:
44669   mov r3, r4, lsr #8
44670   ands  r2, r3, #15
44671   beq .L14156
44672   ldr lr, [r1, #20]
44673   orr r2, r6, r2
44674   tst lr, #256
44675   movne r3, lr, lsr #16
44676   movne r3, r3, asl #16
44677   orreq r3, r2, #768
44678   orrne r2, r2, #768
44679   orrne r3, r3, r2
44680   orreq r3, r3, lr, asl #16
44681   strne r3, [r1, #20]
44682   streq r3, [r1, #20]
44683 .L14156:
44684   mov r3, r4, lsr #12
44685   ands  r2, r3, #15
44686   beq .L14160
44687   ldr lr, [r1, #16]
44688   orr r2, r6, r2
44689   tst lr, #256
44690   movne r3, lr, lsr #16
44691   movne r3, r3, asl #16
44692   orreq r3, r2, #768
44693   orrne r2, r2, #768
44694   orrne r3, r3, r2
44695   orreq r3, r3, lr, asl #16
44696   strne r3, [r1, #16]
44697   streq r3, [r1, #16]
44698 .L14160:
44699   mov r3, r4, lsr #16
44700   ands  r2, r3, #15
44701   beq .L14164
44702   ldr lr, [r1, #12]
44703   orr r2, r6, r2
44704   tst lr, #256
44705   movne r3, lr, lsr #16
44706   movne r3, r3, asl #16
44707   orreq r3, r2, #768
44708   orrne r2, r2, #768
44709   orrne r3, r3, r2
44710   orreq r3, r3, lr, asl #16
44711   strne r3, [r1, #12]
44712   streq r3, [r1, #12]
44713 .L14164:
44714   mov r3, r4, lsr #20
44715   ands  r2, r3, #15
44716   beq .L14168
44717   ldr lr, [r1, #8]
44718   orr r2, r6, r2
44719   tst lr, #256
44720   movne r3, lr, lsr #16
44721   movne r3, r3, asl #16
44722   orreq r3, r2, #768
44723   orrne r2, r2, #768
44724   orrne r3, r3, r2
44725   orreq r3, r3, lr, asl #16
44726   strne r3, [r1, #8]
44727   streq r3, [r1, #8]
44728 .L14168:
44729   mov r3, r4, lsr #24
44730   ands  r2, r3, #15
44731   beq .L14172
44732   ldr lr, [r1, #4]
44733   orr r2, r6, r2
44734   tst lr, #256
44735   movne r3, lr, lsr #16
44736   movne r3, r3, asl #16
44737   orreq r3, r2, #768
44738   orrne r2, r2, #768
44739   orrne r3, r3, r2
44740   orreq r3, r3, lr, asl #16
44741   strne r3, [r1, #4]
44742   streq r3, [r1, #4]
44743 .L14172:
44744   movs  r2, r4, lsr #28
44745   beq .L14146
44746   ldr lr, [r1, #0]
44747   orr r2, r6, r2
44748   tst lr, #256
44749   movne r3, lr, lsr #16
44750   movne r3, r3, asl #16
44751   orreq r3, r2, #768
44752   orrne r2, r2, #768
44753   orrne r3, r3, r2
44754   orreq r3, r3, lr, asl #16
44755   strne r3, [r1, #0]
44756   streq r3, [r1, #0]
44757 .L14146:
44758   add ip, ip, #1
44759   cmp r8, ip
44760   bne .L15694
44761   b .L13691
44762 .L14934:
44763   ldr ip, [sp, #4]
44764   add r3, r5, r7
44765   cmp ip, r3
44766   bls .L15695
44767   cmp r4, #0
44768   beq .L13691
44769   ldr r3, [sp, #0]
44770   mov r2, #0
44771   add r1, r3, r5, asl #2
44772   b .L15045
44773 .L15696:
44774   add r0, r0, #32
44775   add r1, r1, #32
44776 .L15045:
44777   ldr lr, [r0, #0]
44778   cmp lr, #0
44779   beq .L15046
44780   ands  r3, lr, #15
44781   ldrne r5, [sp, #28]
44782   orrne r3, r5, r3
44783   orrne r3, r6, r3
44784   strne r3, [r1, #0]
44785   mov r3, lr, lsr #4
44786   ands  r3, r3, #15
44787   ldrne r7, [sp, #28]
44788   orrne r3, r7, r3
44789   orrne r3, r6, r3
44790   strne r3, [r1, #4]
44791   mov r3, lr, lsr #8
44792   ands  r3, r3, #15
44793   ldrne r8, [sp, #28]
44794   orrne r3, r8, r3
44795   orrne r3, r6, r3
44796   strne r3, [r1, #8]
44797   mov r3, lr, lsr #12
44798   ands  r3, r3, #15
44799   ldrne ip, [sp, #28]
44800   orrne r3, ip, r3
44801   orrne r3, r6, r3
44802   strne r3, [r1, #12]
44803   mov r3, lr, lsr #16
44804   ands  r3, r3, #15
44805   ldrne r5, [sp, #28]
44806   orrne r3, r5, r3
44807   orrne r3, r6, r3
44808   strne r3, [r1, #16]
44809   mov r3, lr, lsr #20
44810   ands  r3, r3, #15
44811   ldrne r7, [sp, #28]
44812   orrne r3, r7, r3
44813   orrne r3, r6, r3
44814   strne r3, [r1, #20]
44815   mov r3, lr, lsr #24
44816   ands  r3, r3, #15
44817   ldrne r8, [sp, #28]
44818   orrne r3, r8, r3
44819   orrne r3, r6, r3
44820   strne r3, [r1, #24]
44821   movs  r3, lr, lsr #28
44822   ldrne ip, [sp, #28]
44823   orrne r3, ip, r3
44824   orrne r3, r6, r3
44825   strne r3, [r1, #28]
44826 .L15046:
44827   add r2, r2, #1
44828   cmp r4, r2
44829   bne .L15696
44830   b .L13691
44831 .L15194:
44832   ldr r8, [sp, #4]
44833   add r3, r5, r7
44834   cmp r8, r3
44835   bls .L15697
44836   cmp r4, #0
44837   beq .L13691
44838   ldr lr, [sp, #0]
44839   ldr r3, .L15735+4
44840   add r1, lr, r5, asl #2
44841   add r0, r0, r3
44842   mov r2, #0
44843   b .L15394
44844 .L15698:
44845   add ip, ip, #64
44846   add r1, r1, #32
44847 .L15394:
44848   ldr lr, [ip, #0]
44849   cmp lr, #0
44850   beq .L15395
44851   ands  r3, lr, #255
44852   ldrne r5, [sp, #28]
44853   orrne r3, r5, r3
44854   strne r3, [r1, #0]
44855   mov r3, lr, lsr #8
44856   ands  r3, r3, #255
44857   ldrne r7, [sp, #28]
44858   orrne r3, r7, r3
44859   strne r3, [r1, #4]
44860   mov r3, lr, lsr #16
44861   ands  r3, r3, #255
44862   ldrne r8, [sp, #28]
44863   orrne r3, r8, r3
44864   strne r3, [r1, #8]
44865   movs  r3, lr, lsr #24
44866   ldrne lr, [sp, #28]
44867   orrne r3, lr, r3
44868   strne r3, [r1, #12]
44869 .L15395:
44870   ldr lr, [r0, #-60]
44871   cmp lr, #0
44872   beq .L15404
44873   ands  r3, lr, #255
44874   ldrne r5, [sp, #28]
44875   orrne r3, r5, r3
44876   strne r3, [r1, #16]
44877   mov r3, lr, lsr #8
44878   ands  r3, r3, #255
44879   ldrne r7, [sp, #28]
44880   orrne r3, r7, r3
44881   strne r3, [r1, #20]
44882   mov r3, lr, lsr #16
44883   ands  r3, r3, #255
44884   ldrne r8, [sp, #28]
44885   orrne r3, r8, r3
44886   strne r3, [r1, #24]
44887   movs  r3, lr, lsr #24
44888   ldrne lr, [sp, #28]
44889   orrne r3, lr, r3
44890   strne r3, [r1, #28]
44891 .L15404:
44892   add r2, r2, #1
44893   cmp r4, r2
44894   add r0, r0, #64
44895   bne .L15698
44896   b .L13691
44897 .L13772:
44898   ldr r1, [sp, #4]
44899   add r3, r5, r7
44900   cmp r1, r3
44901   bls .L15699
44902   cmp r8, #0
44903   beq .L13691
44904   ldr r3, [sp, #0]
44905   mov ip, #0
44906   add r1, r3, r5, asl #2
44907   b .L13941
44908 .L15700:
44909   add r0, r0, #32
44910   add r1, r1, #32
44911 .L13941:
44912   ldr r4, [r0, #0]
44913   cmp r4, #0
44914   beq .L13942
44915   ands  r2, r4, #15
44916   beq .L13944
44917   ldr lr, [r1, #0]
44918   orr r2, r6, r2
44919   tst lr, #256
44920   movne r3, lr, lsr #16
44921   movne r3, r3, asl #16
44922   orreq r3, r2, #768
44923   orrne r2, r2, #768
44924   orrne r3, r3, r2
44925   orreq r3, r3, lr, asl #16
44926   strne r3, [r1, #0]
44927   streq r3, [r1, #0]
44928 .L13944:
44929   mov r3, r4, lsr #4
44930   ands  r2, r3, #15
44931   beq .L13948
44932   ldr lr, [r1, #4]
44933   orr r2, r6, r2
44934   tst lr, #256
44935   movne r3, lr, lsr #16
44936   movne r3, r3, asl #16
44937   orreq r3, r2, #768
44938   orrne r2, r2, #768
44939   orrne r3, r3, r2
44940   orreq r3, r3, lr, asl #16
44941   strne r3, [r1, #4]
44942   streq r3, [r1, #4]
44943 .L13948:
44944   mov r3, r4, lsr #8
44945   ands  r2, r3, #15
44946   beq .L13952
44947   ldr lr, [r1, #8]
44948   orr r2, r6, r2
44949   tst lr, #256
44950   movne r3, lr, lsr #16
44951   movne r3, r3, asl #16
44952   orreq r3, r2, #768
44953   orrne r2, r2, #768
44954   orrne r3, r3, r2
44955   orreq r3, r3, lr, asl #16
44956   strne r3, [r1, #8]
44957   streq r3, [r1, #8]
44958 .L13952:
44959   mov r3, r4, lsr #12
44960   ands  r2, r3, #15
44961   beq .L13956
44962   ldr lr, [r1, #12]
44963   orr r2, r6, r2
44964   tst lr, #256
44965   movne r3, lr, lsr #16
44966   movne r3, r3, asl #16
44967   orreq r3, r2, #768
44968   orrne r2, r2, #768
44969   orrne r3, r3, r2
44970   orreq r3, r3, lr, asl #16
44971   strne r3, [r1, #12]
44972   streq r3, [r1, #12]
44973 .L13956:
44974   mov r3, r4, lsr #16
44975   ands  r2, r3, #15
44976   beq .L13960
44977   ldr lr, [r1, #16]
44978   orr r2, r6, r2
44979   tst lr, #256
44980   movne r3, lr, lsr #16
44981   movne r3, r3, asl #16
44982   orreq r3, r2, #768
44983   orrne r2, r2, #768
44984   orrne r3, r3, r2
44985   orreq r3, r3, lr, asl #16
44986   strne r3, [r1, #16]
44987   streq r3, [r1, #16]
44988 .L13960:
44989   mov r3, r4, lsr #20
44990   ands  r2, r3, #15
44991   beq .L13964
44992   ldr lr, [r1, #20]
44993   orr r2, r6, r2
44994   tst lr, #256
44995   movne r3, lr, lsr #16
44996   movne r3, r3, asl #16
44997   orreq r3, r2, #768
44998   orrne r2, r2, #768
44999   orrne r3, r3, r2
45000   orreq r3, r3, lr, asl #16
45001   strne r3, [r1, #20]
45002   streq r3, [r1, #20]
45003 .L13964:
45004   mov r3, r4, lsr #24
45005   ands  r2, r3, #15
45006   beq .L13968
45007   ldr lr, [r1, #24]
45008   orr r2, r6, r2
45009   tst lr, #256
45010   movne r3, lr, lsr #16
45011   movne r3, r3, asl #16
45012   orreq r3, r2, #768
45013   orrne r2, r2, #768
45014   orrne r3, r3, r2
45015   orreq r3, r3, lr, asl #16
45016   strne r3, [r1, #24]
45017   streq r3, [r1, #24]
45018 .L13968:
45019   movs  r2, r4, lsr #28
45020   beq .L13942
45021   ldr lr, [r1, #28]
45022   orr r2, r6, r2
45023   tst lr, #256
45024   movne r3, lr, lsr #16
45025   movne r3, r3, asl #16
45026   orreq r3, r2, #768
45027   orrne r2, r2, #768
45028   orrne r3, r3, r2
45029   orreq r3, r3, lr, asl #16
45030   strne r3, [r1, #28]
45031   streq r3, [r1, #28]
45032 .L13942:
45033   add ip, ip, #1
45034   cmp r8, ip
45035   bne .L15700
45036   b .L13691
45037 .L15064:
45038   ldr ip, [sp, #4]
45039   add r3, r5, r7
45040   cmp ip, r3
45041   bls .L15701
45042   cmp r4, #0
45043   beq .L13691
45044   ldr r3, [sp, #0]
45045   mov r2, #0
45046   add r1, r3, r5, asl #2
45047   b .L15175
45048 .L15702:
45049   sub r0, r0, #32
45050   add r1, r1, #32
45051 .L15175:
45052   ldr lr, [r0, #0]
45053   cmp lr, #0
45054   beq .L15176
45055   ands  r3, lr, #15
45056   ldrne r5, [sp, #28]
45057   orrne r3, r5, r3
45058   orrne r3, r6, r3
45059   strne r3, [r1, #28]
45060   mov r3, lr, lsr #4
45061   ands  r3, r3, #15
45062   ldrne r7, [sp, #28]
45063   orrne r3, r7, r3
45064   orrne r3, r6, r3
45065   strne r3, [r1, #24]
45066   mov r3, lr, lsr #8
45067   ands  r3, r3, #15
45068   ldrne r8, [sp, #28]
45069   orrne r3, r8, r3
45070   orrne r3, r6, r3
45071   strne r3, [r1, #20]
45072   mov r3, lr, lsr #12
45073   ands  r3, r3, #15
45074   ldrne ip, [sp, #28]
45075   orrne r3, ip, r3
45076   orrne r3, r6, r3
45077   strne r3, [r1, #16]
45078   mov r3, lr, lsr #16
45079   ands  r3, r3, #15
45080   ldrne r5, [sp, #28]
45081   orrne r3, r5, r3
45082   orrne r3, r6, r3
45083   strne r3, [r1, #12]
45084   mov r3, lr, lsr #20
45085   ands  r3, r3, #15
45086   ldrne r7, [sp, #28]
45087   orrne r3, r7, r3
45088   orrne r3, r6, r3
45089   strne r3, [r1, #8]
45090   mov r3, lr, lsr #24
45091   ands  r3, r3, #15
45092   ldrne r8, [sp, #28]
45093   orrne r3, r8, r3
45094   orrne r3, r6, r3
45095   strne r3, [r1, #4]
45096   movs  r3, lr, lsr #28
45097   ldrne ip, [sp, #28]
45098   orrne r3, ip, r3
45099   orrne r3, r6, r3
45100   strne r3, [r1, #0]
45101 .L15176:
45102   add r2, r2, #1
45103   cmp r4, r2
45104   bne .L15702
45105   b .L13691
45106 .L14516:
45107   ldr r4, [sp, #4]
45108   add r3, r5, r7
45109   cmp r4, r3
45110   bls .L15703
45111   cmp r6, #0
45112   beq .L13691
45113   ldr r2, [sp, #0]
45114   ldr r3, .L15735
45115   add r1, r2, r5, asl #2
45116   add r0, r0, r3
45117   mov r5, #0
45118   b .L14816
45119 .L15704:
45120   sub ip, ip, #64
45121   add r1, r1, #32
45122 .L14816:
45123   ldr r2, [r0, #68]
45124   cmp r2, #0
45125   beq .L14817
45126   ands  lr, r2, #255
45127   beq .L14819
45128   ldr r3, [r1, #12]
45129   tst r3, #256
45130   movne r3, r3, lsr #16
45131   movne r3, r3, asl #16
45132   orrne r3, r3, #768
45133   orreq r3, lr, r3, asl #16
45134   orrne r3, lr, r3
45135   orreq r3, r3, #768
45136   strne r3, [r1, #12]
45137   streq r3, [r1, #12]
45138 .L14819:
45139   mov r3, r2, lsr #8
45140   ands  lr, r3, #255
45141   beq .L14823
45142   ldr r3, [r1, #8]
45143   tst r3, #256
45144   movne r3, r3, lsr #16
45145   movne r3, r3, asl #16
45146   orrne r3, r3, #768
45147   orreq r3, lr, r3, asl #16
45148   orrne r3, lr, r3
45149   orreq r3, r3, #768
45150   strne r3, [r1, #8]
45151   streq r3, [r1, #8]
45152 .L14823:
45153   mov r3, r2, lsr #16
45154   ands  lr, r3, #255
45155   beq .L14827
45156   ldr r3, [r1, #4]
45157   tst r3, #256
45158   movne r3, r3, lsr #16
45159   movne r3, r3, asl #16
45160   orrne r3, r3, #768
45161   orreq r3, lr, r3, asl #16
45162   orrne r3, lr, r3
45163   orreq r3, r3, #768
45164   strne r3, [r1, #4]
45165   streq r3, [r1, #4]
45166 .L14827:
45167   movs  r2, r2, lsr #24
45168   beq .L14817
45169   ldr r3, [r1, #0]
45170   tst r3, #256
45171   movne r3, r3, lsr #16
45172   movne r3, r3, asl #16
45173   orrne r3, r3, #768
45174   orreq r3, r2, r3, asl #16
45175   orrne r3, r2, r3
45176   orreq r3, r3, #768
45177   strne r3, [r1, #0]
45178   streq r3, [r1, #0]
45179 .L14817:
45180   ldr lr, [ip, #0]
45181   cmp lr, #0
45182   beq .L14834
45183   ands  r2, lr, #255
45184   beq .L14836
45185   ldr r4, [r1, #28]
45186   tst r4, #256
45187   movne r3, r4, lsr #16
45188   movne r3, r3, asl #16
45189   orreq r3, r2, #768
45190   orrne r2, r2, #768
45191   orrne r3, r3, r2
45192   orreq r3, r3, r4, asl #16
45193   strne r3, [r1, #28]
45194   streq r3, [r1, #28]
45195 .L14836:
45196   mov r3, lr, lsr #8
45197   ands  r2, r3, #255
45198   beq .L14840
45199   ldr r3, [r1, #24]
45200   tst r3, #256
45201   movne r3, r3, lsr #16
45202   movne r3, r3, asl #16
45203   orrne r3, r3, #768
45204   orreq r3, r2, r3, asl #16
45205   orrne r3, r2, r3
45206   orreq r3, r3, #768
45207   strne r3, [r1, #24]
45208   streq r3, [r1, #24]
45209 .L14840:
45210   mov r3, lr, lsr #16
45211   ands  r2, r3, #255
45212   beq .L14844
45213   ldr r3, [r1, #20]
45214   tst r3, #256
45215   movne r3, r3, lsr #16
45216   movne r3, r3, asl #16
45217   orrne r3, r3, #768
45218   orreq r3, r2, r3, asl #16
45219   orrne r3, r2, r3
45220   orreq r3, r3, #768
45221   strne r3, [r1, #20]
45222   streq r3, [r1, #20]
45223 .L14844:
45224   movs  r2, lr, lsr #24
45225   beq .L14834
45226   ldr lr, [r1, #16]
45227   tst lr, #256
45228   movne r3, lr, lsr #16
45229   movne r3, r3, asl #16
45230   orreq r3, r2, #768
45231   orrne r2, r2, #768
45232   orrne r3, r3, r2
45233   orreq r3, r3, lr, asl #16
45234   strne r3, [r1, #16]
45235   streq r3, [r1, #16]
45236 .L14834:
45237   add r5, r5, #1
45238   cmp r6, r5
45239   sub r0, r0, #64
45240   bne .L15704
45241   b .L13691
45242 .L14180:
45243   ldr r8, [sp, #4]
45244   add r3, r5, r7
45245   cmp r8, r3
45246   bls .L15705
45247   cmp r4, #0
45248   beq .L13691
45249   ldr r2, [sp, #0]
45250   ldr r3, .L15735+4
45251   add r1, r2, r5, asl #2
45252   add r0, r0, r3
45253   mov r5, #0
45254   b .L14480
45255 .L15706:
45256   add ip, ip, #64
45257   add r1, r1, #32
45258 .L14480:
45259   ldr r2, [ip, #0]
45260   cmp r2, #0
45261   beq .L14481
45262   ands  lr, r2, #255
45263   beq .L14483
45264   ldr r3, [r1, #0]
45265   tst r3, #256
45266   movne r3, r3, lsr #16
45267   movne r3, r3, asl #16
45268   orrne r3, r3, #768
45269   orreq r3, lr, r3, asl #16
45270   orrne r3, lr, r3
45271   orreq r3, r3, #768
45272   strne r3, [r1, #0]
45273   streq r3, [r1, #0]
45274 .L14483:
45275   mov r3, r2, lsr #8
45276   ands  lr, r3, #255
45277   beq .L14487
45278   ldr r3, [r1, #4]
45279   tst r3, #256
45280   movne r3, r3, lsr #16
45281   movne r3, r3, asl #16
45282   orrne r3, r3, #768
45283   orreq r3, lr, r3, asl #16
45284   orrne r3, lr, r3
45285   orreq r3, r3, #768
45286   strne r3, [r1, #4]
45287   streq r3, [r1, #4]
45288 .L14487:
45289   mov r3, r2, lsr #16
45290   ands  lr, r3, #255
45291   beq .L14491
45292   ldr r3, [r1, #8]
45293   tst r3, #256
45294   movne r3, r3, lsr #16
45295   movne r3, r3, asl #16
45296   orrne r3, r3, #768
45297   orreq r3, lr, r3, asl #16
45298   orrne r3, lr, r3
45299   orreq r3, r3, #768
45300   strne r3, [r1, #8]
45301   streq r3, [r1, #8]
45302 .L14491:
45303   movs  r2, r2, lsr #24
45304   beq .L14481
45305   ldr lr, [r1, #12]
45306   tst lr, #256
45307   movne r3, lr, lsr #16
45308   movne r3, r3, asl #16
45309   orreq r3, r2, #768
45310   orrne r2, r2, #768
45311   orrne r3, r3, r2
45312   orreq r3, r3, lr, asl #16
45313   strne r3, [r1, #12]
45314   streq r3, [r1, #12]
45315 .L14481:
45316   ldr r2, [r0, #-60]
45317   cmp r2, #0
45318   beq .L14498
45319   ands  lr, r2, #255
45320   beq .L14500
45321   ldr r3, [r1, #16]
45322   tst r3, #256
45323   movne r3, r3, lsr #16
45324   movne r3, r3, asl #16
45325   orrne r3, r3, #768
45326   orreq r3, lr, r3, asl #16
45327   orrne r3, lr, r3
45328   orreq r3, r3, #768
45329   strne r3, [r1, #16]
45330   streq r3, [r1, #16]
45331 .L14500:
45332   mov r3, r2, lsr #8
45333   ands  lr, r3, #255
45334   beq .L14504
45335   ldr r3, [r1, #20]
45336   tst r3, #256
45337   movne r3, r3, lsr #16
45338   movne r3, r3, asl #16
45339   orrne r3, r3, #768
45340   orreq r3, lr, r3, asl #16
45341   orrne r3, lr, r3
45342   orreq r3, r3, #768
45343   strne r3, [r1, #20]
45344   streq r3, [r1, #20]
45345 .L14504:
45346   mov r3, r2, lsr #16
45347   ands  lr, r3, #255
45348   beq .L14508
45349   ldr r3, [r1, #24]
45350   tst r3, #256
45351   movne r3, r3, lsr #16
45352   movne r3, r3, asl #16
45353   orrne r3, r3, #768
45354   orreq r3, lr, r3, asl #16
45355   orrne r3, lr, r3
45356   orreq r3, r3, #768
45357   strne r3, [r1, #24]
45358   streq r3, [r1, #24]
45359 .L14508:
45360   movs  r2, r2, lsr #24
45361   beq .L14498
45362   ldr r3, [r1, #28]
45363   tst r3, #256
45364   movne r3, r3, lsr #16
45365   movne r3, r3, asl #16
45366   orrne r3, r3, #768
45367   orreq r3, r2, r3, asl #16
45368   orrne r3, r2, r3
45369   orreq r3, r3, #768
45370   strne r3, [r1, #28]
45371   streq r3, [r1, #28]
45372 .L14498:
45373   add r5, r5, #1
45374   cmp r4, r5
45375   add r0, r0, #64
45376   bne .L15706
45377   b .L13691
45378 .L15414:
45379   ldr r8, [sp, #4]
45380   add r3, r5, r7
45381   cmp r3, r8
45382   bcs .L15707
45383   cmp r4, #0
45384   beq .L13691
45385   ldr r3, [sp, #0]
45386   mov ip, #0
45387   add r1, r3, r5, asl #2
45388   ldr r3, .L15735
45389   add r0, r0, r3
45390   b .L15614
45391 .L15708:
45392   sub r2, r2, #64
45393   add r1, r1, #32
45394 .L15614:
45395   ldr lr, [r0, #68]
45396   cmp lr, #0
45397   beq .L15615
45398   ands  r3, lr, #255
45399   ldrne r5, [sp, #28]
45400   orrne r3, r5, r3
45401   strne r3, [r1, #12]
45402   mov r3, lr, lsr #8
45403   ands  r3, r3, #255
45404   ldrne r7, [sp, #28]
45405   orrne r3, r7, r3
45406   strne r3, [r1, #8]
45407   mov r3, lr, lsr #16
45408   ands  r3, r3, #255
45409   ldrne r8, [sp, #28]
45410   orrne r3, r8, r3
45411   strne r3, [r1, #4]
45412   movs  r3, lr, lsr #24
45413   ldrne lr, [sp, #28]
45414   orrne r3, lr, r3
45415   strne r3, [r1, #0]
45416 .L15615:
45417   ldr lr, [r2, #0]
45418   cmp lr, #0
45419   beq .L15624
45420   ands  r3, lr, #255
45421   ldrne r5, [sp, #28]
45422   orrne r3, r5, r3
45423   strne r3, [r1, #28]
45424   mov r3, lr, lsr #8
45425   ands  r3, r3, #255
45426   ldrne r7, [sp, #28]
45427   orrne r3, r7, r3
45428   strne r3, [r1, #24]
45429   mov r3, lr, lsr #16
45430   ands  r3, r3, #255
45431   ldrne r8, [sp, #28]
45432   orrne r3, r8, r3
45433   strne r3, [r1, #20]
45434   movs  r3, lr, lsr #24
45435   ldrne lr, [sp, #28]
45436   orrne r3, lr, r3
45437   strne r3, [r1, #16]
45438 .L15624:
45439   add ip, ip, #1
45440   cmp r4, ip
45441   sub r0, r0, #64
45442   bne .L15708
45443   b .L13691
45444 .L15729:
45445   mov r8, #0
45446 .L13754:
45447   cmp sl, r3
45448   cmphi r7, r4
45449   bhi .L15663
45450   b .L13691
45451 .L13755:
45452   cmp r3, sl
45453   cmpcc r4, r7
45454   bcs .L13691
45455 .L15663:
45456   ldr r2, [sp, #68]
45457   and r0, r3, #7
45458   and ip, r3, #7
45459   mov r3, r3, asr #3
45460   mul r2, r3, r2
45461   ldr r3, [sp, #120]
45462   ldr r1, [sp, #120]
45463   add ip, r3, ip, asl #2
45464   mov r3, r4, asr #3
45465   add r0, r1, r0, asl #2
45466   mov lr, r4, asr #1
45467   mov r1, r4, asr #1
45468   add r2, r2, r3, asl #5
45469   tst r4, #1
45470   add r3, r0, r2
45471   and lr, lr, #3
45472   add r0, ip, r2
45473   and r1, r1, #3
45474   ldreqb  r3, [r0, r1]  @ zero_extendqisi2
45475   ldrneb  r3, [r3, lr]  @ zero_extendqisi2
45476   andeq r0, r3, #15
45477   movne r0, r3, lsr #4
45478   ldr r4, [sp, #140]
45479   cmp r0, #0
45480   orr r0, r0, r4
45481   beq .L13761
45482   ldr r2, [r9, #0]
45483   orr r1, r0, #768
45484   mov r3, r2, lsr #16
45485   orr r0, r0, #768
45486   mov r3, r3, asl #16
45487   tst r2, #256
45488   orr r3, r3, r1
45489   orr r0, r0, r2, asl #16
45490   strne r3, [r9, #0]
45491   streq r0, [r9, #0]
45492 .L13761:
45493   ldr ip, [sp, #60]
45494   ldr lr, [sp, #64]
45495   add r8, r8, #1
45496   add r6, r6, ip
45497   add r5, r5, lr
45498   cmp fp, r8
45499   add r9, r9, #4
45500   mov r4, r6, asr #8
45501   mov r3, r5, asr #8
45502   bgt .L13755
45503   b .L13691
45504 .L15732:
45505   mov r6, #0
45506 .L14882:
45507   cmp sl, lr
45508   cmphi r7, r4
45509   bhi .L15673
45510   b .L13691
45511 .L14883:
45512   cmp lr, sl
45513   cmpcc r4, r7
45514   bcs .L13691
45515 .L15673:
45516   and r3, lr, #7
45517   mov r2, r4, asr #3
45518   mov r3, r3, asl #3
45519   add r3, r3, r2, asl #6
45520   ldr r2, [sp, #116]
45521   ldr r0, [sp, #84]
45522   add r3, r3, r2
45523   mov r2, lr, asr #3
45524   mla r0, r2, r0, r3
45525   ldr r1, [sp, #72]
45526   add r6, r6, #1
45527   add r5, r5, r1
45528   and r1, r4, #7
45529   ldrb  r3, [r0, r1]  @ zero_extendqisi2
45530   ldr r0, [sp, #28]
45531   cmp r3, #0
45532   orr r3, r0, r3
45533   strne r3, [r8, #0]
45534   add ip, ip, fp
45535   cmp r9, r6
45536   mov lr, ip, asr #8
45537   mov r4, r5, asr #8
45538   add r8, r8, #4
45539   bgt .L14883
45540   b .L13691
45541 .L15730:
45542   mov r6, #0
45543 .L14918:
45544   cmp sl, r2
45545   cmphi r7, lr
45546   bhi .L15675
45547   b .L13691
45548 .L14919:
45549   cmp r2, sl
45550   cmpcc lr, r7
45551   bcs .L13691
45552 .L15675:
45553   ldr r1, [sp, #112]
45554   and r0, r2, #7
45555   add r0, r1, r0, asl #2
45556   mov r3, r2, asr #3
45557   and r1, r2, #7
45558   ldr r2, [sp, #104]
45559   mov ip, lr, asr #1
45560   mul r2, r3, r2
45561   and r9, ip, #3
45562   ldr ip, [sp, #112]
45563   mov r3, lr, asr #1
45564   add r1, ip, r1, asl #2
45565   and ip, r3, #3
45566   mov r3, lr, asr #3
45567   add r2, r2, r3, asl #5
45568   add r3, r0, r2
45569   tst lr, #1
45570   add r0, r1, r2
45571   ldreqb  r3, [r0, ip]  @ zero_extendqisi2
45572   ldrneb  r3, [r3, r9]  @ zero_extendqisi2
45573   ldr r2, [sp, #28]
45574   movne r0, r3, lsr #4
45575   andeq r0, r3, #15
45576   ldr ip, [sp, #136]
45577   ldr lr, [sp, #88]
45578   orr r3, r0, r2
45579   ldr r1, [sp, #96]
45580   cmp r0, #0
45581   add r6, r6, #1
45582   orr r3, ip, r3
45583   strne r3, [r8, #0]
45584   add r5, r5, lr
45585   add r4, r4, r1
45586   cmp fp, r6
45587   mov lr, r5, asr #8
45588   mov r2, r4, asr #8
45589   add r8, r8, #4
45590   bgt .L14919
45591   b .L13691
45592 .L15731:
45593   mov r4, #0
45594 .L13715:
45595   cmp sl, r0
45596   cmphi r7, r1
45597   bhi .L15661
45598   b .L13691
45599 .L13716:
45600   cmp r0, sl
45601   cmpcc r1, r7
45602   bcs .L13691
45603 .L15661:
45604   and r3, r0, #7
45605   mov r2, r1, asr #3
45606   mov r3, r3, asl #3
45607   add r3, r3, r2, asl #6
45608   ldr r2, [sp, #124]
45609   and r1, r1, #7
45610   add r3, r3, r2
45611   mov r2, r0, asr #3
45612   ldr r0, [sp, #56]
45613   mla r0, r2, r0, r3
45614   ldrb  r0, [r0, r1]  @ zero_extendqisi2
45615   cmp r0, #0
45616   beq .L13719
45617   ldr r3, [r5, #0]
45618   mov r2, r3, lsr #16
45619   mov r2, r2, asl #16
45620   orr r1, r0, r3, asl #16
45621   orr r2, r2, #768
45622   tst r3, #256
45623   orr r2, r0, r2
45624   orr r1, r1, #768
45625   strne r2, [r5, #0]
45626   streq r1, [r5, #0]
45627 .L13719:
45628   add r4, r4, #1
45629   add ip, ip, r9
45630   add lr, lr, r8
45631   cmp r6, r4
45632   mov r1, ip, asr #8
45633   mov r0, lr, asr #8
45634   add r5, r5, #4
45635   bgt .L13716
45636   b .L13691
45637 .L15707:
45638   rsb r7, r5, r8
45639   cmp r7, #0
45640   ble .L13691
45641   ldr ip, [sp, #0]
45642   movs  r6, r7, lsr #3
45643   add r1, ip, r5, asl #2
45644   beq .L15573
45645   ldr r3, .L15735
45646   mov r4, r1
45647   add r0, r0, r3
45648   mov r5, r2
45649   mov ip, #0
45650 .L15575:
45651   ldr lr, [r0, #68]
45652   cmp lr, #0
45653   beq .L15576
45654   ands  r3, lr, #255
45655   ldrne r8, [sp, #28]
45656   orrne r3, r8, r3
45657   strne r3, [r4, #12]
45658   mov r3, lr, lsr #8
45659   ands  r3, r3, #255
45660   ldrne r8, [sp, #28]
45661   orrne r3, r8, r3
45662   strne r3, [r4, #8]
45663   mov r3, lr, lsr #16
45664   ands  r3, r3, #255
45665   ldrne r8, [sp, #28]
45666   orrne r3, r8, r3
45667   strne r3, [r4, #4]
45668   movs  r3, lr, lsr #24
45669   ldrne lr, [sp, #28]
45670   orrne r3, lr, r3
45671   strne r3, [r4, #0]
45672 .L15576:
45673   ldr lr, [r5, #0]
45674   cmp lr, #0
45675   beq .L15585
45676   ands  r3, lr, #255
45677   ldrne r8, [sp, #28]
45678   orrne r3, r8, r3
45679   strne r3, [r4, #28]
45680   mov r3, lr, lsr #8
45681   ands  r3, r3, #255
45682   ldrne r8, [sp, #28]
45683   orrne r3, r8, r3
45684   strne r3, [r4, #24]
45685   mov r3, lr, lsr #16
45686   ands  r3, r3, #255
45687   ldrne r8, [sp, #28]
45688   orrne r3, r8, r3
45689   strne r3, [r4, #20]
45690   movs  r3, lr, lsr #24
45691   ldrne lr, [sp, #28]
45692   orrne r3, lr, r3
45693   strne r3, [r4, #16]
45694 .L15585:
45695   add ip, ip, #1
45696   cmp ip, r6
45697   sub r5, r5, #64
45698   add r4, r4, #32
45699   sub r0, r0, #64
45700   bne .L15575
45701   rsb r3, r6, r6, asl #26
45702   add r2, r2, r3, asl #6
45703   add r1, r1, r6, asl #5
45704 .L15573:
45705   ands  ip, r7, #7
45706   beq .L13691
45707   cmp ip, #3
45708   ldrls r2, [r2, #4]
45709   bls .L15608
45710   ldr r0, [r2, #4]
45711   cmp r0, #0
45712   beq .L15598
45713   ands  r3, r0, #255
45714   ldrne r4, [sp, #28]
45715   orrne r3, r4, r3
45716   strne r3, [r1, #12]
45717   mov r3, r0, lsr #8
45718   ands  r3, r3, #255
45719   ldrne r5, [sp, #28]
45720   orrne r3, r5, r3
45721   strne r3, [r1, #8]
45722   mov r3, r0, lsr #16
45723   ands  r3, r3, #255
45724   ldrne r7, [sp, #28]
45725   orrne r3, r7, r3
45726   strne r3, [r1, #4]
45727   movs  r3, r0, lsr #24
45728   ldrne r8, [sp, #28]
45729   orrne r3, r8, r3
45730   strne r3, [r1, #0]
45731 .L15598:
45732   subs  ip, ip, #4
45733   ldr r2, [r2, #0]
45734   addne r1, r1, #16
45735   beq .L13691
45736 .L15608:
45737   mov r0, #0
45738 .L15609:
45739   ldr lr, [sp, #28]
45740   movs  r3, r2, lsr #24
45741   orr r3, lr, r3
45742   strne r3, [r1, r0, asl #2]
45743   add r0, r0, #1
45744   cmp ip, r0
45745   mov r2, r2, asl #8
45746   bhi .L15609
45747   b .L13691
45748 .L15699:
45749   rsb ip, r5, r1
45750   cmp ip, #0
45751   ble .L13691
45752   ldr r2, [sp, #0]
45753   movs  sl, ip, lsr #3
45754   add r8, r2, r5, asl #2
45755   beq .L13896
45756   mov r5, r8
45757   mov r7, r0
45758   mov r1, #0
45759 .L13898:
45760   ldr r4, [r7, #0]
45761   cmp r4, #0
45762   beq .L13899
45763   ands  r2, r4, #15
45764   beq .L13901
45765   ldr lr, [r5, #0]
45766   orr r2, r6, r2
45767   tst lr, #256
45768   movne r3, lr, lsr #16
45769   movne r3, r3, asl #16
45770   orreq r3, r2, #768
45771   orrne r2, r2, #768
45772   orrne r3, r3, r2
45773   orreq r3, r3, lr, asl #16
45774   strne r3, [r5, #0]
45775   streq r3, [r5, #0]
45776 .L13901:
45777   mov r3, r4, lsr #4
45778   ands  r2, r3, #15
45779   beq .L13905
45780   ldr lr, [r5, #4]
45781   orr r2, r6, r2
45782   tst lr, #256
45783   movne r3, lr, lsr #16
45784   movne r3, r3, asl #16
45785   orreq r3, r2, #768
45786   orrne r2, r2, #768
45787   orrne r3, r3, r2
45788   orreq r3, r3, lr, asl #16
45789   strne r3, [r5, #4]
45790   streq r3, [r5, #4]
45791 .L13905:
45792   mov r3, r4, lsr #8
45793   ands  r2, r3, #15
45794   beq .L13909
45795   ldr lr, [r5, #8]
45796   orr r2, r6, r2
45797   tst lr, #256
45798   movne r3, lr, lsr #16
45799   movne r3, r3, asl #16
45800   orreq r3, r2, #768
45801   orrne r2, r2, #768
45802   orrne r3, r3, r2
45803   orreq r3, r3, lr, asl #16
45804   strne r3, [r5, #8]
45805   streq r3, [r5, #8]
45806 .L13909:
45807   mov r3, r4, lsr #12
45808   ands  r2, r3, #15
45809   beq .L13913
45810   ldr lr, [r5, #12]
45811   orr r2, r6, r2
45812   tst lr, #256
45813   movne r3, lr, lsr #16
45814   movne r3, r3, asl #16
45815   orreq r3, r2, #768
45816   orrne r2, r2, #768
45817   orrne r3, r3, r2
45818   orreq r3, r3, lr, asl #16
45819   strne r3, [r5, #12]
45820   streq r3, [r5, #12]
45821 .L13913:
45822   mov r3, r4, lsr #16
45823   ands  r2, r3, #15
45824   beq .L13917
45825   ldr lr, [r5, #16]
45826   orr r2, r6, r2
45827   tst lr, #256
45828   movne r3, lr, lsr #16
45829   movne r3, r3, asl #16
45830   orreq r3, r2, #768
45831   orrne r2, r2, #768
45832   orrne r3, r3, r2
45833   orreq r3, r3, lr, asl #16
45834   strne r3, [r5, #16]
45835   streq r3, [r5, #16]
45836 .L13917:
45837   mov r3, r4, lsr #20
45838   ands  r2, r3, #15
45839   beq .L13921
45840   ldr lr, [r5, #20]
45841   orr r2, r6, r2
45842   tst lr, #256
45843   movne r3, lr, lsr #16
45844   movne r3, r3, asl #16
45845   orreq r3, r2, #768
45846   orrne r2, r2, #768
45847   orrne r3, r3, r2
45848   orreq r3, r3, lr, asl #16
45849   strne r3, [r5, #20]
45850   streq r3, [r5, #20]
45851 .L13921:
45852   mov r3, r4, lsr #24
45853   ands  r2, r3, #15
45854   beq .L13925
45855   ldr lr, [r5, #24]
45856   orr r2, r6, r2
45857   tst lr, #256
45858   movne r3, lr, lsr #16
45859   movne r3, r3, asl #16
45860   orreq r3, r2, #768
45861   orrne r2, r2, #768
45862   orrne r3, r3, r2
45863   orreq r3, r3, lr, asl #16
45864   strne r3, [r5, #24]
45865   streq r3, [r5, #24]
45866 .L13925:
45867   movs  r2, r4, lsr #28
45868   beq .L13899
45869   ldr lr, [r5, #28]
45870   orr r2, r6, r2
45871   tst lr, #256
45872   movne r3, lr, lsr #16
45873   movne r3, r3, asl #16
45874   orreq r3, r2, #768
45875   orrne r2, r2, #768
45876   orrne r3, r3, r2
45877   orreq r3, r3, lr, asl #16
45878   strne r3, [r5, #28]
45879   streq r3, [r5, #28]
45880 .L13899:
45881   add r1, r1, #1
45882   cmp sl, r1
45883   add r7, r7, #32
45884   add r5, r5, #32
45885   bne .L13898
45886   mov r3, sl, asl #5
45887   add r0, r0, r3
45888   add r8, r8, r3
45889 .L13896:
45890   ands  r4, ip, #7
45891   beq .L13691
45892   ldr ip, [r0, #0]
45893   mov lr, #0
45894 .L13934:
45895   ands  r3, ip, #15
45896   beq .L13935
45897   ldr r1, [r8, #0]
45898   orr r2, r6, r3
45899   mov r3, r1, lsr #16
45900   orr r0, r2, #768
45901   mov r3, r3, asl #16
45902   orr r2, r2, #768
45903   tst r1, #256
45904   orr r3, r3, r0
45905   orr r2, r2, r1, asl #16
45906   strne r3, [r8, #0]
45907   streq r2, [r8, #0]
45908 .L13935:
45909   add lr, lr, #1
45910   cmp r4, lr
45911   mov ip, ip, lsr #4
45912   add r8, r8, #4
45913   bne .L13934
45914   b .L13691
45915 .L15736:
45916   .align  2
45917 .L15735:
45918   .word vram+65472
45919   .word vram+65600
45920 .L15703:
45921   rsb sl, r5, r4
45922   cmp sl, #0
45923   ble .L13691
45924   ldr lr, [sp, #0]
45925   movs  r8, sl, lsr #3
45926   add r7, lr, r5, asl #2
45927   beq .L14749
45928   ldr r3, .L15735
45929   mov r5, r7
45930   add r0, r0, r3
45931   mov r6, ip
45932   mov r1, #0
45933 .L14751:
45934   ldr r2, [r0, #68]
45935   cmp r2, #0
45936   beq .L14752
45937   ands  lr, r2, #255
45938   beq .L14754
45939   ldr r3, [r5, #12]
45940   tst r3, #256
45941   movne r3, r3, lsr #16
45942   movne r3, r3, asl #16
45943   orrne r3, r3, #768
45944   orreq r3, lr, r3, asl #16
45945   orrne r3, lr, r3
45946   orreq r3, r3, #768
45947   strne r3, [r5, #12]
45948   streq r3, [r5, #12]
45949 .L14754:
45950   mov r3, r2, lsr #8
45951   ands  lr, r3, #255
45952   beq .L14758
45953   ldr r3, [r5, #8]
45954   tst r3, #256
45955   movne r3, r3, lsr #16
45956   movne r3, r3, asl #16
45957   orrne r3, r3, #768
45958   orreq r3, lr, r3, asl #16
45959   orrne r3, lr, r3
45960   orreq r3, r3, #768
45961   strne r3, [r5, #8]
45962   streq r3, [r5, #8]
45963 .L14758:
45964   mov r3, r2, lsr #16
45965   ands  lr, r3, #255
45966   beq .L14762
45967   ldr r3, [r5, #4]
45968   tst r3, #256
45969   movne r3, r3, lsr #16
45970   movne r3, r3, asl #16
45971   orrne r3, r3, #768
45972   orreq r3, lr, r3, asl #16
45973   orrne r3, lr, r3
45974   orreq r3, r3, #768
45975   strne r3, [r5, #4]
45976   streq r3, [r5, #4]
45977 .L14762:
45978   movs  r2, r2, lsr #24
45979   beq .L14752
45980   ldr r3, [r5, #0]
45981   tst r3, #256
45982   movne r3, r3, lsr #16
45983   movne r3, r3, asl #16
45984   orrne r3, r3, #768
45985   orreq r3, r2, r3, asl #16
45986   orrne r3, r2, r3
45987   orreq r3, r3, #768
45988   strne r3, [r5, #0]
45989   streq r3, [r5, #0]
45990 .L14752:
45991   ldr lr, [r6, #0]
45992   cmp lr, #0
45993   beq .L14769
45994   ands  r2, lr, #255
45995   beq .L14771
45996   ldr r4, [r5, #28]
45997   tst r4, #256
45998   movne r3, r4, lsr #16
45999   movne r3, r3, asl #16
46000   orreq r3, r2, #768
46001   orrne r2, r2, #768
46002   orrne r3, r3, r2
46003   orreq r3, r3, r4, asl #16
46004   strne r3, [r5, #28]
46005   streq r3, [r5, #28]
46006 .L14771:
46007   mov r3, lr, lsr #8
46008   ands  r2, r3, #255
46009   beq .L14775
46010   ldr r3, [r5, #24]
46011   tst r3, #256
46012   movne r3, r3, lsr #16
46013   movne r3, r3, asl #16
46014   orrne r3, r3, #768
46015   orreq r3, r2, r3, asl #16
46016   orrne r3, r2, r3
46017   orreq r3, r3, #768
46018   strne r3, [r5, #24]
46019   streq r3, [r5, #24]
46020 .L14775:
46021   mov r3, lr, lsr #16
46022   ands  r2, r3, #255
46023   beq .L14779
46024   ldr r3, [r5, #20]
46025   tst r3, #256
46026   movne r3, r3, lsr #16
46027   movne r3, r3, asl #16
46028   orrne r3, r3, #768
46029   orreq r3, r2, r3, asl #16
46030   orrne r3, r2, r3
46031   orreq r3, r3, #768
46032   strne r3, [r5, #20]
46033   streq r3, [r5, #20]
46034 .L14779:
46035   movs  r2, lr, lsr #24
46036   beq .L14769
46037   ldr lr, [r5, #16]
46038   tst lr, #256
46039   movne r3, lr, lsr #16
46040   movne r3, r3, asl #16
46041   orreq r3, r2, #768
46042   orrne r2, r2, #768
46043   orrne r3, r3, r2
46044   orreq r3, r3, lr, asl #16
46045   strne r3, [r5, #16]
46046   streq r3, [r5, #16]
46047 .L14769:
46048   add r1, r1, #1
46049   cmp r1, r8
46050   sub r6, r6, #64
46051   add r5, r5, #32
46052   sub r0, r0, #64
46053   bne .L14751
46054   rsb r3, r8, r8, asl #26
46055   add ip, ip, r3, asl #6
46056   add r7, r7, r8, asl #5
46057 .L14749:
46058   ands  r4, sl, #7
46059   beq .L13691
46060   cmp r4, #3
46061   ldrls ip, [ip, #4]
46062   bls .L14808
46063   ldr r2, [ip, #4]
46064   cmp r2, #0
46065   beq .L14790
46066   ands  r1, r2, #255
46067   beq .L14792
46068   ldr r3, [r7, #12]
46069   tst r3, #256
46070   movne r3, r3, lsr #16
46071   movne r3, r3, asl #16
46072   orrne r3, r3, #768
46073   orreq r3, r1, r3, asl #16
46074   orrne r3, r1, r3
46075   orreq r3, r3, #768
46076   strne r3, [r7, #12]
46077   streq r3, [r7, #12]
46078 .L14792:
46079   mov r3, r2, lsr #8
46080   ands  r1, r3, #255
46081   beq .L14796
46082   ldr r3, [r7, #8]
46083   tst r3, #256
46084   movne r3, r3, lsr #16
46085   movne r3, r3, asl #16
46086   orrne r3, r3, #768
46087   orreq r3, r1, r3, asl #16
46088   orrne r3, r1, r3
46089   orreq r3, r3, #768
46090   strne r3, [r7, #8]
46091   streq r3, [r7, #8]
46092 .L14796:
46093   mov r3, r2, lsr #16
46094   ands  r1, r3, #255
46095   beq .L14800
46096   ldr r3, [r7, #4]
46097   tst r3, #256
46098   movne r3, r3, lsr #16
46099   movne r3, r3, asl #16
46100   orrne r3, r3, #768
46101   orreq r3, r1, r3, asl #16
46102   orrne r3, r1, r3
46103   orreq r3, r3, #768
46104   strne r3, [r7, #4]
46105   streq r3, [r7, #4]
46106 .L14800:
46107   movs  r2, r2, lsr #24
46108   beq .L14790
46109   ldr r3, [r7, #0]
46110   tst r3, #256
46111   movne r3, r3, lsr #16
46112   movne r3, r3, asl #16
46113   orrne r3, r3, #768
46114   orreq r3, r2, r3, asl #16
46115   orrne r3, r2, r3
46116   orreq r3, r3, #768
46117   strne r3, [r7, #0]
46118   streq r3, [r7, #0]
46119 .L14790:
46120   subs  r4, r4, #4
46121   ldr ip, [ip, #0]
46122   addne r7, r7, #16
46123   beq .L13691
46124 .L14808:
46125   mov lr, #0
46126 .L14809:
46127   movs  r0, ip, lsr #24
46128   beq .L14810
46129   ldr r2, [r7, #0]
46130   orr r1, r0, #768
46131   mov r3, r2, lsr #16
46132   orr r0, r0, #768
46133   mov r3, r3, asl #16
46134   tst r2, #256
46135   orr r3, r3, r1
46136   orr r0, r0, r2, asl #16
46137   strne r3, [r7, #0]
46138   streq r0, [r7, #0]
46139 .L14810:
46140   add lr, lr, #1
46141   cmp r4, lr
46142   mov ip, ip, asl #8
46143   add r7, r7, #4
46144   bhi .L14809
46145   b .L13691
46146 .L15695:
46147   rsb r7, r5, ip
46148   cmp r7, #0
46149   ble .L13691
46150   ldr lr, [sp, #0]
46151   movs  r8, r7, lsr #3
46152   add r1, lr, r5, asl #2
46153   beq .L15018
46154   mov r4, r1
46155   mov r5, r0
46156   mov ip, #0
46157 .L15020:
46158   ldr lr, [r5, #0]
46159   cmp lr, #0
46160   beq .L15021
46161   ands  r3, lr, #15
46162   ldrne r2, [sp, #28]
46163   orrne r3, r2, r3
46164   orrne r3, r6, r3
46165   strne r3, [r4, #0]
46166   mov r3, lr, lsr #4
46167   ands  r3, r3, #15
46168   ldrne r2, [sp, #28]
46169   orrne r3, r2, r3
46170   orrne r3, r6, r3
46171   strne r3, [r4, #4]
46172   mov r3, lr, lsr #8
46173   ands  r3, r3, #15
46174   ldrne r2, [sp, #28]
46175   orrne r3, r2, r3
46176   orrne r3, r6, r3
46177   strne r3, [r4, #8]
46178   mov r3, lr, lsr #12
46179   ands  r3, r3, #15
46180   ldrne r2, [sp, #28]
46181   orrne r3, r2, r3
46182   orrne r3, r6, r3
46183   strne r3, [r4, #12]
46184   mov r3, lr, lsr #16
46185   ands  r3, r3, #15
46186   ldrne r2, [sp, #28]
46187   orrne r3, r2, r3
46188   orrne r3, r6, r3
46189   strne r3, [r4, #16]
46190   mov r3, lr, lsr #20
46191   ands  r3, r3, #15
46192   ldrne r2, [sp, #28]
46193   orrne r3, r2, r3
46194   orrne r3, r6, r3
46195   strne r3, [r4, #20]
46196   mov r3, lr, lsr #24
46197   ands  r3, r3, #15
46198   ldrne r2, [sp, #28]
46199   orrne r3, r2, r3
46200   orrne r3, r6, r3
46201   strne r3, [r4, #24]
46202   movs  r3, lr, lsr #28
46203   ldrne lr, [sp, #28]
46204   orrne r3, lr, r3
46205   orrne r3, r6, r3
46206   strne r3, [r4, #28]
46207 .L15021:
46208   add ip, ip, #1
46209   cmp r8, ip
46210   add r5, r5, #32
46211   add r4, r4, #32
46212   bne .L15020
46213   mov r3, r8, asl #5
46214   add r0, r0, r3
46215   add r1, r1, r3
46216 .L15018:
46217   ands  lr, r7, #7
46218   beq .L13691
46219   ldr r0, [r0, #0]
46220   mov ip, #0
46221 .L15040:
46222   ldr r2, [sp, #28]
46223   ands  r3, r0, #15
46224   orr r3, r2, r3
46225   orr r3, r6, r3
46226   strne r3, [r1, ip, asl #2]
46227   add ip, ip, #1
46228   cmp ip, lr
46229   mov r0, r0, lsr #4
46230   bne .L15040
46231   b .L13691
46232 .L15705:
46233   rsb r8, r5, r8
46234   cmp r8, #0
46235   ble .L13691
46236   ldr lr, [sp, #0]
46237   movs  r7, r8, lsr #3
46238   add r6, lr, r5, asl #2
46239   beq .L14413
46240   ldr r3, .L15735+4
46241   mov r4, r6
46242   add r0, r0, r3
46243   mov r5, ip
46244   mov r1, #0
46245 .L14415:
46246   ldr r2, [r5, #0]
46247   cmp r2, #0
46248   beq .L14416
46249   ands  lr, r2, #255
46250   beq .L14418
46251   ldr r3, [r4, #0]
46252   tst r3, #256
46253   movne r3, r3, lsr #16
46254   movne r3, r3, asl #16
46255   orrne r3, r3, #768
46256   orreq r3, lr, r3, asl #16
46257   orrne r3, lr, r3
46258   orreq r3, r3, #768
46259   strne r3, [r4, #0]
46260   streq r3, [r4, #0]
46261 .L14418:
46262   mov r3, r2, lsr #8
46263   ands  lr, r3, #255
46264   beq .L14422
46265   ldr r3, [r4, #4]
46266   tst r3, #256
46267   movne r3, r3, lsr #16
46268   movne r3, r3, asl #16
46269   orrne r3, r3, #768
46270   orreq r3, lr, r3, asl #16
46271   orrne r3, lr, r3
46272   orreq r3, r3, #768
46273   strne r3, [r4, #4]
46274   streq r3, [r4, #4]
46275 .L14422:
46276   mov r3, r2, lsr #16
46277   ands  lr, r3, #255
46278   beq .L14426
46279   ldr r3, [r4, #8]
46280   tst r3, #256
46281   movne r3, r3, lsr #16
46282   movne r3, r3, asl #16
46283   orrne r3, r3, #768
46284   orreq r3, lr, r3, asl #16
46285   orrne r3, lr, r3
46286   orreq r3, r3, #768
46287   strne r3, [r4, #8]
46288   streq r3, [r4, #8]
46289 .L14426:
46290   movs  r2, r2, lsr #24
46291   beq .L14416
46292   ldr lr, [r4, #12]
46293   tst lr, #256
46294   movne r3, lr, lsr #16
46295   movne r3, r3, asl #16
46296   orreq r3, r2, #768
46297   orrne r2, r2, #768
46298   orrne r3, r3, r2
46299   orreq r3, r3, lr, asl #16
46300   strne r3, [r4, #12]
46301   streq r3, [r4, #12]
46302 .L14416:
46303   ldr r2, [r0, #-60]
46304   cmp r2, #0
46305   beq .L14433
46306   ands  lr, r2, #255
46307   beq .L14435
46308   ldr r3, [r4, #16]
46309   tst r3, #256
46310   movne r3, r3, lsr #16
46311   movne r3, r3, asl #16
46312   orrne r3, r3, #768
46313   orreq r3, lr, r3, asl #16
46314   orrne r3, lr, r3
46315   orreq r3, r3, #768
46316   strne r3, [r4, #16]
46317   streq r3, [r4, #16]
46318 .L14435:
46319   mov r3, r2, lsr #8
46320   ands  lr, r3, #255
46321   beq .L14439
46322   ldr r3, [r4, #20]
46323   tst r3, #256
46324   movne r3, r3, lsr #16
46325   movne r3, r3, asl #16
46326   orrne r3, r3, #768
46327   orreq r3, lr, r3, asl #16
46328   orrne r3, lr, r3
46329   orreq r3, r3, #768
46330   strne r3, [r4, #20]
46331   streq r3, [r4, #20]
46332 .L14439:
46333   mov r3, r2, lsr #16
46334   ands  lr, r3, #255
46335   beq .L14443
46336   ldr r3, [r4, #24]
46337   tst r3, #256
46338   movne r3, r3, lsr #16
46339   movne r3, r3, asl #16
46340   orrne r3, r3, #768
46341   orreq r3, lr, r3, asl #16
46342   orrne r3, lr, r3
46343   orreq r3, r3, #768
46344   strne r3, [r4, #24]
46345   streq r3, [r4, #24]
46346 .L14443:
46347   movs  r2, r2, lsr #24
46348   beq .L14433
46349   ldr r3, [r4, #28]
46350   tst r3, #256
46351   movne r3, r3, lsr #16
46352   movne r3, r3, asl #16
46353   orrne r3, r3, #768
46354   orreq r3, r2, r3, asl #16
46355   orrne r3, r2, r3
46356   orreq r3, r3, #768
46357   strne r3, [r4, #28]
46358   streq r3, [r4, #28]
46359 .L14433:
46360   add r1, r1, #1
46361   cmp r1, r7
46362   add r5, r5, #64
46363   add r4, r4, #32
46364   add r0, r0, #64
46365   bne .L14415
46366   add ip, ip, r7, asl #6
46367   add r6, r6, r7, asl #5
46368 .L14413:
46369   ands  r4, r8, #7
46370   beq .L13691
46371   cmp r4, #3
46372   ldrls ip, [ip, #0]
46373   bls .L14472
46374   ldr r2, [ip, #0]
46375   cmp r2, #0
46376   beq .L14454
46377   ands  r1, r2, #255
46378   beq .L14456
46379   ldr r3, [r6, #0]
46380   tst r3, #256
46381   movne r3, r3, lsr #16
46382   movne r3, r3, asl #16
46383   orrne r3, r3, #768
46384   orreq r3, r1, r3, asl #16
46385   orrne r3, r1, r3
46386   orreq r3, r3, #768
46387   strne r3, [r6, #0]
46388   streq r3, [r6, #0]
46389 .L14456:
46390   mov r3, r2, lsr #8
46391   ands  r1, r3, #255
46392   beq .L14460
46393   ldr r3, [r6, #4]
46394   tst r3, #256
46395   movne r3, r3, lsr #16
46396   movne r3, r3, asl #16
46397   orrne r3, r3, #768
46398   orreq r3, r1, r3, asl #16
46399   orrne r3, r1, r3
46400   orreq r3, r3, #768
46401   strne r3, [r6, #4]
46402   streq r3, [r6, #4]
46403 .L14460:
46404   mov r3, r2, lsr #16
46405   ands  r1, r3, #255
46406   beq .L14464
46407   ldr r3, [r6, #8]
46408   tst r3, #256
46409   movne r3, r3, lsr #16
46410   movne r3, r3, asl #16
46411   orrne r3, r3, #768
46412   orreq r3, r1, r3, asl #16
46413   orrne r3, r1, r3
46414   orreq r3, r3, #768
46415   strne r3, [r6, #8]
46416   streq r3, [r6, #8]
46417 .L14464:
46418   movs  r2, r2, lsr #24
46419   beq .L14454
46420   ldr r1, [r6, #12]
46421   tst r1, #256
46422   movne r3, r1, lsr #16
46423   movne r3, r3, asl #16
46424   orreq r3, r2, #768
46425   orrne r2, r2, #768
46426   orrne r3, r3, r2
46427   orreq r3, r3, r1, asl #16
46428   strne r3, [r6, #12]
46429   streq r3, [r6, #12]
46430 .L14454:
46431   subs  r4, r4, #4
46432   ldr ip, [ip, #4]
46433   addne r6, r6, #16
46434   beq .L13691
46435 .L14472:
46436   mov lr, #0
46437 .L14473:
46438   ands  r0, ip, #255
46439   beq .L14474
46440   ldr r2, [r6, #0]
46441   orr r1, r0, #768
46442   mov r3, r2, lsr #16
46443   orr r0, r0, #768
46444   mov r3, r3, asl #16
46445   tst r2, #256
46446   orr r3, r3, r1
46447   orr r0, r0, r2, asl #16
46448   strne r3, [r6, #0]
46449   streq r0, [r6, #0]
46450 .L14474:
46451   add lr, lr, #1
46452   cmp r4, lr
46453   mov ip, ip, lsr #8
46454   add r6, r6, #4
46455   bhi .L14473
46456   b .L13691
46457 .L15697:
46458   rsb r8, r5, r8
46459   cmp r8, #0
46460   ble .L13691
46461   ldr lr, [sp, #0]
46462   movs  r7, r8, lsr #3
46463   add r1, lr, r5, asl #2
46464   beq .L15353
46465   ldr r3, .L15735+4
46466   mov r4, r1
46467   add r0, r0, r3
46468   mov r5, ip
46469   mov r6, #0
46470 .L15355:
46471   ldr lr, [r5, #0]
46472   cmp lr, #0
46473   beq .L15356
46474   ands  r3, lr, #255
46475   ldrne r2, [sp, #28]
46476   orrne r3, r2, r3
46477   strne r3, [r4, #0]
46478   mov r3, lr, lsr #8
46479   ands  r3, r3, #255
46480   ldrne r2, [sp, #28]
46481   orrne r3, r2, r3
46482   strne r3, [r4, #4]
46483   mov r3, lr, lsr #16
46484   ands  r3, r3, #255
46485   ldrne r2, [sp, #28]
46486   orrne r3, r2, r3
46487   strne r3, [r4, #8]
46488   movs  r3, lr, lsr #24
46489   ldrne lr, [sp, #28]
46490   orrne r3, lr, r3
46491   strne r3, [r4, #12]
46492 .L15356:
46493   ldr lr, [r0, #-60]
46494   cmp lr, #0
46495   beq .L15365
46496   ands  r3, lr, #255
46497   ldrne r2, [sp, #28]
46498   orrne r3, r2, r3
46499   strne r3, [r4, #16]
46500   mov r3, lr, lsr #8
46501   ands  r3, r3, #255
46502   ldrne r2, [sp, #28]
46503   orrne r3, r2, r3
46504   strne r3, [r4, #20]
46505   mov r3, lr, lsr #16
46506   ands  r3, r3, #255
46507   ldrne r2, [sp, #28]
46508   orrne r3, r2, r3
46509   strne r3, [r4, #24]
46510   movs  r3, lr, lsr #24
46511   ldrne lr, [sp, #28]
46512   orrne r3, lr, r3
46513   strne r3, [r4, #28]
46514 .L15365:
46515   add r6, r6, #1
46516   cmp r6, r7
46517   add r5, r5, #64
46518   add r4, r4, #32
46519   add r0, r0, #64
46520   bne .L15355
46521   add ip, ip, r7, asl #6
46522   add r1, r1, r7, asl #5
46523 .L15353:
46524   ands  lr, r8, #7
46525   beq .L13691
46526   cmp lr, #3
46527   ldrls ip, [ip, #0]
46528   bls .L15388
46529   ldr r2, [ip, #0]
46530   cmp r2, #0
46531   beq .L15378
46532   ands  r3, r2, #255
46533   ldrne r0, [sp, #28]
46534   orrne r3, r0, r3
46535   strne r3, [r1, #0]
46536   mov r3, r2, lsr #8
46537   ands  r3, r3, #255
46538   ldrne r4, [sp, #28]
46539   orrne r3, r4, r3
46540   strne r3, [r1, #4]
46541   mov r3, r2, lsr #16
46542   ands  r3, r3, #255
46543   ldrne r5, [sp, #28]
46544   orrne r3, r5, r3
46545   strne r3, [r1, #8]
46546   movs  r3, r2, lsr #24
46547   ldrne r7, [sp, #28]
46548   orrne r3, r7, r3
46549   strne r3, [r1, #12]
46550 .L15378:
46551   subs  lr, lr, #4
46552   ldr ip, [ip, #4]
46553   addne r1, r1, #16
46554   beq .L13691
46555 .L15388:
46556   mov r0, #0
46557 .L15389:
46558   ldr r8, [sp, #28]
46559   ands  r3, ip, #255
46560   orr r3, r8, r3
46561   strne r3, [r1, r0, asl #2]
46562   add r0, r0, #1
46563   cmp lr, r0
46564   mov ip, ip, lsr #8
46565   bhi .L15389
46566   b .L13691
46567 .L15701:
46568   rsb r8, r5, ip
46569   cmp r8, #0
46570   ble .L13691
46571   ldr lr, [sp, #0]
46572   movs  r7, r8, lsr #3
46573   add r1, lr, r5, asl #2
46574   beq .L15148
46575   mov r4, r1
46576   mov r5, r0
46577   mov ip, #0
46578 .L15150:
46579   ldr lr, [r5, #0]
46580   cmp lr, #0
46581   beq .L15151
46582   ands  r3, lr, #15
46583   ldrne r2, [sp, #28]
46584   orrne r3, r2, r3
46585   orrne r3, r6, r3
46586   strne r3, [r4, #28]
46587   mov r3, lr, lsr #4
46588   ands  r3, r3, #15
46589   ldrne r2, [sp, #28]
46590   orrne r3, r2, r3
46591   orrne r3, r6, r3
46592   strne r3, [r4, #24]
46593   mov r3, lr, lsr #8
46594   ands  r3, r3, #15
46595   ldrne r2, [sp, #28]
46596   orrne r3, r2, r3
46597   orrne r3, r6, r3
46598   strne r3, [r4, #20]
46599   mov r3, lr, lsr #12
46600   ands  r3, r3, #15
46601   ldrne r2, [sp, #28]
46602   orrne r3, r2, r3
46603   orrne r3, r6, r3
46604   strne r3, [r4, #16]
46605   mov r3, lr, lsr #16
46606   ands  r3, r3, #15
46607   ldrne r2, [sp, #28]
46608   orrne r3, r2, r3
46609   orrne r3, r6, r3
46610   strne r3, [r4, #12]
46611   mov r3, lr, lsr #20
46612   ands  r3, r3, #15
46613   ldrne r2, [sp, #28]
46614   orrne r3, r2, r3
46615   orrne r3, r6, r3
46616   strne r3, [r4, #8]
46617   mov r3, lr, lsr #24
46618   ands  r3, r3, #15
46619   ldrne r2, [sp, #28]
46620   orrne r3, r2, r3
46621   orrne r3, r6, r3
46622   strne r3, [r4, #4]
46623   movs  r3, lr, lsr #28
46624   ldrne lr, [sp, #28]
46625   orrne r3, lr, r3
46626   orrne r3, r6, r3
46627   strne r3, [r4, #0]
46628 .L15151:
46629   add ip, ip, #1
46630   cmp ip, r7
46631   sub r5, r5, #32
46632   add r4, r4, #32
46633   bne .L15150
46634   rsb r3, r7, r7, asl #27
46635   add r0, r0, r3, asl #5
46636   add r1, r1, r7, asl #5
46637 .L15148:
46638   ands  lr, r8, #7
46639   beq .L13691
46640   ldr r0, [r0, #0]
46641   mov ip, #0
46642 .L15170:
46643   ldr r2, [sp, #28]
46644   movs  r3, r0, lsr #28
46645   orr r3, r2, r3
46646   orr r3, r6, r3
46647   strne r3, [r1, ip, asl #2]
46648   add ip, ip, #1
46649   cmp ip, lr
46650   mov r0, r0, asl #4
46651   bne .L15170
46652   b .L13691
46653 .L15693:
46654   rsb sl, r5, r1
46655   cmp sl, #0
46656   ble .L13691
46657   ldr r2, [sp, #0]
46658   movs  ip, sl, lsr #3
46659   add r8, r2, r5, asl #2
46660   beq .L14100
46661   mov r5, r8
46662   mov r7, r0
46663   mov r1, #0
46664 .L14102:
46665   ldr r4, [r7, #0]
46666   cmp r4, #0
46667   beq .L14103
46668   ands  r2, r4, #15
46669   beq .L14105
46670   ldr lr, [r5, #28]
46671   orr r2, r6, r2
46672   tst lr, #256
46673   movne r3, lr, lsr #16
46674   movne r3, r3, asl #16
46675   orreq r3, r2, #768
46676   orrne r2, r2, #768
46677   orrne r3, r3, r2
46678   orreq r3, r3, lr, asl #16
46679   strne r3, [r5, #28]
46680   streq r3, [r5, #28]
46681 .L14105:
46682   mov r3, r4, lsr #4
46683   ands  r2, r3, #15
46684   beq .L14109
46685   ldr lr, [r5, #24]
46686   orr r2, r6, r2
46687   tst lr, #256
46688   movne r3, lr, lsr #16
46689   movne r3, r3, asl #16
46690   orreq r3, r2, #768
46691   orrne r2, r2, #768
46692   orrne r3, r3, r2
46693   orreq r3, r3, lr, asl #16
46694   strne r3, [r5, #24]
46695   streq r3, [r5, #24]
46696 .L14109:
46697   mov r3, r4, lsr #8
46698   ands  r2, r3, #15
46699   beq .L14113
46700   ldr lr, [r5, #20]
46701   orr r2, r6, r2
46702   tst lr, #256
46703   movne r3, lr, lsr #16
46704   movne r3, r3, asl #16
46705   orreq r3, r2, #768
46706   orrne r2, r2, #768
46707   orrne r3, r3, r2
46708   orreq r3, r3, lr, asl #16
46709   strne r3, [r5, #20]
46710   streq r3, [r5, #20]
46711 .L14113:
46712   mov r3, r4, lsr #12
46713   ands  r2, r3, #15
46714   beq .L14117
46715   ldr lr, [r5, #16]
46716   orr r2, r6, r2
46717   tst lr, #256
46718   movne r3, lr, lsr #16
46719   movne r3, r3, asl #16
46720   orreq r3, r2, #768
46721   orrne r2, r2, #768
46722   orrne r3, r3, r2
46723   orreq r3, r3, lr, asl #16
46724   strne r3, [r5, #16]
46725   streq r3, [r5, #16]
46726 .L14117:
46727   mov r3, r4, lsr #16
46728   ands  r2, r3, #15
46729   beq .L14121
46730   ldr lr, [r5, #12]
46731   orr r2, r6, r2
46732   tst lr, #256
46733   movne r3, lr, lsr #16
46734   movne r3, r3, asl #16
46735   orreq r3, r2, #768
46736   orrne r2, r2, #768
46737   orrne r3, r3, r2
46738   orreq r3, r3, lr, asl #16
46739   strne r3, [r5, #12]
46740   streq r3, [r5, #12]
46741 .L14121:
46742   mov r3, r4, lsr #20
46743   ands  r2, r3, #15
46744   beq .L14125
46745   ldr lr, [r5, #8]
46746   orr r2, r6, r2
46747   tst lr, #256
46748   movne r3, lr, lsr #16
46749   movne r3, r3, asl #16
46750   orreq r3, r2, #768
46751   orrne r2, r2, #768
46752   orrne r3, r3, r2
46753   orreq r3, r3, lr, asl #16
46754   strne r3, [r5, #8]
46755   streq r3, [r5, #8]
46756 .L14125:
46757   mov r3, r4, lsr #24
46758   ands  r2, r3, #15
46759   beq .L14129
46760   ldr lr, [r5, #4]
46761   orr r2, r6, r2
46762   tst lr, #256
46763   movne r3, lr, lsr #16
46764   movne r3, r3, asl #16
46765   orreq r3, r2, #768
46766   orrne r2, r2, #768
46767   orrne r3, r3, r2
46768   orreq r3, r3, lr, asl #16
46769   strne r3, [r5, #4]
46770   streq r3, [r5, #4]
46771 .L14129:
46772   movs  r2, r4, lsr #28
46773   beq .L14103
46774   ldr lr, [r5, #0]
46775   orr r2, r6, r2
46776   tst lr, #256
46777   movne r3, lr, lsr #16
46778   movne r3, r3, asl #16
46779   orreq r3, r2, #768
46780   orrne r2, r2, #768
46781   orrne r3, r3, r2
46782   orreq r3, r3, lr, asl #16
46783   strne r3, [r5, #0]
46784   streq r3, [r5, #0]
46785 .L14103:
46786   add r1, r1, #1
46787   cmp ip, r1
46788   sub r7, r7, #32
46789   add r5, r5, #32
46790   bne .L14102
46791   rsb r3, ip, ip, asl #27
46792   add r0, r0, r3, asl #5
46793   add r8, r8, ip, asl #5
46794 .L14100:
46795   ands  r4, sl, #7
46796   beq .L13691
46797   ldr ip, [r0, #0]
46798   mov lr, #0
46799 .L14138:
46800   movs  r3, ip, lsr #28
46801   beq .L14139
46802   ldr r1, [r8, #0]
46803   orr r2, r6, r3
46804   mov r3, r1, lsr #16
46805   orr r0, r2, #768
46806   mov r3, r3, asl #16
46807   orr r2, r2, #768
46808   tst r1, #256
46809   orr r3, r3, r0
46810   orr r2, r2, r1, asl #16
46811   strne r3, [r8, #0]
46812   streq r2, [r8, #0]
46813 .L14139:
46814   add lr, lr, #1
46815   cmp lr, r4
46816   mov ip, ip, asl #4
46817   add r8, r8, #4
46818   bne .L14138
46819   b .L13691
46820 .L15727:
46821   mov r4, r9
46822 .L14904:
46823   cmp r7, r3
46824   bhi .L15674
46825   b .L13691
46826 .L14905:
46827   cmp lr, r7
46828   bcs .L13691
46829 .L15674:
46830   mov r3, lr, asr #1
46831   and r6, r3, #3
46832   mov r3, lr, asr #3
46833   mov r3, r3, asl #5
46834   mov r2, lr, asr #1
46835   tst lr, #1
46836   add ip, r3, r1
46837   and r5, r2, #3
46838   add r2, r3, r1
46839   ldreqb  r3, [r2, r5]  @ zero_extendqisi2
46840   ldrneb  r3, [ip, r6]  @ zero_extendqisi2
46841   andeq r2, r3, #15
46842   movne r2, r3, lsr #4
46843   ldr r5, [sp, #28]
46844   ldr r3, [sp, #88]
46845   ldr ip, [sp, #136]
46846   add r0, r0, r3
46847   orr r3, r2, r5
46848   cmp r2, #0
46849   add r4, r4, #1
46850   orr r3, ip, r3
46851   strne r3, [r8, #0]
46852   cmp fp, r4
46853   mov lr, r0, asr #8
46854   add r8, r8, #4
46855   bgt .L14905
46856   b .L13691
46857 .L14183:
46858   mov r3, r0, lsr #3
46859   ands  r2, r0, #7
46860   add r4, ip, r3, asl #6
46861   ldreq r0, [sp, #108]
46862   bne .L15709
46863 .L14333:
46864   movs  lr, r8, lsr #3
46865   beq .L13691
46866   mov ip, #0
46867   b .L14374
46868 .L15710:
46869   add r4, r4, #64
46870   add r0, r0, #32
46871 .L14374:
46872   ldr r2, [r4, #0]
46873   cmp r2, #0
46874   beq .L14375
46875   ands  r1, r2, #255
46876   beq .L14377
46877   ldr r3, [r0, #0]
46878   tst r3, #256
46879   movne r3, r3, lsr #16
46880   movne r3, r3, asl #16
46881   orrne r3, r3, #768
46882   orreq r3, r1, r3, asl #16
46883   orrne r3, r1, r3
46884   orreq r3, r3, #768
46885   strne r3, [r0, #0]
46886   streq r3, [r0, #0]
46887 .L14377:
46888   mov r3, r2, lsr #8
46889   ands  r1, r3, #255
46890   beq .L14381
46891   ldr r3, [r0, #4]
46892   tst r3, #256
46893   movne r3, r3, lsr #16
46894   movne r3, r3, asl #16
46895   orrne r3, r3, #768
46896   orreq r3, r1, r3, asl #16
46897   orrne r3, r1, r3
46898   orreq r3, r3, #768
46899   strne r3, [r0, #4]
46900   streq r3, [r0, #4]
46901 .L14381:
46902   mov r3, r2, lsr #16
46903   ands  r1, r3, #255
46904   beq .L14385
46905   ldr r3, [r0, #8]
46906   tst r3, #256
46907   movne r3, r3, lsr #16
46908   movne r3, r3, asl #16
46909   orrne r3, r3, #768
46910   orreq r3, r1, r3, asl #16
46911   orrne r3, r1, r3
46912   orreq r3, r3, #768
46913   strne r3, [r0, #8]
46914   streq r3, [r0, #8]
46915 .L14385:
46916   movs  r2, r2, lsr #24
46917   beq .L14375
46918   ldr r1, [r0, #12]
46919   tst r1, #256
46920   movne r3, r1, lsr #16
46921   movne r3, r3, asl #16
46922   orreq r3, r2, #768
46923   orrne r2, r2, #768
46924   orrne r3, r3, r2
46925   orreq r3, r3, r1, asl #16
46926   strne r3, [r0, #12]
46927   streq r3, [r0, #12]
46928 .L14375:
46929   ldr r2, [r4, #4]
46930   cmp r2, #0
46931   beq .L14392
46932   ands  r1, r2, #255
46933   beq .L14394
46934   ldr r3, [r0, #16]
46935   tst r3, #256
46936   movne r3, r3, lsr #16
46937   movne r3, r3, asl #16
46938   orrne r3, r3, #768
46939   orreq r3, r1, r3, asl #16
46940   orrne r3, r1, r3
46941   orreq r3, r3, #768
46942   strne r3, [r0, #16]
46943   streq r3, [r0, #16]
46944 .L14394:
46945   mov r3, r2, lsr #8
46946   ands  r1, r3, #255
46947   beq .L14398
46948   ldr r3, [r0, #20]
46949   tst r3, #256
46950   movne r3, r3, lsr #16
46951   movne r3, r3, asl #16
46952   orrne r3, r3, #768
46953   orreq r3, r1, r3, asl #16
46954   orrne r3, r1, r3
46955   orreq r3, r3, #768
46956   strne r3, [r0, #20]
46957   streq r3, [r0, #20]
46958 .L14398:
46959   mov r3, r2, lsr #16
46960   ands  r1, r3, #255
46961   beq .L14402
46962   ldr r3, [r0, #24]
46963   tst r3, #256
46964   movne r3, r3, lsr #16
46965   movne r3, r3, asl #16
46966   orrne r3, r3, #768
46967   orreq r3, r1, r3, asl #16
46968   orrne r3, r1, r3
46969   orreq r3, r3, #768
46970   strne r3, [r0, #24]
46971   streq r3, [r0, #24]
46972 .L14402:
46973   movs  r2, r2, lsr #24
46974   beq .L14392
46975   ldr r3, [r0, #28]
46976   tst r3, #256
46977   movne r3, r3, lsr #16
46978   movne r3, r3, asl #16
46979   orrne r3, r3, #768
46980   orreq r3, r2, r3, asl #16
46981   orrne r3, r2, r3
46982   orreq r3, r3, #768
46983   strne r3, [r0, #28]
46984   streq r3, [r0, #28]
46985 .L14392:
46986   add ip, ip, #1
46987   cmp ip, lr
46988   bne .L15710
46989   b .L13691
46990 .L13775:
46991   mov r3, lr, lsr #3
46992   mov r1, r3, asl #5
46993   ands  r3, lr, #7
46994   add r5, r0, r1
46995   ldreq ip, [sp, #108]
46996   bne .L15711
46997 .L13846:
46998   movs  r4, r8, lsr #3
46999   beq .L13691
47000   mov lr, #0
47001   b .L13858
47002 .L15712:
47003   add r5, r5, #32
47004   add ip, ip, #32
47005 .L13858:
47006   ldr r0, [r5, #0]
47007   cmp r0, #0
47008   beq .L13859
47009   ands  r2, r0, #15
47010   beq .L13861
47011   ldr r1, [ip, #0]
47012   orr r2, r6, r2
47013   tst r1, #256
47014   movne r3, r1, lsr #16
47015   movne r3, r3, asl #16
47016   orreq r3, r2, #768
47017   orrne r2, r2, #768
47018   orrne r3, r3, r2
47019   orreq r3, r3, r1, asl #16
47020   strne r3, [ip, #0]
47021   streq r3, [ip, #0]
47022 .L13861:
47023   mov r3, r0, lsr #4
47024   ands  r2, r3, #15
47025   beq .L13865
47026   ldr r1, [ip, #4]
47027   orr r2, r6, r2
47028   tst r1, #256
47029   movne r3, r1, lsr #16
47030   movne r3, r3, asl #16
47031   orreq r3, r2, #768
47032   orrne r2, r2, #768
47033   orrne r3, r3, r2
47034   orreq r3, r3, r1, asl #16
47035   strne r3, [ip, #4]
47036   streq r3, [ip, #4]
47037 .L13865:
47038   mov r3, r0, lsr #8
47039   ands  r2, r3, #15
47040   beq .L13869
47041   ldr r1, [ip, #8]
47042   orr r2, r6, r2
47043   tst r1, #256
47044   movne r3, r1, lsr #16
47045   movne r3, r3, asl #16
47046   orreq r3, r2, #768
47047   orrne r2, r2, #768
47048   orrne r3, r3, r2
47049   orreq r3, r3, r1, asl #16
47050   strne r3, [ip, #8]
47051   streq r3, [ip, #8]
47052 .L13869:
47053   mov r3, r0, lsr #12
47054   ands  r2, r3, #15
47055   beq .L13873
47056   ldr r1, [ip, #12]
47057   orr r2, r6, r2
47058   tst r1, #256
47059   movne r3, r1, lsr #16
47060   movne r3, r3, asl #16
47061   orreq r3, r2, #768
47062   orrne r2, r2, #768
47063   orrne r3, r3, r2
47064   orreq r3, r3, r1, asl #16
47065   strne r3, [ip, #12]
47066   streq r3, [ip, #12]
47067 .L13873:
47068   mov r3, r0, lsr #16
47069   ands  r2, r3, #15
47070   beq .L13877
47071   ldr r1, [ip, #16]
47072   orr r2, r6, r2
47073   tst r1, #256
47074   movne r3, r1, lsr #16
47075   movne r3, r3, asl #16
47076   orreq r3, r2, #768
47077   orrne r2, r2, #768
47078   orrne r3, r3, r2
47079   orreq r3, r3, r1, asl #16
47080   strne r3, [ip, #16]
47081   streq r3, [ip, #16]
47082 .L13877:
47083   mov r3, r0, lsr #20
47084   ands  r2, r3, #15
47085   beq .L13881
47086   ldr r1, [ip, #20]
47087   orr r2, r6, r2
47088   tst r1, #256
47089   movne r3, r1, lsr #16
47090   movne r3, r3, asl #16
47091   orreq r3, r2, #768
47092   orrne r2, r2, #768
47093   orrne r3, r3, r2
47094   orreq r3, r3, r1, asl #16
47095   strne r3, [ip, #20]
47096   streq r3, [ip, #20]
47097 .L13881:
47098   mov r3, r0, lsr #24
47099   ands  r2, r3, #15
47100   beq .L13885
47101   ldr r1, [ip, #24]
47102   orr r2, r6, r2
47103   tst r1, #256
47104   movne r3, r1, lsr #16
47105   movne r3, r3, asl #16
47106   orreq r3, r2, #768
47107   orrne r2, r2, #768
47108   orrne r3, r3, r2
47109   orreq r3, r3, r1, asl #16
47110   strne r3, [ip, #24]
47111   streq r3, [ip, #24]
47112 .L13885:
47113   movs  r2, r0, lsr #28
47114   beq .L13859
47115   ldr r1, [ip, #28]
47116   orr r2, r6, r2
47117   tst r1, #256
47118   movne r3, r1, lsr #16
47119   movne r3, r3, asl #16
47120   orreq r3, r2, #768
47121   orrne r2, r2, #768
47122   orrne r3, r3, r2
47123   orreq r3, r3, r1, asl #16
47124   strne r3, [ip, #28]
47125   streq r3, [ip, #28]
47126 .L13859:
47127   add lr, lr, #1
47128   cmp r4, lr
47129   bne .L15712
47130   b .L13691
47131 .L15417:
47132   mov r3, r0, lsr #3
47133   ands  r1, r0, #7
47134   sub r2, r2, r3, asl #6
47135   ldreq r0, [sp, #108]
47136   bne .L15713
47137 .L15521:
47138   movs  lr, lr, lsr #3
47139   beq .L13691
47140   mov ip, #0
47141   b .L15550
47142 .L15714:
47143   sub r2, r2, #64
47144   add r0, r0, #32
47145 .L15550:
47146   ldr r1, [r2, #4]
47147   cmp r1, #0
47148   beq .L15551
47149   ands  r3, r1, #255
47150   ldrne r8, [sp, #28]
47151   orrne r3, r8, r3
47152   strne r3, [r0, #12]
47153   mov r3, r1, lsr #8
47154   ands  r3, r3, #255
47155   ldrne r4, [sp, #28]
47156   orrne r3, r4, r3
47157   strne r3, [r0, #8]
47158   mov r3, r1, lsr #16
47159   ands  r3, r3, #255
47160   ldrne r5, [sp, #28]
47161   orrne r3, r5, r3
47162   strne r3, [r0, #4]
47163   movs  r3, r1, lsr #24
47164   ldrne r7, [sp, #28]
47165   orrne r3, r7, r3
47166   strne r3, [r0, #0]
47167 .L15551:
47168   ldr r1, [r2, #0]
47169   cmp r1, #0
47170   beq .L15560
47171   ands  r3, r1, #255
47172   ldrne r8, [sp, #28]
47173   orrne r3, r8, r3
47174   strne r3, [r0, #28]
47175   mov r3, r1, lsr #8
47176   ands  r3, r3, #255
47177   ldrne r4, [sp, #28]
47178   orrne r3, r4, r3
47179   strne r3, [r0, #24]
47180   mov r3, r1, lsr #16
47181   ands  r3, r3, #255
47182   ldrne r5, [sp, #28]
47183   orrne r3, r5, r3
47184   strne r3, [r0, #20]
47185   movs  r3, r1, lsr #24
47186   ldrne r7, [sp, #28]
47187   orrne r3, r7, r3
47188   strne r3, [r0, #16]
47189 .L15560:
47190   add ip, ip, #1
47191   cmp ip, lr
47192   bne .L15714
47193   b .L13691
47194 .L14519:
47195   ands  r2, r0, #7
47196   mov r3, r0, lsr #3
47197   sub r4, ip, r3, asl #6
47198   ldreq ip, [sp, #108]
47199   bne .L15715
47200 .L14669:
47201   movs  r5, r8, lsr #3
47202   beq .L13691
47203   mov lr, #0
47204   b .L14710
47205 .L15716:
47206   sub r4, r4, #64
47207   add ip, ip, #32
47208 .L14710:
47209   ldr r2, [r4, #4]
47210   cmp r2, #0
47211   beq .L14711
47212   ands  r1, r2, #255
47213   beq .L14713
47214   ldr r3, [ip, #12]
47215   tst r3, #256
47216   movne r3, r3, lsr #16
47217   movne r3, r3, asl #16
47218   orrne r3, r3, #768
47219   orreq r3, r1, r3, asl #16
47220   orrne r3, r1, r3
47221   orreq r3, r3, #768
47222   strne r3, [ip, #12]
47223   streq r3, [ip, #12]
47224 .L14713:
47225   mov r3, r2, lsr #8
47226   ands  r1, r3, #255
47227   beq .L14717
47228   ldr r3, [ip, #8]
47229   tst r3, #256
47230   movne r3, r3, lsr #16
47231   movne r3, r3, asl #16
47232   orrne r3, r3, #768
47233   orreq r3, r1, r3, asl #16
47234   orrne r3, r1, r3
47235   orreq r3, r3, #768
47236   strne r3, [ip, #8]
47237   streq r3, [ip, #8]
47238 .L14717:
47239   mov r3, r2, lsr #16
47240   ands  r1, r3, #255
47241   beq .L14721
47242   ldr r3, [ip, #4]
47243   tst r3, #256
47244   movne r3, r3, lsr #16
47245   movne r3, r3, asl #16
47246   orrne r3, r3, #768
47247   orreq r3, r1, r3, asl #16
47248   orrne r3, r1, r3
47249   orreq r3, r3, #768
47250   strne r3, [ip, #4]
47251   streq r3, [ip, #4]
47252 .L14721:
47253   movs  r2, r2, lsr #24
47254   beq .L14711
47255   ldr r3, [ip, #0]
47256   tst r3, #256
47257   movne r3, r3, lsr #16
47258   movne r3, r3, asl #16
47259   orrne r3, r3, #768
47260   orreq r3, r2, r3, asl #16
47261   orrne r3, r2, r3
47262   orreq r3, r3, #768
47263   strne r3, [ip, #0]
47264   streq r3, [ip, #0]
47265 .L14711:
47266   ldr r1, [r4, #0]
47267   cmp r1, #0
47268   beq .L14728
47269   ands  r2, r1, #255
47270   beq .L14730
47271   ldr r0, [ip, #28]
47272   tst r0, #256
47273   movne r3, r0, lsr #16
47274   movne r3, r3, asl #16
47275   orreq r3, r2, #768
47276   orrne r2, r2, #768
47277   orrne r3, r3, r2
47278   orreq r3, r3, r0, asl #16
47279   strne r3, [ip, #28]
47280   streq r3, [ip, #28]
47281 .L14730:
47282   mov r3, r1, lsr #8
47283   ands  r2, r3, #255
47284   beq .L14734
47285   ldr r3, [ip, #24]
47286   tst r3, #256
47287   movne r3, r3, lsr #16
47288   movne r3, r3, asl #16
47289   orrne r3, r3, #768
47290   orreq r3, r2, r3, asl #16
47291   orrne r3, r2, r3
47292   orreq r3, r3, #768
47293   strne r3, [ip, #24]
47294   streq r3, [ip, #24]
47295 .L14734:
47296   mov r3, r1, lsr #16
47297   ands  r2, r3, #255
47298   beq .L14738
47299   ldr r3, [ip, #20]
47300   tst r3, #256
47301   movne r3, r3, lsr #16
47302   movne r3, r3, asl #16
47303   orrne r3, r3, #768
47304   orreq r3, r2, r3, asl #16
47305   orrne r3, r2, r3
47306   orreq r3, r3, #768
47307   strne r3, [ip, #20]
47308   streq r3, [ip, #20]
47309 .L14738:
47310   movs  r2, r1, lsr #24
47311   beq .L14728
47312   ldr r1, [ip, #16]
47313   tst r1, #256
47314   movne r3, r1, lsr #16
47315   movne r3, r3, asl #16
47316   orreq r3, r2, #768
47317   orrne r2, r2, #768
47318   orrne r3, r3, r2
47319   orreq r3, r3, r1, asl #16
47320   strne r3, [ip, #16]
47321   streq r3, [ip, #16]
47322 .L14728:
47323   add lr, lr, #1
47324   cmp r5, lr
47325   bne .L15716
47326   b .L13691
47327 .L13979:
47328   mov r3, lr, lsr #3
47329   ands  r2, lr, #7
47330   sub ip, r0, r3, asl #5
47331   ldreq lr, [sp, #108]
47332   bne .L15717
47333 .L14050:
47334   movs  r5, r8, lsr #3
47335   beq .L13691
47336   mov r4, #0
47337   b .L14062
47338 .L15718:
47339   sub ip, ip, #32
47340   add lr, lr, #32
47341 .L14062:
47342   ldr r0, [ip, #0]
47343   cmp r0, #0
47344   beq .L14063
47345   ands  r2, r0, #15
47346   beq .L14065
47347   ldr r1, [lr, #28]
47348   orr r2, r6, r2
47349   tst r1, #256
47350   movne r3, r1, lsr #16
47351   movne r3, r3, asl #16
47352   orreq r3, r2, #768
47353   orrne r2, r2, #768
47354   orrne r3, r3, r2
47355   orreq r3, r3, r1, asl #16
47356   strne r3, [lr, #28]
47357   streq r3, [lr, #28]
47358 .L14065:
47359   mov r3, r0, lsr #4
47360   ands  r2, r3, #15
47361   beq .L14069
47362   ldr r1, [lr, #24]
47363   orr r2, r6, r2
47364   tst r1, #256
47365   movne r3, r1, lsr #16
47366   movne r3, r3, asl #16
47367   orreq r3, r2, #768
47368   orrne r2, r2, #768
47369   orrne r3, r3, r2
47370   orreq r3, r3, r1, asl #16
47371   strne r3, [lr, #24]
47372   streq r3, [lr, #24]
47373 .L14069:
47374   mov r3, r0, lsr #8
47375   ands  r2, r3, #15
47376   beq .L14073
47377   ldr r1, [lr, #20]
47378   orr r2, r6, r2
47379   tst r1, #256
47380   movne r3, r1, lsr #16
47381   movne r3, r3, asl #16
47382   orreq r3, r2, #768
47383   orrne r2, r2, #768
47384   orrne r3, r3, r2
47385   orreq r3, r3, r1, asl #16
47386   strne r3, [lr, #20]
47387   streq r3, [lr, #20]
47388 .L14073:
47389   mov r3, r0, lsr #12
47390   ands  r2, r3, #15
47391   beq .L14077
47392   ldr r1, [lr, #16]
47393   orr r2, r6, r2
47394   tst r1, #256
47395   movne r3, r1, lsr #16
47396   movne r3, r3, asl #16
47397   orreq r3, r2, #768
47398   orrne r2, r2, #768
47399   orrne r3, r3, r2
47400   orreq r3, r3, r1, asl #16
47401   strne r3, [lr, #16]
47402   streq r3, [lr, #16]
47403 .L14077:
47404   mov r3, r0, lsr #16
47405   ands  r2, r3, #15
47406   beq .L14081
47407   ldr r1, [lr, #12]
47408   orr r2, r6, r2
47409   tst r1, #256
47410   movne r3, r1, lsr #16
47411   movne r3, r3, asl #16
47412   orreq r3, r2, #768
47413   orrne r2, r2, #768
47414   orrne r3, r3, r2
47415   orreq r3, r3, r1, asl #16
47416   strne r3, [lr, #12]
47417   streq r3, [lr, #12]
47418 .L14081:
47419   mov r3, r0, lsr #20
47420   ands  r2, r3, #15
47421   beq .L14085
47422   ldr r1, [lr, #8]
47423   orr r2, r6, r2
47424   tst r1, #256
47425   movne r3, r1, lsr #16
47426   movne r3, r3, asl #16
47427   orreq r3, r2, #768
47428   orrne r2, r2, #768
47429   orrne r3, r3, r2
47430   orreq r3, r3, r1, asl #16
47431   strne r3, [lr, #8]
47432   streq r3, [lr, #8]
47433 .L14085:
47434   mov r3, r0, lsr #24
47435   ands  r2, r3, #15
47436   beq .L14089
47437   ldr r1, [lr, #4]
47438   orr r2, r6, r2
47439   tst r1, #256
47440   movne r3, r1, lsr #16
47441   movne r3, r3, asl #16
47442   orreq r3, r2, #768
47443   orrne r2, r2, #768
47444   orrne r3, r3, r2
47445   orreq r3, r3, r1, asl #16
47446   strne r3, [lr, #4]
47447   streq r3, [lr, #4]
47448 .L14089:
47449   movs  r2, r0, lsr #28
47450   beq .L14063
47451   ldr r1, [lr, #0]
47452   orr r2, r6, r2
47453   tst r1, #256
47454   movne r3, r1, lsr #16
47455   movne r3, r3, asl #16
47456   orreq r3, r2, #768
47457   orrne r2, r2, #768
47458   orrne r3, r3, r2
47459   orreq r3, r3, r1, asl #16
47460   strne r3, [lr, #0]
47461   streq r3, [lr, #0]
47462 .L14063:
47463   add r4, r4, #1
47464   cmp r4, r5
47465   bne .L15718
47466   b .L13691
47467 .L14937:
47468   mov r3, lr, lsr #3
47469   mov r1, r3, asl #5
47470   ands  r3, lr, #7
47471   add lr, r0, r1
47472   ldreq r1, [sp, #108]
47473   bne .L15719
47474 .L14986:
47475   movs  ip, r4, lsr #3
47476   beq .L13691
47477   mov r0, #0
47478   b .L14996
47479 .L15720:
47480   add lr, lr, #32
47481   add r1, r1, #32
47482 .L14996:
47483   ldr r2, [lr, #0]
47484   cmp r2, #0
47485   beq .L14997
47486   ands  r3, r2, #15
47487   ldrne r4, [sp, #28]
47488   orrne r3, r4, r3
47489   orrne r3, r6, r3
47490   strne r3, [r1, #0]
47491   mov r3, r2, lsr #4
47492   ands  r3, r3, #15
47493   ldrne r5, [sp, #28]
47494   orrne r3, r5, r3
47495   orrne r3, r6, r3
47496   strne r3, [r1, #4]
47497   mov r3, r2, lsr #8
47498   ands  r3, r3, #15
47499   ldrne r7, [sp, #28]
47500   orrne r3, r7, r3
47501   orrne r3, r6, r3
47502   strne r3, [r1, #8]
47503   mov r3, r2, lsr #12
47504   ands  r3, r3, #15
47505   ldrne r8, [sp, #28]
47506   orrne r3, r8, r3
47507   orrne r3, r6, r3
47508   strne r3, [r1, #12]
47509   mov r3, r2, lsr #16
47510   ands  r3, r3, #15
47511   ldrne r4, [sp, #28]
47512   orrne r3, r4, r3
47513   orrne r3, r6, r3
47514   strne r3, [r1, #16]
47515   mov r3, r2, lsr #20
47516   ands  r3, r3, #15
47517   ldrne r5, [sp, #28]
47518   orrne r3, r5, r3
47519   orrne r3, r6, r3
47520   strne r3, [r1, #20]
47521   mov r3, r2, lsr #24
47522   ands  r3, r3, #15
47523   ldrne r7, [sp, #28]
47524   orrne r3, r7, r3
47525   orrne r3, r6, r3
47526   strne r3, [r1, #24]
47527   movs  r3, r2, lsr #28
47528   ldrne r8, [sp, #28]
47529   orrne r3, r8, r3
47530   orrne r3, r6, r3
47531   strne r3, [r1, #28]
47532 .L14997:
47533   add r0, r0, #1
47534   cmp r0, ip
47535   bne .L15720
47536   b .L13691
47537 .L15197:
47538   ands  r2, r0, #7
47539   mov r3, r0, lsr #3
47540   add r0, ip, r3, asl #6
47541   ldreq r1, [sp, #108]
47542   bne .L15721
47543 .L15301:
47544   movs  lr, lr, lsr #3
47545   beq .L13691
47546   mov ip, #0
47547   b .L15330
47548 .L15722:
47549   add r0, r0, #64
47550   add r1, r1, #32
47551 .L15330:
47552   ldr r2, [r0, #0]
47553   cmp r2, #0
47554   beq .L15331
47555   ands  r3, r2, #255
47556   ldrne r8, [sp, #28]
47557   orrne r3, r8, r3
47558   strne r3, [r1, #0]
47559   mov r3, r2, lsr #8
47560   ands  r3, r3, #255
47561   ldrne r4, [sp, #28]
47562   orrne r3, r4, r3
47563   strne r3, [r1, #4]
47564   mov r3, r2, lsr #16
47565   ands  r3, r3, #255
47566   ldrne r5, [sp, #28]
47567   orrne r3, r5, r3
47568   strne r3, [r1, #8]
47569   movs  r3, r2, lsr #24
47570   ldrne r7, [sp, #28]
47571   orrne r3, r7, r3
47572   strne r3, [r1, #12]
47573 .L15331:
47574   ldr r2, [r0, #4]
47575   cmp r2, #0
47576   beq .L15340
47577   ands  r3, r2, #255
47578   ldrne r8, [sp, #28]
47579   orrne r3, r8, r3
47580   strne r3, [r1, #16]
47581   mov r3, r2, lsr #8
47582   ands  r3, r3, #255
47583   ldrne r4, [sp, #28]
47584   orrne r3, r4, r3
47585   strne r3, [r1, #20]
47586   mov r3, r2, lsr #16
47587   ands  r3, r3, #255
47588   ldrne r5, [sp, #28]
47589   orrne r3, r5, r3
47590   strne r3, [r1, #24]
47591   movs  r3, r2, lsr #24
47592   ldrne r7, [sp, #28]
47593   orrne r3, r7, r3
47594   strne r3, [r1, #28]
47595 .L15340:
47596   add ip, ip, #1
47597   cmp ip, lr
47598   bne .L15722
47599   b .L13691
47600 .L15067:
47601   ands  r2, lr, #7
47602   mov r3, lr, lsr #3
47603   sub r0, r0, r3, asl #5
47604   ldreq r4, [sp, #108]
47605   bne .L15723
47606 .L15116:
47607   movs  r1, r1, lsr #3
47608   beq .L13691
47609   mov r2, #0
47610   b .L15126
47611 .L15724:
47612   sub r0, r0, #32
47613   add r4, r4, #32
47614 .L15126:
47615   ldr lr, [r0, #0]
47616   cmp lr, #0
47617   beq .L15127
47618   ands  r3, lr, #15
47619   ldrne ip, [sp, #28]
47620   orrne r3, ip, r3
47621   orrne r3, r6, r3
47622   strne r3, [r4, #28]
47623   mov r3, lr, lsr #4
47624   ands  r3, r3, #15
47625   ldrne r5, [sp, #28]
47626   orrne r3, r5, r3
47627   orrne r3, r6, r3
47628   strne r3, [r4, #24]
47629   mov r3, lr, lsr #8
47630   ands  r3, r3, #15
47631   ldrne r7, [sp, #28]
47632   orrne r3, r7, r3
47633   orrne r3, r6, r3
47634   strne r3, [r4, #20]
47635   mov r3, lr, lsr #12
47636   ands  r3, r3, #15
47637   ldrne r8, [sp, #28]
47638   orrne r3, r8, r3
47639   orrne r3, r6, r3
47640   strne r3, [r4, #16]
47641   mov r3, lr, lsr #16
47642   ands  r3, r3, #15
47643   ldrne ip, [sp, #28]
47644   orrne r3, ip, r3
47645   orrne r3, r6, r3
47646   strne r3, [r4, #12]
47647   mov r3, lr, lsr #20
47648   ands  r3, r3, #15
47649   ldrne r5, [sp, #28]
47650   orrne r3, r5, r3
47651   orrne r3, r6, r3
47652   strne r3, [r4, #8]
47653   mov r3, lr, lsr #24
47654   ands  r3, r3, #15
47655   ldrne r7, [sp, #28]
47656   orrne r3, r7, r3
47657   orrne r3, r6, r3
47658   strne r3, [r4, #4]
47659   movs  r3, lr, lsr #28
47660   ldrne r8, [sp, #28]
47661   orrne r3, r8, r3
47662   orrne r3, r6, r3
47663   strne r3, [r4, #0]
47664 .L15127:
47665   add r2, r2, #1
47666   cmp r1, r2
47667   bne .L15724
47668   b .L13691
47669 .L15723:
47670   rsbs  ip, r2, #8
47671   ldr lr, [r0, #0]
47672   ldreq r4, [sp, #108]
47673   beq .L15119
47674   mov r3, r2, asl #2
47675   mov lr, lr, asl r3
47676   mov r4, #0
47677 .L15120:
47678   ldr r5, [sp, #28]
47679   movs  r3, lr, lsr #28
47680   ldrne r7, [sp, #108]
47681   orr r3, r5, r3
47682   orr r3, r6, r3
47683   strne r3, [r7, r4, asl #2]
47684   add r4, r4, #1
47685   cmp ip, r4
47686   mov lr, lr, asl #4
47687   bne .L15120
47688   ldr r8, [sp, #108]
47689   add r4, r8, ip, asl #2
47690 .L15119:
47691   sub r0, r0, #32
47692   b .L15116
47693 .L15721:
47694   cmp r2, #3
47695   rsb ip, r2, #8
47696   bls .L15302
47697   cmp ip, #0
47698   ldr r1, [r0, #4]
47699   ldreq r1, [sp, #108]
47700   beq .L15306
47701   mov r3, r2, asl #3
47702   sub r3, r3, #32
47703   mov r2, r1, lsr r3
47704   mov r1, #0
47705 .L15307:
47706   ands  r3, r2, #255
47707   ldr r7, [sp, #28]
47708   ldrne r8, [sp, #108]
47709   orr r3, r7, r3
47710   strne r3, [r8, r1, asl #2]
47711   add r1, r1, #1
47712   cmp r1, ip
47713   mov r2, r2, lsr #8
47714   bne .L15307
47715   ldr r2, [sp, #108]
47716   add r1, r2, ip, asl #2
47717 .L15306:
47718   add r0, r0, #64
47719   b .L15301
47720 .L15719:
47721   rsbs  r5, r3, #8
47722   ldr r0, [r0, r1]
47723   ldreq r1, [sp, #108]
47724   beq .L14989
47725   mov r3, r3, asl #2
47726   mov r0, r0, lsr r3
47727   mov r2, #0
47728 .L14990:
47729   ldr r7, [sp, #28]
47730   ands  r3, r0, #15
47731   ldrne r8, [sp, #108]
47732   orr r3, r7, r3
47733   orr r3, r6, r3
47734   strne r3, [r8, r2, asl #2]
47735   add r2, r2, #1
47736   cmp r2, r5
47737   mov r0, r0, lsr #4
47738   bne .L14990
47739   ldr ip, [sp, #108]
47740   add r1, ip, r5, asl #2
47741 .L14989:
47742   add lr, lr, #32
47743   b .L14986
47744 .L15715:
47745   cmp r2, #3
47746   rsb r6, r2, #8
47747   bls .L14670
47748   cmp r6, #0
47749   ldr r1, [r4, #0]
47750   ldreq ip, [sp, #108]
47751   beq .L14674
47752   mov r3, r2, asl #3
47753   sub r3, r3, #32
47754   mov ip, r1, asl r3
47755   ldr lr, [sp, #108]
47756   mov r5, #0
47757 .L14675:
47758   movs  r0, ip, lsr #24
47759   beq .L14676
47760   ldr r2, [lr, #0]
47761   orr r1, r0, #768
47762   mov r3, r2, lsr #16
47763   orr r0, r0, #768
47764   mov r3, r3, asl #16
47765   tst r2, #256
47766   orr r3, r3, r1
47767   orr r0, r0, r2, asl #16
47768   strne r3, [lr, #0]
47769   streq r0, [lr, #0]
47770 .L14676:
47771   add r5, r5, #1
47772   cmp r5, r6
47773   mov ip, ip, asl #8
47774   add lr, lr, #4
47775   bne .L14675
47776   ldr r2, [sp, #108]
47777   add ip, r2, r6, asl #2
47778 .L14674:
47779   sub r4, r4, #64
47780   b .L14669
47781 .L15713:
47782   cmp r1, #3
47783   rsb ip, r1, #8
47784   bls .L15522
47785   cmp ip, #0
47786   ldr r0, [r2, #0]
47787   ldreq r0, [sp, #108]
47788   beq .L15526
47789   mov r3, r1, asl #3
47790   sub r3, r3, #32
47791   mov r1, r0, asl r3
47792   mov r0, #0
47793 .L15527:
47794   movs  r3, r1, lsr #24
47795   ldr r7, [sp, #28]
47796   ldrne r8, [sp, #108]
47797   orr r3, r7, r3
47798   strne r3, [r8, r0, asl #2]
47799   add r0, r0, #1
47800   cmp ip, r0
47801   mov r1, r1, asl #8
47802   bne .L15527
47803   ldr r1, [sp, #108]
47804   add r0, r1, ip, asl #2
47805 .L15526:
47806   sub r2, r2, #64
47807   b .L15521
47808 .L15717:
47809   rsbs  r7, r2, #8
47810   ldr r1, [ip, #0]
47811   ldreq lr, [sp, #108]
47812   beq .L14053
47813   mov r3, r2, asl #2
47814   mov lr, r1, asl r3
47815   ldr r4, [sp, #108]
47816   mov r5, #0
47817 .L14054:
47818   movs  r3, lr, lsr #28
47819   beq .L14055
47820   ldr r1, [r4, #0]
47821   orr r2, r6, r3
47822   mov r3, r1, lsr #16
47823   orr r0, r2, #768
47824   mov r3, r3, asl #16
47825   orr r2, r2, #768
47826   tst r1, #256
47827   orr r3, r3, r0
47828   orr r2, r2, r1, asl #16
47829   strne r3, [r4, #0]
47830   streq r2, [r4, #0]
47831 .L14055:
47832   add r5, r5, #1
47833   cmp r5, r7
47834   mov lr, lr, asl #4
47835   add r4, r4, #4
47836   bne .L14054
47837   ldr r0, [sp, #108]
47838   add lr, r0, r7, asl #2
47839 .L14053:
47840   sub ip, ip, #32
47841   b .L14050
47842 .L15711:
47843   rsbs  r7, r3, #8
47844   ldr r0, [r0, r1]
47845   ldreq ip, [sp, #108]
47846   beq .L13849
47847   mov r3, r3, asl #2
47848   mov ip, r0, lsr r3
47849   ldr lr, [sp, #108]
47850   mov r4, #0
47851 .L13850:
47852   ands  r3, ip, #15
47853   beq .L13851
47854   ldr r1, [lr, #0]
47855   orr r2, r6, r3
47856   mov r3, r1, lsr #16
47857   orr r0, r2, #768
47858   mov r3, r3, asl #16
47859   orr r2, r2, #768
47860   tst r1, #256
47861   orr r3, r3, r0
47862   orr r2, r2, r1, asl #16
47863   strne r3, [lr, #0]
47864   streq r2, [lr, #0]
47865 .L13851:
47866   add r4, r4, #1
47867   cmp r7, r4
47868   mov ip, ip, lsr #4
47869   add lr, lr, #4
47870   bne .L13850
47871   ldr lr, [sp, #108]
47872   add ip, lr, r7, asl #2
47873 .L13849:
47874   add r5, r5, #32
47875   b .L13846
47876 .L15709:
47877   cmp r2, #3
47878   rsb r6, r2, #8
47879   bls .L14334
47880   cmp r6, #0
47881   ldr r1, [r4, #4]
47882   ldreq r0, [sp, #108]
47883   beq .L14338
47884   mov r3, r2, asl #3
47885   sub r3, r3, #32
47886   mov ip, r1, lsr r3
47887   ldr lr, [sp, #108]
47888   mov r5, #0
47889 .L14339:
47890   ands  r0, ip, #255
47891   beq .L14340
47892   ldr r2, [lr, #0]
47893   orr r1, r0, #768
47894   mov r3, r2, lsr #16
47895   orr r0, r0, #768
47896   mov r3, r3, asl #16
47897   tst r2, #256
47898   orr r3, r3, r1
47899   orr r0, r0, r2, asl #16
47900   strne r3, [lr, #0]
47901   streq r0, [lr, #0]
47902 .L14340:
47903   add r5, r5, #1
47904   cmp r6, r5
47905   mov ip, ip, lsr #8
47906   add lr, lr, #4
47907   bne .L14339
47908   ldr r7, [sp, #108]
47909   add r0, r7, r6, asl #2
47910 .L14338:
47911   add r4, r4, #64
47912   b .L14333
47913 .L14185:
47914   ldr r2, [sp, #144]
47915   rsb r5, lr, #8
47916   cmp r2, r5
47917   bge .L14188
47918   cmp r2, #0
47919   ble .L13691
47920   cmp lr, #3
47921   bls .L14191
47922   mov r3, lr, asl #3
47923   ldr r2, [r7, #4]
47924   sub r3, r3, #32
47925   mov ip, r2, lsr r3
47926   ldr lr, [sp, #108]
47927   mov r4, #0
47928 .L14194:
47929   ands  r0, ip, #255
47930   beq .L14195
47931   ldr r2, [lr, #0]
47932   orr r1, r0, #768
47933   mov r3, r2, lsr #16
47934   orr r0, r0, #768
47935   mov r3, r3, asl #16
47936   tst r2, #256
47937   orr r3, r3, r1
47938   orr r0, r0, r2, asl #16
47939   strne r3, [lr, #0]
47940   streq r0, [lr, #0]
47941 .L14195:
47942   ldr r3, [sp, #144]
47943   add r4, r4, #1
47944   cmp r3, r4
47945   mov ip, ip, lsr #8
47946   add lr, lr, #4
47947   bne .L14194
47948   b .L13691
47949 .L15069:
47950   ldr r7, [sp, #144]
47951   rsb r5, r4, #8
47952   cmp r7, r5
47953   bge .L15072
47954   cmp r7, #0
47955   ble .L13691
47956   ldr r2, [r0, #0]
47957   mov r3, r4, asl #2
47958   mov r0, r2, asl r3
47959   mov r2, #0
47960 .L15076:
47961   ldr r8, [sp, #28]
47962   movs  r3, r0, lsr #28
47963   ldrne ip, [sp, #108]
47964   orr r3, r8, r3
47965   orr r3, r6, r3
47966   ldr lr, [sp, #144]
47967   strne r3, [ip, r2, asl #2]
47968   add r2, r2, #1
47969   cmp lr, r2
47970   mov r0, r0, asl #4
47971   bne .L15076
47972   b .L13691
47973 .L15419:
47974   ldr r7, [sp, #144]
47975   rsb r0, ip, #8
47976   cmp r7, r0
47977   bge .L15422
47978   cmp r7, #0
47979   ble .L13691
47980   cmp ip, #3
47981   bls .L15425
47982   ldr r2, [r6, #0]
47983   mov r3, ip, asl #3
47984   sub r3, r3, #32
47985   mov r2, r2, asl r3
47986   mov r1, #0
47987 .L15428:
47988   movs  r3, r2, lsr #24
47989   ldr r8, [sp, #28]
47990   ldrne ip, [sp, #108]
47991   orr r3, r8, r3
47992   ldr lr, [sp, #144]
47993   strne r3, [ip, r1, asl #2]
47994   add r1, r1, #1
47995   cmp lr, r1
47996   mov r2, r2, asl #8
47997   bne .L15428
47998   b .L13691
47999 .L13981:
48000   ldr r2, [sp, #144]
48001   rsb r7, r4, #8
48002   cmp r2, r7
48003   bge .L13984
48004   cmp r2, #0
48005   ble .L13691
48006   ldr r2, [ip, #0]
48007   mov r3, r4, asl #2
48008   mov ip, r2, asl r3
48009   ldr lr, [sp, #108]
48010   mov r4, #0
48011 .L13988:
48012   movs  r3, ip, lsr #28
48013   beq .L13989
48014   ldr r1, [lr, #0]
48015   orr r2, r6, r3
48016   mov r3, r1, lsr #16
48017   orr r0, r2, #768
48018   mov r3, r3, asl #16
48019   orr r2, r2, #768
48020   tst r1, #256
48021   orr r3, r3, r0
48022   orr r2, r2, r1, asl #16
48023   strne r3, [lr, #0]
48024   streq r2, [lr, #0]
48025 .L13989:
48026   ldr r3, [sp, #144]
48027   add r4, r4, #1
48028   cmp r3, r4
48029   mov ip, ip, asl #4
48030   add lr, lr, #4
48031   bne .L13988
48032   b .L13691
48033 .L14521:
48034   ldr r0, [sp, #144]
48035   rsb r5, lr, #8
48036   cmp r0, r5
48037   bge .L14524
48038   cmp r0, #0
48039   ble .L13691
48040   cmp lr, #3
48041   bls .L14527
48042   mov r3, lr, asl #3
48043   ldr r2, [r8, #0]
48044   sub r3, r3, #32
48045   mov ip, r2, asl r3
48046   ldr lr, [sp, #108]
48047   mov r4, #0
48048 .L14530:
48049   movs  r0, ip, lsr #24
48050   beq .L14531
48051   ldr r2, [lr, #0]
48052   orr r1, r0, #768
48053   mov r3, r2, lsr #16
48054   orr r0, r0, #768
48055   mov r3, r3, asl #16
48056   tst r2, #256
48057   orr r3, r3, r1
48058   orr r0, r0, r2, asl #16
48059   strne r3, [lr, #0]
48060   streq r0, [lr, #0]
48061 .L14531:
48062   ldr r1, [sp, #144]
48063   add r4, r4, #1
48064   cmp r1, r4
48065   mov ip, ip, asl #8
48066   add lr, lr, #4
48067   bne .L14530
48068   b .L13691
48069 .L14939:
48070   ldr r2, [sp, #144]
48071   rsb lr, r3, #8
48072   cmp r2, lr
48073   bge .L14942
48074   cmp r2, #0
48075   ble .L13691
48076   ldr r2, [r0, r1]
48077   mov r3, r3, asl #2
48078   mov r0, r2, lsr r3
48079   mov r2, #0
48080 .L14946:
48081   ldr r4, [sp, #28]
48082   ands  r3, r0, #15
48083   ldrne r5, [sp, #108]
48084   orr r3, r4, r3
48085   orr r3, r6, r3
48086   ldr r7, [sp, #144]
48087   strne r3, [r5, r2, asl #2]
48088   add r2, r2, #1
48089   cmp r7, r2
48090   mov r0, r0, lsr #4
48091   bne .L14946
48092   b .L13691
48093 .L13777:
48094   ldr r2, [sp, #144]
48095   rsb r5, r3, #8
48096   cmp r2, r5
48097   bge .L13780
48098   cmp r2, #0
48099   ble .L13691
48100   ldr r2, [r0, r1]
48101   mov r3, r3, asl #2
48102   mov ip, r2, lsr r3
48103   ldr lr, [sp, #108]
48104   mov r4, #0
48105 .L13784:
48106   ands  r3, ip, #15
48107   beq .L13785
48108   ldr r1, [lr, #0]
48109   orr r2, r6, r3
48110   mov r3, r1, lsr #16
48111   orr r0, r2, #768
48112   mov r3, r3, asl #16
48113   orr r2, r2, #768
48114   tst r1, #256
48115   orr r3, r3, r0
48116   orr r2, r2, r1, asl #16
48117   strne r3, [lr, #0]
48118   streq r2, [lr, #0]
48119 .L13785:
48120   ldr r3, [sp, #144]
48121   add r4, r4, #1
48122   cmp r3, r4
48123   mov ip, ip, lsr #4
48124   add lr, lr, #4
48125   bne .L13784
48126   b .L13691
48127 .L15199:
48128   ldr r5, [sp, #144]
48129   rsb r0, lr, #8
48130   cmp r5, r0
48131   bge .L15202
48132   cmp r5, #0
48133   ble .L13691
48134   cmp lr, #3
48135   bls .L15205
48136   ldr r2, [r6, #4]
48137   mov r3, lr, asl #3
48138   sub r3, r3, #32
48139   mov r1, r2, lsr r3
48140   mov r2, #0
48141 .L15208:
48142   ands  r3, r1, #255
48143   ldr r7, [sp, #28]
48144   ldrne r8, [sp, #108]
48145   orr r3, r7, r3
48146   ldr ip, [sp, #144]
48147   strne r3, [r8, r2, asl #2]
48148   add r2, r2, #1
48149   cmp ip, r2
48150   mov r1, r1, lsr #8
48151   bne .L15208
48152   b .L13691
48153 .L13984:
48154   cmp r7, #0
48155   ldr r2, [ip, #0]
48156   ldreq r5, [sp, #108]
48157   beq .L13996
48158   mov r3, r4, asl #2
48159   mov lr, r2, asl r3
48160   ldr r4, [sp, #108]
48161   mov r5, #0
48162 .L13997:
48163   movs  r3, lr, lsr #28
48164   beq .L13998
48165   ldr r1, [r4, #0]
48166   orr r2, r6, r3
48167   mov r3, r1, lsr #16
48168   orr r0, r2, #768
48169   mov r3, r3, asl #16
48170   orr r2, r2, #768
48171   tst r1, #256
48172   orr r3, r3, r0
48173   orr r2, r2, r1, asl #16
48174   strne r3, [r4, #0]
48175   streq r2, [r4, #0]
48176 .L13998:
48177   add r5, r5, #1
48178   cmp r7, r5
48179   mov lr, lr, asl #4
48180   add r4, r4, #4
48181   bne .L13997
48182   ldr r4, [sp, #108]
48183   add r5, r4, r7, asl #2
48184 .L13996:
48185   ldr r8, [sp, #144]
48186   sub ip, ip, #32
48187   rsb sl, r7, r8
48188   b .L13983
48189 .L14188:
48190   cmp lr, #3
48191   bls .L14226
48192   cmp r5, #0
48193   ldr r2, [r7, #4]
48194   ldreq r4, [sp, #108]
48195   beq .L14230
48196   mov r3, lr, asl #3
48197   sub r3, r3, #32
48198   mov ip, r2, lsr r3
48199   ldr lr, [sp, #108]
48200   mov r4, #0
48201 .L14231:
48202   ands  r0, ip, #255
48203   beq .L14232
48204   ldr r2, [lr, #0]
48205   orr r1, r0, #768
48206   mov r3, r2, lsr #16
48207   orr r0, r0, #768
48208   mov r3, r3, asl #16
48209   tst r2, #256
48210   orr r3, r3, r1
48211   orr r0, r0, r2, asl #16
48212   strne r3, [lr, #0]
48213   streq r0, [lr, #0]
48214 .L14232:
48215   add r4, r4, #1
48216   cmp r5, r4
48217   mov ip, ip, lsr #8
48218   add lr, lr, #4
48219   bne .L14231
48220   ldr r2, [sp, #108]
48221   add r4, r2, r5, asl #2
48222 .L14230:
48223   ldr r3, [sp, #144]
48224   add r7, r7, #64
48225   rsb r6, r5, r3
48226   b .L14187
48227 .L14524:
48228   cmp lr, #3
48229   bls .L14562
48230   cmp r5, #0
48231   ldr r2, [r8, #0]
48232   ldreq r4, [sp, #108]
48233   beq .L14566
48234   mov r3, lr, asl #3
48235   sub r3, r3, #32
48236   mov ip, r2, asl r3
48237   ldr lr, [sp, #108]
48238   mov r4, #0
48239 .L14567:
48240   movs  r0, ip, lsr #24
48241   beq .L14568
48242   ldr r2, [lr, #0]
48243   orr r1, r0, #768
48244   mov r3, r2, lsr #16
48245   orr r0, r0, #768
48246   mov r3, r3, asl #16
48247   tst r2, #256
48248   orr r3, r3, r1
48249   orr r0, r0, r2, asl #16
48250   strne r3, [lr, #0]
48251   streq r0, [lr, #0]
48252 .L14568:
48253   add r4, r4, #1
48254   cmp r5, r4
48255   mov ip, ip, asl #8
48256   add lr, lr, #4
48257   bne .L14567
48258   ldr lr, [sp, #108]
48259   add r4, lr, r5, asl #2
48260 .L14566:
48261   ldr r0, [sp, #144]
48262   sub r8, r8, #64
48263   rsb r7, r5, r0
48264   b .L14523
48265 .L15302:
48266   subs  r4, ip, #4
48267   ldr r1, [r0, #0]
48268   ldreq r1, [sp, #108]
48269   beq .L15314
48270   mov r3, r2, asl #3
48271   mov r2, r1, lsr r3
48272   mov r1, #0
48273 .L15315:
48274   ands  r3, r2, #255
48275   ldr r5, [sp, #28]
48276   ldrne r7, [sp, #108]
48277   orr r3, r5, r3
48278   strne r3, [r7, r1, asl #2]
48279   add r1, r1, #1
48280   cmp r4, r1
48281   mov r2, r2, lsr #8
48282   bne .L15315
48283   ldr r8, [sp, #108]
48284   add r3, r8, ip, asl #2
48285   sub r1, r3, #16
48286 .L15314:
48287   ldr r2, [r0, #4]
48288   cmp r2, #0
48289   beq .L15320
48290   ands  r3, r2, #255
48291   ldrne ip, [sp, #28]
48292   orrne r3, ip, r3
48293   strne r3, [r1, #0]
48294   mov r3, r2, lsr #8
48295   ands  r3, r3, #255
48296   ldrne r4, [sp, #28]
48297   orrne r3, r4, r3
48298   strne r3, [r1, #4]
48299   mov r3, r2, lsr #16
48300   ands  r3, r3, #255
48301   ldrne r5, [sp, #28]
48302   orrne r3, r5, r3
48303   strne r3, [r1, #8]
48304   movs  r3, r2, lsr #24
48305   ldrne r7, [sp, #28]
48306   orrne r3, r7, r3
48307   strne r3, [r1, #12]
48308 .L15320:
48309   add r1, r1, #16
48310   add r0, r0, #64
48311   b .L15301
48312 .L15522:
48313   subs  r4, ip, #4
48314   ldr r0, [r2, #4]
48315   ldreq r0, [sp, #108]
48316   beq .L15534
48317   mov r3, r1, asl #3
48318   sub r3, r3, #32
48319   mov r1, r0, asl r3
48320   mov r0, #0
48321 .L15535:
48322   movs  r3, r1, lsr #24
48323   ldr r5, [sp, #28]
48324   ldrne r7, [sp, #108]
48325   orr r3, r5, r3
48326   strne r3, [r7, r0, asl #2]
48327   add r0, r0, #1
48328   cmp r0, r4
48329   mov r1, r1, asl #8
48330   bne .L15535
48331   ldr r8, [sp, #108]
48332   add r3, r8, ip, asl #2
48333   sub r0, r3, #16
48334 .L15534:
48335   ldr r1, [r2, #0]
48336   cmp r1, #0
48337   beq .L15540
48338   ands  r3, r1, #255
48339   ldrne ip, [sp, #28]
48340   orrne r3, ip, r3
48341   strne r3, [r0, #12]
48342   mov r3, r1, lsr #8
48343   ands  r3, r3, #255
48344   ldrne r4, [sp, #28]
48345   orrne r3, r4, r3
48346   strne r3, [r0, #8]
48347   mov r3, r1, lsr #16
48348   ands  r3, r3, #255
48349   ldrne r5, [sp, #28]
48350   orrne r3, r5, r3
48351   strne r3, [r0, #4]
48352   movs  r3, r1, lsr #24
48353   ldrne r7, [sp, #28]
48354   orrne r3, r7, r3
48355   strne r3, [r0, #0]
48356 .L15540:
48357   add r0, r0, #16
48358   sub r2, r2, #64
48359   b .L15521
48360 .L15202:
48361   cmp lr, #3
48362   bls .L15232
48363   cmp r0, #0
48364   ldr r2, [r6, #4]
48365   ldreq r4, [sp, #108]
48366   beq .L15236
48367   mov r3, lr, asl #3
48368   sub r3, r3, #32
48369   mov r1, r2, lsr r3
48370   mov r2, #0
48371 .L15237:
48372   ands  r3, r1, #255
48373   ldr r7, [sp, #28]
48374   ldrne r8, [sp, #108]
48375   orr r3, r7, r3
48376   strne r3, [r8, r2, asl #2]
48377   add r2, r2, #1
48378   cmp r0, r2
48379   mov r1, r1, lsr #8
48380   bne .L15237
48381   ldr ip, [sp, #108]
48382   add r4, ip, r0, asl #2
48383 .L15236:
48384   ldr r1, [sp, #144]
48385   add r6, r6, #64
48386   rsb r5, r0, r1
48387   b .L15201
48388 .L13780:
48389   cmp r5, #0
48390   ldr r2, [r8, #0]
48391   ldreq r4, [sp, #108]
48392   beq .L13792
48393   mov r3, r3, asl #2
48394   mov ip, r2, lsr r3
48395   ldr lr, [sp, #108]
48396   mov r4, #0
48397 .L13793:
48398   ands  r3, ip, #15
48399   beq .L13794
48400   ldr r1, [lr, #0]
48401   orr r2, r6, r3
48402   mov r3, r1, lsr #16
48403   orr r0, r2, #768
48404   mov r3, r3, asl #16
48405   orr r2, r2, #768
48406   tst r1, #256
48407   orr r3, r3, r0
48408   orr r2, r2, r1, asl #16
48409   strne r3, [lr, #0]
48410   streq r2, [lr, #0]
48411 .L13794:
48412   add r4, r4, #1
48413   cmp r5, r4
48414   mov ip, ip, lsr #4
48415   add lr, lr, #4
48416   bne .L13793
48417   ldr r7, [sp, #108]
48418   add r4, r7, r5, asl #2
48419 .L13792:
48420   ldr ip, [sp, #144]
48421   add r8, r8, #32
48422   rsb sl, r5, ip
48423   b .L13779
48424 .L15422:
48425   cmp ip, #3
48426   bls .L15452
48427   cmp r0, #0
48428   ldr r2, [r6, #0]
48429   ldreq r4, [sp, #108]
48430   beq .L15456
48431   mov r3, ip, asl #3
48432   sub r3, r3, #32
48433   mov r2, r2, asl r3
48434   mov r1, #0
48435 .L15457:
48436   movs  r3, r2, lsr #24
48437   ldr r7, [sp, #28]
48438   ldrne r8, [sp, #108]
48439   orr r3, r7, r3
48440   strne r3, [r8, r1, asl #2]
48441   add r1, r1, #1
48442   cmp r0, r1
48443   mov r2, r2, asl #8
48444   bne .L15457
48445   ldr ip, [sp, #108]
48446   add r4, ip, r0, asl #2
48447 .L15456:
48448   ldr r3, [sp, #144]
48449   sub r6, r6, #64
48450   rsb r5, r0, r3
48451   b .L15421
48452 .L15072:
48453   cmp r5, #0
48454   ldr r2, [r0, #0]
48455   ldreq r1, [sp, #108]
48456   beq .L15082
48457   mov r3, r4, asl #2
48458   mov lr, r2, asl r3
48459   mov r4, #0
48460 .L15083:
48461   ldr r1, [sp, #28]
48462   movs  r3, lr, lsr #28
48463   ldrne r2, [sp, #108]
48464   orr r3, r1, r3
48465   orr r3, r6, r3
48466   strne r3, [r2, r4, asl #2]
48467   add r4, r4, #1
48468   cmp r5, r4
48469   mov lr, lr, asl #4
48470   bne .L15083
48471   ldr r3, [sp, #108]
48472   add r1, r3, r5, asl #2
48473 .L15082:
48474   ldr r4, [sp, #144]
48475   sub r0, r0, #32
48476   rsb r2, r5, r4
48477   b .L15071
48478 .L14334:
48479   subs  r7, r6, #4
48480   ldr r1, [r4, #0]
48481   ldreq r2, [sp, #108]
48482   beq .L14348
48483   mov r3, r2, asl #3
48484   mov ip, r1, lsr r3
48485   ldr lr, [sp, #108]
48486   mov r5, #0
48487 .L14349:
48488   ands  r0, ip, #255
48489   beq .L14350
48490   ldr r2, [lr, #0]
48491   orr r1, r0, #768
48492   mov r3, r2, lsr #16
48493   orr r0, r0, #768
48494   mov r3, r3, asl #16
48495   tst r2, #256
48496   orr r3, r3, r1
48497   orr r0, r0, r2, asl #16
48498   strne r3, [lr, #0]
48499   streq r0, [lr, #0]
48500 .L14350:
48501   add r5, r5, #1
48502   cmp r7, r5
48503   mov ip, ip, lsr #8
48504   add lr, lr, #4
48505   bne .L14349
48506   ldr r5, [sp, #108]
48507   add r3, r5, r6, asl #2
48508   sub r2, r3, #16
48509 .L14348:
48510   ldr r1, [r4, #4]
48511   cmp r1, #0
48512   beq .L14356
48513   ands  r0, r1, #255
48514   beq .L14358
48515   ldr r3, [r2, #0]
48516   tst r3, #256
48517   movne r3, r3, lsr #16
48518   movne r3, r3, asl #16
48519   orrne r3, r3, #768
48520   orreq r3, r0, r3, asl #16
48521   orrne r3, r0, r3
48522   orreq r3, r3, #768
48523   strne r3, [r2, #0]
48524   streq r3, [r2, #0]
48525 .L14358:
48526   mov r3, r1, lsr #8
48527   ands  r0, r3, #255
48528   beq .L14362
48529   ldr r3, [r2, #4]
48530   tst r3, #256
48531   movne r3, r3, lsr #16
48532   movne r3, r3, asl #16
48533   orrne r3, r3, #768
48534   orreq r3, r0, r3, asl #16
48535   orrne r3, r0, r3
48536   orreq r3, r3, #768
48537   strne r3, [r2, #4]
48538   streq r3, [r2, #4]
48539 .L14362:
48540   mov r3, r1, lsr #16
48541   ands  r0, r3, #255
48542   beq .L14366
48543   ldr r3, [r2, #8]
48544   tst r3, #256
48545   movne r3, r3, lsr #16
48546   movne r3, r3, asl #16
48547   orrne r3, r3, #768
48548   orreq r3, r0, r3, asl #16
48549   orrne r3, r0, r3
48550   orreq r3, r3, #768
48551   strne r3, [r2, #8]
48552   streq r3, [r2, #8]
48553 .L14366:
48554   movs  r1, r1, lsr #24
48555   beq .L14356
48556   ldr r3, [r2, #12]
48557   tst r3, #256
48558   movne r3, r3, lsr #16
48559   movne r3, r3, asl #16
48560   orrne r3, r3, #768
48561   orrne r3, r1, r3
48562   strne r3, [r2, #12]
48563   orreq r3, r1, r3, asl #16
48564   orreq r3, r3, #768
48565   streq r3, [r2, #12]
48566 .L14356:
48567   add r0, r2, #16
48568   add r4, r4, #64
48569   b .L14333
48570 .L14670:
48571   subs  r7, r6, #4
48572   ldr r1, [r4, #4]
48573   ldreq r2, [sp, #108]
48574   beq .L14684
48575   mov r3, r2, asl #3
48576   sub r3, r3, #32
48577   mov ip, r1, asl r3
48578   ldr lr, [sp, #108]
48579   mov r5, #0
48580 .L14685:
48581   movs  r0, ip, lsr #24
48582   beq .L14686
48583   ldr r2, [lr, #0]
48584   orr r1, r0, #768
48585   mov r3, r2, lsr #16
48586   orr r0, r0, #768
48587   mov r3, r3, asl #16
48588   tst r2, #256
48589   orr r3, r3, r1
48590   orr r0, r0, r2, asl #16
48591   strne r3, [lr, #0]
48592   streq r0, [lr, #0]
48593 .L14686:
48594   add r5, r5, #1
48595   cmp r5, r7
48596   mov ip, ip, asl #8
48597   add lr, lr, #4
48598   bne .L14685
48599   ldr r1, [sp, #108]
48600   add r3, r1, r6, asl #2
48601   sub r2, r3, #16
48602 .L14684:
48603   ldr r1, [r4, #0]
48604   cmp r1, #0
48605   beq .L14692
48606   ands  r0, r1, #255
48607   beq .L14694
48608   ldr r3, [r2, #12]
48609   tst r3, #256
48610   movne r3, r3, lsr #16
48611   movne r3, r3, asl #16
48612   orrne r3, r3, #768
48613   orreq r3, r0, r3, asl #16
48614   orrne r3, r0, r3
48615   orreq r3, r3, #768
48616   strne r3, [r2, #12]
48617   streq r3, [r2, #12]
48618 .L14694:
48619   mov r3, r1, lsr #8
48620   ands  r0, r3, #255
48621   beq .L14698
48622   ldr r3, [r2, #8]
48623   tst r3, #256
48624   movne r3, r3, lsr #16
48625   movne r3, r3, asl #16
48626   orrne r3, r3, #768
48627   orreq r3, r0, r3, asl #16
48628   orrne r3, r0, r3
48629   orreq r3, r3, #768
48630   strne r3, [r2, #8]
48631   streq r3, [r2, #8]
48632 .L14698:
48633   mov r3, r1, lsr #16
48634   ands  r0, r3, #255
48635   beq .L14702
48636   ldr r3, [r2, #4]
48637   tst r3, #256
48638   movne r3, r3, lsr #16
48639   movne r3, r3, asl #16
48640   orrne r3, r3, #768
48641   orreq r3, r0, r3, asl #16
48642   orrne r3, r0, r3
48643   orreq r3, r3, #768
48644   strne r3, [r2, #4]
48645   streq r3, [r2, #4]
48646 .L14702:
48647   movs  r1, r1, lsr #24
48648   beq .L14692
48649   ldr r3, [r2, #0]
48650   tst r3, #256
48651   movne r3, r3, lsr #16
48652   movne r3, r3, asl #16
48653   orrne r3, r3, #768
48654   orrne r3, r1, r3
48655   strne r3, [r2, #0]
48656   orreq r3, r1, r3, asl #16
48657   orreq r3, r3, #768
48658   streq r3, [r2, #0]
48659 .L14692:
48660   add ip, r2, #16
48661   sub r4, r4, #64
48662   b .L14669
48663 .L14942:
48664   cmp lr, #0
48665   ldr r2, [r4, #0]
48666   ldreq r7, [sp, #108]
48667   beq .L14952
48668   mov r3, r3, asl #2
48669   mov r2, r2, lsr r3
48670   mov r1, #0
48671 .L14953:
48672   ldr r8, [sp, #28]
48673   ands  r3, r2, #15
48674   ldrne ip, [sp, #108]
48675   orr r3, r8, r3
48676   orr r3, r6, r3
48677   strne r3, [ip, r1, asl #2]
48678   add r1, r1, #1
48679   cmp lr, r1
48680   mov r2, r2, lsr #4
48681   bne .L14953
48682   ldr r0, [sp, #108]
48683   add r7, r0, lr, asl #2
48684 .L14952:
48685   ldr r1, [sp, #144]
48686   add r4, r4, #32
48687   rsb r5, lr, r1
48688   b .L14941
48689 .L15726:
48690   mov ip, fp
48691   b .L15672
48692 .L15725:
48693   ldr ip, [sp, #12]
48694   b .L15660
48695 .L15728:
48696   ldr lr, [sp, #16]
48697   b .L15662
48698 .L15452:
48699   subs  lr, r0, #4
48700   ldr r2, [r6, #4]
48701   ldreq r1, [sp, #108]
48702   beq .L15464
48703   mov r3, ip, asl #3
48704   sub r3, r3, #32
48705   mov r2, r2, asl r3
48706   mov r1, #0
48707 .L15465:
48708   movs  r3, r2, lsr #24
48709   ldr r4, [sp, #28]
48710   ldrne r5, [sp, #108]
48711   orr r3, r4, r3
48712   strne r3, [r5, r1, asl #2]
48713   add r1, r1, #1
48714   cmp r1, lr
48715   mov r2, r2, asl #8
48716   bne .L15465
48717   ldr r7, [sp, #108]
48718   add r3, r7, r0, asl #2
48719   sub r1, r3, #16
48720 .L15464:
48721   ldr r2, [r6, #0]
48722   cmp r2, #0
48723   beq .L15470
48724   ands  r3, r2, #255
48725   ldrne r8, [sp, #28]
48726   orrne r3, r8, r3
48727   strne r3, [r1, #12]
48728   mov r3, r2, lsr #8
48729   ands  r3, r3, #255
48730   ldrne ip, [sp, #28]
48731   orrne r3, ip, r3
48732   strne r3, [r1, #8]
48733   mov r3, r2, lsr #16
48734   ands  r3, r3, #255
48735   ldrne lr, [sp, #28]
48736   orrne r3, lr, r3
48737   strne r3, [r1, #4]
48738   movs  r3, r2, lsr #24
48739   ldrne r2, [sp, #28]
48740   orrne r3, r2, r3
48741   strne r3, [r1, #0]
48742 .L15470:
48743   add r4, r1, #16
48744   b .L15456
48745 .L15232:
48746   subs  ip, r0, #4
48747   ldr r2, [r6, #0]
48748   ldreq r1, [sp, #108]
48749   beq .L15244
48750   mov r3, lr, asl #3
48751   mov r1, r2, lsr r3
48752   mov r2, #0
48753 .L15245:
48754   ands  r3, r1, #255
48755   ldr lr, [sp, #28]
48756   ldrne r4, [sp, #108]
48757   orr r3, lr, r3
48758   strne r3, [r4, r2, asl #2]
48759   add r2, r2, #1
48760   cmp ip, r2
48761   mov r1, r1, lsr #8
48762   bne .L15245
48763   ldr r5, [sp, #108]
48764   add r3, r5, r0, asl #2
48765   sub r1, r3, #16
48766 .L15244:
48767   ldr r2, [r6, #4]
48768   cmp r2, #0
48769   beq .L15250
48770   ands  r3, r2, #255
48771   ldrne r7, [sp, #28]
48772   orrne r3, r7, r3
48773   strne r3, [r1, #0]
48774   mov r3, r2, lsr #8
48775   ands  r3, r3, #255
48776   ldrne r8, [sp, #28]
48777   orrne r3, r8, r3
48778   strne r3, [r1, #4]
48779   mov r3, r2, lsr #16
48780   ands  r3, r3, #255
48781   ldrne ip, [sp, #28]
48782   orrne r3, ip, r3
48783   strne r3, [r1, #8]
48784   movs  r3, r2, lsr #24
48785   ldrne lr, [sp, #28]
48786   orrne r3, lr, r3
48787   strne r3, [r1, #12]
48788 .L15250:
48789   add r4, r1, #16
48790   b .L15236
48791 .L14562:
48792   subs  r6, r5, #4
48793   ldr r2, [r8, #4]
48794   ldreq r2, [sp, #108]
48795   beq .L14576
48796   mov r3, lr, asl #3
48797   sub r3, r3, #32
48798   mov ip, r2, asl r3
48799   ldr lr, [sp, #108]
48800   mov r4, #0
48801 .L14577:
48802   movs  r0, ip, lsr #24
48803   beq .L14578
48804   ldr r2, [lr, #0]
48805   orr r1, r0, #768
48806   mov r3, r2, lsr #16
48807   orr r0, r0, #768
48808   mov r3, r3, asl #16
48809   tst r2, #256
48810   orr r3, r3, r1
48811   orr r0, r0, r2, asl #16
48812   strne r3, [lr, #0]
48813   streq r0, [lr, #0]
48814 .L14578:
48815   add r4, r4, #1
48816   cmp r6, r4
48817   mov ip, ip, asl #8
48818   add lr, lr, #4
48819   bne .L14577
48820   ldr ip, [sp, #108]
48821   add r3, ip, r5, asl #2
48822   sub r2, r3, #16
48823 .L14576:
48824   ldr r1, [r8, #0]
48825   cmp r1, #0
48826   beq .L14584
48827   ands  r0, r1, #255
48828   beq .L14586
48829   ldr r3, [r2, #12]
48830   tst r3, #256
48831   movne r3, r3, lsr #16
48832   movne r3, r3, asl #16
48833   orrne r3, r3, #768
48834   orreq r3, r0, r3, asl #16
48835   orrne r3, r0, r3
48836   orreq r3, r3, #768
48837   strne r3, [r2, #12]
48838   streq r3, [r2, #12]
48839 .L14586:
48840   mov r3, r1, lsr #8
48841   ands  r0, r3, #255
48842   beq .L14590
48843   ldr r3, [r2, #8]
48844   tst r3, #256
48845   movne r3, r3, lsr #16
48846   movne r3, r3, asl #16
48847   orrne r3, r3, #768
48848   orreq r3, r0, r3, asl #16
48849   orrne r3, r0, r3
48850   orreq r3, r3, #768
48851   strne r3, [r2, #8]
48852   streq r3, [r2, #8]
48853 .L14590:
48854   mov r3, r1, lsr #16
48855   ands  r0, r3, #255
48856   beq .L14594
48857   ldr r3, [r2, #4]
48858   tst r3, #256
48859   movne r3, r3, lsr #16
48860   movne r3, r3, asl #16
48861   orrne r3, r3, #768
48862   orreq r3, r0, r3, asl #16
48863   orrne r3, r0, r3
48864   orreq r3, r3, #768
48865   strne r3, [r2, #4]
48866   streq r3, [r2, #4]
48867 .L14594:
48868   movs  r1, r1, lsr #24
48869   beq .L14584
48870   ldr r3, [r2, #0]
48871   tst r3, #256
48872   movne r3, r3, lsr #16
48873   movne r3, r3, asl #16
48874   orrne r3, r3, #768
48875   orrne r3, r1, r3
48876   strne r3, [r2, #0]
48877   orreq r3, r1, r3, asl #16
48878   orreq r3, r3, #768
48879   streq r3, [r2, #0]
48880 .L14584:
48881   add r4, r2, #16
48882   b .L14566
48883 .L14226:
48884   subs  r6, r5, #4
48885   ldr r2, [r7, #0]
48886   ldreq r2, [sp, #108]
48887   beq .L14240
48888   mov r3, lr, asl #3
48889   mov ip, r2, lsr r3
48890   ldr lr, [sp, #108]
48891   mov r4, #0
48892 .L14241:
48893   ands  r0, ip, #255
48894   beq .L14242
48895   ldr r2, [lr, #0]
48896   orr r1, r0, #768
48897   mov r3, r2, lsr #16
48898   orr r0, r0, #768
48899   mov r3, r3, asl #16
48900   tst r2, #256
48901   orr r3, r3, r1
48902   orr r0, r0, r2, asl #16
48903   strne r3, [lr, #0]
48904   streq r0, [lr, #0]
48905 .L14242:
48906   add r4, r4, #1
48907   cmp r4, r6
48908   mov ip, ip, lsr #8
48909   add lr, lr, #4
48910   bne .L14241
48911   ldr r1, [sp, #108]
48912   add r3, r1, r5, asl #2
48913   sub r2, r3, #16
48914 .L14240:
48915   ldr r1, [r7, #4]
48916   cmp r1, #0
48917   beq .L14248
48918   ands  r0, r1, #255
48919   beq .L14250
48920   ldr r3, [r2, #0]
48921   tst r3, #256
48922   movne r3, r3, lsr #16
48923   movne r3, r3, asl #16
48924   orrne r3, r3, #768
48925   orreq r3, r0, r3, asl #16
48926   orrne r3, r0, r3
48927   orreq r3, r3, #768
48928   strne r3, [r2, #0]
48929   streq r3, [r2, #0]
48930 .L14250:
48931   mov r3, r1, lsr #8
48932   ands  r0, r3, #255
48933   beq .L14254
48934   ldr r3, [r2, #4]
48935   tst r3, #256
48936   movne r3, r3, lsr #16
48937   movne r3, r3, asl #16
48938   orrne r3, r3, #768
48939   orreq r3, r0, r3, asl #16
48940   orrne r3, r0, r3
48941   orreq r3, r3, #768
48942   strne r3, [r2, #4]
48943   streq r3, [r2, #4]
48944 .L14254:
48945   mov r3, r1, lsr #16
48946   ands  r0, r3, #255
48947   beq .L14258
48948   ldr r3, [r2, #8]
48949   tst r3, #256
48950   movne r3, r3, lsr #16
48951   movne r3, r3, asl #16
48952   orrne r3, r3, #768
48953   orreq r3, r0, r3, asl #16
48954   orrne r3, r0, r3
48955   orreq r3, r3, #768
48956   strne r3, [r2, #8]
48957   streq r3, [r2, #8]
48958 .L14258:
48959   movs  r1, r1, lsr #24
48960   beq .L14248
48961   ldr r3, [r2, #12]
48962   tst r3, #256
48963   movne r3, r3, lsr #16
48964   movne r3, r3, asl #16
48965   orrne r3, r3, #768
48966   orrne r3, r1, r3
48967   strne r3, [r2, #12]
48968   orreq r3, r1, r3, asl #16
48969   orreq r3, r3, #768
48970   streq r3, [r2, #12]
48971 .L14248:
48972   add r4, r2, #16
48973   b .L14230
48974 .L15205:
48975   ldr r0, [sp, #144]
48976   ldr r3, [r6, #0]
48977   add r2, r0, lr
48978   cmp r2, #4
48979   mov r1, lr, asl #3
48980   mov r2, r3, lsr r1
48981   bhi .L15212
48982   cmp r0, #0
48983   movne r1, #0
48984   beq .L13691
48985 .L15228:
48986   ands  r3, r2, #255
48987   ldr r0, [sp, #28]
48988   ldrne r4, [sp, #108]
48989   orr r3, r0, r3
48990   ldr r5, [sp, #144]
48991   strne r3, [r4, r1, asl #2]
48992   add r1, r1, #1
48993   cmp r5, r1
48994   mov r2, r2, lsr #8
48995   bne .L15228
48996   b .L13691
48997 .L14527:
48998   ldr r4, [sp, #144]
48999   mov r3, lr, asl #3
49000   ldr r1, [r8, #4]
49001   add r2, r4, lr
49002   sub r3, r3, #32
49003   cmp r2, #4
49004   mov ip, r1, asl r3
49005   bhi .L14536
49006   cmp r4, #0
49007   ldrne lr, [sp, #108]
49008   movne r4, #0
49009   beq .L13691
49010 .L14556:
49011   movs  r0, ip, lsr #24
49012   beq .L14557
49013   ldr r2, [lr, #0]
49014   orr r1, r0, #768
49015   mov r3, r2, lsr #16
49016   orr r0, r0, #768
49017   mov r3, r3, asl #16
49018   tst r2, #256
49019   orr r3, r3, r1
49020   orr r0, r0, r2, asl #16
49021   strne r3, [lr, #0]
49022   streq r0, [lr, #0]
49023 .L14557:
49024   ldr r8, [sp, #144]
49025   add r4, r4, #1
49026   cmp r8, r4
49027   mov ip, ip, asl #8
49028   add lr, lr, #4
49029   bne .L14556
49030   b .L13691
49031 .L15425:
49032   ldr r0, [sp, #144]
49033   mov r3, ip, asl #3
49034   ldr r1, [r6, #4]
49035   add r2, r0, ip
49036   sub r3, r3, #32
49037   cmp r2, #4
49038   mov r1, r1, asl r3
49039   bhi .L15432
49040   cmp r0, #0
49041   movne r2, #0
49042   beq .L13691
49043 .L15448:
49044   movs  r3, r1, lsr #24
49045   ldr r0, [sp, #28]
49046   ldrne r4, [sp, #108]
49047   orr r3, r0, r3
49048   ldr r5, [sp, #144]
49049   strne r3, [r4, r2, asl #2]
49050   add r2, r2, #1
49051   cmp r5, r2
49052   mov r1, r1, asl #8
49053   bne .L15448
49054   b .L13691
49055 .L14191:
49056   ldr r4, [sp, #144]
49057   ldr r3, [r7, #0]
49058   add r2, r4, lr
49059   mov r1, lr, asl #3
49060   cmp r2, #4
49061   mov ip, r3, lsr r1
49062   bhi .L14200
49063   cmp r4, #0
49064   ldrne lr, [sp, #108]
49065   movne r4, #0
49066   beq .L13691
49067 .L14220:
49068   ands  r0, ip, #255
49069   beq .L14221
49070   ldr r2, [lr, #0]
49071   orr r1, r0, #768
49072   mov r3, r2, lsr #16
49073   orr r0, r0, #768
49074   mov r3, r3, asl #16
49075   tst r2, #256
49076   orr r3, r3, r1
49077   orr r0, r0, r2, asl #16
49078   strne r3, [lr, #0]
49079   streq r0, [lr, #0]
49080 .L14221:
49081   ldr r0, [sp, #144]
49082   add r4, r4, #1
49083   cmp r0, r4
49084   mov ip, ip, lsr #8
49085   add lr, lr, #4
49086   bne .L14220
49087   b .L13691
49088 .L14200:
49089   rsbs  r4, lr, #4
49090   ldreq lr, [sp, #108]
49091   beq .L14205
49092   ldr lr, [sp, #108]
49093   mov r5, #0
49094 .L14206:
49095   ands  r0, ip, #255
49096   beq .L14207
49097   ldr r2, [lr, #0]
49098   orr r1, r0, #768
49099   mov r3, r2, lsr #16
49100   orr r0, r0, #768
49101   mov r3, r3, asl #16
49102   tst r2, #256
49103   orr r3, r3, r1
49104   orr r0, r0, r2, asl #16
49105   strne r3, [lr, #0]
49106   streq r0, [lr, #0]
49107 .L14207:
49108   add r5, r5, #1
49109   cmp r5, r4
49110   mov ip, ip, lsr #8
49111   add lr, lr, #4
49112   bne .L14206
49113   ldr r5, [sp, #108]
49114   add lr, r5, r4, asl #2
49115 .L14205:
49116   ldr r8, [sp, #144]
49117   ldr ip, [r7, #4]
49118   subs  r5, r8, r4
49119   beq .L13691
49120   mov r4, #0
49121 .L14214:
49122   ands  r0, ip, #255
49123   beq .L14215
49124   ldr r2, [lr, #0]
49125   orr r1, r0, #768
49126   mov r3, r2, lsr #16
49127   orr r0, r0, #768
49128   mov r3, r3, asl #16
49129   tst r2, #256
49130   orr r3, r3, r1
49131   orr r0, r0, r2, asl #16
49132   strne r3, [lr, #0]
49133   streq r0, [lr, #0]
49134 .L14215:
49135   add r4, r4, #1
49136   cmp r4, r5
49137   mov ip, ip, lsr #8
49138   add lr, lr, #4
49139   bne .L14214
49140   b .L13691
49141 .L15432:
49142   rsbs  r0, ip, #4
49143   ldreq ip, [sp, #108]
49144   beq .L15437
49145   mov r2, #0
49146 .L15438:
49147   movs  r3, r1, lsr #24
49148   ldr r4, [sp, #28]
49149   ldrne r5, [sp, #108]
49150   orr r3, r4, r3
49151   strne r3, [r5, r2, asl #2]
49152   add r2, r2, #1
49153   cmp r2, r0
49154   mov r1, r1, asl #8
49155   bne .L15438
49156   ldr r7, [sp, #108]
49157   add ip, r7, r0, asl #2
49158 .L15437:
49159   ldr r8, [sp, #144]
49160   ldr r2, [r6, #0]
49161   subs  r0, r8, r0
49162   beq .L13691
49163   mov r1, #0
49164 .L15444:
49165   ldr lr, [sp, #28]
49166   movs  r3, r2, lsr #24
49167   orr r3, lr, r3
49168   strne r3, [ip, r1, asl #2]
49169   add r1, r1, #1
49170   cmp r1, r0
49171   mov r2, r2, asl #8
49172   bne .L15444
49173   b .L13691
49174 .L14536:
49175   rsbs  r4, lr, #4
49176   ldreq lr, [sp, #108]
49177   beq .L14541
49178   ldr lr, [sp, #108]
49179   mov r5, #0
49180 .L14542:
49181   movs  r0, ip, lsr #24
49182   beq .L14543
49183   ldr r2, [lr, #0]
49184   orr r1, r0, #768
49185   mov r3, r2, lsr #16
49186   orr r0, r0, #768
49187   mov r3, r3, asl #16
49188   tst r2, #256
49189   orr r3, r3, r1
49190   orr r0, r0, r2, asl #16
49191   strne r3, [lr, #0]
49192   streq r0, [lr, #0]
49193 .L14543:
49194   add r5, r5, #1
49195   cmp r4, r5
49196   mov ip, ip, asl #8
49197   add lr, lr, #4
49198   bne .L14542
49199   ldr r5, [sp, #108]
49200   add lr, r5, r4, asl #2
49201 .L14541:
49202   ldr r7, [sp, #144]
49203   ldr ip, [r8, #0]
49204   subs  r5, r7, r4
49205   beq .L13691
49206   mov r4, #0
49207 .L14550:
49208   movs  r0, ip, lsr #24
49209   beq .L14551
49210   ldr r2, [lr, #0]
49211   orr r1, r0, #768
49212   mov r3, r2, lsr #16
49213   orr r0, r0, #768
49214   mov r3, r3, asl #16
49215   tst r2, #256
49216   orr r3, r3, r1
49217   orr r0, r0, r2, asl #16
49218   strne r3, [lr, #0]
49219   streq r0, [lr, #0]
49220 .L14551:
49221   add r4, r4, #1
49222   cmp r4, r5
49223   mov ip, ip, asl #8
49224   add lr, lr, #4
49225   bne .L14550
49226   b .L13691
49227 .L15212:
49228   rsbs  r0, lr, #4
49229   ldreq ip, [sp, #108]
49230   beq .L15217
49231   mov r1, #0
49232 .L15218:
49233   ands  r3, r2, #255
49234   ldr r4, [sp, #28]
49235   ldrne r5, [sp, #108]
49236   orr r3, r4, r3
49237   strne r3, [r5, r1, asl #2]
49238   add r1, r1, #1
49239   cmp r1, r0
49240   mov r2, r2, lsr #8
49241   bne .L15218
49242   ldr r7, [sp, #108]
49243   add ip, r7, r0, asl #2
49244 .L15217:
49245   ldr r8, [sp, #144]
49246   ldr r2, [r6, #4]
49247   subs  r0, r8, r0
49248   beq .L13691
49249   mov r1, #0
49250 .L15224:
49251   ldr lr, [sp, #28]
49252   ands  r3, r2, #255
49253   orr r3, lr, r3
49254   strne r3, [ip, r1, asl #2]
49255   add r1, r1, #1
49256   cmp r1, r0
49257   mov r2, r2, lsr #8
49258   bne .L15224
49259   b .L13691
49260   .size render_scanline_obj_partial_alpha_1D, .-render_scanline_obj_partial_alpha_1D
49261   .align  2
49262   .global render_scanline_obj_partial_alpha_2D
49263   .type render_scanline_obj_partial_alpha_2D, %function
49264 render_scanline_obj_partial_alpha_2D:
49265   @ args = 0, pretend = 0, frame = 140
49266   @ frame_needed = 0, uses_anonymous_args = 0
49267   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
49268   ldr ip, .L17801
49269   sub sp, sp, #140
49270   ldrh  r4, [ip, #6]
49271   add r0, r0, r0, asl #2
49272   str r4, [sp, #60]
49273   ldr r5, [sp, #60]
49274   ldrh  r4, [ip, #80]
49275   ldr ip, .L17801+4
49276   add r0, r5, r0, asl #5
49277   ldr ip, [ip, r0, asl #2]
49278   mov lr, r4, lsr #11
49279   and lr, lr, #2
49280   mov r4, r4, asl #27
49281   str ip, [sp, #64]
49282   orr lr, lr, r4, lsr #31
49283   cmp ip, #0
49284   ldr ip, .L17801+8
49285   mov lr, lr, asl #9
49286   add r0, ip, r0, asl #7
49287   orr lr, lr, #256
49288   str r0, [sp, #68]
49289   str r1, [sp, #12]
49290   str r2, [sp, #8]
49291   str r3, [sp, #4]
49292   str lr, [sp, #52]
49293   beq .L17699
49294   mov ip, #0
49295   add r7, r3, r1, asl #2
49296   rsb r8, r1, r2
49297   str r7, [sp, #96]
49298   str r8, [sp, #128]
49299   str ip, [sp, #56]
49300   mov lr, ip
49301 .L15740:
49302   ldr r0, [sp, #68]
49303   ldr r1, .L17801+12
49304   ldrb  r3, [lr, r0]  @ zero_extendqisi2
49305   mov r3, r3, asl #3
49306   ldrh  r4, [r3, r1]
49307   add r3, r3, r1
49308   ldrh  r1, [r3, #2]
49309   mov ip, r4, lsr #12
49310   and r2, ip, #12
49311   orr r0, r2, r1, lsr #14
49312   and r5, r4, #255
49313   mov r2, r1, asl #23
49314   cmp r5, #160
49315   ldrh  lr, [r3, #4]
49316   mov r6, r2, asr #23
49317   ldr r3, .L17801+16
49318   ldr r2, .L17801+20
49319   subgt r5, r5, #256
49320   tst r4, #3072
49321   ldr sl, [r2, r0, asl #2]
49322   ldr r8, [r3, r0, asl #2]
49323   beq .L15743
49324   tst r4, #256
49325   beq .L15745
49326   tst r4, #8192
49327   beq .L15747
49328   tst r4, #512
49329   mov r3, r1, lsr #4
49330   ldr r4, .L17801+12
49331   and r3, r3, #992
49332   add r3, r3, r4
49333   add r2, sl, sl, lsr #31
49334   ldrh  r7, [r3, #30]
49335   mov r4, r2, asr #1
49336   add r1, r8, r8, lsr #31
49337   ldr r2, [sp, #12]
49338   mov r9, r1, asr #1
49339   ldrh  fp, [r3, #6]
49340   ldrh  r1, [r3, #14]
49341   ldrh  r3, [r3, #22]
49342   str r7, [sp, #20]
49343   moveq ip, r4
49344   moveq r7, sl
49345   moveq r0, r9
49346   movne r7, sl, asl #1
49347   movne ip, r4, asl #1
49348   movne r0, r9, asl #1
49349   cmp r6, r2
49350   str r3, [sp, #16]
49351   bge .L15752
49352   rsb r2, r6, r2
49353   rsb r7, r2, r7
49354   cmp r7, #0
49355   ble .L15754
49356   ldr r6, [sp, #12]
49357   rsb ip, r2, ip
49358 .L15752:
49359   ldr r2, [sp, #8]
49360   add r3, r6, r7
49361   cmp r3, r2
49362   blt .L15756
49363   rsb r7, r6, r2
49364   cmp r7, #0
49365   ble .L15754
49366 .L15756:
49367   add r0, r5, r0
49368   ldr r5, [sp, #20]
49369   mov r2, r1, asl #16
49370   mov r1, r5, asl #16
49371   ldr r5, [sp, #16]
49372   mov r3, fp, asl #16
49373   cmp r5, #0
49374   mov fp, r3, asr #16
49375   mov r5, r2, asr #16
49376   ldr r3, [sp, #60]
49377   ldr r2, [sp, #4]
49378   mov r4, r4, asl #8
49379   str r4, [sp, #100]
49380   mov r1, r1, asr #16
49381   mov r4, r9, asl #8
49382   add r6, r2, r6, asl #2
49383   rsb r0, r0, r3
49384   bne .L15758
49385   mla r3, r0, r1, r4
49386   mov r2, r3, asr #8
49387   cmp r2, r8
49388   bcs .L15754
49389   mov r3, lr, asl #22
49390   mov r1, r2, lsr #3
49391   mov r3, r3, lsr #22
49392   add r3, r3, r1, asl #5
49393   and r2, r2, #7
49394   ldr r4, .L17801+24
49395   add r2, r2, r3, asl #2
49396   cmp r7, #0
49397   add lr, r4, r2, asl #3
49398   ble .L15754
49399   mul r3, r0, r5
49400   mul r2, fp, ip
49401   ldr r5, [sp, #100]
49402   rsb r3, r2, r3
49403   add r0, r5, r3
49404   mov r2, r0, asr #8
49405   cmp r2, sl
49406   ldrcs ip, [sp, #16]
49407   bcs .L15764
49408   b .L17793
49409 .L15765:
49410   cmp r2, sl
49411   bcc .L15766
49412 .L15764:
49413   add ip, ip, #1
49414   add r0, r0, fp
49415   cmp r7, ip
49416   mov r2, r0, asr #8
49417   add r6, r6, #4
49418   bne .L15765
49419 .L15754:
49420   ldr ip, [sp, #56]
49421   ldr lr, [sp, #64]
49422   add ip, ip, #1
49423   cmp ip, lr
49424   str ip, [sp, #56]
49425   beq .L17699
49426 .L17751:
49427   ldr lr, [sp, #56]
49428   b .L15740
49429 .L15743:
49430   tst r4, #256
49431   beq .L16917
49432   tst r4, #8192
49433   beq .L16919
49434   mov r3, r1, lsr #4
49435   ldr r7, .L17801+12
49436   and r3, r3, #992
49437   add r3, r3, r7
49438   add r1, r8, r8, lsr #31
49439   ldrh  ip, [r3, #30]
49440   mov r7, r1, asr #1
49441   ldrh  r0, [r3, #6]
49442   add r2, sl, sl, lsr #31
49443   ldr r1, [sp, #12]
49444   tst r4, #512
49445   mov r4, r2, asr #1
49446   str ip, [sp, #36]
49447   str r0, [sp, #32]
49448   moveq r9, sl
49449   moveq ip, r4
49450   moveq r0, r7
49451   movne r9, sl, asl #1
49452   movne ip, r4, asl #1
49453   movne r0, r7, asl #1
49454   cmp r6, r1
49455   ldrh  r2, [r3, #14]
49456   ldrh  fp, [r3, #22]
49457   bge .L16924
49458   rsb r1, r6, r1
49459   rsb r9, r1, r9
49460   cmp r9, #0
49461   ble .L15754
49462   ldr r6, [sp, #12]
49463   rsb ip, r1, ip
49464 .L16924:
49465   ldr r1, [sp, #8]
49466   add r3, r6, r9
49467   cmp r3, r1
49468   blt .L16927
49469   rsb r9, r6, r1
49470   cmp r9, #0
49471   ble .L15754
49472 .L16927:
49473   add r0, r5, r0
49474   ldr r5, [sp, #32]
49475   mov r2, r2, asl #16
49476   mov r3, r5, asl #16
49477   ldr r5, [sp, #36]
49478   mov r3, r3, asr #16
49479   mov r1, r5, asl #16
49480   str r3, [sp, #80]
49481   mov r5, r2, asr #16
49482   ldr r3, [sp, #60]
49483   ldr r2, [sp, #4]
49484   mov r4, r4, asl #8
49485   cmp fp, #0
49486   str r4, [sp, #132]
49487   mov r1, r1, asr #16
49488   mov r4, r7, asl #8
49489   rsb r0, r0, r3
49490   add r7, r2, r6, asl #2
49491   bne .L16929
49492   mla r3, r0, r1, r4
49493   mov r2, r3, asr #8
49494   cmp r2, r8
49495   bcs .L15754
49496   mov r3, lr, asl #22
49497   mov r1, r2, lsr #3
49498   mov r3, r3, lsr #22
49499   add r3, r3, r1, asl #5
49500   and r2, r2, #7
49501   ldr r4, .L17801+24
49502   add r2, r2, r3, asl #2
49503   cmp r9, #0
49504   add lr, r4, r2, asl #3
49505   ble .L15754
49506   ldr r2, [sp, #80]
49507   mul r3, r0, r5
49508   mul r2, ip, r2
49509   ldr r5, [sp, #132]
49510   rsb r3, r2, r3
49511   add r0, r5, r3
49512   mov r4, r0, asr #8
49513   cmp r4, sl
49514   movcs ip, fp
49515   bcs .L16935
49516   b .L17794
49517 .L16936:
49518   cmp r4, sl
49519   bcc .L17737
49520 .L16935:
49521   ldr r8, [sp, #80]
49522   add ip, ip, #1
49523   add r0, r0, r8
49524   cmp r9, ip
49525   mov r4, r0, asr #8
49526   add r7, r7, #4
49527   bne .L16936
49528   ldr ip, [sp, #56]
49529   ldr lr, [sp, #64]
49530   add ip, ip, #1
49531   cmp ip, lr
49532   str ip, [sp, #56]
49533   bne .L17751
49534 .L17699:
49535   add sp, sp, #140
49536   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
49537 .L15745:
49538   ldr r2, [sp, #60]
49539   tst r1, #8192
49540   rsb r0, r5, r2
49541   rsbne r3, r0, r8
49542   subne r0, r3, #1
49543   mov r2, r1, asl #19
49544   and r3, ip, #2
49545   orr r3, r3, r2, lsr #31
49546   cmp r3, #3
49547   ldrls pc, [pc, r3, asl #2]
49548   b .L15754
49549   .p2align 2
49550 .L15836:
49551   .word .L15832
49552   .word .L15833
49553   .word .L15834
49554   .word .L15835
49555 .L16917:
49556   ldr r2, [sp, #60]
49557   tst r1, #8192
49558   rsb r0, r5, r2
49559   rsbne r3, r0, r8
49560   subne r0, r3, #1
49561   mov r2, r1, asl #19
49562   and r3, ip, #2
49563   orr r3, r3, r2, lsr #31
49564   cmp r3, #3
49565   ldrls pc, [pc, r3, asl #2]
49566   b .L15754
49567   .p2align 2
49568 .L16998:
49569   .word .L16994
49570   .word .L16995
49571   .word .L16996
49572   .word .L16997
49573 .L16919:
49574   mov r3, r1, lsr #4
49575   ldr r1, .L17801+12
49576   and r3, r3, #992
49577   add r3, r3, r1
49578   tst r4, #512
49579   add r1, r8, r8, lsr #31
49580   ldrh  r4, [r3, #30]
49581   mov r7, r1, asr #1
49582   add r2, sl, sl, lsr #31
49583   ldr r1, [sp, #12]
49584   ldrh  ip, [r3, #6]
49585   str r4, [sp, #48]
49586   mov r4, r2, asr #1
49587   ldrh  r2, [r3, #14]
49588   ldrh  r3, [r3, #22]
49589   moveq fp, sl
49590   moveq r9, r4
49591   moveq r0, r7
49592   movne fp, sl, asl #1
49593   movne r9, r4, asl #1
49594   movne r0, r7, asl #1
49595   cmp r6, r1
49596   str ip, [sp, #40]
49597   str r3, [sp, #44]
49598   bge .L16956
49599   rsb r1, r6, r1
49600   rsb fp, r1, fp
49601   cmp fp, #0
49602   ble .L15754
49603   ldr r6, [sp, #12]
49604   rsb r9, r1, r9
49605 .L16956:
49606   ldr ip, [sp, #8]
49607   add r3, r6, fp
49608   cmp r3, ip
49609   blt .L16959
49610   rsb fp, r6, ip
49611   cmp fp, #0
49612   ble .L15754
49613 .L16959:
49614   add ip, r5, r0
49615   ldr r0, [sp, #40]
49616   ldr r5, [sp, #48]
49617   mov r3, r0, asl #16
49618   ldr r0, [sp, #44]
49619   mov r2, r2, asl #16
49620   mov r3, r3, asr #16
49621   mov r1, r5, asl #16
49622   cmp r0, #0
49623   str r3, [sp, #84]
49624   mov r0, lr, lsr #8
49625   mov r5, r2, asr #16
49626   ldr r3, [sp, #60]
49627   ldr r2, [sp, #4]
49628   mov r4, r4, asl #8
49629   and r0, r0, #240
49630   str r4, [sp, #92]
49631   mov r1, r1, asr #16
49632   mov r4, r7, asl #8
49633   rsb ip, ip, r3
49634   add r7, r2, r6, asl #2
49635   str r0, [sp, #116]
49636   bne .L16961
49637   mla r3, ip, r1, r4
49638   mov r2, r3, asr #8
49639   cmp r2, r8
49640   bcs .L15754
49641   mov r3, lr, asl #22
49642   mov r1, r2, lsr #3
49643   mov r3, r3, lsr #22
49644   add r3, r3, r1, asl #5
49645   and r2, r2, #7
49646   ldr r4, .L17801+24
49647   add r2, r2, r3, asl #3
49648   cmp fp, #0
49649   add r1, r4, r2, asl #2
49650   ble .L15754
49651   ldr r2, [sp, #84]
49652   mul r3, ip, r5
49653   mul r2, r9, r2
49654   ldr r5, [sp, #92]
49655   rsb r3, r2, r3
49656   add r0, r5, r3
49657   mov r3, r0, asr #8
49658   cmp r3, sl
49659   mov r4, r3
49660   ldrcs r5, [sp, #44]
49661   bcs .L16967
49662   b .L17795
49663 .L16968:
49664   cmp r3, sl
49665   bcc .L16969
49666 .L16967:
49667   ldr r8, [sp, #84]
49668   add r5, r5, #1
49669   add r0, r0, r8
49670   mov r3, r0, asr #8
49671   cmp fp, r5
49672   add r7, r7, #4
49673   mov r4, r3
49674   bne .L16968
49675   b .L15754
49676 .L15747:
49677   mov r3, r1, lsr #4
49678   ldr r7, .L17801+12
49679   and r3, r3, #992
49680   add r3, r3, r7
49681   add r1, r8, r8, lsr #31
49682   tst r4, #512
49683   ldrh  r0, [r3, #6]
49684   add r2, sl, sl, lsr #31
49685   mov r7, r1, asr #1
49686   ldrh  ip, [r3, #30]
49687   ldrh  r1, [r3, #14]
49688   ldrh  fp, [r3, #22]
49689   ldr r3, [sp, #12]
49690   mov r4, r2, asr #1
49691   movne r2, sl, asl #1
49692   str r0, [sp, #24]
49693   streq sl, [sp, #136]
49694   moveq r9, r4
49695   moveq r0, r7
49696   strne r2, [sp, #136]
49697   movne r9, r4, asl #1
49698   movne r0, r7, asl #1
49699   cmp r6, r3
49700   str ip, [sp, #28]
49701   bge .L15790
49702   ldr ip, [sp, #136]
49703   rsb r2, r6, r3
49704   rsb ip, r2, ip
49705   cmp ip, #0
49706   str ip, [sp, #136]
49707   ble .L15754
49708   rsb r9, r2, r9
49709   mov r6, r3
49710 .L15790:
49711   ldr r2, [sp, #136]
49712   ldr ip, [sp, #8]
49713   add r3, r6, r2
49714   cmp r3, ip
49715   blt .L15793
49716   rsb r2, r6, ip
49717   cmp r2, #0
49718   str r2, [sp, #136]
49719   ble .L15754
49720 .L15793:
49721   add ip, r5, r0
49722   ldr r5, [sp, #24]
49723   ldr r0, [sp, #28]
49724   mov r3, r5, asl #16
49725   mov r2, r1, asl #16
49726   mov r3, r3, asr #16
49727   mov r1, r0, asl #16
49728   str r3, [sp, #72]
49729   mov r0, lr, lsr #8
49730   mov r5, r2, asr #16
49731   ldr r3, [sp, #60]
49732   ldr r2, [sp, #4]
49733   mov r4, r4, asl #8
49734   and r0, r0, #240
49735   cmp fp, #0
49736   str r4, [sp, #124]
49737   mov r1, r1, asr #16
49738   mov r4, r7, asl #8
49739   rsb ip, ip, r3
49740   add r7, r2, r6, asl #2
49741   str r0, [sp, #120]
49742   bne .L15795
49743   mla r3, ip, r1, r4
49744   mov r2, r3, asr #8
49745   cmp r2, r8
49746   bcs .L15754
49747   mov r3, lr, asl #22
49748   mov r1, r2, lsr #3
49749   mov r3, r3, lsr #22
49750   ldr r4, [sp, #136]
49751   add r3, r3, r1, asl #5
49752   and r2, r2, #7
49753   ldr r8, .L17801+24
49754   add r2, r2, r3, asl #3
49755   cmp r4, #0
49756   add lr, r8, r2, asl #2
49757   ble .L15754
49758   ldr r2, [sp, #72]
49759   mul r3, ip, r5
49760   mul r2, r9, r2
49761   ldr r0, [sp, #124]
49762   rsb r3, r2, r3
49763   add ip, r0, r3
49764   mov r3, ip, asr #8
49765   cmp r3, sl
49766   mov r1, r3
49767   movcs r4, fp
49768   bcs .L15801
49769   b .L17796
49770 .L15802:
49771   cmp r3, sl
49772   bcc .L15803
49773 .L15801:
49774   ldr r1, [sp, #72]
49775   ldr r2, [sp, #136]
49776   add ip, ip, r1
49777   add r4, r4, #1
49778   mov r3, ip, asr #8
49779   cmp r2, r4
49780   add r7, r7, #4
49781   mov r1, r3
49782   bne .L15802
49783   b .L15754
49784 .L15795:
49785   mov r3, lr, asl #22
49786   ldr r0, .L17801+24
49787   ldr lr, [sp, #136]
49788   mov r3, r3, lsr #22
49789   add r3, r0, r3, asl #5
49790   cmp lr, #0
49791   str r3, [sp, #112]
49792   ble .L15754
49793   mov r3, fp, asl #16
49794   mov r3, r3, asr #16
49795   str r3, [sp, #76]
49796   mul r2, ip, r1
49797   ldr r1, [sp, #76]
49798   ldr r0, [sp, #72]
49799   mul r1, r9, r1
49800   mul r3, ip, r5
49801   mul r0, r9, r0
49802   rsb r2, r1, r2
49803   ldr r1, [sp, #124]
49804   rsb r3, r0, r3
49805   add lr, r1, r3
49806   add r5, r4, r2
49807   mov ip, lr, asr #8
49808   mov r4, r5, asr #8
49809   cmp ip, sl
49810   cmpcc r4, r8
49811   movcs r3, #0
49812   movcc r3, #1
49813   movcs r6, r3
49814   bcs .L15817
49815   b .L17797
49816 .L15818:
49817   cmp ip, sl
49818   cmpcc r4, r8
49819   bcc .L15820
49820 .L15817:
49821   ldr r2, [sp, #72]
49822   ldr r3, [sp, #76]
49823   ldr r0, [sp, #136]
49824   add r6, r6, #1
49825   add lr, lr, r2
49826   add r5, r5, r3
49827   cmp r0, r6
49828   mov ip, lr, asr #8
49829   mov r4, r5, asr #8
49830   add r7, r7, #4
49831   bne .L15818
49832   b .L15754
49833 .L17755:
49834   mov r3, ip, asr #1
49835   ldr r2, [sp, #112]
49836   and fp, r3, #3
49837   ldr r3, [sp, #112]
49838   and r1, r4, #7
49839   and r0, r4, #7
49840   add r1, r2, r1, asl #2
49841   add r0, r3, r0, asl #2
49842   mov r2, ip, asr #1
49843   mov r3, r4, asr #3
49844   and r9, r2, #3
49845   mov r3, r3, asl #10
49846   mov r2, ip, asr #3
49847   add r3, r3, r2, asl #5
49848   add r0, r0, r3
49849   tst ip, #1
49850   add r1, r1, r3
49851   ldrneb  r3, [r1, fp]  @ zero_extendqisi2
49852   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
49853   movne r0, r3, lsr #4
49854   andeq r0, r3, #15
49855   ldr r4, [sp, #120]
49856   cmp r0, #0
49857   orr r0, r0, r4
49858   beq .L15826
49859   ldr r2, [r7, #0]
49860   orr r1, r0, #768
49861   mov r3, r2, lsr #16
49862   orr r0, r0, #768
49863   mov r3, r3, asl #16
49864   tst r2, #256
49865   orr r3, r3, r1
49866   orr r0, r0, r2, asl #16
49867   strne r3, [r7, #0]
49868   streq r0, [r7, #0]
49869 .L15826:
49870   ldr ip, [sp, #72]
49871   ldr r0, [sp, #76]
49872   ldr r1, [sp, #136]
49873   add r6, r6, #1
49874   add lr, lr, ip
49875   add r5, r5, r0
49876   cmp r1, r6
49877   add r7, r7, #4
49878   mov ip, lr, asr #8
49879   mov r4, r5, asr #8
49880   ble .L15754
49881 .L15820:
49882   cmp r4, r8
49883   cmpcc ip, sl
49884   bcc .L17755
49885   b .L15754
49886 .L16961:
49887   mov r3, lr, asl #22
49888   ldr lr, .L17801+24
49889   mov r3, r3, lsr #22
49890   add r3, lr, r3, asl #5
49891   cmp fp, #0
49892   str r3, [sp, #104]
49893   ble .L15754
49894   ldr r0, [sp, #44]
49895   mul r2, ip, r1
49896   mov r3, r0, asl #16
49897   mov r3, r3, asr #16
49898   str r3, [sp, #88]
49899   ldr r1, [sp, #88]
49900   ldr r0, [sp, #84]
49901   mul r1, r9, r1
49902   mul r3, ip, r5
49903   mul r0, r9, r0
49904   rsb r2, r1, r2
49905   ldr r1, [sp, #92]
49906   rsb r3, r0, r3
49907   add lr, r1, r3
49908   add r5, r4, r2
49909   mov ip, lr, asr #8
49910   mov r4, r5, asr #8
49911   cmp ip, sl
49912   movcs r3, #0
49913   movcc r3, #1
49914   cmp r8, r4
49915   movls r3, #0
49916   cmp r3, #0
49917   moveq r6, r3
49918   beq .L16981
49919   b .L17798
49920 .L16982:
49921   cmp ip, sl
49922   cmpcc r4, r8
49923   bcc .L16983
49924 .L16981:
49925   ldr r2, [sp, #84]
49926   ldr r3, [sp, #88]
49927   add r6, r6, #1
49928   add lr, lr, r2
49929   add r5, r5, r3
49930   cmp fp, r6
49931   mov ip, lr, asr #8
49932   mov r4, r5, asr #8
49933   add r7, r7, #4
49934   bne .L16982
49935   b .L15754
49936 .L16938:
49937   cmp r4, sl
49938   bcs .L15754
49939 .L17737:
49940   ldr r1, [sp, #80]
49941   mov r3, r4, asr #3
49942   add r0, r0, r1
49943   add r3, lr, r3, asl #6
49944   and r1, r4, #7
49945   ldrb  r2, [r3, r1]  @ zero_extendqisi2
49946   ldr r5, [sp, #52]
49947   cmp r2, #0
49948   add ip, ip, #1
49949   orr r3, r5, r2
49950   strne r3, [r7, #0]
49951   cmp r9, ip
49952   mov r4, r0, asr #8
49953   add r7, r7, #4
49954   bgt .L16938
49955   b .L15754
49956 .L15758:
49957   mov r3, lr, asl #22
49958   ldr r2, .L17801+24
49959   mov r3, r3, lsr #22
49960   cmp r7, #0
49961   add lr, r2, r3, asl #5
49962   ble .L15754
49963   ldr r2, [sp, #16]
49964   mov r3, r2, asl #16
49965   mov r9, r3, asr #16
49966   mul r2, r0, r1
49967   mul r3, r0, r5
49968   mul r1, r9, ip
49969   mul r0, fp, ip
49970   ldr r5, [sp, #100]
49971   rsb r2, r1, r2
49972   rsb r3, r0, r3
49973   add r0, r5, r3
49974   add r5, r4, r2
49975   mov r1, r5, asr #8
49976   mov r4, r0, asr #8
49977   cmp r4, sl
49978   cmpcc r1, r8
49979   movcs r3, #0
49980   movcc r3, #1
49981   movcs ip, r3
49982   bcs .L15777
49983   b .L17799
49984 .L15778:
49985   cmp r4, sl
49986   cmpcc r1, r8
49987   bcc .L15780
49988 .L15777:
49989   add ip, ip, #1
49990   add r0, r0, fp
49991   add r5, r5, r9
49992   cmp r7, ip
49993   mov r4, r0, asr #8
49994   mov r1, r5, asr #8
49995   add r6, r6, #4
49996   bne .L15778
49997   b .L15754
49998 .L17758:
49999   and r3, r1, #7
50000   mov r2, r4, asr #3
50001   mov r3, r3, asl #3
50002   add r3, r3, r2, asl #6
50003   mov r1, r1, asr #3
50004   add r3, r3, r1, asl #10
50005   and r2, r4, #7
50006   add r3, r3, lr
50007   ldrb  r4, [r3, r2]  @ zero_extendqisi2
50008   cmp r4, #0
50009   beq .L15783
50010   ldr r3, [r6, #0]
50011   mov r2, r3, lsr #16
50012   mov r2, r2, asl #16
50013   orr r1, r4, r3, asl #16
50014   orr r2, r2, #768
50015   tst r3, #256
50016   orr r2, r4, r2
50017   orr r1, r1, #768
50018   strne r2, [r6, #0]
50019   streq r1, [r6, #0]
50020 .L15783:
50021   add ip, ip, #1
50022   add r0, r0, fp
50023   add r5, r5, r9
50024   cmp r7, ip
50025   mov r4, r0, asr #8
50026   mov r1, r5, asr #8
50027   add r6, r6, #4
50028   ble .L15754
50029 .L15780:
50030   cmp r1, r8
50031   cmpcc r4, sl
50032   bcc .L17758
50033   b .L15754
50034 .L16929:
50035   mov r3, lr, asl #22
50036   ldr lr, .L17801+24
50037   mov r3, r3, lsr #22
50038   add r3, lr, r3, asl #5
50039   cmp r9, #0
50040   str r3, [sp, #108]
50041   ble .L15754
50042   mov r3, fp, asl #16
50043   mul r2, r0, r1
50044   mov fp, r3, asr #16
50045   mul r3, r0, r5
50046   ldr r0, [sp, #80]
50047   mul r1, fp, ip
50048   mul r0, ip, r0
50049   rsb r3, r0, r3
50050   ldr r0, [sp, #132]
50051   rsb r2, r1, r2
50052   add r5, r0, r3
50053   add lr, r4, r2
50054   mov ip, r5, asr #8
50055   mov r4, lr, asr #8
50056   cmp ip, sl
50057   cmpcc r4, r8
50058   movcs r3, #0
50059   movcc r3, #1
50060   movcs r6, r3
50061   bcs .L16945
50062   b .L17800
50063 .L16946:
50064   cmp ip, sl
50065   cmpcc r4, r8
50066   bcc .L16948
50067 .L16945:
50068   ldr r1, [sp, #80]
50069   add r6, r6, #1
50070   add r5, r5, r1
50071   add lr, lr, fp
50072   cmp r9, r6
50073   mov ip, r5, asr #8
50074   mov r4, lr, asr #8
50075   add r7, r7, #4
50076   bne .L16946
50077   b .L15754
50078 .L17760:
50079   ldr r2, [sp, #80]
50080   and r3, r4, #7
50081   add r5, r5, r2
50082   mov r3, r3, asl #3
50083   mov r2, ip, asr #3
50084   mov r1, r4, asr #3
50085   add r3, r3, r2, asl #6
50086   add r3, r3, r1, asl #10
50087   ldr r1, [sp, #108]
50088   and r0, ip, #7
50089   add r3, r3, r1
50090   ldrb  r2, [r3, r0]  @ zero_extendqisi2
50091   ldr r0, [sp, #52]
50092   cmp r2, #0
50093   add r6, r6, #1
50094   orr r3, r0, r2
50095   strne r3, [r7, #0]
50096   add lr, lr, fp
50097   cmp r9, r6
50098   mov r4, lr, asr #8
50099   mov ip, r5, asr #8
50100   add r7, r7, #4
50101   ble .L15754
50102 .L16948:
50103   cmp r4, r8
50104   cmpcc ip, sl
50105   bcc .L17760
50106   b .L15754
50107 .L16994:
50108   mov r3, lr, asl #22
50109   mov r2, r0, lsr #3
50110   mov r3, r3, lsr #22
50111   add r3, r3, r2, asl #5
50112   and r1, r0, #7
50113   add r1, r1, r3, asl #3
50114   ldr r3, [sp, #12]
50115   ldr r4, .L17801+24
50116   cmp r6, r3
50117   mov r3, lr, lsr #8
50118   and r7, r3, #240
50119   add r0, r4, r1, asl #2
50120   bge .L16999
50121   ldr r5, [sp, #12]
50122   rsb r4, r6, r5
50123   rsb lr, r4, sl
50124   cmp lr, #0
50125   ble .L15754
50126   ldr r8, [sp, #8]
50127   add r3, r6, sl
50128   cmp r8, r3
50129   bhi .L17002
50130   mov r3, r4, lsr #3
50131   mov r1, r3, asl #5
50132   ands  r3, r4, #7
50133   add r4, r0, r1
50134   bne .L17004
50135   ldr r5, [sp, #128]
50136   ldr r6, [sp, #96]
50137 .L17006:
50138   movs  lr, r5, lsr #3
50139   beq .L17023
50140   mov r1, r6
50141   mov r0, r4
50142   mov ip, #0
50143 .L17025:
50144   ldr r2, [r0, #0]
50145   cmp r2, #0
50146   beq .L17026
50147   ands  r3, r2, #15
50148   ldrne r8, [sp, #52]
50149   orrne r3, r8, r3
50150   orrne r3, r7, r3
50151   strne r3, [r1, #0]
50152   mov r3, r2, lsr #4
50153   ands  r3, r3, #15
50154   ldrne r8, [sp, #52]
50155   orrne r3, r8, r3
50156   orrne r3, r7, r3
50157   strne r3, [r1, #4]
50158   mov r3, r2, lsr #8
50159   ands  r3, r3, #15
50160   ldrne r8, [sp, #52]
50161   orrne r3, r8, r3
50162   orrne r3, r7, r3
50163   strne r3, [r1, #8]
50164   mov r3, r2, lsr #12
50165   ands  r3, r3, #15
50166   ldrne r8, [sp, #52]
50167   orrne r3, r8, r3
50168   orrne r3, r7, r3
50169   strne r3, [r1, #12]
50170   mov r3, r2, lsr #16
50171   ands  r3, r3, #15
50172   ldrne r8, [sp, #52]
50173   orrne r3, r8, r3
50174   orrne r3, r7, r3
50175   strne r3, [r1, #16]
50176   mov r3, r2, lsr #20
50177   ands  r3, r3, #15
50178   ldrne r8, [sp, #52]
50179   orrne r3, r8, r3
50180   orrne r3, r7, r3
50181   strne r3, [r1, #20]
50182   mov r3, r2, lsr #24
50183   ands  r3, r3, #15
50184   ldrne r8, [sp, #52]
50185   orrne r3, r8, r3
50186   orrne r3, r7, r3
50187   strne r3, [r1, #24]
50188   movs  r3, r2, lsr #28
50189   ldrne r2, [sp, #52]
50190   orrne r3, r2, r3
50191   orrne r3, r7, r3
50192   strne r3, [r1, #28]
50193 .L17026:
50194   add ip, ip, #1
50195   cmp ip, lr
50196   add r0, r0, #32
50197   add r1, r1, #32
50198   bne .L17025
50199   mov r3, lr, asl #5
50200   add r4, r4, r3
50201   add r6, r6, r3
50202 .L17023:
50203   ands  r0, r5, #7
50204   beq .L15754
50205   ldr r2, [r4, #0]
50206   mov r1, #0
50207 .L17045:
50208   ldr r4, [sp, #52]
50209   ands  r3, r2, #15
50210   orr r3, r4, r3
50211   orr r3, r7, r3
50212   strne r3, [r6, r1, asl #2]
50213   add r1, r1, #1
50214   cmp r1, r0
50215   mov r2, r2, lsr #4
50216   bne .L17045
50217   b .L15754
50218 .L16995:
50219   mov r3, lr, asl #22
50220   mov r1, r0, lsr #3
50221   subs  r2, sl, #8
50222   mov r3, r3, lsr #22
50223   submi r2, sl, #1
50224   add r3, r3, r1, asl #5
50225   ldr r5, [sp, #12]
50226   add r3, r3, r2, asr #3
50227   and r1, r0, #7
50228   ldr r8, .L17801+24
50229   add r1, r1, r3, asl #3
50230   cmp r6, r5
50231   mov r3, lr, lsr #8
50232   and r7, r3, #240
50233   add r0, r8, r1, asl #2
50234   bge .L17129
50235   rsb r4, r6, r5
50236   rsb r1, r4, sl
50237   cmp r1, #0
50238   ble .L15754
50239   ldr ip, [sp, #8]
50240   add r3, r6, sl
50241   cmp ip, r3
50242   bhi .L17132
50243   mov r3, r4, lsr #3
50244   ands  r5, r4, #7
50245   sub r0, r0, r3, asl #5
50246   bne .L17134
50247   ldr r2, [sp, #128]
50248   ldr r1, [sp, #96]
50249 .L17136:
50250   movs  r8, r2, lsr #3
50251   beq .L17153
50252   mov r5, r1
50253   mov r6, r0
50254   mov lr, #0
50255 .L17155:
50256   ldr r4, [r6, #0]
50257   cmp r4, #0
50258   beq .L17156
50259   ands  r3, r4, #15
50260   ldrne ip, [sp, #52]
50261   orrne r3, ip, r3
50262   orrne r3, r7, r3
50263   strne r3, [r5, #28]
50264   mov r3, r4, lsr #4
50265   ands  r3, r3, #15
50266   ldrne ip, [sp, #52]
50267   orrne r3, ip, r3
50268   orrne r3, r7, r3
50269   strne r3, [r5, #24]
50270   mov r3, r4, lsr #8
50271   ands  r3, r3, #15
50272   ldrne ip, [sp, #52]
50273   orrne r3, ip, r3
50274   orrne r3, r7, r3
50275   strne r3, [r5, #20]
50276   mov r3, r4, lsr #12
50277   ands  r3, r3, #15
50278   ldrne ip, [sp, #52]
50279   orrne r3, ip, r3
50280   orrne r3, r7, r3
50281   strne r3, [r5, #16]
50282   mov r3, r4, lsr #16
50283   ands  r3, r3, #15
50284   ldrne ip, [sp, #52]
50285   orrne r3, ip, r3
50286   orrne r3, r7, r3
50287   strne r3, [r5, #12]
50288   mov r3, r4, lsr #20
50289   ands  r3, r3, #15
50290   ldrne ip, [sp, #52]
50291   orrne r3, ip, r3
50292   orrne r3, r7, r3
50293   strne r3, [r5, #8]
50294   mov r3, r4, lsr #24
50295   ands  r3, r3, #15
50296   ldrne ip, [sp, #52]
50297   orrne r3, ip, r3
50298   orrne r3, r7, r3
50299   strne r3, [r5, #4]
50300   movs  r3, r4, lsr #28
50301   ldrne r4, [sp, #52]
50302   orrne r3, r4, r3
50303   orrne r3, r7, r3
50304   strne r3, [r5, #0]
50305 .L17156:
50306   add lr, lr, #1
50307   cmp lr, r8
50308   sub r6, r6, #32
50309   add r5, r5, #32
50310   bne .L17155
50311   rsb r3, r8, r8, asl #27
50312   add r0, r0, r3, asl #5
50313   add r1, r1, r8, asl #5
50314 .L17153:
50315   ands  lr, r2, #7
50316   beq .L15754
50317   ldr r0, [r0, #0]
50318   mov r2, #0
50319 .L17175:
50320   ldr r5, [sp, #52]
50321   movs  r3, r0, lsr #28
50322   orr r3, r5, r3
50323   orr r3, r7, r3
50324   strne r3, [r1, r2, asl #2]
50325   add r2, r2, #1
50326   cmp r2, lr
50327   mov r0, r0, asl #4
50328   bne .L17175
50329   b .L15754
50330 .L17802:
50331   .align  2
50332 .L17801:
50333   .word io_registers
50334   .word obj_priority_count
50335   .word obj_priority_list
50336   .word oam_ram
50337   .word obj_height_table
50338   .word obj_width_table
50339   .word vram+65536
50340 .L16996:
50341   mov r3, lr, asl #22
50342   mov r1, r0, lsr #3
50343   mov r3, r3, lsr #22
50344   and r2, r0, #7
50345   add r3, r3, r1, asl #5
50346   ldr r5, [sp, #12]
50347   add r2, r2, r3, asl #2
50348   ldr r7, .L17801+24
50349   mov r0, r2, asl #3
50350   cmp r6, r5
50351   add ip, r0, r7
50352   bge .L17259
50353   rsb r0, r6, r5
50354   rsb lr, r0, sl
50355   cmp lr, #0
50356   ble .L15754
50357   ldr r8, [sp, #8]
50358   add r3, r6, sl
50359   cmp r8, r3
50360   bhi .L17262
50361   mov r3, r0, lsr #3
50362   ands  lr, r0, #7
50363   add r6, ip, r3, asl #6
50364   bne .L17264
50365   ldr r5, [sp, #128]
50366   ldr r4, [sp, #96]
50367 .L17266:
50368   movs  lr, r5, lsr #3
50369   beq .L17324
50370   mov r1, r4
50371   mov r0, r6
50372   mov ip, #0
50373 .L17326:
50374   ldr r2, [r0, #0]
50375   cmp r2, #0
50376   beq .L17327
50377   ands  r3, r2, #255
50378   ldrne r7, [sp, #52]
50379   orrne r3, r7, r3
50380   strne r3, [r1, #0]
50381   mov r3, r2, lsr #8
50382   ands  r3, r3, #255
50383   ldrne r8, [sp, #52]
50384   orrne r3, r8, r3
50385   strne r3, [r1, #4]
50386   mov r3, r2, lsr #16
50387   ands  r3, r3, #255
50388   ldrne r7, [sp, #52]
50389   orrne r3, r7, r3
50390   strne r3, [r1, #8]
50391   movs  r3, r2, lsr #24
50392   ldrne r8, [sp, #52]
50393   orrne r3, r8, r3
50394   strne r3, [r1, #12]
50395 .L17327:
50396   ldr r2, [r0, #4]
50397   cmp r2, #0
50398   beq .L17336
50399   ands  r3, r2, #255
50400   ldrne r7, [sp, #52]
50401   orrne r3, r7, r3
50402   strne r3, [r1, #16]
50403   mov r3, r2, lsr #8
50404   ands  r3, r3, #255
50405   ldrne r8, [sp, #52]
50406   orrne r3, r8, r3
50407   strne r3, [r1, #20]
50408   mov r3, r2, lsr #16
50409   ands  r3, r3, #255
50410   ldrne r7, [sp, #52]
50411   orrne r3, r7, r3
50412   strne r3, [r1, #24]
50413   movs  r3, r2, lsr #24
50414   ldrne r8, [sp, #52]
50415   orrne r3, r8, r3
50416   strne r3, [r1, #28]
50417 .L17336:
50418   add ip, ip, #1
50419   cmp lr, ip
50420   add r0, r0, #64
50421   add r1, r1, #32
50422   bne .L17326
50423   add r6, r6, lr, asl #6
50424   add r4, r4, lr, asl #5
50425 .L17324:
50426   ands  r0, r5, #7
50427   beq .L15754
50428   cmp r0, #3
50429   ldrls r1, [r6, #0]
50430   bls .L17359
50431   ldr r2, [r6, #0]
50432   cmp r2, #0
50433   beq .L17349
50434   ands  r3, r2, #255
50435   ldrne ip, [sp, #52]
50436   orrne r3, ip, r3
50437   strne r3, [r4, #0]
50438   mov r3, r2, lsr #8
50439   ands  r3, r3, #255
50440   ldrne lr, [sp, #52]
50441   orrne r3, lr, r3
50442   strne r3, [r4, #4]
50443   mov r3, r2, lsr #16
50444   ands  r3, r3, #255
50445   ldrne r1, [sp, #52]
50446   orrne r3, r1, r3
50447   strne r3, [r4, #8]
50448   movs  r3, r2, lsr #24
50449   ldrne r2, [sp, #52]
50450   orrne r3, r2, r3
50451   strne r3, [r4, #12]
50452 .L17349:
50453   subs  r0, r0, #4
50454   ldr r1, [r6, #4]
50455   addne r4, r4, #16
50456   beq .L15754
50457 .L17359:
50458   mov r2, #0
50459 .L17360:
50460   ldr r5, [sp, #52]
50461   ands  r3, r1, #255
50462   orr r3, r5, r3
50463   strne r3, [r4, r2, asl #2]
50464   add r2, r2, #1
50465   cmp r0, r2
50466   mov r1, r1, lsr #8
50467   bhi .L17360
50468   b .L15754
50469 .L15834:
50470   mov r3, lr, asl #22
50471   mov r1, r0, lsr #3
50472   mov r3, r3, lsr #22
50473   and r2, r0, #7
50474   add r3, r3, r1, asl #5
50475   ldr r4, [sp, #12]
50476   add r2, r2, r3, asl #2
50477   ldr r5, .L17801+24
50478   mov r0, r2, asl #3
50479   cmp r6, r4
50480   add ip, r0, r5
50481   bge .L16245
50482   rsb r0, r6, r4
50483   rsb r7, r0, sl
50484   cmp r7, #0
50485   ble .L15754
50486   ldr r8, [sp, #8]
50487   add r3, r6, sl
50488   cmp r8, r3
50489   bhi .L16248
50490   mov r3, r0, lsr #3
50491   ands  lr, r0, #7
50492   add r7, ip, r3, asl #6
50493   bne .L16250
50494   ldr r6, [sp, #128]
50495   ldr lr, [sp, #96]
50496 .L16252:
50497   movs  r5, r6, lsr #3
50498   beq .L16330
50499   mov r0, lr
50500   mov ip, r7
50501   mov r4, #0
50502 .L16332:
50503   ldr r2, [ip, #0]
50504   cmp r2, #0
50505   beq .L16333
50506   ands  r1, r2, #255
50507   beq .L16335
50508   ldr r3, [r0, #0]
50509   tst r3, #256
50510   movne r3, r3, lsr #16
50511   movne r3, r3, asl #16
50512   orrne r3, r3, #768
50513   orreq r3, r1, r3, asl #16
50514   orrne r3, r1, r3
50515   orreq r3, r3, #768
50516   strne r3, [r0, #0]
50517   streq r3, [r0, #0]
50518 .L16335:
50519   mov r3, r2, lsr #8
50520   ands  r1, r3, #255
50521   beq .L16339
50522   ldr r3, [r0, #4]
50523   tst r3, #256
50524   movne r3, r3, lsr #16
50525   movne r3, r3, asl #16
50526   orrne r3, r3, #768
50527   orreq r3, r1, r3, asl #16
50528   orrne r3, r1, r3
50529   orreq r3, r3, #768
50530   strne r3, [r0, #4]
50531   streq r3, [r0, #4]
50532 .L16339:
50533   mov r3, r2, lsr #16
50534   ands  r1, r3, #255
50535   beq .L16343
50536   ldr r3, [r0, #8]
50537   tst r3, #256
50538   movne r3, r3, lsr #16
50539   movne r3, r3, asl #16
50540   orrne r3, r3, #768
50541   orreq r3, r1, r3, asl #16
50542   orrne r3, r1, r3
50543   orreq r3, r3, #768
50544   strne r3, [r0, #8]
50545   streq r3, [r0, #8]
50546 .L16343:
50547   movs  r2, r2, lsr #24
50548   beq .L16333
50549   ldr r1, [r0, #12]
50550   tst r1, #256
50551   movne r3, r1, lsr #16
50552   movne r3, r3, asl #16
50553   orreq r3, r2, #768
50554   orrne r2, r2, #768
50555   orrne r3, r3, r2
50556   orreq r3, r3, r1, asl #16
50557   strne r3, [r0, #12]
50558   streq r3, [r0, #12]
50559 .L16333:
50560   ldr r2, [ip, #4]
50561   cmp r2, #0
50562   beq .L16350
50563   ands  r1, r2, #255
50564   beq .L16352
50565   ldr r3, [r0, #16]
50566   tst r3, #256
50567   movne r3, r3, lsr #16
50568   movne r3, r3, asl #16
50569   orrne r3, r3, #768
50570   orreq r3, r1, r3, asl #16
50571   orrne r3, r1, r3
50572   orreq r3, r3, #768
50573   strne r3, [r0, #16]
50574   streq r3, [r0, #16]
50575 .L16352:
50576   mov r3, r2, lsr #8
50577   ands  r1, r3, #255
50578   beq .L16356
50579   ldr r3, [r0, #20]
50580   tst r3, #256
50581   movne r3, r3, lsr #16
50582   movne r3, r3, asl #16
50583   orrne r3, r3, #768
50584   orreq r3, r1, r3, asl #16
50585   orrne r3, r1, r3
50586   orreq r3, r3, #768
50587   strne r3, [r0, #20]
50588   streq r3, [r0, #20]
50589 .L16356:
50590   mov r3, r2, lsr #16
50591   ands  r1, r3, #255
50592   beq .L16360
50593   ldr r3, [r0, #24]
50594   tst r3, #256
50595   movne r3, r3, lsr #16
50596   movne r3, r3, asl #16
50597   orrne r3, r3, #768
50598   orreq r3, r1, r3, asl #16
50599   orrne r3, r1, r3
50600   orreq r3, r3, #768
50601   strne r3, [r0, #24]
50602   streq r3, [r0, #24]
50603 .L16360:
50604   movs  r2, r2, lsr #24
50605   beq .L16350
50606   ldr r3, [r0, #28]
50607   tst r3, #256
50608   movne r3, r3, lsr #16
50609   movne r3, r3, asl #16
50610   orrne r3, r3, #768
50611   orreq r3, r2, r3, asl #16
50612   orrne r3, r2, r3
50613   orreq r3, r3, #768
50614   strne r3, [r0, #28]
50615   streq r3, [r0, #28]
50616 .L16350:
50617   add r4, r4, #1
50618   cmp r4, r5
50619   add ip, ip, #64
50620   add r0, r0, #32
50621   bne .L16332
50622   add r7, r7, r5, asl #6
50623   add lr, lr, r5, asl #5
50624 .L16330:
50625   ands  r5, r6, #7
50626   beq .L15754
50627   cmp r5, #3
50628   ldrls ip, [r7, #0]
50629   bls .L16389
50630   ldr r2, [r7, #0]
50631   cmp r2, #0
50632   beq .L16371
50633   ands  r1, r2, #255
50634   beq .L16373
50635   ldr r3, [lr, #0]
50636   tst r3, #256
50637   movne r3, r3, lsr #16
50638   movne r3, r3, asl #16
50639   orrne r3, r3, #768
50640   orreq r3, r1, r3, asl #16
50641   orrne r3, r1, r3
50642   orreq r3, r3, #768
50643   strne r3, [lr, #0]
50644   streq r3, [lr, #0]
50645 .L16373:
50646   mov r3, r2, lsr #8
50647   ands  r1, r3, #255
50648   beq .L16377
50649   ldr r3, [lr, #4]
50650   tst r3, #256
50651   movne r3, r3, lsr #16
50652   movne r3, r3, asl #16
50653   orrne r3, r3, #768
50654   orreq r3, r1, r3, asl #16
50655   orrne r3, r1, r3
50656   orreq r3, r3, #768
50657   strne r3, [lr, #4]
50658   streq r3, [lr, #4]
50659 .L16377:
50660   mov r3, r2, lsr #16
50661   ands  r1, r3, #255
50662   beq .L16381
50663   ldr r3, [lr, #8]
50664   tst r3, #256
50665   movne r3, r3, lsr #16
50666   movne r3, r3, asl #16
50667   orrne r3, r3, #768
50668   orreq r3, r1, r3, asl #16
50669   orrne r3, r1, r3
50670   orreq r3, r3, #768
50671   strne r3, [lr, #8]
50672   streq r3, [lr, #8]
50673 .L16381:
50674   movs  r2, r2, lsr #24
50675   beq .L16371
50676   ldr r1, [lr, #12]
50677   tst r1, #256
50678   movne r3, r1, lsr #16
50679   movne r3, r3, asl #16
50680   orreq r3, r2, #768
50681   orrne r2, r2, #768
50682   orrne r3, r3, r2
50683   orreq r3, r3, r1, asl #16
50684   strne r3, [lr, #12]
50685   streq r3, [lr, #12]
50686 .L16371:
50687   subs  r5, r5, #4
50688   ldr ip, [r7, #4]
50689   addne lr, lr, #16
50690   beq .L15754
50691 .L16389:
50692   mov r4, #0
50693 .L16390:
50694   ands  r0, ip, #255
50695   beq .L16391
50696   ldr r2, [lr, #0]
50697   orr r1, r0, #768
50698   mov r3, r2, lsr #16
50699   orr r0, r0, #768
50700   mov r3, r3, asl #16
50701   tst r2, #256
50702   orr r3, r3, r1
50703   orr r0, r0, r2, asl #16
50704   strne r3, [lr, #0]
50705   streq r0, [lr, #0]
50706 .L16391:
50707   add r4, r4, #1
50708   cmp r5, r4
50709   mov ip, ip, lsr #8
50710   add lr, lr, #4
50711   bhi .L16390
50712   b .L15754
50713 .L15832:
50714   mov r3, lr, asl #22
50715   mov r2, r0, lsr #3
50716   mov r3, r3, lsr #22
50717   add r3, r3, r2, asl #5
50718   and r1, r0, #7
50719   add r1, r1, r3, asl #3
50720   ldr r3, [sp, #12]
50721   ldr r4, .L17801+24
50722   cmp r6, r3
50723   mov r3, lr, lsr #8
50724   and r7, r3, #240
50725   add r0, r4, r1, asl #2
50726   bge .L15837
50727   ldr r5, [sp, #12]
50728   rsb r4, r6, r5
50729   rsb r8, r4, sl
50730   cmp r8, #0
50731   ble .L15754
50732   ldr ip, [sp, #8]
50733   add r3, r6, sl
50734   cmp ip, r3
50735   bhi .L15840
50736   mov r3, r4, lsr #3
50737   mov r1, r3, asl #5
50738   ands  r3, r4, #7
50739   add r8, r0, r1
50740   bne .L15842
50741   ldr sl, [sp, #128]
50742   ldr r5, [sp, #96]
50743 .L15844:
50744   movs  r6, sl, lsr #3
50745   beq .L15865
50746   mov ip, r5
50747   mov lr, r8
50748   mov r4, #0
50749 .L15867:
50750   ldr r0, [lr, #0]
50751   cmp r0, #0
50752   beq .L15868
50753   ands  r2, r0, #15
50754   beq .L15870
50755   ldr r1, [ip, #0]
50756   orr r2, r7, r2
50757   tst r1, #256
50758   movne r3, r1, lsr #16
50759   movne r3, r3, asl #16
50760   orreq r3, r2, #768
50761   orrne r2, r2, #768
50762   orrne r3, r3, r2
50763   orreq r3, r3, r1, asl #16
50764   strne r3, [ip, #0]
50765   streq r3, [ip, #0]
50766 .L15870:
50767   mov r3, r0, lsr #4
50768   ands  r2, r3, #15
50769   beq .L15874
50770   ldr r1, [ip, #4]
50771   orr r2, r7, r2
50772   tst r1, #256
50773   movne r3, r1, lsr #16
50774   movne r3, r3, asl #16
50775   orreq r3, r2, #768
50776   orrne r2, r2, #768
50777   orrne r3, r3, r2
50778   orreq r3, r3, r1, asl #16
50779   strne r3, [ip, #4]
50780   streq r3, [ip, #4]
50781 .L15874:
50782   mov r3, r0, lsr #8
50783   ands  r2, r3, #15
50784   beq .L15878
50785   ldr r1, [ip, #8]
50786   orr r2, r7, r2
50787   tst r1, #256
50788   movne r3, r1, lsr #16
50789   movne r3, r3, asl #16
50790   orreq r3, r2, #768
50791   orrne r2, r2, #768
50792   orrne r3, r3, r2
50793   orreq r3, r3, r1, asl #16
50794   strne r3, [ip, #8]
50795   streq r3, [ip, #8]
50796 .L15878:
50797   mov r3, r0, lsr #12
50798   ands  r2, r3, #15
50799   beq .L15882
50800   ldr r1, [ip, #12]
50801   orr r2, r7, r2
50802   tst r1, #256
50803   movne r3, r1, lsr #16
50804   movne r3, r3, asl #16
50805   orreq r3, r2, #768
50806   orrne r2, r2, #768
50807   orrne r3, r3, r2
50808   orreq r3, r3, r1, asl #16
50809   strne r3, [ip, #12]
50810   streq r3, [ip, #12]
50811 .L15882:
50812   mov r3, r0, lsr #16
50813   ands  r2, r3, #15
50814   beq .L15886
50815   ldr r1, [ip, #16]
50816   orr r2, r7, r2
50817   tst r1, #256
50818   movne r3, r1, lsr #16
50819   movne r3, r3, asl #16
50820   orreq r3, r2, #768
50821   orrne r2, r2, #768
50822   orrne r3, r3, r2
50823   orreq r3, r3, r1, asl #16
50824   strne r3, [ip, #16]
50825   streq r3, [ip, #16]
50826 .L15886:
50827   mov r3, r0, lsr #20
50828   ands  r2, r3, #15
50829   beq .L15890
50830   ldr r1, [ip, #20]
50831   orr r2, r7, r2
50832   tst r1, #256
50833   movne r3, r1, lsr #16
50834   movne r3, r3, asl #16
50835   orreq r3, r2, #768
50836   orrne r2, r2, #768
50837   orrne r3, r3, r2
50838   orreq r3, r3, r1, asl #16
50839   strne r3, [ip, #20]
50840   streq r3, [ip, #20]
50841 .L15890:
50842   mov r3, r0, lsr #24
50843   ands  r2, r3, #15
50844   beq .L15894
50845   ldr r1, [ip, #24]
50846   orr r2, r7, r2
50847   tst r1, #256
50848   movne r3, r1, lsr #16
50849   movne r3, r3, asl #16
50850   orreq r3, r2, #768
50851   orrne r2, r2, #768
50852   orrne r3, r3, r2
50853   orreq r3, r3, r1, asl #16
50854   strne r3, [ip, #24]
50855   streq r3, [ip, #24]
50856 .L15894:
50857   movs  r2, r0, lsr #28
50858   beq .L15868
50859   ldr r1, [ip, #28]
50860   orr r2, r7, r2
50861   tst r1, #256
50862   movne r3, r1, lsr #16
50863   movne r3, r3, asl #16
50864   orreq r3, r2, #768
50865   orrne r2, r2, #768
50866   orrne r3, r3, r2
50867   orreq r3, r3, r1, asl #16
50868   strne r3, [ip, #28]
50869   streq r3, [ip, #28]
50870 .L15868:
50871   add r4, r4, #1
50872   cmp r6, r4
50873   add lr, lr, #32
50874   add ip, ip, #32
50875   bne .L15867
50876   mov r3, r6, asl #5
50877   add r8, r8, r3
50878   add r5, r5, r3
50879 .L15865:
50880   ands  lr, sl, #7
50881   beq .L15754
50882   ldr ip, [r8, #0]
50883   mov r4, #0
50884 .L15903:
50885   ands  r3, ip, #15
50886   beq .L15904
50887   ldr r1, [r5, #0]
50888   orr r2, r7, r3
50889   mov r3, r1, lsr #16
50890   orr r0, r2, #768
50891   mov r3, r3, asl #16
50892   orr r2, r2, #768
50893   tst r1, #256
50894   orr r3, r3, r0
50895   orr r2, r2, r1, asl #16
50896   strne r3, [r5, #0]
50897   streq r2, [r5, #0]
50898 .L15904:
50899   add r4, r4, #1
50900   cmp lr, r4
50901   mov ip, ip, lsr #4
50902   add r5, r5, #4
50903   bne .L15903
50904   b .L15754
50905 .L15835:
50906   subs  r2, sl, #8
50907   submi r2, sl, #1
50908   mov r3, r0, lsr #3
50909   mov r2, r2, asr #3
50910   mov r1, lr, asl #22
50911   add r2, r2, r3, asl #4
50912   mov r1, r1, lsr #22
50913   and r3, r0, #7
50914   add r1, r1, r2, asl #1
50915   add r3, r3, r1, asl #2
50916   mov r0, r3, asl #3
50917   ldr r3, [sp, #12]
50918   ldr r4, .L17801+24
50919   cmp r6, r3
50920   add ip, r0, r4
50921   bge .L16581
50922   rsb r0, r6, r3
50923   rsb r7, r0, sl
50924   cmp r7, #0
50925   ble .L15754
50926   ldr r5, [sp, #8]
50927   add r3, r6, sl
50928   cmp r5, r3
50929   bhi .L16584
50930   mov r3, r0, lsr #3
50931   ands  lr, r0, #7
50932   sub r8, ip, r3, asl #6
50933   bne .L16586
50934   ldr r7, [sp, #128]
50935   ldr r5, [sp, #96]
50936 .L16588:
50937   movs  r6, r7, lsr #3
50938   beq .L16666
50939   mov ip, r5
50940   mov lr, r8
50941   mov r4, #0
50942 .L16668:
50943   ldr r2, [lr, #4]
50944   cmp r2, #0
50945   beq .L16669
50946   ands  r1, r2, #255
50947   beq .L16671
50948   ldr r3, [ip, #12]
50949   tst r3, #256
50950   movne r3, r3, lsr #16
50951   movne r3, r3, asl #16
50952   orrne r3, r3, #768
50953   orreq r3, r1, r3, asl #16
50954   orrne r3, r1, r3
50955   orreq r3, r3, #768
50956   strne r3, [ip, #12]
50957   streq r3, [ip, #12]
50958 .L16671:
50959   mov r3, r2, lsr #8
50960   ands  r1, r3, #255
50961   beq .L16675
50962   ldr r3, [ip, #8]
50963   tst r3, #256
50964   movne r3, r3, lsr #16
50965   movne r3, r3, asl #16
50966   orrne r3, r3, #768
50967   orreq r3, r1, r3, asl #16
50968   orrne r3, r1, r3
50969   orreq r3, r3, #768
50970   strne r3, [ip, #8]
50971   streq r3, [ip, #8]
50972 .L16675:
50973   mov r3, r2, lsr #16
50974   ands  r1, r3, #255
50975   beq .L16679
50976   ldr r3, [ip, #4]
50977   tst r3, #256
50978   movne r3, r3, lsr #16
50979   movne r3, r3, asl #16
50980   orrne r3, r3, #768
50981   orreq r3, r1, r3, asl #16
50982   orrne r3, r1, r3
50983   orreq r3, r3, #768
50984   strne r3, [ip, #4]
50985   streq r3, [ip, #4]
50986 .L16679:
50987   movs  r2, r2, lsr #24
50988   beq .L16669
50989   ldr r3, [ip, #0]
50990   tst r3, #256
50991   movne r3, r3, lsr #16
50992   movne r3, r3, asl #16
50993   orrne r3, r3, #768
50994   orreq r3, r2, r3, asl #16
50995   orrne r3, r2, r3
50996   orreq r3, r3, #768
50997   strne r3, [ip, #0]
50998   streq r3, [ip, #0]
50999 .L16669:
51000   ldr r1, [lr, #0]
51001   cmp r1, #0
51002   beq .L16686
51003   ands  r2, r1, #255
51004   beq .L16688
51005   ldr r0, [ip, #28]
51006   tst r0, #256
51007   movne r3, r0, lsr #16
51008   movne r3, r3, asl #16
51009   orreq r3, r2, #768
51010   orrne r2, r2, #768
51011   orrne r3, r3, r2
51012   orreq r3, r3, r0, asl #16
51013   strne r3, [ip, #28]
51014   streq r3, [ip, #28]
51015 .L16688:
51016   mov r3, r1, lsr #8
51017   ands  r2, r3, #255
51018   beq .L16692
51019   ldr r3, [ip, #24]
51020   tst r3, #256
51021   movne r3, r3, lsr #16
51022   movne r3, r3, asl #16
51023   orrne r3, r3, #768
51024   orreq r3, r2, r3, asl #16
51025   orrne r3, r2, r3
51026   orreq r3, r3, #768
51027   strne r3, [ip, #24]
51028   streq r3, [ip, #24]
51029 .L16692:
51030   mov r3, r1, lsr #16
51031   ands  r2, r3, #255
51032   beq .L16696
51033   ldr r3, [ip, #20]
51034   tst r3, #256
51035   movne r3, r3, lsr #16
51036   movne r3, r3, asl #16
51037   orrne r3, r3, #768
51038   orreq r3, r2, r3, asl #16
51039   orrne r3, r2, r3
51040   orreq r3, r3, #768
51041   strne r3, [ip, #20]
51042   streq r3, [ip, #20]
51043 .L16696:
51044   movs  r2, r1, lsr #24
51045   beq .L16686
51046   ldr r1, [ip, #16]
51047   tst r1, #256
51048   movne r3, r1, lsr #16
51049   movne r3, r3, asl #16
51050   orreq r3, r2, #768
51051   orrne r2, r2, #768
51052   orrne r3, r3, r2
51053   orreq r3, r3, r1, asl #16
51054   strne r3, [ip, #16]
51055   streq r3, [ip, #16]
51056 .L16686:
51057   add r4, r4, #1
51058   cmp r6, r4
51059   sub lr, lr, #64
51060   add ip, ip, #32
51061   bne .L16668
51062   rsb r3, r6, r6, asl #26
51063   add r8, r8, r3, asl #6
51064   add r5, r5, r6, asl #5
51065 .L16666:
51066   ands  lr, r7, #7
51067   beq .L15754
51068   cmp lr, #3
51069   ldrls ip, [r8, #4]
51070   bls .L16725
51071   ldr r2, [r8, #4]
51072   cmp r2, #0
51073   beq .L16707
51074   ands  r1, r2, #255
51075   beq .L16709
51076   ldr r3, [r5, #12]
51077   tst r3, #256
51078   movne r3, r3, lsr #16
51079   movne r3, r3, asl #16
51080   orrne r3, r3, #768
51081   orreq r3, r1, r3, asl #16
51082   orrne r3, r1, r3
51083   orreq r3, r3, #768
51084   strne r3, [r5, #12]
51085   streq r3, [r5, #12]
51086 .L16709:
51087   mov r3, r2, lsr #8
51088   ands  r1, r3, #255
51089   beq .L16713
51090   ldr r3, [r5, #8]
51091   tst r3, #256
51092   movne r3, r3, lsr #16
51093   movne r3, r3, asl #16
51094   orrne r3, r3, #768
51095   orreq r3, r1, r3, asl #16
51096   orrne r3, r1, r3
51097   orreq r3, r3, #768
51098   strne r3, [r5, #8]
51099   streq r3, [r5, #8]
51100 .L16713:
51101   mov r3, r2, lsr #16
51102   ands  r1, r3, #255
51103   beq .L16717
51104   ldr r3, [r5, #4]
51105   tst r3, #256
51106   movne r3, r3, lsr #16
51107   movne r3, r3, asl #16
51108   orrne r3, r3, #768
51109   orreq r3, r1, r3, asl #16
51110   orrne r3, r1, r3
51111   orreq r3, r3, #768
51112   strne r3, [r5, #4]
51113   streq r3, [r5, #4]
51114 .L16717:
51115   movs  r2, r2, lsr #24
51116   beq .L16707
51117   ldr r3, [r5, #0]
51118   tst r3, #256
51119   movne r3, r3, lsr #16
51120   movne r3, r3, asl #16
51121   orrne r3, r3, #768
51122   orreq r3, r2, r3, asl #16
51123   orrne r3, r2, r3
51124   orreq r3, r3, #768
51125   strne r3, [r5, #0]
51126   streq r3, [r5, #0]
51127 .L16707:
51128   subs  lr, lr, #4
51129   ldr ip, [r8, #0]
51130   addne r5, r5, #16
51131   beq .L15754
51132 .L16725:
51133   mov r4, #0
51134 .L16726:
51135   movs  r0, ip, lsr #24
51136   beq .L16727
51137   ldr r2, [r5, #0]
51138   orr r1, r0, #768
51139   mov r3, r2, lsr #16
51140   orr r0, r0, #768
51141   mov r3, r3, asl #16
51142   tst r2, #256
51143   orr r3, r3, r1
51144   orr r0, r0, r2, asl #16
51145   strne r3, [r5, #0]
51146   streq r0, [r5, #0]
51147 .L16727:
51148   add r4, r4, #1
51149   cmp r4, lr
51150   mov ip, ip, asl #8
51151   add r5, r5, #4
51152   bcc .L16726
51153   b .L15754
51154 .L16997:
51155   subs  r2, sl, #8
51156   submi r2, sl, #1
51157   mov r3, r0, lsr #3
51158   mov r2, r2, asr #3
51159   mov r1, lr, asl #22
51160   add r2, r2, r3, asl #4
51161   mov r1, r1, lsr #22
51162   add r1, r1, r2, asl #1
51163   and r3, r0, #7
51164   ldr r5, [sp, #12]
51165   add r3, r3, r1, asl #2
51166   ldr r7, .L17801+24
51167   mov r0, r3, asl #3
51168   cmp r6, r5
51169   add r2, r0, r7
51170   bge .L17479
51171   rsb r0, r6, r5
51172   rsb lr, r0, sl
51173   cmp lr, #0
51174   ble .L15754
51175   ldr r8, [sp, #8]
51176   add r3, r6, sl
51177   cmp r8, r3
51178   bhi .L17482
51179   mov r3, r0, lsr #3
51180   ands  ip, r0, #7
51181   sub r6, r2, r3, asl #6
51182   bne .L17484
51183   ldr r5, [sp, #128]
51184   ldr r4, [sp, #96]
51185 .L17486:
51186   movs  lr, r5, lsr #3
51187   beq .L17544
51188   mov r1, r4
51189   mov r0, r6
51190   mov ip, #0
51191 .L17546:
51192   ldr r2, [r0, #4]
51193   cmp r2, #0
51194   beq .L17547
51195   ands  r3, r2, #255
51196   ldrne r7, [sp, #52]
51197   orrne r3, r7, r3
51198   strne r3, [r1, #12]
51199   mov r3, r2, lsr #8
51200   ands  r3, r3, #255
51201   ldrne r8, [sp, #52]
51202   orrne r3, r8, r3
51203   strne r3, [r1, #8]
51204   mov r3, r2, lsr #16
51205   ands  r3, r3, #255
51206   ldrne r7, [sp, #52]
51207   orrne r3, r7, r3
51208   strne r3, [r1, #4]
51209   movs  r3, r2, lsr #24
51210   ldrne r8, [sp, #52]
51211   orrne r3, r8, r3
51212   strne r3, [r1, #0]
51213 .L17547:
51214   ldr r2, [r0, #0]
51215   cmp r2, #0
51216   beq .L17556
51217   ands  r3, r2, #255
51218   ldrne r7, [sp, #52]
51219   orrne r3, r7, r3
51220   strne r3, [r1, #28]
51221   mov r3, r2, lsr #8
51222   ands  r3, r3, #255
51223   ldrne r8, [sp, #52]
51224   orrne r3, r8, r3
51225   strne r3, [r1, #24]
51226   mov r3, r2, lsr #16
51227   ands  r3, r3, #255
51228   ldrne r7, [sp, #52]
51229   orrne r3, r7, r3
51230   strne r3, [r1, #20]
51231   movs  r3, r2, lsr #24
51232   ldrne r8, [sp, #52]
51233   orrne r3, r8, r3
51234   strne r3, [r1, #16]
51235 .L17556:
51236   add ip, ip, #1
51237   cmp ip, lr
51238   sub r0, r0, #64
51239   add r1, r1, #32
51240   bne .L17546
51241   rsb r3, lr, lr, asl #26
51242   add r6, r6, r3, asl #6
51243   add r4, r4, lr, asl #5
51244 .L17544:
51245   ands  r0, r5, #7
51246   beq .L15754
51247   cmp r0, #3
51248   ldrls r2, [r6, #4]
51249   bls .L17579
51250   ldr r2, [r6, #4]
51251   cmp r2, #0
51252   beq .L17569
51253   ands  r3, r2, #255
51254   ldrne ip, [sp, #52]
51255   orrne r3, ip, r3
51256   strne r3, [r4, #12]
51257   mov r3, r2, lsr #8
51258   ands  r3, r3, #255
51259   ldrne lr, [sp, #52]
51260   orrne r3, lr, r3
51261   strne r3, [r4, #8]
51262   mov r3, r2, lsr #16
51263   ands  r3, r3, #255
51264   ldrne r1, [sp, #52]
51265   orrne r3, r1, r3
51266   strne r3, [r4, #4]
51267   movs  r3, r2, lsr #24
51268   ldrne r2, [sp, #52]
51269   orrne r3, r2, r3
51270   strne r3, [r4, #0]
51271 .L17569:
51272   subs  r0, r0, #4
51273   ldr r2, [r6, #0]
51274   addne r4, r4, #16
51275   beq .L15754
51276 .L17579:
51277   mov r1, #0
51278 .L17580:
51279   ldr r5, [sp, #52]
51280   movs  r3, r2, lsr #24
51281   orr r3, r5, r3
51282   strne r3, [r4, r1, asl #2]
51283   add r1, r1, #1
51284   cmp r0, r1
51285   mov r2, r2, asl #8
51286   bhi .L17580
51287   b .L15754
51288 .L15833:
51289   mov r3, lr, asl #22
51290   mov r1, r0, lsr #3
51291   subs  r2, sl, #8
51292   mov r3, r3, lsr #22
51293   submi r2, sl, #1
51294   add r3, r3, r1, asl #5
51295   add r3, r3, r2, asr #3
51296   and r1, r0, #7
51297   ldr ip, [sp, #12]
51298   add r1, r1, r3, asl #3
51299   mov r3, lr, lsr #8
51300   ldr lr, .L17801+24
51301   cmp r6, ip
51302   and r7, r3, #240
51303   add r0, lr, r1, asl #2
51304   bge .L16041
51305   rsb r4, r6, ip
51306   rsb lr, r4, sl
51307   cmp lr, #0
51308   ble .L15754
51309   ldr r1, [sp, #8]
51310   add r3, r6, sl
51311   cmp r1, r3
51312   bhi .L16044
51313   mov r3, r4, lsr #3
51314   ands  lr, r4, #7
51315   sub ip, r0, r3, asl #5
51316   bne .L16046
51317   ldr sl, [sp, #128]
51318   ldr r5, [sp, #96]
51319 .L16048:
51320   movs  r8, sl, lsr #3
51321   beq .L16069
51322   mov r4, r5
51323   mov lr, ip
51324   mov r6, #0
51325 .L16071:
51326   ldr r0, [lr, #0]
51327   cmp r0, #0
51328   beq .L16072
51329   ands  r2, r0, #15
51330   beq .L16074
51331   ldr r1, [r4, #28]
51332   orr r2, r7, r2
51333   tst r1, #256
51334   movne r3, r1, lsr #16
51335   movne r3, r3, asl #16
51336   orreq r3, r2, #768
51337   orrne r2, r2, #768
51338   orrne r3, r3, r2
51339   orreq r3, r3, r1, asl #16
51340   strne r3, [r4, #28]
51341   streq r3, [r4, #28]
51342 .L16074:
51343   mov r3, r0, lsr #4
51344   ands  r2, r3, #15
51345   beq .L16078
51346   ldr r1, [r4, #24]
51347   orr r2, r7, r2
51348   tst r1, #256
51349   movne r3, r1, lsr #16
51350   movne r3, r3, asl #16
51351   orreq r3, r2, #768
51352   orrne r2, r2, #768
51353   orrne r3, r3, r2
51354   orreq r3, r3, r1, asl #16
51355   strne r3, [r4, #24]
51356   streq r3, [r4, #24]
51357 .L16078:
51358   mov r3, r0, lsr #8
51359   ands  r2, r3, #15
51360   beq .L16082
51361   ldr r1, [r4, #20]
51362   orr r2, r7, r2
51363   tst r1, #256
51364   movne r3, r1, lsr #16
51365   movne r3, r3, asl #16
51366   orreq r3, r2, #768
51367   orrne r2, r2, #768
51368   orrne r3, r3, r2
51369   orreq r3, r3, r1, asl #16
51370   strne r3, [r4, #20]
51371   streq r3, [r4, #20]
51372 .L16082:
51373   mov r3, r0, lsr #12
51374   ands  r2, r3, #15
51375   beq .L16086
51376   ldr r1, [r4, #16]
51377   orr r2, r7, r2
51378   tst r1, #256
51379   movne r3, r1, lsr #16
51380   movne r3, r3, asl #16
51381   orreq r3, r2, #768
51382   orrne r2, r2, #768
51383   orrne r3, r3, r2
51384   orreq r3, r3, r1, asl #16
51385   strne r3, [r4, #16]
51386   streq r3, [r4, #16]
51387 .L16086:
51388   mov r3, r0, lsr #16
51389   ands  r2, r3, #15
51390   beq .L16090
51391   ldr r1, [r4, #12]
51392   orr r2, r7, r2
51393   tst r1, #256
51394   movne r3, r1, lsr #16
51395   movne r3, r3, asl #16
51396   orreq r3, r2, #768
51397   orrne r2, r2, #768
51398   orrne r3, r3, r2
51399   orreq r3, r3, r1, asl #16
51400   strne r3, [r4, #12]
51401   streq r3, [r4, #12]
51402 .L16090:
51403   mov r3, r0, lsr #20
51404   ands  r2, r3, #15
51405   beq .L16094
51406   ldr r1, [r4, #8]
51407   orr r2, r7, r2
51408   tst r1, #256
51409   movne r3, r1, lsr #16
51410   movne r3, r3, asl #16
51411   orreq r3, r2, #768
51412   orrne r2, r2, #768
51413   orrne r3, r3, r2
51414   orreq r3, r3, r1, asl #16
51415   strne r3, [r4, #8]
51416   streq r3, [r4, #8]
51417 .L16094:
51418   mov r3, r0, lsr #24
51419   ands  r2, r3, #15
51420   beq .L16098
51421   ldr r1, [r4, #4]
51422   orr r2, r7, r2
51423   tst r1, #256
51424   movne r3, r1, lsr #16
51425   movne r3, r3, asl #16
51426   orreq r3, r2, #768
51427   orrne r2, r2, #768
51428   orrne r3, r3, r2
51429   orreq r3, r3, r1, asl #16
51430   strne r3, [r4, #4]
51431   streq r3, [r4, #4]
51432 .L16098:
51433   movs  r2, r0, lsr #28
51434   beq .L16072
51435   ldr r1, [r4, #0]
51436   orr r2, r7, r2
51437   tst r1, #256
51438   movne r3, r1, lsr #16
51439   movne r3, r3, asl #16
51440   orreq r3, r2, #768
51441   orrne r2, r2, #768
51442   orrne r3, r3, r2
51443   orreq r3, r3, r1, asl #16
51444   strne r3, [r4, #0]
51445   streq r3, [r4, #0]
51446 .L16072:
51447   add r6, r6, #1
51448   cmp r8, r6
51449   sub lr, lr, #32
51450   add r4, r4, #32
51451   bne .L16071
51452   rsb r3, r8, r8, asl #27
51453   add ip, ip, r3, asl #5
51454   add r5, r5, r8, asl #5
51455 .L16069:
51456   ands  lr, sl, #7
51457   beq .L15754
51458   ldr ip, [ip, #0]
51459   mov r4, #0
51460 .L16107:
51461   movs  r3, ip, lsr #28
51462   beq .L16108
51463   ldr r1, [r5, #0]
51464   orr r2, r7, r3
51465   mov r3, r1, lsr #16
51466   orr r0, r2, #768
51467   mov r3, r3, asl #16
51468   orr r2, r2, #768
51469   tst r1, #256
51470   orr r3, r3, r0
51471   orr r2, r2, r1, asl #16
51472   strne r3, [r5, #0]
51473   streq r2, [r5, #0]
51474 .L16108:
51475   add r4, r4, #1
51476   cmp r4, lr
51477   mov ip, ip, asl #4
51478   add r5, r5, #4
51479   bne .L16107
51480   b .L15754
51481 .L16041:
51482   ldr r1, [sp, #8]
51483   add r3, r6, sl
51484   cmp r1, r3
51485   bls .L17761
51486   cmp sl, #0
51487   add r3, sl, #7
51488   movge r3, sl
51489   movs  lr, r3, asr #3
51490   beq .L15754
51491   ldr r3, [sp, #4]
51492   mov ip, #0
51493   add r1, r3, r6, asl #2
51494   b .L16210
51495 .L17762:
51496   sub r0, r0, #32
51497   add r1, r1, #32
51498 .L16210:
51499   ldr r5, [r0, #0]
51500   cmp r5, #0
51501   beq .L16211
51502   ands  r2, r5, #15
51503   beq .L16213
51504   ldr r4, [r1, #28]
51505   orr r2, r7, r2
51506   tst r4, #256
51507   movne r3, r4, lsr #16
51508   movne r3, r3, asl #16
51509   orreq r3, r2, #768
51510   orrne r2, r2, #768
51511   orrne r3, r3, r2
51512   orreq r3, r3, r4, asl #16
51513   strne r3, [r1, #28]
51514   streq r3, [r1, #28]
51515 .L16213:
51516   mov r3, r5, lsr #4
51517   ands  r2, r3, #15
51518   beq .L16217
51519   ldr r4, [r1, #24]
51520   orr r2, r7, r2
51521   tst r4, #256
51522   movne r3, r4, lsr #16
51523   movne r3, r3, asl #16
51524   orreq r3, r2, #768
51525   orrne r2, r2, #768
51526   orrne r3, r3, r2
51527   orreq r3, r3, r4, asl #16
51528   strne r3, [r1, #24]
51529   streq r3, [r1, #24]
51530 .L16217:
51531   mov r3, r5, lsr #8
51532   ands  r2, r3, #15
51533   beq .L16221
51534   ldr r4, [r1, #20]
51535   orr r2, r7, r2
51536   tst r4, #256
51537   movne r3, r4, lsr #16
51538   movne r3, r3, asl #16
51539   orreq r3, r2, #768
51540   orrne r2, r2, #768
51541   orrne r3, r3, r2
51542   orreq r3, r3, r4, asl #16
51543   strne r3, [r1, #20]
51544   streq r3, [r1, #20]
51545 .L16221:
51546   mov r3, r5, lsr #12
51547   ands  r2, r3, #15
51548   beq .L16225
51549   ldr r4, [r1, #16]
51550   orr r2, r7, r2
51551   tst r4, #256
51552   movne r3, r4, lsr #16
51553   movne r3, r3, asl #16
51554   orreq r3, r2, #768
51555   orrne r2, r2, #768
51556   orrne r3, r3, r2
51557   orreq r3, r3, r4, asl #16
51558   strne r3, [r1, #16]
51559   streq r3, [r1, #16]
51560 .L16225:
51561   mov r3, r5, lsr #16
51562   ands  r2, r3, #15
51563   beq .L16229
51564   ldr r4, [r1, #12]
51565   orr r2, r7, r2
51566   tst r4, #256
51567   movne r3, r4, lsr #16
51568   movne r3, r3, asl #16
51569   orreq r3, r2, #768
51570   orrne r2, r2, #768
51571   orrne r3, r3, r2
51572   orreq r3, r3, r4, asl #16
51573   strne r3, [r1, #12]
51574   streq r3, [r1, #12]
51575 .L16229:
51576   mov r3, r5, lsr #20
51577   ands  r2, r3, #15
51578   beq .L16233
51579   ldr r4, [r1, #8]
51580   orr r2, r7, r2
51581   tst r4, #256
51582   movne r3, r4, lsr #16
51583   movne r3, r3, asl #16
51584   orreq r3, r2, #768
51585   orrne r2, r2, #768
51586   orrne r3, r3, r2
51587   orreq r3, r3, r4, asl #16
51588   strne r3, [r1, #8]
51589   streq r3, [r1, #8]
51590 .L16233:
51591   mov r3, r5, lsr #24
51592   ands  r2, r3, #15
51593   beq .L16237
51594   ldr r4, [r1, #4]
51595   orr r2, r7, r2
51596   tst r4, #256
51597   movne r3, r4, lsr #16
51598   movne r3, r3, asl #16
51599   orreq r3, r2, #768
51600   orrne r2, r2, #768
51601   orrne r3, r3, r2
51602   orreq r3, r3, r4, asl #16
51603   strne r3, [r1, #4]
51604   streq r3, [r1, #4]
51605 .L16237:
51606   movs  r2, r5, lsr #28
51607   beq .L16211
51608   ldr r4, [r1, #0]
51609   orr r2, r7, r2
51610   tst r4, #256
51611   movne r3, r4, lsr #16
51612   movne r3, r3, asl #16
51613   orreq r3, r2, #768
51614   orrne r2, r2, #768
51615   orrne r3, r3, r2
51616   orreq r3, r3, r4, asl #16
51617   strne r3, [r1, #0]
51618   streq r3, [r1, #0]
51619 .L16211:
51620   add ip, ip, #1
51621   cmp lr, ip
51622   bne .L17762
51623   b .L15754
51624 .L16999:
51625   ldr ip, [sp, #8]
51626   add r3, r6, sl
51627   cmp ip, r3
51628   bls .L17763
51629   cmp sl, #0
51630   add r3, sl, #7
51631   movge r3, sl
51632   movs  ip, r3, asr #3
51633   beq .L15754
51634   ldr r8, [sp, #4]
51635   mov r2, #0
51636   add r1, r8, r6, asl #2
51637   b .L17110
51638 .L17764:
51639   add r0, r0, #32
51640   add r1, r1, #32
51641 .L17110:
51642   ldr r4, [r0, #0]
51643   cmp r4, #0
51644   beq .L17111
51645   ands  r3, r4, #15
51646   ldrne lr, [sp, #52]
51647   orrne r3, lr, r3
51648   orrne r3, r7, r3
51649   strne r3, [r1, #0]
51650   mov r3, r4, lsr #4
51651   ands  r3, r3, #15
51652   ldrne r5, [sp, #52]
51653   orrne r3, r5, r3
51654   orrne r3, r7, r3
51655   strne r3, [r1, #4]
51656   mov r3, r4, lsr #8
51657   ands  r3, r3, #15
51658   ldrne r8, [sp, #52]
51659   orrne r3, r8, r3
51660   orrne r3, r7, r3
51661   strne r3, [r1, #8]
51662   mov r3, r4, lsr #12
51663   ands  r3, r3, #15
51664   ldrne lr, [sp, #52]
51665   orrne r3, lr, r3
51666   orrne r3, r7, r3
51667   strne r3, [r1, #12]
51668   mov r3, r4, lsr #16
51669   ands  r3, r3, #15
51670   ldrne r5, [sp, #52]
51671   orrne r3, r5, r3
51672   orrne r3, r7, r3
51673   strne r3, [r1, #16]
51674   mov r3, r4, lsr #20
51675   ands  r3, r3, #15
51676   ldrne r8, [sp, #52]
51677   orrne r3, r8, r3
51678   orrne r3, r7, r3
51679   strne r3, [r1, #20]
51680   mov r3, r4, lsr #24
51681   ands  r3, r3, #15
51682   ldrne lr, [sp, #52]
51683   orrne r3, lr, r3
51684   orrne r3, r7, r3
51685   strne r3, [r1, #24]
51686   movs  r3, r4, lsr #28
51687   ldrne r4, [sp, #52]
51688   orrne r3, r4, r3
51689   orrne r3, r7, r3
51690   strne r3, [r1, #28]
51691 .L17111:
51692   add r2, r2, #1
51693   cmp ip, r2
51694   bne .L17764
51695   b .L15754
51696 .L17259:
51697   ldr r8, [sp, #8]
51698   add r3, r6, sl
51699   cmp r8, r3
51700   bls .L17765
51701   cmp sl, #0
51702   add r3, sl, #7
51703   movge r3, sl
51704   movs  lr, r3, asr #3
51705   beq .L15754
51706   ldr r3, [sp, #4]
51707   mov r2, #0
51708   add r1, r3, r6, asl #2
51709   ldr r3, .L17803+4
51710   add r0, r0, r3
51711   b .L17459
51712 .L17766:
51713   add ip, ip, #64
51714   add r1, r1, #32
51715 .L17459:
51716   ldr r4, [ip, #0]
51717   cmp r4, #0
51718   beq .L17460
51719   ands  r3, r4, #255
51720   ldrne r5, [sp, #52]
51721   orrne r3, r5, r3
51722   strne r3, [r1, #0]
51723   mov r3, r4, lsr #8
51724   ands  r3, r3, #255
51725   ldrne r7, [sp, #52]
51726   orrne r3, r7, r3
51727   strne r3, [r1, #4]
51728   mov r3, r4, lsr #16
51729   ands  r3, r3, #255
51730   ldrne r8, [sp, #52]
51731   orrne r3, r8, r3
51732   strne r3, [r1, #8]
51733   movs  r3, r4, lsr #24
51734   ldrne r4, [sp, #52]
51735   orrne r3, r4, r3
51736   strne r3, [r1, #12]
51737 .L17460:
51738   ldr r4, [r0, #-60]
51739   cmp r4, #0
51740   beq .L17469
51741   ands  r3, r4, #255
51742   ldrne r5, [sp, #52]
51743   orrne r3, r5, r3
51744   strne r3, [r1, #16]
51745   mov r3, r4, lsr #8
51746   ands  r3, r3, #255
51747   ldrne r7, [sp, #52]
51748   orrne r3, r7, r3
51749   strne r3, [r1, #20]
51750   mov r3, r4, lsr #16
51751   ands  r3, r3, #255
51752   ldrne r8, [sp, #52]
51753   orrne r3, r8, r3
51754   strne r3, [r1, #24]
51755   movs  r3, r4, lsr #24
51756   ldrne r4, [sp, #52]
51757   orrne r3, r4, r3
51758   strne r3, [r1, #28]
51759 .L17469:
51760   add r2, r2, #1
51761   cmp lr, r2
51762   add r0, r0, #64
51763   bne .L17766
51764   b .L15754
51765 .L15837:
51766   ldr r4, [sp, #8]
51767   add r3, r6, sl
51768   cmp r4, r3
51769   bls .L17767
51770   cmp sl, #0
51771   add r3, sl, #7
51772   movge r3, sl
51773   movs  lr, r3, asr #3
51774   beq .L15754
51775   ldr r8, [sp, #4]
51776   mov ip, #0
51777   add r1, r8, r6, asl #2
51778   b .L16006
51779 .L17768:
51780   add r0, r0, #32
51781   add r1, r1, #32
51782 .L16006:
51783   ldr r5, [r0, #0]
51784   cmp r5, #0
51785   beq .L16007
51786   ands  r2, r5, #15
51787   beq .L16009
51788   ldr r4, [r1, #0]
51789   orr r2, r7, r2
51790   tst r4, #256
51791   movne r3, r4, lsr #16
51792   movne r3, r3, asl #16
51793   orreq r3, r2, #768
51794   orrne r2, r2, #768
51795   orrne r3, r3, r2
51796   orreq r3, r3, r4, asl #16
51797   strne r3, [r1, #0]
51798   streq r3, [r1, #0]
51799 .L16009:
51800   mov r3, r5, lsr #4
51801   ands  r2, r3, #15
51802   beq .L16013
51803   ldr r4, [r1, #4]
51804   orr r2, r7, r2
51805   tst r4, #256
51806   movne r3, r4, lsr #16
51807   movne r3, r3, asl #16
51808   orreq r3, r2, #768
51809   orrne r2, r2, #768
51810   orrne r3, r3, r2
51811   orreq r3, r3, r4, asl #16
51812   strne r3, [r1, #4]
51813   streq r3, [r1, #4]
51814 .L16013:
51815   mov r3, r5, lsr #8
51816   ands  r2, r3, #15
51817   beq .L16017
51818   ldr r4, [r1, #8]
51819   orr r2, r7, r2
51820   tst r4, #256
51821   movne r3, r4, lsr #16
51822   movne r3, r3, asl #16
51823   orreq r3, r2, #768
51824   orrne r2, r2, #768
51825   orrne r3, r3, r2
51826   orreq r3, r3, r4, asl #16
51827   strne r3, [r1, #8]
51828   streq r3, [r1, #8]
51829 .L16017:
51830   mov r3, r5, lsr #12
51831   ands  r2, r3, #15
51832   beq .L16021
51833   ldr r4, [r1, #12]
51834   orr r2, r7, r2
51835   tst r4, #256
51836   movne r3, r4, lsr #16
51837   movne r3, r3, asl #16
51838   orreq r3, r2, #768
51839   orrne r2, r2, #768
51840   orrne r3, r3, r2
51841   orreq r3, r3, r4, asl #16
51842   strne r3, [r1, #12]
51843   streq r3, [r1, #12]
51844 .L16021:
51845   mov r3, r5, lsr #16
51846   ands  r2, r3, #15
51847   beq .L16025
51848   ldr r4, [r1, #16]
51849   orr r2, r7, r2
51850   tst r4, #256
51851   movne r3, r4, lsr #16
51852   movne r3, r3, asl #16
51853   orreq r3, r2, #768
51854   orrne r2, r2, #768
51855   orrne r3, r3, r2
51856   orreq r3, r3, r4, asl #16
51857   strne r3, [r1, #16]
51858   streq r3, [r1, #16]
51859 .L16025:
51860   mov r3, r5, lsr #20
51861   ands  r2, r3, #15
51862   beq .L16029
51863   ldr r4, [r1, #20]
51864   orr r2, r7, r2
51865   tst r4, #256
51866   movne r3, r4, lsr #16
51867   movne r3, r3, asl #16
51868   orreq r3, r2, #768
51869   orrne r2, r2, #768
51870   orrne r3, r3, r2
51871   orreq r3, r3, r4, asl #16
51872   strne r3, [r1, #20]
51873   streq r3, [r1, #20]
51874 .L16029:
51875   mov r3, r5, lsr #24
51876   ands  r2, r3, #15
51877   beq .L16033
51878   ldr r4, [r1, #24]
51879   orr r2, r7, r2
51880   tst r4, #256
51881   movne r3, r4, lsr #16
51882   movne r3, r3, asl #16
51883   orreq r3, r2, #768
51884   orrne r2, r2, #768
51885   orrne r3, r3, r2
51886   orreq r3, r3, r4, asl #16
51887   strne r3, [r1, #24]
51888   streq r3, [r1, #24]
51889 .L16033:
51890   movs  r2, r5, lsr #28
51891   beq .L16007
51892   ldr r4, [r1, #28]
51893   orr r2, r7, r2
51894   tst r4, #256
51895   movne r3, r4, lsr #16
51896   movne r3, r3, asl #16
51897   orreq r3, r2, #768
51898   orrne r2, r2, #768
51899   orrne r3, r3, r2
51900   orreq r3, r3, r4, asl #16
51901   strne r3, [r1, #28]
51902   streq r3, [r1, #28]
51903 .L16007:
51904   add ip, ip, #1
51905   cmp lr, ip
51906   bne .L17768
51907   b .L15754
51908 .L17129:
51909   ldr lr, [sp, #8]
51910   add r3, r6, sl
51911   cmp lr, r3
51912   bls .L17769
51913   cmp sl, #0
51914   add r3, sl, #7
51915   movge r3, sl
51916   movs  ip, r3, asr #3
51917   beq .L15754
51918   ldr r8, [sp, #4]
51919   mov r2, #0
51920   add r1, r8, r6, asl #2
51921   b .L17240
51922 .L17770:
51923   sub r0, r0, #32
51924   add r1, r1, #32
51925 .L17240:
51926   ldr r4, [r0, #0]
51927   cmp r4, #0
51928   beq .L17241
51929   ands  r3, r4, #15
51930   ldrne lr, [sp, #52]
51931   orrne r3, lr, r3
51932   orrne r3, r7, r3
51933   strne r3, [r1, #28]
51934   mov r3, r4, lsr #4
51935   ands  r3, r3, #15
51936   ldrne r5, [sp, #52]
51937   orrne r3, r5, r3
51938   orrne r3, r7, r3
51939   strne r3, [r1, #24]
51940   mov r3, r4, lsr #8
51941   ands  r3, r3, #15
51942   ldrne r8, [sp, #52]
51943   orrne r3, r8, r3
51944   orrne r3, r7, r3
51945   strne r3, [r1, #20]
51946   mov r3, r4, lsr #12
51947   ands  r3, r3, #15
51948   ldrne lr, [sp, #52]
51949   orrne r3, lr, r3
51950   orrne r3, r7, r3
51951   strne r3, [r1, #16]
51952   mov r3, r4, lsr #16
51953   ands  r3, r3, #15
51954   ldrne r5, [sp, #52]
51955   orrne r3, r5, r3
51956   orrne r3, r7, r3
51957   strne r3, [r1, #12]
51958   mov r3, r4, lsr #20
51959   ands  r3, r3, #15
51960   ldrne r8, [sp, #52]
51961   orrne r3, r8, r3
51962   orrne r3, r7, r3
51963   strne r3, [r1, #8]
51964   mov r3, r4, lsr #24
51965   ands  r3, r3, #15
51966   ldrne lr, [sp, #52]
51967   orrne r3, lr, r3
51968   orrne r3, r7, r3
51969   strne r3, [r1, #4]
51970   movs  r3, r4, lsr #28
51971   ldrne r4, [sp, #52]
51972   orrne r3, r4, r3
51973   orrne r3, r7, r3
51974   strne r3, [r1, #0]
51975 .L17241:
51976   add r2, r2, #1
51977   cmp ip, r2
51978   bne .L17770
51979   b .L15754
51980 .L16581:
51981   ldr r2, [sp, #8]
51982   add r3, r6, sl
51983   cmp r2, r3
51984   bls .L17771
51985   cmp sl, #0
51986   add r3, sl, #7
51987   movge r3, sl
51988   movs  r7, r3, asr #3
51989   beq .L15754
51990   ldr r4, [sp, #4]
51991   ldr r3, .L17803
51992   add r1, r4, r6, asl #2
51993   add r0, r0, r3
51994   mov lr, #0
51995   b .L16881
51996 .L17772:
51997   sub ip, ip, #64
51998   add r1, r1, #32
51999 .L16881:
52000   ldr r2, [r0, #68]
52001   cmp r2, #0
52002   beq .L16882
52003   ands  r4, r2, #255
52004   beq .L16884
52005   ldr r3, [r1, #12]
52006   tst r3, #256
52007   movne r3, r3, lsr #16
52008   movne r3, r3, asl #16
52009   orrne r3, r3, #768
52010   orreq r3, r4, r3, asl #16
52011   orrne r3, r4, r3
52012   orreq r3, r3, #768
52013   strne r3, [r1, #12]
52014   streq r3, [r1, #12]
52015 .L16884:
52016   mov r3, r2, lsr #8
52017   ands  r4, r3, #255
52018   beq .L16888
52019   ldr r3, [r1, #8]
52020   tst r3, #256
52021   movne r3, r3, lsr #16
52022   movne r3, r3, asl #16
52023   orrne r3, r3, #768
52024   orreq r3, r4, r3, asl #16
52025   orrne r3, r4, r3
52026   orreq r3, r3, #768
52027   strne r3, [r1, #8]
52028   streq r3, [r1, #8]
52029 .L16888:
52030   mov r3, r2, lsr #16
52031   ands  r4, r3, #255
52032   beq .L16892
52033   ldr r3, [r1, #4]
52034   tst r3, #256
52035   movne r3, r3, lsr #16
52036   movne r3, r3, asl #16
52037   orrne r3, r3, #768
52038   orreq r3, r4, r3, asl #16
52039   orrne r3, r4, r3
52040   orreq r3, r3, #768
52041   strne r3, [r1, #4]
52042   streq r3, [r1, #4]
52043 .L16892:
52044   movs  r2, r2, lsr #24
52045   beq .L16882
52046   ldr r3, [r1, #0]
52047   tst r3, #256
52048   movne r3, r3, lsr #16
52049   movne r3, r3, asl #16
52050   orrne r3, r3, #768
52051   orreq r3, r2, r3, asl #16
52052   orrne r3, r2, r3
52053   orreq r3, r3, #768
52054   strne r3, [r1, #0]
52055   streq r3, [r1, #0]
52056 .L16882:
52057   ldr r4, [ip, #0]
52058   cmp r4, #0
52059   beq .L16899
52060   ands  r2, r4, #255
52061   beq .L16901
52062   ldr r5, [r1, #28]
52063   tst r5, #256
52064   movne r3, r5, lsr #16
52065   movne r3, r3, asl #16
52066   orreq r3, r2, #768
52067   orrne r2, r2, #768
52068   orrne r3, r3, r2
52069   orreq r3, r3, r5, asl #16
52070   strne r3, [r1, #28]
52071   streq r3, [r1, #28]
52072 .L16901:
52073   mov r3, r4, lsr #8
52074   ands  r2, r3, #255
52075   beq .L16905
52076   ldr r3, [r1, #24]
52077   tst r3, #256
52078   movne r3, r3, lsr #16
52079   movne r3, r3, asl #16
52080   orrne r3, r3, #768
52081   orreq r3, r2, r3, asl #16
52082   orrne r3, r2, r3
52083   orreq r3, r3, #768
52084   strne r3, [r1, #24]
52085   streq r3, [r1, #24]
52086 .L16905:
52087   mov r3, r4, lsr #16
52088   ands  r2, r3, #255
52089   beq .L16909
52090   ldr r3, [r1, #20]
52091   tst r3, #256
52092   movne r3, r3, lsr #16
52093   movne r3, r3, asl #16
52094   orrne r3, r3, #768
52095   orreq r3, r2, r3, asl #16
52096   orrne r3, r2, r3
52097   orreq r3, r3, #768
52098   strne r3, [r1, #20]
52099   streq r3, [r1, #20]
52100 .L16909:
52101   movs  r2, r4, lsr #24
52102   beq .L16899
52103   ldr r4, [r1, #16]
52104   tst r4, #256
52105   movne r3, r4, lsr #16
52106   movne r3, r3, asl #16
52107   orreq r3, r2, #768
52108   orrne r2, r2, #768
52109   orrne r3, r3, r2
52110   orreq r3, r3, r4, asl #16
52111   strne r3, [r1, #16]
52112   streq r3, [r1, #16]
52113 .L16899:
52114   add lr, lr, #1
52115   cmp r7, lr
52116   sub r0, r0, #64
52117   bne .L17772
52118   b .L15754
52119 .L16245:
52120   ldr r7, [sp, #8]
52121   add r3, r6, sl
52122   cmp r7, r3
52123   bls .L17773
52124   cmp sl, #0
52125   add r3, sl, #7
52126   movge r3, sl
52127   movs  r5, r3, asr #3
52128   beq .L15754
52129   ldr r2, [sp, #4]
52130   ldr r3, .L17803+4
52131   add r1, r2, r6, asl #2
52132   add r0, r0, r3
52133   mov lr, #0
52134   b .L16545
52135 .L17774:
52136   add ip, ip, #64
52137   add r1, r1, #32
52138 .L16545:
52139   ldr r2, [ip, #0]
52140   cmp r2, #0
52141   beq .L16546
52142   ands  r4, r2, #255
52143   beq .L16548
52144   ldr r3, [r1, #0]
52145   tst r3, #256
52146   movne r3, r3, lsr #16
52147   movne r3, r3, asl #16
52148   orrne r3, r3, #768
52149   orreq r3, r4, r3, asl #16
52150   orrne r3, r4, r3
52151   orreq r3, r3, #768
52152   strne r3, [r1, #0]
52153   streq r3, [r1, #0]
52154 .L16548:
52155   mov r3, r2, lsr #8
52156   ands  r4, r3, #255
52157   beq .L16552
52158   ldr r3, [r1, #4]
52159   tst r3, #256
52160   movne r3, r3, lsr #16
52161   movne r3, r3, asl #16
52162   orrne r3, r3, #768
52163   orreq r3, r4, r3, asl #16
52164   orrne r3, r4, r3
52165   orreq r3, r3, #768
52166   strne r3, [r1, #4]
52167   streq r3, [r1, #4]
52168 .L16552:
52169   mov r3, r2, lsr #16
52170   ands  r4, r3, #255
52171   beq .L16556
52172   ldr r3, [r1, #8]
52173   tst r3, #256
52174   movne r3, r3, lsr #16
52175   movne r3, r3, asl #16
52176   orrne r3, r3, #768
52177   orreq r3, r4, r3, asl #16
52178   orrne r3, r4, r3
52179   orreq r3, r3, #768
52180   strne r3, [r1, #8]
52181   streq r3, [r1, #8]
52182 .L16556:
52183   movs  r2, r2, lsr #24
52184   beq .L16546
52185   ldr r4, [r1, #12]
52186   tst r4, #256
52187   movne r3, r4, lsr #16
52188   movne r3, r3, asl #16
52189   orreq r3, r2, #768
52190   orrne r2, r2, #768
52191   orrne r3, r3, r2
52192   orreq r3, r3, r4, asl #16
52193   strne r3, [r1, #12]
52194   streq r3, [r1, #12]
52195 .L16546:
52196   ldr r2, [r0, #-60]
52197   cmp r2, #0
52198   beq .L16563
52199   ands  r4, r2, #255
52200   beq .L16565
52201   ldr r3, [r1, #16]
52202   tst r3, #256
52203   movne r3, r3, lsr #16
52204   movne r3, r3, asl #16
52205   orrne r3, r3, #768
52206   orreq r3, r4, r3, asl #16
52207   orrne r3, r4, r3
52208   orreq r3, r3, #768
52209   strne r3, [r1, #16]
52210   streq r3, [r1, #16]
52211 .L16565:
52212   mov r3, r2, lsr #8
52213   ands  r4, r3, #255
52214   beq .L16569
52215   ldr r3, [r1, #20]
52216   tst r3, #256
52217   movne r3, r3, lsr #16
52218   movne r3, r3, asl #16
52219   orrne r3, r3, #768
52220   orreq r3, r4, r3, asl #16
52221   orrne r3, r4, r3
52222   orreq r3, r3, #768
52223   strne r3, [r1, #20]
52224   streq r3, [r1, #20]
52225 .L16569:
52226   mov r3, r2, lsr #16
52227   ands  r4, r3, #255
52228   beq .L16573
52229   ldr r3, [r1, #24]
52230   tst r3, #256
52231   movne r3, r3, lsr #16
52232   movne r3, r3, asl #16
52233   orrne r3, r3, #768
52234   orreq r3, r4, r3, asl #16
52235   orrne r3, r4, r3
52236   orreq r3, r3, #768
52237   strne r3, [r1, #24]
52238   streq r3, [r1, #24]
52239 .L16573:
52240   movs  r2, r2, lsr #24
52241   beq .L16563
52242   ldr r3, [r1, #28]
52243   tst r3, #256
52244   movne r3, r3, lsr #16
52245   movne r3, r3, asl #16
52246   orrne r3, r3, #768
52247   orreq r3, r2, r3, asl #16
52248   orrne r3, r2, r3
52249   orreq r3, r3, #768
52250   strne r3, [r1, #28]
52251   streq r3, [r1, #28]
52252 .L16563:
52253   add lr, lr, #1
52254   cmp r5, lr
52255   add r0, r0, #64
52256   bne .L17774
52257   b .L15754
52258 .L17479:
52259   ldr r8, [sp, #8]
52260   add r3, r6, sl
52261   cmp r3, r8
52262   bcs .L17775
52263   cmp sl, #0
52264   add r3, sl, #7
52265   movge r3, sl
52266   movs  lr, r3, asr #3
52267   beq .L15754
52268   ldr r5, [sp, #4]
52269   ldr r3, .L17803
52270   add r1, r5, r6, asl #2
52271   add r0, r0, r3
52272   mov ip, #0
52273   b .L17679
52274 .L17776:
52275   sub r2, r2, #64
52276   add r1, r1, #32
52277 .L17679:
52278   ldr r4, [r0, #68]
52279   cmp r4, #0
52280   beq .L17680
52281   ands  r3, r4, #255
52282   ldrne r7, [sp, #52]
52283   orrne r3, r7, r3
52284   strne r3, [r1, #12]
52285   mov r3, r4, lsr #8
52286   ands  r3, r3, #255
52287   ldrne r8, [sp, #52]
52288   orrne r3, r8, r3
52289   strne r3, [r1, #8]
52290   mov r3, r4, lsr #16
52291   ands  r3, r3, #255
52292   ldrne r5, [sp, #52]
52293   orrne r3, r5, r3
52294   strne r3, [r1, #4]
52295   movs  r3, r4, lsr #24
52296   ldrne r7, [sp, #52]
52297   orrne r3, r7, r3
52298   strne r3, [r1, #0]
52299 .L17680:
52300   ldr r4, [r2, #0]
52301   cmp r4, #0
52302   beq .L17689
52303   ands  r3, r4, #255
52304   ldrne r8, [sp, #52]
52305   orrne r3, r8, r3
52306   strne r3, [r1, #28]
52307   mov r3, r4, lsr #8
52308   ands  r3, r3, #255
52309   ldrne r5, [sp, #52]
52310   orrne r3, r5, r3
52311   strne r3, [r1, #24]
52312   mov r3, r4, lsr #16
52313   ands  r3, r3, #255
52314   ldrne r7, [sp, #52]
52315   orrne r3, r7, r3
52316   strne r3, [r1, #20]
52317   movs  r3, r4, lsr #24
52318   ldrne r8, [sp, #52]
52319   orrne r3, r8, r3
52320   strne r3, [r1, #16]
52321 .L17689:
52322   add ip, ip, #1
52323   cmp lr, ip
52324   sub r0, r0, #64
52325   bne .L17776
52326   b .L15754
52327 .L17798:
52328   mov r6, #0
52329 .L16983:
52330   cmp r8, r4
52331   cmphi sl, ip
52332   bhi .L17740
52333   b .L15754
52334 .L16984:
52335   cmp r4, r8
52336   cmpcc ip, sl
52337   bcs .L15754
52338 .L17740:
52339   mov r3, ip, asr #1
52340   ldr r1, [sp, #104]
52341   and r3, r3, #3
52342   and r0, r4, #7
52343   str r3, [sp, #0]
52344   ldr r3, [sp, #104]
52345   add r0, r1, r0, asl #2
52346   and r1, r4, #7
52347   mov r2, ip, asr #1
52348   add r1, r3, r1, asl #2
52349   mov r3, r4, asr #3
52350   and r9, r2, #3
52351   mov r3, r3, asl #10
52352   mov r2, ip, asr #3
52353   tst ip, #1
52354   add r3, r3, r2, asl #5
52355   add r2, r0, r3
52356   movne r4, r9
52357   add r0, r1, r3
52358   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
52359   ldrneb  r3, [r2, r4]  @ zero_extendqisi2
52360   ldr r2, [sp, #52]
52361   movne r0, r3, lsr #4
52362   andeq r0, r3, #15
52363   cmp r0, #0
52364   orr r3, r0, r2
52365   ldr r0, [sp, #116]
52366   ldr ip, [sp, #84]
52367   ldr r1, [sp, #88]
52368   add r6, r6, #1
52369   orr r3, r0, r3
52370   strne r3, [r7, #0]
52371   add lr, lr, ip
52372   add r5, r5, r1
52373   cmp fp, r6
52374   mov ip, lr, asr #8
52375   mov r4, r5, asr #8
52376   add r7, r7, #4
52377   bgt .L16984
52378   b .L15754
52379 .L17775:
52380   rsb r7, r6, r8
52381   cmp r7, #0
52382   ble .L15754
52383   ldr ip, [sp, #4]
52384   movs  lr, r7, lsr #3
52385   add r1, ip, r6, asl #2
52386   beq .L17638
52387   ldr r3, .L17803
52388   mov r5, r1
52389   add r0, r0, r3
52390   mov r6, r2
52391   mov ip, #0
52392 .L17640:
52393   ldr r4, [r0, #68]
52394   cmp r4, #0
52395   beq .L17641
52396   ands  r3, r4, #255
52397   ldrne r8, [sp, #52]
52398   orrne r3, r8, r3
52399   strne r3, [r5, #12]
52400   mov r3, r4, lsr #8
52401   ands  r3, r3, #255
52402   ldrne r8, [sp, #52]
52403   orrne r3, r8, r3
52404   strne r3, [r5, #8]
52405   mov r3, r4, lsr #16
52406   ands  r3, r3, #255
52407   ldrne r8, [sp, #52]
52408   orrne r3, r8, r3
52409   strne r3, [r5, #4]
52410   movs  r3, r4, lsr #24
52411   ldrne r4, [sp, #52]
52412   orrne r3, r4, r3
52413   strne r3, [r5, #0]
52414 .L17641:
52415   ldr r4, [r6, #0]
52416   cmp r4, #0
52417   beq .L17650
52418   ands  r3, r4, #255
52419   ldrne r8, [sp, #52]
52420   orrne r3, r8, r3
52421   strne r3, [r5, #28]
52422   mov r3, r4, lsr #8
52423   ands  r3, r3, #255
52424   ldrne r8, [sp, #52]
52425   orrne r3, r8, r3
52426   strne r3, [r5, #24]
52427   mov r3, r4, lsr #16
52428   ands  r3, r3, #255
52429   ldrne r8, [sp, #52]
52430   orrne r3, r8, r3
52431   strne r3, [r5, #20]
52432   movs  r3, r4, lsr #24
52433   ldrne r4, [sp, #52]
52434   orrne r3, r4, r3
52435   strne r3, [r5, #16]
52436 .L17650:
52437   add ip, ip, #1
52438   cmp lr, ip
52439   sub r6, r6, #64
52440   add r5, r5, #32
52441   sub r0, r0, #64
52442   bne .L17640
52443   rsb r3, lr, lr, asl #26
52444   add r2, r2, r3, asl #6
52445   add r1, r1, lr, asl #5
52446 .L17638:
52447   ands  ip, r7, #7
52448   beq .L15754
52449   cmp ip, #3
52450   ldrls r2, [r2, #4]
52451   bls .L17673
52452   ldr r0, [r2, #4]
52453   cmp r0, #0
52454   beq .L17663
52455   ands  r3, r0, #255
52456   ldrne r5, [sp, #52]
52457   orrne r3, r5, r3
52458   strne r3, [r1, #12]
52459   mov r3, r0, lsr #8
52460   ands  r3, r3, #255
52461   ldrne r7, [sp, #52]
52462   orrne r3, r7, r3
52463   strne r3, [r1, #8]
52464   mov r3, r0, lsr #16
52465   ands  r3, r3, #255
52466   ldrne r8, [sp, #52]
52467   orrne r3, r8, r3
52468   strne r3, [r1, #4]
52469   movs  r3, r0, lsr #24
52470   ldrne lr, [sp, #52]
52471   orrne r3, lr, r3
52472   strne r3, [r1, #0]
52473 .L17663:
52474   subs  ip, ip, #4
52475   ldr r2, [r2, #0]
52476   addne r1, r1, #16
52477   beq .L15754
52478 .L17673:
52479   mov r0, #0
52480 .L17674:
52481   ldr r4, [sp, #52]
52482   movs  r3, r2, lsr #24
52483   orr r3, r4, r3
52484   strne r3, [r1, r0, asl #2]
52485   add r0, r0, #1
52486   cmp ip, r0
52487   mov r2, r2, asl #8
52488   bhi .L17674
52489   b .L15754
52490 .L17767:
52491   rsb ip, r6, r4
52492   cmp ip, #0
52493   ble .L15754
52494   ldr r5, [sp, #4]
52495   movs  sl, ip, lsr #3
52496   add r8, r5, r6, asl #2
52497   beq .L15961
52498   mov r6, r8
52499   mov lr, r0
52500   mov r1, #0
52501 .L15963:
52502   ldr r5, [lr, #0]
52503   cmp r5, #0
52504   beq .L15964
52505   ands  r2, r5, #15
52506   beq .L15966
52507   ldr r4, [r6, #0]
52508   orr r2, r7, r2
52509   tst r4, #256
52510   movne r3, r4, lsr #16
52511   movne r3, r3, asl #16
52512   orreq r3, r2, #768
52513   orrne r2, r2, #768
52514   orrne r3, r3, r2
52515   orreq r3, r3, r4, asl #16
52516   strne r3, [r6, #0]
52517   streq r3, [r6, #0]
52518 .L15966:
52519   mov r3, r5, lsr #4
52520   ands  r2, r3, #15
52521   beq .L15970
52522   ldr r4, [r6, #4]
52523   orr r2, r7, r2
52524   tst r4, #256
52525   movne r3, r4, lsr #16
52526   movne r3, r3, asl #16
52527   orreq r3, r2, #768
52528   orrne r2, r2, #768
52529   orrne r3, r3, r2
52530   orreq r3, r3, r4, asl #16
52531   strne r3, [r6, #4]
52532   streq r3, [r6, #4]
52533 .L15970:
52534   mov r3, r5, lsr #8
52535   ands  r2, r3, #15
52536   beq .L15974
52537   ldr r4, [r6, #8]
52538   orr r2, r7, r2
52539   tst r4, #256
52540   movne r3, r4, lsr #16
52541   movne r3, r3, asl #16
52542   orreq r3, r2, #768
52543   orrne r2, r2, #768
52544   orrne r3, r3, r2
52545   orreq r3, r3, r4, asl #16
52546   strne r3, [r6, #8]
52547   streq r3, [r6, #8]
52548 .L15974:
52549   mov r3, r5, lsr #12
52550   ands  r2, r3, #15
52551   beq .L15978
52552   ldr r4, [r6, #12]
52553   orr r2, r7, r2
52554   tst r4, #256
52555   movne r3, r4, lsr #16
52556   movne r3, r3, asl #16
52557   orreq r3, r2, #768
52558   orrne r2, r2, #768
52559   orrne r3, r3, r2
52560   orreq r3, r3, r4, asl #16
52561   strne r3, [r6, #12]
52562   streq r3, [r6, #12]
52563 .L15978:
52564   mov r3, r5, lsr #16
52565   ands  r2, r3, #15
52566   beq .L15982
52567   ldr r4, [r6, #16]
52568   orr r2, r7, r2
52569   tst r4, #256
52570   movne r3, r4, lsr #16
52571   movne r3, r3, asl #16
52572   orreq r3, r2, #768
52573   orrne r2, r2, #768
52574   orrne r3, r3, r2
52575   orreq r3, r3, r4, asl #16
52576   strne r3, [r6, #16]
52577   streq r3, [r6, #16]
52578 .L15982:
52579   mov r3, r5, lsr #20
52580   ands  r2, r3, #15
52581   beq .L15986
52582   ldr r4, [r6, #20]
52583   orr r2, r7, r2
52584   tst r4, #256
52585   movne r3, r4, lsr #16
52586   movne r3, r3, asl #16
52587   orreq r3, r2, #768
52588   orrne r2, r2, #768
52589   orrne r3, r3, r2
52590   orreq r3, r3, r4, asl #16
52591   strne r3, [r6, #20]
52592   streq r3, [r6, #20]
52593 .L15986:
52594   mov r3, r5, lsr #24
52595   ands  r2, r3, #15
52596   beq .L15990
52597   ldr r4, [r6, #24]
52598   orr r2, r7, r2
52599   tst r4, #256
52600   movne r3, r4, lsr #16
52601   movne r3, r3, asl #16
52602   orreq r3, r2, #768
52603   orrne r2, r2, #768
52604   orrne r3, r3, r2
52605   orreq r3, r3, r4, asl #16
52606   strne r3, [r6, #24]
52607   streq r3, [r6, #24]
52608 .L15990:
52609   movs  r2, r5, lsr #28
52610   beq .L15964
52611   ldr r4, [r6, #28]
52612   orr r2, r7, r2
52613   tst r4, #256
52614   movne r3, r4, lsr #16
52615   movne r3, r3, asl #16
52616   orreq r3, r2, #768
52617   orrne r2, r2, #768
52618   orrne r3, r3, r2
52619   orreq r3, r3, r4, asl #16
52620   strne r3, [r6, #28]
52621   streq r3, [r6, #28]
52622 .L15964:
52623   add r1, r1, #1
52624   cmp r1, sl
52625   add lr, lr, #32
52626   add r6, r6, #32
52627   bne .L15963
52628   mov r3, sl, asl #5
52629   add r0, r0, r3
52630   add r8, r8, r3
52631 .L15961:
52632   ands  lr, ip, #7
52633   beq .L15754
52634   ldr ip, [r0, #0]
52635   mov r4, #0
52636 .L15999:
52637   ands  r3, ip, #15
52638   beq .L16000
52639   ldr r1, [r8, #0]
52640   orr r2, r7, r3
52641   mov r3, r1, lsr #16
52642   orr r0, r2, #768
52643   mov r3, r3, asl #16
52644   orr r2, r2, #768
52645   tst r1, #256
52646   orr r3, r3, r0
52647   orr r2, r2, r1, asl #16
52648   strne r3, [r8, #0]
52649   streq r2, [r8, #0]
52650 .L16000:
52651   add r4, r4, #1
52652   cmp lr, r4
52653   mov ip, ip, lsr #4
52654   add r8, r8, #4
52655   bne .L15999
52656   b .L15754
52657 .L17804:
52658   .align  2
52659 .L17803:
52660   .word vram+65472
52661   .word vram+65600
52662 .L17771:
52663   rsb sl, r6, r2
52664   cmp sl, #0
52665   ble .L15754
52666   ldr r3, [sp, #4]
52667   movs  r8, sl, lsr #3
52668   add r7, r3, r6, asl #2
52669   beq .L16814
52670   ldr r3, .L17803
52671   mov r6, r7
52672   add r0, r0, r3
52673   mov lr, ip
52674   mov r1, #0
52675 .L16816:
52676   ldr r2, [r0, #68]
52677   cmp r2, #0
52678   beq .L16817
52679   ands  r4, r2, #255
52680   beq .L16819
52681   ldr r3, [r6, #12]
52682   tst r3, #256
52683   movne r3, r3, lsr #16
52684   movne r3, r3, asl #16
52685   orrne r3, r3, #768
52686   orreq r3, r4, r3, asl #16
52687   orrne r3, r4, r3
52688   orreq r3, r3, #768
52689   strne r3, [r6, #12]
52690   streq r3, [r6, #12]
52691 .L16819:
52692   mov r3, r2, lsr #8
52693   ands  r4, r3, #255
52694   beq .L16823
52695   ldr r3, [r6, #8]
52696   tst r3, #256
52697   movne r3, r3, lsr #16
52698   movne r3, r3, asl #16
52699   orrne r3, r3, #768
52700   orreq r3, r4, r3, asl #16
52701   orrne r3, r4, r3
52702   orreq r3, r3, #768
52703   strne r3, [r6, #8]
52704   streq r3, [r6, #8]
52705 .L16823:
52706   mov r3, r2, lsr #16
52707   ands  r4, r3, #255
52708   beq .L16827
52709   ldr r3, [r6, #4]
52710   tst r3, #256
52711   movne r3, r3, lsr #16
52712   movne r3, r3, asl #16
52713   orrne r3, r3, #768
52714   orreq r3, r4, r3, asl #16
52715   orrne r3, r4, r3
52716   orreq r3, r3, #768
52717   strne r3, [r6, #4]
52718   streq r3, [r6, #4]
52719 .L16827:
52720   movs  r2, r2, lsr #24
52721   beq .L16817
52722   ldr r3, [r6, #0]
52723   tst r3, #256
52724   movne r3, r3, lsr #16
52725   movne r3, r3, asl #16
52726   orrne r3, r3, #768
52727   orreq r3, r2, r3, asl #16
52728   orrne r3, r2, r3
52729   orreq r3, r3, #768
52730   strne r3, [r6, #0]
52731   streq r3, [r6, #0]
52732 .L16817:
52733   ldr r4, [lr, #0]
52734   cmp r4, #0
52735   beq .L16834
52736   ands  r2, r4, #255
52737   beq .L16836
52738   ldr r5, [r6, #28]
52739   tst r5, #256
52740   movne r3, r5, lsr #16
52741   movne r3, r3, asl #16
52742   orreq r3, r2, #768
52743   orrne r2, r2, #768
52744   orrne r3, r3, r2
52745   orreq r3, r3, r5, asl #16
52746   strne r3, [r6, #28]
52747   streq r3, [r6, #28]
52748 .L16836:
52749   mov r3, r4, lsr #8
52750   ands  r2, r3, #255
52751   beq .L16840
52752   ldr r3, [r6, #24]
52753   tst r3, #256
52754   movne r3, r3, lsr #16
52755   movne r3, r3, asl #16
52756   orrne r3, r3, #768
52757   orreq r3, r2, r3, asl #16
52758   orrne r3, r2, r3
52759   orreq r3, r3, #768
52760   strne r3, [r6, #24]
52761   streq r3, [r6, #24]
52762 .L16840:
52763   mov r3, r4, lsr #16
52764   ands  r2, r3, #255
52765   beq .L16844
52766   ldr r3, [r6, #20]
52767   tst r3, #256
52768   movne r3, r3, lsr #16
52769   movne r3, r3, asl #16
52770   orrne r3, r3, #768
52771   orreq r3, r2, r3, asl #16
52772   orrne r3, r2, r3
52773   orreq r3, r3, #768
52774   strne r3, [r6, #20]
52775   streq r3, [r6, #20]
52776 .L16844:
52777   movs  r2, r4, lsr #24
52778   beq .L16834
52779   ldr r4, [r6, #16]
52780   tst r4, #256
52781   movne r3, r4, lsr #16
52782   movne r3, r3, asl #16
52783   orreq r3, r2, #768
52784   orrne r2, r2, #768
52785   orrne r3, r3, r2
52786   orreq r3, r3, r4, asl #16
52787   strne r3, [r6, #16]
52788   streq r3, [r6, #16]
52789 .L16834:
52790   add r1, r1, #1
52791   cmp r1, r8
52792   sub lr, lr, #64
52793   add r6, r6, #32
52794   sub r0, r0, #64
52795   bne .L16816
52796   rsb r3, r8, r8, asl #26
52797   add ip, ip, r3, asl #6
52798   add r7, r7, r8, asl #5
52799 .L16814:
52800   ands  lr, sl, #7
52801   beq .L15754
52802   cmp lr, #3
52803   ldrls ip, [ip, #4]
52804   bls .L16873
52805   ldr r2, [ip, #4]
52806   cmp r2, #0
52807   beq .L16855
52808   ands  r1, r2, #255
52809   beq .L16857
52810   ldr r3, [r7, #12]
52811   tst r3, #256
52812   movne r3, r3, lsr #16
52813   movne r3, r3, asl #16
52814   orrne r3, r3, #768
52815   orreq r3, r1, r3, asl #16
52816   orrne r3, r1, r3
52817   orreq r3, r3, #768
52818   strne r3, [r7, #12]
52819   streq r3, [r7, #12]
52820 .L16857:
52821   mov r3, r2, lsr #8
52822   ands  r1, r3, #255
52823   beq .L16861
52824   ldr r3, [r7, #8]
52825   tst r3, #256
52826   movne r3, r3, lsr #16
52827   movne r3, r3, asl #16
52828   orrne r3, r3, #768
52829   orreq r3, r1, r3, asl #16
52830   orrne r3, r1, r3
52831   orreq r3, r3, #768
52832   strne r3, [r7, #8]
52833   streq r3, [r7, #8]
52834 .L16861:
52835   mov r3, r2, lsr #16
52836   ands  r1, r3, #255
52837   beq .L16865
52838   ldr r3, [r7, #4]
52839   tst r3, #256
52840   movne r3, r3, lsr #16
52841   movne r3, r3, asl #16
52842   orrne r3, r3, #768
52843   orreq r3, r1, r3, asl #16
52844   orrne r3, r1, r3
52845   orreq r3, r3, #768
52846   strne r3, [r7, #4]
52847   streq r3, [r7, #4]
52848 .L16865:
52849   movs  r2, r2, lsr #24
52850   beq .L16855
52851   ldr r3, [r7, #0]
52852   tst r3, #256
52853   movne r3, r3, lsr #16
52854   movne r3, r3, asl #16
52855   orrne r3, r3, #768
52856   orreq r3, r2, r3, asl #16
52857   orrne r3, r2, r3
52858   orreq r3, r3, #768
52859   strne r3, [r7, #0]
52860   streq r3, [r7, #0]
52861 .L16855:
52862   subs  lr, lr, #4
52863   ldr ip, [ip, #0]
52864   addne r7, r7, #16
52865   beq .L15754
52866 .L16873:
52867   mov r4, #0
52868 .L16874:
52869   movs  r0, ip, lsr #24
52870   beq .L16875
52871   ldr r2, [r7, #0]
52872   orr r1, r0, #768
52873   mov r3, r2, lsr #16
52874   orr r0, r0, #768
52875   mov r3, r3, asl #16
52876   tst r2, #256
52877   orr r3, r3, r1
52878   orr r0, r0, r2, asl #16
52879   strne r3, [r7, #0]
52880   streq r0, [r7, #0]
52881 .L16875:
52882   add r4, r4, #1
52883   cmp lr, r4
52884   mov ip, ip, asl #8
52885   add r7, r7, #4
52886   bhi .L16874
52887   b .L15754
52888 .L17763:
52889   rsb lr, r6, ip
52890   cmp lr, #0
52891   ble .L15754
52892   ldr r2, [sp, #4]
52893   movs  r8, lr, lsr #3
52894   add r1, r2, r6, asl #2
52895   beq .L17083
52896   mov r5, r1
52897   mov r6, r0
52898   mov ip, #0
52899 .L17085:
52900   ldr r4, [r6, #0]
52901   cmp r4, #0
52902   beq .L17086
52903   ands  r3, r4, #15
52904   ldrne r2, [sp, #52]
52905   orrne r3, r2, r3
52906   orrne r3, r7, r3
52907   strne r3, [r5, #0]
52908   mov r3, r4, lsr #4
52909   ands  r3, r3, #15
52910   ldrne r2, [sp, #52]
52911   orrne r3, r2, r3
52912   orrne r3, r7, r3
52913   strne r3, [r5, #4]
52914   mov r3, r4, lsr #8
52915   ands  r3, r3, #15
52916   ldrne r2, [sp, #52]
52917   orrne r3, r2, r3
52918   orrne r3, r7, r3
52919   strne r3, [r5, #8]
52920   mov r3, r4, lsr #12
52921   ands  r3, r3, #15
52922   ldrne r2, [sp, #52]
52923   orrne r3, r2, r3
52924   orrne r3, r7, r3
52925   strne r3, [r5, #12]
52926   mov r3, r4, lsr #16
52927   ands  r3, r3, #15
52928   ldrne r2, [sp, #52]
52929   orrne r3, r2, r3
52930   orrne r3, r7, r3
52931   strne r3, [r5, #16]
52932   mov r3, r4, lsr #20
52933   ands  r3, r3, #15
52934   ldrne r2, [sp, #52]
52935   orrne r3, r2, r3
52936   orrne r3, r7, r3
52937   strne r3, [r5, #20]
52938   mov r3, r4, lsr #24
52939   ands  r3, r3, #15
52940   ldrne r2, [sp, #52]
52941   orrne r3, r2, r3
52942   orrne r3, r7, r3
52943   strne r3, [r5, #24]
52944   movs  r3, r4, lsr #28
52945   ldrne r4, [sp, #52]
52946   orrne r3, r4, r3
52947   orrne r3, r7, r3
52948   strne r3, [r5, #28]
52949 .L17086:
52950   add ip, ip, #1
52951   cmp ip, r8
52952   add r6, r6, #32
52953   add r5, r5, #32
52954   bne .L17085
52955   mov r3, r8, asl #5
52956   add r0, r0, r3
52957   add r1, r1, r3
52958 .L17083:
52959   ands  lr, lr, #7
52960   beq .L15754
52961   ldr r0, [r0, #0]
52962   mov ip, #0
52963 .L17105:
52964   ldr r5, [sp, #52]
52965   ands  r3, r0, #15
52966   orr r3, r5, r3
52967   orr r3, r7, r3
52968   strne r3, [r1, ip, asl #2]
52969   add ip, ip, #1
52970   cmp ip, lr
52971   mov r0, r0, lsr #4
52972   bne .L17105
52973   b .L15754
52974 .L17773:
52975   rsb r8, r6, r7
52976   cmp r8, #0
52977   ble .L15754
52978   ldr lr, [sp, #4]
52979   movs  r7, r8, lsr #3
52980   add r6, lr, r6, asl #2
52981   beq .L16478
52982   ldr r3, .L17803+4
52983   mov r5, r6
52984   add r0, r0, r3
52985   mov lr, ip
52986   mov r1, #0
52987 .L16480:
52988   ldr r2, [lr, #0]
52989   cmp r2, #0
52990   beq .L16481
52991   ands  r4, r2, #255
52992   beq .L16483
52993   ldr r3, [r5, #0]
52994   tst r3, #256
52995   movne r3, r3, lsr #16
52996   movne r3, r3, asl #16
52997   orrne r3, r3, #768
52998   orreq r3, r4, r3, asl #16
52999   orrne r3, r4, r3
53000   orreq r3, r3, #768
53001   strne r3, [r5, #0]
53002   streq r3, [r5, #0]
53003 .L16483:
53004   mov r3, r2, lsr #8
53005   ands  r4, r3, #255
53006   beq .L16487
53007   ldr r3, [r5, #4]
53008   tst r3, #256
53009   movne r3, r3, lsr #16
53010   movne r3, r3, asl #16
53011   orrne r3, r3, #768
53012   orreq r3, r4, r3, asl #16
53013   orrne r3, r4, r3
53014   orreq r3, r3, #768
53015   strne r3, [r5, #4]
53016   streq r3, [r5, #4]
53017 .L16487:
53018   mov r3, r2, lsr #16
53019   ands  r4, r3, #255
53020   beq .L16491
53021   ldr r3, [r5, #8]
53022   tst r3, #256
53023   movne r3, r3, lsr #16
53024   movne r3, r3, asl #16
53025   orrne r3, r3, #768
53026   orreq r3, r4, r3, asl #16
53027   orrne r3, r4, r3
53028   orreq r3, r3, #768
53029   strne r3, [r5, #8]
53030   streq r3, [r5, #8]
53031 .L16491:
53032   movs  r2, r2, lsr #24
53033   beq .L16481
53034   ldr r4, [r5, #12]
53035   tst r4, #256
53036   movne r3, r4, lsr #16
53037   movne r3, r3, asl #16
53038   orreq r3, r2, #768
53039   orrne r2, r2, #768
53040   orrne r3, r3, r2
53041   orreq r3, r3, r4, asl #16
53042   strne r3, [r5, #12]
53043   streq r3, [r5, #12]
53044 .L16481:
53045   ldr r2, [r0, #-60]
53046   cmp r2, #0
53047   beq .L16498
53048   ands  r4, r2, #255
53049   beq .L16500
53050   ldr r3, [r5, #16]
53051   tst r3, #256
53052   movne r3, r3, lsr #16
53053   movne r3, r3, asl #16
53054   orrne r3, r3, #768
53055   orreq r3, r4, r3, asl #16
53056   orrne r3, r4, r3
53057   orreq r3, r3, #768
53058   strne r3, [r5, #16]
53059   streq r3, [r5, #16]
53060 .L16500:
53061   mov r3, r2, lsr #8
53062   ands  r4, r3, #255
53063   beq .L16504
53064   ldr r3, [r5, #20]
53065   tst r3, #256
53066   movne r3, r3, lsr #16
53067   movne r3, r3, asl #16
53068   orrne r3, r3, #768
53069   orreq r3, r4, r3, asl #16
53070   orrne r3, r4, r3
53071   orreq r3, r3, #768
53072   strne r3, [r5, #20]
53073   streq r3, [r5, #20]
53074 .L16504:
53075   mov r3, r2, lsr #16
53076   ands  r4, r3, #255
53077   beq .L16508
53078   ldr r3, [r5, #24]
53079   tst r3, #256
53080   movne r3, r3, lsr #16
53081   movne r3, r3, asl #16
53082   orrne r3, r3, #768
53083   orreq r3, r4, r3, asl #16
53084   orrne r3, r4, r3
53085   orreq r3, r3, #768
53086   strne r3, [r5, #24]
53087   streq r3, [r5, #24]
53088 .L16508:
53089   movs  r2, r2, lsr #24
53090   beq .L16498
53091   ldr r3, [r5, #28]
53092   tst r3, #256
53093   movne r3, r3, lsr #16
53094   movne r3, r3, asl #16
53095   orrne r3, r3, #768
53096   orreq r3, r2, r3, asl #16
53097   orrne r3, r2, r3
53098   orreq r3, r3, #768
53099   strne r3, [r5, #28]
53100   streq r3, [r5, #28]
53101 .L16498:
53102   add r1, r1, #1
53103   cmp r7, r1
53104   add lr, lr, #64
53105   add r5, r5, #32
53106   add r0, r0, #64
53107   bne .L16480
53108   add ip, ip, r7, asl #6
53109   add r6, r6, r7, asl #5
53110 .L16478:
53111   ands  lr, r8, #7
53112   beq .L15754
53113   cmp lr, #3
53114   ldrls ip, [ip, #0]
53115   bls .L16537
53116   ldr r2, [ip, #0]
53117   cmp r2, #0
53118   beq .L16519
53119   ands  r1, r2, #255
53120   beq .L16521
53121   ldr r3, [r6, #0]
53122   tst r3, #256
53123   movne r3, r3, lsr #16
53124   movne r3, r3, asl #16
53125   orrne r3, r3, #768
53126   orreq r3, r1, r3, asl #16
53127   orrne r3, r1, r3
53128   orreq r3, r3, #768
53129   strne r3, [r6, #0]
53130   streq r3, [r6, #0]
53131 .L16521:
53132   mov r3, r2, lsr #8
53133   ands  r1, r3, #255
53134   beq .L16525
53135   ldr r3, [r6, #4]
53136   tst r3, #256
53137   movne r3, r3, lsr #16
53138   movne r3, r3, asl #16
53139   orrne r3, r3, #768
53140   orreq r3, r1, r3, asl #16
53141   orrne r3, r1, r3
53142   orreq r3, r3, #768
53143   strne r3, [r6, #4]
53144   streq r3, [r6, #4]
53145 .L16525:
53146   mov r3, r2, lsr #16
53147   ands  r1, r3, #255
53148   beq .L16529
53149   ldr r3, [r6, #8]
53150   tst r3, #256
53151   movne r3, r3, lsr #16
53152   movne r3, r3, asl #16
53153   orrne r3, r3, #768
53154   orreq r3, r1, r3, asl #16
53155   orrne r3, r1, r3
53156   orreq r3, r3, #768
53157   strne r3, [r6, #8]
53158   streq r3, [r6, #8]
53159 .L16529:
53160   movs  r2, r2, lsr #24
53161   beq .L16519
53162   ldr r1, [r6, #12]
53163   tst r1, #256
53164   movne r3, r1, lsr #16
53165   movne r3, r3, asl #16
53166   orreq r3, r2, #768
53167   orrne r2, r2, #768
53168   orrne r3, r3, r2
53169   orreq r3, r3, r1, asl #16
53170   strne r3, [r6, #12]
53171   streq r3, [r6, #12]
53172 .L16519:
53173   subs  lr, lr, #4
53174   ldr ip, [ip, #4]
53175   addne r6, r6, #16
53176   beq .L15754
53177 .L16537:
53178   mov r4, #0
53179 .L16538:
53180   ands  r0, ip, #255
53181   beq .L16539
53182   ldr r2, [r6, #0]
53183   orr r1, r0, #768
53184   mov r3, r2, lsr #16
53185   orr r0, r0, #768
53186   mov r3, r3, asl #16
53187   tst r2, #256
53188   orr r3, r3, r1
53189   orr r0, r0, r2, asl #16
53190   strne r3, [r6, #0]
53191   streq r0, [r6, #0]
53192 .L16539:
53193   add r4, r4, #1
53194   cmp r4, lr
53195   mov ip, ip, lsr #8
53196   add r6, r6, #4
53197   bcc .L16538
53198   b .L15754
53199 .L17765:
53200   rsb r8, r6, r8
53201   cmp r8, #0
53202   ble .L15754
53203   ldr r2, [sp, #4]
53204   movs  lr, r8, lsr #3
53205   add r1, r2, r6, asl #2
53206   beq .L17418
53207   ldr r3, .L17803+4
53208   mov r5, r1
53209   add r0, r0, r3
53210   mov r6, ip
53211   mov r7, #0
53212 .L17420:
53213   ldr r4, [r6, #0]
53214   cmp r4, #0
53215   beq .L17421
53216   ands  r3, r4, #255
53217   ldrne r2, [sp, #52]
53218   orrne r3, r2, r3
53219   strne r3, [r5, #0]
53220   mov r3, r4, lsr #8
53221   ands  r3, r3, #255
53222   ldrne r2, [sp, #52]
53223   orrne r3, r2, r3
53224   strne r3, [r5, #4]
53225   mov r3, r4, lsr #16
53226   ands  r3, r3, #255
53227   ldrne r2, [sp, #52]
53228   orrne r3, r2, r3
53229   strne r3, [r5, #8]
53230   movs  r3, r4, lsr #24
53231   ldrne r4, [sp, #52]
53232   orrne r3, r4, r3
53233   strne r3, [r5, #12]
53234 .L17421:
53235   ldr r4, [r0, #-60]
53236   cmp r4, #0
53237   beq .L17430
53238   ands  r3, r4, #255
53239   ldrne r2, [sp, #52]
53240   orrne r3, r2, r3
53241   strne r3, [r5, #16]
53242   mov r3, r4, lsr #8
53243   ands  r3, r3, #255
53244   ldrne r2, [sp, #52]
53245   orrne r3, r2, r3
53246   strne r3, [r5, #20]
53247   mov r3, r4, lsr #16
53248   ands  r3, r3, #255
53249   ldrne r2, [sp, #52]
53250   orrne r3, r2, r3
53251   strne r3, [r5, #24]
53252   movs  r3, r4, lsr #24
53253   ldrne r4, [sp, #52]
53254   orrne r3, r4, r3
53255   strne r3, [r5, #28]
53256 .L17430:
53257   add r7, r7, #1
53258   cmp lr, r7
53259   add r6, r6, #64
53260   add r5, r5, #32
53261   add r0, r0, #64
53262   bne .L17420
53263   add ip, ip, lr, asl #6
53264   add r1, r1, lr, asl #5
53265 .L17418:
53266   ands  lr, r8, #7
53267   beq .L15754
53268   cmp lr, #3
53269   ldrls ip, [ip, #0]
53270   bls .L17453
53271   ldr r2, [ip, #0]
53272   cmp r2, #0
53273   beq .L17443
53274   ands  r3, r2, #255
53275   ldrne r5, [sp, #52]
53276   orrne r3, r5, r3
53277   strne r3, [r1, #0]
53278   mov r3, r2, lsr #8
53279   ands  r3, r3, #255
53280   ldrne r7, [sp, #52]
53281   orrne r3, r7, r3
53282   strne r3, [r1, #4]
53283   mov r3, r2, lsr #16
53284   ands  r3, r3, #255
53285   ldrne r8, [sp, #52]
53286   orrne r3, r8, r3
53287   strne r3, [r1, #8]
53288   movs  r3, r2, lsr #24
53289   ldrne r0, [sp, #52]
53290   orrne r3, r0, r3
53291   strne r3, [r1, #12]
53292 .L17443:
53293   subs  lr, lr, #4
53294   ldr ip, [ip, #4]
53295   addne r1, r1, #16
53296   beq .L15754
53297 .L17453:
53298   mov r0, #0
53299 .L17454:
53300   ldr r2, [sp, #52]
53301   ands  r3, ip, #255
53302   orr r3, r2, r3
53303   strne r3, [r1, r0, asl #2]
53304   add r0, r0, #1
53305   cmp lr, r0
53306   mov ip, ip, lsr #8
53307   bhi .L17454
53308   b .L15754
53309 .L17769:
53310   rsb r8, r6, lr
53311   cmp r8, #0
53312   ble .L15754
53313   ldr r2, [sp, #4]
53314   movs  lr, r8, lsr #3
53315   add r1, r2, r6, asl #2
53316   beq .L17213
53317   mov r5, r1
53318   mov r6, r0
53319   mov ip, #0
53320 .L17215:
53321   ldr r4, [r6, #0]
53322   cmp r4, #0
53323   beq .L17216
53324   ands  r3, r4, #15
53325   ldrne r2, [sp, #52]
53326   orrne r3, r2, r3
53327   orrne r3, r7, r3
53328   strne r3, [r5, #28]
53329   mov r3, r4, lsr #4
53330   ands  r3, r3, #15
53331   ldrne r2, [sp, #52]
53332   orrne r3, r2, r3
53333   orrne r3, r7, r3
53334   strne r3, [r5, #24]
53335   mov r3, r4, lsr #8
53336   ands  r3, r3, #15
53337   ldrne r2, [sp, #52]
53338   orrne r3, r2, r3
53339   orrne r3, r7, r3
53340   strne r3, [r5, #20]
53341   mov r3, r4, lsr #12
53342   ands  r3, r3, #15
53343   ldrne r2, [sp, #52]
53344   orrne r3, r2, r3
53345   orrne r3, r7, r3
53346   strne r3, [r5, #16]
53347   mov r3, r4, lsr #16
53348   ands  r3, r3, #15
53349   ldrne r2, [sp, #52]
53350   orrne r3, r2, r3
53351   orrne r3, r7, r3
53352   strne r3, [r5, #12]
53353   mov r3, r4, lsr #20
53354   ands  r3, r3, #15
53355   ldrne r2, [sp, #52]
53356   orrne r3, r2, r3
53357   orrne r3, r7, r3
53358   strne r3, [r5, #8]
53359   mov r3, r4, lsr #24
53360   ands  r3, r3, #15
53361   ldrne r2, [sp, #52]
53362   orrne r3, r2, r3
53363   orrne r3, r7, r3
53364   strne r3, [r5, #4]
53365   movs  r3, r4, lsr #28
53366   ldrne r4, [sp, #52]
53367   orrne r3, r4, r3
53368   orrne r3, r7, r3
53369   strne r3, [r5, #0]
53370 .L17216:
53371   add ip, ip, #1
53372   cmp ip, lr
53373   sub r6, r6, #32
53374   add r5, r5, #32
53375   bne .L17215
53376   rsb r3, lr, lr, asl #27
53377   add r0, r0, r3, asl #5
53378   add r1, r1, lr, asl #5
53379 .L17213:
53380   ands  lr, r8, #7
53381   beq .L15754
53382   ldr r0, [r0, #0]
53383   mov ip, #0
53384 .L17235:
53385   ldr r5, [sp, #52]
53386   movs  r3, r0, lsr #28
53387   orr r3, r5, r3
53388   orr r3, r7, r3
53389   strne r3, [r1, ip, asl #2]
53390   add ip, ip, #1
53391   cmp ip, lr
53392   mov r0, r0, asl #4
53393   bne .L17235
53394   b .L15754
53395 .L17761:
53396   rsb sl, r6, r1
53397   cmp sl, #0
53398   ble .L15754
53399   ldr r2, [sp, #4]
53400   movs  ip, sl, lsr #3
53401   add r8, r2, r6, asl #2
53402   beq .L16165
53403   mov r6, r8
53404   mov lr, r0
53405   mov r1, #0
53406 .L16167:
53407   ldr r5, [lr, #0]
53408   cmp r5, #0
53409   beq .L16168
53410   ands  r2, r5, #15
53411   beq .L16170
53412   ldr r4, [r6, #28]
53413   orr r2, r7, r2
53414   tst r4, #256
53415   movne r3, r4, lsr #16
53416   movne r3, r3, asl #16
53417   orreq r3, r2, #768
53418   orrne r2, r2, #768
53419   orrne r3, r3, r2
53420   orreq r3, r3, r4, asl #16
53421   strne r3, [r6, #28]
53422   streq r3, [r6, #28]
53423 .L16170:
53424   mov r3, r5, lsr #4
53425   ands  r2, r3, #15
53426   beq .L16174
53427   ldr r4, [r6, #24]
53428   orr r2, r7, r2
53429   tst r4, #256
53430   movne r3, r4, lsr #16
53431   movne r3, r3, asl #16
53432   orreq r3, r2, #768
53433   orrne r2, r2, #768
53434   orrne r3, r3, r2
53435   orreq r3, r3, r4, asl #16
53436   strne r3, [r6, #24]
53437   streq r3, [r6, #24]
53438 .L16174:
53439   mov r3, r5, lsr #8
53440   ands  r2, r3, #15
53441   beq .L16178
53442   ldr r4, [r6, #20]
53443   orr r2, r7, r2
53444   tst r4, #256
53445   movne r3, r4, lsr #16
53446   movne r3, r3, asl #16
53447   orreq r3, r2, #768
53448   orrne r2, r2, #768
53449   orrne r3, r3, r2
53450   orreq r3, r3, r4, asl #16
53451   strne r3, [r6, #20]
53452   streq r3, [r6, #20]
53453 .L16178:
53454   mov r3, r5, lsr #12
53455   ands  r2, r3, #15
53456   beq .L16182
53457   ldr r4, [r6, #16]
53458   orr r2, r7, r2
53459   tst r4, #256
53460   movne r3, r4, lsr #16
53461   movne r3, r3, asl #16
53462   orreq r3, r2, #768
53463   orrne r2, r2, #768
53464   orrne r3, r3, r2
53465   orreq r3, r3, r4, asl #16
53466   strne r3, [r6, #16]
53467   streq r3, [r6, #16]
53468 .L16182:
53469   mov r3, r5, lsr #16
53470   ands  r2, r3, #15
53471   beq .L16186
53472   ldr r4, [r6, #12]
53473   orr r2, r7, r2
53474   tst r4, #256
53475   movne r3, r4, lsr #16
53476   movne r3, r3, asl #16
53477   orreq r3, r2, #768
53478   orrne r2, r2, #768
53479   orrne r3, r3, r2
53480   orreq r3, r3, r4, asl #16
53481   strne r3, [r6, #12]
53482   streq r3, [r6, #12]
53483 .L16186:
53484   mov r3, r5, lsr #20
53485   ands  r2, r3, #15
53486   beq .L16190
53487   ldr r4, [r6, #8]
53488   orr r2, r7, r2
53489   tst r4, #256
53490   movne r3, r4, lsr #16
53491   movne r3, r3, asl #16
53492   orreq r3, r2, #768
53493   orrne r2, r2, #768
53494   orrne r3, r3, r2
53495   orreq r3, r3, r4, asl #16
53496   strne r3, [r6, #8]
53497   streq r3, [r6, #8]
53498 .L16190:
53499   mov r3, r5, lsr #24
53500   ands  r2, r3, #15
53501   beq .L16194
53502   ldr r4, [r6, #4]
53503   orr r2, r7, r2
53504   tst r4, #256
53505   movne r3, r4, lsr #16
53506   movne r3, r3, asl #16
53507   orreq r3, r2, #768
53508   orrne r2, r2, #768
53509   orrne r3, r3, r2
53510   orreq r3, r3, r4, asl #16
53511   strne r3, [r6, #4]
53512   streq r3, [r6, #4]
53513 .L16194:
53514   movs  r2, r5, lsr #28
53515   beq .L16168
53516   ldr r4, [r6, #0]
53517   orr r2, r7, r2
53518   tst r4, #256
53519   movne r3, r4, lsr #16
53520   movne r3, r3, asl #16
53521   orreq r3, r2, #768
53522   orrne r2, r2, #768
53523   orrne r3, r3, r2
53524   orreq r3, r3, r4, asl #16
53525   strne r3, [r6, #0]
53526   streq r3, [r6, #0]
53527 .L16168:
53528   add r1, r1, #1
53529   cmp ip, r1
53530   sub lr, lr, #32
53531   add r6, r6, #32
53532   bne .L16167
53533   rsb r3, ip, ip, asl #27
53534   add r0, r0, r3, asl #5
53535   add r8, r8, ip, asl #5
53536 .L16165:
53537   ands  lr, sl, #7
53538   beq .L15754
53539   ldr ip, [r0, #0]
53540   mov r4, #0
53541 .L16203:
53542   movs  r3, ip, lsr #28
53543   beq .L16204
53544   ldr r1, [r8, #0]
53545   orr r2, r7, r3
53546   mov r3, r1, lsr #16
53547   orr r0, r2, #768
53548   mov r3, r3, asl #16
53549   orr r2, r2, #768
53550   tst r1, #256
53551   orr r3, r3, r0
53552   orr r2, r2, r1, asl #16
53553   strne r3, [r8, #0]
53554   streq r2, [r8, #0]
53555 .L16204:
53556   add r4, r4, #1
53557   cmp r4, lr
53558   mov ip, ip, asl #4
53559   add r8, r8, #4
53560   bne .L16203
53561   b .L15754
53562 .L17795:
53563   ldr r5, [sp, #44]
53564 .L16969:
53565   cmp sl, r3
53566   bhi .L17739
53567   b .L15754
53568 .L16970:
53569   cmp r4, sl
53570   bcs .L15754
53571 .L17739:
53572   mov r3, r4, asr #1
53573   and r8, r3, #3
53574   mov r3, r4, asr #3
53575   mov r3, r3, asl #5
53576   mov r2, r4, asr #1
53577   tst r4, #1
53578   add ip, r3, r1
53579   and r6, r2, #3
53580   add r2, r3, r1
53581   ldreqb  r3, [r2, r6]  @ zero_extendqisi2
53582   ldrneb  r3, [ip, r8]  @ zero_extendqisi2
53583   ldr lr, [sp, #52]
53584   movne r2, r3, lsr #4
53585   andeq r2, r3, #15
53586   cmp r2, #0
53587   orr r3, r2, lr
53588   ldr r2, [sp, #116]
53589   ldr ip, [sp, #84]
53590   add r5, r5, #1
53591   orr r3, r2, r3
53592   strne r3, [r7, #0]
53593   add r0, r0, ip
53594   cmp fp, r5
53595   mov r4, r0, asr #8
53596   add r7, r7, #4
53597   bgt .L16970
53598   b .L15754
53599 .L17796:
53600   mov r4, fp
53601 .L15803:
53602   cmp sl, r3
53603   bhi .L17727
53604   b .L15754
53605 .L15804:
53606   cmp r1, sl
53607   bcs .L15754
53608 .L17727:
53609   mov r3, r1, asr #1
53610   and r5, r3, #3
53611   mov r3, r1, asr #3
53612   mov r3, r3, asl #5
53613   mov r2, r1, asr #1
53614   and r0, r2, #3
53615   tst r1, #1
53616   add r2, r3, lr
53617   add r1, r3, lr
53618   ldrneb  r3, [r1, r5]  @ zero_extendqisi2
53619   ldreqb  r3, [r2, r0]  @ zero_extendqisi2
53620   movne r0, r3, lsr #4
53621   andeq r0, r3, #15
53622   ldr r3, [sp, #120]
53623   cmp r0, #0
53624   orr r0, r0, r3
53625   beq .L15810
53626   ldr r2, [r7, #0]
53627   orr r1, r0, #768
53628   mov r3, r2, lsr #16
53629   orr r0, r0, #768
53630   mov r3, r3, asl #16
53631   tst r2, #256
53632   orr r3, r3, r1
53633   orr r0, r0, r2, asl #16
53634   strne r3, [r7, #0]
53635   streq r0, [r7, #0]
53636 .L15810:
53637   ldr r5, [sp, #72]
53638   ldr r8, [sp, #136]
53639   add r4, r4, #1
53640   add ip, ip, r5
53641   cmp r8, r4
53642   add r7, r7, #4
53643   mov r1, ip, asr #8
53644   bgt .L15804
53645   b .L15754
53646 .L17793:
53647   ldr ip, [sp, #16]
53648 .L15766:
53649   cmp sl, r2
53650   bhi .L17725
53651   b .L15754
53652 .L15767:
53653   cmp r2, sl
53654   bcs .L15754
53655 .L17725:
53656   mov r3, r2, asr #3
53657   add r3, lr, r3, asl #6
53658   and r2, r2, #7
53659   ldrb  r4, [r3, r2]  @ zero_extendqisi2
53660   cmp r4, #0
53661   beq .L15770
53662   ldr r3, [r6, #0]
53663   mov r2, r3, lsr #16
53664   mov r2, r2, asl #16
53665   orr r1, r4, r3, asl #16
53666   orr r2, r2, #768
53667   tst r3, #256
53668   orr r2, r4, r2
53669   orr r1, r1, #768
53670   strne r2, [r6, #0]
53671   streq r1, [r6, #0]
53672 .L15770:
53673   add ip, ip, #1
53674   add r0, r0, fp
53675   cmp r7, ip
53676   add r6, r6, #4
53677   mov r2, r0, asr #8
53678   bgt .L15767
53679   b .L15754
53680 .L15840:
53681   mov r3, r4, lsr #3
53682   mov r1, r3, asl #5
53683   ands  r3, r4, #7
53684   add lr, r0, r1
53685   ldreq ip, [sp, #96]
53686   bne .L17777
53687 .L15911:
53688   movs  r5, r8, lsr #3
53689   beq .L15754
53690   mov r4, #0
53691   b .L15923
53692 .L17778:
53693   add lr, lr, #32
53694   add ip, ip, #32
53695 .L15923:
53696   ldr r0, [lr, #0]
53697   cmp r0, #0
53698   beq .L15924
53699   ands  r2, r0, #15
53700   beq .L15926
53701   ldr r1, [ip, #0]
53702   orr r2, r7, r2
53703   tst r1, #256
53704   movne r3, r1, lsr #16
53705   movne r3, r3, asl #16
53706   orreq r3, r2, #768
53707   orrne r2, r2, #768
53708   orrne r3, r3, r2
53709   orreq r3, r3, r1, asl #16
53710   strne r3, [ip, #0]
53711   streq r3, [ip, #0]
53712 .L15926:
53713   mov r3, r0, lsr #4
53714   ands  r2, r3, #15
53715   beq .L15930
53716   ldr r1, [ip, #4]
53717   orr r2, r7, r2
53718   tst r1, #256
53719   movne r3, r1, lsr #16
53720   movne r3, r3, asl #16
53721   orreq r3, r2, #768
53722   orrne r2, r2, #768
53723   orrne r3, r3, r2
53724   orreq r3, r3, r1, asl #16
53725   strne r3, [ip, #4]
53726   streq r3, [ip, #4]
53727 .L15930:
53728   mov r3, r0, lsr #8
53729   ands  r2, r3, #15
53730   beq .L15934
53731   ldr r1, [ip, #8]
53732   orr r2, r7, r2
53733   tst r1, #256
53734   movne r3, r1, lsr #16
53735   movne r3, r3, asl #16
53736   orreq r3, r2, #768
53737   orrne r2, r2, #768
53738   orrne r3, r3, r2
53739   orreq r3, r3, r1, asl #16
53740   strne r3, [ip, #8]
53741   streq r3, [ip, #8]
53742 .L15934:
53743   mov r3, r0, lsr #12
53744   ands  r2, r3, #15
53745   beq .L15938
53746   ldr r1, [ip, #12]
53747   orr r2, r7, r2
53748   tst r1, #256
53749   movne r3, r1, lsr #16
53750   movne r3, r3, asl #16
53751   orreq r3, r2, #768
53752   orrne r2, r2, #768
53753   orrne r3, r3, r2
53754   orreq r3, r3, r1, asl #16
53755   strne r3, [ip, #12]
53756   streq r3, [ip, #12]
53757 .L15938:
53758   mov r3, r0, lsr #16
53759   ands  r2, r3, #15
53760   beq .L15942
53761   ldr r1, [ip, #16]
53762   orr r2, r7, r2
53763   tst r1, #256
53764   movne r3, r1, lsr #16
53765   movne r3, r3, asl #16
53766   orreq r3, r2, #768
53767   orrne r2, r2, #768
53768   orrne r3, r3, r2
53769   orreq r3, r3, r1, asl #16
53770   strne r3, [ip, #16]
53771   streq r3, [ip, #16]
53772 .L15942:
53773   mov r3, r0, lsr #20
53774   ands  r2, r3, #15
53775   beq .L15946
53776   ldr r1, [ip, #20]
53777   orr r2, r7, r2
53778   tst r1, #256
53779   movne r3, r1, lsr #16
53780   movne r3, r3, asl #16
53781   orreq r3, r2, #768
53782   orrne r2, r2, #768
53783   orrne r3, r3, r2
53784   orreq r3, r3, r1, asl #16
53785   strne r3, [ip, #20]
53786   streq r3, [ip, #20]
53787 .L15946:
53788   mov r3, r0, lsr #24
53789   ands  r2, r3, #15
53790   beq .L15950
53791   ldr r1, [ip, #24]
53792   orr r2, r7, r2
53793   tst r1, #256
53794   movne r3, r1, lsr #16
53795   movne r3, r3, asl #16
53796   orreq r3, r2, #768
53797   orrne r2, r2, #768
53798   orrne r3, r3, r2
53799   orreq r3, r3, r1, asl #16
53800   strne r3, [ip, #24]
53801   streq r3, [ip, #24]
53802 .L15950:
53803   movs  r2, r0, lsr #28
53804   beq .L15924
53805   ldr r1, [ip, #28]
53806   orr r2, r7, r2
53807   tst r1, #256
53808   movne r3, r1, lsr #16
53809   movne r3, r3, asl #16
53810   orreq r3, r2, #768
53811   orrne r2, r2, #768
53812   orrne r3, r3, r2
53813   orreq r3, r3, r1, asl #16
53814   strne r3, [ip, #28]
53815   streq r3, [ip, #28]
53816 .L15924:
53817   add r4, r4, #1
53818   cmp r5, r4
53819   bne .L17778
53820   b .L15754
53821 .L16584:
53822   ands  r2, r0, #7
53823   mov r3, r0, lsr #3
53824   sub lr, ip, r3, asl #6
53825   ldreq ip, [sp, #96]
53826   bne .L17779
53827 .L16734:
53828   movs  r5, r7, lsr #3
53829   beq .L15754
53830   mov r4, #0
53831   b .L16775
53832 .L17780:
53833   sub lr, lr, #64
53834   add ip, ip, #32
53835 .L16775:
53836   ldr r2, [lr, #4]
53837   cmp r2, #0
53838   beq .L16776
53839   ands  r1, r2, #255
53840   beq .L16778
53841   ldr r3, [ip, #12]
53842   tst r3, #256
53843   movne r3, r3, lsr #16
53844   movne r3, r3, asl #16
53845   orrne r3, r3, #768
53846   orreq r3, r1, r3, asl #16
53847   orrne r3, r1, r3
53848   orreq r3, r3, #768
53849   strne r3, [ip, #12]
53850   streq r3, [ip, #12]
53851 .L16778:
53852   mov r3, r2, lsr #8
53853   ands  r1, r3, #255
53854   beq .L16782
53855   ldr r3, [ip, #8]
53856   tst r3, #256
53857   movne r3, r3, lsr #16
53858   movne r3, r3, asl #16
53859   orrne r3, r3, #768
53860   orreq r3, r1, r3, asl #16
53861   orrne r3, r1, r3
53862   orreq r3, r3, #768
53863   strne r3, [ip, #8]
53864   streq r3, [ip, #8]
53865 .L16782:
53866   mov r3, r2, lsr #16
53867   ands  r1, r3, #255
53868   beq .L16786
53869   ldr r3, [ip, #4]
53870   tst r3, #256
53871   movne r3, r3, lsr #16
53872   movne r3, r3, asl #16
53873   orrne r3, r3, #768
53874   orreq r3, r1, r3, asl #16
53875   orrne r3, r1, r3
53876   orreq r3, r3, #768
53877   strne r3, [ip, #4]
53878   streq r3, [ip, #4]
53879 .L16786:
53880   movs  r2, r2, lsr #24
53881   beq .L16776
53882   ldr r3, [ip, #0]
53883   tst r3, #256
53884   movne r3, r3, lsr #16
53885   movne r3, r3, asl #16
53886   orrne r3, r3, #768
53887   orreq r3, r2, r3, asl #16
53888   orrne r3, r2, r3
53889   orreq r3, r3, #768
53890   strne r3, [ip, #0]
53891   streq r3, [ip, #0]
53892 .L16776:
53893   ldr r1, [lr, #0]
53894   cmp r1, #0
53895   beq .L16793
53896   ands  r2, r1, #255
53897   beq .L16795
53898   ldr r0, [ip, #28]
53899   tst r0, #256
53900   movne r3, r0, lsr #16
53901   movne r3, r3, asl #16
53902   orreq r3, r2, #768
53903   orrne r2, r2, #768
53904   orrne r3, r3, r2
53905   orreq r3, r3, r0, asl #16
53906   strne r3, [ip, #28]
53907   streq r3, [ip, #28]
53908 .L16795:
53909   mov r3, r1, lsr #8
53910   ands  r2, r3, #255
53911   beq .L16799
53912   ldr r3, [ip, #24]
53913   tst r3, #256
53914   movne r3, r3, lsr #16
53915   movne r3, r3, asl #16
53916   orrne r3, r3, #768
53917   orreq r3, r2, r3, asl #16
53918   orrne r3, r2, r3
53919   orreq r3, r3, #768
53920   strne r3, [ip, #24]
53921   streq r3, [ip, #24]
53922 .L16799:
53923   mov r3, r1, lsr #16
53924   ands  r2, r3, #255
53925   beq .L16803
53926   ldr r3, [ip, #20]
53927   tst r3, #256
53928   movne r3, r3, lsr #16
53929   movne r3, r3, asl #16
53930   orrne r3, r3, #768
53931   orreq r3, r2, r3, asl #16
53932   orrne r3, r2, r3
53933   orreq r3, r3, #768
53934   strne r3, [ip, #20]
53935   streq r3, [ip, #20]
53936 .L16803:
53937   movs  r2, r1, lsr #24
53938   beq .L16793
53939   ldr r1, [ip, #16]
53940   tst r1, #256
53941   movne r3, r1, lsr #16
53942   movne r3, r3, asl #16
53943   orreq r3, r2, #768
53944   orrne r2, r2, #768
53945   orrne r3, r3, r2
53946   orreq r3, r3, r1, asl #16
53947   strne r3, [ip, #16]
53948   streq r3, [ip, #16]
53949 .L16793:
53950   add r4, r4, #1
53951   cmp r5, r4
53952   bne .L17780
53953   b .L15754
53954 .L17262:
53955   ands  r2, r0, #7
53956   mov r3, r0, lsr #3
53957   add r0, ip, r3, asl #6
53958   ldreq r1, [sp, #96]
53959   bne .L17781
53960 .L17366:
53961   movs  lr, lr, lsr #3
53962   beq .L15754
53963   mov ip, #0
53964   b .L17395
53965 .L17782:
53966   add r0, r0, #64
53967   add r1, r1, #32
53968 .L17395:
53969   ldr r2, [r0, #0]
53970   cmp r2, #0
53971   beq .L17396
53972   ands  r3, r2, #255
53973   ldrne r8, [sp, #52]
53974   orrne r3, r8, r3
53975   strne r3, [r1, #0]
53976   mov r3, r2, lsr #8
53977   ands  r3, r3, #255
53978   ldrne r4, [sp, #52]
53979   orrne r3, r4, r3
53980   strne r3, [r1, #4]
53981   mov r3, r2, lsr #16
53982   ands  r3, r3, #255
53983   ldrne r5, [sp, #52]
53984   orrne r3, r5, r3
53985   strne r3, [r1, #8]
53986   movs  r3, r2, lsr #24
53987   ldrne r7, [sp, #52]
53988   orrne r3, r7, r3
53989   strne r3, [r1, #12]
53990 .L17396:
53991   ldr r2, [r0, #4]
53992   cmp r2, #0
53993   beq .L17405
53994   ands  r3, r2, #255
53995   ldrne r8, [sp, #52]
53996   orrne r3, r8, r3
53997   strne r3, [r1, #16]
53998   mov r3, r2, lsr #8
53999   ands  r3, r3, #255
54000   ldrne r4, [sp, #52]
54001   orrne r3, r4, r3
54002   strne r3, [r1, #20]
54003   mov r3, r2, lsr #16
54004   ands  r3, r3, #255
54005   ldrne r5, [sp, #52]
54006   orrne r3, r5, r3
54007   strne r3, [r1, #24]
54008   movs  r3, r2, lsr #24
54009   ldrne r7, [sp, #52]
54010   orrne r3, r7, r3
54011   strne r3, [r1, #28]
54012 .L17405:
54013   add ip, ip, #1
54014   cmp lr, ip
54015   bne .L17782
54016   b .L15754
54017 .L17002:
54018   mov r3, r4, lsr #3
54019   mov r1, r3, asl #5
54020   ands  r3, r4, #7
54021   add r4, r0, r1
54022   ldreq r1, [sp, #96]
54023   bne .L17783
54024 .L17051:
54025   movs  ip, lr, lsr #3
54026   beq .L15754
54027   mov r0, #0
54028   b .L17061
54029 .L17784:
54030   add r4, r4, #32
54031   add r1, r1, #32
54032 .L17061:
54033   ldr r2, [r4, #0]
54034   cmp r2, #0
54035   beq .L17062
54036   ands  r3, r2, #15
54037   ldrne r5, [sp, #52]
54038   orrne r3, r5, r3
54039   orrne r3, r7, r3
54040   strne r3, [r1, #0]
54041   mov r3, r2, lsr #4
54042   ands  r3, r3, #15
54043   ldrne r8, [sp, #52]
54044   orrne r3, r8, r3
54045   orrne r3, r7, r3
54046   strne r3, [r1, #4]
54047   mov r3, r2, lsr #8
54048   ands  r3, r3, #15
54049   ldrne lr, [sp, #52]
54050   orrne r3, lr, r3
54051   orrne r3, r7, r3
54052   strne r3, [r1, #8]
54053   mov r3, r2, lsr #12
54054   ands  r3, r3, #15
54055   ldrne r5, [sp, #52]
54056   orrne r3, r5, r3
54057   orrne r3, r7, r3
54058   strne r3, [r1, #12]
54059   mov r3, r2, lsr #16
54060   ands  r3, r3, #15
54061   ldrne r8, [sp, #52]
54062   orrne r3, r8, r3
54063   orrne r3, r7, r3
54064   strne r3, [r1, #16]
54065   mov r3, r2, lsr #20
54066   ands  r3, r3, #15
54067   ldrne lr, [sp, #52]
54068   orrne r3, lr, r3
54069   orrne r3, r7, r3
54070   strne r3, [r1, #20]
54071   mov r3, r2, lsr #24
54072   ands  r3, r3, #15
54073   ldrne r5, [sp, #52]
54074   orrne r3, r5, r3
54075   orrne r3, r7, r3
54076   strne r3, [r1, #24]
54077   movs  r3, r2, lsr #28
54078   ldrne r8, [sp, #52]
54079   orrne r3, r8, r3
54080   orrne r3, r7, r3
54081   strne r3, [r1, #28]
54082 .L17062:
54083   add r0, r0, #1
54084   cmp ip, r0
54085   bne .L17784
54086   b .L15754
54087 .L16248:
54088   mov r3, r0, lsr #3
54089   ands  r2, r0, #7
54090   add lr, ip, r3, asl #6
54091   ldreq r0, [sp, #96]
54092   bne .L17785
54093 .L16398:
54094   movs  r4, r7, lsr #3
54095   beq .L15754
54096   mov ip, #0
54097   b .L16439
54098 .L17786:
54099   add lr, lr, #64
54100   add r0, r0, #32
54101 .L16439:
54102   ldr r2, [lr, #0]
54103   cmp r2, #0
54104   beq .L16440
54105   ands  r1, r2, #255
54106   beq .L16442
54107   ldr r3, [r0, #0]
54108   tst r3, #256
54109   movne r3, r3, lsr #16
54110   movne r3, r3, asl #16
54111   orrne r3, r3, #768
54112   orreq r3, r1, r3, asl #16
54113   orrne r3, r1, r3
54114   orreq r3, r3, #768
54115   strne r3, [r0, #0]
54116   streq r3, [r0, #0]
54117 .L16442:
54118   mov r3, r2, lsr #8
54119   ands  r1, r3, #255
54120   beq .L16446
54121   ldr r3, [r0, #4]
54122   tst r3, #256
54123   movne r3, r3, lsr #16
54124   movne r3, r3, asl #16
54125   orrne r3, r3, #768
54126   orreq r3, r1, r3, asl #16
54127   orrne r3, r1, r3
54128   orreq r3, r3, #768
54129   strne r3, [r0, #4]
54130   streq r3, [r0, #4]
54131 .L16446:
54132   mov r3, r2, lsr #16
54133   ands  r1, r3, #255
54134   beq .L16450
54135   ldr r3, [r0, #8]
54136   tst r3, #256
54137   movne r3, r3, lsr #16
54138   movne r3, r3, asl #16
54139   orrne r3, r3, #768
54140   orreq r3, r1, r3, asl #16
54141   orrne r3, r1, r3
54142   orreq r3, r3, #768
54143   strne r3, [r0, #8]
54144   streq r3, [r0, #8]
54145 .L16450:
54146   movs  r2, r2, lsr #24
54147   beq .L16440
54148   ldr r1, [r0, #12]
54149   tst r1, #256
54150   movne r3, r1, lsr #16
54151   movne r3, r3, asl #16
54152   orreq r3, r2, #768
54153   orrne r2, r2, #768
54154   orrne r3, r3, r2
54155   orreq r3, r3, r1, asl #16
54156   strne r3, [r0, #12]
54157   streq r3, [r0, #12]
54158 .L16440:
54159   ldr r2, [lr, #4]
54160   cmp r2, #0
54161   beq .L16457
54162   ands  r1, r2, #255
54163   beq .L16459
54164   ldr r3, [r0, #16]
54165   tst r3, #256
54166   movne r3, r3, lsr #16
54167   movne r3, r3, asl #16
54168   orrne r3, r3, #768
54169   orreq r3, r1, r3, asl #16
54170   orrne r3, r1, r3
54171   orreq r3, r3, #768
54172   strne r3, [r0, #16]
54173   streq r3, [r0, #16]
54174 .L16459:
54175   mov r3, r2, lsr #8
54176   ands  r1, r3, #255
54177   beq .L16463
54178   ldr r3, [r0, #20]
54179   tst r3, #256
54180   movne r3, r3, lsr #16
54181   movne r3, r3, asl #16
54182   orrne r3, r3, #768
54183   orreq r3, r1, r3, asl #16
54184   orrne r3, r1, r3
54185   orreq r3, r3, #768
54186   strne r3, [r0, #20]
54187   streq r3, [r0, #20]
54188 .L16463:
54189   mov r3, r2, lsr #16
54190   ands  r1, r3, #255
54191   beq .L16467
54192   ldr r3, [r0, #24]
54193   tst r3, #256
54194   movne r3, r3, lsr #16
54195   movne r3, r3, asl #16
54196   orrne r3, r3, #768
54197   orreq r3, r1, r3, asl #16
54198   orrne r3, r1, r3
54199   orreq r3, r3, #768
54200   strne r3, [r0, #24]
54201   streq r3, [r0, #24]
54202 .L16467:
54203   movs  r2, r2, lsr #24
54204   beq .L16457
54205   ldr r3, [r0, #28]
54206   tst r3, #256
54207   movne r3, r3, lsr #16
54208   movne r3, r3, asl #16
54209   orrne r3, r3, #768
54210   orreq r3, r2, r3, asl #16
54211   orrne r3, r2, r3
54212   orreq r3, r3, #768
54213   strne r3, [r0, #28]
54214   streq r3, [r0, #28]
54215 .L16457:
54216   add ip, ip, #1
54217   cmp ip, r4
54218   bne .L17786
54219   b .L15754
54220 .L17132:
54221   ands  r2, r4, #7
54222   mov r3, r4, lsr #3
54223   sub r0, r0, r3, asl #5
54224   ldreq r5, [sp, #96]
54225   bne .L17787
54226 .L17181:
54227   movs  r1, r1, lsr #3
54228   beq .L15754
54229   mov r2, #0
54230   b .L17191
54231 .L17788:
54232   sub r0, r0, #32
54233   add r5, r5, #32
54234 .L17191:
54235   ldr r4, [r0, #0]
54236   cmp r4, #0
54237   beq .L17192
54238   ands  r3, r4, #15
54239   ldrne r8, [sp, #52]
54240   orrne r3, r8, r3
54241   orrne r3, r7, r3
54242   strne r3, [r5, #28]
54243   mov r3, r4, lsr #4
54244   ands  r3, r3, #15
54245   ldrne ip, [sp, #52]
54246   orrne r3, ip, r3
54247   orrne r3, r7, r3
54248   strne r3, [r5, #24]
54249   mov r3, r4, lsr #8
54250   ands  r3, r3, #15
54251   ldrne lr, [sp, #52]
54252   orrne r3, lr, r3
54253   orrne r3, r7, r3
54254   strne r3, [r5, #20]
54255   mov r3, r4, lsr #12
54256   ands  r3, r3, #15
54257   ldrne r8, [sp, #52]
54258   orrne r3, r8, r3
54259   orrne r3, r7, r3
54260   strne r3, [r5, #16]
54261   mov r3, r4, lsr #16
54262   ands  r3, r3, #15
54263   ldrne ip, [sp, #52]
54264   orrne r3, ip, r3
54265   orrne r3, r7, r3
54266   strne r3, [r5, #12]
54267   mov r3, r4, lsr #20
54268   ands  r3, r3, #15
54269   ldrne lr, [sp, #52]
54270   orrne r3, lr, r3
54271   orrne r3, r7, r3
54272   strne r3, [r5, #8]
54273   mov r3, r4, lsr #24
54274   ands  r3, r3, #15
54275   ldrne r8, [sp, #52]
54276   orrne r3, r8, r3
54277   orrne r3, r7, r3
54278   strne r3, [r5, #4]
54279   movs  r3, r4, lsr #28
54280   ldrne ip, [sp, #52]
54281   orrne r3, ip, r3
54282   orrne r3, r7, r3
54283   strne r3, [r5, #0]
54284 .L17192:
54285   add r2, r2, #1
54286   cmp r2, r1
54287   bne .L17788
54288   b .L15754
54289 .L16044:
54290   mov r3, r4, lsr #3
54291   ands  r2, r4, #7
54292   sub ip, r0, r3, asl #5
54293   ldreq r4, [sp, #96]
54294   bne .L17789
54295 .L16115:
54296   movs  r5, lr, lsr #3
54297   beq .L15754
54298   mov lr, #0
54299   b .L16127
54300 .L17790:
54301   sub ip, ip, #32
54302   add r4, r4, #32
54303 .L16127:
54304   ldr r0, [ip, #0]
54305   cmp r0, #0
54306   beq .L16128
54307   ands  r2, r0, #15
54308   beq .L16130
54309   ldr r1, [r4, #28]
54310   orr r2, r7, r2
54311   tst r1, #256
54312   movne r3, r1, lsr #16
54313   movne r3, r3, asl #16
54314   orreq r3, r2, #768
54315   orrne r2, r2, #768
54316   orrne r3, r3, r2
54317   orreq r3, r3, r1, asl #16
54318   strne r3, [r4, #28]
54319   streq r3, [r4, #28]
54320 .L16130:
54321   mov r3, r0, lsr #4
54322   ands  r2, r3, #15
54323   beq .L16134
54324   ldr r1, [r4, #24]
54325   orr r2, r7, r2
54326   tst r1, #256
54327   movne r3, r1, lsr #16
54328   movne r3, r3, asl #16
54329   orreq r3, r2, #768
54330   orrne r2, r2, #768
54331   orrne r3, r3, r2
54332   orreq r3, r3, r1, asl #16
54333   strne r3, [r4, #24]
54334   streq r3, [r4, #24]
54335 .L16134:
54336   mov r3, r0, lsr #8
54337   ands  r2, r3, #15
54338   beq .L16138
54339   ldr r1, [r4, #20]
54340   orr r2, r7, r2
54341   tst r1, #256
54342   movne r3, r1, lsr #16
54343   movne r3, r3, asl #16
54344   orreq r3, r2, #768
54345   orrne r2, r2, #768
54346   orrne r3, r3, r2
54347   orreq r3, r3, r1, asl #16
54348   strne r3, [r4, #20]
54349   streq r3, [r4, #20]
54350 .L16138:
54351   mov r3, r0, lsr #12
54352   ands  r2, r3, #15
54353   beq .L16142
54354   ldr r1, [r4, #16]
54355   orr r2, r7, r2
54356   tst r1, #256
54357   movne r3, r1, lsr #16
54358   movne r3, r3, asl #16
54359   orreq r3, r2, #768
54360   orrne r2, r2, #768
54361   orrne r3, r3, r2
54362   orreq r3, r3, r1, asl #16
54363   strne r3, [r4, #16]
54364   streq r3, [r4, #16]
54365 .L16142:
54366   mov r3, r0, lsr #16
54367   ands  r2, r3, #15
54368   beq .L16146
54369   ldr r1, [r4, #12]
54370   orr r2, r7, r2
54371   tst r1, #256
54372   movne r3, r1, lsr #16
54373   movne r3, r3, asl #16
54374   orreq r3, r2, #768
54375   orrne r2, r2, #768
54376   orrne r3, r3, r2
54377   orreq r3, r3, r1, asl #16
54378   strne r3, [r4, #12]
54379   streq r3, [r4, #12]
54380 .L16146:
54381   mov r3, r0, lsr #20
54382   ands  r2, r3, #15
54383   beq .L16150
54384   ldr r1, [r4, #8]
54385   orr r2, r7, r2
54386   tst r1, #256
54387   movne r3, r1, lsr #16
54388   movne r3, r3, asl #16
54389   orreq r3, r2, #768
54390   orrne r2, r2, #768
54391   orrne r3, r3, r2
54392   orreq r3, r3, r1, asl #16
54393   strne r3, [r4, #8]
54394   streq r3, [r4, #8]
54395 .L16150:
54396   mov r3, r0, lsr #24
54397   ands  r2, r3, #15
54398   beq .L16154
54399   ldr r1, [r4, #4]
54400   orr r2, r7, r2
54401   tst r1, #256
54402   movne r3, r1, lsr #16
54403   movne r3, r3, asl #16
54404   orreq r3, r2, #768
54405   orrne r2, r2, #768
54406   orrne r3, r3, r2
54407   orreq r3, r3, r1, asl #16
54408   strne r3, [r4, #4]
54409   streq r3, [r4, #4]
54410 .L16154:
54411   movs  r2, r0, lsr #28
54412   beq .L16128
54413   ldr r1, [r4, #0]
54414   orr r2, r7, r2
54415   tst r1, #256
54416   movne r3, r1, lsr #16
54417   movne r3, r3, asl #16
54418   orreq r3, r2, #768
54419   orrne r2, r2, #768
54420   orrne r3, r3, r2
54421   orreq r3, r3, r1, asl #16
54422   strne r3, [r4, #0]
54423   streq r3, [r4, #0]
54424 .L16128:
54425   add lr, lr, #1
54426   cmp lr, r5
54427   bne .L17790
54428   b .L15754
54429 .L17482:
54430   mov r3, r0, lsr #3
54431   ands  r1, r0, #7
54432   sub r2, r2, r3, asl #6
54433   ldreq r0, [sp, #96]
54434   bne .L17791
54435 .L17586:
54436   movs  lr, lr, lsr #3
54437   beq .L15754
54438   mov ip, #0
54439   b .L17615
54440 .L17792:
54441   sub r2, r2, #64
54442   add r0, r0, #32
54443 .L17615:
54444   ldr r1, [r2, #4]
54445   cmp r1, #0
54446   beq .L17616
54447   ands  r3, r1, #255
54448   ldrne r8, [sp, #52]
54449   orrne r3, r8, r3
54450   strne r3, [r0, #12]
54451   mov r3, r1, lsr #8
54452   ands  r3, r3, #255
54453   ldrne r4, [sp, #52]
54454   orrne r3, r4, r3
54455   strne r3, [r0, #8]
54456   mov r3, r1, lsr #16
54457   ands  r3, r3, #255
54458   ldrne r5, [sp, #52]
54459   orrne r3, r5, r3
54460   strne r3, [r0, #4]
54461   movs  r3, r1, lsr #24
54462   ldrne r7, [sp, #52]
54463   orrne r3, r7, r3
54464   strne r3, [r0, #0]
54465 .L17616:
54466   ldr r1, [r2, #0]
54467   cmp r1, #0
54468   beq .L17625
54469   ands  r3, r1, #255
54470   ldrne r8, [sp, #52]
54471   orrne r3, r8, r3
54472   strne r3, [r0, #28]
54473   mov r3, r1, lsr #8
54474   ands  r3, r3, #255
54475   ldrne r4, [sp, #52]
54476   orrne r3, r4, r3
54477   strne r3, [r0, #24]
54478   mov r3, r1, lsr #16
54479   ands  r3, r3, #255
54480   ldrne r5, [sp, #52]
54481   orrne r3, r5, r3
54482   strne r3, [r0, #20]
54483   movs  r3, r1, lsr #24
54484   ldrne r7, [sp, #52]
54485   orrne r3, r7, r3
54486   strne r3, [r0, #16]
54487 .L17625:
54488   add ip, ip, #1
54489   cmp ip, lr
54490   bne .L17792
54491   b .L15754
54492 .L17791:
54493   cmp r1, #3
54494   rsb ip, r1, #8
54495   bls .L17587
54496   cmp ip, #0
54497   ldr r0, [r2, #0]
54498   ldreq r0, [sp, #96]
54499   beq .L17591
54500   mov r3, r1, asl #3
54501   sub r3, r3, #32
54502   mov r1, r0, asl r3
54503   mov r0, #0
54504 .L17592:
54505   movs  r3, r1, lsr #24
54506   ldr r7, [sp, #52]
54507   ldrne r8, [sp, #96]
54508   orr r3, r7, r3
54509   strne r3, [r8, r0, asl #2]
54510   add r0, r0, #1
54511   cmp r0, ip
54512   mov r1, r1, asl #8
54513   bne .L17592
54514   ldr r1, [sp, #96]
54515   add r0, r1, ip, asl #2
54516 .L17591:
54517   sub r2, r2, #64
54518   b .L17586
54519 .L17789:
54520   rsbs  r8, r2, #8
54521   ldr r1, [ip, #0]
54522   ldreq r4, [sp, #96]
54523   beq .L16118
54524   mov r3, r2, asl #2
54525   mov r4, r1, asl r3
54526   ldr r5, [sp, #96]
54527   mov r6, #0
54528 .L16119:
54529   movs  r3, r4, lsr #28
54530   beq .L16120
54531   ldr r1, [r5, #0]
54532   orr r2, r7, r3
54533   mov r3, r1, lsr #16
54534   orr r0, r2, #768
54535   mov r3, r3, asl #16
54536   orr r2, r2, #768
54537   tst r1, #256
54538   orr r3, r3, r0
54539   orr r2, r2, r1, asl #16
54540   strne r3, [r5, #0]
54541   streq r2, [r5, #0]
54542 .L16120:
54543   add r6, r6, #1
54544   cmp r6, r8
54545   mov r4, r4, asl #4
54546   add r5, r5, #4
54547   bne .L16119
54548   ldr r0, [sp, #96]
54549   add r4, r0, r8, asl #2
54550 .L16118:
54551   sub ip, ip, #32
54552   b .L16115
54553 .L17787:
54554   rsbs  ip, r2, #8
54555   ldr lr, [r0, #0]
54556   ldreq r5, [sp, #96]
54557   beq .L17184
54558   mov r3, r2, asl #2
54559   mov r4, lr, asl r3
54560   mov r5, #0
54561 .L17185:
54562   ldr r8, [sp, #52]
54563   movs  r3, r4, lsr #28
54564   ldrne lr, [sp, #96]
54565   orr r3, r8, r3
54566   orr r3, r7, r3
54567   strne r3, [lr, r5, asl #2]
54568   add r5, r5, #1
54569   cmp ip, r5
54570   mov r4, r4, asl #4
54571   bne .L17185
54572   ldr r2, [sp, #96]
54573   add r5, r2, ip, asl #2
54574 .L17184:
54575   sub r0, r0, #32
54576   b .L17181
54577 .L17783:
54578   rsbs  r5, r3, #8
54579   ldr r0, [r0, r1]
54580   ldreq r1, [sp, #96]
54581   beq .L17054
54582   mov r3, r3, asl #2
54583   mov r0, r0, lsr r3
54584   mov r2, #0
54585 .L17055:
54586   ldr r8, [sp, #52]
54587   ands  r3, r0, #15
54588   ldrne ip, [sp, #96]
54589   orr r3, r8, r3
54590   orr r3, r7, r3
54591   strne r3, [ip, r2, asl #2]
54592   add r2, r2, #1
54593   cmp r2, r5
54594   mov r0, r0, lsr #4
54595   bne .L17055
54596   ldr r0, [sp, #96]
54597   add r1, r0, r5, asl #2
54598 .L17054:
54599   add r4, r4, #32
54600   b .L17051
54601 .L17781:
54602   cmp r2, #3
54603   rsb ip, r2, #8
54604   bls .L17367
54605   cmp ip, #0
54606   ldr r1, [r0, #4]
54607   ldreq r1, [sp, #96]
54608   beq .L17371
54609   mov r3, r2, asl #3
54610   sub r3, r3, #32
54611   mov r2, r1, lsr r3
54612   mov r1, #0
54613 .L17372:
54614   ands  r3, r2, #255
54615   ldr r7, [sp, #52]
54616   ldrne r8, [sp, #96]
54617   orr r3, r7, r3
54618   strne r3, [r8, r1, asl #2]
54619   add r1, r1, #1
54620   cmp r1, ip
54621   mov r2, r2, lsr #8
54622   bne .L17372
54623   ldr r2, [sp, #96]
54624   add r1, r2, ip, asl #2
54625 .L17371:
54626   add r0, r0, #64
54627   b .L17366
54628 .L17785:
54629   cmp r2, #3
54630   rsb r6, r2, #8
54631   bls .L16399
54632   cmp r6, #0
54633   ldr r1, [lr, #4]
54634   ldreq r0, [sp, #96]
54635   beq .L16403
54636   mov r3, r2, asl #3
54637   sub r3, r3, #32
54638   mov ip, r1, lsr r3
54639   ldr r4, [sp, #96]
54640   mov r5, #0
54641 .L16404:
54642   ands  r0, ip, #255
54643   beq .L16405
54644   ldr r2, [r4, #0]
54645   orr r1, r0, #768
54646   mov r3, r2, lsr #16
54647   orr r0, r0, #768
54648   mov r3, r3, asl #16
54649   tst r2, #256
54650   orr r3, r3, r1
54651   orr r0, r0, r2, asl #16
54652   strne r3, [r4, #0]
54653   streq r0, [r4, #0]
54654 .L16405:
54655   add r5, r5, #1
54656   cmp r5, r6
54657   mov ip, ip, lsr #8
54658   add r4, r4, #4
54659   bne .L16404
54660   ldr r5, [sp, #96]
54661   add r0, r5, r6, asl #2
54662 .L16403:
54663   add lr, lr, #64
54664   b .L16398
54665 .L17779:
54666   cmp r2, #3
54667   rsb r6, r2, #8
54668   bls .L16735
54669   cmp r6, #0
54670   ldr r1, [lr, #0]
54671   ldreq ip, [sp, #96]
54672   beq .L16739
54673   mov r3, r2, asl #3
54674   sub r3, r3, #32
54675   mov ip, r1, asl r3
54676   ldr r4, [sp, #96]
54677   mov r5, #0
54678 .L16740:
54679   movs  r0, ip, lsr #24
54680   beq .L16741
54681   ldr r2, [r4, #0]
54682   orr r1, r0, #768
54683   mov r3, r2, lsr #16
54684   orr r0, r0, #768
54685   mov r3, r3, asl #16
54686   tst r2, #256
54687   orr r3, r3, r1
54688   orr r0, r0, r2, asl #16
54689   strne r3, [r4, #0]
54690   streq r0, [r4, #0]
54691 .L16741:
54692   add r5, r5, #1
54693   cmp r6, r5
54694   mov ip, ip, asl #8
54695   add r4, r4, #4
54696   bne .L16740
54697   ldr r1, [sp, #96]
54698   add ip, r1, r6, asl #2
54699 .L16739:
54700   sub lr, lr, #64
54701   b .L16734
54702 .L17777:
54703   rsbs  r6, r3, #8
54704   ldr r0, [r0, r1]
54705   ldreq ip, [sp, #96]
54706   beq .L15914
54707   mov r3, r3, asl #2
54708   mov ip, r0, lsr r3
54709   ldr r4, [sp, #96]
54710   mov r5, #0
54711 .L15915:
54712   ands  r3, ip, #15
54713   beq .L15916
54714   ldr r1, [r4, #0]
54715   orr r2, r7, r3
54716   mov r3, r1, lsr #16
54717   orr r0, r2, #768
54718   mov r3, r3, asl #16
54719   orr r2, r2, #768
54720   tst r1, #256
54721   orr r3, r3, r0
54722   orr r2, r2, r1, asl #16
54723   strne r3, [r4, #0]
54724   streq r2, [r4, #0]
54725 .L15916:
54726   add r5, r5, #1
54727   cmp r6, r5
54728   mov ip, ip, lsr #4
54729   add r4, r4, #4
54730   bne .L15915
54731   ldr r3, [sp, #96]
54732   add ip, r3, r6, asl #2
54733 .L15914:
54734   add lr, lr, #32
54735   b .L15911
54736 .L15842:
54737   ldr lr, [sp, #128]
54738   rsb r6, r3, #8
54739   cmp lr, r6
54740   bge .L15845
54741   cmp lr, #0
54742   ble .L15754
54743   ldr r2, [r0, r1]
54744   mov r3, r3, asl #2
54745   mov ip, r2, lsr r3
54746   ldr r4, [sp, #96]
54747   mov lr, #0
54748 .L15849:
54749   ands  r3, ip, #15
54750   beq .L15850
54751   ldr r1, [r4, #0]
54752   orr r2, r7, r3
54753   mov r3, r1, lsr #16
54754   orr r0, r2, #768
54755   mov r3, r3, asl #16
54756   orr r2, r2, #768
54757   tst r1, #256
54758   orr r3, r3, r0
54759   orr r2, r2, r1, asl #16
54760   strne r3, [r4, #0]
54761   streq r2, [r4, #0]
54762 .L15850:
54763   ldr r0, [sp, #128]
54764   add lr, lr, #1
54765   cmp r0, lr
54766   mov ip, ip, lsr #4
54767   add r4, r4, #4
54768   bne .L15849
54769   b .L15754
54770 .L16586:
54771   ldr r7, [sp, #128]
54772   rsb r6, lr, #8
54773   cmp r7, r6
54774   bge .L16589
54775   cmp r7, #0
54776   ble .L15754
54777   cmp lr, #3
54778   bls .L16592
54779   mov r3, lr, asl #3
54780   ldr r2, [r8, #0]
54781   sub r3, r3, #32
54782   mov ip, r2, asl r3
54783   ldr lr, [sp, #96]
54784   mov r4, #0
54785 .L16595:
54786   movs  r0, ip, lsr #24
54787   beq .L16596
54788   ldr r2, [lr, #0]
54789   orr r1, r0, #768
54790   mov r3, r2, lsr #16
54791   orr r0, r0, #768
54792   mov r3, r3, asl #16
54793   tst r2, #256
54794   orr r3, r3, r1
54795   orr r0, r0, r2, asl #16
54796   strne r3, [lr, #0]
54797   streq r0, [lr, #0]
54798 .L16596:
54799   ldr r8, [sp, #128]
54800   add r4, r4, #1
54801   cmp r8, r4
54802   mov ip, ip, asl #8
54803   add lr, lr, #4
54804   bne .L16595
54805   b .L15754
54806 .L17484:
54807   ldr lr, [sp, #128]
54808   rsb r0, ip, #8
54809   cmp lr, r0
54810   bge .L17487
54811   cmp lr, #0
54812   ble .L15754
54813   cmp ip, #3
54814   bls .L17490
54815   ldr r2, [r6, #0]
54816   mov r3, ip, asl #3
54817   sub r3, r3, #32
54818   mov r2, r2, asl r3
54819   mov r1, #0
54820 .L17493:
54821   movs  r3, r2, lsr #24
54822   ldr r0, [sp, #52]
54823   ldrne r4, [sp, #96]
54824   orr r3, r0, r3
54825   ldr r5, [sp, #128]
54826   strne r3, [r4, r1, asl #2]
54827   add r1, r1, #1
54828   cmp r5, r1
54829   mov r2, r2, asl #8
54830   bne .L17493
54831   b .L15754
54832 .L16046:
54833   ldr r2, [sp, #128]
54834   rsb r6, lr, #8
54835   cmp r2, r6
54836   bge .L16049
54837   cmp r2, #0
54838   ble .L15754
54839   ldr r2, [ip, #0]
54840   mov r3, lr, asl #2
54841   mov ip, r2, asl r3
54842   ldr r4, [sp, #96]
54843   mov lr, #0
54844 .L16053:
54845   movs  r3, ip, lsr #28
54846   beq .L16054
54847   ldr r1, [r4, #0]
54848   orr r2, r7, r3
54849   mov r3, r1, lsr #16
54850   orr r0, r2, #768
54851   mov r3, r3, asl #16
54852   orr r2, r2, #768
54853   tst r1, #256
54854   orr r3, r3, r0
54855   orr r2, r2, r1, asl #16
54856   strne r3, [r4, #0]
54857   streq r2, [r4, #0]
54858 .L16054:
54859   ldr r3, [sp, #128]
54860   add lr, lr, #1
54861   cmp r3, lr
54862   mov ip, ip, asl #4
54863   add r4, r4, #4
54864   bne .L16053
54865   b .L15754
54866 .L17134:
54867   ldr r1, [sp, #128]
54868   rsb lr, r5, #8
54869   cmp r1, lr
54870   bge .L17137
54871   cmp r1, #0
54872   ble .L15754
54873   ldr r2, [r0, #0]
54874   mov r3, r5, asl #2
54875   mov r0, r2, asl r3
54876   mov r2, #0
54877 .L17141:
54878   ldr r4, [sp, #52]
54879   movs  r3, r0, lsr #28
54880   ldrne r5, [sp, #96]
54881   orr r3, r4, r3
54882   orr r3, r7, r3
54883   ldr r8, [sp, #128]
54884   strne r3, [r5, r2, asl #2]
54885   add r2, r2, #1
54886   cmp r8, r2
54887   mov r0, r0, asl #4
54888   bne .L17141
54889   b .L15754
54890 .L17264:
54891   ldr ip, [sp, #128]
54892   rsb r0, lr, #8
54893   cmp ip, r0
54894   bge .L17267
54895   cmp ip, #0
54896   ble .L15754
54897   cmp lr, #3
54898   bls .L17270
54899   ldr r2, [r6, #4]
54900   mov r3, lr, asl #3
54901   sub r3, r3, #32
54902   mov r1, r2, lsr r3
54903   mov r2, #0
54904 .L17273:
54905   ands  r3, r1, #255
54906   ldr lr, [sp, #52]
54907   ldrne r0, [sp, #96]
54908   orr r3, lr, r3
54909   strne r3, [r0, r2, asl #2]
54910   ldr r3, [sp, #128]
54911   add r2, r2, #1
54912   cmp r3, r2
54913   mov r1, r1, lsr #8
54914   bne .L17273
54915   b .L15754
54916 .L17004:
54917   ldr ip, [sp, #128]
54918   rsb lr, r3, #8
54919   cmp ip, lr
54920   bge .L17007
54921   cmp ip, #0
54922   ble .L15754
54923   ldr r2, [r0, r1]
54924   mov r3, r3, asl #2
54925   mov r0, r2, lsr r3
54926   mov r2, #0
54927 .L17011:
54928   ldr lr, [sp, #52]
54929   ands  r3, r0, #15
54930   ldrne r1, [sp, #96]
54931   orr r3, lr, r3
54932   orr r3, r7, r3
54933   strne r3, [r1, r2, asl #2]
54934   ldr r3, [sp, #128]
54935   add r2, r2, #1
54936   cmp r3, r2
54937   mov r0, r0, lsr #4
54938   bne .L17011
54939   b .L15754
54940 .L16250:
54941   ldr ip, [sp, #128]
54942   rsb r5, lr, #8
54943   cmp ip, r5
54944   bge .L16253
54945   cmp ip, #0
54946   ble .L15754
54947   cmp lr, #3
54948   bls .L16256
54949   mov r3, lr, asl #3
54950   ldr r2, [r7, #4]
54951   sub r3, r3, #32
54952   mov ip, r2, lsr r3
54953   ldr lr, [sp, #96]
54954   mov r4, #0
54955 .L16259:
54956   ands  r0, ip, #255
54957   beq .L16260
54958   ldr r2, [lr, #0]
54959   orr r1, r0, #768
54960   mov r3, r2, lsr #16
54961   orr r0, r0, #768
54962   mov r3, r3, asl #16
54963   tst r2, #256
54964   orr r3, r3, r1
54965   orr r0, r0, r2, asl #16
54966   strne r3, [lr, #0]
54967   streq r0, [lr, #0]
54968 .L16260:
54969   ldr r0, [sp, #128]
54970   add r4, r4, #1
54971   cmp r0, r4
54972   mov ip, ip, lsr #8
54973   add lr, lr, #4
54974   bne .L16259
54975   b .L15754
54976 .L16399:
54977   subs  r8, r6, #4
54978   ldr r1, [lr, #0]
54979   ldreq r2, [sp, #96]
54980   beq .L16413
54981   mov r3, r2, asl #3
54982   mov ip, r1, lsr r3
54983   ldr r4, [sp, #96]
54984   mov r5, #0
54985 .L16414:
54986   ands  r0, ip, #255
54987   beq .L16415
54988   ldr r2, [r4, #0]
54989   orr r1, r0, #768
54990   mov r3, r2, lsr #16
54991   orr r0, r0, #768
54992   mov r3, r3, asl #16
54993   tst r2, #256
54994   orr r3, r3, r1
54995   orr r0, r0, r2, asl #16
54996   strne r3, [r4, #0]
54997   streq r0, [r4, #0]
54998 .L16415:
54999   add r5, r5, #1
55000   cmp r8, r5
55001   mov ip, ip, lsr #8
55002   add r4, r4, #4
55003   bne .L16414
55004   ldr r4, [sp, #96]
55005   add r3, r4, r6, asl #2
55006   sub r2, r3, #16
55007 .L16413:
55008   ldr r1, [lr, #4]
55009   cmp r1, #0
55010   beq .L16421
55011   ands  r0, r1, #255
55012   beq .L16423
55013   ldr r3, [r2, #0]
55014   tst r3, #256
55015   movne r3, r3, lsr #16
55016   movne r3, r3, asl #16
55017   orrne r3, r3, #768
55018   orreq r3, r0, r3, asl #16
55019   orrne r3, r0, r3
55020   orreq r3, r3, #768
55021   strne r3, [r2, #0]
55022   streq r3, [r2, #0]
55023 .L16423:
55024   mov r3, r1, lsr #8
55025   ands  r0, r3, #255
55026   beq .L16427
55027   ldr r3, [r2, #4]
55028   tst r3, #256
55029   movne r3, r3, lsr #16
55030   movne r3, r3, asl #16
55031   orrne r3, r3, #768
55032   orreq r3, r0, r3, asl #16
55033   orrne r3, r0, r3
55034   orreq r3, r3, #768
55035   strne r3, [r2, #4]
55036   streq r3, [r2, #4]
55037 .L16427:
55038   mov r3, r1, lsr #16
55039   ands  r0, r3, #255
55040   beq .L16431
55041   ldr r3, [r2, #8]
55042   tst r3, #256
55043   movne r3, r3, lsr #16
55044   movne r3, r3, asl #16
55045   orrne r3, r3, #768
55046   orreq r3, r0, r3, asl #16
55047   orrne r3, r0, r3
55048   orreq r3, r3, #768
55049   strne r3, [r2, #8]
55050   streq r3, [r2, #8]
55051 .L16431:
55052   movs  r1, r1, lsr #24
55053   beq .L16421
55054   ldr r3, [r2, #12]
55055   tst r3, #256
55056   movne r3, r3, lsr #16
55057   movne r3, r3, asl #16
55058   orrne r3, r3, #768
55059   orrne r3, r1, r3
55060   strne r3, [r2, #12]
55061   orreq r3, r1, r3, asl #16
55062   orreq r3, r3, #768
55063   streq r3, [r2, #12]
55064 .L16421:
55065   add r0, r2, #16
55066   add lr, lr, #64
55067   b .L16398
55068 .L16735:
55069   subs  r8, r6, #4
55070   ldr r1, [lr, #4]
55071   ldreq r2, [sp, #96]
55072   beq .L16749
55073   mov r3, r2, asl #3
55074   sub r3, r3, #32
55075   mov ip, r1, asl r3
55076   ldr r4, [sp, #96]
55077   mov r5, #0
55078 .L16750:
55079   movs  r0, ip, lsr #24
55080   beq .L16751
55081   ldr r2, [r4, #0]
55082   orr r1, r0, #768
55083   mov r3, r2, lsr #16
55084   orr r0, r0, #768
55085   mov r3, r3, asl #16
55086   tst r2, #256
55087   orr r3, r3, r1
55088   orr r0, r0, r2, asl #16
55089   strne r3, [r4, #0]
55090   streq r0, [r4, #0]
55091 .L16751:
55092   add r5, r5, #1
55093   cmp r8, r5
55094   mov ip, ip, asl #8
55095   add r4, r4, #4
55096   bne .L16750
55097   ldr r0, [sp, #96]
55098   add r3, r0, r6, asl #2
55099   sub r2, r3, #16
55100 .L16749:
55101   ldr r1, [lr, #0]
55102   cmp r1, #0
55103   beq .L16757
55104   ands  r0, r1, #255
55105   beq .L16759
55106   ldr r3, [r2, #12]
55107   tst r3, #256
55108   movne r3, r3, lsr #16
55109   movne r3, r3, asl #16
55110   orrne r3, r3, #768
55111   orreq r3, r0, r3, asl #16
55112   orrne r3, r0, r3
55113   orreq r3, r3, #768
55114   strne r3, [r2, #12]
55115   streq r3, [r2, #12]
55116 .L16759:
55117   mov r3, r1, lsr #8
55118   ands  r0, r3, #255
55119   beq .L16763
55120   ldr r3, [r2, #8]
55121   tst r3, #256
55122   movne r3, r3, lsr #16
55123   movne r3, r3, asl #16
55124   orrne r3, r3, #768
55125   orreq r3, r0, r3, asl #16
55126   orrne r3, r0, r3
55127   orreq r3, r3, #768
55128   strne r3, [r2, #8]
55129   streq r3, [r2, #8]
55130 .L16763:
55131   mov r3, r1, lsr #16
55132   ands  r0, r3, #255
55133   beq .L16767
55134   ldr r3, [r2, #4]
55135   tst r3, #256
55136   movne r3, r3, lsr #16
55137   movne r3, r3, asl #16
55138   orrne r3, r3, #768
55139   orreq r3, r0, r3, asl #16
55140   orrne r3, r0, r3
55141   orreq r3, r3, #768
55142   strne r3, [r2, #4]
55143   streq r3, [r2, #4]
55144 .L16767:
55145   movs  r1, r1, lsr #24
55146   beq .L16757
55147   ldr r3, [r2, #0]
55148   tst r3, #256
55149   movne r3, r3, lsr #16
55150   movne r3, r3, asl #16
55151   orrne r3, r3, #768
55152   orrne r3, r1, r3
55153   strne r3, [r2, #0]
55154   orreq r3, r1, r3, asl #16
55155   orreq r3, r3, #768
55156   streq r3, [r2, #0]
55157 .L16757:
55158   add ip, r2, #16
55159   sub lr, lr, #64
55160   b .L16734
55161 .L15845:
55162   cmp r6, #0
55163   ldr r2, [r8, #0]
55164   ldreq r5, [sp, #96]
55165   beq .L15857
55166   mov r3, r3, asl #2
55167   mov ip, r2, lsr r3
55168   ldr r4, [sp, #96]
55169   mov lr, #0
55170 .L15858:
55171   ands  r3, ip, #15
55172   beq .L15859
55173   ldr r1, [r4, #0]
55174   orr r2, r7, r3
55175   mov r3, r1, lsr #16
55176   orr r0, r2, #768
55177   mov r3, r3, asl #16
55178   orr r2, r2, #768
55179   tst r1, #256
55180   orr r3, r3, r0
55181   orr r2, r2, r1, asl #16
55182   strne r3, [r4, #0]
55183   streq r2, [r4, #0]
55184 .L15859:
55185   add lr, lr, #1
55186   cmp r6, lr
55187   mov ip, ip, lsr #4
55188   add r4, r4, #4
55189   bne .L15858
55190   ldr r1, [sp, #96]
55191   add r5, r1, r6, asl #2
55192 .L15857:
55193   ldr r2, [sp, #128]
55194   add r8, r8, #32
55195   rsb sl, r6, r2
55196   b .L15844
55197 .L17587:
55198   subs  r4, ip, #4
55199   ldr r0, [r2, #4]
55200   ldreq r0, [sp, #96]
55201   beq .L17599
55202   mov r3, r1, asl #3
55203   sub r3, r3, #32
55204   mov r1, r0, asl r3
55205   mov r0, #0
55206 .L17600:
55207   movs  r3, r1, lsr #24
55208   ldr r5, [sp, #52]
55209   ldrne r7, [sp, #96]
55210   orr r3, r5, r3
55211   strne r3, [r7, r0, asl #2]
55212   add r0, r0, #1
55213   cmp r4, r0
55214   mov r1, r1, asl #8
55215   bne .L17600
55216   ldr r8, [sp, #96]
55217   add r3, r8, ip, asl #2
55218   sub r0, r3, #16
55219 .L17599:
55220   ldr r1, [r2, #0]
55221   cmp r1, #0
55222   beq .L17605
55223   ands  r3, r1, #255
55224   ldrne ip, [sp, #52]
55225   orrne r3, ip, r3
55226   strne r3, [r0, #12]
55227   mov r3, r1, lsr #8
55228   ands  r3, r3, #255
55229   ldrne r4, [sp, #52]
55230   orrne r3, r4, r3
55231   strne r3, [r0, #8]
55232   mov r3, r1, lsr #16
55233   ands  r3, r3, #255
55234   ldrne r5, [sp, #52]
55235   orrne r3, r5, r3
55236   strne r3, [r0, #4]
55237   movs  r3, r1, lsr #24
55238   ldrne r7, [sp, #52]
55239   orrne r3, r7, r3
55240   strne r3, [r0, #0]
55241 .L17605:
55242   add r0, r0, #16
55243   sub r2, r2, #64
55244   b .L17586
55245 .L16589:
55246   cmp lr, #3
55247   bls .L16627
55248   cmp r6, #0
55249   ldr r2, [r8, #0]
55250   ldreq r5, [sp, #96]
55251   beq .L16631
55252   mov r3, lr, asl #3
55253   sub r3, r3, #32
55254   mov ip, r2, asl r3
55255   ldr lr, [sp, #96]
55256   mov r4, #0
55257 .L16632:
55258   movs  r0, ip, lsr #24
55259   beq .L16633
55260   ldr r2, [lr, #0]
55261   orr r1, r0, #768
55262   mov r3, r2, lsr #16
55263   orr r0, r0, #768
55264   mov r3, r3, asl #16
55265   tst r2, #256
55266   orr r3, r3, r1
55267   orr r0, r0, r2, asl #16
55268   strne r3, [lr, #0]
55269   streq r0, [lr, #0]
55270 .L16633:
55271   add r4, r4, #1
55272   cmp r6, r4
55273   mov ip, ip, asl #8
55274   add lr, lr, #4
55275   bne .L16632
55276   ldr r7, [sp, #96]
55277   add r5, r7, r6, asl #2
55278 .L16631:
55279   ldr ip, [sp, #128]
55280   sub r8, r8, #64
55281   rsb r7, r6, ip
55282   b .L16588
55283 .L17487:
55284   cmp ip, #3
55285   bls .L17517
55286   cmp r0, #0
55287   ldr r2, [r6, #0]
55288   ldreq r4, [sp, #96]
55289   beq .L17521
55290   mov r3, ip, asl #3
55291   sub r3, r3, #32
55292   mov r2, r2, asl r3
55293   mov r1, #0
55294 .L17522:
55295   movs  r3, r2, lsr #24
55296   ldr ip, [sp, #52]
55297   ldrne lr, [sp, #96]
55298   orr r3, ip, r3
55299   strne r3, [lr, r1, asl #2]
55300   add r1, r1, #1
55301   cmp r0, r1
55302   mov r2, r2, asl #8
55303   bne .L17522
55304   ldr r1, [sp, #96]
55305   add r4, r1, r0, asl #2
55306 .L17521:
55307   ldr r3, [sp, #128]
55308   sub r6, r6, #64
55309   rsb r5, r0, r3
55310   b .L17486
55311 .L16253:
55312   cmp lr, #3
55313   bls .L16291
55314   cmp r5, #0
55315   ldr r2, [r7, #4]
55316   ldreq lr, [sp, #96]
55317   beq .L16295
55318   mov r3, lr, asl #3
55319   sub r3, r3, #32
55320   mov ip, r2, lsr r3
55321   ldr lr, [sp, #96]
55322   mov r4, #0
55323 .L16296:
55324   ands  r0, ip, #255
55325   beq .L16297
55326   ldr r2, [lr, #0]
55327   orr r1, r0, #768
55328   mov r3, r2, lsr #16
55329   orr r0, r0, #768
55330   mov r3, r3, asl #16
55331   tst r2, #256
55332   orr r3, r3, r1
55333   orr r0, r0, r2, asl #16
55334   strne r3, [lr, #0]
55335   streq r0, [lr, #0]
55336 .L16297:
55337   add r4, r4, #1
55338   cmp r5, r4
55339   mov ip, ip, lsr #8
55340   add lr, lr, #4
55341   bne .L16296
55342   ldr r2, [sp, #96]
55343   add lr, r2, r5, asl #2
55344 .L16295:
55345   ldr r3, [sp, #128]
55346   add r7, r7, #64
55347   rsb r6, r5, r3
55348   b .L16252
55349 .L17367:
55350   subs  r4, ip, #4
55351   ldr r1, [r0, #0]
55352   ldreq r1, [sp, #96]
55353   beq .L17379
55354   mov r3, r2, asl #3
55355   mov r2, r1, lsr r3
55356   mov r1, #0
55357 .L17380:
55358   ands  r3, r2, #255
55359   ldr r5, [sp, #52]
55360   ldrne r7, [sp, #96]
55361   orr r3, r5, r3
55362   strne r3, [r7, r1, asl #2]
55363   add r1, r1, #1
55364   cmp r1, r4
55365   mov r2, r2, lsr #8
55366   bne .L17380
55367   ldr r8, [sp, #96]
55368   add r3, r8, ip, asl #2
55369   sub r1, r3, #16
55370 .L17379:
55371   ldr r2, [r0, #4]
55372   cmp r2, #0
55373   beq .L17385
55374   ands  r3, r2, #255
55375   ldrne ip, [sp, #52]
55376   orrne r3, ip, r3
55377   strne r3, [r1, #0]
55378   mov r3, r2, lsr #8
55379   ands  r3, r3, #255
55380   ldrne r4, [sp, #52]
55381   orrne r3, r4, r3
55382   strne r3, [r1, #4]
55383   mov r3, r2, lsr #16
55384   ands  r3, r3, #255
55385   ldrne r5, [sp, #52]
55386   orrne r3, r5, r3
55387   strne r3, [r1, #8]
55388   movs  r3, r2, lsr #24
55389   ldrne r7, [sp, #52]
55390   orrne r3, r7, r3
55391   strne r3, [r1, #12]
55392 .L17385:
55393   add r1, r1, #16
55394   add r0, r0, #64
55395   b .L17366
55396 .L17007:
55397   cmp lr, #0
55398   ldr r2, [r4, #0]
55399   ldreq r6, [sp, #96]
55400   beq .L17017
55401   mov r3, r3, asl #2
55402   mov r2, r2, lsr r3
55403   mov r1, #0
55404 .L17018:
55405   ldr r5, [sp, #52]
55406   ands  r3, r2, #15
55407   ldrne r8, [sp, #96]
55408   orr r3, r5, r3
55409   orr r3, r7, r3
55410   strne r3, [r8, r1, asl #2]
55411   add r1, r1, #1
55412   cmp lr, r1
55413   mov r2, r2, lsr #4
55414   bne .L17018
55415   ldr ip, [sp, #96]
55416   add r6, ip, lr, asl #2
55417 .L17017:
55418   ldr r0, [sp, #128]
55419   add r4, r4, #32
55420   rsb r5, lr, r0
55421   b .L17006
55422 .L16049:
55423   cmp r6, #0
55424   ldr r2, [ip, #0]
55425   ldreq r5, [sp, #96]
55426   beq .L16061
55427   mov r3, lr, asl #2
55428   mov r4, r2, asl r3
55429   ldr r5, [sp, #96]
55430   mov lr, #0
55431 .L16062:
55432   movs  r3, r4, lsr #28
55433   beq .L16063
55434   ldr r1, [r5, #0]
55435   orr r2, r7, r3
55436   mov r3, r1, lsr #16
55437   orr r0, r2, #768
55438   mov r3, r3, asl #16
55439   orr r2, r2, #768
55440   tst r1, #256
55441   orr r3, r3, r0
55442   orr r2, r2, r1, asl #16
55443   strne r3, [r5, #0]
55444   streq r2, [r5, #0]
55445 .L16063:
55446   add lr, lr, #1
55447   cmp r6, lr
55448   mov r4, r4, asl #4
55449   add r5, r5, #4
55450   bne .L16062
55451   ldr r4, [sp, #96]
55452   add r5, r4, r6, asl #2
55453 .L16061:
55454   ldr r8, [sp, #128]
55455   sub ip, ip, #32
55456   rsb sl, r6, r8
55457   b .L16048
55458 .L17137:
55459   cmp lr, #0
55460   ldr r2, [r0, #0]
55461   ldreq r1, [sp, #96]
55462   beq .L17147
55463   mov r3, r5, asl #2
55464   mov r4, r2, asl r3
55465   mov r5, #0
55466 .L17148:
55467   ldr ip, [sp, #52]
55468   movs  r3, r4, lsr #28
55469   ldrne r1, [sp, #96]
55470   orr r3, ip, r3
55471   orr r3, r7, r3
55472   strne r3, [r1, r5, asl #2]
55473   add r5, r5, #1
55474   cmp lr, r5
55475   mov r4, r4, asl #4
55476   bne .L17148
55477   ldr r2, [sp, #96]
55478   add r1, r2, lr, asl #2
55479 .L17147:
55480   ldr r3, [sp, #128]
55481   sub r0, r0, #32
55482   rsb r2, lr, r3
55483   b .L17136
55484 .L17267:
55485   cmp lr, #3
55486   bls .L17297
55487   cmp r0, #0
55488   ldr r2, [r6, #4]
55489   ldreq r4, [sp, #96]
55490   beq .L17301
55491   mov r3, lr, asl #3
55492   sub r3, r3, #32
55493   mov r1, r2, lsr r3
55494   mov r2, #0
55495 .L17302:
55496   ands  r3, r1, #255
55497   ldr ip, [sp, #52]
55498   ldrne lr, [sp, #96]
55499   orr r3, ip, r3
55500   strne r3, [lr, r2, asl #2]
55501   add r2, r2, #1
55502   cmp r0, r2
55503   mov r1, r1, lsr #8
55504   bne .L17302
55505   ldr r1, [sp, #96]
55506   add r4, r1, r0, asl #2
55507 .L17301:
55508   ldr r3, [sp, #128]
55509   add r6, r6, #64
55510   rsb r5, r0, r3
55511   b .L17266
55512 .L17797:
55513   mov r6, #0
55514   b .L15820
55515 .L17800:
55516   mov r6, #0
55517   b .L16948
55518 .L17799:
55519   mov ip, #0
55520   b .L15780
55521 .L17794:
55522   mov ip, fp
55523   b .L17737
55524 .L17297:
55525   subs  ip, r0, #4
55526   ldr r2, [r6, #0]
55527   ldreq r1, [sp, #96]
55528   beq .L17309
55529   mov r3, lr, asl #3
55530   mov r1, r2, lsr r3
55531   mov r2, #0
55532 .L17310:
55533   ands  r3, r1, #255
55534   ldr r4, [sp, #52]
55535   ldrne r5, [sp, #96]
55536   orr r3, r4, r3
55537   strne r3, [r5, r2, asl #2]
55538   add r2, r2, #1
55539   cmp r2, ip
55540   mov r1, r1, lsr #8
55541   bne .L17310
55542   ldr r7, [sp, #96]
55543   add r3, r7, r0, asl #2
55544   sub r1, r3, #16
55545 .L17309:
55546   ldr r2, [r6, #4]
55547   cmp r2, #0
55548   beq .L17315
55549   ands  r3, r2, #255
55550   ldrne r8, [sp, #52]
55551   orrne r3, r8, r3
55552   strne r3, [r1, #0]
55553   mov r3, r2, lsr #8
55554   ands  r3, r3, #255
55555   ldrne ip, [sp, #52]
55556   orrne r3, ip, r3
55557   strne r3, [r1, #4]
55558   mov r3, r2, lsr #16
55559   ands  r3, r3, #255
55560   ldrne lr, [sp, #52]
55561   orrne r3, lr, r3
55562   strne r3, [r1, #8]
55563   movs  r3, r2, lsr #24
55564   ldrne r2, [sp, #52]
55565   orrne r3, r2, r3
55566   strne r3, [r1, #12]
55567 .L17315:
55568   add r4, r1, #16
55569   b .L17301
55570 .L16291:
55571   subs  r6, r5, #4
55572   ldr r2, [r7, #0]
55573   ldreq r2, [sp, #96]
55574   beq .L16305
55575   mov r3, lr, asl #3
55576   mov ip, r2, lsr r3
55577   ldr lr, [sp, #96]
55578   mov r4, #0
55579 .L16306:
55580   ands  r0, ip, #255
55581   beq .L16307
55582   ldr r2, [lr, #0]
55583   orr r1, r0, #768
55584   mov r3, r2, lsr #16
55585   orr r0, r0, #768
55586   mov r3, r3, asl #16
55587   tst r2, #256
55588   orr r3, r3, r1
55589   orr r0, r0, r2, asl #16
55590   strne r3, [lr, #0]
55591   streq r0, [lr, #0]
55592 .L16307:
55593   add r4, r4, #1
55594   cmp r6, r4
55595   mov ip, ip, lsr #8
55596   add lr, lr, #4
55597   bne .L16306
55598   ldr r1, [sp, #96]
55599   add r3, r1, r5, asl #2
55600   sub r2, r3, #16
55601 .L16305:
55602   ldr r1, [r7, #4]
55603   cmp r1, #0
55604   beq .L16313
55605   ands  r0, r1, #255
55606   beq .L16315
55607   ldr r3, [r2, #0]
55608   tst r3, #256
55609   movne r3, r3, lsr #16
55610   movne r3, r3, asl #16
55611   orrne r3, r3, #768
55612   orreq r3, r0, r3, asl #16
55613   orrne r3, r0, r3
55614   orreq r3, r3, #768
55615   strne r3, [r2, #0]
55616   streq r3, [r2, #0]
55617 .L16315:
55618   mov r3, r1, lsr #8
55619   ands  r0, r3, #255
55620   beq .L16319
55621   ldr r3, [r2, #4]
55622   tst r3, #256
55623   movne r3, r3, lsr #16
55624   movne r3, r3, asl #16
55625   orrne r3, r3, #768
55626   orreq r3, r0, r3, asl #16
55627   orrne r3, r0, r3
55628   orreq r3, r3, #768
55629   strne r3, [r2, #4]
55630   streq r3, [r2, #4]
55631 .L16319:
55632   mov r3, r1, lsr #16
55633   ands  r0, r3, #255
55634   beq .L16323
55635   ldr r3, [r2, #8]
55636   tst r3, #256
55637   movne r3, r3, lsr #16
55638   movne r3, r3, asl #16
55639   orrne r3, r3, #768
55640   orreq r3, r0, r3, asl #16
55641   orrne r3, r0, r3
55642   orreq r3, r3, #768
55643   strne r3, [r2, #8]
55644   streq r3, [r2, #8]
55645 .L16323:
55646   movs  r1, r1, lsr #24
55647   beq .L16313
55648   ldr r3, [r2, #12]
55649   tst r3, #256
55650   movne r3, r3, lsr #16
55651   movne r3, r3, asl #16
55652   orrne r3, r3, #768
55653   orrne r3, r1, r3
55654   strne r3, [r2, #12]
55655   orreq r3, r1, r3, asl #16
55656   orreq r3, r3, #768
55657   streq r3, [r2, #12]
55658 .L16313:
55659   add lr, r2, #16
55660   b .L16295
55661 .L17517:
55662   subs  lr, r0, #4
55663   ldr r2, [r6, #4]
55664   ldreq r1, [sp, #96]
55665   beq .L17529
55666   mov r3, ip, asl #3
55667   sub r3, r3, #32
55668   mov r2, r2, asl r3
55669   mov r1, #0
55670 .L17530:
55671   movs  r3, r2, lsr #24
55672   ldr r4, [sp, #52]
55673   ldrne r5, [sp, #96]
55674   orr r3, r4, r3
55675   strne r3, [r5, r1, asl #2]
55676   add r1, r1, #1
55677   cmp lr, r1
55678   mov r2, r2, asl #8
55679   bne .L17530
55680   ldr r7, [sp, #96]
55681   add r3, r7, r0, asl #2
55682   sub r1, r3, #16
55683 .L17529:
55684   ldr r2, [r6, #0]
55685   cmp r2, #0
55686   beq .L17535
55687   ands  r3, r2, #255
55688   ldrne r8, [sp, #52]
55689   orrne r3, r8, r3
55690   strne r3, [r1, #12]
55691   mov r3, r2, lsr #8
55692   ands  r3, r3, #255
55693   ldrne ip, [sp, #52]
55694   orrne r3, ip, r3
55695   strne r3, [r1, #8]
55696   mov r3, r2, lsr #16
55697   ands  r3, r3, #255
55698   ldrne lr, [sp, #52]
55699   orrne r3, lr, r3
55700   strne r3, [r1, #4]
55701   movs  r3, r2, lsr #24
55702   ldrne r2, [sp, #52]
55703   orrne r3, r2, r3
55704   strne r3, [r1, #0]
55705 .L17535:
55706   add r4, r1, #16
55707   b .L17521
55708 .L16627:
55709   subs  r5, r6, #4
55710   ldr r2, [r8, #4]
55711   ldreq r2, [sp, #96]
55712   beq .L16641
55713   mov r3, lr, asl #3
55714   sub r3, r3, #32
55715   mov ip, r2, asl r3
55716   ldr lr, [sp, #96]
55717   mov r4, #0
55718 .L16642:
55719   movs  r0, ip, lsr #24
55720   beq .L16643
55721   ldr r2, [lr, #0]
55722   orr r1, r0, #768
55723   mov r3, r2, lsr #16
55724   orr r0, r0, #768
55725   mov r3, r3, asl #16
55726   tst r2, #256
55727   orr r3, r3, r1
55728   orr r0, r0, r2, asl #16
55729   strne r3, [lr, #0]
55730   streq r0, [lr, #0]
55731 .L16643:
55732   add r4, r4, #1
55733   cmp r4, r5
55734   mov ip, ip, asl #8
55735   add lr, lr, #4
55736   bne .L16642
55737   ldr r4, [sp, #96]
55738   add r3, r4, r6, asl #2
55739   sub r2, r3, #16
55740 .L16641:
55741   ldr r1, [r8, #0]
55742   cmp r1, #0
55743   beq .L16649
55744   ands  r0, r1, #255
55745   beq .L16651
55746   ldr r3, [r2, #12]
55747   tst r3, #256
55748   movne r3, r3, lsr #16
55749   movne r3, r3, asl #16
55750   orrne r3, r3, #768
55751   orreq r3, r0, r3, asl #16
55752   orrne r3, r0, r3
55753   orreq r3, r3, #768
55754   strne r3, [r2, #12]
55755   streq r3, [r2, #12]
55756 .L16651:
55757   mov r3, r1, lsr #8
55758   ands  r0, r3, #255
55759   beq .L16655
55760   ldr r3, [r2, #8]
55761   tst r3, #256
55762   movne r3, r3, lsr #16
55763   movne r3, r3, asl #16
55764   orrne r3, r3, #768
55765   orreq r3, r0, r3, asl #16
55766   orrne r3, r0, r3
55767   orreq r3, r3, #768
55768   strne r3, [r2, #8]
55769   streq r3, [r2, #8]
55770 .L16655:
55771   mov r3, r1, lsr #16
55772   ands  r0, r3, #255
55773   beq .L16659
55774   ldr r3, [r2, #4]
55775   tst r3, #256
55776   movne r3, r3, lsr #16
55777   movne r3, r3, asl #16
55778   orrne r3, r3, #768
55779   orreq r3, r0, r3, asl #16
55780   orrne r3, r0, r3
55781   orreq r3, r3, #768
55782   strne r3, [r2, #4]
55783   streq r3, [r2, #4]
55784 .L16659:
55785   movs  r1, r1, lsr #24
55786   beq .L16649
55787   ldr r3, [r2, #0]
55788   tst r3, #256
55789   movne r3, r3, lsr #16
55790   movne r3, r3, asl #16
55791   orrne r3, r3, #768
55792   orrne r3, r1, r3
55793   strne r3, [r2, #0]
55794   orreq r3, r1, r3, asl #16
55795   orreq r3, r3, #768
55796   streq r3, [r2, #0]
55797 .L16649:
55798   add r5, r2, #16
55799   b .L16631
55800 .L17490:
55801   ldr r7, [sp, #128]
55802   mov r3, ip, asl #3
55803   ldr r1, [r6, #4]
55804   add r2, r7, ip
55805   sub r3, r3, #32
55806   cmp r2, #4
55807   mov r1, r1, asl r3
55808   bhi .L17497
55809   cmp r7, #0
55810   movne r2, #0
55811   beq .L15754
55812 .L17513:
55813   movs  r3, r1, lsr #24
55814   ldr r5, [sp, #52]
55815   ldrne r7, [sp, #96]
55816   orr r3, r5, r3
55817   ldr r8, [sp, #128]
55818   strne r3, [r7, r2, asl #2]
55819   add r2, r2, #1
55820   cmp r8, r2
55821   mov r1, r1, asl #8
55822   bne .L17513
55823   b .L15754
55824 .L16592:
55825   ldr ip, [sp, #128]
55826   mov r3, lr, asl #3
55827   add r2, ip, lr
55828   ldr r1, [r8, #4]
55829   sub r3, r3, #32
55830   cmp r2, #4
55831   mov ip, r1, asl r3
55832   bhi .L16601
55833   ldr lr, [sp, #128]
55834   cmp lr, #0
55835   ldrne lr, [sp, #96]
55836   movne r4, #0
55837   beq .L15754
55838 .L16621:
55839   movs  r0, ip, lsr #24
55840   beq .L16622
55841   ldr r2, [lr, #0]
55842   orr r1, r0, #768
55843   mov r3, r2, lsr #16
55844   orr r0, r0, #768
55845   mov r3, r3, asl #16
55846   tst r2, #256
55847   orr r3, r3, r1
55848   orr r0, r0, r2, asl #16
55849   strne r3, [lr, #0]
55850   streq r0, [lr, #0]
55851 .L16622:
55852   ldr r2, [sp, #128]
55853   add r4, r4, #1
55854   cmp r2, r4
55855   mov ip, ip, asl #8
55856   add lr, lr, #4
55857   bne .L16621
55858   b .L15754
55859 .L17270:
55860   ldr r4, [sp, #128]
55861   ldr r3, [r6, #0]
55862   add r2, r4, lr
55863   cmp r2, #4
55864   mov r1, lr, asl #3
55865   mov r2, r3, lsr r1
55866   bhi .L17277
55867   cmp r4, #0
55868   movne r1, #0
55869   beq .L15754
55870 .L17293:
55871   ands  r3, r2, #255
55872   ldr r5, [sp, #52]
55873   ldrne r7, [sp, #96]
55874   orr r3, r5, r3
55875   ldr r8, [sp, #128]
55876   strne r3, [r7, r1, asl #2]
55877   add r1, r1, #1
55878   cmp r8, r1
55879   mov r2, r2, lsr #8
55880   bne .L17293
55881   b .L15754
55882 .L16256:
55883   ldr r1, [sp, #128]
55884   ldr r3, [r7, #0]
55885   add r2, r1, lr
55886   cmp r2, #4
55887   mov r1, lr, asl #3
55888   mov ip, r3, lsr r1
55889   bhi .L16265
55890   ldr r2, [sp, #128]
55891   cmp r2, #0
55892   ldrne lr, [sp, #96]
55893   movne r4, #0
55894   beq .L15754
55895 .L16285:
55896   ands  r0, ip, #255
55897   beq .L16286
55898   ldr r2, [lr, #0]
55899   orr r1, r0, #768
55900   mov r3, r2, lsr #16
55901   orr r0, r0, #768
55902   mov r3, r3, asl #16
55903   tst r2, #256
55904   orr r3, r3, r1
55905   orr r0, r0, r2, asl #16
55906   strne r3, [lr, #0]
55907   streq r0, [lr, #0]
55908 .L16286:
55909   ldr r0, [sp, #128]
55910   add r4, r4, #1
55911   cmp r0, r4
55912   mov ip, ip, lsr #8
55913   add lr, lr, #4
55914   bne .L16285
55915   b .L15754
55916 .L16265:
55917   rsbs  r4, lr, #4
55918   ldreq lr, [sp, #96]
55919   beq .L16270
55920   ldr lr, [sp, #96]
55921   mov r5, #0
55922 .L16271:
55923   ands  r0, ip, #255
55924   beq .L16272
55925   ldr r2, [lr, #0]
55926   orr r1, r0, #768
55927   mov r3, r2, lsr #16
55928   orr r0, r0, #768
55929   mov r3, r3, asl #16
55930   tst r2, #256
55931   orr r3, r3, r1
55932   orr r0, r0, r2, asl #16
55933   strne r3, [lr, #0]
55934   streq r0, [lr, #0]
55935 .L16272:
55936   add r5, r5, #1
55937   cmp r5, r4
55938   mov ip, ip, lsr #8
55939   add lr, lr, #4
55940   bne .L16271
55941   ldr r3, [sp, #96]
55942   add lr, r3, r4, asl #2
55943 .L16270:
55944   ldr r8, [sp, #128]
55945   ldr ip, [r7, #4]
55946   subs  r5, r8, r4
55947   beq .L15754
55948   mov r4, #0
55949 .L16279:
55950   ands  r0, ip, #255
55951   beq .L16280
55952   ldr r2, [lr, #0]
55953   orr r1, r0, #768
55954   mov r3, r2, lsr #16
55955   orr r0, r0, #768
55956   mov r3, r3, asl #16
55957   tst r2, #256
55958   orr r3, r3, r1
55959   orr r0, r0, r2, asl #16
55960   strne r3, [lr, #0]
55961   streq r0, [lr, #0]
55962 .L16280:
55963   add r4, r4, #1
55964   cmp r4, r5
55965   mov ip, ip, lsr #8
55966   add lr, lr, #4
55967   bne .L16279
55968   b .L15754
55969 .L17277:
55970   rsbs  r0, lr, #4
55971   ldreq ip, [sp, #96]
55972   beq .L17282
55973   mov r1, #0
55974 .L17283:
55975   ands  r3, r2, #255
55976   ldr r5, [sp, #52]
55977   ldrne r7, [sp, #96]
55978   orr r3, r5, r3
55979   strne r3, [r7, r1, asl #2]
55980   add r1, r1, #1
55981   cmp r1, r0
55982   mov r2, r2, lsr #8
55983   bne .L17283
55984   ldr r8, [sp, #96]
55985   add ip, r8, r0, asl #2
55986 .L17282:
55987   ldr lr, [sp, #128]
55988   ldr r2, [r6, #4]
55989   subs  r0, lr, r0
55990   beq .L15754
55991   mov r1, #0
55992 .L17289:
55993   ldr r4, [sp, #52]
55994   ands  r3, r2, #255
55995   orr r3, r4, r3
55996   strne r3, [ip, r1, asl #2]
55997   add r1, r1, #1
55998   cmp r1, r0
55999   mov r2, r2, lsr #8
56000   bne .L17289
56001   b .L15754
56002 .L16601:
56003   rsbs  r4, lr, #4
56004   ldreq lr, [sp, #96]
56005   beq .L16606
56006   ldr lr, [sp, #96]
56007   mov r5, #0
56008 .L16607:
56009   movs  r0, ip, lsr #24
56010   beq .L16608
56011   ldr r2, [lr, #0]
56012   orr r1, r0, #768
56013   mov r3, r2, lsr #16
56014   orr r0, r0, #768
56015   mov r3, r3, asl #16
56016   tst r2, #256
56017   orr r3, r3, r1
56018   orr r0, r0, r2, asl #16
56019   strne r3, [lr, #0]
56020   streq r0, [lr, #0]
56021 .L16608:
56022   add r5, r5, #1
56023   cmp r5, r4
56024   mov ip, ip, asl #8
56025   add lr, lr, #4
56026   bne .L16607
56027   ldr r0, [sp, #96]
56028   add lr, r0, r4, asl #2
56029 .L16606:
56030   ldr r1, [sp, #128]
56031   ldr ip, [r8, #0]
56032   subs  r5, r1, r4
56033   beq .L15754
56034   mov r4, #0
56035 .L16615:
56036   movs  r0, ip, lsr #24
56037   beq .L16616
56038   ldr r2, [lr, #0]
56039   orr r1, r0, #768
56040   mov r3, r2, lsr #16
56041   orr r0, r0, #768
56042   mov r3, r3, asl #16
56043   tst r2, #256
56044   orr r3, r3, r1
56045   orr r0, r0, r2, asl #16
56046   strne r3, [lr, #0]
56047   streq r0, [lr, #0]
56048 .L16616:
56049   add r4, r4, #1
56050   cmp r4, r5
56051   mov ip, ip, asl #8
56052   add lr, lr, #4
56053   bne .L16615
56054   b .L15754
56055 .L17497:
56056   rsbs  r0, ip, #4
56057   ldreq ip, [sp, #96]
56058   beq .L17502
56059   mov r2, #0
56060 .L17503:
56061   movs  r3, r1, lsr #24
56062   ldr r8, [sp, #52]
56063   ldrne ip, [sp, #96]
56064   orr r3, r8, r3
56065   strne r3, [ip, r2, asl #2]
56066   add r2, r2, #1
56067   cmp r2, r0
56068   mov r1, r1, asl #8
56069   bne .L17503
56070   ldr lr, [sp, #96]
56071   add ip, lr, r0, asl #2
56072 .L17502:
56073   ldr r1, [sp, #128]
56074   ldr r2, [r6, #0]
56075   subs  r0, r1, r0
56076   beq .L15754
56077   mov r1, #0
56078 .L17509:
56079   ldr r4, [sp, #52]
56080   movs  r3, r2, lsr #24
56081   orr r3, r4, r3
56082   strne r3, [ip, r1, asl #2]
56083   add r1, r1, #1
56084   cmp r1, r0
56085   mov r2, r2, asl #8
56086   bne .L17509
56087   b .L15754
56088   .size render_scanline_obj_partial_alpha_2D, .-render_scanline_obj_partial_alpha_2D
56089   .align  2
56090   .global order_obj
56091   .type order_obj, %function
56092 order_obj:
56093   @ args = 0, pretend = 0, frame = 0
56094   @ frame_needed = 0, uses_anonymous_args = 0
56095   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
56096   ldr r9, .L17848
56097   mov sl, r0
56098   mov ip, #0
56099 .L17806:
56100   add r3, ip, ip, asl #2
56101   add r2, r9, r3, asl #7
56102   mov r3, #0
56103 .L17807:
56104   add r3, r3, #1
56105   mov r1, #0
56106   cmp r3, #160
56107   str r1, [r2], #4
56108   bne .L17807
56109   add ip, ip, #1
56110   cmp ip, #5
56111   bne .L17806
56112   ldr fp, .L17848+4
56113   mov r3, fp
56114   add r2, fp, #640
56115 .L17810:
56116   str r1, [r3], #4
56117   cmp r3, r2
56118   bne .L17810
56119   ldr r5, .L17848+8
56120   mov r6, #127
56121 .L17812:
56122   ldrh  r2, [r5, #8]
56123   ldrh  r7, [r5, #12]
56124   and r1, r2, #49152
56125   and r3, r2, #768
56126   cmp r3, #512
56127   cmpne r1, #49152
56128   beq .L17813
56129   mov r3, r2, lsr #10
56130   and r0, r3, #3
56131   cmp r0, #3
56132   beq .L17813
56133   cmp sl, #2
56134   bls .L17816
56135   mov r3, r7, asl #22
56136   mov r3, r3, lsr #22
56137   cmp r3, #512
56138   bcc .L17813
56139 .L17816:
56140   ldrh  r4, [r5, #10]
56141   and ip, r2, #255
56142   mov r3, r4, lsr #14
56143   orr r3, r3, r1, lsr #12
56144   ldr r1, .L17848+12
56145   cmp ip, #160
56146   subgt ip, ip, #256
56147   ldr r1, [r1, r3, asl #2]
56148   tst r2, #512
56149   ldr r2, .L17848+16
56150   movne r1, r1, asl #1
56151   ldr r2, [r2, r3, asl #2]
56152   add lr, ip, r1
56153   movne r2, r2, asl #1
56154   cmp lr, #0
56155   movle r3, #0
56156   movgt r3, #1
56157   cmp ip, #159
56158   movgt r3, #0
56159   cmp r3, #0
56160   beq .L17813
56161   mov r3, r4, asl #23
56162   mov r3, r3, asr #23
56163   add r2, r2, r3
56164   cmp r2, #0
56165   movle r1, #0
56166   movgt r1, #1
56167   cmp r3, #239
56168   movgt r1, #0
56169   cmp r1, #0
56170   beq .L17813
56171   cmp ip, #0
56172   movlt ip, #0
56173   cmp lr, #160
56174   movge lr, #160
56175   mov r3, r7, lsr #10
56176   cmp r0, #1
56177   and r3, r3, #3
56178   beq .L17847
56179   cmp r0, #2
56180   moveq r3, #4
56181   cmp lr, ip
56182   ble .L17813
56183   add r3, r3, r3, asl #2
56184   ldr r2, .L17848+20
56185   rsb r1, ip, lr
56186   add r3, ip, r3, asl #5
56187   mov r0, ip
56188   add r1, ip, r1
56189   add lr, r2, r3, asl #7
56190   and r4, r6, #255
56191   add ip, r9, r3, asl #2
56192 .L17833:
56193   ldr r2, [ip, #0]
56194   add r0, r0, #1
56195   add r3, r2, #1
56196   cmp r0, r1
56197   strb  r4, [lr, r2]
56198   str r3, [ip], #4
56199   add lr, lr, #128
56200   bne .L17833
56201 .L17813:
56202   sub r6, r6, #1
56203   cmn r6, #1
56204   sub r5, r5, #8
56205   bne .L17812
56206   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
56207 .L17847:
56208   cmp lr, ip
56209   ble .L17813
56210   add r3, r3, r3, asl #2
56211   ldr r2, .L17848+20
56212   add r3, ip, r3, asl #5
56213   rsb r1, ip, lr
56214   mov r4, ip
56215   add r8, ip, r1
56216   add r0, r2, r3, asl #7
56217   and r7, r6, #255
56218   add lr, r9, r3, asl #2
56219   add ip, fp, ip, asl #2
56220 .L17829:
56221   ldr r3, [lr, #0]
56222   ldr r2, [ip, #0]
56223   add r4, r4, #1
56224   add r1, r3, #1
56225   add r2, r2, #1
56226   cmp r4, r8
56227   strb  r7, [r0, r3]
56228   str r1, [lr], #4
56229   str r2, [ip], #4
56230   add r0, r0, #128
56231   bne .L17829
56232   sub r6, r6, #1
56233   cmn r6, #1
56234   sub r5, r5, #8
56235   bne .L17812
56236   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
56237 .L17849:
56238   .align  2
56239 .L17848:
56240   .word obj_priority_count
56241   .word obj_alpha_count
56242   .word oam_ram+1008
56243   .word obj_height_table
56244   .word obj_width_table
56245   .word obj_priority_list
56246   .size order_obj, .-order_obj
56247   .align  2
56248   .global order_layers
56249   .type order_layers, %function
56250 order_layers:
56251   @ args = 0, pretend = 0, frame = 0
56252   @ frame_needed = 0, uses_anonymous_args = 0
56253   stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
56254   ldr r6, .L17989
56255   ldr r3, .L17989+4
56256   ldrh  r2, [r6, #6]
56257   ldr sl, .L17989+8
56258   add r4, r3, r2, asl #2
56259   and r3, r0, #8
56260   mov r1, #0
56261   cmp r3, #0
56262   and ip, r0, #1
56263   and r7, r0, #16
56264   and r2, r0, #4
56265   ldr r8, .L17989+12
56266   mov r5, r1
56267   mov lr, #3
56268   and r0, r0, #2
56269   str r1, [sl, #0]
56270   bne .L17967
56271   cmp ip, #0
56272   beq .L17979
56273   cmp r0, #0
56274   bne .L17985
56275   cmp r2, #0
56276   bne .L17988
56277 .L17851:
56278   ldrh  r3, [r6, #8]
56279   and r3, r3, #3
56280   cmp r3, lr
56281   moveq r3, #0
56282   streq r3, [r8, r5, asl #2]
56283   ldr r3, [r4, #1920]
56284   addeq r5, r5, #1
56285   cmp r3, #0
56286   sub r4, r4, #640
56287   beq .L17855
56288   cmp r7, #0
56289   orr r3, lr, #4
56290   strne r3, [r8, r5, asl #2]
56291   addne r5, r5, #1
56292 .L17855:
56293   subs  lr, lr, #1
56294   bcs .L17851
56295 .L17869:
56296   str r5, [sl, #0]
56297   ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
56298 .L17967:
56299   cmp ip, #0
56300   beq .L17969
56301   cmp r0, #0
56302   bne .L17975
56303   cmp r2, #0
56304   bne .L17978
56305 .L17884:
56306   ldrh  r3, [r6, #14]
56307   and r3, r3, #3
56308   cmp r3, lr
56309   moveq r3, #3
56310   streq r3, [r8, r5, asl #2]
56311   ldrh  r3, [r6, #8]
56312   addeq r5, r5, #1
56313   and r3, r3, #3
56314   cmp r3, lr
56315   moveq r3, #0
56316   streq r3, [r8, r5, asl #2]
56317   ldr r3, [r4, #1920]
56318   addeq r5, r5, #1
56319   cmp r3, #0
56320   sub r4, r4, #640
56321   beq .L17875
56322   cmp r7, #0
56323   orr r3, lr, #4
56324   strne r3, [r8, r5, asl #2]
56325   addne r5, r5, #1
56326 .L17875:
56327   subs  lr, lr, #1
56328   bcc .L17869
56329   b .L17884
56330 .L17969:
56331   cmp r0, #0
56332   bne .L17971
56333   cmp r2, #0
56334   bne .L17974
56335 .L17890:
56336   ldrh  r3, [r6, #14]
56337   and r3, r3, #3
56338   cmp r3, lr
56339   moveq r3, #3
56340   streq r3, [r8, r5, asl #2]
56341   ldr r3, [r4, #1920]
56342   addeq r5, r5, #1
56343   cmp r3, #0
56344   sub r4, r4, #640
56345   beq .L17883
56346   cmp r7, #0
56347   orr r3, lr, #4
56348   strne r3, [r8, r5, asl #2]
56349   addne r5, r5, #1
56350 .L17883:
56351   subs  lr, lr, #1
56352   bcc .L17869
56353   b .L17890
56354 .L17979:
56355   cmp r0, #0
56356   bne .L17981
56357   cmp r2, #0
56358   bne .L17984
56359 .L17935:
56360   ldr r3, [r4, #1920]
56361   sub r4, r4, #640
56362   cmp r3, #0
56363   beq .L17930
56364   cmp r7, #0
56365   orr r3, lr, #4
56366   strne r3, [r8, r5, asl #2]
56367   addne r5, r5, #1
56368 .L17930:
56369   subs  lr, lr, #1
56370   bcc .L17869
56371   b .L17935
56372 .L17985:
56373   cmp r2, #0
56374   bne .L17987
56375 .L17958:
56376   ldrh  r3, [r6, #10]
56377   and r3, r3, #3
56378   cmp r3, lr
56379   moveq r3, #1
56380   streq r3, [r8, r5, asl #2]
56381   addeq r5, r5, r3
56382   ldrh  r3, [r6, #8]
56383   and r3, r3, #3
56384   cmp r3, lr
56385   moveq r3, #0
56386   streq r3, [r8, r5, asl #2]
56387   ldr r3, [r4, #1920]
56388   addeq r5, r5, #1
56389   cmp r3, #0
56390   sub r4, r4, #640
56391   beq .L17951
56392   cmp r7, #0
56393   orr r3, lr, #4
56394   strne r3, [r8, r5, asl #2]
56395   addne r5, r5, #1
56396 .L17951:
56397   subs  lr, lr, #1
56398   bcc .L17869
56399   b .L17958
56400 .L17987:
56401   ldrh  r3, [r6, #12]
56402   and r3, r3, #3
56403   cmp r3, lr
56404   moveq r3, #2
56405   streq r3, [r8, r5, asl #2]
56406   ldrh  r3, [r6, #10]
56407   addeq r5, r5, #1
56408   and r3, r3, #3
56409   cmp r3, lr
56410   moveq r3, #1
56411   streq r3, [r8, r5, asl #2]
56412   addeq r5, r5, r3
56413   ldrh  r3, [r6, #8]
56414   and r3, r3, #3
56415   cmp r3, lr
56416   moveq r3, #0
56417   streq r3, [r8, r5, asl #2]
56418   ldr r3, [r4, #1920]
56419   addeq r5, r5, #1
56420   cmp r3, #0
56421   beq .L17957
56422   cmp r7, #0
56423   orrne r3, lr, #4
56424   strne r3, [r8, r5, asl #2]
56425   addne r5, r5, #1
56426 .L17957:
56427   sub lr, lr, #1
56428   cmn lr, #1
56429   sub r4, r4, #640
56430   bne .L17987
56431   b .L17869
56432 .L17975:
56433   cmp r2, #0
56434   bne .L17977
56435 .L17917:
56436   ldrh  r3, [r6, #14]
56437   and r3, r3, #3
56438   cmp r3, lr
56439   moveq r3, #3
56440   streq r3, [r8, r5, asl #2]
56441   ldrh  r3, [r6, #10]
56442   addeq r5, r5, #1
56443   and r3, r3, #3
56444   cmp r3, lr
56445   moveq r3, #1
56446   streq r3, [r8, r5, asl #2]
56447   addeq r5, r5, r3
56448   ldrh  r3, [r6, #8]
56449   and r3, r3, #3
56450   cmp r3, lr
56451   moveq r3, #0
56452   streq r3, [r8, r5, asl #2]
56453   ldr r3, [r4, #1920]
56454   addeq r5, r5, #1
56455   cmp r3, #0
56456   beq .L17909
56457   cmp r7, #0
56458   orrne r3, lr, #4
56459   strne r3, [r8, r5, asl #2]
56460   addne r5, r5, #1
56461 .L17909:
56462   sub lr, lr, #1
56463   cmn lr, #1
56464   sub r4, r4, #640
56465   bne .L17917
56466   b .L17869
56467 .L17977:
56468   ldrh  r3, [r6, #14]
56469   and r3, r3, #3
56470   cmp r3, lr
56471   moveq r3, #3
56472   streq r3, [r8, r5, asl #2]
56473   ldrh  r3, [r6, #12]
56474   addeq r5, r5, #1
56475   and r3, r3, #3
56476   cmp r3, lr
56477   moveq r3, #2
56478   streq r3, [r8, r5, asl #2]
56479   ldrh  r3, [r6, #10]
56480   addeq r5, r5, #1
56481   and r3, r3, #3
56482   cmp r3, lr
56483   moveq r3, #1
56484   streq r3, [r8, r5, asl #2]
56485   addeq r5, r5, r3
56486   ldrh  r3, [r6, #8]
56487   and r3, r3, #3
56488   cmp r3, lr
56489   moveq r3, #0
56490   streq r3, [r8, r5, asl #2]
56491   ldr r3, [r4, #1920]
56492   addeq r5, r5, #1
56493   cmp r3, #0
56494   beq .L17916
56495   cmp r7, #0
56496   orrne r3, lr, #4
56497   strne r3, [r8, r5, asl #2]
56498   addne r5, r5, #1
56499 .L17916:
56500   sub lr, lr, #1
56501   cmn lr, #1
56502   sub r4, r4, #640
56503   bne .L17977
56504   b .L17869
56505 .L17978:
56506   ldrh  r3, [r6, #14]
56507   and r3, r3, #3
56508   cmp r3, lr
56509   moveq r3, #3
56510   streq r3, [r8, r5, asl #2]
56511   ldrh  r3, [r6, #12]
56512   addeq r5, r5, #1
56513   and r3, r3, #3
56514   cmp r3, lr
56515   moveq r3, #2
56516   streq r3, [r8, r5, asl #2]
56517   ldrh  r3, [r6, #8]
56518   addeq r5, r5, #1
56519   and r3, r3, #3
56520   cmp r3, lr
56521   moveq r3, #0
56522   streq r3, [r8, r5, asl #2]
56523   ldr r3, [r4, #1920]
56524   addeq r5, r5, #1
56525   cmp r3, #0
56526   beq .L17923
56527   cmp r7, #0
56528   orrne r3, lr, #4
56529   strne r3, [r8, r5, asl #2]
56530   addne r5, r5, #1
56531 .L17923:
56532   sub lr, lr, #1
56533   cmn lr, #1
56534   sub r4, r4, #640
56535   bne .L17978
56536   b .L17869
56537 .L17971:
56538   cmp r2, #0
56539   bne .L17973
56540 .L17897:
56541   ldrh  r3, [r6, #14]
56542   and r3, r3, #3
56543   cmp r3, lr
56544   moveq r3, #3
56545   streq r3, [r8, r5, asl #2]
56546   ldrh  r3, [r6, #10]
56547   addeq r5, r5, #1
56548   and r3, r3, #3
56549   cmp r3, lr
56550   moveq r3, #1
56551   streq r3, [r8, r5, asl #2]
56552   addeq r5, r5, r3
56553   ldr r3, [r4, #1920]
56554   sub r4, r4, #640
56555   cmp r3, #0
56556   beq .L17889
56557   cmp r7, #0
56558   orr r3, lr, #4
56559   strne r3, [r8, r5, asl #2]
56560   addne r5, r5, #1
56561 .L17889:
56562   subs  lr, lr, #1
56563   bcc .L17869
56564   b .L17897
56565 .L17973:
56566   ldrh  r3, [r6, #14]
56567   and r3, r3, #3
56568   cmp r3, lr
56569   moveq r3, #3
56570   streq r3, [r8, r5, asl #2]
56571   ldrh  r3, [r6, #12]
56572   addeq r5, r5, #1
56573   and r3, r3, #3
56574   cmp r3, lr
56575   moveq r3, #2
56576   streq r3, [r8, r5, asl #2]
56577   ldrh  r3, [r6, #10]
56578   addeq r5, r5, #1
56579   and r3, r3, #3
56580   cmp r3, lr
56581   moveq r3, #1
56582   streq r3, [r8, r5, asl #2]
56583   addeq r5, r5, r3
56584   ldr r3, [r4, #1920]
56585   cmp r3, #0
56586   beq .L17896
56587   cmp r7, #0
56588   orrne r3, lr, #4
56589   strne r3, [r8, r5, asl #2]
56590   addne r5, r5, #1
56591 .L17896:
56592   sub lr, lr, #1
56593   cmn lr, #1
56594   sub r4, r4, #640
56595   bne .L17973
56596   b .L17869
56597 .L17974:
56598   ldrh  r3, [r6, #14]
56599   and r3, r3, #3
56600   cmp r3, lr
56601   moveq r3, #3
56602   streq r3, [r8, r5, asl #2]
56603   ldrh  r3, [r6, #12]
56604   addeq r5, r5, #1
56605   and r3, r3, #3
56606   cmp r3, lr
56607   moveq r3, #2
56608   streq r3, [r8, r5, asl #2]
56609   ldr r3, [r4, #1920]
56610   addeq r5, r5, #1
56611   cmp r3, #0
56612   sub r4, r4, #640
56613   beq .L17902
56614   cmp r7, #0
56615   orr r3, lr, #4
56616   strne r3, [r8, r5, asl #2]
56617   addne r5, r5, #1
56618 .L17902:
56619   subs  lr, lr, #1
56620   bcc .L17869
56621   b .L17974
56622 .L17981:
56623   cmp r2, #0
56624   bne .L17983
56625 .L17941:
56626   ldrh  r3, [r6, #10]
56627   and r3, r3, #3
56628   cmp r3, lr
56629   moveq r3, #1
56630   streq r3, [r8, r5, asl #2]
56631   addeq r5, r5, r3
56632   ldr r3, [r4, #1920]
56633   sub r4, r4, #640
56634   cmp r3, #0
56635   beq .L17934
56636   cmp r7, #0
56637   orr r3, lr, #4
56638   strne r3, [r8, r5, asl #2]
56639   addne r5, r5, #1
56640 .L17934:
56641   subs  lr, lr, #1
56642   bcc .L17869
56643   b .L17941
56644 .L17983:
56645   ldrh  r3, [r6, #12]
56646   and r3, r3, #3
56647   cmp r3, lr
56648   moveq r3, #2
56649   streq r3, [r8, r5, asl #2]
56650   ldrh  r3, [r6, #10]
56651   addeq r5, r5, #1
56652   and r3, r3, #3
56653   cmp r3, lr
56654   moveq r3, #1
56655   streq r3, [r8, r5, asl #2]
56656   addeq r5, r5, r3
56657   ldr r3, [r4, #1920]
56658   sub r4, r4, #640
56659   cmp r3, #0
56660   beq .L17940
56661   cmp r7, #0
56662   orr r3, lr, #4
56663   strne r3, [r8, r5, asl #2]
56664   addne r5, r5, #1
56665 .L17940:
56666   subs  lr, lr, #1
56667   bcc .L17869
56668   b .L17983
56669 .L17984:
56670   ldrh  r3, [r6, #12]
56671   and r3, r3, #3
56672   cmp r3, lr
56673   moveq r3, #2
56674   streq r3, [r8, r5, asl #2]
56675   ldr r3, [r4, #1920]
56676   addeq r5, r5, #1
56677   cmp r3, #0
56678   sub r4, r4, #640
56679   beq .L17945
56680   cmp r7, #0
56681   orr r3, lr, #4
56682   strne r3, [r8, r5, asl #2]
56683   addne r5, r5, #1
56684 .L17945:
56685   subs  lr, lr, #1
56686   bcc .L17869
56687   b .L17984
56688 .L17988:
56689   ldrh  r3, [r6, #12]
56690   and r3, r3, #3
56691   cmp r3, lr
56692   moveq r3, #2
56693   streq r3, [r8, r5, asl #2]
56694   ldrh  r3, [r6, #8]
56695   addeq r5, r5, #1
56696   and r3, r3, #3
56697   cmp r3, lr
56698   moveq r3, #0
56699   streq r3, [r8, r5, asl #2]
56700   ldr r3, [r4, #1920]
56701   addeq r5, r5, #1
56702   cmp r3, #0
56703   sub r4, r4, #640
56704   beq .L17963
56705   cmp r7, #0
56706   orr r3, lr, #4
56707   strne r3, [r8, r5, asl #2]
56708   addne r5, r5, #1
56709 .L17963:
56710   subs  lr, lr, #1
56711   bcc .L17869
56712   b .L17988
56713 .L17990:
56714   .align  2
56715 .L17989:
56716   .word io_registers
56717   .word obj_priority_count
56718   .word layer_count
56719   .word layer_order
56720   .size order_layers, .-order_layers
56721   .align  2
56722   .global fill_line_normal
56723   .type fill_line_normal, %function
56724 fill_line_normal:
56725   @ args = 0, pretend = 0, frame = 0
56726   @ frame_needed = 0, uses_anonymous_args = 0
56727   str lr, [sp, #-4]!
56728   mov r0, r0, asl #16
56729   mov lr, r3
56730   cmp r2, r3
56731   ldr r3, .L17997
56732   mov r0, r0, lsr #15
56733   ldrh  ip, [r0, r3]
56734   ldrcs pc, [sp], #4
56735   rsb r3, r2, lr
56736   add r1, r1, r2, asl #1
56737   mov r0, #0
56738 .L17994:
56739   add r0, r0, #1
56740   cmp r0, r3
56741   strh  ip, [r1], #2  @ movhi
56742   bne .L17994
56743   ldr pc, [sp], #4
56744 .L17998:
56745   .align  2
56746 .L17997:
56747   .word palette_ram_converted
56748   .size fill_line_normal, .-fill_line_normal
56749   .align  2
56750   .global fill_line_alpha
56751   .type fill_line_alpha, %function
56752 fill_line_alpha:
56753   @ args = 0, pretend = 0, frame = 0
56754   @ frame_needed = 0, uses_anonymous_args = 0
56755   @ link register save eliminated.
56756   mov r0, r0, asl #16
56757   cmp r2, r3
56758   @ lr needed for prologue
56759   mov r0, r0, lsr #16
56760   bxcs  lr
56761   rsb r3, r2, r3
56762   add r1, r1, r2, asl #2
56763   mov ip, #0
56764 .L18002:
56765   add ip, ip, #1
56766   cmp ip, r3
56767   str r0, [r1], #4
56768   bne .L18002
56769   bx  lr
56770   .size fill_line_alpha, .-fill_line_alpha
56771   .align  2
56772   .global fill_line_color16
56773   .type fill_line_color16, %function
56774 fill_line_color16:
56775   @ args = 0, pretend = 0, frame = 0
56776   @ frame_needed = 0, uses_anonymous_args = 0
56777   @ link register save eliminated.
56778   mov r0, r0, asl #16
56779   cmp r2, r3
56780   @ lr needed for prologue
56781   mov r0, r0, lsr #16
56782   bxcs  lr
56783   rsb r3, r2, r3
56784   add r1, r1, r2, asl #1
56785   mov ip, #0
56786 .L18008:
56787   add ip, ip, #1
56788   cmp ip, r3
56789   strh  r0, [r1], #2  @ movhi
56790   bne .L18008
56791   bx  lr
56792   .size fill_line_color16, .-fill_line_color16
56793   .align  2
56794   .global fill_line_color32
56795   .type fill_line_color32, %function
56796 fill_line_color32:
56797   @ args = 0, pretend = 0, frame = 0
56798   @ frame_needed = 0, uses_anonymous_args = 0
56799   @ link register save eliminated.
56800   mov r0, r0, asl #16
56801   cmp r2, r3
56802   @ lr needed for prologue
56803   mov r0, r0, lsr #16
56804   bxcs  lr
56805   rsb r3, r2, r3
56806   add r1, r1, r2, asl #2
56807   mov ip, #0
56808 .L18014:
56809   add ip, ip, #1
56810   cmp ip, r3
56811   str r0, [r1], #4
56812   bne .L18014
56813   bx  lr
56814   .size fill_line_color32, .-fill_line_color32
56815   .align  2
56816   .global expand_blend
56817   .type expand_blend, %function
56818
56819 expand_blend:
56820   @ args = 0, pretend = 0, frame = 4
56821   @ frame_needed = 0, uses_anonymous_args = 0
56822   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
56823   mov r6, r0                  # r6 = screen_src_ptr
56824   ldr r0, .L18042             # r0 = io_registers
56825   mov lr, r1                  # lr = screen_dest_ptr
56826   ldrh  ip, [r0, #82]         # ip = REG_BLDALPHA
56827   sub sp, sp, #4              # make room on stack for 1 word
56828   mov r1, ip, lsr #8          # r1 = REG_BLDALPHA >> 8
56829   and r1, r1, #31             # r1 = (REG_BLDALPHA >> 8) & 0x1F = blend_b
56830   and ip, ip, #31             # ip = REG_BLDALPHA & 0x1F = blend_a
56831   cmp ip, #16                 # if(blend_a > 16)
56832   movcs ip, #16               #   blend_a = 16
56833   cmp r1, #16                 # fp = blend_b
56834   movcc fp, r1                # if(blend_b > 16)
56835   movcs fp, #16               #   blend_b = 16
56836   add r0, fp, ip              # r0 = blend_a + blend_b
56837   cmp r0, #16                 # if((blend_a + blend_b) > 16)
56838   str ip, [sp, #0]            #   save blend_a to stack
56839   bls .L18018                 #   goto blend w/o saturation
56840
56841   subs  r8, r3, r2            # r8 = end - start
56842   beq .L18040                 # if((end - start) == 0) we're already done
56843
56844   ldr r7, .L18042+4           # r7 = palette_ram_converted
56845   ldr sl, .L18042+8           # sl = 0x4000200
56846   add r4, r6, r2, asl #2      # r4 = screen_src_ptr + (start * 4)
56847   add r5, lr, r2, asl #1      # r5 = screen_dest_ptr + (start * 2)
56848   mov r6, #0                  # r6 = 0
56849   b .L18022
56850
56851 .L18023:
56852   mov r3, r0, asl #23
56853   mov r3, r3, lsr #23
56854   mov r3, r3, asl #1
56855   ldrh  r3, [r3, r7]
56856   add r6, r6, #1
56857   cmp r8, r6
56858   strh  r3, [r5, #0]  @ movhi
56859   beq .L18040
56860
56861 .L18041:                      # next_iteration
56862   add r4, r4, #4              # screen_src_ptr++
56863   add r5, r5, #2              # screen_dest_ptr++
56864
56865 .L18022:                      # blend w/o saturation
56866   ldr r0, [r4, #0]            # r0 = *screen_src_ptr = pixel_source
56867   ldr r3, .L18042+8           # r3 = 0x4000200
56868   and r3, r0, r3              # r3 = (pixel_source & 0x400200)
56869   cmp r3, sl                  # if(r3 == 0x4000200)
56870   bne .L18023                 #   if not, don't perform blending
56871   ldr r3, .L18042+12          # r3 = 0x3FE
56872   mov r2, r0, lsr #15         # r2 = pixel_source >> 15
56873   and r3, r2, r3              # r3 = (pixel_source >> 15) & 0x3FE = low_color_i
56874   ldrh  r1, [r3, r7]          # r1 = palette_ram_converted[low_color_i] = low_color
56875   mov r0, r0, asl #23         # r0 = r0 << 23
56876   ldr ip, .L18042+16          # ip = 0x7EF81F
56877   orr r1, r1, r1, asl #16     # r1 = (low_color << 16) | low_color = low_split
56878   mov r0, r0, lsr #23         # r0 = pixel_source & 0x1FF
56879   and ip, r1, ip              # ip = low_split & 0x7EF81F = pixel_bottom
56880   mov r0, r0, asl #1          # r0 = (pixel_source & 0x1FF) << 1 = high_color_i
56881   ldrh  r2, [r0, r7]          # r2 = palette_ram_converted[high_color_i] = high_color
56882   mul lr, fp, ip              # lr = pixel_bottom * blend_b
56883   ldr r3, .L18042+16          # r3 = 0x7EF81F
56884   orr r2, r2, r2, asl #16     # r2 = (high_color << 16) | high_color = high_split
56885   ldr r1, [sp, #0]            # r1 = blend_a
56886   and r3, r2, r3              # r3 = high_split & 0x7EF81F = pixel_top
56887   mla r1, r3, r1, lr          # r1 = (pixel_top * blend_a) + (pixel_bottom * blend_b)
56888   ldr r2, .L18042+20          # r2 = 0x8010020
56889   mov r1, r1, lsr #4          # r1 = ((pixel_top * blend_a) + (pixel_bottom * blend_b)) >> 4
56890   and r2, r1, r2              # r2 = test any saturation on result
56891   cmp r2, #0                  # if(!saturation)
56892   beq .L18025                 #   goto finish_iteration
56893   tst r1, #134217728
56894   orrne r1, r1, #132120576
56895   tst r1, #65536
56896   orrne r1, r1, #63488
56897   tst r1, #32
56898   orrne r1, r1, #31
56899
56900 .L18025:                      # finish_iteration
56901   ldr r3, .L18042+16          # r3 = 0x7EF81F
56902   add r6, r6, #1              # i++
56903   and r3, r1, r3              # r3 = pixel_result_dilate & 0x7EF81F
56904   orr r3, r3, r3, lsr #16     # r3 = (pixel_result_dilate >> 16) | pixel_result_dilate
56905   cmp r8, r6                  # *screen_dest_ptr = pixel_result
56906   strh  r3, [r5, #0]  @ movhi # if(i != end)
56907   bne .L18041                 #   goto next_iteration
56908 .L18040:
56909   add sp, sp, #4
56910   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
56911
56912 .L18018:                      # blend w/o saturation
56913   subs  r9, r3, r2
56914   beq .L18040
56915   ldr sl, .L18042+4
56916   add r4, lr, r2, asl #1
56917   mov r7, #0
56918   add lr, r6, r2, asl #2
56919   b .L18035
56920 .L18036:
56921   ldrh  r3, [r3, sl]
56922   strh  r3, [r4, #0]  @ movhi
56923 .L18038:
56924   add r7, r7, #1
56925   cmp r9, r7
56926   add lr, lr, #4
56927   add r4, r4, #2
56928   beq .L18040
56929
56930 .L18035:
56931   ldr r1, [lr, #0]
56932   ldr ip, .L18042+12
56933   mov r3, r1, asl #23
56934   ldr r0, .L18042+8
56935   mov r2, r1, lsr #15
56936   mov r3, r3, lsr #23
56937   and r0, r1, r0
56938   and ip, r2, ip
56939   mov r2, r3, asl #1
56940   mov r3, r1, asl #23
56941   ldr r1, .L18042+8
56942   ldr r6, .L18042+16
56943   mov r3, r3, lsr #23
56944   cmp r0, r1
56945   mov r8, r6
56946   mov r5, r6
56947   mov r3, r3, asl #1
56948   bne .L18036
56949   ldrh  r3, [ip, sl]
56950   ldrh  r2, [r2, sl]
56951   orr r3, r3, r3, asl #16
56952   and r6, r3, r6
56953   mul r1, fp, r6
56954   orr r2, r2, r2, asl #16
56955   ldr r3, [sp, #0]
56956   and r8, r2, r8
56957   mla r3, r8, r3, r1
56958   mov r3, r3, lsr #4
56959   and r5, r3, r5
56960   orr r2, r5, r5, lsr #16
56961   strh  r2, [r4, #0]  @ movhi
56962   b .L18038
56963
56964 .L18043:
56965   .align  2
56966
56967 .L18042:
56968   .word io_registers
56969   .word palette_ram_converted
56970   .word 67109376
56971   .word 1022
56972   .word 132184095
56973   .word 134283296
56974   .size expand_blend, .-expand_blend
56975   .align  2
56976   .global expand_darken
56977   .type expand_darken, %function
56978 expand_darken:
56979   @ args = 0, pretend = 0, frame = 0
56980   @ frame_needed = 0, uses_anonymous_args = 0
56981   ldr ip, .L18053
56982   stmfd sp!, {r4, r5, r6, r7, r8, lr}
56983   mov lr, r2
56984   ldrh  r2, [ip, #84]
56985   and r2, r2, #31
56986   rsb r2, r2, #16
56987   cmp r2, #0
56988   movge r8, r2
56989   movlt r8, #0
56990   subs  r6, r3, lr
56991   ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
56992   mov r3, lr, asl #1
56993   ldr r7, .L18053+4
56994   add ip, r3, r1
56995   add r0, r3, r0
56996   mov r5, #0
56997 .L18047:
56998   ldrh  r3, [r0, #0]
56999   ldr r4, .L18053+8
57000   mov r2, r3, asl #23
57001   mov r2, r2, lsr #23
57002   tst r3, #512
57003   mov r2, r2, asl #1
57004   mov r1, r3, asl #23
57005   ldrneh  r3, [r2, r7]
57006   mov lr, r4
57007   orrne r3, r3, r3, asl #16
57008   andne r4, r3, r4
57009   mulne r2, r8, r4
57010   mov r1, r1, lsr #23
57011   mov r1, r1, asl #1
57012   movne r2, r2, lsr #4
57013   andne lr, r2, lr
57014   ldreqh  r1, [r1, r7]
57015   orrne r3, lr, lr, lsr #16
57016   add r5, r5, #1
57017   strneh  r3, [ip, #0]  @ movhi
57018   streqh  r1, [ip, #0]  @ movhi
57019   cmp r6, r5
57020   add r0, r0, #2
57021   add ip, ip, #2
57022   bne .L18047
57023   ldmfd sp!, {r4, r5, r6, r7, r8, pc}
57024 .L18054:
57025   .align  2
57026 .L18053:
57027   .word io_registers
57028   .word palette_ram_converted
57029   .word 132184095
57030   .size expand_darken, .-expand_darken
57031   .align  2
57032   .global expand_brighten
57033   .type expand_brighten, %function
57034 expand_brighten:
57035   @ args = 0, pretend = 0, frame = 0
57036   @ frame_needed = 0, uses_anonymous_args = 0
57037   stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
57038   mov lr, r2
57039   ldr r2, .L18064
57040   ldr r7, .L18064+4
57041   ldrh  ip, [r2, #84]
57042   and ip, ip, #31
57043   cmp ip, #16
57044   movcs ip, #16
57045   rsb r2, ip, ip, asl #6
57046   add r2, ip, r2, asl #5
57047   rsb r2, r2, r2, asl #16
57048   mov r2, r2, lsr #4
57049   subs  r6, r3, lr
57050   and r7, r2, r7
57051   rsb r8, ip, #16
57052   ldmeqfd sp!, {r4, r5, r6, r7, r8, sl, pc}
57053   mov r3, lr, asl #1
57054   ldr sl, .L18064+8
57055   add ip, r3, r1
57056   add r0, r3, r0
57057   mov r5, #0
57058 .L18058:
57059   ldrh  r3, [r0, #0]
57060   ldr r4, .L18064+4
57061   mov r2, r3, asl #23
57062   mov r2, r2, lsr #23
57063   tst r3, #512
57064   mov r2, r2, asl #1
57065   mov r1, r3, asl #23
57066   ldrneh  r3, [r2, sl]
57067   mov lr, r4
57068   orrne r3, r3, r3, asl #16
57069   andne r4, r3, r4
57070   mulne r2, r4, r8
57071   mov r1, r1, lsr #23
57072   mov r1, r1, asl #1
57073   addne r2, r7, r2, lsr #4
57074   andne lr, r2, lr
57075   ldreqh  r1, [r1, sl]
57076   orrne r3, lr, lr, lsr #16
57077   add r5, r5, #1
57078   strneh  r3, [ip, #0]  @ movhi
57079   streqh  r1, [ip, #0]  @ movhi
57080   cmp r6, r5
57081   add r0, r0, #2
57082   add ip, ip, #2
57083   bne .L18058
57084   ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
57085 .L18065:
57086   .align  2
57087 .L18064:
57088   .word io_registers
57089   .word 132184095
57090   .word palette_ram_converted
57091   .size expand_brighten, .-expand_brighten
57092   .align  2
57093   .global expand_darken_partial_alpha
57094   .type expand_darken_partial_alpha, %function
57095 expand_darken_partial_alpha:
57096   @ args = 0, pretend = 0, frame = 16
57097   @ frame_needed = 0, uses_anonymous_args = 0
57098   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
57099   ldr r4, .L18099
57100   mov r6, r0
57101   ldrh  r0, [r4, #82]
57102   ldrh  lr, [r4, #84]
57103   mov ip, r0, lsr #8
57104   and ip, ip, #31
57105   and r0, r0, #31
57106   sub sp, sp, #16
57107   cmp r0, #16
57108   movcs r0, #16
57109   cmp ip, #16
57110   movcs ip, #16
57111   and lr, lr, #31
57112   str r0, [sp, #4]
57113   rsb lr, lr, #16
57114   add r0, ip, r0
57115   cmp lr, #0
57116   movlt lr, #0
57117   cmp r0, #16
57118   str ip, [sp, #8]
57119   str lr, [sp, #0]
57120   bls .L18067
57121   subs  r8, r3, r2
57122   beq .L18093
57123   ldr r7, .L18099+4
57124   add r4, r6, r2, asl #2
57125   add r5, r1, r2, asl #1
57126   mov r6, #0
57127   b .L18071
57128 .L18095:
57129   ldr r3, .L18099+8
57130   ldr r2, .L18099+8
57131   and r3, r0, r3
57132   cmp r3, r2
57133   beq .L18094
57134   mov r3, r0, asl #23
57135   mov r3, r3, lsr #23
57136   mov r3, r3, asl #1
57137   ldrh  r2, [r3, r7]
57138   ldr r1, .L18099+12
57139   orr r2, r2, r2, asl #16
57140   ldr r0, [sp, #0]
57141   and r1, r2, r1
57142   mul r0, r1, r0
57143   ldr r3, .L18099+12
57144   mov r0, r0, lsr #4
57145   and r3, r0, r3
57146   orr r3, r3, r3, lsr #16
57147   strh  r3, [r5, #0]  @ movhi
57148 .L18083:
57149   add r6, r6, #1
57150   cmp r8, r6
57151   beq .L18093
57152 .L18096:
57153   add r4, r4, #4
57154   add r5, r5, #2
57155 .L18071:
57156   ldr r0, [r4, #0]
57157   tst r0, #512
57158   bne .L18095
57159   mov r3, r0, asl #23
57160   mov r3, r3, lsr #23
57161   mov r3, r3, asl #1
57162   ldrh  r3, [r3, r7]
57163   add r6, r6, #1
57164   cmp r8, r6
57165   strh  r3, [r5, #0]  @ movhi
57166   bne .L18096
57167 .L18093:
57168   add sp, sp, #16
57169   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
57170 .L18067:
57171   subs  r3, r3, r2
57172   str r3, [sp, #12]
57173   beq .L18093
57174   ldr fp, .L18099+4
57175   add r4, r1, r2, asl #1
57176   add r0, r6, r2, asl #2
57177   mov sl, #0
57178   b .L18086
57179 .L18098:
57180   ldr r5, .L18099+16
57181   mov r3, r1, lsr #15
57182   and r5, r3, r5
57183   mov r3, r1, asl #23
57184   mov r3, r3, lsr #23
57185   mov r7, r3, asl #1
57186   ldr r3, .L18099+8
57187   ldr r9, .L18099+12
57188   mov r2, r1, asl #23
57189   mov r2, r2, lsr #23
57190   cmp lr, r3
57191   mov r2, r2, asl #1
57192   mov r8, r9
57193   mov ip, r9
57194   mov r6, r9
57195   beq .L18097
57196   ldrh  r3, [r2, fp]
57197   ldr r2, [sp, #0]
57198   orr r3, r3, r3, asl #16
57199   and ip, r3, r9
57200   mul r2, ip, r2
57201   mov r2, r2, lsr #4
57202   and r1, r2, r9
57203   orr r3, r1, r1, lsr #16
57204   strh  r3, [r4, #0]  @ movhi
57205 .L18091:
57206   ldr ip, [sp, #12]
57207   add sl, sl, #1
57208   cmp ip, sl
57209   add r0, r0, #4
57210   add r4, r4, #2
57211   beq .L18093
57212 .L18086:
57213   ldr r1, [r0, #0]
57214   ldr lr, .L18099+8
57215   mov r3, r1, asl #23
57216   mov r3, r3, lsr #23
57217   tst r1, #512
57218   and lr, r1, lr
57219   mov r3, r3, asl #1
57220   bne .L18098
57221   ldrh  r3, [r3, fp]
57222   strh  r3, [r4, #0]  @ movhi
57223   b .L18091
57224 .L18097:
57225   ldrh  r3, [r5, fp]
57226   ldr r1, [sp, #8]
57227   orr r3, r3, r3, asl #16
57228   and r9, r3, r9
57229   ldrh  r2, [r7, fp]
57230   mul r1, r9, r1
57231   orr r2, r2, r2, asl #16
57232   ldr r3, [sp, #4]
57233   and r8, r2, r8
57234   mla r3, r8, r3, r1
57235   mov r3, r3, lsr #4
57236   and r6, r3, ip
57237   orr r2, r6, r6, lsr #16
57238   strh  r2, [r4, #0]  @ movhi
57239   b .L18091
57240 .L18094:
57241   ldr r3, .L18099+16
57242   mov r2, r0, lsr #15
57243   and r3, r2, r3
57244   ldrh  r1, [r3, r7]
57245   mov r0, r0, asl #23
57246   ldr ip, .L18099+12
57247   orr r1, r1, r1, asl #16
57248   mov r0, r0, lsr #23
57249   ldr lr, [sp, #8]
57250   and ip, r1, ip
57251   mov r0, r0, asl #1
57252   ldrh  r2, [r0, r7]
57253   mul lr, ip, lr
57254   ldr r3, .L18099+12
57255   orr r2, r2, r2, asl #16
57256   ldr r1, [sp, #4]
57257   and r3, r2, r3
57258   mla r1, r3, r1, lr
57259   ldr r2, .L18099+20
57260   mov r1, r1, lsr #4
57261   and r2, r1, r2
57262   cmp r2, #0
57263   beq .L18076
57264   tst r1, #134217728
57265   orrne r1, r1, #132120576
57266   tst r1, #65536
57267   orrne r1, r1, #63488
57268   tst r1, #32
57269   orrne r1, r1, #31
57270 .L18076:
57271   ldr r3, .L18099+12
57272   and r3, r1, r3
57273   orr r3, r3, r3, lsr #16
57274   strh  r3, [r5, #0]  @ movhi
57275   b .L18083
57276 .L18100:
57277   .align  2
57278 .L18099:
57279   .word io_registers
57280   .word palette_ram_converted
57281   .word 67109376
57282   .word 132184095
57283   .word 1022
57284   .word 134283296
57285   .size expand_darken_partial_alpha, .-expand_darken_partial_alpha
57286   .align  2
57287   .global expand_brighten_partial_alpha
57288   .type expand_brighten_partial_alpha, %function
57289 expand_brighten_partial_alpha:
57290   @ args = 0, pretend = 0, frame = 20
57291   @ frame_needed = 0, uses_anonymous_args = 0
57292   ldr ip, .L18134
57293   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
57294   ldrh  r5, [ip, #84]
57295   ldrh  r4, [ip, #82]
57296   and r5, r5, #31
57297   cmp r5, #16
57298   movge r5, #16
57299   mov lr, r4, lsr #8
57300   rsb ip, r5, r5, asl #6
57301   add ip, r5, ip, asl #5
57302   and lr, lr, #31
57303   and r4, r4, #31
57304   sub sp, sp, #20
57305   cmp r4, #16
57306   movcs r4, #16
57307   cmp lr, #16
57308   movcs lr, #16
57309   rsb ip, ip, ip, asl #16
57310   ldr r6, .L18134+4
57311   str lr, [sp, #12]
57312   mov ip, ip, asr #4
57313   add lr, lr, r4
57314   and r6, ip, r6
57315   rsb r5, r5, #16
57316   cmp lr, #16
57317   str r4, [sp, #8]
57318   str r6, [sp, #0]
57319   str r5, [sp, #4]
57320   bls .L18102
57321   subs  r8, r3, r2
57322   beq .L18128
57323   ldr r7, .L18134+8
57324   add r4, r1, r2, asl #1
57325   add r5, r0, r2, asl #2
57326   mov r6, #0
57327   b .L18106
57328 .L18130:
57329   ldr r3, .L18134+12
57330   ldr r2, .L18134+12
57331   and r3, r0, r3
57332   cmp r3, r2
57333   beq .L18129
57334   mov r3, r0, asl #23
57335   mov r3, r3, lsr #23
57336   mov r3, r3, asl #1
57337   ldrh  r2, [r3, r7]
57338   ldr r1, .L18134+4
57339   orr r2, r2, r2, asl #16
57340   ldr r0, [sp, #4]
57341   and r1, r2, r1
57342   mul r0, r1, r0
57343   ldr lr, [sp, #0]
57344   ldr r3, .L18134+4
57345   add r0, lr, r0, lsr #4
57346   and r3, r0, r3
57347   orr r3, r3, r3, lsr #16
57348   strh  r3, [r4, #0]  @ movhi
57349 .L18118:
57350   add r6, r6, #1
57351   cmp r8, r6
57352   beq .L18128
57353 .L18131:
57354   add r5, r5, #4
57355   add r4, r4, #2
57356 .L18106:
57357   ldr r0, [r5, #0]
57358   tst r0, #512
57359   bne .L18130
57360   mov r3, r0, asl #23
57361   mov r3, r3, lsr #23
57362   mov r3, r3, asl #1
57363   ldrh  r3, [r3, r7]
57364   add r6, r6, #1
57365   cmp r8, r6
57366   strh  r3, [r4, #0]  @ movhi
57367   bne .L18131
57368 .L18128:
57369   add sp, sp, #20
57370   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
57371 .L18102:
57372   subs  r3, r3, r2
57373   str r3, [sp, #16]
57374   beq .L18128
57375   ldr fp, .L18134+8
57376   add r5, r1, r2, asl #1
57377   add r0, r0, r2, asl #2
57378   mov sl, #0
57379   b .L18121
57380 .L18133:
57381   ldr r4, .L18134+16
57382   mov r3, r1, lsr #15
57383   and r4, r3, r4
57384   mov r3, r1, asl #23
57385   mov r3, r3, lsr #23
57386   mov r7, r3, asl #1
57387   ldr r3, .L18134+12
57388   ldr r9, .L18134+4
57389   mov r2, r1, asl #23
57390   mov r2, r2, lsr #23
57391   cmp lr, r3
57392   mov r2, r2, asl #1
57393   mov r8, r9
57394   mov ip, r9
57395   beq .L18132
57396   ldrh  r3, [r2, fp]
57397   ldr r2, [sp, #4]
57398   orr r3, r3, r3, asl #16
57399   and ip, r3, r9
57400   mul r2, ip, r2
57401   ldr r4, [sp, #0]
57402   add r2, r4, r2, lsr #4
57403   and r1, r2, r9
57404   orr r3, r1, r1, lsr #16
57405   strh  r3, [r5, #0]  @ movhi
57406 .L18126:
57407   ldr r6, [sp, #16]
57408   add sl, sl, #1
57409   cmp r6, sl
57410   add r0, r0, #4
57411   add r5, r5, #2
57412   beq .L18128
57413 .L18121:
57414   ldr r1, [r0, #0]
57415   ldr lr, .L18134+12
57416   mov r3, r1, asl #23
57417   mov r3, r3, lsr #23
57418   tst r1, #512
57419   and lr, r1, lr
57420   mov r3, r3, asl #1
57421   bne .L18133
57422   ldrh  r3, [r3, fp]
57423   strh  r3, [r5, #0]  @ movhi
57424   b .L18126
57425 .L18132:
57426   ldrh  r3, [r4, fp]
57427   ldr r1, [sp, #12]
57428   orr r3, r3, r3, asl #16
57429   and r9, r3, r9
57430   ldrh  r2, [r7, fp]
57431   mul r1, r9, r1
57432   orr r2, r2, r2, asl #16
57433   ldr r3, [sp, #8]
57434   and r8, r2, r8
57435   mla r3, r8, r3, r1
57436   mov r3, r3, lsr #4
57437   and r6, r3, ip
57438   orr r2, r6, r6, lsr #16
57439   strh  r2, [r5, #0]  @ movhi
57440   b .L18126
57441 .L18129:
57442   ldr r3, .L18134+16
57443   mov r2, r0, lsr #15
57444   and r3, r2, r3
57445   ldrh  r1, [r3, r7]
57446   mov r0, r0, asl #23
57447   ldr ip, .L18134+4
57448   orr r1, r1, r1, asl #16
57449   mov r0, r0, lsr #23
57450   ldr lr, [sp, #12]
57451   and ip, r1, ip
57452   mov r0, r0, asl #1
57453   ldrh  r2, [r0, r7]
57454   mul lr, ip, lr
57455   ldr r3, .L18134+4
57456   orr r2, r2, r2, asl #16
57457   ldr r1, [sp, #8]
57458   and r3, r2, r3
57459   mla r1, r3, r1, lr
57460   ldr r2, .L18134+20
57461   mov r1, r1, lsr #4
57462   and r2, r1, r2
57463   cmp r2, #0
57464   beq .L18111
57465   tst r1, #134217728
57466   orrne r1, r1, #132120576
57467   tst r1, #65536
57468   orrne r1, r1, #63488
57469   tst r1, #32
57470   orrne r1, r1, #31
57471 .L18111:
57472   ldr r3, .L18134+4
57473   and r3, r1, r3
57474   orr r3, r3, r3, lsr #16
57475   strh  r3, [r4, #0]  @ movhi
57476   b .L18118
57477 .L18135:
57478   .align  2
57479 .L18134:
57480   .word io_registers
57481   .word 132184095
57482   .word palette_ram_converted
57483   .word 67109376
57484   .word 1022
57485   .word 134283296
57486   .size expand_brighten_partial_alpha, .-expand_brighten_partial_alpha
57487   .align  2
57488   .global render_scanline_bitmap
57489   .type render_scanline_bitmap, %function
57490 render_scanline_bitmap:
57491   @ args = 0, pretend = 0, frame = 0
57492   @ frame_needed = 0, uses_anonymous_args = 0
57493   ldr r3, .L18153
57494   and r2, r1, #7
57495   ldrh  ip, [r3, #0]
57496   ldr r3, .L18153+4
57497   stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
57498   add sl, r3, r2, asl #2
57499   mov r4, r0
57500   mov r3, #0
57501 .L18137:
57502   strh  ip, [r3, r4]  @ movhi
57503   add r3, r3, #2
57504   cmp r3, #480
57505   bne .L18137
57506   ldr r8, .L18153+8
57507   ldr r3, [r8, #0]
57508   cmp r3, #0
57509   ldmeqfd sp!, {r4, r5, r6, r7, r8, sl, pc}
57510   ldr r6, .L18153+12
57511   and r7, r1, #64
57512   mov r5, #0
57513   b .L18141
57514 .L18152:
57515   bl  render_scanline_obj_normal_1D
57516 .L18146:
57517   ldr r3, [r8, #0]
57518   add r5, r5, #1
57519   cmp r3, r5
57520   add r6, r6, #4
57521   bls .L18151
57522 .L18141:
57523   ldr ip, [r6, #0]
57524   mov r1, #240
57525   ands  r0, ip, #4
57526   mov r2, r4
57527   beq .L18142
57528   sub r1, r1, #240
57529   bic ip, ip, #4
57530   cmp r7, r1
57531   mov r2, #240
57532   mov r3, r4
57533   mov r0, ip
57534   bne .L18152
57535   mov r3, r4
57536   mov r0, ip
57537   mov r1, r7
57538   mov r2, #240
57539   bl  render_scanline_obj_normal_2D
57540   ldr r3, [r8, #0]
57541   add r5, r5, #1
57542   cmp r3, r5
57543   add r6, r6, #4
57544   bhi .L18141
57545 .L18151:
57546   ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
57547 .L18142:
57548   mov lr, pc
57549   ldr pc, [sl, #0]
57550   b .L18146
57551 .L18154:
57552   .align  2
57553 .L18153:
57554   .word palette_ram_converted
57555   .word bitmap_mode_renderers-12
57556   .word layer_count
57557   .word layer_order
57558   .size render_scanline_bitmap, .-render_scanline_bitmap
57559   .align  2
57560   .global render_scanline_conditional_bitmap
57561   .type render_scanline_conditional_bitmap, %function
57562 render_scanline_conditional_bitmap:
57563   @ args = 12, pretend = 0, frame = 4
57564   @ frame_needed = 0, uses_anonymous_args = 0
57565   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
57566   mov ip, r3
57567   ldr r3, .L18173
57568   cmp r0, r1
57569   mov r6, r0
57570   sub sp, sp, #4
57571   mov r7, r1
57572   mov r8, r2
57573   ldrh  r0, [r3, #0]
57574   bcs .L18156
57575   add r2, r2, r6, asl #1
57576   mov r3, #0
57577   rsb r1, r6, r1
57578 .L18158:
57579   add r3, r3, #1
57580   cmp r1, r3
57581   strh  r0, [r2], #2  @ movhi
57582   bne .L18158
57583 .L18156:
57584   ldr fp, .L18173+4
57585   ldr r3, [fp, #0]
57586   cmp r3, #0
57587   beq .L18169
57588   ldr r3, [sp, #40]
57589   ldr r5, .L18173+8
57590   and r3, r3, #64
57591   and r9, ip, #16
57592   and sl, ip, #4
57593   mov r4, #0
57594   str r3, [sp, #0]
57595   b .L18161
57596 .L18172:
57597   cmp r9, #0
57598   bic ip, r0, #4
57599   beq .L18164
57600   ldr lr, [sp, #0]
57601   mov r0, ip
57602   cmp lr, #0
57603   mov r1, r6
57604   mov r2, r7
57605   mov r3, r8
57606   beq .L18166
57607   bl  render_scanline_obj_normal_1D
57608 .L18164:
57609   ldr r3, [fp, #0]
57610   add r4, r4, #1
57611   cmp r3, r4
57612   add r5, r5, #4
57613   bls .L18169
57614 .L18161:
57615   ldr r0, [r5, #0]
57616   tst r0, #4
57617   bne .L18172
57618   cmp sl, #0
57619   mov r0, r6
57620   mov r1, r7
57621   mov r2, r8
57622   beq .L18164
57623   ldr r3, [sp, #48]
57624   mov lr, pc
57625   ldr pc, [r3, #0]
57626   ldr r3, [fp, #0]
57627   add r4, r4, #1
57628   cmp r3, r4
57629   add r5, r5, #4
57630   bhi .L18161
57631 .L18169:
57632   add sp, sp, #4
57633   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
57634 .L18166:
57635   mov r0, ip
57636   mov r1, r6
57637   mov r2, r7
57638   mov r3, r8
57639   bl  render_scanline_obj_normal_2D
57640   b .L18164
57641 .L18174:
57642   .align  2
57643 .L18173:
57644   .word palette_ram_converted
57645   .word layer_count
57646   .word layer_order
57647   .size render_scanline_conditional_bitmap, .-render_scanline_conditional_bitmap
57648   .align  2
57649   .global set_gba_resolution
57650   .type set_gba_resolution, %function
57651 set_gba_resolution:
57652   @ args = 0, pretend = 0, frame = 0
57653   @ frame_needed = 0, uses_anonymous_args = 0
57654   @ link register save eliminated.
57655   ldr r2, .L18180
57656   @ lr needed for prologue
57657   ldr r3, [r2, #0]
57658   cmp r3, r0
57659   bxeq  lr
57660   cmp r0, #2
57661   str r0, [r2, #0]
57662   bxhi  lr
57663   ldr r3, .L18180+4
57664   mov r2, #240
57665   str r2, [r3, #0]
57666   ldr r3, .L18180+8
57667   mov r1, #160
57668   str r1, [r3, #0]
57669   bx  lr
57670 .L18181:
57671   .align  2
57672 .L18180:
57673   .word screen_scale
57674   .word small_resolution_width
57675   .word small_resolution_height
57676   .size set_gba_resolution, .-set_gba_resolution
57677   .align  2
57678   .global clear_screen
57679   .type clear_screen, %function
57680 clear_screen:
57681   @ args = 0, pretend = 0, frame = 0
57682   @ frame_needed = 0, uses_anonymous_args = 0
57683   ldr r3, .L18192
57684   stmfd sp!, {r4, lr}
57685   ldr r2, [r3, #0]
57686   mov r0, r0, asl #16
57687   ldrh  r3, [r2, #16]
57688   ldr r1, [r2, #8]
57689   ldr r4, [r2, #12]
57690   rsb ip, r1, r3, lsr #1
57691   ldr r3, [r2, #20]
57692   cmp r4, #0
57693   movne lr, ip, asl #1
57694   mov r0, r0, lsr #16
57695   movne r2, r3
57696   movne ip, #0
57697   ldmeqfd sp!, {r4, pc}
57698 .L18185:
57699   cmp r1, #0
57700   movne r3, #0
57701   beq .L18188
57702 .L18187:
57703   add r3, r3, #1
57704   cmp r1, r3
57705   strh  r0, [r2], #2  @ movhi
57706   bhi .L18187
57707 .L18188:
57708   add ip, ip, #1
57709   cmp r4, ip
57710   ldmlsfd sp!, {r4, pc}
57711   add r2, r2, lr
57712   b .L18185
57713 .L18193:
57714   .align  2
57715 .L18192:
57716   .word screen
57717   .size clear_screen, .-clear_screen
57718   .align  2
57719   .global blit_to_screen
57720   .type blit_to_screen, %function
57721 blit_to_screen:
57722   @ args = 4, pretend = 0, frame = 0
57723   @ frame_needed = 0, uses_anonymous_args = 0
57724   stmfd sp!, {r4, r5, r6, r7, r8, lr}
57725   mov r4, r1
57726   ldr r1, .L18206
57727   subs  r7, r2, #0
57728   ldr ip, [r1, #0]
57729   mov lr, r3
57730   ldrh  r2, [ip, #16]
57731   ldr ip, [ip, #20]
57732   mov r2, r2, lsr #1
57733   rsb r1, r4, r2
57734   ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
57735   ldr r3, [sp, #24]
57736   mov r6, r1, asl #1
57737   mla r2, r3, r2, lr
57738   mov r5, r4, asl #1
57739   add r2, ip, r2, asl #1
57740   mov r3, #0
57741 .L18197:
57742   cmp r4, #0
57743   movne lr, r2
57744   movne ip, r0
57745   movne r1, #0
57746   beq .L18201
57747 .L18199:
57748   add r1, r1, #1
57749   ldrh  r8, [ip], #2
57750   cmp r4, r1
57751   strh  r8, [lr], #2  @ movhi
57752   bne .L18199
57753   add r2, r2, r5
57754   add r0, r0, r5
57755 .L18201:
57756   add r3, r3, #1
57757   cmp r7, r3
57758   ldmeqfd sp!, {r4, r5, r6, r7, r8, pc}
57759   add r2, r2, r6
57760   b .L18197
57761 .L18207:
57762   .align  2
57763 .L18206:
57764   .word screen
57765   .size blit_to_screen, .-blit_to_screen
57766   .align  2
57767   .global print_string_ext
57768   .type print_string_ext, %function
57769 print_string_ext:
57770   @ args = 16, pretend = 0, frame = 12
57771   @ frame_needed = 0, uses_anonymous_args = 0
57772   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
57773   ldr ip, .L18247
57774   sub sp, sp, #12
57775   ldr sl, [sp, #48]
57776   ldr r4, [ip, #0]
57777   add lr, sl, #10
57778   cmp lr, r4
57779   mov r1, r1, asl #16
57780   mov r2, r2, asl #16
57781   mov fp, r0
57782   mov r9, r3
57783   mov r4, r1, lsr #16
57784   mov lr, r2, lsr #16
57785   ldrb  ip, [r0, #0]  @ zero_extendqisi2
57786   bcs .L18240
57787   cmp ip, #0
57788   beq .L18240
57789   ldr r2, .L18247+4
57790   ldr r0, [sp, #56]
57791   ldr r2, [r2, #0]
57792   ldr r3, .L18247+8
57793   mla r0, sl, r0, r9
57794   ldr r3, [r3, #0]
57795   str r2, [sp, #0]
57796   ldr r2, [sp, #56]
57797   str r3, [sp, #8]
57798   add r1, r2, r2, asl #2
57799   ldr r3, [sp, #52]
57800   mov r1, r1, asl #2
57801   str r1, [sp, #4]
57802   add r6, r3, r0, asl #1
57803   mov r1, r2, asl #1
57804   mov r5, r9
57805   mov r7, #0
57806   mov r8, #1
57807 .L18212:
57808   cmp ip, #10
57809   beq .L18246
57810   ldr r3, .L18247+12
57811   mov r0, r6
57812   ldr r2, [r3, ip, asl #2]
57813   ldr r3, .L18247+16
57814   mov ip, #0
57815   add r2, r3, r2, asl #1
57816 .L18216:
57817   ldrh  r3, [r2, #0]
57818   add ip, ip, #1
57819   tst r3, #32768
57820   streqh  lr, [r0, #0]  @ movhi
57821   strneh  r4, [r0, #0]  @ movhi
57822   tst r3, #16384
57823   streqh  lr, [r0, #2]  @ movhi
57824   strneh  r4, [r0, #2]  @ movhi
57825   tst r3, #8192
57826   streqh  lr, [r0, #4]  @ movhi
57827   strneh  r4, [r0, #4]  @ movhi
57828   tst r3, #4096
57829   streqh  lr, [r0, #6]  @ movhi
57830   strneh  r4, [r0, #6]  @ movhi
57831   tst r3, #2048
57832   streqh  lr, [r0, #8]  @ movhi
57833   strneh  r4, [r0, #8]  @ movhi
57834   tst r3, #1024
57835   strneh  r4, [r0, #10] @ movhi
57836   streqh  lr, [r0, #10] @ movhi
57837   cmp ip, #10
57838   add r0, r0, r1
57839   add r2, r2, #2
57840   bne .L18216
57841   add r3, r1, r6
57842   add r2, r1, r1, asl #3
57843   add r3, r3, r2
57844   ldr r2, [sp, #4]
57845   add r5, r5, #6
57846   rsb r3, r2, r3
57847   add r6, r3, #12
57848 .L18215:
57849   ldrb  ip, [fp, r8]  @ zero_extendqisi2
57850   ldr r0, [sp, #60]
57851   add r7, r7, #1
57852   cmp r7, r0
57853   movcs r3, #0
57854   movcc r3, #1
57855   cmp ip, #0
57856   movne r3, #0
57857   ldr r2, [sp, #8]
57858   cmp r3, #0
57859   add r3, r5, #6
57860   movne ip, #32
57861   addeq r8, r8, #1
57862   cmp r3, r2
57863   bcs .L18240
57864   cmp ip, #0
57865   bne .L18212
57866 .L18240:
57867   add sp, sp, #12
57868   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
57869 .L18246:
57870   ldr r2, [sp, #56]
57871   add sl, sl, #10
57872   mla r2, sl, r2, r9
57873   ldr r0, [sp, #0]
57874   mov r5, r9
57875   ldr r3, [r0, #20]
57876   add r6, r3, r2, asl #1
57877   b .L18215
57878 .L18248:
57879   .align  2
57880 .L18247:
57881   .word resolution_height
57882   .word screen
57883   .word resolution_width
57884   .word _font_offset
57885   .word _font_bits
57886   .size print_string_ext, .-print_string_ext
57887   .align  2
57888   .global debug_screen_clear
57889   .type debug_screen_clear, %function
57890 debug_screen_clear:
57891   @ args = 0, pretend = 0, frame = 0
57892   @ frame_needed = 0, uses_anonymous_args = 0
57893   @ link register save eliminated.
57894   @ lr needed for prologue
57895   bx  lr
57896   .size debug_screen_clear, .-debug_screen_clear
57897   .align  2
57898   .global debug_screen_start
57899   .type debug_screen_start, %function
57900 debug_screen_start:
57901   @ args = 0, pretend = 0, frame = 0
57902   @ frame_needed = 0, uses_anonymous_args = 0
57903   @ link register save eliminated.
57904   @ lr needed for prologue
57905   bx  lr
57906   .size debug_screen_start, .-debug_screen_start
57907   .align  2
57908   .global debug_screen_end
57909   .type debug_screen_end, %function
57910 debug_screen_end:
57911   @ args = 0, pretend = 0, frame = 0
57912   @ frame_needed = 0, uses_anonymous_args = 0
57913   @ link register save eliminated.
57914   @ lr needed for prologue
57915   bx  lr
57916   .size debug_screen_end, .-debug_screen_end
57917   .align  2
57918   .global debug_screen_update
57919   .type debug_screen_update, %function
57920 debug_screen_update:
57921   @ args = 0, pretend = 0, frame = 0
57922   @ frame_needed = 0, uses_anonymous_args = 0
57923   @ link register save eliminated.
57924   @ lr needed for prologue
57925   bx  lr
57926   .size debug_screen_update, .-debug_screen_update
57927   .align  2
57928   .global video_write_mem_savestate
57929   .type video_write_mem_savestate, %function
57930 video_write_mem_savestate:
57931   @ args = 0, pretend = 0, frame = 0
57932   @ frame_needed = 0, uses_anonymous_args = 0
57933   stmfd sp!, {r4, lr}
57934   ldr r4, .L18259
57935   ldr r1, .L18259+4
57936   mov r2, #8
57937   ldr r0, [r4, #0]
57938   bl  memcpy
57939   ldr r3, [r4, #0]
57940   ldr r1, .L18259+8
57941   add r3, r3, #8
57942   mov r0, r3
57943   mov r2, #8
57944   str r3, [r4, #0]
57945   bl  memcpy
57946   ldr r3, [r4, #0]
57947   add r3, r3, #8
57948   str r3, [r4, #0]
57949   ldmfd sp!, {r4, pc}
57950 .L18260:
57951   .align  2
57952 .L18259:
57953   .word write_mem_ptr
57954   .word affine_reference_x
57955   .word affine_reference_y
57956   .size video_write_mem_savestate, .-video_write_mem_savestate
57957   .align  2
57958   .global video_read_savestate
57959   .type video_read_savestate, %function
57960 video_read_savestate:
57961   @ args = 0, pretend = 0, frame = 0
57962   @ frame_needed = 0, uses_anonymous_args = 0
57963   stmfd sp!, {r4, lr}
57964   mov r3, r0
57965   mov r4, r0
57966   mov r1, #8
57967   mov r2, #1
57968   ldr r0, .L18263
57969   bl  fread
57970   ldr r0, .L18263+4
57971   mov r3, r4
57972   mov r1, #8
57973   mov r2, #1
57974   ldmfd sp!, {r4, lr}
57975   b fread
57976 .L18264:
57977   .align  2
57978 .L18263:
57979   .word affine_reference_x
57980   .word affine_reference_y
57981   .size video_read_savestate, .-video_read_savestate
57982   .section  .rodata.str1.4,"aMS",%progbits,1
57983   .align  2
57984 .LC0:
57985   .ascii  "\012\000"
57986   .text
57987   .align  2
57988   .global debug_screen_newline
57989   .type debug_screen_newline, %function
57990 debug_screen_newline:
57991   @ args = 0, pretend = 0, frame = 0
57992   @ frame_needed = 0, uses_anonymous_args = 0
57993   @ link register save eliminated.
57994   ldr r3, .L18267
57995   ldr r1, .L18267+4
57996   ldr r0, [r3, #0]
57997   @ lr needed for prologue
57998   b fprintf
57999 .L18268:
58000   .align  2
58001 .L18267:
58002   .word stderr
58003   .word .LC0
58004   .size debug_screen_newline, .-debug_screen_newline
58005   .align  2
58006   .global debug_screen_printf
58007   .type debug_screen_printf, %function
58008 debug_screen_printf:
58009   @ args = 4, pretend = 16, frame = 4
58010   @ frame_needed = 0, uses_anonymous_args = 1
58011   stmfd sp!, {r0, r1, r2, r3}
58012   str lr, [sp, #-4]!
58013   ldr r3, .L18271
58014   sub sp, sp, #4
58015   add ip, sp, #12
58016   ldr r0, [r3, #0]
58017   mov r2, ip
58018   ldr r1, [sp, #8]
58019   str ip, [sp, #0]
58020   bl  vfprintf
58021   add sp, sp, #4
58022   ldr lr, [sp], #4
58023   add sp, sp, #16
58024   bx  lr
58025 .L18272:
58026   .align  2
58027 .L18271:
58028   .word stderr
58029   .size debug_screen_printf, .-debug_screen_printf
58030   .align  2
58031   .global debug_screen_printl
58032   .type debug_screen_printl, %function
58033 debug_screen_printl:
58034   @ args = 4, pretend = 16, frame = 4
58035   @ frame_needed = 0, uses_anonymous_args = 1
58036   stmfd sp!, {r0, r1, r2, r3}
58037   str lr, [sp, #-4]!
58038   sub sp, sp, #4
58039   add r3, sp, #12
58040   ldr r0, [sp, #8]
58041   mov r1, r3
58042   str r3, [sp, #0]
58043   bl  debug_screen_printf
58044   ldr r0, .L18275
58045   bl  debug_screen_printf
58046   add sp, sp, #4
58047   ldr lr, [sp], #4
58048   add sp, sp, #16
58049   bx  lr
58050 .L18276:
58051   .align  2
58052 .L18275:
58053   .word .LC0
58054   .size debug_screen_printl, .-debug_screen_printl
58055   .align  2
58056   .global copy_screen
58057   .type copy_screen, %function
58058 copy_screen:
58059   @ args = 0, pretend = 0, frame = 0
58060   @ frame_needed = 0, uses_anonymous_args = 0
58061   stmfd sp!, {r4, lr}
58062   mov r0, #76800
58063   bl  malloc
58064   ldr r3, .L18279
58065   mov r2, #76800
58066   ldr ip, [r3, #0]
58067   mov r4, r0
58068   ldr r1, [ip, #20]
58069   bl  memcpy
58070   mov r0, r4
58071   ldmfd sp!, {r4, pc}
58072 .L18280:
58073   .align  2
58074 .L18279:
58075   .word screen
58076   .size copy_screen, .-copy_screen
58077   .align  2
58078   .global video_resolution_small
58079   .type video_resolution_small, %function
58080 video_resolution_small:
58081   @ args = 0, pretend = 0, frame = 0
58082   @ frame_needed = 0, uses_anonymous_args = 0
58083   stmfd sp!, {r4, r5, r6, r7, lr}
58084   ldr r4, .L18286
58085   ldr r3, .L18286+4
58086   ldr r2, [r4, #0]
58087   ldr r7, .L18286+8
58088   sub sp, sp, #16
58089   str r2, [r3, #0]
58090   ldr r0, [r7, #0]
58091   bl  SDL_FreeSurface
58092   mov r0, #0
58093   mov r1, r0
58094   bl  SDL_GP2X_AllowGfxMemory
58095   ldr r3, [r4, #0]
58096   ldr r6, .L18286+12
58097   ldr r5, .L18286+16
58098   cmp r3, #0
58099   mov r1, #320
58100   mov r0, r1
58101   mov r2, #16
58102   ldrne r1, [r5, #0]
58103   ldrne r0, [r6, #0]
58104   mov r3, #1
58105   bl  SDL_SetVideoMode
58106   ldr r3, .L18286+20
58107   ldr ip, .L18286+24
58108   str r0, [r3, #0]
58109   ldr r1, [r6, #0]
58110   ldr r2, [r5, #0]
58111   mov r3, #16
58112   mov r4, #0
58113   mov r0, #1
58114   str ip, [sp, #8]
58115   str ip, [sp, #0]
58116   str ip, [sp, #4]
58117   str r4, [sp, #12]
58118   bl  SDL_CreateRGBSurface
58119   str r0, [r7, #0]
58120   mov r0, r4
58121   bl  SDL_ShowCursor
58122   bl  gp2x_load_mmuhack
58123   ldr r1, [r6, #0]
58124   ldr r0, [r5, #0]
58125   ldr r3, .L18286+28
58126   ldr r2, .L18286+32
58127   str r1, [r3, #0]
58128   str r0, [r2, #0]
58129   add sp, sp, #16
58130   ldmfd sp!, {r4, r5, r6, r7, pc}
58131 .L18287:
58132   .align  2
58133 .L18286:
58134   .word screen_scale
58135   .word current_scale
58136   .word screen
58137   .word small_resolution_width
58138   .word small_resolution_height
58139   .word hw_screen
58140   .word 65535
58141   .word resolution_width
58142   .word resolution_height
58143   .size video_resolution_small, .-video_resolution_small
58144   .align  2
58145   .global video_resolution_large
58146   .type video_resolution_large, %function
58147 video_resolution_large:
58148   @ args = 0, pretend = 0, frame = 0
58149   @ frame_needed = 0, uses_anonymous_args = 0
58150   stmfd sp!, {r4, r5, lr}
58151   ldr r3, .L18290
58152   ldr r5, .L18290+4
58153   mov r4, #0
58154   sub sp, sp, #16
58155   str r4, [r3, #0]
58156   ldr r0, [r5, #0]
58157   bl  SDL_FreeSurface
58158   mov r0, r4
58159   mov r1, r4
58160   bl  SDL_GP2X_AllowGfxMemory
58161   mov r1, #240
58162   mov r2, #16
58163   mov r3, #1
58164   mov r0, #320
58165   bl  SDL_SetVideoMode
58166   ldr r3, .L18290+8
58167   ldr ip, .L18290+12
58168   str r0, [r3, #0]
58169   mov r1, #320
58170   mov r2, #240
58171   mov r3, #16
58172   mov r0, #1
58173   str ip, [sp, #8]
58174   str ip, [sp, #0]
58175   str ip, [sp, #4]
58176   str r4, [sp, #12]
58177   bl  SDL_CreateRGBSurface
58178   ldr r3, .L18290+16
58179   mov r2, #320
58180   str r2, [r3, #0]
58181   ldr r3, .L18290+20
58182   mov r1, #240
58183   str r0, [r5, #0]
58184   str r1, [r3, #0]
58185   mov r0, r4
58186   bl  SDL_ShowCursor
58187   add sp, sp, #16
58188   ldmfd sp!, {r4, r5, lr}
58189   b gp2x_load_mmuhack
58190 .L18291:
58191   .align  2
58192 .L18290:
58193   .word current_scale
58194   .word screen
58195   .word hw_screen
58196   .word 65535
58197   .word resolution_width
58198   .word resolution_height
58199   .size video_resolution_large, .-video_resolution_large
58200   .align  2
58201   .global init_video
58202   .type init_video, %function
58203 init_video:
58204   @ args = 0, pretend = 0, frame = 0
58205   @ frame_needed = 0, uses_anonymous_args = 0
58206   stmfd sp!, {r4, lr}
58207   ldr r0, .L18294
58208   sub sp, sp, #16
58209   bl  SDL_Init
58210   mov r0, #0
58211   mov r1, r0
58212   bl  SDL_GP2X_AllowGfxMemory
58213   mov r1, #240
58214   mov r2, #16
58215   mov r3, #1
58216   mov r0, #320
58217   bl  SDL_SetVideoMode
58218   ldr r3, .L18294+4
58219   ldr ip, .L18294+8
58220   str r0, [r3, #0]
58221   mov r4, #0
58222   mov r1, #240
58223   mov r2, #160
58224   mov r3, #16
58225   mov r0, #1
58226   str ip, [sp, #8]
58227   str ip, [sp, #0]
58228   str ip, [sp, #4]
58229   str r4, [sp, #12]
58230   bl  SDL_CreateRGBSurface
58231   ldr r3, .L18294+12
58232   str r0, [r3, #0]
58233   bl  gp2x_load_mmuhack
58234   mov r0, r4
58235   add sp, sp, #16
58236   ldmfd sp!, {r4, lr}
58237   b SDL_ShowCursor
58238 .L18295:
58239   .align  2
58240 .L18294:
58241   .word 1049120
58242   .word hw_screen
58243   .word 65535
58244   .word screen
58245   .size init_video, .-init_video
58246   .align  2
58247   .global flip_screen
58248   .type flip_screen, %function
58249 flip_screen:
58250   @ args = 0, pretend = 0, frame = 16
58251   @ frame_needed = 0, uses_anonymous_args = 0
58252   stmfd sp!, {r4, r5, r6, lr}
58253   ldr r2, .L18304
58254   mov r1, #0
58255   ldr r0, [r2, #0]
58256   sub sp, sp, #16
58257   cmp r0, r1
58258   mov r3, r1
58259   bne .L18297
58260   ldr r2, .L18304+4
58261   ldr r0, .L18304+8
58262   ldr ip, [r2, #0]
58263   ldr r2, [r0, #0]
58264   cmp ip, r2
58265   beq .L18303
58266 .L18297:
58267   ldr r2, .L18304+12
58268   ldr ip, .L18304+16
58269   ldr r0, [r2, #0]
58270   ldr r2, [ip, #0]
58271   bl  SDL_UpperBlit
58272 .L18302:
58273   add sp, sp, #16
58274   ldmfd sp!, {r4, r5, r6, pc}
58275 .L18303:
58276   ldr r2, .L18304+20
58277   ldr r0, .L18304+24
58278   ldr ip, [r2, #0]
58279   ldr r2, [r0, #0]
58280   cmp ip, r2
58281   bne .L18297
58282   ldr ip, .L18304+28
58283   ldr r3, .L18304+12
58284   ldr r1, .L18304+16
58285   ldmia ip, {r4-r5}
58286   str r4, [sp, #8]
58287   str r5, [sp, #12]
58288   ldr r4, .L18304+32
58289   ldr r2, [r1, #0]
58290   ldr r0, [r3, #0]
58291   add r1, sp, #8
58292   mov r3, sp
58293   ldmia r4, {r5-r6}
58294   stmia sp, {r5-r6}
58295   bl  SDL_UpperBlit
58296   b .L18302
58297 .L18305:
58298   .align  2
58299 .L18304:
58300   .word screen_scale
58301   .word resolution_width
58302   .word small_resolution_width
58303   .word screen
58304   .word hw_screen
58305   .word resolution_height
58306   .word small_resolution_height
58307   .word C.626.17650
58308   .word C.627.17651
58309   .size flip_screen, .-flip_screen
58310   .align  2
58311   .global update_screen
58312   .type update_screen, %function
58313 update_screen:
58314   @ args = 0, pretend = 0, frame = 16
58315   @ frame_needed = 0, uses_anonymous_args = 0
58316   stmfd sp!, {r4, r5, r6, lr}
58317   ldr r2, .L18315
58318   mov r1, #0
58319   ldr r0, [r2, #0]
58320   sub sp, sp, #16
58321   cmp r0, r1
58322   mov r3, r1
58323   bne .L18313
58324   ldr r2, .L18315+4
58325   ldr r0, [r2, #0]
58326   cmp r0, r1
58327   bne .L18309
58328   ldr r2, .L18315+8
58329   ldr r0, .L18315+12
58330   ldr ip, [r2, #0]
58331   ldr r2, [r0, #0]
58332   cmp ip, r2
58333   beq .L18314
58334 .L18309:
58335   ldr r2, .L18315+16
58336   ldr ip, .L18315+20
58337   ldr r0, [r2, #0]
58338   ldr r2, [ip, #0]
58339   bl  SDL_UpperBlit
58340 .L18313:
58341   add sp, sp, #16
58342   ldmfd sp!, {r4, r5, r6, pc}
58343 .L18314:
58344   ldr r2, .L18315+24
58345   ldr r0, .L18315+28
58346   ldr ip, [r2, #0]
58347   ldr r2, [r0, #0]
58348   cmp ip, r2
58349   bne .L18309
58350   ldr ip, .L18315+32
58351   ldr r3, .L18315+16
58352   ldr r1, .L18315+20
58353   ldmia ip, {r4-r5}
58354   str r4, [sp, #8]
58355   str r5, [sp, #12]
58356   ldr r4, .L18315+36
58357   ldr r2, [r1, #0]
58358   ldr r0, [r3, #0]
58359   add r1, sp, #8
58360   mov r3, sp
58361   ldmia r4, {r5-r6}
58362   stmia sp, {r5-r6}
58363   bl  SDL_UpperBlit
58364   b .L18313
58365 .L18316:
58366   .align  2
58367 .L18315:
58368   .word skip_next_frame
58369   .word screen_scale
58370   .word resolution_width
58371   .word small_resolution_width
58372   .word screen
58373   .word hw_screen
58374   .word resolution_height
58375   .word small_resolution_height
58376   .word C.626.17650
58377   .word C.627.17651
58378   .size update_screen, .-update_screen
58379   .align  2
58380   .global render_scanline_conditional_tile
58381   .type render_scanline_conditional_tile, %function
58382 render_scanline_conditional_tile:
58383   @ args = 12, pretend = 0, frame = 976
58384   @ frame_needed = 0, uses_anonymous_args = 0
58385   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
58386   ldr r9, .L18810
58387   sub sp, sp, #976
58388   ldr lr, [r9, #0]
58389   mov r6, r0
58390   cmp lr, #0
58391   mov r8, r1
58392   mov sl, r2
58393   mov r7, r3
58394   ldr fp, [sp, #1012]
58395   ldr r0, [sp, #1016]
58396   beq .L18318
58397   tst r3, #31
58398   bne .L18774
58399 .L18318:
58400   mov r3, r0, lsr #6
58401   and r2, r3, #3
58402   ldr r3, .L18810+4
58403   cmp r2, #2
58404   ldrh  ip, [r3, #0]
58405   beq .L18660
58406   cmp r2, #3
58407   beq .L18775
58408 .L18659:
58409   mov r3, ip, asl #16
58410   cmp r6, r8
58411   mov r3, r3, lsr #16
58412   bcs .L18666
58413   rsb r1, r6, r8
58414   add r0, sl, r6, asl #1
58415   mov ip, #0
58416 .L18665:
58417   add ip, ip, #1
58418   cmp ip, r1
58419   strh  r3, [r0], #2  @ movhi
58420   bne .L18665
58421 .L18666:
58422   add sp, sp, #976
58423   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
58424 .L18774:
58425   ldr r1, .L18810+8
58426   ldr r2, .L18810+12
58427   ldrh  r3, [r1, #6]
58428   ldr r1, [r2, r3, asl #2]
58429   cmp r1, #0
58430   bne .L18776
58431 .L18454:
58432   mov r3, r0, lsr #6
58433   and r3, r3, #3
58434   cmp r3, #2
58435   beq .L18488
58436   cmp r3, #3
58437   beq .L18489
58438   cmp r3, #1
58439   beq .L18777
58440 .L18486:
58441   ldr r1, .L18810+24
58442   ands  r3, r7, #16
58443   ldr ip, [r1, #0]
58444   moveq r4, r3
58445   ldreq r2, .L18810+24
58446   beq .L18626
58447   ldr r2, .L18810+24
58448   mov r4, #0
58449 .L18638:
58450   tst ip, #4
58451   mov r3, #1
58452   bne .L18642
58453   ands  r5, r7, r3, asl ip
58454   bne .L18778
58455   add r4, r4, #1
58456   cmp lr, r4
58457   ldr ip, [r2, #4]!
58458   bne .L18638
58459   ldr r3, .L18810+4
58460   cmp r6, r8
58461   ldrh  r3, [r3, #0]
58462   bcs .L18666
58463   rsb r1, r6, r8
58464   add r0, sl, r6, asl #1
58465   mov ip, r5
58466 .L18641:
58467   add ip, ip, #1
58468   cmp ip, r1
58469   strh  r3, [r0], #2  @ movhi
58470   bne .L18641
58471   b .L18666
58472 .L18660:
58473   ldr r2, .L18810+8
58474   ldrh  r3, [r2, #80]
58475   tst r3, #32
58476   beq .L18659
58477   ldrh  r3, [r2, #84]
58478   ldr r1, .L18810+16
58479   and r3, r3, #31
58480   cmp r3, #16
58481   movcs r3, #16
58482   orr r2, ip, ip, asl #16
58483   and r1, r2, r1
58484   rsb r0, r3, #16
58485   rsb r2, r3, r3, asl #6
58486   mul ip, r1, r0
58487   add r3, r3, r2, asl #5
58488   rsb r3, r3, r3, asl #16
58489   ldr r1, .L18810+16
58490   mov r3, r3, lsr #4
58491   and r1, r3, r1
58492   ldr r2, .L18810+16
58493   add r1, r1, ip, lsr #4
58494   and r2, r1, r2
58495   orr ip, r2, r2, lsr #16
58496   b .L18659
58497 .L18775:
58498   ldr r2, .L18810+8
58499   ldrh  r3, [r2, #80]
58500   tst r3, #32
58501   beq .L18659
58502   ldrh  r3, [r2, #84]
58503   ldr r0, .L18810+16
58504   and r3, r3, #31
58505   orr r2, ip, ip, asl #16
58506   rsb r3, r3, #16
58507   and r0, r2, r0
58508   cmp r3, #0
58509   movlt r3, #0
58510   mul r1, r3, r0
58511   ldr r2, .L18810+16
58512   mov r1, r1, lsr #4
58513   and r2, r1, r2
58514   orr ip, r2, r2, lsr #16
58515   b .L18659
58516 .L18776:
58517   mov r3, r0, lsr #6
58518   and r3, r3, #3
58519   cmp r3, #2
58520   beq .L18325
58521   cmp r3, #3
58522   beq .L18326
58523   cmp r3, #1
58524   beq .L18779
58525 .L18323:
58526   ldr r5, .L18810+24
58527   ands  r3, r7, #16
58528   ldr r2, [r5, #0]
58529   moveq r4, r3
58530   ldreq r1, .L18810+24
58531   beq .L18452
58532   ldr r1, .L18810+24
58533   mov r4, #0
58534 .L18465:
58535   tst r2, #4
58536   mov r3, #1
58537   bne .L18780
58538   ands  r3, r7, r3, asl r2
58539   bne .L18781
58540   add r4, r4, #1
58541   cmp lr, r4
58542   ldr r2, [r1, #4]!
58543   bne .L18465
58544   cmp r6, r8
58545   bcs .L18499
58546   add r5, sp, #16
58547   add r2, r5, r6, asl #2
58548   rsb r1, r6, r8
58549   mov r0, r3
58550 .L18468:
58551   add r3, r3, #1
58552   cmp r1, r3
58553   str r0, [r2], #4
58554   bne .L18468
58555 .L18499:
58556   add r0, sp, #16
58557   mov r1, sl
58558   mov r2, r6
58559   mov r3, r8
58560   bl  expand_blend
58561   b .L18666
58562 .L18452:
58563   tst r2, #4
58564   bne .L18451
58565   mov r3, #1
58566   ands  r3, r7, r3, asl r2
58567   bne .L18782
58568 .L18451:
58569   add r4, r4, #1
58570   cmp lr, r4
58571   ldr r2, [r1, #4]!
58572   bne .L18452
58573   cmp r6, r8
58574   bcs .L18499
58575   add r0, sp, #16
58576   mov r3, #0
58577   add r2, r0, r6, asl #2
58578   rsb r1, r6, r8
58579   mov r0, r3
58580 .L18456:
58581   add r3, r3, #1
58582   cmp r3, r1
58583   str r0, [r2], #4
58584   bne .L18456
58585   b .L18499
58586 .L18626:
58587   tst ip, #4
58588   bne .L18625
58589   mov r3, #1
58590   ands  r3, r7, r3, asl ip
58591   bne .L18783
58592 .L18625:
58593   add r4, r4, #1
58594   cmp lr, r4
58595   ldr ip, [r2, #4]!
58596   bne .L18626
58597   ldr r3, .L18810+4
58598   cmp r6, r8
58599   ldrh  r3, [r3, #0]
58600   bcs .L18666
58601   rsb r1, r6, r8
58602   add r0, sl, r6, asl #1
58603   mov ip, #0
58604 .L18629:
58605   add ip, ip, #1
58606   cmp ip, r1
58607   strh  r3, [r0], #2  @ movhi
58608   bne .L18629
58609   b .L18666
58610 .L18777:
58611   tst r7, #32
58612   beq .L18486
58613   ldr r5, .L18810+8
58614   ldr r3, .L18810+20
58615   ldrh  r2, [r5, #82]
58616   and r3, r2, r3
58617   cmp r3, #31
58618   beq .L18486
58619   ldrh  r3, [r5, #80]
58620   tst r3, #63
58621   beq .L18486
58622   tst r3, #16128
58623   beq .L18486
58624   ldr r0, .L18810+24
58625   ands  r3, r7, #16
58626   ldr r2, [r0, #0]
58627   moveq r4, r3
58628   ldreq r1, .L18810+24
58629   beq .L18497
58630   ldr r1, .L18810+24
58631   mov r5, #0
58632 .L18510:
58633   tst r2, #4
58634   mov r3, #1
58635   bne .L18784
58636   ands  r3, r7, r3, asl r2
58637   bne .L18785
58638   add r5, r5, #1
58639   cmp lr, r5
58640   ldr r2, [r1, #4]!
58641   bne .L18510
58642   cmp r6, r8
58643   bcs .L18499
58644   add r5, sp, #16
58645   add r2, r5, r6, asl #2
58646   rsb r1, r6, r8
58647   mov r0, r3
58648 .L18513:
58649   add r3, r3, #1
58650   cmp r1, r3
58651   str r0, [r2], #4
58652   bne .L18513
58653   b .L18499
58654 .L18779:
58655   tst r7, #32
58656   beq .L18323
58657   ldr r3, .L18810+8
58658   ldrh  r2, [r3, #82]
58659   ldr r3, .L18810+20
58660   and r3, r2, r3
58661   cmp r3, #31
58662   beq .L18323
58663   ldr r5, .L18810+8
58664   ldrh  r3, [r5, #80]
58665   tst r3, #63
58666   beq .L18323
58667   tst r3, #16128
58668   beq .L18323
58669   ldr r0, .L18810+24
58670   ands  r3, r7, #16
58671   ldr r2, [r0, #0]
58672   moveq r4, r3
58673   ldreq r1, .L18810+24
58674   beq .L18334
58675   ldr r1, .L18810+24
58676   mov r5, #0
58677 .L18347:
58678   tst r2, #4
58679   mov r3, #1
58680   bne .L18786
58681   ands  r3, r7, r3, asl r2
58682   bne .L18787
58683   add r5, r5, #1
58684   cmp lr, r5
58685   ldr r2, [r1, #4]!
58686   bne .L18347
58687   cmp r6, r8
58688   bcs .L18499
58689   add r5, sp, #16
58690   add r2, r5, r6, asl #2
58691   rsb r1, r6, r8
58692   mov r0, r3
58693 .L18350:
58694   add r3, r3, #1
58695   cmp r3, r1
58696   str r0, [r2], #4
58697   bne .L18350
58698   b .L18499
58699 .L18497:
58700   tst r2, #4
58701   bne .L18496
58702   mov r3, #1
58703   ands  r3, r7, r3, asl r2
58704   bne .L18788
58705 .L18496:
58706   add r4, r4, #1
58707   cmp lr, r4
58708   ldr r2, [r1, #4]!
58709   bne .L18497
58710   cmp r6, r8
58711   bcs .L18499
58712   add r1, sp, #16
58713   mov r3, #0
58714   add r2, r1, r6, asl #2
58715   mov r0, r3
58716   rsb r1, r6, r8
58717 .L18501:
58718   add r3, r3, #1
58719   cmp r3, r1
58720   str r0, [r2], #4
58721   bne .L18501
58722   b .L18499
58723 .L18334:
58724   tst r2, #4
58725   bne .L18333
58726   mov r3, #1
58727   ands  r3, r7, r3, asl r2
58728   bne .L18789
58729 .L18333:
58730   add r4, r4, #1
58731   cmp lr, r4
58732   ldr r2, [r1, #4]!
58733   bne .L18334
58734   cmp r6, r8
58735   bcs .L18499
58736   add r1, sp, #16
58737   mov r3, #0
58738   add r2, r1, r6, asl #2
58739   mov r0, r3
58740   rsb r1, r6, r8
58741 .L18338:
58742   add r3, r3, #1
58743   cmp r3, r1
58744   str r0, [r2], #4
58745   bne .L18338
58746   b .L18499
58747 .L18488:
58748   tst r7, #32
58749   beq .L18486
58750   ldr r5, .L18810+8
58751   ldrh  r3, [r5, #84]
58752   tst r3, #31
58753   beq .L18486
58754   ldrh  r3, [r5, #80]
58755   tst r3, #63
58756   beq .L18486
58757   ldr r0, .L18810+24
58758   ands  r3, r7, #16
58759   ldr r2, [r0, #0]
58760   moveq r4, r3
58761   ldreq r1, .L18810+24
58762   beq .L18537
58763   mov r3, #0
58764   ldr r1, .L18810+24
58765   str r3, [sp, #8]
58766 .L18550:
58767   tst r2, #4
58768   mov r3, #1
58769   bne .L18790
58770   ands  r3, r7, r3, asl r2
58771   bne .L18791
58772   ldr r2, [sp, #8]
58773   add r2, r2, #1
58774   cmp lr, r2
58775   str r2, [sp, #8]
58776   ldr r2, [r1, #4]!
58777   bne .L18550
58778   cmp r6, r8
58779   bcs .L18679
58780   mov r2, r3
58781   rsb r5, r6, r8
58782   add r3, sl, r6, asl #1
58783 .L18553:
58784   add r2, r2, #1
58785   mov r0, #0  @ movhi
58786   cmp r5, r2
58787   strh  r0, [r3], #2  @ movhi
58788   bne .L18553
58789 .L18539:
58790   ldr r3, .L18810+8
58791   ldr r8, .L18810+16
58792   ldrh  r2, [r3, #84]
58793   and r2, r2, #31
58794   cmp r2, #16
58795   movcs r2, #16
58796   rsb r3, r2, r2, asl #6
58797   add r3, r2, r3, asl #5
58798   rsb r3, r3, r3, asl #16
58799   mov r3, r3, lsr #4
58800   cmp r5, #0
58801   and r8, r3, r8
58802   rsb r7, r2, #16
58803   beq .L18666
58804   ldr r9, .L18810+4
58805   add r0, sl, r6, asl #1
58806   mov r4, #0
58807 .L18572:
58808   ldrh  r3, [r0, #0]
58809   ldr lr, .L18810+16
58810   mov r2, r3, asl #23
58811   mov r2, r2, lsr #23
58812   tst r3, #512
58813   mov r2, r2, asl #1
58814   mov r1, r3, asl #23
58815   ldrneh  r3, [r2, r9]
58816   mov ip, lr
58817   orrne r3, r3, r3, asl #16
58818   andne lr, r3, lr
58819   mulne r2, lr, r7
58820   mov r1, r1, lsr #23
58821   mov r1, r1, asl #1
58822   addne r2, r8, r2, lsr #4
58823   andne ip, r2, ip
58824   ldreqh  r1, [r1, r9]
58825   orrne r3, ip, ip, lsr #16
58826   add r4, r4, #1
58827   strneh  r3, [r0, #0]  @ movhi
58828   streqh  r1, [r0, #0]  @ movhi
58829   cmp r5, r4
58830   add r0, r0, #2
58831   bne .L18572
58832   b .L18666
58833 .L18537:
58834   tst r2, #4
58835   bne .L18536
58836   mov r3, #1
58837   ands  r3, r7, r3, asl r2
58838   bne .L18792
58839 .L18536:
58840   add r4, r4, #1
58841   cmp lr, r4
58842   ldr r2, [r1, #4]!
58843   bne .L18537
58844   cmp r6, r8
58845   bcs .L18679
58846   rsb r5, r6, r8
58847   add r2, sl, r6, asl #1
58848   mov r3, #0
58849 .L18541:
58850   add r3, r3, #1
58851   mov r1, #0  @ movhi
58852   cmp r3, r5
58853   strh  r1, [r2], #2  @ movhi
58854   bne .L18541
58855   b .L18539
58856 .L18336:
58857 .L18325:
58858   tst r7, #32
58859   beq .L18323
58860   ldr r5, .L18810+8
58861   ldrh  r3, [r5, #84]
58862   tst r3, #31
58863   beq .L18323
58864   ldrh  r3, [r5, #80]
58865   tst r3, #63
58866   beq .L18323
58867   ldr r0, .L18810+24
58868   ands  r3, r7, #16
58869   ldr r2, [r0, #0]
58870   moveq r4, r3
58871   ldreq r1, .L18810+24
58872   beq .L18375
58873   ldr r1, .L18810+24
58874   mov r5, #0
58875 .L18388:
58876   tst r2, #4
58877   mov r3, #1
58878   bne .L18793
58879   ands  r3, r7, r3, asl r2
58880   bne .L18794
58881   add r5, r5, #1
58882   cmp lr, r5
58883   ldr r2, [r1, #4]!
58884   bne .L18388
58885   cmp r6, r8
58886   bcs .L18377
58887   add r5, sp, #16
58888   add r2, r5, r6, asl #2
58889   rsb r1, r6, r8
58890   mov r0, r3
58891 .L18391:
58892   add r3, r3, #1
58893   cmp r1, r3
58894   str r0, [r2], #4
58895   bne .L18391
58896 .L18377:
58897   add r0, sp, #16
58898   mov r1, sl
58899   mov r2, r6
58900   mov r3, r8
58901   bl  expand_brighten_partial_alpha
58902   b .L18666
58903 .L18375:
58904   tst r2, #4
58905   bne .L18374
58906   mov r3, #1
58907   ands  r3, r7, r3, asl r2
58908   bne .L18795
58909 .L18374:
58910   add r4, r4, #1
58911   cmp lr, r4
58912   ldr r2, [r1, #4]!
58913   bne .L18375
58914   cmp r6, r8
58915   bcs .L18377
58916   add r1, sp, #16
58917   mov r3, #0
58918   add r2, r1, r6, asl #2
58919   mov r0, r3
58920   rsb r1, r6, r8
58921 .L18379:
58922   add r3, r3, #1
58923   cmp r1, r3
58924   str r0, [r2], #4
58925   bne .L18379
58926   b .L18377
58927 .L18489:
58928   tst r7, #32
58929   beq .L18486
58930   ldr r5, .L18810+8
58931   ldrh  r3, [r5, #84]
58932   tst r3, #31
58933   beq .L18486
58934   ldrh  r2, [r5, #80]
58935   tst r2, #63
58936   beq .L18486
58937   ldr r0, .L18810+24
58938   ands  r3, r7, #16
58939   ldr r2, [r0, #0]
58940   moveq r4, r3
58941   ldreq r1, .L18810+24
58942   beq .L18583
58943   mov r3, #0
58944   ldr r1, .L18810+24
58945   str r3, [sp, #12]
58946 .L18596:
58947   tst r2, #4
58948   mov r3, #1
58949   bne .L18796
58950   ands  r3, r7, r3, asl r2
58951   bne .L18797
58952   ldr r2, [sp, #12]
58953   add r2, r2, #1
58954   cmp lr, r2
58955   str r2, [sp, #12]
58956   ldr r2, [r1, #4]!
58957   bne .L18596
58958   cmp r6, r8
58959   bcs .L18682
58960   mov r2, r3
58961   rsb r5, r6, r8
58962   add r3, sl, r6, asl #1
58963 .L18599:
58964   add r2, r2, #1
58965   mov r0, #0  @ movhi
58966   cmp r5, r2
58967   strh  r0, [r3], #2  @ movhi
58968   bne .L18599
58969 .L18585:
58970   ldr r0, .L18810+8
58971   ldrh  r3, [r0, #84]
58972   and r3, r3, #31
58973   rsb r3, r3, #16
58974   cmp r3, #0
58975   movge r7, r3
58976   movlt r7, #0
58977   cmp r5, #0
58978   beq .L18666
58979   ldr r8, .L18810+4
58980   add r0, sl, r6, asl #1
58981   mov r4, #0
58982 .L18618:
58983   ldrh  r3, [r0, #0]
58984   ldr lr, .L18810+16
58985   mov r2, r3, asl #23
58986   mov r2, r2, lsr #23
58987   tst r3, #512
58988   mov r2, r2, asl #1
58989   mov r1, r3, asl #23
58990   ldrneh  r3, [r2, r8]
58991   mov ip, lr
58992   orrne r3, r3, r3, asl #16
58993   andne lr, r3, lr
58994   mulne r2, r7, lr
58995   mov r1, r1, lsr #23
58996   mov r1, r1, asl #1
58997   movne r2, r2, lsr #4
58998   andne ip, r2, ip
58999   ldreqh  r1, [r1, r8]
59000   orrne r3, ip, ip, lsr #16
59001   add r4, r4, #1
59002   strneh  r3, [r0, #0]  @ movhi
59003   streqh  r1, [r0, #0]  @ movhi
59004   cmp r5, r4
59005   add r0, r0, #2
59006   bne .L18618
59007   b .L18666
59008 .L18583:
59009   tst r2, #4
59010   bne .L18582
59011   mov r3, #1
59012   ands  r3, r7, r3, asl r2
59013   bne .L18798
59014 .L18582:
59015   add r4, r4, #1
59016   cmp lr, r4
59017   ldr r2, [r1, #4]!
59018   bne .L18583
59019   cmp r6, r8
59020   bcs .L18682
59021   rsb r5, r6, r8
59022   add r2, sl, r6, asl #1
59023   mov r3, #0
59024 .L18587:
59025   add r3, r3, #1
59026   mov r1, #0  @ movhi
59027   cmp r5, r3
59028   strh  r1, [r2], #2  @ movhi
59029   bne .L18587
59030   b .L18585
59031 .L18326:
59032   tst r7, #32
59033   beq .L18323
59034   ldr r5, .L18810+8
59035   ldrh  r3, [r5, #84]
59036   tst r3, #31
59037   beq .L18323
59038   ldrh  r3, [r5, #80]
59039   tst r3, #63
59040   beq .L18323
59041   ldr r0, .L18810+24
59042   ands  r3, r7, #16
59043   ldr r2, [r0, #0]
59044   moveq r4, r3
59045   ldreq r1, .L18810+24
59046   beq .L18415
59047   ldr r1, .L18810+24
59048   mov r5, #0
59049 .L18428:
59050   tst r2, #4
59051   mov r3, #1
59052   bne .L18799
59053   ands  r3, r7, r3, asl r2
59054   bne .L18800
59055   add r5, r5, #1
59056   cmp lr, r5
59057   ldr r2, [r1, #4]!
59058   bne .L18428
59059   cmp r6, r8
59060   bcs .L18417
59061   add r5, sp, #16
59062   add r2, r5, r6, asl #2
59063   rsb r1, r6, r8
59064   mov r0, r3
59065 .L18431:
59066   add r3, r3, #1
59067   cmp r3, r1
59068   str r0, [r2], #4
59069   bne .L18431
59070 .L18417:
59071   add r0, sp, #16
59072   mov r1, sl
59073   mov r2, r6
59074   mov r3, r8
59075   bl  expand_darken_partial_alpha
59076   b .L18666
59077 .L18415:
59078   tst r2, #4
59079   bne .L18414
59080   mov r3, #1
59081   ands  r3, r7, r3, asl r2
59082   bne .L18801
59083 .L18414:
59084   add r4, r4, #1
59085   cmp lr, r4
59086   ldr r2, [r1, #4]!
59087   bne .L18415
59088   cmp r6, r8
59089   bcs .L18417
59090   add r1, sp, #16
59091   mov r3, #0
59092   add r2, r1, r6, asl #2
59093   mov r0, r3
59094   rsb r1, r6, r8
59095 .L18419:
59096   add r3, r3, #1
59097   cmp r1, r3
59098   str r0, [r2], #4
59099   bne .L18419
59100   b .L18417
59101 .L18780:
59102   cmp r6, r8
59103   addcc r0, sp, #16
59104   movcc r3, #0
59105   addcc r1, r0, r6, asl #2
59106   movcc ip, r3
59107   rsbcc r0, r6, r8
59108   bcs .L18472
59109 .L18474:
59110   add r3, r3, #1
59111   cmp r3, r0
59112   str ip, [r1], #4
59113   bne .L18474
59114 .L18472:
59115   tst fp, #64
59116   bic r0, r2, #4
59117   beq .L18475
59118   mov r1, r6
59119   mov r2, r8
59120   add r3, sp, #16
59121   bl  render_scanline_obj_partial_alpha_1D
59122 .L18477:
59123   ldr r3, [r9, #0]
59124   add r5, r4, #1
59125   cmp r5, r3
59126   bcs .L18499
59127   ldr r2, .L18810+24
59128   and fp, fp, #64
59129   add r4, r2, r4, asl #2
59130   b .L18479
59131 .L18802:
59132   bic ip, ip, #4
59133   cmp fp, #0
59134   mov r1, r6
59135   mov r2, r8
59136   add r3, sp, #16
59137   mov r0, ip
59138   beq .L18482
59139   bl  render_scanline_obj_partial_alpha_1D
59140 .L18484:
59141   ldr r3, [r9, #0]
59142   add r5, r5, #1
59143   cmp r3, r5
59144   add r4, r4, #4
59145   bls .L18499
59146 .L18479:
59147   ldr ip, [r4, #4]
59148   tst ip, #4
59149   bne .L18802
59150   mov r3, #1
59151   ands  r3, r7, r3, asl ip
59152   ldr r3, [sp, #1020]
59153   mov r0, ip
59154   mov r1, r6
59155   add ip, r3, ip, asl #5
59156   mov r2, r8
59157   add r3, sp, #16
59158   beq .L18484
59159   mov lr, pc
59160   ldr pc, [ip, #28]
59161   b .L18484
59162 .L18482:
59163   mov r0, ip
59164   mov r1, r6
59165   mov r2, r8
59166   add r3, sp, #16
59167   bl  render_scanline_obj_partial_alpha_2D
59168   b .L18484
59169 .L18642:
59170   ldr r3, .L18810+4
59171   cmp r6, r8
59172   ldrh  r0, [r3, #0]
59173   bcs .L18645
59174   add r2, sl, r6, asl #1
59175   mov r3, #0
59176   rsb r1, r6, r8
59177 .L18647:
59178   add r3, r3, #1
59179   cmp r3, r1
59180   strh  r0, [r2], #2  @ movhi
59181   bne .L18647
59182 .L18645:
59183   tst fp, #64
59184   bic r0, ip, #4
59185   beq .L18648
59186   mov r1, r6
59187   mov r2, r8
59188   mov r3, sl
59189   bl  render_scanline_obj_normal_1D
59190 .L18650:
59191   ldr r3, [r9, #0]
59192   add r5, r4, #1
59193   cmp r5, r3
59194   bcs .L18666
59195   ldr r0, .L18810+24
59196   and fp, fp, #64
59197   add r4, r0, r4, asl #2
59198   b .L18652
59199 .L18803:
59200   bic ip, ip, #4
59201   cmp fp, #0
59202   mov r1, r6
59203   mov r2, r8
59204   mov r3, sl
59205   mov r0, ip
59206   beq .L18655
59207   bl  render_scanline_obj_normal_1D
59208 .L18657:
59209   ldr r3, [r9, #0]
59210   add r5, r5, #1
59211   cmp r3, r5
59212   add r4, r4, #4
59213   bls .L18666
59214 .L18652:
59215   ldr ip, [r4, #4]
59216   tst ip, #4
59217   bne .L18803
59218   mov r3, #1
59219   ands  r3, r7, r3, asl ip
59220   ldr r1, [sp, #1020]
59221   mov r0, ip
59222   mov r2, r8
59223   add ip, r1, ip, asl #5
59224   mov r3, sl
59225   mov r1, r6
59226   beq .L18657
59227   mov lr, pc
59228   ldr pc, [ip, #4]
59229   b .L18657
59230 .L18655:
59231   mov r0, ip
59232   mov r1, r6
59233   mov r2, r8
59234   mov r3, sl
59235   bl  render_scanline_obj_normal_2D
59236   b .L18657
59237 .L18783:
59238   mov r3, sl
59239   ldr r5, [sp, #1020]
59240   mov r0, ip
59241   mov r1, r6
59242   mov r2, r8
59243   mov lr, pc
59244   ldr pc, [r5, ip, asl #5]
59245   ldr r3, [r9, #0]
59246   add r5, r4, #1
59247   cmp r5, r3
59248   bcs .L18666
59249   ldr r0, .L18810+24
59250   add r4, r0, r4, asl #2
59251   b .L18633
59252 .L18634:
59253   ldr r3, [r9, #0]
59254   add r4, r4, #4
59255   cmp r3, r5
59256   bls .L18666
59257 .L18633:
59258   ldr r2, [r4, #4]
59259   add r5, r5, #1
59260   tst r2, #4
59261   bne .L18634
59262   mov r3, #1
59263   ands  r3, r7, r3, asl r2
59264   ldr r1, [sp, #1020]
59265   mov r0, r2
59266   add ip, r1, r2, asl #5
59267   mov r3, sl
59268   mov r1, r6
59269   mov r2, r8
59270   beq .L18634
59271   mov lr, pc
59272   ldr pc, [ip, #4]
59273   b .L18634
59274 .L18781:
59275   ldr r1, [sp, #1020]
59276   mov r0, r2
59277   add ip, r1, r2, asl #5
59278   add r3, sp, #16
59279   mov r1, r6
59280   mov r2, r8
59281   mov lr, pc
59282   ldr pc, [ip, #24]
59283   b .L18477
59284 .L18778:
59285   mov r0, ip
59286   mov r1, r6
59287   mov r2, r8
59288   mov r3, sl
59289   ldr r5, [sp, #1020]
59290   mov lr, pc
59291   ldr pc, [r5, ip, asl #5]
59292   b .L18650
59293 .L18782:
59294   ldr r1, [sp, #1020]
59295   mov r0, r2
59296   add ip, r1, r2, asl #5
59297   add r3, sp, #16
59298   mov r1, r6
59299   mov r2, r8
59300   mov lr, pc
59301   ldr pc, [ip, #24]
59302   ldr r3, [r9, #0]
59303   add r5, r4, #1
59304   cmp r5, r3
59305   bcs .L18499
59306   ldr r2, .L18810+24
59307   add r4, r2, r4, asl #2
59308   b .L18460
59309 .L18461:
59310   ldr r3, [r9, #0]
59311   add r4, r4, #4
59312   cmp r3, r5
59313   bls .L18499
59314 .L18460:
59315   ldr r2, [r4, #4]
59316   add r5, r5, #1
59317   tst r2, #4
59318   bne .L18461
59319   mov r3, #1
59320   ands  r3, r7, r3, asl r2
59321   ldr r3, [sp, #1020]
59322   mov r0, r2
59323   add ip, r3, r2, asl #5
59324   mov r1, r6
59325   mov r2, r8
59326   add r3, sp, #16
59327   beq .L18461
59328   mov lr, pc
59329   ldr pc, [ip, #28]
59330   b .L18461
59331 .L18648:
59332   mov r1, r6
59333   mov r2, r8
59334   mov r3, sl
59335   bl  render_scanline_obj_normal_2D
59336   b .L18650
59337 .L18475:
59338   mov r1, r6
59339   mov r2, r8
59340   add r3, sp, #16
59341   bl  render_scanline_obj_partial_alpha_2D
59342   b .L18477
59343 .L18792:
59344   ldr r3, [sp, #1020]
59345   mov r0, r2
59346   add ip, r3, r2, asl #5
59347   mov r1, r6
59348   mov r3, sl
59349   mov r2, r8
59350   mov lr, pc
59351   ldr pc, [ip, #16]
59352   ldr r3, [r9, #0]
59353   add r5, r4, #1
59354   cmp r5, r3
59355   bcs .L18679
59356   ldr r0, .L18810+24
59357   add r4, r0, r4, asl #2
59358 .L18545:
59359   ldr r2, [r4, #4]
59360   add r5, r5, #1
59361   tst r2, #4
59362   add r4, r4, #4
59363   bne .L18546
59364   mov r3, #1
59365   ands  r3, r7, r3, asl r2
59366   ldr r1, [sp, #1020]
59367   mov r0, r2
59368   add ip, r1, r2, asl #5
59369   mov r3, sl
59370   mov r1, r6
59371   mov r2, r8
59372   movne lr, pc
59373   ldrne pc, [ip, #20]
59374 .L18546:
59375   ldr r3, [r9, #0]
59376   cmp r3, r5
59377   bhi .L18545
59378 .L18679:
59379   rsb r5, r6, r8
59380   b .L18539
59381 .L18795:
59382   ldr r3, [sp, #1020]
59383   mov r0, r2
59384   add ip, r3, r2, asl #5
59385   mov r1, r6
59386   add r3, sp, #16
59387   mov r2, r8
59388   mov lr, pc
59389   ldr pc, [ip, #24]
59390   ldr r3, [r9, #0]
59391   add r5, r4, #1
59392   cmp r5, r3
59393   bcs .L18377
59394   ldr r0, .L18810+24
59395   add r4, r0, r4, asl #2
59396 .L18383:
59397   ldr r2, [r4, #4]
59398   add r5, r5, #1
59399   tst r2, #4
59400   bne .L18384
59401   mov r3, #1
59402   ands  r3, r7, r3, asl r2
59403   ldr r1, [sp, #1020]
59404   mov r0, r2
59405   add ip, r1, r2, asl #5
59406   add r3, sp, #16
59407   mov r1, r6
59408   mov r2, r8
59409   movne lr, pc
59410   ldrne pc, [ip, #28]
59411 .L18384:
59412   ldr r3, [r9, #0]
59413   add r4, r4, #4
59414   cmp r3, r5
59415   bhi .L18383
59416   b .L18377
59417 .L18791:
59418   ldr r1, [sp, #1020]
59419   mov r0, r2
59420   add ip, r1, r2, asl #5
59421   mov r3, sl
59422   mov r1, r6
59423   mov r2, r8
59424   mov lr, pc
59425   ldr pc, [ip, #16]
59426   rsb r5, r6, r8
59427 .L18562:
59428   ldr r2, [sp, #8]
59429   ldr r3, [r9, #0]
59430   add r4, r2, #1
59431   cmp r4, r3
59432   bcs .L18539
59433   ldr r3, .L18810+24
59434   and fp, fp, #64
59435   add r3, r3, r2, asl #2
59436   mov r0, r3
59437   str r3, [sp, #0]
59438   b .L18564
59439 .L18804:
59440   bic ip, ip, #4
59441   cmp fp, #0
59442   mov r1, r6
59443   mov r2, r8
59444   mov r3, sl
59445   mov r0, ip
59446   beq .L18567
59447   bl  render_scanline_obj_color16_1D
59448 .L18569:
59449   ldr r2, [sp, #0]
59450   ldr r3, [r9, #0]
59451   add r4, r4, #1
59452   add r2, r2, #4
59453   cmp r3, r4
59454   str r2, [sp, #0]
59455   bls .L18539
59456   ldr r0, [sp, #0]
59457 .L18564:
59458   ldr ip, [r0, #4]
59459   tst ip, #4
59460   bne .L18804
59461   mov r3, #1
59462   ands  r3, r7, r3, asl ip
59463   ldr r1, [sp, #1020]
59464   mov r0, ip
59465   mov r2, r8
59466   add ip, r1, ip, asl #5
59467   mov r3, sl
59468   mov r1, r6
59469   beq .L18569
59470   mov lr, pc
59471   ldr pc, [ip, #20]
59472   b .L18569
59473 .L18567:
59474   mov r0, ip
59475   mov r1, r6
59476   mov r2, r8
59477   mov r3, sl
59478   bl  render_scanline_obj_color16_2D
59479   b .L18569
59480 .L18811:
59481   .align  2
59482 .L18810:
59483   .word layer_count
59484   .word palette_ram_converted
59485   .word io_registers
59486   .word obj_alpha_count
59487   .word 132184095
59488   .word 7967
59489   .word layer_order
59490 .L18790:
59491   cmp r6, r8
59492   rsbcs r5, r6, r8
59493   bcs .L18557
59494   add r1, sl, r6, asl #1
59495   mov r3, #0
59496   rsb r5, r6, r8
59497 .L18559:
59498   add r3, r3, #1
59499   mov r0, #0  @ movhi
59500   cmp r5, r3
59501   strh  r0, [r1], #2  @ movhi
59502   bne .L18559
59503 .L18557:
59504   tst fp, #64
59505   bic r0, r2, #4
59506   beq .L18560
59507   mov r1, r6
59508   mov r2, r8
59509   mov r3, sl
59510   bl  render_scanline_obj_color16_1D
59511   b .L18562
59512 .L18794:
59513   ldr r1, [sp, #1020]
59514   mov r0, r2
59515   add ip, r1, r2, asl #5
59516   add r3, sp, #16
59517   mov r1, r6
59518   mov r2, r8
59519   mov lr, pc
59520   ldr pc, [ip, #24]
59521 .L18400:
59522   ldr r3, [r9, #0]
59523   add r4, r5, #1
59524   cmp r4, r3
59525   bcs .L18377
59526   ldr r2, .L18810+24
59527   and fp, fp, #64
59528   add r5, r2, r5, asl #2
59529   b .L18402
59530 .L18805:
59531   bic ip, ip, #4
59532   cmp fp, #0
59533   mov r1, r6
59534   mov r2, r8
59535   add r3, sp, #16
59536   mov r0, ip
59537   beq .L18405
59538   bl  render_scanline_obj_partial_alpha_1D
59539 .L18407:
59540   ldr r3, [r9, #0]
59541   add r4, r4, #1
59542   cmp r3, r4
59543   add r5, r5, #4
59544   bls .L18377
59545 .L18402:
59546   ldr ip, [r5, #4]
59547   tst ip, #4
59548   bne .L18805
59549   mov r3, #1
59550   ands  r3, r7, r3, asl ip
59551   ldr r3, [sp, #1020]
59552   mov r0, ip
59553   mov r1, r6
59554   add ip, r3, ip, asl #5
59555   mov r2, r8
59556   add r3, sp, #16
59557   beq .L18407
59558   mov lr, pc
59559   ldr pc, [ip, #28]
59560   b .L18407
59561 .L18405:
59562   mov r0, ip
59563   mov r1, r6
59564   mov r2, r8
59565   add r3, sp, #16
59566   bl  render_scanline_obj_partial_alpha_2D
59567   b .L18407
59568 .L18793:
59569   cmp r6, r8
59570   addcc r0, sp, #16
59571   movcc r3, #0
59572   addcc r1, r0, r6, asl #2
59573   movcc ip, r3
59574   rsbcc r0, r6, r8
59575   bcs .L18395
59576 .L18397:
59577   add r3, r3, #1
59578   cmp r0, r3
59579   str ip, [r1], #4
59580   bne .L18397
59581 .L18395:
59582   tst fp, #64
59583   bic r0, r2, #4
59584   beq .L18398
59585   mov r1, r6
59586   mov r2, r8
59587   add r3, sp, #16
59588   bl  render_scanline_obj_partial_alpha_1D
59589   b .L18400
59590 .L18801:
59591   ldr r3, [sp, #1020]
59592   mov r0, r2
59593   add ip, r3, r2, asl #5
59594   mov r1, r6
59595   add r3, sp, #16
59596   mov r2, r8
59597   mov lr, pc
59598   ldr pc, [ip, #24]
59599   ldr r3, [r9, #0]
59600   add r5, r4, #1
59601   cmp r5, r3
59602   bcs .L18417
59603   ldr r0, .L18810+24
59604   add r4, r0, r4, asl #2
59605 .L18423:
59606   ldr r2, [r4, #4]
59607   add r5, r5, #1
59608   tst r2, #4
59609   bne .L18424
59610   mov r3, #1
59611   ands  r3, r7, r3, asl r2
59612   ldr r1, [sp, #1020]
59613   mov r0, r2
59614   add ip, r1, r2, asl #5
59615   add r3, sp, #16
59616   mov r1, r6
59617   mov r2, r8
59618   movne lr, pc
59619   ldrne pc, [ip, #28]
59620 .L18424:
59621   ldr r3, [r9, #0]
59622   add r4, r4, #4
59623   cmp r3, r5
59624   bhi .L18423
59625   b .L18417
59626 .L18560:
59627   mov r1, r6
59628   mov r2, r8
59629   mov r3, sl
59630   bl  render_scanline_obj_color16_2D
59631   b .L18562
59632 .L18398:
59633   mov r1, r6
59634   mov r2, r8
59635   add r3, sp, #16
59636   bl  render_scanline_obj_partial_alpha_2D
59637   b .L18400
59638 .L18798:
59639   ldr r3, [sp, #1020]
59640   mov r0, r2
59641   add ip, r3, r2, asl #5
59642   mov r1, r6
59643   mov r3, sl
59644   mov r2, r8
59645   mov lr, pc
59646   ldr pc, [ip, #16]
59647   ldr r3, [r9, #0]
59648   add r5, r4, #1
59649   cmp r5, r3
59650   bcs .L18682
59651   ldr r0, .L18810+24
59652   add r4, r0, r4, asl #2
59653 .L18591:
59654   ldr r2, [r4, #4]
59655   add r5, r5, #1
59656   tst r2, #4
59657   add r4, r4, #4
59658   bne .L18592
59659   mov r3, #1
59660   ands  r3, r7, r3, asl r2
59661   ldr r1, [sp, #1020]
59662   mov r0, r2
59663   add ip, r1, r2, asl #5
59664   mov r3, sl
59665   mov r1, r6
59666   mov r2, r8
59667   movne lr, pc
59668   ldrne pc, [ip, #20]
59669 .L18592:
59670   ldr r3, [r9, #0]
59671   cmp r3, r5
59672   bhi .L18591
59673 .L18682:
59674   rsb r5, r6, r8
59675   b .L18585
59676 .L18797:
59677   ldr r1, [sp, #1020]
59678   mov r0, r2
59679   add ip, r1, r2, asl #5
59680   mov r3, sl
59681   mov r1, r6
59682   mov r2, r8
59683   mov lr, pc
59684   ldr pc, [ip, #16]
59685   rsb r5, r6, r8
59686 .L18608:
59687   ldr r2, [sp, #12]
59688   ldr r3, [r9, #0]
59689   add r4, r2, #1
59690   cmp r4, r3
59691   bcs .L18585
59692   ldr r3, .L18810+24
59693   and fp, fp, #64
59694   add r3, r3, r2, asl #2
59695   str r3, [sp, #4]
59696   b .L18610
59697 .L18806:
59698   bic ip, ip, #4
59699   cmp fp, #0
59700   mov r1, r6
59701   mov r2, r8
59702   mov r3, sl
59703   mov r0, ip
59704   beq .L18613
59705   bl  render_scanline_obj_color16_1D
59706 .L18615:
59707   ldr r2, [sp, #4]
59708   ldr r3, [r9, #0]
59709   add r4, r4, #1
59710   add r2, r2, #4
59711   cmp r3, r4
59712   str r2, [sp, #4]
59713   bls .L18585
59714 .L18610:
59715   ldr r0, [sp, #4]
59716   ldr ip, [r0, #4]
59717   tst ip, #4
59718   bne .L18806
59719   mov r3, #1
59720   ands  r3, r7, r3, asl ip
59721   ldr r1, [sp, #1020]
59722   mov r0, ip
59723   mov r2, r8
59724   add ip, r1, ip, asl #5
59725   mov r3, sl
59726   mov r1, r6
59727   beq .L18615
59728   mov lr, pc
59729   ldr pc, [ip, #20]
59730   b .L18615
59731 .L18613:
59732   mov r0, ip
59733   mov r1, r6
59734   mov r2, r8
59735   mov r3, sl
59736   bl  render_scanline_obj_color16_2D
59737   b .L18615
59738 .L18796:
59739   cmp r6, r8
59740   rsbcs r5, r6, r8
59741   bcs .L18603
59742   add r1, sl, r6, asl #1
59743   mov r3, #0
59744   rsb r5, r6, r8
59745 .L18605:
59746   add r3, r3, #1
59747   mov r0, #0  @ movhi
59748   cmp r3, r5
59749   strh  r0, [r1], #2  @ movhi
59750   bne .L18605
59751 .L18603:
59752   tst fp, #64
59753   bic r0, r2, #4
59754   beq .L18606
59755   mov r1, r6
59756   mov r2, r8
59757   mov r3, sl
59758   bl  render_scanline_obj_color16_1D
59759   b .L18608
59760 .L18789:
59761   ldr r3, [sp, #1020]
59762   mov r0, r2
59763   add ip, r3, r2, asl #5
59764   mov r1, r6
59765   add r3, sp, #16
59766   mov r2, r8
59767   mov lr, pc
59768   ldr pc, [ip, #8]
59769   ldr r3, [r9, #0]
59770   add r5, r4, #1
59771   cmp r5, r3
59772   bcs .L18499
59773   ldr r0, .L18810+24
59774   add r4, r0, r4, asl #2
59775   b .L18342
59776 .L18343:
59777   ldr r3, [r9, #0]
59778   add r4, r4, #4
59779   cmp r3, r5
59780   bls .L18499
59781 .L18342:
59782   ldr r2, [r4, #4]
59783   add r5, r5, #1
59784   tst r2, #4
59785   bne .L18343
59786   mov r3, #1
59787   ands  r3, r7, r3, asl r2
59788   ldr r1, [sp, #1020]
59789   mov r0, r2
59790   add ip, r1, r2, asl #5
59791   add r3, sp, #16
59792   mov r1, r6
59793   mov r2, r8
59794   beq .L18343
59795   mov lr, pc
59796   ldr pc, [ip, #12]
59797   b .L18343
59798 .L18787:
59799   ldr r1, [sp, #1020]
59800   mov r0, r2
59801   add ip, r1, r2, asl #5
59802   add r3, sp, #16
59803   mov r1, r6
59804   mov r2, r8
59805   mov lr, pc
59806   ldr pc, [ip, #8]
59807 .L18359:
59808   ldr r3, [r9, #0]
59809   add r4, r5, #1
59810   cmp r4, r3
59811   bcs .L18499
59812   ldr r2, .L18810+24
59813   and fp, fp, #64
59814   add r5, r2, r5, asl #2
59815   b .L18361
59816 .L18807:
59817   bic ip, ip, #4
59818   cmp fp, #0
59819   mov r1, r6
59820   mov r2, r8
59821   add r3, sp, #16
59822   mov r0, ip
59823   beq .L18364
59824   bl  render_scanline_obj_alpha_obj_1D
59825 .L18366:
59826   ldr r3, [r9, #0]
59827   add r4, r4, #1
59828   cmp r3, r4
59829   add r5, r5, #4
59830   bls .L18499
59831 .L18361:
59832   ldr ip, [r5, #4]
59833   tst ip, #4
59834   bne .L18807
59835   mov r3, #1
59836   ands  r3, r7, r3, asl ip
59837   ldr r3, [sp, #1020]
59838   mov r0, ip
59839   mov r1, r6
59840   add ip, r3, ip, asl #5
59841   mov r2, r8
59842   add r3, sp, #16
59843   beq .L18366
59844   mov lr, pc
59845   ldr pc, [ip, #12]
59846   b .L18366
59847 .L18364:
59848   mov r0, ip
59849   mov r1, r6
59850   mov r2, r8
59851   add r3, sp, #16
59852   bl  render_scanline_obj_alpha_obj_2D
59853   b .L18366
59854 .L18786:
59855   cmp r6, r8
59856   addcc r0, sp, #16
59857   movcc r3, #0
59858   addcc r1, r0, r6, asl #2
59859   movcc ip, r3
59860   rsbcc r0, r6, r8
59861   bcs .L18354
59862 .L18356:
59863   add r3, r3, #1
59864   cmp r3, r0
59865   str ip, [r1], #4
59866   bne .L18356
59867 .L18354:
59868   tst fp, #64
59869   bic r0, r2, #4
59870   beq .L18357
59871   mov r1, r6
59872   mov r2, r8
59873   add r3, sp, #16
59874   bl  render_scanline_obj_alpha_obj_1D
59875   b .L18359
59876 .L18784:
59877   cmp r6, r8
59878   addcc r0, sp, #16
59879   movcc r3, #0
59880   addcc r1, r0, r6, asl #2
59881   movcc ip, r3
59882   rsbcc r0, r6, r8
59883   bcs .L18517
59884 .L18519:
59885   add r3, r3, #1
59886   cmp r3, r0
59887   str ip, [r1], #4
59888   bne .L18519
59889 .L18517:
59890   tst fp, #64
59891   bic r0, r2, #4
59892   beq .L18520
59893   mov r1, r6
59894   mov r2, r8
59895   add r3, sp, #16
59896   bl  render_scanline_obj_alpha_obj_1D
59897 .L18522:
59898   ldr r3, [r9, #0]
59899   add r4, r5, #1
59900   cmp r4, r3
59901   bcs .L18499
59902   ldr r2, .L18810+24
59903   and fp, fp, #64
59904   add r5, r2, r5, asl #2
59905   b .L18524
59906 .L18808:
59907   bic ip, ip, #4
59908   cmp fp, #0
59909   mov r1, r6
59910   mov r2, r8
59911   add r3, sp, #16
59912   mov r0, ip
59913   beq .L18527
59914   bl  render_scanline_obj_alpha_obj_1D
59915 .L18529:
59916   ldr r3, [r9, #0]
59917   add r4, r4, #1
59918   cmp r3, r4
59919   add r5, r5, #4
59920   bls .L18499
59921 .L18524:
59922   ldr ip, [r5, #4]
59923   tst ip, #4
59924   bne .L18808
59925   mov r3, #1
59926   ands  r3, r7, r3, asl ip
59927   ldr r3, [sp, #1020]
59928   mov r0, ip
59929   mov r1, r6
59930   add ip, r3, ip, asl #5
59931   mov r2, r8
59932   add r3, sp, #16
59933   beq .L18529
59934   mov lr, pc
59935   ldr pc, [ip, #12]
59936   b .L18529
59937 .L18788:
59938   ldr r3, [sp, #1020]
59939   mov r0, r2
59940   add ip, r3, r2, asl #5
59941   mov r1, r6
59942   add r3, sp, #16
59943   mov r2, r8
59944   mov lr, pc
59945   ldr pc, [ip, #8]
59946   ldr r3, [r9, #0]
59947   add r5, r4, #1
59948   cmp r5, r3
59949   bcs .L18499
59950   ldr r0, .L18810+24
59951   add r4, r0, r4, asl #2
59952   b .L18505
59953 .L18506:
59954   ldr r3, [r9, #0]
59955   add r4, r4, #4
59956   cmp r3, r5
59957   bls .L18499
59958 .L18505:
59959   ldr r2, [r4, #4]
59960   add r5, r5, #1
59961   tst r2, #4
59962   bne .L18506
59963   mov r3, #1
59964   ands  r3, r7, r3, asl r2
59965   ldr r1, [sp, #1020]
59966   mov r0, r2
59967   add ip, r1, r2, asl #5
59968   add r3, sp, #16
59969   mov r1, r6
59970   mov r2, r8
59971   beq .L18506
59972   mov lr, pc
59973   ldr pc, [ip, #12]
59974   b .L18506
59975 .L18527:
59976   mov r0, ip
59977   mov r1, r6
59978   mov r2, r8
59979   add r3, sp, #16
59980   bl  render_scanline_obj_alpha_obj_2D
59981   b .L18529
59982 .L18520:
59983   mov r1, r6
59984   mov r2, r8
59985   add r3, sp, #16
59986   bl  render_scanline_obj_alpha_obj_2D
59987   b .L18522
59988 .L18357:
59989   mov r1, r6
59990   mov r2, r8
59991   add r3, sp, #16
59992   bl  render_scanline_obj_alpha_obj_2D
59993   b .L18359
59994 .L18800:
59995   ldr r1, [sp, #1020]
59996   mov r0, r2
59997   add ip, r1, r2, asl #5
59998   add r3, sp, #16
59999   mov r1, r6
60000   mov r2, r8
60001   mov lr, pc
60002   ldr pc, [ip, #24]
60003 .L18440:
60004   ldr r3, [r9, #0]
60005   add r4, r5, #1
60006   cmp r4, r3
60007   bcs .L18417
60008   ldr r2, .L18810+24
60009   and fp, fp, #64
60010   add r5, r2, r5, asl #2
60011   b .L18442
60012 .L18809:
60013   bic ip, ip, #4
60014   cmp fp, #0
60015   mov r1, r6
60016   mov r2, r8
60017   add r3, sp, #16
60018   mov r0, ip
60019   beq .L18445
60020   bl  render_scanline_obj_partial_alpha_1D
60021 .L18447:
60022   ldr r3, [r9, #0]
60023   add r4, r4, #1
60024   cmp r3, r4
60025   add r5, r5, #4
60026   bls .L18417
60027 .L18442:
60028   ldr ip, [r5, #4]
60029   tst ip, #4
60030   bne .L18809
60031   mov r3, #1
60032   ands  r3, r7, r3, asl ip
60033   ldr r3, [sp, #1020]
60034   mov r0, ip
60035   mov r1, r6
60036   add ip, r3, ip, asl #5
60037   mov r2, r8
60038   add r3, sp, #16
60039   beq .L18447
60040   mov lr, pc
60041   ldr pc, [ip, #28]
60042   b .L18447
60043 .L18445:
60044   mov r0, ip
60045   mov r1, r6
60046   mov r2, r8
60047   add r3, sp, #16
60048   bl  render_scanline_obj_partial_alpha_2D
60049   b .L18447
60050 .L18799:
60051   cmp r6, r8
60052   addcc r0, sp, #16
60053   movcc r3, #0
60054   addcc r1, r0, r6, asl #2
60055   movcc ip, r3
60056   rsbcc r0, r6, r8
60057   bcs .L18435
60058 .L18437:
60059   add r3, r3, #1
60060   cmp r3, r0
60061   str ip, [r1], #4
60062   bne .L18437
60063 .L18435:
60064   tst fp, #64
60065   bic r0, r2, #4
60066   beq .L18438
60067   mov r1, r6
60068   mov r2, r8
60069   add r3, sp, #16
60070   bl  render_scanline_obj_partial_alpha_1D
60071   b .L18440
60072 .L18785:
60073   ldr r1, [sp, #1020]
60074   mov r0, r2
60075   add ip, r1, r2, asl #5
60076   add r3, sp, #16
60077   mov r1, r6
60078   mov r2, r8
60079   mov lr, pc
60080   ldr pc, [ip, #8]
60081   b .L18522
60082 .L18606:
60083   mov r1, r6
60084   mov r2, r8
60085   mov r3, sl
60086   bl  render_scanline_obj_color16_2D
60087   b .L18608
60088 .L18438:
60089   mov r1, r6
60090   mov r2, r8
60091   add r3, sp, #16
60092   bl  render_scanline_obj_partial_alpha_2D
60093   b .L18440
60094   .size render_scanline_conditional_tile, .-render_scanline_conditional_tile
60095   .align  2
60096   .global render_scanline_obj_copy_tile_2D
60097   .type render_scanline_obj_copy_tile_2D, %function
60098 render_scanline_obj_copy_tile_2D:
60099   @ args = 0, pretend = 0, frame = 596
60100   @ frame_needed = 0, uses_anonymous_args = 0
60101   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
60102   ldr r5, .L19654
60103   add r0, r0, r0, asl #2
60104   ldrh  r4, [r5, #6]
60105   ldr ip, .L19654+4
60106   add r0, r4, r0, asl #5
60107   ldrh  r6, [r5, #0]
60108   sub sp, sp, #608
60109   ldr ip, [ip, r0, asl #2]
60110   str r6, [sp, #56]
60111   str ip, [sp, #80]
60112   cmp ip, #0
60113   ldr ip, [sp, #56]
60114   ldrh  r6, [r5, #74]
60115   str r4, [sp, #76]
60116   ldr lr, .L19654+8
60117   and r4, ip, #7
60118   ldr ip, .L19654+12
60119   ldrh  r5, [r5, #80]
60120   add r4, ip, r4, asl #7
60121   add r0, lr, r0, asl #7
60122   mov r6, r6, lsr #8
60123   str r4, [sp, #64]
60124   str r0, [sp, #84]
60125   str r1, [sp, #28]
60126   str r2, [sp, #24]
60127   str r3, [sp, #20]
60128   str r6, [sp, #60]
60129   str r5, [sp, #52]
60130   beq .L19604
60131   rsb r0, r1, r2
60132   add lr, r3, r1, asl #1
60133   mov r1, #0
60134   mov r2, r1
60135   str lr, [sp, #104]
60136   str r0, [sp, #124]
60137   str r1, [sp, #72]
60138   b .L18815
60139 .L18819:
60140   ldr lr, [sp, #72]
60141   ldr r0, [sp, #80]
60142   add lr, lr, #1
60143   cmp r0, lr
60144   str lr, [sp, #72]
60145   beq .L19604
60146   ldr r2, [sp, #72]
60147 .L18815:
60148   ldr r4, [sp, #84]
60149   ldr r5, .L19654+16
60150   ldrb  r3, [r2, r4]  @ zero_extendqisi2
60151   ldr lr, .L19654+20
60152   mov r3, r3, asl #3
60153   ldrh  r6, [r3, r5]
60154   add r3, r3, r5
60155   ldrh  r7, [r3, #2]
60156   mov r9, r6, lsr #12
60157   and r2, r9, #12
60158   orr sl, r2, r7, lsr #14
60159   mov r1, r7, asl #23
60160   ldr fp, [lr, sl, asl #2]
60161   ands  ip, r6, #512
60162   mov r8, r1, asr #23
60163   ldr r0, [sp, #24]
60164   ldr r5, [sp, #28]
60165   addne r1, r8, fp, asl #1
60166   addeq r1, r8, fp
60167   ldr r2, [sp, #28]
60168   cmp r8, r5
60169   movcs r5, r8
60170   cmp r1, r0
60171   movcs r1, r0
60172   str ip, [sp, #32]
60173   ldrh  ip, [r3, #4]
60174   cmp r0, r5
60175   movls r3, #0
60176   movhi r3, #1
60177   cmp r2, r1
60178   movcs r3, #0
60179   cmp r3, #0
60180   beq .L18819
60181   ldr lr, [sp, #56]
60182   add r4, sp, #128
60183   str lr, [sp, #0]
60184   ldr lr, [sp, #52]
60185   mov r0, r5
60186   str lr, [sp, #4]
60187   ldr lr, [sp, #64]
60188   ldr r3, [sp, #60]
60189   mov r2, r4
60190   str ip, [sp, #12]
60191   str lr, [sp, #8]
60192   bl  render_scanline_conditional_tile
60193   and r0, r6, #255
60194   cmp r0, #160
60195   ldr r3, .L19654+24
60196   add r5, r4, r5, asl #1
60197   subgt r0, r0, #256
60198   tst r6, #256
60199   str r5, [sp, #68]
60200   ldr ip, [sp, #12]
60201   ldr sl, [r3, sl, asl #2]
60202   beq .L18823
60203   tst r6, #8192
60204   beq .L18825
60205   mov r3, r7, lsr #4
60206   ldr r2, .L19654+16
60207   and r3, r3, #992
60208   add r3, r3, r2
60209   ldr r1, [sp, #32]
60210   ldrh  r4, [r3, #30]
60211   cmp r1, #0
60212   add r1, sl, sl, lsr #31
60213   ldrh  r5, [r3, #6]
60214   add r2, fp, fp, lsr #31
60215   str r4, [sp, #40]
60216   mov r4, r1, asr #1
60217   ldr r1, [sp, #28]
60218   mov lr, r2, asr #1
60219   str r5, [sp, #36]
60220   moveq r9, fp
60221   moveq r7, lr
60222   moveq r5, r4
60223   movne r9, fp, asl #1
60224   movne r7, lr, asl #1
60225   movne r5, r4, asl #1
60226   cmp r8, r1
60227   ldrh  r2, [r3, #14]
60228   ldrh  r6, [r3, #22]
60229   bge .L18830
60230   rsb r1, r8, r1
60231   rsb r9, r1, r9
60232   cmp r9, #0
60233   ble .L18819
60234   ldr r8, [sp, #28]
60235   rsb r7, r1, r7
60236 .L18830:
60237   ldr r1, [sp, #24]
60238   add r3, r8, r9
60239   cmp r3, r1
60240   bge .L19632
60241 .L18833:
60242   add r0, r0, r5
60243   ldr r5, [sp, #36]
60244   mov r2, r2, asl #16
60245   mov r3, r5, asl #16
60246   ldr r5, [sp, #40]
60247   mov r3, r3, asr #16
60248   mov r1, r5, asl #16
60249   str r3, [sp, #88]
60250   mov r5, r2, asr #16
60251   ldr r3, [sp, #76]
60252   ldr r2, [sp, #20]
60253   mov lr, lr, asl #8
60254   cmp r6, #0
60255   str lr, [sp, #112]
60256   mov r1, r1, asr #16
60257   mov lr, r4, asl #8
60258   add r8, r2, r8, asl #1
60259   rsb r0, r0, r3
60260   beq .L19633
60261   mov r3, ip, asl #22
60262   ldr r2, .L19654+28
60263   mov r3, r3, lsr #22
60264   add r3, r2, r3, asl #5
60265   cmp r9, #0
60266   str r3, [sp, #120]
60267   ble .L18819
60268   mov r3, r6, asl #16
60269   mul r2, r0, r1
60270   mov r6, r3, asr #16
60271   mul r3, r0, r5
60272   ldr r0, [sp, #88]
60273   mul r1, r6, r7
60274   mul r0, r7, r0
60275   ldr ip, [sp, #112]
60276   rsb r3, r0, r3
60277   rsb r2, r1, r2
60278   add r5, ip, r3
60279   add r4, lr, r2
60280   mov ip, r4, asr #8
60281   mov lr, r5, asr #8
60282   cmp lr, fp
60283   cmpcc ip, sl
60284   movcs r3, #0
60285   movcc r3, #1
60286   movcs r7, r3
60287   bcc .L19634
60288 .L18851:
60289   ldr lr, [sp, #88]
60290   ldr r0, [sp, #68]
60291   add r7, r7, #1
60292   add r5, r5, lr
60293   add r4, r4, r6
60294   add r0, r0, #2
60295   cmp r9, r7
60296   mov lr, r5, asr #8
60297   mov ip, r4, asr #8
60298   add r8, r8, #2
60299   str r0, [sp, #68]
60300   beq .L18819
60301   cmp lr, fp
60302   cmpcc ip, sl
60303   bcs .L18851
60304   cmp ip, sl
60305   cmpcc lr, fp
60306   bcs .L18819
60307 .L19635:
60308   ldr r1, [sp, #88]
60309   and r3, ip, #7
60310   mov r2, lr, asr #3
60311   mov r3, r3, asl #3
60312   add r5, r5, r1
60313   add r3, r3, r2, asl #6
60314   mov r1, ip, asr #3
60315   ldr r2, [sp, #120]
60316   add r3, r3, r1, asl #10
60317   add r3, r3, r2
60318   and r0, lr, #7
60319   ldrb  r2, [r3, r0]  @ zero_extendqisi2
60320   ldr r0, [sp, #68]
60321   cmp r2, #0
60322   ldrne r3, [sp, #68]
60323   add r7, r7, #1
60324   ldrneh  r3, [r3, #0]
60325   add r4, r4, r6
60326   strneh  r3, [r8, #0]  @ movhi
60327   add r0, r0, #2
60328   cmp r9, r7
60329   mov ip, r4, asr #8
60330   mov lr, r5, asr #8
60331   add r8, r8, #2
60332   str r0, [sp, #68]
60333   ble .L18819
60334 .L18854:
60335   cmp ip, sl
60336   cmpcc lr, fp
60337   bcc .L19635
60338   b .L18819
60339 .L18823:
60340   ldr r4, [sp, #76]
60341   tst r7, #8192
60342   rsb r0, r0, r4
60343   rsbne r3, r0, sl
60344   subne r0, r3, #1
60345   mov r2, r7, asl #19
60346   and r3, r9, #2
60347   orr r3, r3, r2, lsr #31
60348   cmp r3, #3
60349   ldrls pc, [pc, r3, asl #2]
60350   b .L18819
60351   .p2align 2
60352 .L18903:
60353   .word .L18899
60354   .word .L18900
60355   .word .L18901
60356   .word .L18902
60357 .L19604:
60358   add sp, sp, #608
60359   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
60360 .L18825:
60361   mov r3, r7, lsr #4
60362   ldr r2, .L19654+16
60363   and r3, r3, #992
60364   add r3, r3, r2
60365   ldr r1, [sp, #32]
60366   ldrh  r4, [r3, #30]
60367   cmp r1, #0
60368   add r1, sl, sl, lsr #31
60369   ldrh  r5, [r3, #6]
60370   add r2, fp, fp, lsr #31
60371   str r4, [sp, #48]
60372   mov r4, r1, asr #1
60373   ldr r1, [sp, #28]
60374   mov lr, r2, asr #1
60375   str r5, [sp, #44]
60376   moveq r6, fp
60377   moveq r7, lr
60378   moveq r5, r4
60379   movne r6, fp, asl #1
60380   movne r7, lr, asl #1
60381   movne r5, r4, asl #1
60382   cmp r8, r1
60383   ldrh  r2, [r3, #14]
60384   ldrh  r9, [r3, #22]
60385   bge .L18862
60386   rsb r1, r8, r1
60387   rsb r6, r1, r6
60388   cmp r6, #0
60389   ble .L18819
60390   ldr r8, [sp, #28]
60391   rsb r7, r1, r7
60392 .L18862:
60393   ldr r1, [sp, #24]
60394   add r3, r8, r6
60395   cmp r3, r1
60396   bge .L19636
60397 .L18865:
60398   add r0, r0, r5
60399   ldr r5, [sp, #44]
60400   mov r2, r2, asl #16
60401   mov r3, r5, asl #16
60402   mov r3, r3, asr #16
60403   mov r2, r2, asr #16
60404   ldr r5, [sp, #48]
60405   str r3, [sp, #92]
60406   str r2, [sp, #96]
60407   ldr r3, [sp, #76]
60408   ldr r2, [sp, #20]
60409   mov lr, lr, asl #8
60410   mov r1, r5, asl #16
60411   cmp r9, #0
60412   str lr, [sp, #108]
60413   mov r1, r1, asr #16
60414   mov lr, r4, asl #8
60415   add r8, r2, r8, asl #1
60416   rsb r0, r0, r3
60417   beq .L19637
60418   mov r3, ip, asl #22
60419   ldr r2, .L19654+28
60420   mov r3, r3, lsr #22
60421   add r3, r2, r3, asl #5
60422   cmp r6, #0
60423   str r3, [sp, #116]
60424   ble .L18819
60425   mov r3, r9, asl #16
60426   mov r3, r3, asr #16
60427   str r3, [sp, #100]
60428   ldr r3, [sp, #96]
60429   mul r2, r0, r1
60430   mul r3, r0, r3
60431   ldr r0, [sp, #92]
60432   ldr r1, [sp, #100]
60433   mul r0, r7, r0
60434   mul r1, r7, r1
60435   rsb r3, r0, r3
60436   ldr r0, [sp, #108]
60437   rsb r2, r1, r2
60438   add r5, r0, r3
60439   add r4, lr, r2
60440   mov ip, r4, asr #8
60441   mov lr, r5, asr #8
60442   cmp lr, fp
60443   cmpcc ip, sl
60444   movcs r3, #0
60445   movcc r3, #1
60446   movcs r7, r3
60447   bcc .L19638
60448 .L18886:
60449   ldr r3, [sp, #68]
60450   ldr r1, [sp, #92]
60451   ldr r2, [sp, #100]
60452   add r7, r7, #1
60453   add r5, r5, r1
60454   add r4, r4, r2
60455   add r3, r3, #2
60456   cmp r6, r7
60457   mov lr, r5, asr #8
60458   mov ip, r4, asr #8
60459   add r8, r8, #2
60460   str r3, [sp, #68]
60461   beq .L18819
60462   cmp lr, fp
60463   cmpcc ip, sl
60464   bcs .L18886
60465   cmp ip, sl
60466   cmpcc lr, fp
60467   bcs .L18819
60468 .L19639:
60469   mov r3, lr, asr #1
60470   ldr r1, [sp, #116]
60471   and r3, r3, #3
60472   and r0, ip, #7
60473   str r3, [sp, #16]
60474   ldr r3, [sp, #116]
60475   add r0, r1, r0, asl #2
60476   and r1, ip, #7
60477   mov r2, lr, asr #1
60478   add r1, r3, r1, asl #2
60479   mov r3, ip, asr #3
60480   and r9, r2, #3
60481   mov r3, r3, asl #10
60482   mov r2, lr, asr #3
60483   tst lr, #1
60484   add r3, r3, r2, asl #5
60485   add r2, r0, r3
60486   movne ip, r9
60487   add r0, r1, r3
60488   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
60489   ldrneb  r3, [r2, ip]  @ zero_extendqisi2
60490   andeq r0, r3, #15
60491   movne r0, r3, lsr #4
60492   cmp r0, #0
60493   ldrne r2, [sp, #68]
60494   ldr lr, [sp, #92]
60495   ldrneh  r2, [r2, #0]
60496   ldr r3, [sp, #68]
60497   ldr r1, [sp, #100]
60498   add r7, r7, #1
60499   strneh  r2, [r8, #0]  @ movhi
60500   add r5, r5, lr
60501   add r4, r4, r1
60502   add r3, r3, #2
60503   cmp r6, r7
60504   mov lr, r5, asr #8
60505   mov ip, r4, asr #8
60506   add r8, r8, #2
60507   str r3, [sp, #68]
60508   ble .L18819
60509 .L18889:
60510   cmp ip, sl
60511   cmpcc lr, fp
60512   bcc .L19639
60513   b .L18819
60514 .L19636:
60515   rsb r6, r8, r1
60516   cmp r6, #0
60517   bgt .L18865
60518   b .L18819
60519 .L19632:
60520   rsb r9, r8, r1
60521   cmp r9, #0
60522   bgt .L18833
60523   b .L18819
60524 .L19633:
60525   mla r3, r0, r1, lr
60526   mov r1, r3, asr #8
60527   cmp r1, sl
60528   bcs .L18819
60529   mov r3, ip, asl #22
60530   mov r2, r1, lsr #3
60531   mov r3, r3, lsr #22
60532   add r3, r3, r2, asl #5
60533   and r1, r1, #7
60534   add r1, r1, r3, asl #2
60535   ldr r3, .L19654+28
60536   cmp r9, #0
60537   add r4, r3, r1, asl #3
60538   ble .L18819
60539   ldr r2, [sp, #88]
60540   mul r3, r0, r5
60541   mul r2, r7, r2
60542   ldr r5, [sp, #112]
60543   rsb r3, r2, r3
60544   add r0, r5, r3
60545   mov ip, r0, asr #8
60546   cmp ip, fp
60547   movcs lr, r6
60548   bcc .L19640
60549 .L18841:
60550   ldr r1, [sp, #68]
60551   ldr r6, [sp, #88]
60552   add lr, lr, #1
60553   add r0, r0, r6
60554   add r1, r1, #2
60555   cmp r9, lr
60556   mov ip, r0, asr #8
60557   add r8, r8, #2
60558   str r1, [sp, #68]
60559   beq .L18819
60560   cmp ip, fp
60561   bcs .L18841
60562   b .L19618
60563 .L19637:
60564   mla r3, r0, r1, lr
60565   mov r1, r3, asr #8
60566   cmp r1, sl
60567   bcs .L18819
60568   mov r3, ip, asl #22
60569   mov r2, r1, lsr #3
60570   mov r3, r3, lsr #22
60571   add r3, r3, r2, asl #5
60572   and r1, r1, #7
60573   add r1, r1, r3, asl #3
60574   ldr r3, .L19654+28
60575   cmp r6, #0
60576   add r5, r3, r1, asl #2
60577   ble .L18819
60578   ldr r3, [sp, #96]
60579   ldr r2, [sp, #92]
60580   mul r3, r0, r3
60581   mul r2, r7, r2
60582   ldr r4, [sp, #108]
60583   rsb r3, r2, r3
60584   add r0, r4, r3
60585   mov ip, r0, asr #8
60586   cmp ip, fp
60587   movcs r1, r9
60588   bcc .L19641
60589 .L18873:
60590   ldr ip, [sp, #92]
60591   ldr lr, [sp, #68]
60592   add r1, r1, #1
60593   add r0, r0, ip
60594   add lr, lr, #2
60595   cmp r6, r1
60596   mov ip, r0, asr #8
60597   add r8, r8, #2
60598   str lr, [sp, #68]
60599   beq .L18819
60600   cmp ip, fp
60601   bcs .L18873
60602   b .L19620
60603 .L18902:
60604   subs  r2, fp, #8
60605   submi r2, fp, #1
60606   mov r3, r0, lsr #3
60607   mov r2, r2, asr #3
60608   mov r1, ip, asl #22
60609   add r2, r2, r3, asl #4
60610   mov r1, r1, lsr #22
60611   and r3, r0, #7
60612   add r1, r1, r2, asl #1
60613   add r3, r3, r1, asl #2
60614   ldr lr, [sp, #28]
60615   mov r0, r3, asl #3
60616   ldr r3, .L19654+28
60617   cmp r8, lr
60618   add r7, r0, r3
60619   blt .L19642
60620   ldr r4, [sp, #24]
60621   add r3, r8, fp
60622   cmp r4, r3
60623   bhi .L19540
60624   rsb r9, r8, r4
60625   cmp r9, #0
60626   ble .L18819
60627   ldr r5, [sp, #20]
60628   movs  sl, r9, lsr #3
60629   add r1, r5, r8, asl #1
60630   beq .L19543
60631   ldr r3, .L19654+32
60632   ldr r4, [sp, #68]
60633   add r0, r0, r3
60634   mov lr, r1
60635   mov r5, r7
60636   mov r2, #0
60637 .L19545:
60638   ldr ip, [r0, #68]
60639   cmp ip, #0
60640   beq .L19546
60641   tst ip, #255
60642   ldrneh  r6, [r4, #6]
60643   mov r3, ip, lsr #8
60644   strneh  r6, [lr, #6]  @ movhi
60645   tst r3, #255
60646   ldrneh  r3, [r4, #4]
60647   strneh  r3, [lr, #4]  @ movhi
60648   mov r3, ip, lsr #16
60649   tst r3, #255
60650   ldrneh  r6, [r4, #2]
60651   strneh  r6, [lr, #2]  @ movhi
60652   movs  ip, ip, lsr #24
60653   ldrneh  ip, [r4, #0]
60654   strneh  ip, [lr, #0]  @ movhi
60655 .L19546:
60656   ldr ip, [r5, #0]
60657   cmp ip, #0
60658   beq .L19555
60659   tst ip, #255
60660   ldrneh  r3, [r4, #14]
60661   strneh  r3, [lr, #14] @ movhi
60662   mov r3, ip, lsr #8
60663   tst r3, #255
60664   ldrneh  r6, [r4, #12]
60665   mov r3, ip, lsr #16
60666   strneh  r6, [lr, #12] @ movhi
60667   tst r3, #255
60668   ldrneh  r3, [r4, #10]
60669   strneh  r3, [lr, #10] @ movhi
60670   movs  ip, ip, lsr #24
60671   ldrneh  r6, [r4, #8]
60672   strneh  r6, [lr, #8]  @ movhi
60673 .L19555:
60674   add r2, r2, #1
60675   cmp sl, r2
60676   sub r5, r5, #64
60677   add lr, lr, #16
60678   add r4, r4, #16
60679   sub r0, r0, #64
60680   bne .L19545
60681   ldr ip, [sp, #68]
60682   mov r3, sl, asl #4
60683   rsb r2, sl, sl, asl #26
60684   add ip, ip, r3
60685   add r1, r1, r3
60686   add r7, r7, r2, asl #6
60687   str ip, [sp, #68]
60688 .L19543:
60689   ands  ip, r9, #7
60690   beq .L18819
60691   cmp ip, #3
60692   ldrls r2, [r7, #4]
60693   bls .L19578
60694   ldr r2, [r7, #4]
60695   cmp r2, #0
60696   beq .L19568
60697   tst r2, #255
60698   ldrne lr, [sp, #68]
60699   mov r3, r2, lsr #8
60700   ldrneh  lr, [lr, #6]
60701   strneh  lr, [r1, #6]  @ movhi
60702   tst r3, #255
60703   ldrne r0, [sp, #68]
60704   mov r3, r2, lsr #16
60705   ldrneh  r0, [r0, #4]
60706   strneh  r0, [r1, #4]  @ movhi
60707   tst r3, #255
60708   ldrne r3, [sp, #68]
60709   ldrneh  r3, [r3, #2]
60710   strneh  r3, [r1, #2]  @ movhi
60711   movs  r2, r2, lsr #24
60712   ldrne r4, [sp, #68]
60713   ldrneh  r4, [r4, #0]
60714   strneh  r4, [r1, #0]  @ movhi
60715 .L19568:
60716   subs  ip, ip, #4
60717   ldr r2, [r7, #0]
60718   beq .L18819
60719   ldr r5, [sp, #68]
60720   add r1, r1, #8
60721   add r5, r5, #8
60722   str r5, [sp, #68]
60723 .L19578:
60724   mov r3, #0
60725 .L19579:
60726   movs  r6, r2, lsr #24
60727   ldrne lr, [sp, #68]
60728   mov r0, r3, asl #1
60729   ldrneh  lr, [r0, lr]
60730   add r3, r3, #1
60731   strneh  lr, [r0, r1]  @ movhi
60732   cmp ip, r3
60733   mov r2, r2, asl #8
60734   bhi .L19579
60735   b .L18819
60736 .L18899:
60737   mov r3, ip, asl #22
60738   mov r2, r0, lsr #3
60739   mov r3, r3, lsr #22
60740   add r3, r3, r2, asl #5
60741   and r1, r0, #7
60742   ldr r5, [sp, #28]
60743   add r1, r1, r3, asl #3
60744   ldr r3, .L19654+28
60745   cmp r8, r5
60746   add r0, r3, r1, asl #2
60747   blt .L19643
60748   ldr r4, [sp, #24]
60749   add r3, r8, fp
60750   cmp r4, r3
60751   bhi .L18985
60752   rsb r7, r8, r4
60753   cmp r7, #0
60754   ble .L18819
60755   ldr r6, [sp, #20]
60756   movs  r5, r7, lsr #3
60757   add r1, r6, r8, asl #1
60758   beq .L18988
60759   ldr lr, [sp, #68]
60760   mov ip, r1
60761   mov r4, r0
60762   mov r2, #0
60763 .L18990:
60764   ldr r3, [r4, #0]
60765   cmp r3, #0
60766   beq .L18991
60767   tst r3, #15
60768   ldrneh  r6, [lr, #0]
60769   strneh  r6, [ip, #0]  @ movhi
60770   tst r3, #240
60771   ldrneh  r6, [lr, #2]
60772   strneh  r6, [ip, #2]  @ movhi
60773   tst r3, #3840
60774   ldrneh  r6, [lr, #4]
60775   strneh  r6, [ip, #4]  @ movhi
60776   tst r3, #61440
60777   ldrneh  r6, [lr, #6]
60778   strneh  r6, [ip, #6]  @ movhi
60779   tst r3, #983040
60780   ldrneh  r6, [lr, #8]
60781   strneh  r6, [ip, #8]  @ movhi
60782   tst r3, #15728640
60783   ldrneh  r6, [lr, #10]
60784   strneh  r6, [ip, #10] @ movhi
60785   tst r3, #251658240
60786   ldrneh  r6, [lr, #12]
60787   strneh  r6, [ip, #12] @ movhi
60788   movs  r3, r3, lsr #28
60789   ldrneh  r3, [lr, #14]
60790   strneh  r3, [ip, #14] @ movhi
60791 .L18991:
60792   add r2, r2, #1
60793   cmp r2, r5
60794   add r4, r4, #32
60795   add ip, ip, #16
60796   add lr, lr, #16
60797   bne .L18990
60798   ldr r4, [sp, #68]
60799   mov r3, r5, asl #4
60800   add r4, r4, r3
60801   add r1, r1, r3
60802   add r0, r0, r5, asl #5
60803   str r4, [sp, #68]
60804 .L18988:
60805   ands  ip, r7, #7
60806   beq .L18819
60807   ldr r0, [r0, #0]
60808   mov r2, #0
60809 .L19010:
60810   tst r0, #15
60811   ldrne r5, [sp, #68]
60812   mov r3, r2, asl #1
60813   ldrneh  r5, [r3, r5]
60814   add r2, r2, #1
60815   strneh  r5, [r3, r1]  @ movhi
60816   cmp r2, ip
60817   mov r0, r0, lsr #4
60818   bne .L19010
60819   b .L18819
60820 .L18900:
60821   mov r3, ip, asl #22
60822   mov r1, r0, lsr #3
60823   subs  r2, fp, #8
60824   mov r3, r3, lsr #22
60825   submi r2, fp, #1
60826   add r3, r3, r1, asl #5
60827   add r3, r3, r2, asr #3
60828   and r1, r0, #7
60829   ldr lr, [sp, #28]
60830   add r1, r1, r3, asl #3
60831   ldr r3, .L19654+28
60832   cmp r8, lr
60833   add r0, r3, r1, asl #2
60834   blt .L19644
60835   ldr lr, [sp, #24]
60836   add r3, r8, fp
60837   cmp lr, r3
60838   bhi .L19115
60839   rsb r7, r8, lr
60840   cmp r7, #0
60841   ble .L18819
60842   ldr r2, [sp, #20]
60843   movs  r3, r7, lsr #3
60844   add r1, r2, r8, asl #1
60845   beq .L19118
60846   ldr lr, [sp, #68]
60847   mov ip, r1
60848   mov r4, r0
60849   mov r5, #0
60850 .L19120:
60851   ldr r2, [r4, #0]
60852   cmp r2, #0
60853   beq .L19121
60854   tst r2, #15
60855   ldrneh  r6, [lr, #14]
60856   strneh  r6, [ip, #14] @ movhi
60857   tst r2, #240
60858   ldrneh  r6, [lr, #12]
60859   strneh  r6, [ip, #12] @ movhi
60860   tst r2, #3840
60861   ldrneh  r6, [lr, #10]
60862   strneh  r6, [ip, #10] @ movhi
60863   tst r2, #61440
60864   ldrneh  r6, [lr, #8]
60865   strneh  r6, [ip, #8]  @ movhi
60866   tst r2, #983040
60867   ldrneh  r6, [lr, #6]
60868   strneh  r6, [ip, #6]  @ movhi
60869   tst r2, #15728640
60870   ldrneh  r6, [lr, #4]
60871   strneh  r6, [ip, #4]  @ movhi
60872   tst r2, #251658240
60873   ldrneh  r6, [lr, #2]
60874   strneh  r6, [ip, #2]  @ movhi
60875   movs  r2, r2, lsr #28
60876   ldrneh  r2, [lr, #0]
60877   strneh  r2, [ip, #0]  @ movhi
60878 .L19121:
60879   add r5, r5, #1
60880   cmp r5, r3
60881   sub r4, r4, #32
60882   add ip, ip, #16
60883   add lr, lr, #16
60884   bne .L19120
60885   ldr r4, [sp, #68]
60886   rsb r2, r3, r3, asl #27
60887   mov r3, r3, asl #4
60888   add r4, r4, r3
60889   add r1, r1, r3
60890   add r0, r0, r2, asl #5
60891   str r4, [sp, #68]
60892 .L19118:
60893   ands  ip, r7, #7
60894   beq .L18819
60895   ldr r0, [r0, #0]
60896   mov r2, #0
60897 .L19140:
60898   movs  r5, r0, lsr #28
60899   ldrne r6, [sp, #68]
60900   mov r3, r2, asl #1
60901   ldrneh  r6, [r3, r6]
60902   add r2, r2, #1
60903   strneh  r6, [r3, r1]  @ movhi
60904   cmp r2, ip
60905   mov r0, r0, asl #4
60906   bne .L19140
60907   b .L18819
60908 .L18901:
60909   mov r2, ip, asl #22
60910   mov r1, r0, lsr #3
60911   mov r2, r2, lsr #22
60912   add r2, r2, r1, asl #5
60913   and r3, r0, #7
60914   add r3, r3, r2, asl #2
60915   ldr r1, [sp, #28]
60916   mov r0, r3, asl #3
60917   ldr r3, .L19654+28
60918   cmp r8, r1
60919   add r2, r0, r3
60920   blt .L19645
60921   ldr r4, [sp, #24]
60922   add r3, r8, fp
60923   cmp r4, r3
60924   bhi .L19320
60925   rsb r9, r8, r4
60926   cmp r9, #0
60927   ble .L18819
60928   ldr r5, [sp, #20]
60929   movs  sl, r9, lsr #3
60930   add r1, r5, r8, asl #1
60931   beq .L19323
60932   ldr r3, .L19654+36
60933   ldr r4, [sp, #68]
60934   add r0, r0, r3
60935   mov lr, r1
60936   mov r5, r2
60937   mov r7, #0
60938 .L19325:
60939   ldr ip, [r5, #0]
60940   cmp ip, #0
60941   beq .L19326
60942   tst ip, #255
60943   ldrneh  r6, [r4, #0]
60944   mov r3, ip, lsr #8
60945   strneh  r6, [lr, #0]  @ movhi
60946   tst r3, #255
60947   ldrneh  r3, [r4, #2]
60948   strneh  r3, [lr, #2]  @ movhi
60949   mov r3, ip, lsr #16
60950   tst r3, #255
60951   ldrneh  r6, [r4, #4]
60952   strneh  r6, [lr, #4]  @ movhi
60953   movs  ip, ip, lsr #24
60954   ldrneh  ip, [r4, #6]
60955   strneh  ip, [lr, #6]  @ movhi
60956 .L19326:
60957   ldr ip, [r0, #-60]
60958   cmp ip, #0
60959   beq .L19335
60960   tst ip, #255
60961   ldrneh  r3, [r4, #8]
60962   strneh  r3, [lr, #8]  @ movhi
60963   mov r3, ip, lsr #8
60964   tst r3, #255
60965   ldrneh  r6, [r4, #10]
60966   mov r3, ip, lsr #16
60967   strneh  r6, [lr, #10] @ movhi
60968   tst r3, #255
60969   ldrneh  r3, [r4, #12]
60970   strneh  r3, [lr, #12] @ movhi
60971   movs  ip, ip, lsr #24
60972   ldrneh  r6, [r4, #14]
60973   strneh  r6, [lr, #14] @ movhi
60974 .L19335:
60975   add r7, r7, #1
60976   cmp r7, sl
60977   add r5, r5, #64
60978   add lr, lr, #16
60979   add r4, r4, #16
60980   add r0, r0, #64
60981   bne .L19325
60982   ldr ip, [sp, #68]
60983   mov r3, sl, asl #4
60984   add ip, ip, r3
60985   add r1, r1, r3
60986   add r2, r2, sl, asl #6
60987   str ip, [sp, #68]
60988 .L19323:
60989   ands  ip, r9, #7
60990   beq .L18819
60991   cmp ip, #3
60992   ldrls r3, [r2, #0]
60993   bls .L19358
60994   ldr r0, [r2, #0]
60995   cmp r0, #0
60996   beq .L19348
60997   tst r0, #255
60998   ldrne lr, [sp, #68]
60999   mov r3, r0, lsr #8
61000   ldrneh  lr, [lr, #0]
61001   strneh  lr, [r1, #0]  @ movhi
61002   tst r3, #255
61003   ldrne r3, [sp, #68]
61004   ldrneh  r3, [r3, #2]
61005   strneh  r3, [r1, #2]  @ movhi
61006   mov r3, r0, lsr #16
61007   tst r3, #255
61008   ldrne r4, [sp, #68]
61009   ldrneh  r4, [r4, #4]
61010   strneh  r4, [r1, #4]  @ movhi
61011   movs  r0, r0, lsr #24
61012   ldrne r5, [sp, #68]
61013   ldrneh  r5, [r5, #6]
61014   strneh  r5, [r1, #6]  @ movhi
61015 .L19348:
61016   subs  ip, ip, #4
61017   ldr r3, [r2, #4]
61018   beq .L18819
61019   ldr r6, [sp, #68]
61020   add r1, r1, #8
61021   add r6, r6, #8
61022   str r6, [sp, #68]
61023 .L19358:
61024   mov r2, #0
61025 .L19359:
61026   tst r3, #255
61027   ldrne lr, [sp, #68]
61028   mov r0, r2, asl #1
61029   ldrneh  lr, [r0, lr]
61030   add r2, r2, #1
61031   strneh  lr, [r0, r1]  @ movhi
61032   cmp ip, r2
61033   mov r3, r3, lsr #8
61034   bhi .L19359
61035   b .L18819
61036 .L19645:
61037   rsb r0, r8, r1
61038   rsb lr, r0, fp
61039   cmp lr, #0
61040   ble .L18819
61041   ldr r4, [sp, #24]
61042   add r3, r8, fp
61043   cmp r4, r3
61044   bhi .L19167
61045   mov r3, r0, lsr #3
61046   ands  ip, r0, #7
61047   add r8, r2, r3, asl #6
61048   bne .L19169
61049   ldr r7, [sp, #124]
61050   ldr r5, [sp, #104]
61051 .L19171:
61052   movs  r4, r7, lsr #3
61053   beq .L19229
61054   ldr r0, [sp, #68]
61055   mov r1, r5
61056   mov ip, r8
61057   mov lr, #0
61058 .L19231:
61059   ldr r2, [ip, #0]
61060   cmp r2, #0
61061   beq .L19232
61062   tst r2, #255
61063   ldrneh  r3, [r0, #0]
61064   strneh  r3, [r1, #0]  @ movhi
61065   mov r3, r2, lsr #8
61066   tst r3, #255
61067   ldrneh  r6, [r0, #2]
61068   mov r3, r2, lsr #16
61069   strneh  r6, [r1, #2]  @ movhi
61070   tst r3, #255
61071   ldrneh  r3, [r0, #4]
61072   strneh  r3, [r1, #4]  @ movhi
61073   movs  r2, r2, lsr #24
61074   ldrneh  r6, [r0, #6]
61075   strneh  r6, [r1, #6]  @ movhi
61076 .L19232:
61077   ldr r2, [ip, #4]
61078   cmp r2, #0
61079   beq .L19241
61080   tst r2, #255
61081   ldrneh  r3, [r0, #8]
61082   strneh  r3, [r1, #8]  @ movhi
61083   mov r3, r2, lsr #8
61084   tst r3, #255
61085   ldrneh  r6, [r0, #10]
61086   mov r3, r2, lsr #16
61087   strneh  r6, [r1, #10] @ movhi
61088   tst r3, #255
61089   ldrneh  r3, [r0, #12]
61090   strneh  r3, [r1, #12] @ movhi
61091   movs  r2, r2, lsr #24
61092   ldrneh  r6, [r0, #14]
61093   strneh  r6, [r1, #14] @ movhi
61094 .L19241:
61095   add lr, lr, #1
61096   cmp lr, r4
61097   add ip, ip, #64
61098   add r1, r1, #16
61099   add r0, r0, #16
61100   bne .L19231
61101   ldr ip, [sp, #68]
61102   mov r3, r4, asl #4
61103   add ip, ip, r3
61104   add r5, r5, r3
61105   add r8, r8, r4, asl #6
61106   str ip, [sp, #68]
61107 .L19229:
61108   ands  r0, r7, #7
61109   beq .L18819
61110   cmp r0, #3
61111   ldrls r3, [r8, #0]
61112   bls .L19264
61113   ldr r2, [r8, #0]
61114   cmp r2, #0
61115   beq .L19254
61116   tst r2, #255
61117   ldrne lr, [sp, #68]
61118   mov r3, r2, lsr #8
61119   ldrneh  lr, [lr, #0]
61120   strneh  lr, [r5, #0]  @ movhi
61121   tst r3, #255
61122   ldrne r1, [sp, #68]
61123   mov r3, r2, lsr #16
61124   ldrneh  r1, [r1, #2]
61125   strneh  r1, [r5, #2]  @ movhi
61126   tst r3, #255
61127   ldrne r3, [sp, #68]
61128   ldrneh  r3, [r3, #4]
61129   strneh  r3, [r5, #4]  @ movhi
61130   movs  r2, r2, lsr #24
61131   ldrne r4, [sp, #68]
61132   ldrneh  r4, [r4, #6]
61133   strneh  r4, [r5, #6]  @ movhi
61134 .L19254:
61135   subs  r0, r0, #4
61136   ldr r3, [r8, #4]
61137   beq .L18819
61138   ldr r6, [sp, #68]
61139   add r5, r5, #8
61140   add r6, r6, #8
61141   str r6, [sp, #68]
61142 .L19264:
61143   mov r2, #0
61144 .L19265:
61145   tst r3, #255
61146   ldrne ip, [sp, #68]
61147   mov r1, r2, asl #1
61148   ldrneh  ip, [r1, ip]
61149   add r2, r2, #1
61150   strneh  ip, [r1, r5]  @ movhi
61151   cmp r0, r2
61152   mov r3, r3, lsr #8
61153   bhi .L19265
61154   b .L18819
61155 .L19655:
61156   .align  2
61157 .L19654:
61158   .word io_registers
61159   .word obj_priority_count
61160   .word obj_priority_list
61161   .word tile_mode_renderers
61162   .word oam_ram
61163   .word obj_width_table
61164   .word obj_height_table
61165   .word vram+65536
61166   .word vram+65472
61167   .word vram+65600
61168 .L19644:
61169   rsb ip, r8, lr
61170   rsb r1, ip, fp
61171   cmp r1, #0
61172   ble .L18819
61173   ldr r2, [sp, #24]
61174   add r3, r8, fp
61175   cmp r2, r3
61176   bhi .L19037
61177   mov r3, ip, lsr #3
61178   ands  r4, ip, #7
61179   sub r0, r0, r3, asl #5
61180   bne .L19039
61181   ldr r7, [sp, #124]
61182   ldr r1, [sp, #104]
61183 .L19041:
61184   movs  r3, r7, lsr #3
61185   beq .L19058
61186   ldr lr, [sp, #68]
61187   mov ip, r1
61188   mov r4, r0
61189   mov r5, #0
61190 .L19060:
61191   ldr r2, [r4, #0]
61192   cmp r2, #0
61193   beq .L19061
61194   tst r2, #15
61195   ldrneh  r6, [lr, #14]
61196   strneh  r6, [ip, #14] @ movhi
61197   tst r2, #240
61198   ldrneh  r6, [lr, #12]
61199   strneh  r6, [ip, #12] @ movhi
61200   tst r2, #3840
61201   ldrneh  r6, [lr, #10]
61202   strneh  r6, [ip, #10] @ movhi
61203   tst r2, #61440
61204   ldrneh  r6, [lr, #8]
61205   strneh  r6, [ip, #8]  @ movhi
61206   tst r2, #983040
61207   ldrneh  r6, [lr, #6]
61208   strneh  r6, [ip, #6]  @ movhi
61209   tst r2, #15728640
61210   ldrneh  r6, [lr, #4]
61211   strneh  r6, [ip, #4]  @ movhi
61212   tst r2, #251658240
61213   ldrneh  r6, [lr, #2]
61214   strneh  r6, [ip, #2]  @ movhi
61215   movs  r2, r2, lsr #28
61216   ldrneh  r2, [lr, #0]
61217   strneh  r2, [ip, #0]  @ movhi
61218 .L19061:
61219   add r5, r5, #1
61220   cmp r5, r3
61221   sub r4, r4, #32
61222   add ip, ip, #16
61223   add lr, lr, #16
61224   bne .L19060
61225   ldr r4, [sp, #68]
61226   rsb r2, r3, r3, asl #27
61227   mov r3, r3, asl #4
61228   add r4, r4, r3
61229   add r1, r1, r3
61230   add r0, r0, r2, asl #5
61231   str r4, [sp, #68]
61232 .L19058:
61233   ands  ip, r7, #7
61234   beq .L18819
61235   ldr r0, [r0, #0]
61236   mov r2, #0
61237 .L19080:
61238   movs  r5, r0, lsr #28
61239   ldrne r6, [sp, #68]
61240   mov r3, r2, asl #1
61241   ldrneh  r6, [r3, r6]
61242   add r2, r2, #1
61243   strneh  r6, [r3, r1]  @ movhi
61244   cmp r2, ip
61245   mov r0, r0, asl #4
61246   bne .L19080
61247   b .L18819
61248 .L19643:
61249   rsb ip, r8, r5
61250   rsb lr, ip, fp
61251   cmp lr, #0
61252   ble .L18819
61253   ldr r6, [sp, #24]
61254   add r3, r8, fp
61255   cmp r6, r3
61256   bhi .L18907
61257   mov r3, ip, lsr #3
61258   mov r1, r3, asl #5
61259   ands  r3, ip, #7
61260   add r4, r0, r1
61261   bne .L18909
61262   ldr r7, [sp, #124]
61263   ldr r5, [sp, #104]
61264 .L18911:
61265   movs  lr, r7, lsr #3
61266   beq .L18928
61267   ldr r1, [sp, #68]
61268   mov r2, r5
61269   mov r0, r4
61270   mov ip, #0
61271 .L18930:
61272   ldr r3, [r0, #0]
61273   cmp r3, #0
61274   beq .L18931
61275   tst r3, #15
61276   ldrneh  r6, [r1, #0]
61277   strneh  r6, [r2, #0]  @ movhi
61278   tst r3, #240
61279   ldrneh  r6, [r1, #2]
61280   strneh  r6, [r2, #2]  @ movhi
61281   tst r3, #3840
61282   ldrneh  r6, [r1, #4]
61283   strneh  r6, [r2, #4]  @ movhi
61284   tst r3, #61440
61285   ldrneh  r6, [r1, #6]
61286   strneh  r6, [r2, #6]  @ movhi
61287   tst r3, #983040
61288   ldrneh  r6, [r1, #8]
61289   strneh  r6, [r2, #8]  @ movhi
61290   tst r3, #15728640
61291   ldrneh  r6, [r1, #10]
61292   strneh  r6, [r2, #10] @ movhi
61293   tst r3, #251658240
61294   ldrneh  r6, [r1, #12]
61295   strneh  r6, [r2, #12] @ movhi
61296   movs  r3, r3, lsr #28
61297   ldrneh  r3, [r1, #14]
61298   strneh  r3, [r2, #14] @ movhi
61299 .L18931:
61300   add ip, ip, #1
61301   cmp ip, lr
61302   add r0, r0, #32
61303   add r2, r2, #16
61304   add r1, r1, #16
61305   bne .L18930
61306   ldr r6, [sp, #68]
61307   mov r3, lr, asl #4
61308   add r6, r6, r3
61309   add r5, r5, r3
61310   add r4, r4, lr, asl #5
61311   str r6, [sp, #68]
61312 .L18928:
61313   ands  r0, r7, #7
61314   beq .L18819
61315   ldr r3, [r4, #0]
61316   mov r1, #0
61317 .L18950:
61318   tst r3, #15
61319   ldrne ip, [sp, #68]
61320   mov r2, r1, asl #1
61321   ldrneh  ip, [r2, ip]
61322   add r1, r1, #1
61323   strneh  ip, [r2, r5]  @ movhi
61324   cmp r1, r0
61325   mov r3, r3, lsr #4
61326   bne .L18950
61327   b .L18819
61328 .L18876:
61329   cmp ip, fp
61330   bcs .L18819
61331 .L19620:
61332   mov r3, ip, asr #1
61333   and r4, r3, #3
61334   mov r3, ip, asr #3
61335   mov r3, r3, asl #5
61336   mov r2, ip, asr #1
61337   tst ip, #1
61338   and lr, r2, #3
61339   add ip, r3, r5
61340   add r2, r3, r5
61341   ldreqb  r3, [r2, lr]  @ zero_extendqisi2
61342   ldrneb  r3, [ip, r4]  @ zero_extendqisi2
61343   andeq r2, r3, #15
61344   movne r2, r3, lsr #4
61345   cmp r2, #0
61346   ldrne r4, [sp, #68]
61347   ldr lr, [sp, #68]
61348   ldrneh  r4, [r4, #0]
61349   ldr r3, [sp, #92]
61350   add r1, r1, #1
61351   strneh  r4, [r8, #0]  @ movhi
61352   add r0, r0, r3
61353   add lr, lr, #2
61354   cmp r6, r1
61355   mov ip, r0, asr #8
61356   add r8, r8, #2
61357   str lr, [sp, #68]
61358   bgt .L18876
61359   b .L18819
61360 .L18844:
61361   cmp ip, fp
61362   bcs .L18819
61363 .L19618:
61364   ldr r2, [sp, #88]
61365   mov r3, ip, asr #3
61366   add r3, r4, r3, asl #6
61367   and r1, ip, #7
61368   add r0, r0, r2
61369   ldrb  r2, [r3, r1]  @ zero_extendqisi2
61370   ldr r5, [sp, #68]
61371   cmp r2, #0
61372   ldrne r3, [sp, #68]
61373   add lr, lr, #1
61374   ldrneh  r3, [r3, #0]
61375   add r5, r5, #2
61376   strneh  r3, [r8, #0]  @ movhi
61377   cmp r9, lr
61378   mov ip, r0, asr #8
61379   add r8, r8, #2
61380   str r5, [sp, #68]
61381   bgt .L18844
61382   b .L18819
61383 .L19642:
61384   rsb r0, r8, lr
61385   rsb lr, r0, fp
61386   cmp lr, #0
61387   ble .L18819
61388   ldr r1, [sp, #24]
61389   add r3, r8, fp
61390   cmp r1, r3
61391   bhi .L19387
61392   mov r3, r0, lsr #3
61393   ands  ip, r0, #7
61394   sub r8, r7, r3, asl #6
61395   bne .L19389
61396   ldr r7, [sp, #124]
61397   ldr r5, [sp, #104]
61398 .L19391:
61399   movs  r4, r7, lsr #3
61400   beq .L19449
61401   ldr r0, [sp, #68]
61402   mov r1, r5
61403   mov ip, r8
61404   mov lr, #0
61405 .L19451:
61406   ldr r2, [ip, #4]
61407   cmp r2, #0
61408   beq .L19452
61409   tst r2, #255
61410   ldrneh  r3, [r0, #6]
61411   strneh  r3, [r1, #6]  @ movhi
61412   mov r3, r2, lsr #8
61413   tst r3, #255
61414   ldrneh  r6, [r0, #4]
61415   mov r3, r2, lsr #16
61416   strneh  r6, [r1, #4]  @ movhi
61417   tst r3, #255
61418   ldrneh  r3, [r0, #2]
61419   strneh  r3, [r1, #2]  @ movhi
61420   movs  r2, r2, lsr #24
61421   ldrneh  r6, [r0, #0]
61422   strneh  r6, [r1, #0]  @ movhi
61423 .L19452:
61424   ldr r2, [ip, #0]
61425   cmp r2, #0
61426   beq .L19461
61427   tst r2, #255
61428   ldrneh  r3, [r0, #14]
61429   strneh  r3, [r1, #14] @ movhi
61430   mov r3, r2, lsr #8
61431   tst r3, #255
61432   ldrneh  r6, [r0, #12]
61433   mov r3, r2, lsr #16
61434   strneh  r6, [r1, #12] @ movhi
61435   tst r3, #255
61436   ldrneh  r3, [r0, #10]
61437   strneh  r3, [r1, #10] @ movhi
61438   movs  r2, r2, lsr #24
61439   ldrneh  r6, [r0, #8]
61440   strneh  r6, [r1, #8]  @ movhi
61441 .L19461:
61442   add lr, lr, #1
61443   cmp lr, r4
61444   sub ip, ip, #64
61445   add r1, r1, #16
61446   add r0, r0, #16
61447   bne .L19451
61448   ldr ip, [sp, #68]
61449   mov r3, r4, asl #4
61450   rsb r2, r4, r4, asl #26
61451   add ip, ip, r3
61452   add r5, r5, r3
61453   add r8, r8, r2, asl #6
61454   str ip, [sp, #68]
61455 .L19449:
61456   ands  ip, r7, #7
61457   beq .L18819
61458   cmp ip, #3
61459   ldrls r2, [r8, #4]
61460   bls .L19484
61461   ldr r2, [r8, #4]
61462   cmp r2, #0
61463   beq .L19474
61464   tst r2, #255
61465   ldrne lr, [sp, #68]
61466   mov r3, r2, lsr #8
61467   ldrneh  lr, [lr, #6]
61468   strneh  lr, [r5, #6]  @ movhi
61469   tst r3, #255
61470   ldrne r0, [sp, #68]
61471   mov r3, r2, lsr #16
61472   ldrneh  r0, [r0, #4]
61473   strneh  r0, [r5, #4]  @ movhi
61474   tst r3, #255
61475   ldrne r1, [sp, #68]
61476   ldrneh  r1, [r1, #2]
61477   strneh  r1, [r5, #2]  @ movhi
61478   movs  r2, r2, lsr #24
61479   ldrne r2, [sp, #68]
61480   ldrneh  r2, [r2, #0]
61481   strneh  r2, [r5, #0]  @ movhi
61482 .L19474:
61483   subs  ip, ip, #4
61484   ldr r2, [r8, #0]
61485   beq .L18819
61486   ldr r3, [sp, #68]
61487   add r5, r5, #8
61488   add r3, r3, #8
61489   str r3, [sp, #68]
61490 .L19484:
61491   mov r1, #0
61492 .L19485:
61493   movs  r4, r2, lsr #24
61494   ldrne r6, [sp, #68]
61495   mov r0, r1, asl #1
61496   ldrneh  r6, [r0, r6]
61497   add r1, r1, #1
61498   strneh  r6, [r0, r5]  @ movhi
61499   cmp ip, r1
61500   mov r2, r2, asl #8
61501   bhi .L19485
61502   b .L18819
61503 .L18985:
61504   cmp fp, #0
61505   add r3, fp, #7
61506   movge r3, fp
61507   movs  r3, r3, asr #3
61508   beq .L18819
61509   ldr r6, [sp, #20]
61510   mov r2, #0
61511   add r1, r6, r8, asl #1
61512   b .L19015
61513 .L19646:
61514   ldr ip, [sp, #68]
61515   add r0, r0, #32
61516   add ip, ip, #16
61517   add r1, r1, #16
61518   str ip, [sp, #68]
61519 .L19015:
61520   ldr ip, [r0, #0]
61521   cmp ip, #0
61522   beq .L19016
61523   tst ip, #15
61524   ldrne lr, [sp, #68]
61525   ldrneh  lr, [lr, #0]
61526   strneh  lr, [r1, #0]  @ movhi
61527   tst ip, #240
61528   ldrne r4, [sp, #68]
61529   ldrneh  r4, [r4, #2]
61530   strneh  r4, [r1, #2]  @ movhi
61531   tst ip, #3840
61532   ldrne r5, [sp, #68]
61533   ldrneh  r5, [r5, #4]
61534   strneh  r5, [r1, #4]  @ movhi
61535   tst ip, #61440
61536   ldrne r6, [sp, #68]
61537   ldrneh  r6, [r6, #6]
61538   strneh  r6, [r1, #6]  @ movhi
61539   tst ip, #983040
61540   ldrne lr, [sp, #68]
61541   ldrneh  lr, [lr, #8]
61542   strneh  lr, [r1, #8]  @ movhi
61543   tst ip, #15728640
61544   ldrne r4, [sp, #68]
61545   ldrneh  r4, [r4, #10]
61546   strneh  r4, [r1, #10] @ movhi
61547   tst ip, #251658240
61548   ldrne r5, [sp, #68]
61549   ldrneh  r5, [r5, #12]
61550   strneh  r5, [r1, #12] @ movhi
61551   movs  ip, ip, lsr #28
61552   ldrne r6, [sp, #68]
61553   ldrneh  r6, [r6, #14]
61554   strneh  r6, [r1, #14] @ movhi
61555 .L19016:
61556   add r2, r2, #1
61557   cmp r3, r2
61558   bne .L19646
61559   b .L18819
61560 .L19115:
61561   cmp fp, #0
61562   add r3, fp, #7
61563   movge r3, fp
61564   movs  r3, r3, asr #3
61565   beq .L18819
61566   ldr ip, [sp, #20]
61567   add r1, ip, r8, asl #1
61568   mov ip, #0
61569   b .L19145
61570 .L19647:
61571   ldr lr, [sp, #68]
61572   sub r0, r0, #32
61573   add lr, lr, #16
61574   add r1, r1, #16
61575   str lr, [sp, #68]
61576 .L19145:
61577   ldr r2, [r0, #0]
61578   cmp r2, #0
61579   beq .L19146
61580   tst r2, #15
61581   ldrne lr, [sp, #68]
61582   ldrneh  lr, [lr, #14]
61583   strneh  lr, [r1, #14] @ movhi
61584   tst r2, #240
61585   ldrne r4, [sp, #68]
61586   ldrneh  r4, [r4, #12]
61587   strneh  r4, [r1, #12] @ movhi
61588   tst r2, #3840
61589   ldrne r5, [sp, #68]
61590   ldrneh  r5, [r5, #10]
61591   strneh  r5, [r1, #10] @ movhi
61592   tst r2, #61440
61593   ldrne r6, [sp, #68]
61594   ldrneh  r6, [r6, #8]
61595   strneh  r6, [r1, #8]  @ movhi
61596   tst r2, #983040
61597   ldrne lr, [sp, #68]
61598   ldrneh  lr, [lr, #6]
61599   strneh  lr, [r1, #6]  @ movhi
61600   tst r2, #15728640
61601   ldrne r4, [sp, #68]
61602   ldrneh  r4, [r4, #4]
61603   strneh  r4, [r1, #4]  @ movhi
61604   tst r2, #251658240
61605   ldrne r5, [sp, #68]
61606   ldrneh  r5, [r5, #2]
61607   strneh  r5, [r1, #2]  @ movhi
61608   movs  r2, r2, lsr #28
61609   ldrne r6, [sp, #68]
61610   ldrneh  r6, [r6, #0]
61611   strneh  r6, [r1, #0]  @ movhi
61612 .L19146:
61613   add ip, ip, #1
61614   cmp r3, ip
61615   bne .L19647
61616   b .L18819
61617 .L19540:
61618   cmp fp, #0
61619   add r3, fp, #7
61620   movge r3, fp
61621   movs  lr, r3, asr #3
61622   beq .L18819
61623   ldr r2, [sp, #20]
61624   ldr r3, .L19654+32
61625   add r1, r2, r8, asl #1
61626   add r0, r0, r3
61627   mov r2, #0
61628   b .L19584
61629 .L19648:
61630   ldr ip, [sp, #68]
61631   sub r7, r7, #64
61632   add ip, ip, #16
61633   add r1, r1, #16
61634   str ip, [sp, #68]
61635 .L19584:
61636   ldr ip, [r0, #68]
61637   cmp ip, #0
61638   beq .L19585
61639   tst ip, #255
61640   ldrne r3, [sp, #68]
61641   ldrneh  r3, [r3, #6]
61642   strneh  r3, [r1, #6]  @ movhi
61643   mov r3, ip, lsr #8
61644   tst r3, #255
61645   ldrne r4, [sp, #68]
61646   mov r3, ip, lsr #16
61647   ldrneh  r4, [r4, #4]
61648   strneh  r4, [r1, #4]  @ movhi
61649   tst r3, #255
61650   ldrne r5, [sp, #68]
61651   ldrneh  r5, [r5, #2]
61652   strneh  r5, [r1, #2]  @ movhi
61653   movs  ip, ip, lsr #24
61654   ldrne r6, [sp, #68]
61655   ldrneh  r6, [r6, #0]
61656   strneh  r6, [r1, #0]  @ movhi
61657 .L19585:
61658   ldr ip, [r7, #0]
61659   cmp ip, #0
61660   beq .L19594
61661   tst ip, #255
61662   ldrne r3, [sp, #68]
61663   ldrneh  r3, [r3, #14]
61664   strneh  r3, [r1, #14] @ movhi
61665   mov r3, ip, lsr #8
61666   tst r3, #255
61667   ldrne r4, [sp, #68]
61668   mov r3, ip, lsr #16
61669   ldrneh  r4, [r4, #12]
61670   strneh  r4, [r1, #12] @ movhi
61671   tst r3, #255
61672   ldrne r5, [sp, #68]
61673   ldrneh  r5, [r5, #10]
61674   strneh  r5, [r1, #10] @ movhi
61675   movs  ip, ip, lsr #24
61676   ldrne r6, [sp, #68]
61677   ldrneh  r6, [r6, #8]
61678   strneh  r6, [r1, #8]  @ movhi
61679 .L19594:
61680   add r2, r2, #1
61681   cmp lr, r2
61682   sub r0, r0, #64
61683   bne .L19648
61684   b .L18819
61685 .L19320:
61686   cmp fp, #0
61687   add r3, fp, #7
61688   movge r3, fp
61689   movs  r4, r3, asr #3
61690   beq .L18819
61691   ldr r3, [sp, #20]
61692   mov lr, #0
61693   add r1, r3, r8, asl #1
61694   ldr r3, .L19654+36
61695   add r0, r0, r3
61696   b .L19364
61697 .L19649:
61698   ldr ip, [sp, #68]
61699   add r2, r2, #64
61700   add ip, ip, #16
61701   add r1, r1, #16
61702   str ip, [sp, #68]
61703 .L19364:
61704   ldr ip, [r2, #0]
61705   cmp ip, #0
61706   beq .L19365
61707   tst ip, #255
61708   ldrne r5, [sp, #68]
61709   mov r3, ip, lsr #8
61710   ldrneh  r5, [r5, #0]
61711   strneh  r5, [r1, #0]  @ movhi
61712   tst r3, #255
61713   ldrne r6, [sp, #68]
61714   mov r3, ip, lsr #16
61715   ldrneh  r6, [r6, #2]
61716   strneh  r6, [r1, #2]  @ movhi
61717   tst r3, #255
61718   ldrne r3, [sp, #68]
61719   ldrneh  r3, [r3, #4]
61720   strneh  r3, [r1, #4]  @ movhi
61721   movs  ip, ip, lsr #24
61722   ldrne r5, [sp, #68]
61723   ldrneh  r5, [r5, #6]
61724   strneh  r5, [r1, #6]  @ movhi
61725 .L19365:
61726   ldr ip, [r0, #-60]
61727   cmp ip, #0
61728   beq .L19374
61729   tst ip, #255
61730   ldrne r6, [sp, #68]
61731   mov r3, ip, lsr #8
61732   ldrneh  r6, [r6, #8]
61733   strneh  r6, [r1, #8]  @ movhi
61734   tst r3, #255
61735   ldrne r3, [sp, #68]
61736   ldrneh  r3, [r3, #10]
61737   strneh  r3, [r1, #10] @ movhi
61738   mov r3, ip, lsr #16
61739   tst r3, #255
61740   ldrne r5, [sp, #68]
61741   ldrneh  r5, [r5, #12]
61742   strneh  r5, [r1, #12] @ movhi
61743   movs  ip, ip, lsr #24
61744   ldrne r6, [sp, #68]
61745   ldrneh  r6, [r6, #14]
61746   strneh  r6, [r1, #14] @ movhi
61747 .L19374:
61748   add lr, lr, #1
61749   cmp r4, lr
61750   add r0, r0, #64
61751   bne .L19649
61752   b .L18819
61753 .L19167:
61754   ands  r1, r0, #7
61755   mov r3, r0, lsr #3
61756   add ip, r2, r3, asl #6
61757   ldreq r1, [sp, #104]
61758   beq .L19271
61759   cmp r1, #3
61760   rsb r0, r1, #8
61761   bls .L19272
61762   cmp r0, #0
61763   ldr r2, [ip, #4]
61764   ldreq r1, [sp, #104]
61765   beq .L19276
61766   mov r3, r1, asl #3
61767   sub r3, r3, #32
61768   mov r3, r2, lsr r3
61769   mov r1, #0
61770 .L19277:
61771   tst r3, #255
61772   ldrne r4, [sp, #68]
61773   mov r2, r1, asl #1
61774   ldrneh  r5, [r2, r4]
61775   ldrne r4, [sp, #104]
61776   add r1, r1, #1
61777   strneh  r5, [r2, r4]  @ movhi
61778   cmp r0, r1
61779   mov r3, r3, lsr #8
61780   bne .L19277
61781   ldr r6, [sp, #68]
61782   mov r3, r0, asl #1
61783   ldr r0, [sp, #104]
61784   add r6, r6, r3
61785   str r6, [sp, #68]
61786   add r1, r0, r3
61787 .L19276:
61788   add ip, ip, #64
61789 .L19271:
61790   movs  lr, lr, lsr #3
61791   beq .L18819
61792   mov r0, #0
61793   b .L19300
61794 .L19650:
61795   ldr r2, [sp, #68]
61796   add ip, ip, #64
61797   add r2, r2, #16
61798   add r1, r1, #16
61799   str r2, [sp, #68]
61800 .L19300:
61801   ldr r2, [ip, #0]
61802   cmp r2, #0
61803   beq .L19301
61804   tst r2, #255
61805   ldrne r3, [sp, #68]
61806   ldrneh  r3, [r3, #0]
61807   strneh  r3, [r1, #0]  @ movhi
61808   mov r3, r2, lsr #8
61809   tst r3, #255
61810   ldrne r4, [sp, #68]
61811   mov r3, r2, lsr #16
61812   ldrneh  r4, [r4, #2]
61813   strneh  r4, [r1, #2]  @ movhi
61814   tst r3, #255
61815   ldrne r5, [sp, #68]
61816   ldrneh  r5, [r5, #4]
61817   strneh  r5, [r1, #4]  @ movhi
61818   movs  r2, r2, lsr #24
61819   ldrne r6, [sp, #68]
61820   ldrneh  r6, [r6, #6]
61821   strneh  r6, [r1, #6]  @ movhi
61822 .L19301:
61823   ldr r2, [ip, #4]
61824   cmp r2, #0
61825   beq .L19310
61826   tst r2, #255
61827   ldrne r3, [sp, #68]
61828   ldrneh  r3, [r3, #8]
61829   strneh  r3, [r1, #8]  @ movhi
61830   mov r3, r2, lsr #8
61831   tst r3, #255
61832   ldrne r4, [sp, #68]
61833   mov r3, r2, lsr #16
61834   ldrneh  r4, [r4, #10]
61835   strneh  r4, [r1, #10] @ movhi
61836   tst r3, #255
61837   ldrne r5, [sp, #68]
61838   ldrneh  r5, [r5, #12]
61839   strneh  r5, [r1, #12] @ movhi
61840   movs  r2, r2, lsr #24
61841   ldrne r6, [sp, #68]
61842   ldrneh  r6, [r6, #14]
61843   strneh  r6, [r1, #14] @ movhi
61844 .L19310:
61845   add r0, r0, #1
61846   cmp r0, lr
61847   bne .L19650
61848   b .L18819
61849 .L19037:
61850   mov r3, ip, lsr #3
61851   ands  r2, ip, #7
61852   sub r0, r0, r3, asl #5
61853   ldreq r3, [sp, #104]
61854   beq .L19086
61855   rsbs  r4, r2, #8
61856   ldr ip, [r0, #0]
61857   ldreq r3, [sp, #104]
61858   beq .L19089
61859   mov r3, r2, asl #2
61860   mov r3, ip, asl r3
61861   mov lr, #0
61862 .L19090:
61863   movs  ip, r3, lsr #28
61864   ldrne r2, [sp, #68]
61865   mov ip, lr, asl #1
61866   ldrneh  r5, [ip, r2]
61867   ldrne r2, [sp, #104]
61868   add lr, lr, #1
61869   strneh  r5, [ip, r2]  @ movhi
61870   cmp lr, r4
61871   mov r3, r3, asl #4
61872   bne .L19090
61873   ldr r6, [sp, #68]
61874   mov r3, r4, asl #1
61875   ldr ip, [sp, #104]
61876   add r6, r6, r3
61877   str r6, [sp, #68]
61878   add r3, ip, r3
61879 .L19089:
61880   sub r0, r0, #32
61881 .L19086:
61882   movs  r1, r1, lsr #3
61883   beq .L18819
61884   mov r2, #0
61885   b .L19096
61886 .L19651:
61887   ldr ip, [sp, #68]
61888   sub r0, r0, #32
61889   add ip, ip, #16
61890   add r3, r3, #16
61891   str ip, [sp, #68]
61892 .L19096:
61893   ldr ip, [r0, #0]
61894   cmp ip, #0
61895   beq .L19097
61896   tst ip, #15
61897   ldrne lr, [sp, #68]
61898   ldrneh  lr, [lr, #14]
61899   strneh  lr, [r3, #14] @ movhi
61900   tst ip, #240
61901   ldrne r4, [sp, #68]
61902   ldrneh  r4, [r4, #12]
61903   strneh  r4, [r3, #12] @ movhi
61904   tst ip, #3840
61905   ldrne r5, [sp, #68]
61906   ldrneh  r5, [r5, #10]
61907   strneh  r5, [r3, #10] @ movhi
61908   tst ip, #61440
61909   ldrne r6, [sp, #68]
61910   ldrneh  r6, [r6, #8]
61911   strneh  r6, [r3, #8]  @ movhi
61912   tst ip, #983040
61913   ldrne lr, [sp, #68]
61914   ldrneh  lr, [lr, #6]
61915   strneh  lr, [r3, #6]  @ movhi
61916   tst ip, #15728640
61917   ldrne r4, [sp, #68]
61918   ldrneh  r4, [r4, #4]
61919   strneh  r4, [r3, #4]  @ movhi
61920   tst ip, #251658240
61921   ldrne r5, [sp, #68]
61922   ldrneh  r5, [r5, #2]
61923   strneh  r5, [r3, #2]  @ movhi
61924   movs  ip, ip, lsr #28
61925   ldrne r6, [sp, #68]
61926   ldrneh  r6, [r6, #0]
61927   strneh  r6, [r3, #0]  @ movhi
61928 .L19097:
61929   add r2, r2, #1
61930   cmp r2, r1
61931   bne .L19651
61932   b .L18819
61933 .L18907:
61934   mov r3, ip, lsr #3
61935   mov r1, r3, asl #5
61936   ands  r3, ip, #7
61937   ldreq r3, [sp, #104]
61938   add ip, r0, r1
61939   beq .L18956
61940   rsbs  r4, r3, #8
61941   ldr r0, [r0, r1]
61942   ldreq r3, [sp, #104]
61943   beq .L18959
61944   mov r3, r3, asl #2
61945   mov r0, r0, lsr r3
61946   mov r2, #0
61947 .L18960:
61948   tst r0, #15
61949   ldrne r1, [sp, #68]
61950   mov r3, r2, asl #1
61951   ldrneh  r5, [r3, r1]
61952   ldrne r1, [sp, #104]
61953   add r2, r2, #1
61954   strneh  r5, [r3, r1]  @ movhi
61955   cmp r4, r2
61956   mov r0, r0, lsr #4
61957   bne .L18960
61958   ldr r6, [sp, #68]
61959   mov r3, r4, asl #1
61960   ldr r0, [sp, #104]
61961   add r6, r6, r3
61962   str r6, [sp, #68]
61963   add r3, r0, r3
61964 .L18959:
61965   add ip, ip, #32
61966 .L18956:
61967   movs  r0, lr, lsr #3
61968   beq .L18819
61969   mov r1, #0
61970   b .L18966
61971 .L19652:
61972   ldr r2, [sp, #68]
61973   add ip, ip, #32
61974   add r2, r2, #16
61975   add r3, r3, #16
61976   str r2, [sp, #68]
61977 .L18966:
61978   ldr r2, [ip, #0]
61979   cmp r2, #0
61980   beq .L18967
61981   tst r2, #15
61982   ldrne r4, [sp, #68]
61983   ldrneh  r4, [r4, #0]
61984   strneh  r4, [r3, #0]  @ movhi
61985   tst r2, #240
61986   ldrne r5, [sp, #68]
61987   ldrneh  r5, [r5, #2]
61988   strneh  r5, [r3, #2]  @ movhi
61989   tst r2, #3840
61990   ldrne r6, [sp, #68]
61991   ldrneh  r6, [r6, #4]
61992   strneh  r6, [r3, #4]  @ movhi
61993   tst r2, #61440
61994   ldrne lr, [sp, #68]
61995   ldrneh  lr, [lr, #6]
61996   strneh  lr, [r3, #6]  @ movhi
61997   tst r2, #983040
61998   ldrne r4, [sp, #68]
61999   ldrneh  r4, [r4, #8]
62000   strneh  r4, [r3, #8]  @ movhi
62001   tst r2, #15728640
62002   ldrne r5, [sp, #68]
62003   ldrneh  r5, [r5, #10]
62004   strneh  r5, [r3, #10] @ movhi
62005   tst r2, #251658240
62006   ldrne r6, [sp, #68]
62007   ldrneh  r6, [r6, #12]
62008   strneh  r6, [r3, #12] @ movhi
62009   movs  r2, r2, lsr #28
62010   ldrne lr, [sp, #68]
62011   ldrneh  lr, [lr, #14]
62012   strneh  lr, [r3, #14] @ movhi
62013 .L18967:
62014   add r1, r1, #1
62015   cmp r1, r0
62016   bne .L19652
62017   b .L18819
62018 .L19387:
62019   ands  r2, r0, #7
62020   mov r3, r0, lsr #3
62021   sub ip, r7, r3, asl #6
62022   ldreq r1, [sp, #104]
62023   beq .L19491
62024   cmp r2, #3
62025   rsb r0, r2, #8
62026   bls .L19492
62027   cmp r0, #0
62028   ldr r1, [ip, #0]
62029   ldreq r1, [sp, #104]
62030   beq .L19496
62031   mov r3, r2, asl #3
62032   sub r3, r3, #32
62033   mov r3, r1, asl r3
62034   mov r1, #0
62035 .L19497:
62036   movs  r2, r3, lsr #24
62037   ldrne r4, [sp, #68]
62038   mov r2, r1, asl #1
62039   ldrneh  r5, [r2, r4]
62040   ldrne r4, [sp, #104]
62041   add r1, r1, #1
62042   strneh  r5, [r2, r4]  @ movhi
62043   cmp r1, r0
62044   mov r3, r3, asl #8
62045   bne .L19497
62046   ldr r6, [sp, #68]
62047   mov r3, r0, asl #1
62048   ldr r0, [sp, #104]
62049   add r6, r6, r3
62050   str r6, [sp, #68]
62051   add r1, r0, r3
62052 .L19496:
62053   sub ip, ip, #64
62054 .L19491:
62055   movs  lr, lr, lsr #3
62056   beq .L18819
62057   mov r0, #0
62058   b .L19520
62059 .L19653:
62060   ldr r2, [sp, #68]
62061   sub ip, ip, #64
62062   add r2, r2, #16
62063   add r1, r1, #16
62064   str r2, [sp, #68]
62065 .L19520:
62066   ldr r2, [ip, #4]
62067   cmp r2, #0
62068   beq .L19521
62069   tst r2, #255
62070   ldrne r3, [sp, #68]
62071   ldrneh  r3, [r3, #6]
62072   strneh  r3, [r1, #6]  @ movhi
62073   mov r3, r2, lsr #8
62074   tst r3, #255
62075   ldrne r4, [sp, #68]
62076   mov r3, r2, lsr #16
62077   ldrneh  r4, [r4, #4]
62078   strneh  r4, [r1, #4]  @ movhi
62079   tst r3, #255
62080   ldrne r5, [sp, #68]
62081   ldrneh  r5, [r5, #2]
62082   strneh  r5, [r1, #2]  @ movhi
62083   movs  r2, r2, lsr #24
62084   ldrne r6, [sp, #68]
62085   ldrneh  r6, [r6, #0]
62086   strneh  r6, [r1, #0]  @ movhi
62087 .L19521:
62088   ldr r2, [ip, #0]
62089   cmp r2, #0
62090   beq .L19530
62091   tst r2, #255
62092   ldrne r3, [sp, #68]
62093   ldrneh  r3, [r3, #14]
62094   strneh  r3, [r1, #14] @ movhi
62095   mov r3, r2, lsr #8
62096   tst r3, #255
62097   ldrne r4, [sp, #68]
62098   mov r3, r2, lsr #16
62099   ldrneh  r4, [r4, #12]
62100   strneh  r4, [r1, #12] @ movhi
62101   tst r3, #255
62102   ldrne r5, [sp, #68]
62103   ldrneh  r5, [r5, #10]
62104   strneh  r5, [r1, #10] @ movhi
62105   movs  r2, r2, lsr #24
62106   ldrne r6, [sp, #68]
62107   ldrneh  r6, [r6, #8]
62108   strneh  r6, [r1, #8]  @ movhi
62109 .L19530:
62110   add r0, r0, #1
62111   cmp r0, lr
62112   bne .L19653
62113   b .L18819
62114 .L18909:
62115   ldr lr, [sp, #124]
62116   rsb ip, r3, #8
62117   cmp lr, ip
62118   bge .L18912
62119   cmp lr, #0
62120   ble .L18819
62121   ldr r2, [r0, r1]
62122   mov r3, r3, asl #2
62123   mov r0, r2, lsr r3
62124   mov r2, #0
62125 .L18916:
62126   tst r0, #15
62127   ldrne r1, [sp, #68]
62128   mov r3, r2, asl #1
62129   ldrneh  r4, [r3, r1]
62130   ldr r5, [sp, #124]
62131   ldrne r1, [sp, #104]
62132   add r2, r2, #1
62133   strneh  r4, [r3, r1]  @ movhi
62134   cmp r5, r2
62135   mov r0, r0, lsr #4
62136   bne .L18916
62137   b .L18819
62138 .L19389:
62139   ldr r2, [sp, #124]
62140   rsb lr, ip, #8
62141   cmp r2, lr
62142   bge .L19392
62143   cmp r2, #0
62144   ble .L18819
62145   cmp ip, #3
62146   bls .L19395
62147   ldr r2, [r8, #0]
62148   mov r3, ip, asl #3
62149   sub r3, r3, #32
62150   mov r2, r2, asl r3
62151   mov r1, #0
62152 .L19398:
62153   movs  r3, r2, lsr #24
62154   ldrne r4, [sp, #68]
62155   mov r3, r1, asl #1
62156   ldrneh  r5, [r3, r4]
62157   ldr r6, [sp, #124]
62158   ldrne r4, [sp, #104]
62159   add r1, r1, #1
62160   strneh  r5, [r3, r4]  @ movhi
62161   cmp r6, r1
62162   mov r2, r2, asl #8
62163   bne .L19398
62164   b .L18819
62165 .L19169:
62166   ldr r5, [sp, #124]
62167   rsb lr, ip, #8
62168   cmp r5, lr
62169   bge .L19172
62170   cmp r5, #0
62171   ble .L18819
62172   cmp ip, #3
62173   bls .L19175
62174   ldr r2, [r8, #4]
62175   mov r3, ip, asl #3
62176   sub r3, r3, #32
62177   mov r1, r2, lsr r3
62178   mov r2, #0
62179 .L19178:
62180   tst r1, #255
62181   ldrne r6, [sp, #68]
62182   mov r3, r2, asl #1
62183   ldrneh  ip, [r3, r6]
62184   ldr lr, [sp, #124]
62185   ldrne r6, [sp, #104]
62186   add r2, r2, #1
62187   strneh  ip, [r3, r6]  @ movhi
62188   cmp lr, r2
62189   mov r1, r1, lsr #8
62190   bne .L19178
62191   b .L18819
62192 .L19039:
62193   ldr r3, [sp, #124]
62194   rsb lr, r4, #8
62195   cmp r3, lr
62196   bge .L19042
62197   cmp r3, #0
62198   ble .L18819
62199   ldr r2, [r0, #0]
62200   mov r3, r4, asl #2
62201   mov r0, r2, asl r3
62202   mov r2, #0
62203 .L19046:
62204   movs  r4, r0, lsr #28
62205   ldrne r5, [sp, #68]
62206   mov r3, r2, asl #1
62207   ldrneh  r6, [r3, r5]
62208   ldr ip, [sp, #124]
62209   ldrne r5, [sp, #104]
62210   add r2, r2, #1
62211   strneh  r6, [r3, r5]  @ movhi
62212   cmp ip, r2
62213   mov r0, r0, asl #4
62214   bne .L19046
62215   b .L18819
62216 .L19172:
62217   cmp ip, #3
62218   bls .L19202
62219   cmp lr, #0
62220   ldr r2, [r8, #4]
62221   ldreq r5, [sp, #104]
62222   beq .L19206
62223   mov r3, ip, asl #3
62224   sub r3, r3, #32
62225   mov r1, r2, lsr r3
62226   mov r2, #0
62227 .L19207:
62228   tst r1, #255
62229   ldrne r0, [sp, #68]
62230   mov r3, r2, asl #1
62231   ldrneh  r4, [r3, r0]
62232   ldrne r0, [sp, #104]
62233   add r2, r2, #1
62234   strneh  r4, [r3, r0]  @ movhi
62235   cmp lr, r2
62236   mov r1, r1, lsr #8
62237   bne .L19207
62238   ldr r5, [sp, #68]
62239   mov r3, lr, asl #1
62240   ldr r6, [sp, #104]
62241   add r5, r5, r3
62242   str r5, [sp, #68]
62243   add r5, r3, r6
62244 .L19206:
62245   ldr ip, [sp, #124]
62246   add r8, r8, #64
62247   rsb r7, lr, ip
62248   b .L19171
62249 .L19272:
62250   subs  r4, r0, #4
62251   ldr r2, [ip, #0]
62252   ldreq r1, [sp, #104]
62253   beq .L19284
62254   mov r3, r1, asl #3
62255   mov r3, r2, lsr r3
62256   mov r1, #0
62257 .L19285:
62258   tst r3, #255
62259   ldrne r5, [sp, #68]
62260   mov r2, r1, asl #1
62261   ldrneh  r6, [r2, r5]
62262   ldrne r5, [sp, #104]
62263   add r1, r1, #1
62264   strneh  r6, [r2, r5]  @ movhi
62265   cmp r1, r4
62266   mov r3, r3, lsr #8
62267   bne .L19285
62268   mov r3, r0, asl #1
62269   ldr r0, [sp, #68]
62270   ldr r1, [sp, #104]
62271   add r2, r0, r3
62272   sub r2, r2, #8
62273   add r3, r1, r3
62274   str r2, [sp, #68]
62275   sub r1, r3, #8
62276 .L19284:
62277   ldr r2, [ip, #4]
62278   cmp r2, #0
62279   beq .L19290
62280   tst r2, #255
62281   ldrne r3, [sp, #68]
62282   ldrneh  r3, [r3, #0]
62283   strneh  r3, [r1, #0]  @ movhi
62284   mov r3, r2, lsr #8
62285   tst r3, #255
62286   ldrne r4, [sp, #68]
62287   mov r3, r2, lsr #16
62288   ldrneh  r4, [r4, #2]
62289   strneh  r4, [r1, #2]  @ movhi
62290   tst r3, #255
62291   ldrne r5, [sp, #68]
62292   ldrneh  r5, [r5, #4]
62293   strneh  r5, [r1, #4]  @ movhi
62294   movs  r2, r2, lsr #24
62295   ldrne r6, [sp, #68]
62296   ldrneh  r6, [r6, #6]
62297   strneh  r6, [r1, #6]  @ movhi
62298 .L19290:
62299   ldr r0, [sp, #68]
62300   add r1, r1, #8
62301   add r0, r0, #8
62302   add ip, ip, #64
62303   str r0, [sp, #68]
62304   b .L19271
62305 .L18912:
62306   cmp ip, #0
62307   ldr r2, [r4, #0]
62308   ldreq r5, [sp, #104]
62309   beq .L18922
62310   mov r3, r3, asl #2
62311   mov r3, r2, lsr r3
62312   mov r1, #0
62313 .L18923:
62314   tst r3, #15
62315   ldrne r6, [sp, #68]
62316   mov r2, r1, asl #1
62317   ldrneh  lr, [r2, r6]
62318   ldrne r6, [sp, #104]
62319   add r1, r1, #1
62320   strneh  lr, [r2, r6]  @ movhi
62321   cmp ip, r1
62322   mov r3, r3, lsr #4
62323   bne .L18923
62324   ldr r0, [sp, #68]
62325   mov r3, ip, asl #1
62326   ldr r1, [sp, #104]
62327   add r0, r0, r3
62328   str r0, [sp, #68]
62329   add r5, r3, r1
62330 .L18922:
62331   ldr r2, [sp, #124]
62332   add r4, r4, #32
62333   rsb r7, ip, r2
62334   b .L18911
62335 .L19042:
62336   cmp lr, #0
62337   ldr r2, [r0, #0]
62338   ldreq r1, [sp, #104]
62339   beq .L19052
62340   mov r3, r4, asl #2
62341   mov r3, r2, asl r3
62342   mov ip, #0
62343 .L19053:
62344   movs  r1, r3, lsr #28
62345   ldrne r4, [sp, #68]
62346   mov r2, ip, asl #1
62347   ldrneh  r5, [r2, r4]
62348   ldrne r4, [sp, #104]
62349   add ip, ip, #1
62350   strneh  r5, [r2, r4]  @ movhi
62351   cmp lr, ip
62352   mov r3, r3, asl #4
62353   bne .L19053
62354   ldr r6, [sp, #68]
62355   mov r3, lr, asl #1
62356   ldr ip, [sp, #104]
62357   add r6, r6, r3
62358   str r6, [sp, #68]
62359   add r1, r3, ip
62360 .L19052:
62361   ldr r2, [sp, #124]
62362   sub r0, r0, #32
62363   rsb r7, lr, r2
62364   b .L19041
62365 .L19492:
62366   subs  r4, r0, #4
62367   ldr r1, [ip, #4]
62368   ldreq r1, [sp, #104]
62369   beq .L19504
62370   mov r3, r2, asl #3
62371   sub r3, r3, #32
62372   mov r3, r1, asl r3
62373   mov r1, #0
62374 .L19505:
62375   movs  r2, r3, lsr #24
62376   ldrne r5, [sp, #68]
62377   mov r2, r1, asl #1
62378   ldrneh  r6, [r2, r5]
62379   ldrne r5, [sp, #104]
62380   add r1, r1, #1
62381   strneh  r6, [r2, r5]  @ movhi
62382   cmp r1, r4
62383   mov r3, r3, asl #8
62384   bne .L19505
62385   mov r3, r0, asl #1
62386   ldr r0, [sp, #68]
62387   ldr r1, [sp, #104]
62388   add r2, r0, r3
62389   sub r2, r2, #8
62390   add r3, r1, r3
62391   str r2, [sp, #68]
62392   sub r1, r3, #8
62393 .L19504:
62394   ldr r2, [ip, #0]
62395   cmp r2, #0
62396   beq .L19510
62397   tst r2, #255
62398   ldrne r3, [sp, #68]
62399   ldrneh  r3, [r3, #6]
62400   strneh  r3, [r1, #6]  @ movhi
62401   mov r3, r2, lsr #8
62402   tst r3, #255
62403   ldrne r4, [sp, #68]
62404   mov r3, r2, lsr #16
62405   ldrneh  r4, [r4, #4]
62406   strneh  r4, [r1, #4]  @ movhi
62407   tst r3, #255
62408   ldrne r5, [sp, #68]
62409   ldrneh  r5, [r5, #2]
62410   strneh  r5, [r1, #2]  @ movhi
62411   movs  r2, r2, lsr #24
62412   ldrne r6, [sp, #68]
62413   ldrneh  r6, [r6, #0]
62414   strneh  r6, [r1, #0]  @ movhi
62415 .L19510:
62416   ldr r0, [sp, #68]
62417   add r1, r1, #8
62418   add r0, r0, #8
62419   sub ip, ip, #64
62420   str r0, [sp, #68]
62421   b .L19491
62422 .L19392:
62423   cmp ip, #3
62424   bls .L19422
62425   cmp lr, #0
62426   ldr r2, [r8, #0]
62427   ldreq r5, [sp, #104]
62428   beq .L19426
62429   mov r3, ip, asl #3
62430   sub r3, r3, #32
62431   mov r3, r2, asl r3
62432   mov r1, #0
62433 .L19427:
62434   movs  r0, r3, lsr #24
62435   ldrne r4, [sp, #68]
62436   mov r2, r1, asl #1
62437   ldrneh  r5, [r2, r4]
62438   ldrne r4, [sp, #104]
62439   add r1, r1, #1
62440   strneh  r5, [r2, r4]  @ movhi
62441   cmp lr, r1
62442   mov r3, r3, asl #8
62443   bne .L19427
62444   ldr r6, [sp, #68]
62445   mov r3, lr, asl #1
62446   ldr ip, [sp, #104]
62447   add r6, r6, r3
62448   str r6, [sp, #68]
62449   add r5, ip, r3
62450 .L19426:
62451   ldr ip, [sp, #124]
62452   sub r8, r8, #64
62453   rsb r7, lr, ip
62454   b .L19391
62455 .L19638:
62456   mov r7, #0
62457   b .L18889
62458 .L19634:
62459   mov r7, #0
62460   b .L18854
62461 .L19202:
62462   subs  r0, lr, #4
62463   ldr r2, [r8, #0]
62464   ldreq r1, [sp, #104]
62465   beq .L19214
62466   mov r3, ip, asl #3
62467   mov r1, r2, lsr r3
62468   mov r2, #0
62469 .L19215:
62470   tst r1, #255
62471   ldrne ip, [sp, #68]
62472   mov r3, r2, asl #1
62473   ldrneh  r4, [r3, ip]
62474   ldrne ip, [sp, #104]
62475   add r2, r2, #1
62476   strneh  r4, [r3, ip]  @ movhi
62477   cmp r2, r0
62478   mov r1, r1, lsr #8
62479   bne .L19215
62480   ldr r5, [sp, #68]
62481   mov r3, lr, asl #1
62482   ldr r6, [sp, #104]
62483   add r2, r5, r3
62484   sub r2, r2, #8
62485   add r3, r6, r3
62486   str r2, [sp, #68]
62487   sub r1, r3, #8
62488 .L19214:
62489   ldr r2, [r8, #4]
62490   cmp r2, #0
62491   beq .L19220
62492   tst r2, #255
62493   ldrne ip, [sp, #68]
62494   mov r3, r2, lsr #8
62495   ldrneh  ip, [ip, #0]
62496   strneh  ip, [r1, #0]  @ movhi
62497   tst r3, #255
62498   ldrne r0, [sp, #68]
62499   mov r3, r2, lsr #16
62500   ldrneh  r0, [r0, #2]
62501   strneh  r0, [r1, #2]  @ movhi
62502   tst r3, #255
62503   ldrne r3, [sp, #68]
62504   ldrneh  r3, [r3, #4]
62505   strneh  r3, [r1, #4]  @ movhi
62506   movs  r2, r2, lsr #24
62507   ldrne r4, [sp, #68]
62508   ldrneh  r4, [r4, #6]
62509   strneh  r4, [r1, #6]  @ movhi
62510 .L19220:
62511   ldr r6, [sp, #68]
62512   add r5, r1, #8
62513   add r6, r6, #8
62514   str r6, [sp, #68]
62515   b .L19206
62516 .L19422:
62517   subs  r0, lr, #4
62518   ldr r2, [r8, #4]
62519   ldreq r1, [sp, #104]
62520   beq .L19434
62521   mov r3, ip, asl #3
62522   sub r3, r3, #32
62523   mov r3, r2, asl r3
62524   mov r1, #0
62525 .L19435:
62526   movs  r2, r3, lsr #24
62527   ldrne r4, [sp, #68]
62528   mov r2, r1, asl #1
62529   ldrneh  r5, [r2, r4]
62530   ldrne r4, [sp, #104]
62531   add r1, r1, #1
62532   strneh  r5, [r2, r4]  @ movhi
62533   cmp r1, r0
62534   mov r3, r3, asl #8
62535   bne .L19435
62536   ldr r6, [sp, #68]
62537   mov r3, lr, asl #1
62538   ldr ip, [sp, #104]
62539   add r2, r6, r3
62540   sub r2, r2, #8
62541   add r3, ip, r3
62542   str r2, [sp, #68]
62543   sub r1, r3, #8
62544 .L19434:
62545   ldr r2, [r8, #0]
62546   cmp r2, #0
62547   beq .L19440
62548   tst r2, #255
62549   ldrne r0, [sp, #68]
62550   mov r3, r2, lsr #8
62551   ldrneh  r0, [r0, #6]
62552   strneh  r0, [r1, #6]  @ movhi
62553   tst r3, #255
62554   ldrne r3, [sp, #68]
62555   ldrneh  r3, [r3, #4]
62556   strneh  r3, [r1, #4]  @ movhi
62557   mov r3, r2, lsr #16
62558   tst r3, #255
62559   ldrne r4, [sp, #68]
62560   ldrneh  r4, [r4, #2]
62561   strneh  r4, [r1, #2]  @ movhi
62562   movs  r2, r2, lsr #24
62563   ldrne r5, [sp, #68]
62564   ldrneh  r5, [r5, #0]
62565   strneh  r5, [r1, #0]  @ movhi
62566 .L19440:
62567   ldr r6, [sp, #68]
62568   add r5, r1, #8
62569   add r6, r6, #8
62570   str r6, [sp, #68]
62571   b .L19426
62572 .L19641:
62573   mov r1, r9
62574   b .L19620
62575 .L19640:
62576   mov lr, r6
62577   b .L19618
62578 .L19175:
62579   ldr r0, [sp, #124]
62580   ldr r3, [r8, #0]
62581   add r2, r0, ip
62582   mov r1, ip, asl #3
62583   cmp r2, #4
62584   mov r3, r3, lsr r1
62585   bhi .L19182
62586   cmp r0, #0
62587   movne r1, #0
62588   beq .L18819
62589 .L19198:
62590   tst r3, #255
62591   ldrne r5, [sp, #68]
62592   mov r2, r1, asl #1
62593   ldrneh  r6, [r2, r5]
62594   ldr ip, [sp, #124]
62595   ldrne r5, [sp, #104]
62596   add r1, r1, #1
62597   strneh  r6, [r2, r5]  @ movhi
62598   cmp ip, r1
62599   mov r3, r3, lsr #8
62600   bne .L19198
62601   b .L18819
62602 .L19395:
62603   ldr lr, [sp, #124]
62604   mov r3, ip, asl #3
62605   ldr r1, [r8, #4]
62606   add r2, lr, ip
62607   sub r3, r3, #32
62608   cmp r2, #4
62609   mov r1, r1, asl r3
62610   bhi .L19402
62611   cmp lr, #0
62612   movne r2, #0
62613   beq .L18819
62614 .L19418:
62615   movs  r5, r1, lsr #24
62616   ldrne r6, [sp, #68]
62617   mov r3, r2, asl #1
62618   ldrneh  ip, [r3, r6]
62619   ldr lr, [sp, #124]
62620   ldrne r6, [sp, #104]
62621   add r2, r2, #1
62622   strneh  ip, [r3, r6]  @ movhi
62623   cmp lr, r2
62624   mov r1, r1, asl #8
62625   bne .L19418
62626   b .L18819
62627 .L19182:
62628   rsbs  r0, ip, #4
62629   ldreq ip, [sp, #104]
62630   beq .L19187
62631   mov r1, #0
62632 .L19188:
62633   tst r3, #255
62634   ldrne r4, [sp, #68]
62635   mov r2, r1, asl #1
62636   ldrneh  r5, [r2, r4]
62637   ldrne r4, [sp, #104]
62638   add r1, r1, #1
62639   strneh  r5, [r2, r4]  @ movhi
62640   cmp r1, r0
62641   mov r3, r3, lsr #8
62642   bne .L19188
62643   ldr r6, [sp, #68]
62644   mov r3, r0, asl #1
62645   ldr lr, [sp, #104]
62646   add r6, r6, r3
62647   str r6, [sp, #68]
62648   add ip, r3, lr
62649 .L19187:
62650   ldr r1, [sp, #124]
62651   ldr r3, [r8, #4]
62652   subs  r0, r1, r0
62653   beq .L18819
62654   mov r1, #0
62655 .L19194:
62656   tst r3, #255
62657   ldrne r4, [sp, #68]
62658   mov r2, r1, asl #1
62659   ldrneh  r4, [r2, r4]
62660   add r1, r1, #1
62661   strneh  r4, [r2, ip]  @ movhi
62662   cmp r1, r0
62663   mov r3, r3, lsr #8
62664   bne .L19194
62665   b .L18819
62666 .L19402:
62667   rsbs  r0, ip, #4
62668   ldreq r3, [sp, #104]
62669   beq .L19407
62670   mov r2, #0
62671 .L19408:
62672   movs  r3, r1, lsr #24
62673   ldrne r4, [sp, #68]
62674   mov r3, r2, asl #1
62675   ldrneh  r5, [r3, r4]
62676   ldrne r4, [sp, #104]
62677   add r2, r2, #1
62678   strneh  r5, [r3, r4]  @ movhi
62679   cmp r2, r0
62680   mov r1, r1, asl #8
62681   bne .L19408
62682   ldr r6, [sp, #68]
62683   mov r3, r0, asl #1
62684   ldr ip, [sp, #104]
62685   add r6, r6, r3
62686   str r6, [sp, #68]
62687   add r3, r3, ip
62688 .L19407:
62689   ldr lr, [sp, #124]
62690   ldr r2, [r8, #0]
62691   subs  ip, lr, r0
62692   beq .L18819
62693   mov r0, #0
62694 .L19414:
62695   movs  r1, r2, lsr #24
62696   ldrne r4, [sp, #68]
62697   mov r1, r0, asl #1
62698   ldrneh  r4, [r1, r4]
62699   add r0, r0, #1
62700   strneh  r4, [r1, r3]  @ movhi
62701   cmp r0, ip
62702   mov r2, r2, asl #8
62703   bne .L19414
62704   b .L18819
62705   .size render_scanline_obj_copy_tile_2D, .-render_scanline_obj_copy_tile_2D
62706   .align  2
62707   .global render_scanline_obj_copy_tile_1D
62708   .type render_scanline_obj_copy_tile_1D, %function
62709 render_scanline_obj_copy_tile_1D:
62710   @ args = 0, pretend = 0, frame = 592
62711   @ frame_needed = 0, uses_anonymous_args = 0
62712   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
62713   ldr r5, .L20498
62714   add r0, r0, r0, asl #2
62715   ldrh  r4, [r5, #6]
62716   ldr ip, .L20498+4
62717   add r0, r4, r0, asl #5
62718   ldrh  r6, [r5, #0]
62719   sub sp, sp, #604
62720   ldr ip, [ip, r0, asl #2]
62721   str r6, [sp, #44]
62722   str ip, [sp, #68]
62723   cmp ip, #0
62724   ldr ip, [sp, #44]
62725   ldrh  r6, [r5, #74]
62726   str r4, [sp, #64]
62727   ldr lr, .L20498+8
62728   and r4, ip, #7
62729   ldr ip, .L20498+12
62730   ldrh  r5, [r5, #80]
62731   add r4, ip, r4, asl #7
62732   add r0, lr, r0, asl #7
62733   mov r6, r6, lsr #8
62734   str r4, [sp, #52]
62735   str r0, [sp, #72]
62736   str r1, [sp, #20]
62737   str r2, [sp, #16]
62738   str r3, [sp, #12]
62739   str r6, [sp, #48]
62740   str r5, [sp, #40]
62741   beq .L20448
62742   rsb r0, r1, r2
62743   add lr, r3, r1, asl #1
62744   mov r1, #0
62745   mov r2, r1
62746   str lr, [sp, #100]
62747   str r0, [sp, #120]
62748   str r1, [sp, #60]
62749   b .L19659
62750 .L19663:
62751   ldr lr, [sp, #60]
62752   ldr r0, [sp, #68]
62753   add lr, lr, #1
62754   cmp r0, lr
62755   str lr, [sp, #60]
62756   beq .L20448
62757   ldr r2, [sp, #60]
62758 .L19659:
62759   ldr r4, [sp, #72]
62760   ldr r5, .L20498+16
62761   ldrb  r3, [r2, r4]  @ zero_extendqisi2
62762   ldr lr, .L20498+20
62763   mov r3, r3, asl #3
62764   ldrh  r6, [r3, r5]
62765   add r3, r3, r5
62766   ldrh  r7, [r3, #2]
62767   mov fp, r6, lsr #12
62768   and r2, fp, #12
62769   orr sl, r2, r7, lsr #14
62770   mov r1, r7, asl #23
62771   ldr r9, [lr, sl, asl #2]
62772   ands  ip, r6, #512
62773   mov r8, r1, asr #23
62774   ldr r0, [sp, #16]
62775   ldr r5, [sp, #20]
62776   addne r1, r8, r9, asl #1
62777   addeq r1, r8, r9
62778   ldrh  r3, [r3, #4]
62779   ldr r2, [sp, #20]
62780   cmp r8, r5
62781   movcs r5, r8
62782   cmp r1, r0
62783   movcs r1, r0
62784   str r3, [sp, #24]
62785   cmp r0, r5
62786   movls r3, #0
62787   movhi r3, #1
62788   cmp r2, r1
62789   movcs r3, #0
62790   cmp r3, #0
62791   str ip, [sp, #28]
62792   beq .L19663
62793   ldr ip, [sp, #44]
62794   add r4, sp, #124
62795   str ip, [sp, #0]
62796   ldr lr, [sp, #40]
62797   ldr ip, [sp, #52]
62798   mov r0, r5
62799   ldr r3, [sp, #48]
62800   mov r2, r4
62801   str lr, [sp, #4]
62802   str ip, [sp, #8]
62803   bl  render_scanline_conditional_tile
62804   and r0, r6, #255
62805   cmp r0, #160
62806   ldr r3, .L20498+24
62807   add r5, r4, r5, asl #1
62808   subgt r0, r0, #256
62809   tst r6, #256
62810   str r5, [sp, #56]
62811   ldr sl, [r3, sl, asl #2]
62812   beq .L19667
62813   tst r6, #8192
62814   beq .L19669
62815   mov r3, r7, lsr #4
62816   ldr r1, .L20498+16
62817   ldr lr, [sp, #28]
62818   and r3, r3, #992
62819   add r3, r3, r1
62820   add r1, sl, sl, lsr #31
62821   cmp lr, #0
62822   ldrh  r4, [r3, #30]
62823   mov lr, r1, asr #1
62824   add r2, r9, r9, lsr #31
62825   ldr r1, [sp, #20]
62826   mov ip, r2, asr #1
62827   str r4, [sp, #32]
62828   moveq fp, r9
62829   moveq r5, ip
62830   moveq r4, lr
62831   movne fp, r9, asl #1
62832   movne r5, ip, asl #1
62833   movne r4, lr, asl #1
62834   cmp r8, r1
62835   ldrh  r7, [r3, #6]
62836   ldrh  r2, [r3, #14]
62837   ldrh  r6, [r3, #22]
62838   bge .L19674
62839   rsb r1, r8, r1
62840   rsb fp, r1, fp
62841   cmp fp, #0
62842   ble .L19663
62843   ldr r8, [sp, #20]
62844   rsb r5, r1, r5
62845 .L19674:
62846   ldr r1, [sp, #16]
62847   add r3, r8, fp
62848   cmp r3, r1
62849   bge .L20476
62850 .L19677:
62851   add r0, r0, r4
62852   ldr r4, [sp, #32]
62853   mov ip, ip, asl #8
62854   mov r1, r4, asl #16
62855   mov r3, r7, asl #16
62856   mov r4, r1, asr #16
62857   str ip, [sp, #108]
62858   ldr r1, [sp, #64]
62859   mov ip, lr, asl #8
62860   ldr lr, [sp, #12]
62861   mov r2, r2, asl #16
62862   mov r3, r3, asr #16
62863   cmp r6, #0
62864   add r8, lr, r8, asl #1
62865   str r3, [sp, #76]
62866   mov r7, r2, asr #16
62867   rsb lr, r0, r1
62868   beq .L20477
62869   ldr r0, [sp, #24]
62870   cmp r9, #0
62871   add r1, r9, #7
62872   mov r2, r0, asl #22
62873   movge r1, r9
62874   ldr r3, .L20498+28
62875   mov r2, r2, lsr #22
62876   mov r1, r1, asr #3
62877   add r2, r3, r2, asl #5
62878   mov r1, r1, asl #6
62879   cmp fp, #0
62880   str r2, [sp, #116]
62881   str r1, [sp, #80]
62882   ble .L19663
62883   mov r3, r6, asl #16
62884   mov r6, r3, asr #16
62885   ldr r0, [sp, #76]
62886   mul r2, lr, r4
62887   mul r1, r6, r5
62888   mul r3, lr, r7
62889   mul r0, r5, r0
62890   rsb r2, r1, r2
62891   ldr r1, [sp, #108]
62892   rsb r3, r0, r3
62893   add r5, r1, r3
62894   add r4, ip, r2
62895   mov lr, r5, asr #8
62896   mov ip, r4, asr #8
62897   cmp lr, r9
62898   cmpcc ip, sl
62899   movcs r3, #0
62900   movcc r3, #1
62901   movcs r7, r3
62902   bcc .L20478
62903 .L19695:
62904   ldr r3, [sp, #56]
62905   ldr r2, [sp, #76]
62906   add r7, r7, #1
62907   add r5, r5, r2
62908   add r4, r4, r6
62909   add r3, r3, #2
62910   cmp fp, r7
62911   mov lr, r5, asr #8
62912   mov ip, r4, asr #8
62913   add r8, r8, #2
62914   str r3, [sp, #56]
62915   beq .L19663
62916   cmp lr, r9
62917   cmpcc ip, sl
62918   bcs .L19695
62919   cmp ip, sl
62920   cmpcc lr, r9
62921   bcs .L19663
62922 .L20479:
62923   ldr r0, [sp, #76]
62924   and r3, ip, #7
62925   mov r2, lr, asr #3
62926   ldr r1, [sp, #116]
62927   mov r3, r3, asl #3
62928   add r5, r5, r0
62929   add r3, r3, r2, asl #6
62930   ldr r0, [sp, #80]
62931   mov r2, ip, asr #3
62932   add r3, r3, r1
62933   mla r0, r2, r0, r3
62934   and r1, lr, #7
62935   ldrb  r3, [r0, r1]  @ zero_extendqisi2
62936   add r7, r7, #1
62937   cmp r3, #0
62938   ldrne r2, [sp, #56]
62939   ldr r3, [sp, #56]
62940   ldrneh  r2, [r2, #0]
62941   add r4, r4, r6
62942   strneh  r2, [r8, #0]  @ movhi
62943   add r3, r3, #2
62944   cmp fp, r7
62945   mov ip, r4, asr #8
62946   mov lr, r5, asr #8
62947   add r8, r8, #2
62948   str r3, [sp, #56]
62949   ble .L19663
62950 .L19698:
62951   cmp ip, sl
62952   cmpcc lr, r9
62953   bcc .L20479
62954   b .L19663
62955 .L19667:
62956   ldr lr, [sp, #64]
62957   tst r7, #8192
62958   rsb ip, r0, lr
62959   rsbne r3, ip, sl
62960   subne ip, r3, #1
62961   mov r2, r7, asl #19
62962   and r3, fp, #2
62963   orr r3, r3, r2, lsr #31
62964   cmp r3, #3
62965   ldrls pc, [pc, r3, asl #2]
62966   b .L19663
62967   .p2align 2
62968 .L19747:
62969   .word .L19743
62970   .word .L19744
62971   .word .L19745
62972   .word .L19746
62973 .L20448:
62974   add sp, sp, #604
62975   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
62976 .L19669:
62977   ldr r5, .L20498+16
62978   mov r3, r7, lsr #4
62979   and r3, r3, #992
62980   add r3, r3, r5
62981   ldr r4, [sp, #28]
62982   add r1, sl, sl, lsr #31
62983   ldrh  r6, [r3, #30]
62984   mov lr, r1, asr #1
62985   add r2, r9, r9, lsr #31
62986   ldr r1, [sp, #20]
62987   cmp r4, #0
62988   mov ip, r2, asr #1
62989   str r6, [sp, #36]
62990   moveq r5, ip
62991   moveq r6, r9
62992   moveq r4, lr
62993   movne r6, r9, asl #1
62994   movne r5, ip, asl #1
62995   movne r4, lr, asl #1
62996   cmp r8, r1
62997   ldrh  r7, [r3, #6]
62998   ldrh  r2, [r3, #14]
62999   ldrh  fp, [r3, #22]
63000   bge .L19706
63001   rsb r1, r8, r1
63002   rsb r6, r1, r6
63003   cmp r6, #0
63004   ble .L19663
63005   ldr r8, [sp, #20]
63006   rsb r5, r1, r5
63007 .L19706:
63008   ldr r1, [sp, #16]
63009   add r3, r8, r6
63010   cmp r3, r1
63011   bge .L20480
63012 .L19709:
63013   add r0, r0, r4
63014   ldr r4, [sp, #36]
63015   mov ip, ip, asl #8
63016   mov r1, r4, asl #16
63017   mov r3, r7, asl #16
63018   mov r2, r2, asl #16
63019   mov r4, r1, asr #16
63020   str ip, [sp, #104]
63021   ldr r1, [sp, #64]
63022   mov ip, lr, asl #8
63023   ldr lr, [sp, #12]
63024   mov r3, r3, asr #16
63025   mov r2, r2, asr #16
63026   cmp fp, #0
63027   add r8, lr, r8, asl #1
63028   str r3, [sp, #84]
63029   str r2, [sp, #88]
63030   rsb lr, r0, r1
63031   beq .L20481
63032   ldr r0, [sp, #24]
63033   cmp r9, #0
63034   add r1, r9, #7
63035   mov r2, r0, asl #22
63036   movge r1, r9
63037   ldr r3, .L20498+28
63038   mov r2, r2, lsr #22
63039   mov r1, r1, asr #3
63040   add r2, r3, r2, asl #5
63041   mov r1, r1, asl #5
63042   cmp r6, #0
63043   str r2, [sp, #112]
63044   str r1, [sp, #96]
63045   ble .L19663
63046   mov r3, fp, asl #16
63047   mov r3, r3, asr #16
63048   str r3, [sp, #92]
63049   ldr r1, [sp, #92]
63050   ldr r3, [sp, #88]
63051   ldr r0, [sp, #84]
63052   mul r2, lr, r4
63053   mul r1, r5, r1
63054   mul r3, lr, r3
63055   mul r0, r5, r0
63056   rsb r2, r1, r2
63057   ldr r1, [sp, #104]
63058   rsb r3, r0, r3
63059   add r5, r1, r3
63060   add r4, ip, r2
63061   mov lr, r5, asr #8
63062   mov r3, r4, asr #8
63063   cmp lr, r9
63064   cmpcc r3, sl
63065   movcs r2, #0
63066   movcc r2, #1
63067   movcs r7, r2
63068   bcc .L20482
63069 .L19730:
63070   ldr r3, [sp, #92]
63071   ldr ip, [sp, #56]
63072   ldr r2, [sp, #84]
63073   add r7, r7, #1
63074   add r5, r5, r2
63075   add r4, r4, r3
63076   add ip, ip, #2
63077   cmp r6, r7
63078   mov lr, r5, asr #8
63079   mov r3, r4, asr #8
63080   add r8, r8, #2
63081   str ip, [sp, #56]
63082   beq .L19663
63083   cmp lr, r9
63084   cmpcc r3, sl
63085   bcs .L19730
63086   cmp r3, sl
63087   cmpcc lr, r9
63088   bcs .L19663
63089 .L20483:
63090   ldr r1, [sp, #112]
63091   and r0, r3, #7
63092   ldr r2, [sp, #96]
63093   add r0, r1, r0, asl #2
63094   and r1, r3, #7
63095   mov r3, r3, asr #3
63096   mov ip, lr, asr #1
63097   mul r2, r3, r2
63098   and fp, ip, #3
63099   ldr ip, [sp, #112]
63100   mov r3, lr, asr #1
63101   add r1, ip, r1, asl #2
63102   and ip, r3, #3
63103   mov r3, lr, asr #3
63104   add r2, r2, r3, asl #5
63105   add r3, r0, r2
63106   tst lr, #1
63107   add r0, r1, r2
63108   ldreqb  r3, [r0, ip]  @ zero_extendqisi2
63109   ldrneb  r3, [r3, fp]  @ zero_extendqisi2
63110   andeq r0, r3, #15
63111   movne r0, r3, lsr #4
63112   cmp r0, #0
63113   ldrne r2, [sp, #56]
63114   ldr lr, [sp, #84]
63115   ldrneh  r2, [r2, #0]
63116   ldr ip, [sp, #56]
63117   ldr r1, [sp, #92]
63118   add r7, r7, #1
63119   strneh  r2, [r8, #0]  @ movhi
63120   add r5, r5, lr
63121   add r4, r4, r1
63122   add ip, ip, #2
63123   cmp r6, r7
63124   mov lr, r5, asr #8
63125   mov r3, r4, asr #8
63126   add r8, r8, #2
63127   str ip, [sp, #56]
63128   ble .L19663
63129 .L19733:
63130   cmp r3, sl
63131   cmpcc lr, r9
63132   bcc .L20483
63133   b .L19663
63134 .L20480:
63135   rsb r6, r8, r1
63136   cmp r6, #0
63137   bgt .L19709
63138   b .L19663
63139 .L20476:
63140   rsb fp, r8, r1
63141   cmp fp, #0
63142   bgt .L19677
63143   b .L19663
63144 .L20477:
63145   mla r3, lr, r4, ip
63146   mov r0, r3, asr #8
63147   cmp r0, sl
63148   bcs .L19663
63149   cmp r9, #0
63150   ldr r4, [sp, #24]
63151   add r3, r9, #7
63152   movge r3, r9
63153   mov r2, r4, asl #22
63154   mov r3, r3, asr #3
63155   mov r3, r3, asl #1
63156   mov r1, r0, lsr #3
63157   mov r2, r2, lsr #22
63158   mla ip, r3, r1, r2
63159   and r0, r0, #7
63160   ldr r3, .L20498+28
63161   add r0, r0, ip, asl #2
63162   cmp fp, #0
63163   add r4, r3, r0, asl #3
63164   ble .L19663
63165   ldr r2, [sp, #76]
63166   mul r3, lr, r7
63167   mul r2, r5, r2
63168   ldr r5, [sp, #108]
63169   rsb r3, r2, r3
63170   add r0, r5, r3
63171   mov ip, r0, asr #8
63172   cmp ip, r9
63173   movcs lr, r6
63174   bcc .L20484
63175 .L19685:
63176   ldr r1, [sp, #56]
63177   ldr r6, [sp, #76]
63178   add lr, lr, #1
63179   add r0, r0, r6
63180   add r1, r1, #2
63181   cmp fp, lr
63182   mov ip, r0, asr #8
63183   add r8, r8, #2
63184   str r1, [sp, #56]
63185   beq .L19663
63186   cmp ip, r9
63187   bcs .L19685
63188   b .L20462
63189 .L20481:
63190   mla r3, lr, r4, ip
63191   mov r0, r3, asr #8
63192   cmp r0, sl
63193   bcs .L19663
63194   ldr r4, [sp, #24]
63195   cmp r9, #0
63196   add r3, r9, #7
63197   mov r2, r4, asl #22
63198   movge r3, r9
63199   mov r3, r3, asr #3
63200   mov r1, r0, lsr #3
63201   mov r2, r2, lsr #22
63202   mla ip, r3, r1, r2
63203   and r0, r0, #7
63204   ldr r3, .L20498+28
63205   add r0, r0, ip, asl #3
63206   cmp r6, #0
63207   add r7, r3, r0, asl #2
63208   ble .L19663
63209   ldr r3, [sp, #88]
63210   ldr r2, [sp, #84]
63211   mul r3, lr, r3
63212   mul r2, r5, r2
63213   ldr r5, [sp, #104]
63214   rsb r3, r2, r3
63215   add r0, r5, r3
63216   mov ip, r0, asr #8
63217   cmp ip, r9
63218   movcs r1, fp
63219   bcc .L20485
63220 .L19717:
63221   ldr ip, [sp, #84]
63222   ldr lr, [sp, #56]
63223   add r1, r1, #1
63224   add r0, r0, ip
63225   add lr, lr, #2
63226   cmp r6, r1
63227   mov ip, r0, asr #8
63228   add r8, r8, #2
63229   str lr, [sp, #56]
63230   beq .L19663
63231   cmp ip, r9
63232   bcs .L19717
63233   b .L20464
63234 .L19746:
63235   cmp r9, #0
63236   add r2, r9, #7
63237   movge r2, r9
63238   subs  r3, r9, #8
63239   submi r3, r9, #1
63240   mov lr, r2, asr #3
63241   mov r3, r3, asr #3
63242   mov r1, ip, lsr #3
63243   mla r0, lr, r1, r3
63244   ldr r1, [sp, #24]
63245   and r3, ip, #7
63246   mov r2, r1, asl #22
63247   mov r2, r2, lsr #22
63248   add r2, r2, r0, asl #1
63249   add r3, r3, r2, asl #2
63250   ldr r2, [sp, #20]
63251   mov r0, r3, asl #3
63252   ldr r3, .L20498+28
63253   cmp r8, r2
63254   add r7, r0, r3
63255   blt .L20486
63256   ldr r4, [sp, #16]
63257   add r3, r8, r9
63258   cmp r4, r3
63259   bhi .L20384
63260   rsb r9, r8, r4
63261   cmp r9, #0
63262   ble .L19663
63263   ldr r5, [sp, #12]
63264   movs  sl, r9, lsr #3
63265   add r1, r5, r8, asl #1
63266   beq .L20387
63267   ldr r3, .L20498+32
63268   ldr r4, [sp, #56]
63269   add r0, r0, r3
63270   mov lr, r1
63271   mov r5, r7
63272   mov r2, #0
63273 .L20389:
63274   ldr ip, [r0, #68]
63275   cmp ip, #0
63276   beq .L20390
63277   tst ip, #255
63278   ldrneh  r6, [r4, #6]
63279   mov r3, ip, lsr #8
63280   strneh  r6, [lr, #6]  @ movhi
63281   tst r3, #255
63282   ldrneh  r3, [r4, #4]
63283   strneh  r3, [lr, #4]  @ movhi
63284   mov r3, ip, lsr #16
63285   tst r3, #255
63286   ldrneh  r6, [r4, #2]
63287   strneh  r6, [lr, #2]  @ movhi
63288   movs  ip, ip, lsr #24
63289   ldrneh  ip, [r4, #0]
63290   strneh  ip, [lr, #0]  @ movhi
63291 .L20390:
63292   ldr ip, [r5, #0]
63293   cmp ip, #0
63294   beq .L20399
63295   tst ip, #255
63296   ldrneh  r3, [r4, #14]
63297   strneh  r3, [lr, #14] @ movhi
63298   mov r3, ip, lsr #8
63299   tst r3, #255
63300   ldrneh  r6, [r4, #12]
63301   mov r3, ip, lsr #16
63302   strneh  r6, [lr, #12] @ movhi
63303   tst r3, #255
63304   ldrneh  r3, [r4, #10]
63305   strneh  r3, [lr, #10] @ movhi
63306   movs  ip, ip, lsr #24
63307   ldrneh  r6, [r4, #8]
63308   strneh  r6, [lr, #8]  @ movhi
63309 .L20399:
63310   add r2, r2, #1
63311   cmp sl, r2
63312   sub r5, r5, #64
63313   add lr, lr, #16
63314   add r4, r4, #16
63315   sub r0, r0, #64
63316   bne .L20389
63317   ldr ip, [sp, #56]
63318   mov r3, sl, asl #4
63319   rsb r2, sl, sl, asl #26
63320   add ip, ip, r3
63321   add r1, r1, r3
63322   add r7, r7, r2, asl #6
63323   str ip, [sp, #56]
63324 .L20387:
63325   ands  ip, r9, #7
63326   beq .L19663
63327   cmp ip, #3
63328   ldrls r2, [r7, #4]
63329   bls .L20422
63330   ldr r2, [r7, #4]
63331   cmp r2, #0
63332   beq .L20412
63333   tst r2, #255
63334   ldrne lr, [sp, #56]
63335   mov r3, r2, lsr #8
63336   ldrneh  lr, [lr, #6]
63337   strneh  lr, [r1, #6]  @ movhi
63338   tst r3, #255
63339   ldrne r0, [sp, #56]
63340   mov r3, r2, lsr #16
63341   ldrneh  r0, [r0, #4]
63342   strneh  r0, [r1, #4]  @ movhi
63343   tst r3, #255
63344   ldrne r3, [sp, #56]
63345   ldrneh  r3, [r3, #2]
63346   strneh  r3, [r1, #2]  @ movhi
63347   movs  r2, r2, lsr #24
63348   ldrne r4, [sp, #56]
63349   ldrneh  r4, [r4, #0]
63350   strneh  r4, [r1, #0]  @ movhi
63351 .L20412:
63352   subs  ip, ip, #4
63353   ldr r2, [r7, #0]
63354   beq .L19663
63355   ldr r5, [sp, #56]
63356   add r1, r1, #8
63357   add r5, r5, #8
63358   str r5, [sp, #56]
63359 .L20422:
63360   mov r3, #0
63361 .L20423:
63362   movs  r6, r2, lsr #24
63363   ldrne lr, [sp, #56]
63364   mov r0, r3, asl #1
63365   ldrneh  lr, [r0, lr]
63366   add r3, r3, #1
63367   strneh  lr, [r0, r1]  @ movhi
63368   cmp ip, r3
63369   mov r2, r2, asl #8
63370   bhi .L20423
63371   b .L19663
63372 .L19743:
63373   ldr r0, [sp, #24]
63374   cmp r9, #0
63375   add r3, r9, #7
63376   mov r2, r0, asl #22
63377   movge r3, r9
63378   mov lr, r3, asr #3
63379   mov r2, r2, lsr #22
63380   mov r3, ip, lsr #3
63381   mla r0, lr, r3, r2
63382   ldr r2, [sp, #20]
63383   and r1, ip, #7
63384   ldr r3, .L20498+28
63385   add r1, r1, r0, asl #3
63386   cmp r8, r2
63387   add r0, r3, r1, asl #2
63388   blt .L20487
63389   ldr r4, [sp, #16]
63390   add r3, r8, r9
63391   cmp r4, r3
63392   bhi .L19829
63393   rsb r7, r8, r4
63394   cmp r7, #0
63395   ble .L19663
63396   ldr r6, [sp, #12]
63397   movs  r5, r7, lsr #3
63398   add r1, r6, r8, asl #1
63399   beq .L19832
63400   ldr lr, [sp, #56]
63401   mov ip, r1
63402   mov r4, r0
63403   mov r2, #0
63404 .L19834:
63405   ldr r3, [r4, #0]
63406   cmp r3, #0
63407   beq .L19835
63408   tst r3, #15
63409   ldrneh  r6, [lr, #0]
63410   strneh  r6, [ip, #0]  @ movhi
63411   tst r3, #240
63412   ldrneh  r6, [lr, #2]
63413   strneh  r6, [ip, #2]  @ movhi
63414   tst r3, #3840
63415   ldrneh  r6, [lr, #4]
63416   strneh  r6, [ip, #4]  @ movhi
63417   tst r3, #61440
63418   ldrneh  r6, [lr, #6]
63419   strneh  r6, [ip, #6]  @ movhi
63420   tst r3, #983040
63421   ldrneh  r6, [lr, #8]
63422   strneh  r6, [ip, #8]  @ movhi
63423   tst r3, #15728640
63424   ldrneh  r6, [lr, #10]
63425   strneh  r6, [ip, #10] @ movhi
63426   tst r3, #251658240
63427   ldrneh  r6, [lr, #12]
63428   strneh  r6, [ip, #12] @ movhi
63429   movs  r3, r3, lsr #28
63430   ldrneh  r3, [lr, #14]
63431   strneh  r3, [ip, #14] @ movhi
63432 .L19835:
63433   add r2, r2, #1
63434   cmp r2, r5
63435   add r4, r4, #32
63436   add ip, ip, #16
63437   add lr, lr, #16
63438   bne .L19834
63439   ldr r4, [sp, #56]
63440   mov r3, r5, asl #4
63441   add r4, r4, r3
63442   add r1, r1, r3
63443   add r0, r0, r5, asl #5
63444   str r4, [sp, #56]
63445 .L19832:
63446   ands  ip, r7, #7
63447   beq .L19663
63448   ldr r0, [r0, #0]
63449   mov r2, #0
63450 .L19854:
63451   tst r0, #15
63452   ldrne r5, [sp, #56]
63453   mov r3, r2, asl #1
63454   ldrneh  r5, [r3, r5]
63455   add r2, r2, #1
63456   strneh  r5, [r3, r1]  @ movhi
63457   cmp r2, ip
63458   mov r0, r0, lsr #4
63459   bne .L19854
63460   b .L19663
63461 .L19744:
63462   ldr lr, [sp, #24]
63463   cmp r9, #0
63464   add r3, r9, #7
63465   mov r2, lr, asl #22
63466   movge r3, r9
63467   mov lr, r3, asr #3
63468   mov r2, r2, lsr #22
63469   mov r1, ip, lsr #3
63470   mla r0, lr, r1, r2
63471   subs  r3, r9, #8
63472   submi r3, r9, #1
63473   add r0, r0, r3, asr #3
63474   and r2, ip, #7
63475   add r2, r2, r0, asl #3
63476   ldr r0, [sp, #20]
63477   ldr r3, .L20498+28
63478   cmp r8, r0
63479   add r0, r3, r2, asl #2
63480   blt .L20488
63481   ldr r1, [sp, #16]
63482   add r3, r8, r9
63483   cmp r1, r3
63484   bhi .L19959
63485   rsb r7, r8, r1
63486   cmp r7, #0
63487   ble .L19663
63488   ldr r2, [sp, #12]
63489   movs  r3, r7, lsr #3
63490   add r1, r2, r8, asl #1
63491   beq .L19962
63492   ldr lr, [sp, #56]
63493   mov ip, r1
63494   mov r4, r0
63495   mov r5, #0
63496 .L19964:
63497   ldr r2, [r4, #0]
63498   cmp r2, #0
63499   beq .L19965
63500   tst r2, #15
63501   ldrneh  r6, [lr, #14]
63502   strneh  r6, [ip, #14] @ movhi
63503   tst r2, #240
63504   ldrneh  r6, [lr, #12]
63505   strneh  r6, [ip, #12] @ movhi
63506   tst r2, #3840
63507   ldrneh  r6, [lr, #10]
63508   strneh  r6, [ip, #10] @ movhi
63509   tst r2, #61440
63510   ldrneh  r6, [lr, #8]
63511   strneh  r6, [ip, #8]  @ movhi
63512   tst r2, #983040
63513   ldrneh  r6, [lr, #6]
63514   strneh  r6, [ip, #6]  @ movhi
63515   tst r2, #15728640
63516   ldrneh  r6, [lr, #4]
63517   strneh  r6, [ip, #4]  @ movhi
63518   tst r2, #251658240
63519   ldrneh  r6, [lr, #2]
63520   strneh  r6, [ip, #2]  @ movhi
63521   movs  r2, r2, lsr #28
63522   ldrneh  r2, [lr, #0]
63523   strneh  r2, [ip, #0]  @ movhi
63524 .L19965:
63525   add r5, r5, #1
63526   cmp r5, r3
63527   sub r4, r4, #32
63528   add ip, ip, #16
63529   add lr, lr, #16
63530   bne .L19964
63531   ldr r4, [sp, #56]
63532   rsb r2, r3, r3, asl #27
63533   mov r3, r3, asl #4
63534   add r4, r4, r3
63535   add r1, r1, r3
63536   add r0, r0, r2, asl #5
63537   str r4, [sp, #56]
63538 .L19962:
63539   ands  ip, r7, #7
63540   beq .L19663
63541   ldr r0, [r0, #0]
63542   mov r2, #0
63543 .L19984:
63544   movs  r5, r0, lsr #28
63545   ldrne r6, [sp, #56]
63546   mov r3, r2, asl #1
63547   ldrneh  r6, [r3, r6]
63548   add r2, r2, #1
63549   strneh  r6, [r3, r1]  @ movhi
63550   cmp r2, ip
63551   mov r0, r0, asl #4
63552   bne .L19984
63553   b .L19663
63554 .L19745:
63555   ldr r4, [sp, #24]
63556   cmp r9, #0
63557   add r3, r9, #7
63558   mov r1, r4, asl #22
63559   movge r3, r9
63560   mov r2, ip, lsr #3
63561   mov r4, r3, asr #3
63562   mov r2, r2, asl #1
63563   mov r1, r1, lsr #22
63564   mla r0, r2, r4, r1
63565   and r3, ip, #7
63566   add r3, r3, r0, asl #2
63567   ldr r5, [sp, #20]
63568   mov r0, r3, asl #3
63569   ldr r3, .L20498+28
63570   cmp r8, r5
63571   add r2, r0, r3
63572   blt .L20489
63573   ldr r5, [sp, #16]
63574   add r3, r8, r9
63575   cmp r5, r3
63576   bhi .L20164
63577   rsb r9, r8, r5
63578   cmp r9, #0
63579   ble .L19663
63580   ldr r6, [sp, #12]
63581   movs  sl, r9, lsr #3
63582   add r1, r6, r8, asl #1
63583   beq .L20167
63584   ldr r3, .L20498+36
63585   ldr r4, [sp, #56]
63586   add r0, r0, r3
63587   mov lr, r1
63588   mov r5, r2
63589   mov r7, #0
63590 .L20169:
63591   ldr ip, [r5, #0]
63592   cmp ip, #0
63593   beq .L20170
63594   tst ip, #255
63595   ldrneh  r3, [r4, #0]
63596   strneh  r3, [lr, #0]  @ movhi
63597   mov r3, ip, lsr #8
63598   tst r3, #255
63599   ldrneh  r6, [r4, #2]
63600   mov r3, ip, lsr #16
63601   strneh  r6, [lr, #2]  @ movhi
63602   tst r3, #255
63603   ldrneh  r3, [r4, #4]
63604   strneh  r3, [lr, #4]  @ movhi
63605   movs  ip, ip, lsr #24
63606   ldrneh  r6, [r4, #6]
63607   strneh  r6, [lr, #6]  @ movhi
63608 .L20170:
63609   ldr ip, [r0, #-60]
63610   cmp ip, #0
63611   beq .L20179
63612   tst ip, #255
63613   ldrneh  r3, [r4, #8]
63614   strneh  r3, [lr, #8]  @ movhi
63615   mov r3, ip, lsr #8
63616   tst r3, #255
63617   ldrneh  r6, [r4, #10]
63618   mov r3, ip, lsr #16
63619   strneh  r6, [lr, #10] @ movhi
63620   tst r3, #255
63621   ldrneh  r3, [r4, #12]
63622   strneh  r3, [lr, #12] @ movhi
63623   movs  ip, ip, lsr #24
63624   ldrneh  r6, [r4, #14]
63625   strneh  r6, [lr, #14] @ movhi
63626 .L20179:
63627   add r7, r7, #1
63628   cmp r7, sl
63629   add r5, r5, #64
63630   add lr, lr, #16
63631   add r4, r4, #16
63632   add r0, r0, #64
63633   bne .L20169
63634   ldr ip, [sp, #56]
63635   mov r3, sl, asl #4
63636   add ip, ip, r3
63637   add r1, r1, r3
63638   add r2, r2, sl, asl #6
63639   str ip, [sp, #56]
63640 .L20167:
63641   ands  ip, r9, #7
63642   beq .L19663
63643   cmp ip, #3
63644   ldrls r3, [r2, #0]
63645   bls .L20202
63646   ldr r0, [r2, #0]
63647   cmp r0, #0
63648   beq .L20192
63649   tst r0, #255
63650   ldrne lr, [sp, #56]
63651   mov r3, r0, lsr #8
63652   ldrneh  lr, [lr, #0]
63653   strneh  lr, [r1, #0]  @ movhi
63654   tst r3, #255
63655   ldrne r3, [sp, #56]
63656   ldrneh  r3, [r3, #2]
63657   strneh  r3, [r1, #2]  @ movhi
63658   mov r3, r0, lsr #16
63659   tst r3, #255
63660   ldrne r4, [sp, #56]
63661   ldrneh  r4, [r4, #4]
63662   strneh  r4, [r1, #4]  @ movhi
63663   movs  r0, r0, lsr #24
63664   ldrne r5, [sp, #56]
63665   ldrneh  r5, [r5, #6]
63666   strneh  r5, [r1, #6]  @ movhi
63667 .L20192:
63668   subs  ip, ip, #4
63669   ldr r3, [r2, #4]
63670   beq .L19663
63671   ldr r6, [sp, #56]
63672   add r1, r1, #8
63673   add r6, r6, #8
63674   str r6, [sp, #56]
63675 .L20202:
63676   mov r2, #0
63677 .L20203:
63678   tst r3, #255
63679   ldrne lr, [sp, #56]
63680   mov r0, r2, asl #1
63681   ldrneh  lr, [r0, lr]
63682   add r2, r2, #1
63683   strneh  lr, [r0, r1]  @ movhi
63684   cmp ip, r2
63685   mov r3, r3, lsr #8
63686   bhi .L20203
63687   b .L19663
63688 .L20499:
63689   .align  2
63690 .L20498:
63691   .word io_registers
63692   .word obj_priority_count
63693   .word obj_priority_list
63694   .word tile_mode_renderers
63695   .word oam_ram
63696   .word obj_width_table
63697   .word obj_height_table
63698   .word vram+65536
63699   .word vram+65472
63700   .word vram+65600
63701 .L20489:
63702   rsb r0, r8, r5
63703   rsb lr, r0, r9
63704   cmp lr, #0
63705   ble .L19663
63706   ldr r6, [sp, #16]
63707   add r3, r8, r9
63708   cmp r6, r3
63709   bhi .L20011
63710   mov r3, r0, lsr #3
63711   ands  ip, r0, #7
63712   add r8, r2, r3, asl #6
63713   bne .L20013
63714   ldr r7, [sp, #120]
63715   ldr r5, [sp, #100]
63716 .L20015:
63717   movs  r4, r7, lsr #3
63718   beq .L20073
63719   ldr r0, [sp, #56]
63720   mov r1, r5
63721   mov ip, r8
63722   mov lr, #0
63723 .L20075:
63724   ldr r2, [ip, #0]
63725   cmp r2, #0
63726   beq .L20076
63727   tst r2, #255
63728   ldrneh  r3, [r0, #0]
63729   strneh  r3, [r1, #0]  @ movhi
63730   mov r3, r2, lsr #8
63731   tst r3, #255
63732   ldrneh  r6, [r0, #2]
63733   mov r3, r2, lsr #16
63734   strneh  r6, [r1, #2]  @ movhi
63735   tst r3, #255
63736   ldrneh  r3, [r0, #4]
63737   strneh  r3, [r1, #4]  @ movhi
63738   movs  r2, r2, lsr #24
63739   ldrneh  r6, [r0, #6]
63740   strneh  r6, [r1, #6]  @ movhi
63741 .L20076:
63742   ldr r2, [ip, #4]
63743   cmp r2, #0
63744   beq .L20085
63745   tst r2, #255
63746   ldrneh  r3, [r0, #8]
63747   strneh  r3, [r1, #8]  @ movhi
63748   mov r3, r2, lsr #8
63749   tst r3, #255
63750   ldrneh  r6, [r0, #10]
63751   mov r3, r2, lsr #16
63752   strneh  r6, [r1, #10] @ movhi
63753   tst r3, #255
63754   ldrneh  r3, [r0, #12]
63755   strneh  r3, [r1, #12] @ movhi
63756   movs  r2, r2, lsr #24
63757   ldrneh  r6, [r0, #14]
63758   strneh  r6, [r1, #14] @ movhi
63759 .L20085:
63760   add lr, lr, #1
63761   cmp lr, r4
63762   add ip, ip, #64
63763   add r1, r1, #16
63764   add r0, r0, #16
63765   bne .L20075
63766   ldr ip, [sp, #56]
63767   mov r3, r4, asl #4
63768   add ip, ip, r3
63769   add r5, r5, r3
63770   add r8, r8, r4, asl #6
63771   str ip, [sp, #56]
63772 .L20073:
63773   ands  r0, r7, #7
63774   beq .L19663
63775   cmp r0, #3
63776   ldrls r3, [r8, #0]
63777   bls .L20108
63778   ldr r2, [r8, #0]
63779   cmp r2, #0
63780   beq .L20098
63781   tst r2, #255
63782   ldrne lr, [sp, #56]
63783   mov r3, r2, lsr #8
63784   ldrneh  lr, [lr, #0]
63785   strneh  lr, [r5, #0]  @ movhi
63786   tst r3, #255
63787   ldrne r1, [sp, #56]
63788   mov r3, r2, lsr #16
63789   ldrneh  r1, [r1, #2]
63790   strneh  r1, [r5, #2]  @ movhi
63791   tst r3, #255
63792   ldrne r3, [sp, #56]
63793   ldrneh  r3, [r3, #4]
63794   strneh  r3, [r5, #4]  @ movhi
63795   movs  r2, r2, lsr #24
63796   ldrne r4, [sp, #56]
63797   ldrneh  r4, [r4, #6]
63798   strneh  r4, [r5, #6]  @ movhi
63799 .L20098:
63800   subs  r0, r0, #4
63801   ldr r3, [r8, #4]
63802   beq .L19663
63803   ldr r6, [sp, #56]
63804   add r5, r5, #8
63805   add r6, r6, #8
63806   str r6, [sp, #56]
63807 .L20108:
63808   mov r2, #0
63809 .L20109:
63810   tst r3, #255
63811   ldrne ip, [sp, #56]
63812   mov r1, r2, asl #1
63813   ldrneh  ip, [r1, ip]
63814   add r2, r2, #1
63815   strneh  ip, [r1, r5]  @ movhi
63816   cmp r0, r2
63817   mov r3, r3, lsr #8
63818   bhi .L20109
63819   b .L19663
63820 .L20488:
63821   ldr r1, [sp, #20]
63822   rsb ip, r8, r1
63823   rsb r1, ip, r9
63824   cmp r1, #0
63825   ble .L19663
63826   ldr r2, [sp, #16]
63827   add r3, r8, r9
63828   cmp r2, r3
63829   bhi .L19881
63830   mov r3, ip, lsr #3
63831   ands  r4, ip, #7
63832   sub r0, r0, r3, asl #5
63833   bne .L19883
63834   ldr r7, [sp, #120]
63835   ldr r1, [sp, #100]
63836 .L19885:
63837   movs  r3, r7, lsr #3
63838   beq .L19902
63839   ldr lr, [sp, #56]
63840   mov ip, r1
63841   mov r4, r0
63842   mov r5, #0
63843 .L19904:
63844   ldr r2, [r4, #0]
63845   cmp r2, #0
63846   beq .L19905
63847   tst r2, #15
63848   ldrneh  r6, [lr, #14]
63849   strneh  r6, [ip, #14] @ movhi
63850   tst r2, #240
63851   ldrneh  r6, [lr, #12]
63852   strneh  r6, [ip, #12] @ movhi
63853   tst r2, #3840
63854   ldrneh  r6, [lr, #10]
63855   strneh  r6, [ip, #10] @ movhi
63856   tst r2, #61440
63857   ldrneh  r6, [lr, #8]
63858   strneh  r6, [ip, #8]  @ movhi
63859   tst r2, #983040
63860   ldrneh  r6, [lr, #6]
63861   strneh  r6, [ip, #6]  @ movhi
63862   tst r2, #15728640
63863   ldrneh  r6, [lr, #4]
63864   strneh  r6, [ip, #4]  @ movhi
63865   tst r2, #251658240
63866   ldrneh  r6, [lr, #2]
63867   strneh  r6, [ip, #2]  @ movhi
63868   movs  r2, r2, lsr #28
63869   ldrneh  r2, [lr, #0]
63870   strneh  r2, [ip, #0]  @ movhi
63871 .L19905:
63872   add r5, r5, #1
63873   cmp r5, r3
63874   sub r4, r4, #32
63875   add ip, ip, #16
63876   add lr, lr, #16
63877   bne .L19904
63878   ldr r4, [sp, #56]
63879   rsb r2, r3, r3, asl #27
63880   mov r3, r3, asl #4
63881   add r4, r4, r3
63882   add r1, r1, r3
63883   add r0, r0, r2, asl #5
63884   str r4, [sp, #56]
63885 .L19902:
63886   ands  ip, r7, #7
63887   beq .L19663
63888   ldr r0, [r0, #0]
63889   mov r2, #0
63890 .L19924:
63891   movs  r5, r0, lsr #28
63892   ldrne r6, [sp, #56]
63893   mov r3, r2, asl #1
63894   ldrneh  r6, [r3, r6]
63895   add r2, r2, #1
63896   strneh  r6, [r3, r1]  @ movhi
63897   cmp r2, ip
63898   mov r0, r0, asl #4
63899   bne .L19924
63900   b .L19663
63901 .L20487:
63902   rsb ip, r8, r2
63903   rsb lr, ip, r9
63904   cmp lr, #0
63905   ble .L19663
63906   ldr r4, [sp, #16]
63907   add r3, r8, r9
63908   cmp r4, r3
63909   bhi .L19751
63910   mov r3, ip, lsr #3
63911   mov r1, r3, asl #5
63912   ands  r3, ip, #7
63913   add r4, r0, r1
63914   bne .L19753
63915   ldr r7, [sp, #120]
63916   ldr r5, [sp, #100]
63917 .L19755:
63918   movs  lr, r7, lsr #3
63919   beq .L19772
63920   ldr r1, [sp, #56]
63921   mov r2, r5
63922   mov r0, r4
63923   mov ip, #0
63924 .L19774:
63925   ldr r3, [r0, #0]
63926   cmp r3, #0
63927   beq .L19775
63928   tst r3, #15
63929   ldrneh  r6, [r1, #0]
63930   strneh  r6, [r2, #0]  @ movhi
63931   tst r3, #240
63932   ldrneh  r6, [r1, #2]
63933   strneh  r6, [r2, #2]  @ movhi
63934   tst r3, #3840
63935   ldrneh  r6, [r1, #4]
63936   strneh  r6, [r2, #4]  @ movhi
63937   tst r3, #61440
63938   ldrneh  r6, [r1, #6]
63939   strneh  r6, [r2, #6]  @ movhi
63940   tst r3, #983040
63941   ldrneh  r6, [r1, #8]
63942   strneh  r6, [r2, #8]  @ movhi
63943   tst r3, #15728640
63944   ldrneh  r6, [r1, #10]
63945   strneh  r6, [r2, #10] @ movhi
63946   tst r3, #251658240
63947   ldrneh  r6, [r1, #12]
63948   strneh  r6, [r2, #12] @ movhi
63949   movs  r3, r3, lsr #28
63950   ldrneh  r3, [r1, #14]
63951   strneh  r3, [r2, #14] @ movhi
63952 .L19775:
63953   add ip, ip, #1
63954   cmp ip, lr
63955   add r0, r0, #32
63956   add r2, r2, #16
63957   add r1, r1, #16
63958   bne .L19774
63959   ldr r6, [sp, #56]
63960   mov r3, lr, asl #4
63961   add r6, r6, r3
63962   add r5, r5, r3
63963   add r4, r4, lr, asl #5
63964   str r6, [sp, #56]
63965 .L19772:
63966   ands  r0, r7, #7
63967   beq .L19663
63968   ldr r3, [r4, #0]
63969   mov r1, #0
63970 .L19794:
63971   tst r3, #15
63972   ldrne ip, [sp, #56]
63973   mov r2, r1, asl #1
63974   ldrneh  ip, [r2, ip]
63975   add r1, r1, #1
63976   strneh  ip, [r2, r5]  @ movhi
63977   cmp r1, r0
63978   mov r3, r3, lsr #4
63979   bne .L19794
63980   b .L19663
63981 .L19720:
63982   cmp ip, r9
63983   bcs .L19663
63984 .L20464:
63985   mov r3, ip, asr #1
63986   and r4, r3, #3
63987   mov r3, ip, asr #3
63988   mov r3, r3, asl #5
63989   mov r2, ip, asr #1
63990   tst ip, #1
63991   and lr, r2, #3
63992   add ip, r3, r7
63993   add r2, r3, r7
63994   ldreqb  r3, [r2, lr]  @ zero_extendqisi2
63995   ldrneb  r3, [ip, r4]  @ zero_extendqisi2
63996   andeq r2, r3, #15
63997   movne r2, r3, lsr #4
63998   cmp r2, #0
63999   ldrne r4, [sp, #56]
64000   ldr r5, [sp, #56]
64001   ldrneh  r4, [r4, #0]
64002   ldr r3, [sp, #84]
64003   add r1, r1, #1
64004   strneh  r4, [r8, #0]  @ movhi
64005   add r0, r0, r3
64006   add r5, r5, #2
64007   cmp r6, r1
64008   mov ip, r0, asr #8
64009   add r8, r8, #2
64010   str r5, [sp, #56]
64011   bgt .L19720
64012   b .L19663
64013 .L19688:
64014   cmp ip, r9
64015   bcs .L19663
64016 .L20462:
64017   ldr r2, [sp, #76]
64018   mov r3, ip, asr #3
64019   add r3, r4, r3, asl #6
64020   and r1, ip, #7
64021   add r0, r0, r2
64022   ldrb  r2, [r3, r1]  @ zero_extendqisi2
64023   ldr r5, [sp, #56]
64024   cmp r2, #0
64025   ldrne r3, [sp, #56]
64026   add lr, lr, #1
64027   ldrneh  r3, [r3, #0]
64028   add r5, r5, #2
64029   strneh  r3, [r8, #0]  @ movhi
64030   cmp fp, lr
64031   mov ip, r0, asr #8
64032   add r8, r8, #2
64033   str r5, [sp, #56]
64034   bgt .L19688
64035   b .L19663
64036 .L20486:
64037   rsb r0, r8, r2
64038   rsb lr, r0, r9
64039   cmp lr, #0
64040   ble .L19663
64041   ldr r4, [sp, #16]
64042   add r3, r8, r9
64043   cmp r4, r3
64044   bhi .L20231
64045   mov r3, r0, lsr #3
64046   ands  ip, r0, #7
64047   sub r8, r7, r3, asl #6
64048   bne .L20233
64049   ldr r7, [sp, #120]
64050   ldr r5, [sp, #100]
64051 .L20235:
64052   movs  r4, r7, lsr #3
64053   beq .L20293
64054   ldr r0, [sp, #56]
64055   mov r1, r5
64056   mov ip, r8
64057   mov lr, #0
64058 .L20295:
64059   ldr r2, [ip, #4]
64060   cmp r2, #0
64061   beq .L20296
64062   tst r2, #255
64063   ldrneh  r3, [r0, #6]
64064   strneh  r3, [r1, #6]  @ movhi
64065   mov r3, r2, lsr #8
64066   tst r3, #255
64067   ldrneh  r6, [r0, #4]
64068   mov r3, r2, lsr #16
64069   strneh  r6, [r1, #4]  @ movhi
64070   tst r3, #255
64071   ldrneh  r3, [r0, #2]
64072   strneh  r3, [r1, #2]  @ movhi
64073   movs  r2, r2, lsr #24
64074   ldrneh  r6, [r0, #0]
64075   strneh  r6, [r1, #0]  @ movhi
64076 .L20296:
64077   ldr r2, [ip, #0]
64078   cmp r2, #0
64079   beq .L20305
64080   tst r2, #255
64081   ldrneh  r3, [r0, #14]
64082   strneh  r3, [r1, #14] @ movhi
64083   mov r3, r2, lsr #8
64084   tst r3, #255
64085   ldrneh  r6, [r0, #12]
64086   mov r3, r2, lsr #16
64087   strneh  r6, [r1, #12] @ movhi
64088   tst r3, #255
64089   ldrneh  r3, [r0, #10]
64090   strneh  r3, [r1, #10] @ movhi
64091   movs  r2, r2, lsr #24
64092   ldrneh  r6, [r0, #8]
64093   strneh  r6, [r1, #8]  @ movhi
64094 .L20305:
64095   add lr, lr, #1
64096   cmp lr, r4
64097   sub ip, ip, #64
64098   add r1, r1, #16
64099   add r0, r0, #16
64100   bne .L20295
64101   ldr ip, [sp, #56]
64102   mov r3, r4, asl #4
64103   rsb r2, r4, r4, asl #26
64104   add ip, ip, r3
64105   add r5, r5, r3
64106   add r8, r8, r2, asl #6
64107   str ip, [sp, #56]
64108 .L20293:
64109   ands  ip, r7, #7
64110   beq .L19663
64111   cmp ip, #3
64112   ldrls r2, [r8, #4]
64113   bls .L20328
64114   ldr r2, [r8, #4]
64115   cmp r2, #0
64116   beq .L20318
64117   tst r2, #255
64118   ldrne lr, [sp, #56]
64119   mov r3, r2, lsr #8
64120   ldrneh  lr, [lr, #6]
64121   strneh  lr, [r5, #6]  @ movhi
64122   tst r3, #255
64123   ldrne r0, [sp, #56]
64124   mov r3, r2, lsr #16
64125   ldrneh  r0, [r0, #4]
64126   strneh  r0, [r5, #4]  @ movhi
64127   tst r3, #255
64128   ldrne r1, [sp, #56]
64129   ldrneh  r1, [r1, #2]
64130   strneh  r1, [r5, #2]  @ movhi
64131   movs  r2, r2, lsr #24
64132   ldrne r2, [sp, #56]
64133   ldrneh  r2, [r2, #0]
64134   strneh  r2, [r5, #0]  @ movhi
64135 .L20318:
64136   subs  ip, ip, #4
64137   ldr r2, [r8, #0]
64138   beq .L19663
64139   ldr r3, [sp, #56]
64140   add r5, r5, #8
64141   add r3, r3, #8
64142   str r3, [sp, #56]
64143 .L20328:
64144   mov r1, #0
64145 .L20329:
64146   movs  r4, r2, lsr #24
64147   ldrne r6, [sp, #56]
64148   mov r0, r1, asl #1
64149   ldrneh  r6, [r0, r6]
64150   add r1, r1, #1
64151   strneh  r6, [r0, r5]  @ movhi
64152   cmp ip, r1
64153   mov r2, r2, asl #8
64154   bhi .L20329
64155   b .L19663
64156 .L19829:
64157   cmp lr, #0
64158   beq .L19663
64159   ldr r6, [sp, #12]
64160   mov r3, #0
64161   add r1, r6, r8, asl #1
64162   b .L19859
64163 .L20490:
64164   ldr ip, [sp, #56]
64165   add r0, r0, #32
64166   add ip, ip, #16
64167   add r1, r1, #16
64168   str ip, [sp, #56]
64169 .L19859:
64170   ldr ip, [r0, #0]
64171   cmp ip, #0
64172   beq .L19860
64173   tst ip, #15
64174   ldrne r2, [sp, #56]
64175   ldrneh  r2, [r2, #0]
64176   strneh  r2, [r1, #0]  @ movhi
64177   tst ip, #240
64178   ldrne r4, [sp, #56]
64179   ldrneh  r4, [r4, #2]
64180   strneh  r4, [r1, #2]  @ movhi
64181   tst ip, #3840
64182   ldrne r5, [sp, #56]
64183   ldrneh  r5, [r5, #4]
64184   strneh  r5, [r1, #4]  @ movhi
64185   tst ip, #61440
64186   ldrne r6, [sp, #56]
64187   ldrneh  r6, [r6, #6]
64188   strneh  r6, [r1, #6]  @ movhi
64189   tst ip, #983040
64190   ldrne r2, [sp, #56]
64191   ldrneh  r2, [r2, #8]
64192   strneh  r2, [r1, #8]  @ movhi
64193   tst ip, #15728640
64194   ldrne r4, [sp, #56]
64195   ldrneh  r4, [r4, #10]
64196   strneh  r4, [r1, #10] @ movhi
64197   tst ip, #251658240
64198   ldrne r5, [sp, #56]
64199   ldrneh  r5, [r5, #12]
64200   strneh  r5, [r1, #12] @ movhi
64201   movs  ip, ip, lsr #28
64202   ldrne r6, [sp, #56]
64203   ldrneh  r6, [r6, #14]
64204   strneh  r6, [r1, #14] @ movhi
64205 .L19860:
64206   add r3, r3, #1
64207   cmp lr, r3
64208   bne .L20490
64209   b .L19663
64210 .L19959:
64211   cmp lr, #0
64212   beq .L19663
64213   ldr ip, [sp, #12]
64214   mov r3, #0
64215   add r1, ip, r8, asl #1
64216   b .L19989
64217 .L20491:
64218   ldr r2, [sp, #56]
64219   sub r0, r0, #32
64220   add r2, r2, #16
64221   add r1, r1, #16
64222   str r2, [sp, #56]
64223 .L19989:
64224   ldr r2, [r0, #0]
64225   cmp r2, #0
64226   beq .L19990
64227   tst r2, #15
64228   ldrne r4, [sp, #56]
64229   ldrneh  r4, [r4, #14]
64230   strneh  r4, [r1, #14] @ movhi
64231   tst r2, #240
64232   ldrne r5, [sp, #56]
64233   ldrneh  r5, [r5, #12]
64234   strneh  r5, [r1, #12] @ movhi
64235   tst r2, #3840
64236   ldrne r6, [sp, #56]
64237   ldrneh  r6, [r6, #10]
64238   strneh  r6, [r1, #10] @ movhi
64239   tst r2, #61440
64240   ldrne ip, [sp, #56]
64241   ldrneh  ip, [ip, #8]
64242   strneh  ip, [r1, #8]  @ movhi
64243   tst r2, #983040
64244   ldrne r4, [sp, #56]
64245   ldrneh  r4, [r4, #6]
64246   strneh  r4, [r1, #6]  @ movhi
64247   tst r2, #15728640
64248   ldrne r5, [sp, #56]
64249   ldrneh  r5, [r5, #4]
64250   strneh  r5, [r1, #4]  @ movhi
64251   tst r2, #251658240
64252   ldrne r6, [sp, #56]
64253   ldrneh  r6, [r6, #2]
64254   strneh  r6, [r1, #2]  @ movhi
64255   movs  r2, r2, lsr #28
64256   ldrne ip, [sp, #56]
64257   ldrneh  ip, [ip, #0]
64258   strneh  ip, [r1, #0]  @ movhi
64259 .L19990:
64260   add r3, r3, #1
64261   cmp lr, r3
64262   bne .L20491
64263   b .L19663
64264 .L20384:
64265   cmp lr, #0
64266   beq .L19663
64267   ldr r2, [sp, #12]
64268   ldr r3, .L20498+32
64269   add r1, r2, r8, asl #1
64270   add r0, r0, r3
64271   mov r2, #0
64272   b .L20428
64273 .L20492:
64274   ldr ip, [sp, #56]
64275   sub r7, r7, #64
64276   add ip, ip, #16
64277   add r1, r1, #16
64278   str ip, [sp, #56]
64279 .L20428:
64280   ldr ip, [r0, #68]
64281   cmp ip, #0
64282   beq .L20429
64283   tst ip, #255
64284   ldrne r3, [sp, #56]
64285   ldrneh  r3, [r3, #6]
64286   strneh  r3, [r1, #6]  @ movhi
64287   mov r3, ip, lsr #8
64288   tst r3, #255
64289   ldrne r4, [sp, #56]
64290   mov r3, ip, lsr #16
64291   ldrneh  r4, [r4, #4]
64292   strneh  r4, [r1, #4]  @ movhi
64293   tst r3, #255
64294   ldrne r5, [sp, #56]
64295   ldrneh  r5, [r5, #2]
64296   strneh  r5, [r1, #2]  @ movhi
64297   movs  ip, ip, lsr #24
64298   ldrne r6, [sp, #56]
64299   ldrneh  r6, [r6, #0]
64300   strneh  r6, [r1, #0]  @ movhi
64301 .L20429:
64302   ldr ip, [r7, #0]
64303   cmp ip, #0
64304   beq .L20438
64305   tst ip, #255
64306   ldrne r3, [sp, #56]
64307   ldrneh  r3, [r3, #14]
64308   strneh  r3, [r1, #14] @ movhi
64309   mov r3, ip, lsr #8
64310   tst r3, #255
64311   ldrne r4, [sp, #56]
64312   mov r3, ip, lsr #16
64313   ldrneh  r4, [r4, #12]
64314   strneh  r4, [r1, #12] @ movhi
64315   tst r3, #255
64316   ldrne r5, [sp, #56]
64317   ldrneh  r5, [r5, #10]
64318   strneh  r5, [r1, #10] @ movhi
64319   movs  ip, ip, lsr #24
64320   ldrne r6, [sp, #56]
64321   ldrneh  r6, [r6, #8]
64322   strneh  r6, [r1, #8]  @ movhi
64323 .L20438:
64324   add r2, r2, #1
64325   cmp lr, r2
64326   sub r0, r0, #64
64327   bne .L20492
64328   b .L19663
64329 .L20164:
64330   cmp r4, #0
64331   beq .L19663
64332   ldr r3, [sp, #12]
64333   mov lr, #0
64334   add r1, r3, r8, asl #1
64335   ldr r3, .L20498+36
64336   add r0, r0, r3
64337   b .L20208
64338 .L20493:
64339   ldr ip, [sp, #56]
64340   add r2, r2, #64
64341   add ip, ip, #16
64342   add r1, r1, #16
64343   str ip, [sp, #56]
64344 .L20208:
64345   ldr ip, [r2, #0]
64346   cmp ip, #0
64347   beq .L20209
64348   tst ip, #255
64349   ldrne r5, [sp, #56]
64350   mov r3, ip, lsr #8
64351   ldrneh  r5, [r5, #0]
64352   strneh  r5, [r1, #0]  @ movhi
64353   tst r3, #255
64354   ldrne r6, [sp, #56]
64355   mov r3, ip, lsr #16
64356   ldrneh  r6, [r6, #2]
64357   strneh  r6, [r1, #2]  @ movhi
64358   tst r3, #255
64359   ldrne r3, [sp, #56]
64360   ldrneh  r3, [r3, #4]
64361   strneh  r3, [r1, #4]  @ movhi
64362   movs  ip, ip, lsr #24
64363   ldrne r5, [sp, #56]
64364   ldrneh  r5, [r5, #6]
64365   strneh  r5, [r1, #6]  @ movhi
64366 .L20209:
64367   ldr ip, [r0, #-60]
64368   cmp ip, #0
64369   beq .L20218
64370   tst ip, #255
64371   ldrne r6, [sp, #56]
64372   mov r3, ip, lsr #8
64373   ldrneh  r6, [r6, #8]
64374   strneh  r6, [r1, #8]  @ movhi
64375   tst r3, #255
64376   ldrne r3, [sp, #56]
64377   ldrneh  r3, [r3, #10]
64378   strneh  r3, [r1, #10] @ movhi
64379   mov r3, ip, lsr #16
64380   tst r3, #255
64381   ldrne r5, [sp, #56]
64382   ldrneh  r5, [r5, #12]
64383   strneh  r5, [r1, #12] @ movhi
64384   movs  ip, ip, lsr #24
64385   ldrne r6, [sp, #56]
64386   ldrneh  r6, [r6, #14]
64387   strneh  r6, [r1, #14] @ movhi
64388 .L20218:
64389   add lr, lr, #1
64390   cmp r4, lr
64391   add r0, r0, #64
64392   bne .L20493
64393   b .L19663
64394 .L20011:
64395   ands  r1, r0, #7
64396   mov r3, r0, lsr #3
64397   add ip, r2, r3, asl #6
64398   ldreq r1, [sp, #100]
64399   beq .L20115
64400   cmp r1, #3
64401   rsb r0, r1, #8
64402   bls .L20116
64403   cmp r0, #0
64404   ldr r2, [ip, #4]
64405   ldreq r1, [sp, #100]
64406   beq .L20120
64407   mov r3, r1, asl #3
64408   sub r3, r3, #32
64409   mov r3, r2, lsr r3
64410   mov r1, #0
64411 .L20121:
64412   tst r3, #255
64413   ldrne r4, [sp, #56]
64414   mov r2, r1, asl #1
64415   ldrneh  r5, [r2, r4]
64416   ldrne r4, [sp, #100]
64417   add r1, r1, #1
64418   strneh  r5, [r2, r4]  @ movhi
64419   cmp r0, r1
64420   mov r3, r3, lsr #8
64421   bne .L20121
64422   ldr r6, [sp, #56]
64423   mov r3, r0, asl #1
64424   ldr r0, [sp, #100]
64425   add r6, r6, r3
64426   str r6, [sp, #56]
64427   add r1, r0, r3
64428 .L20120:
64429   add ip, ip, #64
64430 .L20115:
64431   movs  lr, lr, lsr #3
64432   beq .L19663
64433   mov r0, #0
64434   b .L20144
64435 .L20494:
64436   ldr r2, [sp, #56]
64437   add ip, ip, #64
64438   add r2, r2, #16
64439   add r1, r1, #16
64440   str r2, [sp, #56]
64441 .L20144:
64442   ldr r2, [ip, #0]
64443   cmp r2, #0
64444   beq .L20145
64445   tst r2, #255
64446   ldrne r3, [sp, #56]
64447   ldrneh  r3, [r3, #0]
64448   strneh  r3, [r1, #0]  @ movhi
64449   mov r3, r2, lsr #8
64450   tst r3, #255
64451   ldrne r4, [sp, #56]
64452   mov r3, r2, lsr #16
64453   ldrneh  r4, [r4, #2]
64454   strneh  r4, [r1, #2]  @ movhi
64455   tst r3, #255
64456   ldrne r5, [sp, #56]
64457   ldrneh  r5, [r5, #4]
64458   strneh  r5, [r1, #4]  @ movhi
64459   movs  r2, r2, lsr #24
64460   ldrne r6, [sp, #56]
64461   ldrneh  r6, [r6, #6]
64462   strneh  r6, [r1, #6]  @ movhi
64463 .L20145:
64464   ldr r2, [ip, #4]
64465   cmp r2, #0
64466   beq .L20154
64467   tst r2, #255
64468   ldrne r3, [sp, #56]
64469   ldrneh  r3, [r3, #8]
64470   strneh  r3, [r1, #8]  @ movhi
64471   mov r3, r2, lsr #8
64472   tst r3, #255
64473   ldrne r4, [sp, #56]
64474   mov r3, r2, lsr #16
64475   ldrneh  r4, [r4, #10]
64476   strneh  r4, [r1, #10] @ movhi
64477   tst r3, #255
64478   ldrne r5, [sp, #56]
64479   ldrneh  r5, [r5, #12]
64480   strneh  r5, [r1, #12] @ movhi
64481   movs  r2, r2, lsr #24
64482   ldrne r6, [sp, #56]
64483   ldrneh  r6, [r6, #14]
64484   strneh  r6, [r1, #14] @ movhi
64485 .L20154:
64486   add r0, r0, #1
64487   cmp r0, lr
64488   bne .L20494
64489   b .L19663
64490 .L19881:
64491   mov r3, ip, lsr #3
64492   ands  r2, ip, #7
64493   sub r0, r0, r3, asl #5
64494   ldreq r3, [sp, #100]
64495   beq .L19930
64496   rsbs  r4, r2, #8
64497   ldr ip, [r0, #0]
64498   ldreq r3, [sp, #100]
64499   beq .L19933
64500   mov r3, r2, asl #2
64501   mov r3, ip, asl r3
64502   mov lr, #0
64503 .L19934:
64504   movs  ip, r3, lsr #28
64505   ldrne r2, [sp, #56]
64506   mov ip, lr, asl #1
64507   ldrneh  r5, [ip, r2]
64508   ldrne r2, [sp, #100]
64509   add lr, lr, #1
64510   strneh  r5, [ip, r2]  @ movhi
64511   cmp lr, r4
64512   mov r3, r3, asl #4
64513   bne .L19934
64514   ldr r6, [sp, #56]
64515   mov r3, r4, asl #1
64516   ldr ip, [sp, #100]
64517   add r6, r6, r3
64518   str r6, [sp, #56]
64519   add r3, ip, r3
64520 .L19933:
64521   sub r0, r0, #32
64522 .L19930:
64523   movs  r1, r1, lsr #3
64524   beq .L19663
64525   mov r2, #0
64526   b .L19940
64527 .L20495:
64528   ldr ip, [sp, #56]
64529   sub r0, r0, #32
64530   add ip, ip, #16
64531   add r3, r3, #16
64532   str ip, [sp, #56]
64533 .L19940:
64534   ldr ip, [r0, #0]
64535   cmp ip, #0
64536   beq .L19941
64537   tst ip, #15
64538   ldrne lr, [sp, #56]
64539   ldrneh  lr, [lr, #14]
64540   strneh  lr, [r3, #14] @ movhi
64541   tst ip, #240
64542   ldrne r4, [sp, #56]
64543   ldrneh  r4, [r4, #12]
64544   strneh  r4, [r3, #12] @ movhi
64545   tst ip, #3840
64546   ldrne r5, [sp, #56]
64547   ldrneh  r5, [r5, #10]
64548   strneh  r5, [r3, #10] @ movhi
64549   tst ip, #61440
64550   ldrne r6, [sp, #56]
64551   ldrneh  r6, [r6, #8]
64552   strneh  r6, [r3, #8]  @ movhi
64553   tst ip, #983040
64554   ldrne lr, [sp, #56]
64555   ldrneh  lr, [lr, #6]
64556   strneh  lr, [r3, #6]  @ movhi
64557   tst ip, #15728640
64558   ldrne r4, [sp, #56]
64559   ldrneh  r4, [r4, #4]
64560   strneh  r4, [r3, #4]  @ movhi
64561   tst ip, #251658240
64562   ldrne r5, [sp, #56]
64563   ldrneh  r5, [r5, #2]
64564   strneh  r5, [r3, #2]  @ movhi
64565   movs  ip, ip, lsr #28
64566   ldrne r6, [sp, #56]
64567   ldrneh  r6, [r6, #0]
64568   strneh  r6, [r3, #0]  @ movhi
64569 .L19941:
64570   add r2, r2, #1
64571   cmp r2, r1
64572   bne .L20495
64573   b .L19663
64574 .L19751:
64575   mov r3, ip, lsr #3
64576   mov r1, r3, asl #5
64577   ands  r3, ip, #7
64578   ldreq r3, [sp, #100]
64579   add ip, r0, r1
64580   beq .L19800
64581   rsbs  r4, r3, #8
64582   ldr r0, [r0, r1]
64583   ldreq r3, [sp, #100]
64584   beq .L19803
64585   mov r3, r3, asl #2
64586   mov r0, r0, lsr r3
64587   mov r2, #0
64588 .L19804:
64589   tst r0, #15
64590   ldrne r1, [sp, #56]
64591   mov r3, r2, asl #1
64592   ldrneh  r5, [r3, r1]
64593   ldrne r1, [sp, #100]
64594   add r2, r2, #1
64595   strneh  r5, [r3, r1]  @ movhi
64596   cmp r4, r2
64597   mov r0, r0, lsr #4
64598   bne .L19804
64599   ldr r6, [sp, #56]
64600   mov r3, r4, asl #1
64601   ldr r0, [sp, #100]
64602   add r6, r6, r3
64603   str r6, [sp, #56]
64604   add r3, r0, r3
64605 .L19803:
64606   add ip, ip, #32
64607 .L19800:
64608   movs  r0, lr, lsr #3
64609   beq .L19663
64610   mov r1, #0
64611   b .L19810
64612 .L20496:
64613   ldr r2, [sp, #56]
64614   add ip, ip, #32
64615   add r2, r2, #16
64616   add r3, r3, #16
64617   str r2, [sp, #56]
64618 .L19810:
64619   ldr r2, [ip, #0]
64620   cmp r2, #0
64621   beq .L19811
64622   tst r2, #15
64623   ldrne r4, [sp, #56]
64624   ldrneh  r4, [r4, #0]
64625   strneh  r4, [r3, #0]  @ movhi
64626   tst r2, #240
64627   ldrne r5, [sp, #56]
64628   ldrneh  r5, [r5, #2]
64629   strneh  r5, [r3, #2]  @ movhi
64630   tst r2, #3840
64631   ldrne r6, [sp, #56]
64632   ldrneh  r6, [r6, #4]
64633   strneh  r6, [r3, #4]  @ movhi
64634   tst r2, #61440
64635   ldrne lr, [sp, #56]
64636   ldrneh  lr, [lr, #6]
64637   strneh  lr, [r3, #6]  @ movhi
64638   tst r2, #983040
64639   ldrne r4, [sp, #56]
64640   ldrneh  r4, [r4, #8]
64641   strneh  r4, [r3, #8]  @ movhi
64642   tst r2, #15728640
64643   ldrne r5, [sp, #56]
64644   ldrneh  r5, [r5, #10]
64645   strneh  r5, [r3, #10] @ movhi
64646   tst r2, #251658240
64647   ldrne r6, [sp, #56]
64648   ldrneh  r6, [r6, #12]
64649   strneh  r6, [r3, #12] @ movhi
64650   movs  r2, r2, lsr #28
64651   ldrne lr, [sp, #56]
64652   ldrneh  lr, [lr, #14]
64653   strneh  lr, [r3, #14] @ movhi
64654 .L19811:
64655   add r1, r1, #1
64656   cmp r1, r0
64657   bne .L20496
64658   b .L19663
64659 .L20231:
64660   ands  r2, r0, #7
64661   mov r3, r0, lsr #3
64662   sub ip, r7, r3, asl #6
64663   ldreq r1, [sp, #100]
64664   beq .L20335
64665   cmp r2, #3
64666   rsb r0, r2, #8
64667   bls .L20336
64668   cmp r0, #0
64669   ldr r1, [ip, #0]
64670   ldreq r1, [sp, #100]
64671   beq .L20340
64672   mov r3, r2, asl #3
64673   sub r3, r3, #32
64674   mov r3, r1, asl r3
64675   mov r1, #0
64676 .L20341:
64677   movs  r2, r3, lsr #24
64678   ldrne r4, [sp, #56]
64679   mov r2, r1, asl #1
64680   ldrneh  r5, [r2, r4]
64681   ldrne r4, [sp, #100]
64682   add r1, r1, #1
64683   strneh  r5, [r2, r4]  @ movhi
64684   cmp r1, r0
64685   mov r3, r3, asl #8
64686   bne .L20341
64687   ldr r6, [sp, #56]
64688   mov r3, r0, asl #1
64689   ldr r0, [sp, #100]
64690   add r6, r6, r3
64691   str r6, [sp, #56]
64692   add r1, r0, r3
64693 .L20340:
64694   sub ip, ip, #64
64695 .L20335:
64696   movs  lr, lr, lsr #3
64697   beq .L19663
64698   mov r0, #0
64699   b .L20364
64700 .L20497:
64701   ldr r2, [sp, #56]
64702   sub ip, ip, #64
64703   add r2, r2, #16
64704   add r1, r1, #16
64705   str r2, [sp, #56]
64706 .L20364:
64707   ldr r2, [ip, #4]
64708   cmp r2, #0
64709   beq .L20365
64710   tst r2, #255
64711   ldrne r3, [sp, #56]
64712   ldrneh  r3, [r3, #6]
64713   strneh  r3, [r1, #6]  @ movhi
64714   mov r3, r2, lsr #8
64715   tst r3, #255
64716   ldrne r4, [sp, #56]
64717   mov r3, r2, lsr #16
64718   ldrneh  r4, [r4, #4]
64719   strneh  r4, [r1, #4]  @ movhi
64720   tst r3, #255
64721   ldrne r5, [sp, #56]
64722   ldrneh  r5, [r5, #2]
64723   strneh  r5, [r1, #2]  @ movhi
64724   movs  r2, r2, lsr #24
64725   ldrne r6, [sp, #56]
64726   ldrneh  r6, [r6, #0]
64727   strneh  r6, [r1, #0]  @ movhi
64728 .L20365:
64729   ldr r2, [ip, #0]
64730   cmp r2, #0
64731   beq .L20374
64732   tst r2, #255
64733   ldrne r3, [sp, #56]
64734   ldrneh  r3, [r3, #14]
64735   strneh  r3, [r1, #14] @ movhi
64736   mov r3, r2, lsr #8
64737   tst r3, #255
64738   ldrne r4, [sp, #56]
64739   mov r3, r2, lsr #16
64740   ldrneh  r4, [r4, #12]
64741   strneh  r4, [r1, #12] @ movhi
64742   tst r3, #255
64743   ldrne r5, [sp, #56]
64744   ldrneh  r5, [r5, #10]
64745   strneh  r5, [r1, #10] @ movhi
64746   movs  r2, r2, lsr #24
64747   ldrne r6, [sp, #56]
64748   ldrneh  r6, [r6, #8]
64749   strneh  r6, [r1, #8]  @ movhi
64750 .L20374:
64751   add r0, r0, #1
64752   cmp r0, lr
64753   bne .L20497
64754   b .L19663
64755 .L19753:
64756   ldr r5, [sp, #120]
64757   rsb ip, r3, #8
64758   cmp r5, ip
64759   bge .L19756
64760   cmp r5, #0
64761   ble .L19663
64762   ldr r2, [r0, r1]
64763   mov r3, r3, asl #2
64764   mov r0, r2, lsr r3
64765   mov r2, #0
64766 .L19760:
64767   tst r0, #15
64768   ldrne r6, [sp, #56]
64769   mov r3, r2, asl #1
64770   ldrneh  ip, [r3, r6]
64771   ldr lr, [sp, #120]
64772   ldrne r6, [sp, #100]
64773   add r2, r2, #1
64774   strneh  ip, [r3, r6]  @ movhi
64775   cmp lr, r2
64776   mov r0, r0, lsr #4
64777   bne .L19760
64778   b .L19663
64779 .L20233:
64780   ldr r5, [sp, #120]
64781   rsb lr, ip, #8
64782   cmp r5, lr
64783   bge .L20236
64784   cmp r5, #0
64785   ble .L19663
64786   cmp ip, #3
64787   bls .L20239
64788   ldr r2, [r8, #0]
64789   mov r3, ip, asl #3
64790   sub r3, r3, #32
64791   mov r2, r2, asl r3
64792   mov r1, #0
64793 .L20242:
64794   movs  r6, r2, lsr #24
64795   ldrne ip, [sp, #56]
64796   mov r3, r1, asl #1
64797   ldrneh  lr, [r3, ip]
64798   ldr r0, [sp, #120]
64799   ldrne ip, [sp, #100]
64800   add r1, r1, #1
64801   strneh  lr, [r3, ip]  @ movhi
64802   cmp r0, r1
64803   mov r2, r2, asl #8
64804   bne .L20242
64805   b .L19663
64806 .L20013:
64807   ldr r0, [sp, #120]
64808   rsb lr, ip, #8
64809   cmp r0, lr
64810   bge .L20016
64811   cmp r0, #0
64812   ble .L19663
64813   cmp ip, #3
64814   bls .L20019
64815   ldr r2, [r8, #4]
64816   mov r3, ip, asl #3
64817   sub r3, r3, #32
64818   mov r1, r2, lsr r3
64819   mov r2, #0
64820 .L20022:
64821   tst r1, #255
64822   ldrne r4, [sp, #56]
64823   mov r3, r2, asl #1
64824   ldrneh  r5, [r3, r4]
64825   ldr r6, [sp, #120]
64826   ldrne r4, [sp, #100]
64827   add r2, r2, #1
64828   strneh  r5, [r3, r4]  @ movhi
64829   cmp r6, r2
64830   mov r1, r1, lsr #8
64831   bne .L20022
64832   b .L19663
64833 .L19883:
64834   ldr r3, [sp, #120]
64835   rsb lr, r4, #8
64836   cmp r3, lr
64837   bge .L19886
64838   cmp r3, #0
64839   ble .L19663
64840   ldr r2, [r0, #0]
64841   mov r3, r4, asl #2
64842   mov r0, r2, asl r3
64843   mov r2, #0
64844 .L19890:
64845   movs  r4, r0, lsr #28
64846   ldrne r5, [sp, #56]
64847   mov r3, r2, asl #1
64848   ldrneh  r6, [r3, r5]
64849   ldr ip, [sp, #120]
64850   ldrne r5, [sp, #100]
64851   add r2, r2, #1
64852   strneh  r6, [r3, r5]  @ movhi
64853   cmp ip, r2
64854   mov r0, r0, asl #4
64855   bne .L19890
64856   b .L19663
64857 .L20016:
64858   cmp ip, #3
64859   bls .L20046
64860   cmp lr, #0
64861   ldr r2, [r8, #4]
64862   ldreq r5, [sp, #100]
64863   beq .L20050
64864   mov r3, ip, asl #3
64865   sub r3, r3, #32
64866   mov r1, r2, lsr r3
64867   mov r2, #0
64868 .L20051:
64869   tst r1, #255
64870   ldrne r0, [sp, #56]
64871   mov r3, r2, asl #1
64872   ldrneh  r4, [r3, r0]
64873   ldrne r0, [sp, #100]
64874   add r2, r2, #1
64875   strneh  r4, [r3, r0]  @ movhi
64876   cmp lr, r2
64877   mov r1, r1, lsr #8
64878   bne .L20051
64879   ldr r5, [sp, #56]
64880   mov r3, lr, asl #1
64881   ldr r6, [sp, #100]
64882   add r5, r5, r3
64883   str r5, [sp, #56]
64884   add r5, r3, r6
64885 .L20050:
64886   ldr ip, [sp, #120]
64887   add r8, r8, #64
64888   rsb r7, lr, ip
64889   b .L20015
64890 .L20116:
64891   subs  r4, r0, #4
64892   ldr r2, [ip, #0]
64893   ldreq r1, [sp, #100]
64894   beq .L20128
64895   mov r3, r1, asl #3
64896   mov r3, r2, lsr r3
64897   mov r1, #0
64898 .L20129:
64899   tst r3, #255
64900   ldrne r5, [sp, #56]
64901   mov r2, r1, asl #1
64902   ldrneh  r6, [r2, r5]
64903   ldrne r5, [sp, #100]
64904   add r1, r1, #1
64905   strneh  r6, [r2, r5]  @ movhi
64906   cmp r1, r4
64907   mov r3, r3, lsr #8
64908   bne .L20129
64909   mov r3, r0, asl #1
64910   ldr r0, [sp, #56]
64911   ldr r1, [sp, #100]
64912   add r2, r0, r3
64913   sub r2, r2, #8
64914   add r3, r1, r3
64915   str r2, [sp, #56]
64916   sub r1, r3, #8
64917 .L20128:
64918   ldr r2, [ip, #4]
64919   cmp r2, #0
64920   beq .L20134
64921   tst r2, #255
64922   ldrne r3, [sp, #56]
64923   ldrneh  r3, [r3, #0]
64924   strneh  r3, [r1, #0]  @ movhi
64925   mov r3, r2, lsr #8
64926   tst r3, #255
64927   ldrne r4, [sp, #56]
64928   mov r3, r2, lsr #16
64929   ldrneh  r4, [r4, #2]
64930   strneh  r4, [r1, #2]  @ movhi
64931   tst r3, #255
64932   ldrne r5, [sp, #56]
64933   ldrneh  r5, [r5, #4]
64934   strneh  r5, [r1, #4]  @ movhi
64935   movs  r2, r2, lsr #24
64936   ldrne r6, [sp, #56]
64937   ldrneh  r6, [r6, #6]
64938   strneh  r6, [r1, #6]  @ movhi
64939 .L20134:
64940   ldr r0, [sp, #56]
64941   add r1, r1, #8
64942   add r0, r0, #8
64943   add ip, ip, #64
64944   str r0, [sp, #56]
64945   b .L20115
64946 .L19756:
64947   cmp ip, #0
64948   ldr r2, [r4, #0]
64949   ldreq r5, [sp, #100]
64950   beq .L19766
64951   mov r3, r3, asl #2
64952   mov r3, r2, lsr r3
64953   mov r1, #0
64954 .L19767:
64955   tst r3, #15
64956   ldrne r0, [sp, #56]
64957   mov r2, r1, asl #1
64958   ldrneh  r5, [r2, r0]
64959   ldrne r0, [sp, #100]
64960   add r1, r1, #1
64961   strneh  r5, [r2, r0]  @ movhi
64962   cmp ip, r1
64963   mov r3, r3, lsr #4
64964   bne .L19767
64965   ldr r6, [sp, #56]
64966   mov r3, ip, asl #1
64967   ldr lr, [sp, #100]
64968   add r6, r6, r3
64969   str r6, [sp, #56]
64970   add r5, r3, lr
64971 .L19766:
64972   ldr r0, [sp, #120]
64973   add r4, r4, #32
64974   rsb r7, ip, r0
64975   b .L19755
64976 .L19886:
64977   cmp lr, #0
64978   ldr r2, [r0, #0]
64979   ldreq r1, [sp, #100]
64980   beq .L19896
64981   mov r3, r4, asl #2
64982   mov r3, r2, asl r3
64983   mov ip, #0
64984 .L19897:
64985   movs  r1, r3, lsr #28
64986   ldrne r4, [sp, #56]
64987   mov r2, ip, asl #1
64988   ldrneh  r5, [r2, r4]
64989   ldrne r4, [sp, #100]
64990   add ip, ip, #1
64991   strneh  r5, [r2, r4]  @ movhi
64992   cmp lr, ip
64993   mov r3, r3, asl #4
64994   bne .L19897
64995   ldr r6, [sp, #56]
64996   mov r3, lr, asl #1
64997   ldr ip, [sp, #100]
64998   add r6, r6, r3
64999   str r6, [sp, #56]
65000   add r1, r3, ip
65001 .L19896:
65002   ldr r2, [sp, #120]
65003   sub r0, r0, #32
65004   rsb r7, lr, r2
65005   b .L19885
65006 .L20336:
65007   subs  r4, r0, #4
65008   ldr r1, [ip, #4]
65009   ldreq r1, [sp, #100]
65010   beq .L20348
65011   mov r3, r2, asl #3
65012   sub r3, r3, #32
65013   mov r3, r1, asl r3
65014   mov r1, #0
65015 .L20349:
65016   movs  r2, r3, lsr #24
65017   ldrne r5, [sp, #56]
65018   mov r2, r1, asl #1
65019   ldrneh  r6, [r2, r5]
65020   ldrne r5, [sp, #100]
65021   add r1, r1, #1
65022   strneh  r6, [r2, r5]  @ movhi
65023   cmp r1, r4
65024   mov r3, r3, asl #8
65025   bne .L20349
65026   mov r3, r0, asl #1
65027   ldr r0, [sp, #56]
65028   ldr r1, [sp, #100]
65029   add r2, r0, r3
65030   sub r2, r2, #8
65031   add r3, r1, r3
65032   str r2, [sp, #56]
65033   sub r1, r3, #8
65034 .L20348:
65035   ldr r2, [ip, #0]
65036   cmp r2, #0
65037   beq .L20354
65038   tst r2, #255
65039   ldrne r3, [sp, #56]
65040   ldrneh  r3, [r3, #6]
65041   strneh  r3, [r1, #6]  @ movhi
65042   mov r3, r2, lsr #8
65043   tst r3, #255
65044   ldrne r4, [sp, #56]
65045   mov r3, r2, lsr #16
65046   ldrneh  r4, [r4, #4]
65047   strneh  r4, [r1, #4]  @ movhi
65048   tst r3, #255
65049   ldrne r5, [sp, #56]
65050   ldrneh  r5, [r5, #2]
65051   strneh  r5, [r1, #2]  @ movhi
65052   movs  r2, r2, lsr #24
65053   ldrne r6, [sp, #56]
65054   ldrneh  r6, [r6, #0]
65055   strneh  r6, [r1, #0]  @ movhi
65056 .L20354:
65057   ldr r0, [sp, #56]
65058   add r1, r1, #8
65059   add r0, r0, #8
65060   sub ip, ip, #64
65061   str r0, [sp, #56]
65062   b .L20335
65063 .L20236:
65064   cmp ip, #3
65065   bls .L20266
65066   cmp lr, #0
65067   ldr r2, [r8, #0]
65068   ldreq r5, [sp, #100]
65069   beq .L20270
65070   mov r3, ip, asl #3
65071   sub r3, r3, #32
65072   mov r3, r2, asl r3
65073   mov r1, #0
65074 .L20271:
65075   movs  r2, r3, lsr #24
65076   ldrne r4, [sp, #56]
65077   mov r2, r1, asl #1
65078   ldrneh  r5, [r2, r4]
65079   ldrne r4, [sp, #100]
65080   add r1, r1, #1
65081   strneh  r5, [r2, r4]  @ movhi
65082   cmp lr, r1
65083   mov r3, r3, asl #8
65084   bne .L20271
65085   ldr r6, [sp, #56]
65086   mov r3, lr, asl #1
65087   ldr ip, [sp, #100]
65088   add r6, r6, r3
65089   str r6, [sp, #56]
65090   add r5, ip, r3
65091 .L20270:
65092   ldr ip, [sp, #120]
65093   sub r8, r8, #64
65094   rsb r7, lr, ip
65095   b .L20235
65096 .L20482:
65097   mov r7, #0
65098   b .L19733
65099 .L20478:
65100   mov r7, #0
65101   b .L19698
65102 .L20046:
65103   subs  r0, lr, #4
65104   ldr r2, [r8, #0]
65105   ldreq r1, [sp, #100]
65106   beq .L20058
65107   mov r3, ip, asl #3
65108   mov r1, r2, lsr r3
65109   mov r2, #0
65110 .L20059:
65111   tst r1, #255
65112   ldrne ip, [sp, #56]
65113   mov r3, r2, asl #1
65114   ldrneh  r4, [r3, ip]
65115   ldrne ip, [sp, #100]
65116   add r2, r2, #1
65117   strneh  r4, [r3, ip]  @ movhi
65118   cmp r2, r0
65119   mov r1, r1, lsr #8
65120   bne .L20059
65121   ldr r5, [sp, #56]
65122   mov r3, lr, asl #1
65123   ldr r6, [sp, #100]
65124   add r2, r5, r3
65125   sub r2, r2, #8
65126   add r3, r6, r3
65127   str r2, [sp, #56]
65128   sub r1, r3, #8
65129 .L20058:
65130   ldr r2, [r8, #4]
65131   cmp r2, #0
65132   beq .L20064
65133   tst r2, #255
65134   ldrne ip, [sp, #56]
65135   mov r3, r2, lsr #8
65136   ldrneh  ip, [ip, #0]
65137   strneh  ip, [r1, #0]  @ movhi
65138   tst r3, #255
65139   ldrne r0, [sp, #56]
65140   mov r3, r2, lsr #16
65141   ldrneh  r0, [r0, #2]
65142   strneh  r0, [r1, #2]  @ movhi
65143   tst r3, #255
65144   ldrne r3, [sp, #56]
65145   ldrneh  r3, [r3, #4]
65146   strneh  r3, [r1, #4]  @ movhi
65147   movs  r2, r2, lsr #24
65148   ldrne r4, [sp, #56]
65149   ldrneh  r4, [r4, #6]
65150   strneh  r4, [r1, #6]  @ movhi
65151 .L20064:
65152   ldr r6, [sp, #56]
65153   add r5, r1, #8
65154   add r6, r6, #8
65155   str r6, [sp, #56]
65156   b .L20050
65157 .L20266:
65158   subs  r0, lr, #4
65159   ldr r2, [r8, #4]
65160   ldreq r1, [sp, #100]
65161   beq .L20278
65162   mov r3, ip, asl #3
65163   sub r3, r3, #32
65164   mov r3, r2, asl r3
65165   mov r1, #0
65166 .L20279:
65167   movs  r2, r3, lsr #24
65168   ldrne r4, [sp, #56]
65169   mov r2, r1, asl #1
65170   ldrneh  r5, [r2, r4]
65171   ldrne r4, [sp, #100]
65172   add r1, r1, #1
65173   strneh  r5, [r2, r4]  @ movhi
65174   cmp r1, r0
65175   mov r3, r3, asl #8
65176   bne .L20279
65177   ldr r6, [sp, #56]
65178   mov r3, lr, asl #1
65179   ldr ip, [sp, #100]
65180   add r2, r6, r3
65181   sub r2, r2, #8
65182   add r3, ip, r3
65183   str r2, [sp, #56]
65184   sub r1, r3, #8
65185 .L20278:
65186   ldr r2, [r8, #0]
65187   cmp r2, #0
65188   beq .L20284
65189   tst r2, #255
65190   ldrne r0, [sp, #56]
65191   mov r3, r2, lsr #8
65192   ldrneh  r0, [r0, #6]
65193   strneh  r0, [r1, #6]  @ movhi
65194   tst r3, #255
65195   ldrne r3, [sp, #56]
65196   ldrneh  r3, [r3, #4]
65197   strneh  r3, [r1, #4]  @ movhi
65198   mov r3, r2, lsr #16
65199   tst r3, #255
65200   ldrne r4, [sp, #56]
65201   ldrneh  r4, [r4, #2]
65202   strneh  r4, [r1, #2]  @ movhi
65203   movs  r2, r2, lsr #24
65204   ldrne r5, [sp, #56]
65205   ldrneh  r5, [r5, #0]
65206   strneh  r5, [r1, #0]  @ movhi
65207 .L20284:
65208   ldr r6, [sp, #56]
65209   add r5, r1, #8
65210   add r6, r6, #8
65211   str r6, [sp, #56]
65212   b .L20270
65213 .L20485:
65214   mov r1, fp
65215   b .L20464
65216 .L20484:
65217   mov lr, r6
65218   b .L20462
65219 .L20019:
65220   ldr lr, [sp, #120]
65221   ldr r3, [r8, #0]
65222   add r2, lr, ip
65223   mov r1, ip, asl #3
65224   cmp r2, #4
65225   mov r3, r3, lsr r1
65226   bhi .L20026
65227   cmp lr, #0
65228   movne r1, #0
65229   beq .L19663
65230 .L20042:
65231   tst r3, #255
65232   ldrne r5, [sp, #56]
65233   mov r2, r1, asl #1
65234   ldrneh  r6, [r2, r5]
65235   ldr ip, [sp, #120]
65236   ldrne r5, [sp, #100]
65237   add r1, r1, #1
65238   strneh  r6, [r2, r5]  @ movhi
65239   cmp ip, r1
65240   mov r3, r3, lsr #8
65241   bne .L20042
65242   b .L19663
65243 .L20239:
65244   ldr r4, [sp, #120]
65245   mov r3, ip, asl #3
65246   ldr r1, [r8, #4]
65247   add r2, r4, ip
65248   sub r3, r3, #32
65249   cmp r2, #4
65250   mov r1, r1, asl r3
65251   bhi .L20246
65252   cmp r4, #0
65253   movne r2, #0
65254   beq .L19663
65255 .L20262:
65256   movs  r6, r1, lsr #24
65257   ldrne ip, [sp, #56]
65258   mov r3, r2, asl #1
65259   ldrneh  lr, [r3, ip]
65260   ldr r0, [sp, #120]
65261   ldrne ip, [sp, #100]
65262   add r2, r2, #1
65263   strneh  lr, [r3, ip]  @ movhi
65264   cmp r0, r2
65265   mov r1, r1, asl #8
65266   bne .L20262
65267   b .L19663
65268 .L20026:
65269   rsbs  r0, ip, #4
65270   ldreq ip, [sp, #100]
65271   beq .L20031
65272   mov r1, #0
65273 .L20032:
65274   tst r3, #255
65275   ldrne r4, [sp, #56]
65276   mov r2, r1, asl #1
65277   ldrneh  r5, [r2, r4]
65278   ldrne r4, [sp, #100]
65279   add r1, r1, #1
65280   strneh  r5, [r2, r4]  @ movhi
65281   cmp r1, r0
65282   mov r3, r3, lsr #8
65283   bne .L20032
65284   ldr r6, [sp, #56]
65285   mov r3, r0, asl #1
65286   ldr lr, [sp, #100]
65287   add r6, r6, r3
65288   str r6, [sp, #56]
65289   add ip, r3, lr
65290 .L20031:
65291   ldr r1, [sp, #120]
65292   ldr r3, [r8, #4]
65293   subs  r0, r1, r0
65294   beq .L19663
65295   mov r1, #0
65296 .L20038:
65297   tst r3, #255
65298   ldrne r4, [sp, #56]
65299   mov r2, r1, asl #1
65300   ldrneh  r4, [r2, r4]
65301   add r1, r1, #1
65302   strneh  r4, [r2, ip]  @ movhi
65303   cmp r1, r0
65304   mov r3, r3, lsr #8
65305   bne .L20038
65306   b .L19663
65307 .L20246:
65308   rsbs  r0, ip, #4
65309   ldreq r3, [sp, #100]
65310   beq .L20251
65311   mov r2, #0
65312 .L20252:
65313   movs  r5, r1, lsr #24
65314   ldrne r6, [sp, #56]
65315   mov r3, r2, asl #1
65316   ldrneh  ip, [r3, r6]
65317   ldrne r6, [sp, #100]
65318   add r2, r2, #1
65319   strneh  ip, [r3, r6]  @ movhi
65320   cmp r2, r0
65321   mov r1, r1, asl #8
65322   bne .L20252
65323   ldr lr, [sp, #56]
65324   mov r3, r0, asl #1
65325   ldr r1, [sp, #100]
65326   add lr, lr, r3
65327   str lr, [sp, #56]
65328   add r3, r3, r1
65329 .L20251:
65330   ldr r2, [sp, #120]
65331   subs  ip, r2, r0
65332   ldr r2, [r8, #0]
65333   beq .L19663
65334   mov r0, #0
65335 .L20258:
65336   movs  r4, r2, lsr #24
65337   ldrne r5, [sp, #56]
65338   mov r1, r0, asl #1
65339   ldrneh  r5, [r1, r5]
65340   add r0, r0, #1
65341   strneh  r5, [r1, r3]  @ movhi
65342   cmp r0, ip
65343   mov r2, r2, asl #8
65344   bne .L20258
65345   b .L19663
65346   .size render_scanline_obj_copy_tile_1D, .-render_scanline_obj_copy_tile_1D
65347   .align  2
65348   .global render_scanline_window_tile
65349   .type render_scanline_window_tile, %function
65350 render_scanline_window_tile:
65351   @ args = 0, pretend = 0, frame = 20
65352   @ frame_needed = 0, uses_anonymous_args = 0
65353   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
65354   ldr lr, .L21076
65355   mov r2, r1, lsr #13
65356   ldrh  ip, [lr, #74]
65357   ldr r3, .L21076+4
65358   and ip, ip, #63
65359   sub sp, sp, #32
65360   mov r6, r1
65361   sub r2, r2, #1
65362   and r1, r1, #7
65363   str ip, [sp, #12]
65364   add r9, r3, r1, asl #7
65365   mov r7, r0
65366   ldrh  ip, [lr, #6]
65367   ldrh  sl, [lr, #80]
65368   cmp r2, #6
65369   ldrls pc, [pc, r2, asl #2]
65370   b .L20990
65371   .p2align 2
65372 .L20509:
65373   .word .L20502
65374   .word .L20503
65375   .word .L20504
65376   .word .L20505
65377   .word .L20506
65378   .word .L20507
65379   .word .L20508
65380 .L20503:
65381   ldrh  r3, [lr, #70]
65382   ldr r4, .L21076
65383   and r1, r3, #255
65384   mov r0, r3, lsr #8
65385   cmp r0, r1
65386   ldrh  r2, [lr, #72]
65387   bls .L20531
65388   cmp ip, r0
65389   movls r3, #0
65390   movhi r3, #1
65391   cmp ip, r1
65392   orrls r3, r3, #1
65393   cmp r3, #0
65394   bne .L20539
65395 .L20994:
65396   cmp r1, #227
65397   bhi .L20539
65398 .L20535:
65399   mov r4, #240
65400   mov r5, r4
65401 .L20547:
65402   mov r0, #0
65403   mov r1, r5
65404   mov r2, r7
65405   ldr r3, [sp, #12]
65406   stmia sp, {r6, sl}  @ phole stm
65407   str r9, [sp, #8]
65408   bl  render_scanline_conditional_tile
65409 .L20548:
65410   cmp r5, r4
65411   beq .L20528
65412   mov r0, r5
65413   mov r3, r8
65414   mov r1, r4
65415   mov r2, r7
65416   stmia sp, {r6, sl}  @ phole stm
65417   str r9, [sp, #8]
65418   bl  render_scanline_conditional_tile
65419 .L20528:
65420   cmp r4, #240
65421   beq .L20990
65422   ldr r3, [sp, #12]
65423   mov r0, r4
65424   mov r2, r7
65425 .L21037:
65426   mov r1, #240
65427   stmia sp, {r6, sl}  @ phole stm
65428   str r9, [sp, #8]
65429   bl  render_scanline_conditional_tile
65430 .L20990:
65431   add sp, sp, #32
65432   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
65433 .L20502:
65434   ldrh  r3, [lr, #68]
65435   ldr r4, .L21076
65436   and r2, r3, #255
65437   mov r1, r3, lsr #8
65438   cmp r1, r2
65439   ldrh  r0, [lr, #72]
65440   bls .L20510
65441   cmp ip, r1
65442   movls r3, #0
65443   movhi r3, #1
65444   cmp ip, r2
65445   orrls r3, r3, #1
65446   cmp r3, #0
65447   beq .L20992
65448 .L20518:
65449   cmp r1, #227
65450   bhi .L20535
65451   ldrh  r3, [r4, #64]
65452   and r8, r0, #63
65453   and r4, r3, #255
65454   mov r3, r3, lsr #8
65455   cmp r3, #240
65456   movcc r5, r3
65457   movcs r5, #240
65458   cmp r4, #240
65459   bhi .L21059
65460 .L20538:
65461   cmp r5, r4
65462   bls .L20542
65463   cmp r4, #0
65464   bne .L21060
65465 .L20544:
65466   mov r0, r4
65467   ldr r3, [sp, #12]
65468   mov r2, r7
65469   mov r1, r5
65470   stmia sp, {r6, sl}  @ phole stm
65471   str r9, [sp, #8]
65472   bl  render_scanline_conditional_tile
65473   cmp r5, #240
65474   movne r0, r5
65475   movne r2, r7
65476   movne r3, r8
65477   bne .L21037
65478   b .L20990
65479 .L20508:
65480   ldrh  r3, [lr, #68]
65481   ldr r2, .L21076
65482   and r1, r3, #255
65483   mov r0, r3, lsr #8
65484   cmp r0, r1
65485   ldrh  r4, [lr, #72]
65486   bls .L20774
65487   cmp ip, r0
65488   movls r3, #0
65489   movhi r3, #1
65490   cmp ip, r1
65491   orrls r3, r3, #1
65492   cmp r3, #0
65493   beq .L21053
65494 .L20782:
65495   cmp r0, #227
65496   bls .L21061
65497 .L20778:
65498   mov r8, #240
65499   mov fp, r8
65500 .L20781:
65501   ldrh  r3, [lr, #70]
65502   ldr r0, .L21076
65503   and r1, r3, #255
65504   mov r2, r3, lsr #8
65505   cmp r2, r1
65506   bls .L20785
65507   cmp ip, r2
65508   movls r3, #0
65509   movhi r3, #1
65510   cmp ip, r1
65511   orrls r3, r3, #1
65512   cmp r3, #0
65513   beq .L21054
65514 .L20793:
65515   cmp r2, #227
65516   bls .L21062
65517 .L20789:
65518   mov r5, #240
65519   mov r4, r5
65520 .L20792:
65521   cmp fp, r8
65522   bls .L20796
65523   cmp r8, #0
65524   bne .L21063
65525 .L20798:
65526   cmp r4, #240
65527   beq .L20800
65528   cmp r4, r5
65529   bhi .L21064
65530   cmp r4, #0
65531   beq .L20840
65532   cmp r8, #0
65533   beq .L20842
65534   cmp r8, r4
65535   bcs .L20840
65536 .L20842:
65537   cmp fp, r4
65538   bcs .L20851
65539   mov r0, r8
65540   mov r1, fp
65541   mov r2, r7
65542   ldr r3, [sp, #12]
65543   stmia sp, {r6, sl}  @ phole stm
65544   str r9, [sp, #8]
65545   bl  render_scanline_conditional_tile
65546   tst r6, #64
65547   beq .L20853
65548   mov r0, #4
65549   mov r1, r8
65550   mov r2, fp
65551   mov r3, r7
65552   bl  render_scanline_obj_copy_tile_1D
65553 .L20840:
65554   cmp r4, r5
65555   beq .L20857
65556   cmp r8, r4
65557   bls .L20859
65558   cmp r8, r5
65559   bcs .L20857
65560   cmp fp, r5
65561   ldrcc r3, [sp, #28]
65562   ldrcs r3, [sp, #28]
65563   movcc r0, r8
65564   movcc r1, fp
65565   movcs r0, r8
65566   movcs r1, r5
65567 .L21026:
65568   mov r2, r7
65569   stmia sp, {r6, sl}  @ phole stm
65570   str r9, [sp, #8]
65571   bl  render_scanline_conditional_tile
65572 .L20857:
65573   cmp r5, #240
65574   beq .L20832
65575   cmp r8, r5
65576   bls .L20868
65577   cmp r8, #239
65578   bhi .L20832
65579   cmp fp, #239
65580   bhi .L20871
65581   ldr r3, [sp, #12]
65582   mov r0, r8
65583   mov r1, fp
65584   mov r2, r7
65585   stmia sp, {r6, sl}  @ phole stm
65586   str r9, [sp, #8]
65587   bl  render_scanline_conditional_tile
65588   tst r6, #64
65589   beq .L20873
65590   mov r1, r8
65591   mov r0, #4
65592   mov r2, fp
65593   mov r3, r7
65594   bl  render_scanline_obj_copy_tile_1D
65595   b .L20836
65596 .L20507:
65597   ldrh  r3, [lr, #70]
65598   ldr r4, .L21076
65599   and r1, r3, #255
65600   mov r0, r3, lsr #8
65601   cmp r0, r1
65602   ldrh  r2, [lr, #72]
65603   bls .L20744
65604   cmp ip, r0
65605   movls r3, #0
65606   movhi r3, #1
65607   cmp ip, r1
65608   orrls r3, r3, #1
65609   cmp r3, #0
65610   beq .L21019
65611 .L20752:
65612   cmp r0, #227
65613   bls .L21065
65614 .L20748:
65615   mov r4, #240
65616   mov r5, r4
65617 .L20763:
65618   mov r0, #0
65619   mov r1, r5
65620   mov r2, r7
65621   ldr r3, [sp, #12]
65622   stmia sp, {r6, sl}  @ phole stm
65623   str r9, [sp, #8]
65624   bl  render_scanline_conditional_tile
65625 .L20764:
65626   ands  r8, r6, #64
65627   beq .L20765
65628   mov r0, #4
65629   mov r1, #0
65630   mov r2, r5
65631   mov r3, r7
65632   bl  render_scanline_obj_copy_tile_1D
65633 .L20767:
65634   cmp r4, r5
65635   beq .L20768
65636 .L21056:
65637   mov r0, r5
65638   mov r3, fp
65639   mov r1, r4
65640   mov r2, r7
65641   stmia sp, {r6, sl}  @ phole stm
65642   str r9, [sp, #8]
65643   bl  render_scanline_conditional_tile
65644 .L20768:
65645   cmp r4, #240
65646   beq .L20770
65647   ldr r3, [sp, #12]
65648   mov r0, r4
65649   mov r1, #240
65650   mov r2, r7
65651   stmia sp, {r6, sl}  @ phole stm
65652   str r9, [sp, #8]
65653   bl  render_scanline_conditional_tile
65654 .L20770:
65655   cmp r8, #0
65656   movne r1, r4
65657   beq .L21066
65658 .L21040:
65659   mov r3, r7
65660   mov r0, #4
65661   mov r2, #240
65662   add sp, sp, #32
65663   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
65664   b render_scanline_obj_copy_tile_1D
65665 .L20506:
65666   ldrh  r3, [lr, #68]
65667   ldr r4, .L21076
65668   and r1, r3, #255
65669   mov r0, r3, lsr #8
65670   cmp r0, r1
65671   ldrh  r2, [lr, #72]
65672   bls .L20714
65673   cmp ip, r0
65674   movls r3, #0
65675   movhi r3, #1
65676   cmp ip, r1
65677   orrls r3, r3, #1
65678   cmp r3, #0
65679   beq .L21017
65680 .L20722:
65681   cmp r0, #227
65682   bls .L21067
65683 .L20718:
65684   mov r4, #240
65685   mov r5, r4
65686 .L20733:
65687   mov r0, #0
65688   mov r1, r5
65689   mov r2, r7
65690   ldr r3, [sp, #12]
65691   stmia sp, {r6, sl}  @ phole stm
65692   str r9, [sp, #8]
65693   bl  render_scanline_conditional_tile
65694 .L20734:
65695   ands  r8, r6, #64
65696   beq .L20735
65697   mov r0, #4
65698   mov r1, #0
65699   mov r2, r5
65700   mov r3, r7
65701   bl  render_scanline_obj_copy_tile_1D
65702 .L20737:
65703   cmp r5, r4
65704   bne .L21056
65705   b .L20768
65706 .L20504:
65707   ldrh  r3, [lr, #68]
65708   ldr r2, .L21076
65709   and r1, r3, #255
65710   mov r0, r3, lsr #8
65711   cmp r0, r1
65712   ldrh  r4, [lr, #72]
65713   bls .L20552
65714   cmp ip, r0
65715   movls r3, #0
65716   movhi r3, #1
65717   cmp ip, r1
65718   orrls r3, r3, #1
65719   cmp r3, #0
65720   beq .L21049
65721 .L20560:
65722   cmp r0, #227
65723   bls .L21068
65724 .L20556:
65725   mov r5, #240
65726   mov fp, r5
65727 .L20559:
65728   ldrh  r3, [lr, #70]
65729   ldr r0, .L21076
65730   and r1, r3, #255
65731   mov r2, r3, lsr #8
65732   cmp r2, r1
65733   bls .L20563
65734   cmp ip, r2
65735   movls r3, #0
65736   movhi r3, #1
65737   cmp ip, r1
65738   orrls r3, r3, #1
65739   cmp r3, #0
65740   beq .L21050
65741 .L20571:
65742   cmp r2, #227
65743   bls .L21069
65744 .L20567:
65745   mov r8, #240
65746   mov r4, r8
65747 .L20570:
65748   cmp fp, r5
65749   bls .L20574
65750   cmp r5, #0
65751   bne .L21070
65752 .L20576:
65753   cmp r4, #240
65754   beq .L20578
65755   cmp r4, r8
65756   bls .L20580
65757   cmp r8, #0
65758   beq .L20582
65759   cmp r5, #0
65760   beq .L20584
65761   cmp r5, r8
65762   bcs .L20582
65763   cmp fp, r8
65764   movcc r0, r5
65765   movcc r1, fp
65766   movcs r0, r5
65767   movcs r1, r8
65768   mov r2, r7
65769   ldr r3, [sp, #20]
65770   stmia sp, {r6, sl}  @ phole stm
65771   str r9, [sp, #8]
65772   bl  render_scanline_conditional_tile
65773 .L20582:
65774   cmp r5, r8
65775   bls .L20591
65776   cmp r5, r4
65777   bcs .L20593
65778   cmp fp, r4
65779   ldrcc r3, [sp, #12]
65780   ldrcs r3, [sp, #12]
65781   movcc r0, r5
65782   movcc r1, fp
65783   movcs r0, r5
65784   movcs r1, r4
65785 .L20999:
65786   mov r2, r7
65787   stmia sp, {r6, sl}  @ phole stm
65788   str r9, [sp, #8]
65789   bl  render_scanline_conditional_tile
65790 .L20593:
65791   cmp r5, r4
65792   bls .L20600
65793   cmp r5, #239
65794   bhi .L20602
65795   cmp fp, #239
65796   movls r0, r5
65797   bls .L21003
65798   ldr r3, [sp, #20]
65799   mov r0, r5
65800   mov r1, #240
65801 .L21002:
65802   mov r2, r7
65803   stmia sp, {r6, sl}  @ phole stm
65804   str r9, [sp, #8]
65805   bl  render_scanline_conditional_tile
65806 .L20602:
65807   cmp fp, #240
65808   beq .L20990
65809 .L20606:
65810   ldr r3, [sp, #16]
65811   mov r0, fp
65812   mov r2, r7
65813   b .L21037
65814 .L20505:
65815   mov r1, #240
65816   ldr r3, [sp, #12]
65817   mov r0, #0
65818   mov r2, r7
65819   str sl, [sp, #4]
65820   str r9, [sp, #8]
65821   str r6, [sp, #0]
65822   bl  render_scanline_conditional_tile
65823   ands  r1, r6, #64
65824   beq .L21038
65825   mov r3, r7
65826   mov r0, #4
65827   mov r1, #0
65828   mov r2, #240
65829   add sp, sp, #32
65830   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
65831   b render_scanline_obj_copy_tile_1D
65832 .L20531:
65833   cmp ip, r0
65834   movcc r3, #0
65835   movcs r3, #1
65836   cmp ip, r1
65837   movcs r3, #0
65838   cmp r3, #0
65839   beq .L20994
65840 .L20539:
65841   cmp r0, #227
65842   bhi .L20535
65843   ldrh  r3, [r4, #66]
65844   mov r2, r2, lsr #8
65845   and r4, r3, #255
65846   mov r3, r3, lsr #8
65847   cmp r3, #240
65848   movcc r5, r3
65849   movcs r5, #240
65850   cmp r4, #240
65851   and r8, r2, #63
65852   bls .L20538
65853 .L21059:
65854   mov r4, #240
65855   b .L20538
65856 .L20714:
65857   cmp ip, r0
65858   movcc r3, #0
65859   movcs r3, #1
65860   cmp ip, r1
65861   movcs r3, #0
65862   cmp r3, #0
65863   bne .L20722
65864 .L21017:
65865   cmp r1, #227
65866   bls .L20718
65867   b .L20722
65868 .L20563:
65869   cmp ip, r2
65870   movcc r3, #0
65871   movcs r3, #1
65872   cmp ip, r1
65873   movcs r3, #0
65874   cmp r3, #0
65875   bne .L20571
65876 .L21050:
65877   cmp r1, #227
65878   bls .L20567
65879   b .L20571
65880 .L20552:
65881   cmp ip, r0
65882   movcc r3, #0
65883   movcs r3, #1
65884   cmp ip, r1
65885   movcs r3, #0
65886   cmp r3, #0
65887   bne .L20560
65888 .L21049:
65889   cmp r1, #227
65890   bls .L20556
65891   b .L20560
65892 .L20785:
65893   cmp ip, r2
65894   movcc r3, #0
65895   movcs r3, #1
65896   cmp ip, r1
65897   movcs r3, #0
65898   cmp r3, #0
65899   bne .L20793
65900 .L21054:
65901   cmp r1, #227
65902   bls .L20789
65903   b .L20793
65904 .L20744:
65905   cmp ip, r0
65906   movcc r3, #0
65907   movcs r3, #1
65908   cmp ip, r1
65909   movcs r3, #0
65910   cmp r3, #0
65911   bne .L20752
65912 .L21019:
65913   cmp r1, #227
65914   bls .L20748
65915   b .L20752
65916 .L20510:
65917   cmp ip, r1
65918   movcc r3, #0
65919   movcs r3, #1
65920   cmp ip, r2
65921   movcs r3, #0
65922   cmp r3, #0
65923   bne .L20518
65924 .L20992:
65925   cmp r2, #227
65926   bls .L20535
65927   b .L20518
65928 .L20774:
65929   cmp ip, r0
65930   movcc r3, #0
65931   movcs r3, #1
65932   cmp ip, r1
65933   movcs r3, #0
65934   cmp r3, #0
65935   bne .L20782
65936 .L21053:
65937   cmp r1, #227
65938   bls .L20778
65939   b .L20782
65940 .L21066:
65941   mov r1, r4
65942 .L21038:
65943   mov r3, r7
65944   mov r0, #4
65945   mov r2, #240
65946   add sp, sp, #32
65947   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
65948   b render_scanline_obj_copy_tile_2D
65949 .L20796:
65950   cmp r4, #240
65951   beq .L20886
65952   cmp r4, r5
65953   bls .L20888
65954   cmp r5, #0
65955   beq .L20890
65956   cmp fp, r5
65957   bcs .L20892
65958   cmp fp, #0
65959   movne r0, #0
65960   movne r1, fp
65961   bne .L21029
65962 .L20890:
65963   cmp fp, r4
65964   bcs .L20895
65965   cmp fp, r5
65966   bhi .L21071
65967 .L20897:
65968   cmp fp, #239
65969   bhi .L20903
65970   cmp fp, r4
65971   movhi r0, r4
65972   movhi r1, fp
65973   bhi .L21031
65974 .L20905:
65975   cmp fp, r8
65976   beq .L20933
65977   mov r0, fp
65978   ldr r3, [sp, #24]
65979   mov r1, r8
65980   mov r2, r7
65981   stmia sp, {r6, sl}  @ phole stm
65982   str r9, [sp, #8]
65983   bl  render_scanline_conditional_tile
65984 .L20933:
65985   cmp r4, #240
65986   beq .L20935
65987   cmp r4, r5
65988   bls .L20937
65989   cmp r5, #0
65990   beq .L20939
65991   cmp r8, #0
65992   beq .L20941
65993   cmp r8, r5
65994   bcs .L20939
65995   cmp r5, #240
65996   movhi r0, r8
65997   movhi r1, #240
65998   movls r0, r8
65999   movls r1, r5
66000   mov r2, r7
66001   ldr r3, [sp, #28]
66002   stmia sp, {r6, sl}  @ phole stm
66003   str r9, [sp, #8]
66004   bl  render_scanline_conditional_tile
66005 .L20939:
66006   cmp r8, r5
66007   bls .L20948
66008   cmp r8, r4
66009   bcc .L21072
66010 .L20950:
66011   cmp r8, r4
66012   bls .L20956
66013   cmp r8, #239
66014   bhi .L20990
66015   ldr r3, [sp, #28]
66016   mov r0, r8
66017   mov r2, r7
66018   b .L21037
66019 .L20574:
66020   cmp r4, #240
66021   beq .L20638
66022   cmp r4, r8
66023   bls .L20640
66024   cmp r8, #0
66025   beq .L20642
66026   cmp fp, r8
66027   bcs .L20644
66028   cmp fp, #0
66029   movne r0, #0
66030   movne r1, fp
66031   bne .L21005
66032 .L20642:
66033   cmp fp, r4
66034   bcs .L20647
66035   cmp fp, r8
66036   movhi r0, r8
66037   movhi r1, fp
66038   bhi .L21006
66039 .L20649:
66040   cmp fp, #239
66041   bhi .L20651
66042   cmp fp, r4
66043   movhi r0, r4
66044   movhi r1, fp
66045   bhi .L21009
66046 .L20653:
66047   cmp fp, r5
66048   beq .L20670
66049   mov r0, fp
66050   ldr r3, [sp, #16]
66051   mov r1, r5
66052   mov r2, r7
66053   stmia sp, {r6, sl}  @ phole stm
66054   str r9, [sp, #8]
66055   bl  render_scanline_conditional_tile
66056 .L20670:
66057   cmp r4, #240
66058   beq .L20672
66059   cmp r4, r8
66060   bls .L20674
66061   cmp r8, #0
66062   beq .L20676
66063   cmp r5, #0
66064   beq .L20678
66065   cmp r5, r8
66066   bcs .L20676
66067   cmp r8, #240
66068   movhi r0, r5
66069   movhi r1, #240
66070   movls r0, r5
66071   movls r1, r8
66072   mov r2, r7
66073   ldr r3, [sp, #20]
66074   stmia sp, {r6, sl}  @ phole stm
66075   str r9, [sp, #8]
66076   bl  render_scanline_conditional_tile
66077 .L20676:
66078   cmp r5, r8
66079   bls .L20685
66080   cmp r5, r4
66081   ldrcc r3, [sp, #12]
66082   movcc r0, r5
66083   bcc .L21013
66084 .L20687:
66085   cmp r5, r4
66086   bls .L20689
66087   cmp r5, #239
66088   bhi .L20990
66089   ldr r3, [sp, #20]
66090   mov r0, r5
66091   mov r2, r7
66092   b .L21037
66093 .L20765:
66094   mov r0, #4
66095   mov r1, r8
66096   mov r2, r5
66097   mov r3, r7
66098   bl  render_scanline_obj_copy_tile_2D
66099   b .L20767
66100 .L20735:
66101   mov r0, #4
66102   mov r1, r8
66103   mov r2, r5
66104   mov r3, r7
66105   bl  render_scanline_obj_copy_tile_2D
66106   b .L20737
66107 .L21067:
66108   ldrh  r3, [r4, #64]
66109   and fp, r2, #63
66110   and r4, r3, #255
66111   mov r3, r3, lsr #8
66112   cmp r3, #240
66113   movcc r5, r3
66114   movcs r5, #240
66115   cmp r4, #240
66116   movhi r4, #240
66117   cmp r5, r4
66118   bhi .L21058
66119   cmp r5, #0
66120   bne .L20733
66121   b .L20734
66122 .L21069:
66123   ldrh  r3, [r0, #66]
66124   mov r2, r4, lsr #8
66125   and r8, r3, #255
66126   mov r3, r3, lsr #8
66127   cmp r3, #240
66128   movcc r4, r3
66129   movcs r4, #240
66130   cmp r8, #240
66131   and r2, r2, #63
66132   movhi r8, #240
66133   str r2, [sp, #20]
66134   b .L20570
66135 .L21062:
66136   ldrh  r3, [r0, #66]
66137   mov r2, r4, lsr #8
66138   and r5, r3, #255
66139   mov r3, r3, lsr #8
66140   cmp r3, #240
66141   movcc r4, r3
66142   movcs r4, #240
66143   cmp r5, #240
66144   and r2, r2, #63
66145   movhi r5, #240
66146   str r2, [sp, #28]
66147   b .L20792
66148 .L21061:
66149   ldrh  r3, [r2, #64]
66150   and r2, r4, #63
66151   and r8, r3, #255
66152   mov r3, r3, lsr #8
66153   cmp r3, #240
66154   movcc fp, r3
66155   movcs fp, #240
66156   cmp r8, #240
66157   movhi r8, #240
66158   str r2, [sp, #24]
66159   b .L20781
66160 .L21065:
66161   ldrh  r3, [r4, #66]
66162   mov r2, r2, lsr #8
66163   and r4, r3, #255
66164   mov r3, r3, lsr #8
66165   cmp r3, #240
66166   movcc r5, r3
66167   movcs r5, #240
66168   cmp r4, #240
66169   movhi r4, #240
66170   cmp r5, r4
66171   and fp, r2, #63
66172   bhi .L21058
66173   cmp r5, #0
66174   bne .L20763
66175   b .L20764
66176 .L21068:
66177   ldrh  r3, [r2, #64]
66178   and r2, r4, #63
66179   and r5, r3, #255
66180   mov r3, r3, lsr #8
66181   cmp r3, #240
66182   movcc fp, r3
66183   movcs fp, #240
66184   cmp r5, #240
66185   movhi r5, #240
66186   str r2, [sp, #16]
66187   b .L20559
66188 .L21064:
66189   cmp r5, #0
66190   beq .L20804
66191   cmp r8, #0
66192   beq .L20806
66193   cmp r8, r5
66194   bcs .L20804
66195   cmp fp, r5
66196   movcc r0, r8
66197   movcc r1, fp
66198   movcs r0, r8
66199   movcs r1, r5
66200   mov r2, r7
66201   ldr r3, [sp, #28]
66202   stmia sp, {r6, sl}  @ phole stm
66203   str r9, [sp, #8]
66204   bl  render_scanline_conditional_tile
66205 .L20804:
66206   cmp r8, r5
66207   bls .L20813
66208   cmp r8, r4
66209   bcs .L20815
66210   cmp fp, r4
66211   bcs .L20817
66212   ldr r3, [sp, #12]
66213   mov r0, r8
66214   mov r1, fp
66215   mov r2, r7
66216   stmia sp, {r6, sl}  @ phole stm
66217   str r9, [sp, #8]
66218   bl  render_scanline_conditional_tile
66219   tst r6, #64
66220   beq .L20819
66221   mov r0, #4
66222   mov r1, r8
66223   mov r2, fp
66224   mov r3, r7
66225   bl  render_scanline_obj_copy_tile_1D
66226 .L20815:
66227   cmp r8, r4
66228   bls .L20830
66229   cmp r8, #239
66230   bhi .L20832
66231   cmp fp, #239
66232   movls r0, r8
66233   movhi r0, r8
66234   bhi .L21027
66235 .L21028:
66236   ldr r3, [sp, #28]
66237   mov r1, fp
66238   mov r2, r7
66239   stmia sp, {r6, sl}  @ phole stm
66240   str r9, [sp, #8]
66241   bl  render_scanline_conditional_tile
66242 .L20836:
66243   ldr r3, [sp, #24]
66244   mov r0, fp
66245   mov r2, r7
66246   b .L21037
66247 .L20580:
66248   cmp r4, #0
66249   beq .L20610
66250   cmp r5, #0
66251   beq .L20612
66252   cmp r5, r4
66253   bcs .L20610
66254 .L20612:
66255   cmp fp, r4
66256   movcc r0, r5
66257   movcc r1, fp
66258   movcs r0, r5
66259   movcs r1, r4
66260   mov r2, r7
66261   ldr r3, [sp, #12]
66262   stmia sp, {r6, sl}  @ phole stm
66263   str r9, [sp, #8]
66264   bl  render_scanline_conditional_tile
66265 .L20610:
66266   cmp r4, r8
66267   beq .L20619
66268   cmp r5, r4
66269   bls .L20621
66270   cmp r5, r8
66271   bcs .L20619
66272   cmp fp, r8
66273   ldrcc r3, [sp, #20]
66274   ldrcs r3, [sp, #20]
66275   movcc r0, r5
66276   movcc r1, fp
66277   movcs r0, r5
66278   movcs r1, r8
66279 .L21001:
66280   mov r2, r7
66281   stmia sp, {r6, sl}  @ phole stm
66282   str r9, [sp, #8]
66283   bl  render_scanline_conditional_tile
66284 .L20619:
66285   cmp r8, #240
66286   beq .L20602
66287   cmp r5, r8
66288   bls .L20630
66289   cmp r5, #239
66290   bhi .L20602
66291   cmp fp, #239
66292   movls r0, r5
66293   ldrls r3, [sp, #12]
66294   bls .L21004
66295   ldr r3, [sp, #12]
66296   mov r0, r5
66297   mov r1, #240
66298   b .L21002
66299 .L21063:
66300   mov r0, #0
66301   mov r1, r8
66302   mov r2, r7
66303   ldr r3, [sp, #24]
66304   stmia sp, {r6, sl}  @ phole stm
66305   str r9, [sp, #8]
66306   bl  render_scanline_conditional_tile
66307   b .L20798
66308 .L21070:
66309   mov r0, #0
66310   mov r1, r5
66311   mov r2, r7
66312   ldr r3, [sp, #16]
66313   stmia sp, {r6, sl}  @ phole stm
66314   str r9, [sp, #8]
66315   bl  render_scanline_conditional_tile
66316   b .L20576
66317 .L20886:
66318   cmp fp, #0
66319   bne .L21073
66320 .L20929:
66321   ands  r1, r6, #64
66322   beq .L20931
66323   mov r0, #4
66324   mov r1, #0
66325   mov r2, fp
66326   mov r3, r7
66327   bl  render_scanline_obj_copy_tile_1D
66328   b .L20905
66329 .L20638:
66330   cmp fp, #0
66331   beq .L20653
66332   mov r0, #0
66333   mov r1, fp
66334 .L21010:
66335   mov r2, r7
66336   ldr r3, [sp, #12]
66337   stmia sp, {r6, sl}  @ phole stm
66338   str r9, [sp, #8]
66339   bl  render_scanline_conditional_tile
66340   b .L20653
66341 .L21058:
66342   cmp r4, #0
66343   bne .L21074
66344 .L20757:
66345   ldr r3, [sp, #12]
66346   mov r0, r4
66347   mov r1, r5
66348   mov r2, r7
66349   stmia sp, {r6, sl}  @ phole stm
66350   str r9, [sp, #8]
66351   bl  render_scanline_conditional_tile
66352   tst r6, #64
66353   beq .L20759
66354   mov r1, r4
66355   mov r0, #4
66356   mov r2, r5
66357   mov r3, r7
66358   bl  render_scanline_obj_copy_tile_1D
66359 .L20761:
66360   cmp r5, #240
66361   movne r0, r5
66362   movne r2, r7
66363   movne r3, fp
66364   bne .L21037
66365   b .L20990
66366 .L20542:
66367   cmp r5, #0
66368   bne .L20547
66369   b .L20548
66370 .L20800:
66371   ldr r3, [sp, #12]
66372   mov r0, r8
66373   mov r1, fp
66374   mov r2, r7
66375   stmia sp, {r6, sl}  @ phole stm
66376   str r9, [sp, #8]
66377   bl  render_scanline_conditional_tile
66378   tst r6, #64
66379   beq .L20884
66380   mov r1, r8
66381   mov r0, #4
66382   mov r2, fp
66383   mov r3, r7
66384   bl  render_scanline_obj_copy_tile_1D
66385 .L20832:
66386   cmp fp, #240
66387   bne .L20836
66388   b .L20990
66389 .L20759:
66390   mov r1, r4
66391   mov r0, #4
66392   mov r2, r5
66393   mov r3, r7
66394   bl  render_scanline_obj_copy_tile_2D
66395   b .L20761
66396 .L21077:
66397   .align  2
66398 .L21076:
66399   .word io_registers
66400   .word tile_mode_renderers
66401 .L20937:
66402   cmp r4, #0
66403   beq .L20959
66404   cmp r8, #0
66405   beq .L20961
66406   cmp r8, r4
66407   bcc .L20961
66408 .L20959:
66409   cmp r4, r5
66410   beq .L20968
66411   cmp r8, r4
66412   bls .L20970
66413   cmp r8, r5
66414   bcs .L20968
66415   cmp r5, #240
66416   ldrhi r3, [sp, #28]
66417   movhi r0, r8
66418   ldrls r3, [sp, #28]
66419   movls r0, r8
66420   bls .L21035
66421 .L21036:
66422   mov r1, #240
66423   mov r2, r7
66424   stmia sp, {r6, sl}  @ phole stm
66425   str r9, [sp, #8]
66426   bl  render_scanline_conditional_tile
66427 .L20975:
66428   cmp r8, r5
66429   bls .L20979
66430   cmp r8, #239
66431   bhi .L20990
66432   mov r1, #240
66433   ldr r3, [sp, #12]
66434   mov r0, r8
66435   mov r2, r7
66436   str sl, [sp, #4]
66437   str r9, [sp, #8]
66438   str r6, [sp, #0]
66439   bl  render_scanline_conditional_tile
66440   tst r6, #64
66441   moveq r1, r8
66442   beq .L21038
66443   mov r1, r8
66444   b .L21040
66445 .L20674:
66446   cmp r4, #0
66447   beq .L20692
66448   cmp r5, #0
66449   beq .L20694
66450   cmp r5, r4
66451   bcc .L20694
66452 .L20692:
66453   cmp r4, r8
66454   beq .L20697
66455   cmp r5, r4
66456   bls .L20699
66457   cmp r5, r8
66458   bcs .L20697
66459   cmp r8, #240
66460   ldrhi r3, [sp, #20]
66461   movhi r0, r5
66462   ldrls r3, [sp, #20]
66463   movls r0, r5
66464   bls .L21014
66465 .L21015:
66466   mov r1, #240
66467   mov r2, r7
66468   stmia sp, {r6, sl}  @ phole stm
66469   str r9, [sp, #8]
66470   bl  render_scanline_conditional_tile
66471 .L20704:
66472   cmp r5, r8
66473   bls .L20708
66474   cmp r5, #239
66475   bhi .L20990
66476   ldr r3, [sp, #12]
66477   mov r0, r5
66478   mov r2, r7
66479   b .L21037
66480 .L20888:
66481   cmp r4, #0
66482   beq .L20907
66483   cmp fp, r4
66484   bcs .L20909
66485   cmp fp, #0
66486   bne .L21075
66487 .L20907:
66488   cmp r4, r5
66489   beq .L20916
66490   cmp fp, r5
66491   bcs .L20918
66492   cmp fp, r4
66493   movhi r0, r4
66494   movhi r1, fp
66495   bhi .L21030
66496 .L20916:
66497   cmp r5, #240
66498   beq .L20905
66499   cmp fp, #239
66500   bhi .L20922
66501   cmp fp, r5
66502   bls .L20905
66503   mov r0, r5
66504   mov r1, fp
66505   mov r2, r7
66506   ldr r3, [sp, #12]
66507   stmia sp, {r6, sl}  @ phole stm
66508   str r9, [sp, #8]
66509   bl  render_scanline_conditional_tile
66510   tst r6, #64
66511   beq .L20925
66512   mov r0, #4
66513   mov r1, r5
66514   mov r2, fp
66515   mov r3, r7
66516   bl  render_scanline_obj_copy_tile_1D
66517   b .L20905
66518 .L20640:
66519   cmp r4, #0
66520   beq .L20655
66521   cmp fp, r4
66522   bcs .L20657
66523   cmp fp, #0
66524   movne r0, #0
66525   movne r1, fp
66526   bne .L21007
66527 .L20655:
66528   cmp r4, r8
66529   beq .L20660
66530   cmp fp, r8
66531   bcs .L20662
66532   cmp fp, r4
66533   movhi r0, r4
66534   movhi r1, fp
66535   bhi .L21008
66536 .L20660:
66537   cmp r8, #240
66538   beq .L20653
66539   cmp fp, #239
66540   bhi .L20666
66541   cmp fp, r8
66542   movhi r0, r8
66543   movhi r1, fp
66544   bls .L20653
66545   b .L21010
66546 .L20935:
66547   cmp r8, #240
66548   beq .L20986
66549   ldr r3, [sp, #12]
66550   mov r0, r8
66551   mov r1, r4
66552   mov r2, r7
66553   str sl, [sp, #4]
66554   str r9, [sp, #8]
66555   str r6, [sp, #0]
66556   bl  render_scanline_conditional_tile
66557 .L20986:
66558   tst r6, #64
66559   beq .L20988
66560   mov r1, r8
66561   mov r2, r4
66562   mov r3, r7
66563   mov r0, #4
66564   add sp, sp, #32
66565   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
66566   b render_scanline_obj_copy_tile_1D
66567 .L20672:
66568   cmp r5, #240
66569   beq .L20990
66570   mov r0, r5
66571   mov r1, r4
66572   mov r2, r7
66573   ldr r3, [sp, #12]
66574   stmia sp, {r6, sl}  @ phole stm
66575   str r9, [sp, #8]
66576   bl  render_scanline_conditional_tile
66577   b .L20990
66578 .L20806:
66579   cmp fp, r5
66580   movcc r0, r8
66581   movcc r1, fp
66582   movcs r0, r8
66583   movcs r1, r5
66584   mov r2, r7
66585   ldr r3, [sp, #28]
66586   stmia sp, {r6, sl}  @ phole stm
66587   str r9, [sp, #8]
66588   bl  render_scanline_conditional_tile
66589 .L20813:
66590   cmp fp, r4
66591   bcs .L20823
66592   cmp fp, r5
66593   bls .L20815
66594   ldr r3, [sp, #12]
66595   mov r0, r5
66596   mov r1, fp
66597   mov r2, r7
66598   stmia sp, {r6, sl}  @ phole stm
66599   str r9, [sp, #8]
66600   bl  render_scanline_conditional_tile
66601   tst r6, #64
66602   beq .L20826
66603   mov r1, r5
66604   mov r0, #4
66605   mov r2, fp
66606   mov r3, r7
66607   bl  render_scanline_obj_copy_tile_1D
66608   b .L20815
66609 .L20584:
66610   cmp fp, r8
66611   movcc r0, r5
66612   movcc r1, fp
66613   movcs r0, r5
66614   movcs r1, r8
66615   mov r2, r7
66616   ldr r3, [sp, #20]
66617   stmia sp, {r6, sl}  @ phole stm
66618   str r9, [sp, #8]
66619   bl  render_scanline_conditional_tile
66620 .L20591:
66621   cmp fp, r4
66622   bcs .L20597
66623   cmp fp, r8
66624   bls .L20593
66625   ldr r3, [sp, #12]
66626   mov r0, r8
66627   mov r1, fp
66628   b .L20999
66629 .L20678:
66630   cmp r8, #240
66631   movhi r0, r5
66632   movhi r1, #240
66633   movls r0, r5
66634   movls r1, r8
66635   mov r2, r7
66636   ldr r3, [sp, #20]
66637   stmia sp, {r6, sl}  @ phole stm
66638   str r9, [sp, #8]
66639   bl  render_scanline_conditional_tile
66640 .L20685:
66641   ldr r3, [sp, #12]
66642   mov r0, r8
66643 .L21013:
66644   mov r1, r4
66645   mov r2, r7
66646   stmia sp, {r6, sl}  @ phole stm
66647   str r9, [sp, #8]
66648   bl  render_scanline_conditional_tile
66649   b .L20687
66650 .L20705:
66651   ldr r3, [sp, #20]
66652   mov r0, r4
66653 .L21014:
66654   mov r1, r8
66655   mov r2, r7
66656   stmia sp, {r6, sl}  @ phole stm
66657   str r9, [sp, #8]
66658   bl  render_scanline_conditional_tile
66659 .L20697:
66660   cmp r8, #240
66661   bne .L20704
66662   b .L20990
66663 .L20976:
66664   ldr r3, [sp, #28]
66665   mov r0, r4
66666 .L21035:
66667   mov r1, r5
66668   mov r2, r7
66669   stmia sp, {r6, sl}  @ phole stm
66670   str r9, [sp, #8]
66671   bl  render_scanline_conditional_tile
66672 .L20968:
66673   cmp r5, #240
66674   bne .L20975
66675   b .L20990
66676 .L21060:
66677   mov r0, #0
66678   mov r1, r4
66679   mov r2, r7
66680   mov r3, r8
66681   stmia sp, {r6, sl}  @ phole stm
66682   str r9, [sp, #8]
66683   bl  render_scanline_conditional_tile
66684   b .L20544
66685 .L21074:
66686   mov r0, #0
66687   mov r1, r4
66688   mov r2, r7
66689   mov r3, fp
66690   stmia sp, {r6, sl}  @ phole stm
66691   str r9, [sp, #8]
66692   bl  render_scanline_conditional_tile
66693   b .L20757
66694 .L20941:
66695   cmp r5, #240
66696   movhi r0, r8
66697   movhi r1, #240
66698   movls r0, r8
66699   movls r1, r5
66700   mov r2, r7
66701   ldr r3, [sp, #28]
66702   stmia sp, {r6, sl}  @ phole stm
66703   str r9, [sp, #8]
66704   bl  render_scanline_conditional_tile
66705 .L20948:
66706   ldr r3, [sp, #12]
66707   mov r0, r5
66708   mov r1, r4
66709   mov r2, r7
66710   stmia sp, {r6, sl}  @ phole stm
66711   str r9, [sp, #8]
66712   bl  render_scanline_conditional_tile
66713   tst r6, #64
66714   beq .L20954
66715   mov r1, r5
66716   mov r0, #4
66717   mov r2, r4
66718   mov r3, r7
66719   bl  render_scanline_obj_copy_tile_1D
66720   b .L20950
66721 .L20830:
66722   cmp fp, #239
66723   bhi .L20837
66724   cmp fp, r4
66725   bls .L20836
66726   mov r0, r4
66727   b .L21028
66728 .L20600:
66729   cmp fp, #239
66730   bhi .L20607
66731   cmp fp, r4
66732   bls .L20606
66733   mov r0, r4
66734 .L21003:
66735   ldr r3, [sp, #20]
66736 .L21004:
66737   mov r1, fp
66738   mov r2, r7
66739   stmia sp, {r6, sl}  @ phole stm
66740   str r9, [sp, #8]
66741   bl  render_scanline_conditional_tile
66742   b .L20606
66743 .L20651:
66744   mov r0, r4
66745   mov r1, #240
66746 .L21009:
66747   mov r2, r7
66748   ldr r3, [sp, #20]
66749   stmia sp, {r6, sl}  @ phole stm
66750   str r9, [sp, #8]
66751   bl  render_scanline_conditional_tile
66752   b .L20653
66753 .L20903:
66754   mov r0, r4
66755   mov r1, #240
66756 .L21031:
66757   mov r2, r7
66758   ldr r3, [sp, #28]
66759   stmia sp, {r6, sl}  @ phole stm
66760   str r9, [sp, #8]
66761   bl  render_scanline_conditional_tile
66762   b .L20905
66763 .L20647:
66764   mov r0, r8
66765   mov r1, r4
66766 .L21006:
66767   mov r2, r7
66768   ldr r3, [sp, #12]
66769   stmia sp, {r6, sl}  @ phole stm
66770   str r9, [sp, #8]
66771   bl  render_scanline_conditional_tile
66772   b .L20649
66773 .L20630:
66774   cmp fp, #239
66775   bhi .L20635
66776   cmp fp, r8
66777   movhi r0, r8
66778   ldrhi r3, [sp, #12]
66779   bls .L20606
66780   b .L21004
66781 .L20859:
66782   cmp fp, r5
66783   bcs .L20864
66784   cmp fp, r4
66785   bls .L20857
66786   ldr r3, [sp, #28]
66787   mov r0, r4
66788   mov r1, fp
66789   b .L21026
66790 .L20868:
66791   cmp fp, #239
66792   bhi .L20877
66793   cmp fp, r5
66794   bls .L20836
66795   ldr r3, [sp, #12]
66796   mov r0, r5
66797   mov r1, fp
66798   mov r2, r7
66799   stmia sp, {r6, sl}  @ phole stm
66800   str r9, [sp, #8]
66801   bl  render_scanline_conditional_tile
66802   tst r6, #64
66803   beq .L20880
66804   mov r1, r5
66805   mov r0, #4
66806   mov r2, fp
66807   mov r3, r7
66808   bl  render_scanline_obj_copy_tile_1D
66809   b .L20836
66810 .L20621:
66811   cmp fp, r8
66812   bcs .L20626
66813   cmp fp, r4
66814   bls .L20619
66815   ldr r3, [sp, #20]
66816   mov r0, r4
66817   mov r1, fp
66818   b .L21001
66819 .L20578:
66820   ldr r3, [sp, #12]
66821   mov r0, r5
66822   mov r1, fp
66823   b .L21002
66824 .L20988:
66825   mov r1, r8
66826   mov r2, r4
66827   mov r3, r7
66828   mov r0, #4
66829   add sp, sp, #32
66830   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
66831   b render_scanline_obj_copy_tile_2D
66832 .L20931:
66833   mov r0, #4
66834   mov r2, fp
66835   mov r3, r7
66836   bl  render_scanline_obj_copy_tile_2D
66837   b .L20905
66838 .L20918:
66839   mov r0, r4
66840   mov r1, r5
66841 .L21030:
66842   mov r2, r7
66843   ldr r3, [sp, #28]
66844   stmia sp, {r6, sl}  @ phole stm
66845   str r9, [sp, #8]
66846   bl  render_scanline_conditional_tile
66847   b .L20916
66848 .L20662:
66849   mov r0, r4
66850   mov r1, r8
66851 .L21008:
66852   mov r2, r7
66853   ldr r3, [sp, #20]
66854   stmia sp, {r6, sl}  @ phole stm
66855   str r9, [sp, #8]
66856   bl  render_scanline_conditional_tile
66857   b .L20660
66858 .L20699:
66859   cmp r8, #240
66860   bls .L20705
66861   cmp r4, #239
66862   bhi .L20704
66863   ldr r3, [sp, #20]
66864   mov r0, r4
66865   b .L21015
66866 .L20970:
66867   cmp r5, #240
66868   bls .L20976
66869   cmp r4, #239
66870   bhi .L20975
66871   ldr r3, [sp, #28]
66872   mov r0, r4
66873   b .L21036
66874 .L20837:
66875   mov r0, r4
66876 .L21027:
66877   ldr r3, [sp, #28]
66878   mov r1, #240
66879   mov r2, r7
66880   stmia sp, {r6, sl}  @ phole stm
66881   str r9, [sp, #8]
66882   bl  render_scanline_conditional_tile
66883   b .L20832
66884 .L20954:
66885   mov r1, r5
66886   mov r0, #4
66887   mov r2, r4
66888   mov r3, r7
66889   bl  render_scanline_obj_copy_tile_2D
66890   b .L20950
66891 .L20895:
66892   mov r0, r5
66893   mov r1, r4
66894   mov r2, r7
66895   ldr r3, [sp, #12]
66896   stmia sp, {r6, sl}  @ phole stm
66897   str r9, [sp, #8]
66898   bl  render_scanline_conditional_tile
66899   tst r6, #64
66900   beq .L20901
66901   mov r0, #4
66902   mov r1, r5
66903   mov r2, r4
66904   mov r3, r7
66905   bl  render_scanline_obj_copy_tile_1D
66906   b .L20897
66907 .L20956:
66908   ldr r3, [sp, #28]
66909   mov r0, r4
66910   mov r2, r7
66911   b .L21037
66912 .L20689:
66913   ldr r3, [sp, #20]
66914   mov r0, r4
66915   mov r2, r7
66916   b .L21037
66917 .L20708:
66918   ldr r3, [sp, #12]
66919   mov r0, r8
66920   mov r2, r7
66921   b .L21037
66922 .L20979:
66923   mov r1, #240
66924   ldr r3, [sp, #12]
66925   mov r0, r5
66926   mov r2, r7
66927   str sl, [sp, #4]
66928   str r9, [sp, #8]
66929   str r6, [sp, #0]
66930   bl  render_scanline_conditional_tile
66931   tst r6, #64
66932   movne r1, r5
66933   moveq r1, r5
66934   beq .L21038
66935   b .L21040
66936 .L20892:
66937   mov r0, #0
66938   mov r1, r5
66939 .L21029:
66940   mov r2, r7
66941   ldr r3, [sp, #28]
66942   stmia sp, {r6, sl}  @ phole stm
66943   str r9, [sp, #8]
66944   bl  render_scanline_conditional_tile
66945   b .L20890
66946 .L20657:
66947   mov r0, #0
66948   mov r1, r4
66949 .L21007:
66950   mov r2, r7
66951   ldr r3, [sp, #12]
66952   stmia sp, {r6, sl}  @ phole stm
66953   str r9, [sp, #8]
66954   bl  render_scanline_conditional_tile
66955   b .L20655
66956 .L20644:
66957   mov r0, #0
66958   mov r1, r8
66959 .L21005:
66960   mov r2, r7
66961   ldr r3, [sp, #20]
66962   stmia sp, {r6, sl}  @ phole stm
66963   str r9, [sp, #8]
66964   bl  render_scanline_conditional_tile
66965   b .L20642
66966 .L20961:
66967   mov r0, r8
66968   mov r1, r4
66969   mov r2, r7
66970   ldr r3, [sp, #12]
66971   stmia sp, {r6, sl}  @ phole stm
66972   str r9, [sp, #8]
66973   bl  render_scanline_conditional_tile
66974   tst r6, #64
66975   beq .L20966
66976   mov r0, #4
66977   mov r1, r8
66978   mov r2, r4
66979   mov r3, r7
66980   bl  render_scanline_obj_copy_tile_1D
66981   b .L20959
66982 .L20694:
66983   mov r0, r5
66984   mov r1, r4
66985   mov r2, r7
66986   ldr r3, [sp, #12]
66987   stmia sp, {r6, sl}  @ phole stm
66988   str r9, [sp, #8]
66989   bl  render_scanline_conditional_tile
66990   b .L20692
66991 .L21073:
66992   mov r0, #0
66993   mov r1, fp
66994   mov r2, r7
66995   ldr r3, [sp, #12]
66996   stmia sp, {r6, sl}  @ phole stm
66997   str r9, [sp, #8]
66998   bl  render_scanline_conditional_tile
66999   b .L20929
67000 .L20823:
67001   ldr r3, [sp, #12]
67002   mov r0, r5
67003   mov r1, r4
67004   mov r2, r7
67005   stmia sp, {r6, sl}  @ phole stm
67006   str r9, [sp, #8]
67007   bl  render_scanline_conditional_tile
67008   tst r6, #64
67009   beq .L20828
67010   mov r1, r5
67011   mov r0, #4
67012   mov r2, r4
67013   mov r3, r7
67014   bl  render_scanline_obj_copy_tile_1D
67015   b .L20815
67016 .L20597:
67017   ldr r3, [sp, #12]
67018   mov r0, r8
67019   mov r1, r4
67020   b .L20999
67021 .L20851:
67022   mov r0, r8
67023   mov r1, r4
67024   mov r2, r7
67025   ldr r3, [sp, #12]
67026   stmia sp, {r6, sl}  @ phole stm
67027   str r9, [sp, #8]
67028   bl  render_scanline_conditional_tile
67029   tst r6, #64
67030   beq .L20855
67031   mov r0, #4
67032   mov r1, r8
67033   mov r2, r4
67034   mov r3, r7
67035   bl  render_scanline_obj_copy_tile_1D
67036   b .L20840
67037 .L20666:
67038   mov r0, r8
67039   mov r1, #240
67040   b .L21010
67041 .L20884:
67042   mov r1, r8
67043   mov r0, #4
67044   mov r2, fp
67045   mov r3, r7
67046   bl  render_scanline_obj_copy_tile_2D
67047   b .L20832
67048 .L20922:
67049   mov r0, r5
67050   mov r1, #240
67051   mov r2, r7
67052   ldr r3, [sp, #12]
67053   stmia sp, {r6, sl}  @ phole stm
67054   str r9, [sp, #8]
67055   bl  render_scanline_conditional_tile
67056   tst r6, #64
67057   beq .L20927
67058   mov r0, #4
67059   mov r1, r5
67060   mov r2, #240
67061   mov r3, r7
67062   bl  render_scanline_obj_copy_tile_1D
67063   b .L20905
67064 .L21071:
67065   mov r0, r5
67066   mov r1, fp
67067   mov r2, r7
67068   ldr r3, [sp, #12]
67069   stmia sp, {r6, sl}  @ phole stm
67070   str r9, [sp, #8]
67071   bl  render_scanline_conditional_tile
67072   tst r6, #64
67073   beq .L20899
67074   mov r0, #4
67075   mov r1, r5
67076   mov r2, fp
67077   mov r3, r7
67078   bl  render_scanline_obj_copy_tile_1D
67079   b .L20897
67080 .L20607:
67081   ldr r3, [sp, #20]
67082   mov r0, r4
67083   mov r1, #240
67084   b .L21002
67085 .L20909:
67086   mov r1, r4
67087   mov r0, #0
67088   mov r2, r7
67089   ldr r3, [sp, #12]
67090   stmia sp, {r6, sl}  @ phole stm
67091   str r9, [sp, #8]
67092   bl  render_scanline_conditional_tile
67093   ands  r1, r6, #64
67094   beq .L20914
67095   mov r0, #4
67096   mov r1, #0
67097   mov r2, r4
67098   mov r3, r7
67099   bl  render_scanline_obj_copy_tile_1D
67100   b .L20907
67101 .L20901:
67102   mov r0, #4
67103   mov r1, r5
67104   mov r2, r4
67105   mov r3, r7
67106   bl  render_scanline_obj_copy_tile_2D
67107   b .L20897
67108 .L20966:
67109   mov r0, #4
67110   mov r1, r8
67111   mov r2, r4
67112   mov r3, r7
67113   bl  render_scanline_obj_copy_tile_2D
67114   b .L20959
67115 .L20635:
67116   ldr r3, [sp, #12]
67117   mov r0, r8
67118   mov r1, #240
67119   b .L21002
67120 .L20626:
67121   ldr r3, [sp, #20]
67122   mov r0, r4
67123   mov r1, r8
67124   b .L21001
67125 .L20877:
67126   ldr r3, [sp, #12]
67127   mov r0, r5
67128   mov r1, #240
67129   mov r2, r7
67130   stmia sp, {r6, sl}  @ phole stm
67131   str r9, [sp, #8]
67132   bl  render_scanline_conditional_tile
67133   tst r6, #64
67134   beq .L20882
67135   mov r1, r5
67136   mov r0, #4
67137   mov r2, #240
67138   mov r3, r7
67139   bl  render_scanline_obj_copy_tile_1D
67140   b .L20832
67141 .L20864:
67142   ldr r3, [sp, #28]
67143   mov r0, r4
67144   mov r1, r5
67145   b .L21026
67146 .L21072:
67147   ldr r3, [sp, #12]
67148   mov r0, r8
67149   mov r1, r4
67150   mov r2, r7
67151   stmia sp, {r6, sl}  @ phole stm
67152   str r9, [sp, #8]
67153   bl  render_scanline_conditional_tile
67154   tst r6, #64
67155   beq .L20952
67156   mov r0, #4
67157   mov r1, r8
67158   mov r2, r4
67159   mov r3, r7
67160   bl  render_scanline_obj_copy_tile_1D
67161   b .L20950
67162 .L20817:
67163   ldr r3, [sp, #12]
67164   mov r0, r8
67165   mov r1, r4
67166   mov r2, r7
67167   stmia sp, {r6, sl}  @ phole stm
67168   str r9, [sp, #8]
67169   bl  render_scanline_conditional_tile
67170   tst r6, #64
67171   beq .L20821
67172   mov r0, #4
67173   mov r1, r8
67174   mov r2, r4
67175   mov r3, r7
67176   bl  render_scanline_obj_copy_tile_1D
67177   b .L20815
67178 .L20853:
67179   mov r0, #4
67180   mov r1, r8
67181   mov r2, fp
67182   mov r3, r7
67183   bl  render_scanline_obj_copy_tile_2D
67184   b .L20840
67185 .L20828:
67186   mov r1, r5
67187   mov r0, #4
67188   mov r2, r4
67189   mov r3, r7
67190   bl  render_scanline_obj_copy_tile_2D
67191   b .L20815
67192 .L20855:
67193   mov r0, #4
67194   mov r1, r8
67195   mov r2, r4
67196   mov r3, r7
67197   bl  render_scanline_obj_copy_tile_2D
67198   b .L20840
67199 .L20927:
67200   mov r0, #4
67201   mov r1, r5
67202   mov r2, #240
67203   mov r3, r7
67204   bl  render_scanline_obj_copy_tile_2D
67205   b .L20905
67206 .L20871:
67207   ldr r3, [sp, #12]
67208   mov r0, r8
67209   mov r1, #240
67210   mov r2, r7
67211   stmia sp, {r6, sl}  @ phole stm
67212   str r9, [sp, #8]
67213   bl  render_scanline_conditional_tile
67214   tst r6, #64
67215   beq .L20875
67216   mov r1, r8
67217   mov r0, #4
67218   mov r2, #240
67219   mov r3, r7
67220   bl  render_scanline_obj_copy_tile_1D
67221   b .L20832
67222 .L21075:
67223   mov r1, fp
67224   mov r0, #0
67225   mov r2, r7
67226   ldr r3, [sp, #12]
67227   stmia sp, {r6, sl}  @ phole stm
67228   str r9, [sp, #8]
67229   bl  render_scanline_conditional_tile
67230   ands  r1, r6, #64
67231   beq .L20912
67232   mov r0, #4
67233   mov r1, #0
67234   mov r2, fp
67235   mov r3, r7
67236   bl  render_scanline_obj_copy_tile_1D
67237   b .L20907
67238 .L20899:
67239   mov r0, #4
67240   mov r1, r5
67241   mov r2, fp
67242   mov r3, r7
67243   bl  render_scanline_obj_copy_tile_2D
67244   b .L20897
67245 .L20826:
67246   mov r1, r5
67247   mov r0, #4
67248   mov r2, fp
67249   mov r3, r7
67250   bl  render_scanline_obj_copy_tile_2D
67251   b .L20815
67252 .L20914:
67253   mov r0, #4
67254   mov r2, r4
67255   mov r3, r7
67256   bl  render_scanline_obj_copy_tile_2D
67257   b .L20907
67258 .L20925:
67259   mov r0, #4
67260   mov r1, r5
67261   mov r2, fp
67262   mov r3, r7
67263   bl  render_scanline_obj_copy_tile_2D
67264   b .L20905
67265 .L20882:
67266   mov r1, r5
67267   mov r0, #4
67268   mov r2, #240
67269   mov r3, r7
67270   bl  render_scanline_obj_copy_tile_2D
67271   b .L20832
67272 .L20875:
67273   mov r1, r8
67274   mov r0, #4
67275   mov r2, #240
67276   mov r3, r7
67277   bl  render_scanline_obj_copy_tile_2D
67278   b .L20832
67279 .L20819:
67280   mov r0, #4
67281   mov r1, r8
67282   mov r2, fp
67283   mov r3, r7
67284   bl  render_scanline_obj_copy_tile_2D
67285   b .L20815
67286 .L20952:
67287   mov r0, #4
67288   mov r1, r8
67289   mov r2, r4
67290   mov r3, r7
67291   bl  render_scanline_obj_copy_tile_2D
67292   b .L20950
67293 .L20912:
67294   mov r0, #4
67295   mov r2, fp
67296   mov r3, r7
67297   bl  render_scanline_obj_copy_tile_2D
67298   b .L20907
67299 .L20821:
67300   mov r0, #4
67301   mov r1, r8
67302   mov r2, r4
67303   mov r3, r7
67304   bl  render_scanline_obj_copy_tile_2D
67305   b .L20815
67306 .L20873:
67307   mov r1, r8
67308   mov r0, #4
67309   mov r2, fp
67310   mov r3, r7
67311   bl  render_scanline_obj_copy_tile_2D
67312   b .L20836
67313 .L20880:
67314   mov r1, r5
67315   mov r0, #4
67316   mov r2, fp
67317   mov r3, r7
67318   bl  render_scanline_obj_copy_tile_2D
67319   b .L20836
67320   .size render_scanline_window_tile, .-render_scanline_window_tile
67321   .align  2
67322   .global render_scanline_tile
67323   .type render_scanline_tile, %function
67324 render_scanline_tile:
67325   @ args = 0, pretend = 0, frame = 960
67326   @ frame_needed = 0, uses_anonymous_args = 0
67327   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
67328   ldr fp, .L21279
67329   ldr lr, .L21279+4
67330   ldr r3, [fp, #0]
67331   mov r5, r0
67332   cmp r3, #0
67333   sub sp, sp, #960
67334   mov r4, r1
67335   mov sl, lr
67336   ldrh  r0, [lr, #80]
67337   beq .L21079
67338   ldr r3, .L21279+8
67339   ldrh  r2, [lr, #6]
67340   and r1, r1, #7
67341   ldr ip, [r3, r2, asl #2]
67342   ldr r3, .L21279+12
67343   cmp ip, #0
67344   add r9, r3, r1, asl #7
67345   bne .L21267
67346   mov r3, r0, lsr #6
67347   and r3, r3, #3
67348   cmp r3, #2
67349   beq .L21157
67350   cmp r3, #3
67351   beq .L21158
67352   cmp r3, #1
67353   beq .L21268
67354 .L21155:
67355   ldr r3, .L21279+16
67356   ldr ip, [r3, #0]
67357   ands  r1, ip, #4
67358   beq .L21221
67359   ldr r3, .L21279+20
67360   mov r2, #0
67361   ldrh  r3, [r3, #0]
67362 .L21223:
67363   strh  r3, [r2, r5]  @ movhi
67364   add r2, r2, #2
67365   cmp r2, #480
67366   bne .L21223
67367   ands  r1, r4, #64
67368   bic r0, ip, #4
67369   beq .L21225
67370   mov r1, #0
67371   sub r2, r2, #240
67372   mov r3, r5
67373   bl  render_scanline_obj_normal_1D
67374 .L21227:
67375   ldr r3, [fp, #0]
67376   cmp r3, #1
67377   bls .L21241
67378   ldr r7, .L21279+16
67379   and r8, r4, #64
67380   mov r6, #1
67381   b .L21229
67382 .L21269:
67383   bl  render_scanline_obj_normal_1D
67384 .L21234:
67385   ldr r3, [fp, #0]
67386   add r6, r6, #1
67387   cmp r3, r6
67388   add r7, r7, #4
67389   bls .L21241
67390 .L21229:
67391   ldr ip, [r7, #4]
67392   mov r2, #240
67393   ands  r1, ip, #4
67394   mov r0, ip
67395   add r4, r9, ip, asl #5
67396   mov r3, r5
67397   beq .L21230
67398   mov r1, #0
67399   bic ip, ip, #4
67400   cmp r8, r1
67401   mov r0, ip
67402   bne .L21269
67403   mov r3, r5
67404   mov r0, ip
67405   mov r1, r8
67406   mov r2, #240
67407   bl  render_scanline_obj_normal_2D
67408   ldr r3, [fp, #0]
67409   add r6, r6, #1
67410   cmp r3, r6
67411   add r7, r7, #4
67412   bhi .L21229
67413 .L21241:
67414   add sp, sp, #960
67415   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
67416 .L21079:
67417   mov r3, r0, lsr #6
67418   and r2, r3, #3
67419   ldr r3, .L21279+20
67420   cmp r2, #2
67421   ldrh  ip, [r3, #0]
67422   beq .L21236
67423   cmp r2, #3
67424   beq .L21270
67425 .L21235:
67426   mov r3, ip, asl #16
67427   mov r3, r3, lsr #16
67428   mov r2, #0
67429 .L21240:
67430   strh  r3, [r2, r5]  @ movhi
67431   add r2, r2, #2
67432   cmp r2, #480
67433   bne .L21240
67434   b .L21241
67435 .L21267:
67436   mov r3, r0, lsr #6
67437   and r3, r3, #3
67438   cmp r3, #2
67439   beq .L21085
67440   cmp r3, #3
67441   beq .L21086
67442   cmp r3, #1
67443   beq .L21271
67444 .L21083:
67445   ldr r3, .L21279+16
67446   ldr r3, [r3, #0]
67447   ands  r1, r3, #4
67448   beq .L21140
67449   mov r2, #0
67450   mov r6, sp
67451   mov r1, r2
67452 .L21142:
67453   str r1, [r2, r6]
67454   add r2, r2, #4
67455   cmp r2, #960
67456   bne .L21142
67457   ands  r2, r4, #64
67458   bic r0, r3, #4
67459   beq .L21144
67460   mov r2, #240
67461   mov r3, sp
67462   bl  render_scanline_obj_partial_alpha_1D
67463 .L21146:
67464   ldr r3, [fp, #0]
67465   cmp r3, #1
67466   bls .L21169
67467   ldr r8, .L21279+16
67468   and sl, r4, #64
67469   mov r7, #1
67470   b .L21149
67471 .L21272:
67472   bl  render_scanline_obj_partial_alpha_1D
67473 .L21154:
67474   ldr r3, [fp, #0]
67475   add r7, r7, #1
67476   cmp r3, r7
67477   add r8, r8, #4
67478   bls .L21169
67479 .L21149:
67480   ldr ip, [r8, #4]
67481   mov r2, #240
67482   ands  r1, ip, #4
67483   mov r0, ip
67484   add r4, r9, ip, asl #5
67485   mov r3, sp
67486   beq .L21150
67487   mov r1, #0
67488   bic ip, ip, #4
67489   cmp sl, r1
67490   mov r0, ip
67491   bne .L21272
67492   mov r3, sp
67493   mov r0, ip
67494   mov r1, sl
67495   mov r2, #240
67496   bl  render_scanline_obj_partial_alpha_2D
67497   ldr r3, [fp, #0]
67498   add r7, r7, #1
67499   cmp r3, r7
67500   add r8, r8, #4
67501   bhi .L21149
67502 .L21169:
67503   mov r0, sp
67504   mov r1, r5
67505   mov r2, #0
67506   mov r3, #240
67507   bl  expand_blend
67508   b .L21241
67509 .L21236:
67510   tst r0, #32
67511   beq .L21235
67512   ldrh  r3, [lr, #84]
67513   ldr r1, .L21279+24
67514   and r3, r3, #31
67515   cmp r3, #16
67516   movcs r3, #16
67517   orr r2, ip, ip, asl #16
67518   and r1, r2, r1
67519   rsb r0, r3, #16
67520   rsb r2, r3, r3, asl #6
67521   mul ip, r1, r0
67522   add r3, r3, r2, asl #5
67523   rsb r3, r3, r3, asl #16
67524   ldr r1, .L21279+24
67525   mov r3, r3, lsr #4
67526   and r1, r3, r1
67527   ldr r2, .L21279+24
67528   add r1, r1, ip, lsr #4
67529   and r2, r1, r2
67530   orr ip, r2, r2, lsr #16
67531   b .L21235
67532 .L21085:
67533   ldrh  r3, [lr, #84]
67534   tst r3, #31
67535   beq .L21083
67536   tst r0, #63
67537   beq .L21083
67538   ldr r3, .L21279+16
67539   ldr r3, [r3, #0]
67540   ands  r1, r3, #4
67541   beq .L21108
67542   mov r2, #0
67543   mov r6, sp
67544   mov r1, r2
67545 .L21110:
67546   str r1, [r2, r6]
67547   add r2, r2, #4
67548   cmp r2, #960
67549   bne .L21110
67550   ands  r2, r4, #64
67551   bic r0, r3, #4
67552   beq .L21112
67553   mov r2, #240
67554   mov r3, sp
67555   bl  render_scanline_obj_partial_alpha_1D
67556 .L21114:
67557   ldr r3, [fp, #0]
67558   cmp r3, #1
67559   bls .L21115
67560   ldr r8, .L21279+16
67561   and sl, r4, #64
67562   mov r7, #1
67563   b .L21117
67564 .L21273:
67565   bl  render_scanline_obj_partial_alpha_1D
67566 .L21122:
67567   ldr r3, [fp, #0]
67568   add r7, r7, #1
67569   cmp r3, r7
67570   add r8, r8, #4
67571   bls .L21115
67572 .L21117:
67573   ldr ip, [r8, #4]
67574   mov r2, #240
67575   ands  r1, ip, #4
67576   mov r0, ip
67577   add r4, r9, ip, asl #5
67578   mov r3, sp
67579   beq .L21118
67580   mov r1, #0
67581   bic ip, ip, #4
67582   cmp sl, r1
67583   mov r0, ip
67584   bne .L21273
67585   mov r0, ip
67586   mov r1, sl
67587   mov r2, #240
67588   mov r3, sp
67589   bl  render_scanline_obj_partial_alpha_2D
67590   b .L21122
67591 .L21157:
67592   ldrh  r3, [lr, #84]
67593   tst r3, #31
67594   beq .L21155
67595   tst r0, #63
67596   beq .L21155
67597   ldr r3, .L21279+16
67598   ldr r3, [r3, #0]
67599   ands  r1, r3, #4
67600   beq .L21179
67601   mov r2, ip
67602 .L21181:
67603   mov r1, #0  @ movhi
67604   strh  r1, [r2, r5]  @ movhi
67605   add r2, r2, #2
67606   cmp r2, #480
67607   bne .L21181
67608   ands  r1, r4, #64
67609   bic r0, r3, #4
67610   beq .L21183
67611   mov r1, #0
67612   sub r2, r2, #240
67613   mov r3, r5
67614   bl  render_scanline_obj_color16_1D
67615 .L21185:
67616   ldr r3, [fp, #0]
67617   cmp r3, #1
67618   bls .L21186
67619   ldr r7, .L21279+16
67620   and r8, r4, #64
67621   mov r6, #1
67622   b .L21188
67623 .L21274:
67624   bl  render_scanline_obj_color16_1D
67625 .L21193:
67626   ldr r3, [fp, #0]
67627   add r6, r6, #1
67628   cmp r3, r6
67629   add r7, r7, #4
67630   bls .L21186
67631 .L21188:
67632   ldr ip, [r7, #4]
67633   mov r2, #240
67634   ands  r1, ip, #4
67635   mov r0, ip
67636   add r4, r9, ip, asl #5
67637   mov r3, r5
67638   beq .L21189
67639   mov r1, #0
67640   bic ip, ip, #4
67641   cmp r8, r1
67642   mov r0, ip
67643   bne .L21274
67644   mov r0, ip
67645   mov r1, r8
67646   mov r2, #240
67647   mov r3, r5
67648   bl  render_scanline_obj_color16_2D
67649   b .L21193
67650 .L21230:
67651   mov lr, pc
67652   ldr pc, [r4, #4]
67653   b .L21234
67654 .L21150:
67655   mov lr, pc
67656   ldr pc, [r4, #28]
67657   b .L21154
67658 .L21270:
67659   tst r0, #32
67660   beq .L21235
67661   ldrh  r3, [lr, #84]
67662   ldr r0, .L21279+24
67663   and r3, r3, #31
67664   orr r2, ip, ip, asl #16
67665   rsb r3, r3, #16
67666   and r0, r2, r0
67667   cmp r3, #0
67668   movlt r3, #0
67669   mul r1, r3, r0
67670   ldr r2, .L21279+24
67671   mov r1, r1, lsr #4
67672   and r2, r1, r2
67673   orr ip, r2, r2, lsr #16
67674   b .L21235
67675 .L21144:
67676   mov r1, r2
67677   mov r3, sp
67678   mov r2, #240
67679   bl  render_scanline_obj_partial_alpha_2D
67680   b .L21146
67681 .L21225:
67682   mov r2, #240
67683   mov r3, r5
67684   bl  render_scanline_obj_normal_2D
67685   b .L21227
67686 .L21140:
67687   mov r0, r3
67688   add ip, r9, r3, asl #5
67689   mov r2, #240
67690   mov r3, sp
67691   mov r6, sp
67692   mov lr, pc
67693   ldr pc, [ip, #24]
67694   b .L21146
67695 .L21221:
67696   mov r0, ip
67697   mov r2, #240
67698   mov r3, r5
67699   mov lr, pc
67700   ldr pc, [r9, ip, asl #5]
67701   b .L21227
67702 .L21086:
67703   ldrh  r3, [lr, #84]
67704   tst r3, #31
67705   beq .L21083
67706   tst r0, #63
67707   beq .L21083
67708   ldr r3, .L21279+16
67709   ldr r3, [r3, #0]
67710   ands  r1, r3, #4
67711   beq .L21125
67712   mov r2, #0
67713   mov r6, sp
67714   mov r1, r2
67715 .L21127:
67716   str r1, [r2, r6]
67717   add r2, r2, #4
67718   cmp r2, #960
67719   bne .L21127
67720   ands  r2, r4, #64
67721   bic r0, r3, #4
67722   beq .L21129
67723   mov r2, #240
67724   mov r3, sp
67725   bl  render_scanline_obj_partial_alpha_1D
67726 .L21131:
67727   ldr r3, [fp, #0]
67728   cmp r3, #1
67729   bls .L21132
67730   ldr r8, .L21279+16
67731   and sl, r4, #64
67732   mov r7, #1
67733   b .L21134
67734 .L21275:
67735   bl  render_scanline_obj_partial_alpha_1D
67736 .L21139:
67737   ldr r3, [fp, #0]
67738   add r7, r7, #1
67739   cmp r3, r7
67740   add r8, r8, #4
67741   bls .L21132
67742 .L21134:
67743   ldr ip, [r8, #4]
67744   mov r2, #240
67745   ands  r1, ip, #4
67746   mov r0, ip
67747   add r4, r9, ip, asl #5
67748   mov r3, sp
67749   beq .L21135
67750   mov r1, #0
67751   bic ip, ip, #4
67752   cmp sl, r1
67753   mov r0, ip
67754   bne .L21275
67755   mov r0, ip
67756   mov r1, sl
67757   mov r2, #240
67758   mov r3, sp
67759   bl  render_scanline_obj_partial_alpha_2D
67760   b .L21139
67761 .L21158:
67762   ldrh  r3, [lr, #84]
67763   tst r3, #31
67764   beq .L21155
67765   tst r0, #63
67766   beq .L21155
67767   ldr r3, .L21279+16
67768   ldr r3, [r3, #0]
67769   ands  r1, r3, #4
67770   beq .L21201
67771   mov r2, #0
67772 .L21203:
67773   mov r1, #0  @ movhi
67774   strh  r1, [r2, r5]  @ movhi
67775   add r2, r2, #2
67776   cmp r2, #480
67777   bne .L21203
67778   ands  r1, r4, #64
67779   bic r0, r3, #4
67780   beq .L21205
67781   mov r1, #0
67782   sub r2, r2, #240
67783   mov r3, r5
67784   bl  render_scanline_obj_color16_1D
67785 .L21207:
67786   ldr r3, [fp, #0]
67787   cmp r3, #1
67788   bls .L21208
67789   ldr r6, .L21279+16
67790   and r8, r4, #64
67791   mov r7, #1
67792   b .L21210
67793 .L21276:
67794   bl  render_scanline_obj_color16_1D
67795 .L21215:
67796   ldr r3, [fp, #0]
67797   add r7, r7, #1
67798   cmp r3, r7
67799   add r6, r6, #4
67800   bls .L21208
67801 .L21210:
67802   ldr ip, [r6, #4]
67803   mov r2, #240
67804   ands  r1, ip, #4
67805   mov r0, ip
67806   add r4, r9, ip, asl #5
67807   mov r3, r5
67808   beq .L21211
67809   mov r1, #0
67810   bic ip, ip, #4
67811   cmp r8, r1
67812   mov r0, ip
67813   bne .L21276
67814   mov r0, ip
67815   mov r1, r8
67816   mov r2, #240
67817   mov r3, r5
67818   bl  render_scanline_obj_color16_2D
67819   b .L21215
67820 .L21118:
67821   mov lr, pc
67822   ldr pc, [r4, #28]
67823   b .L21122
67824 .L21189:
67825   mov lr, pc
67826   ldr pc, [r4, #20]
67827   b .L21193
67828 .L21135:
67829   mov lr, pc
67830   ldr pc, [r4, #28]
67831   b .L21139
67832 .L21211:
67833   mov lr, pc
67834   ldr pc, [r4, #20]
67835   b .L21215
67836 .L21271:
67837   ldrh  r2, [lr, #82]
67838   ldr r3, .L21279+28
67839   and r3, r2, r3
67840   cmp r3, #31
67841   beq .L21083
67842   tst r0, #63
67843   beq .L21083
67844   tst r0, #16128
67845   beq .L21083
67846   ldr r3, .L21279+16
67847   ldr r3, [r3, #0]
67848   ands  r1, r3, #4
67849   beq .L21090
67850   mov r2, #0
67851   mov r6, sp
67852   mov r1, r2
67853 .L21092:
67854   str r1, [r2, r6]
67855   add r2, r2, #4
67856   cmp r2, #960
67857   bne .L21092
67858   ands  r2, r4, #64
67859   bic r0, r3, #4
67860   beq .L21094
67861   mov r2, #240
67862   mov r3, sp
67863   bl  render_scanline_obj_alpha_obj_1D
67864 .L21096:
67865   ldr r3, [fp, #0]
67866   cmp r3, #1
67867   bls .L21169
67868   ldr r8, .L21279+16
67869   and sl, r4, #64
67870   mov r7, #1
67871   b .L21099
67872 .L21277:
67873   mov r1, #0
67874   bic ip, ip, #4
67875   cmp sl, r1
67876   mov r0, ip
67877   beq .L21102
67878   bl  render_scanline_obj_alpha_obj_1D
67879 .L21104:
67880   ldr r3, [fp, #0]
67881   add r7, r7, #1
67882   cmp r3, r7
67883   add r8, r8, #4
67884   bls .L21169
67885 .L21099:
67886   ldr ip, [r8, #4]
67887   mov r2, #240
67888   ands  r1, ip, #4
67889   mov r0, ip
67890   add r4, r9, ip, asl #5
67891   mov r3, sp
67892   bne .L21277
67893   mov lr, pc
67894   ldr pc, [r4, #12]
67895   b .L21104
67896 .L21268:
67897   ldrh  r2, [lr, #82]
67898   ldr r3, .L21279+28
67899   and r3, r2, r3
67900   cmp r3, #31
67901   beq .L21155
67902   tst r0, #63
67903   beq .L21155
67904   tst r0, #16128
67905   beq .L21155
67906   ldr r3, .L21279+16
67907   ldr r3, [r3, #0]
67908   ands  r1, r3, #4
67909   beq .L21162
67910   mov r2, ip
67911   mov r6, sp
67912   mov r1, ip
67913 .L21164:
67914   str r1, [r2, r6]
67915   add r2, r2, #4
67916   cmp r2, #960
67917   bne .L21164
67918   ands  r2, r4, #64
67919   bic r0, r3, #4
67920   beq .L21166
67921   mov r2, #240
67922   mov r3, sp
67923   bl  render_scanline_obj_alpha_obj_1D
67924 .L21168:
67925   ldr r3, [fp, #0]
67926   cmp r3, #1
67927   bls .L21169
67928   ldr r8, .L21279+16
67929   and sl, r4, #64
67930   mov r7, #1
67931   b .L21171
67932 .L21278:
67933   mov r1, #0
67934   bic ip, ip, #4
67935   cmp sl, r1
67936   mov r0, ip
67937   beq .L21174
67938   bl  render_scanline_obj_alpha_obj_1D
67939 .L21176:
67940   ldr r3, [fp, #0]
67941   add r7, r7, #1
67942   cmp r3, r7
67943   add r8, r8, #4
67944   bls .L21169
67945 .L21171:
67946   ldr ip, [r8, #4]
67947   mov r2, #240
67948   ands  r1, ip, #4
67949   mov r0, ip
67950   add r4, r9, ip, asl #5
67951   mov r3, sp
67952   bne .L21278
67953   mov lr, pc
67954   ldr pc, [r4, #12]
67955   b .L21176
67956 .L21174:
67957   mov r0, ip
67958   mov r1, sl
67959   mov r2, #240
67960   mov r3, sp
67961   bl  render_scanline_obj_alpha_obj_2D
67962   b .L21176
67963 .L21102:
67964   mov r0, ip
67965   mov r1, sl
67966   mov r2, #240
67967   mov r3, sp
67968   bl  render_scanline_obj_alpha_obj_2D
67969   b .L21104
67970 .L21115:
67971   mov r0, sp
67972   mov r1, r5
67973   mov r2, #0
67974   mov r3, #240
67975   bl  expand_brighten_partial_alpha
67976   b .L21241
67977 .L21186:
67978   ldrh  r2, [sl, #84]
67979   ldr r7, .L21279+24
67980   and r2, r2, #31
67981   cmp r2, #16
67982   movcs r2, #16
67983   rsb r3, r2, r2, asl #6
67984   add r3, r2, r3, asl #5
67985   rsb r3, r3, r3, asl #16
67986   mov r3, r3, lsr #4
67987   ldr r6, .L21279+20
67988   and r7, r3, r7
67989   rsb r4, r2, #16
67990   mov lr, #0
67991 .L21194:
67992   ldrh  r3, [r5, #0]
67993   ldr ip, .L21279+24
67994   mov r2, r3, asl #23
67995   mov r2, r2, lsr #23
67996   tst r3, #512
67997   mov r2, r2, asl #1
67998   mov r1, r3, asl #23
67999   ldrneh  r3, [r2, r6]
68000   mov r0, ip
68001   orrne r3, r3, r3, asl #16
68002   andne ip, r3, ip
68003   mulne r2, ip, r4
68004   mov r1, r1, lsr #23
68005   mov r1, r1, asl #1
68006   addne r2, r7, r2, lsr #4
68007   andne r0, r2, r0
68008   ldreqh  r1, [r1, r6]
68009   orrne r3, r0, r0, lsr #16
68010   add lr, lr, #1
68011   strneh  r3, [r5, #0]  @ movhi
68012   streqh  r1, [r5, #0]  @ movhi
68013   cmp lr, #240
68014   add r5, r5, #2
68015   bne .L21194
68016   b .L21241
68017 .L21132:
68018   mov r0, sp
68019   mov r1, r5
68020   mov r2, #0
68021   mov r3, #240
68022   bl  expand_darken_partial_alpha
68023   b .L21241
68024 .L21208:
68025   ldrh  r3, [sl, #84]
68026   ldr r6, .L21279+20
68027   and r3, r3, #31
68028   rsb r3, r3, #16
68029   cmp r3, #0
68030   movge r4, r3
68031   movlt r4, #0
68032   mov lr, #0
68033 .L21216:
68034   ldrh  r3, [r5, #0]
68035   ldr ip, .L21279+24
68036   mov r2, r3, asl #23
68037   mov r2, r2, lsr #23
68038   tst r3, #512
68039   mov r2, r2, asl #1
68040   mov r1, r3, asl #23
68041   ldrneh  r3, [r2, r6]
68042   mov r0, ip
68043   orrne r3, r3, r3, asl #16
68044   andne ip, r3, ip
68045   mulne r2, r4, ip
68046   mov r1, r1, lsr #23
68047   mov r1, r1, asl #1
68048   movne r2, r2, lsr #4
68049   andne r0, r2, r0
68050   ldreqh  r1, [r1, r6]
68051   orrne r3, r0, r0, lsr #16
68052   add lr, lr, #1
68053   strneh  r3, [r5, #0]  @ movhi
68054   streqh  r1, [r5, #0]  @ movhi
68055   cmp lr, #240
68056   add r5, r5, #2
68057   bne .L21216
68058   b .L21241
68059 .L21183:
68060   mov r2, #240
68061   mov r3, r5
68062   bl  render_scanline_obj_color16_2D
68063   b .L21185
68064 .L21179:
68065   mov r0, r3
68066   add ip, r9, r3, asl #5
68067   mov r2, #240
68068   mov r3, r5
68069   mov lr, pc
68070   ldr pc, [ip, #16]
68071   b .L21185
68072 .L21205:
68073   mov r2, #240
68074   mov r3, r5
68075   bl  render_scanline_obj_color16_2D
68076   b .L21207
68077 .L21201:
68078   mov r0, r3
68079   add ip, r9, r3, asl #5
68080   mov r2, #240
68081   mov r3, r5
68082   mov lr, pc
68083   ldr pc, [ip, #16]
68084   b .L21207
68085 .L21129:
68086   mov r1, r2
68087   mov r3, sp
68088   mov r2, #240
68089   bl  render_scanline_obj_partial_alpha_2D
68090   b .L21131
68091 .L21125:
68092   mov r0, r3
68093   add ip, r9, r3, asl #5
68094   mov r2, #240
68095   mov r3, sp
68096   mov r6, sp
68097   mov lr, pc
68098   ldr pc, [ip, #24]
68099   b .L21131
68100 .L21112:
68101   mov r1, r2
68102   mov r3, sp
68103   mov r2, #240
68104   bl  render_scanline_obj_partial_alpha_2D
68105   b .L21114
68106 .L21108:
68107   mov r0, r3
68108   add ip, r9, r3, asl #5
68109   mov r2, #240
68110   mov r3, sp
68111   mov r6, sp
68112   mov lr, pc
68113   ldr pc, [ip, #24]
68114   b .L21114
68115 .L21166:
68116   mov r1, r2
68117   mov r3, sp
68118   mov r2, #240
68119   bl  render_scanline_obj_alpha_obj_2D
68120   b .L21168
68121 .L21094:
68122   mov r1, r2
68123   mov r3, sp
68124   mov r2, #240
68125   bl  render_scanline_obj_alpha_obj_2D
68126   b .L21096
68127 .L21162:
68128   mov r0, r3
68129   add ip, r9, r3, asl #5
68130   mov r2, #240
68131   mov r3, sp
68132   mov r6, sp
68133   mov lr, pc
68134   ldr pc, [ip, #8]
68135   b .L21168
68136 .L21090:
68137   mov r0, r3
68138   add ip, r9, r3, asl #5
68139   mov r2, #240
68140   mov r3, sp
68141   mov r6, sp
68142   mov lr, pc
68143   ldr pc, [ip, #8]
68144   b .L21096
68145 .L21280:
68146   .align  2
68147 .L21279:
68148   .word layer_count
68149   .word io_registers
68150   .word obj_alpha_count
68151   .word tile_mode_renderers
68152   .word layer_order
68153   .word palette_ram_converted
68154   .word 132184095
68155   .word 7967
68156   .size render_scanline_tile, .-render_scanline_tile
68157   .align  2
68158   .global print_string_pad
68159   .type print_string_pad, %function
68160 print_string_pad:
68161   @ args = 8, pretend = 0, frame = 16
68162   @ frame_needed = 0, uses_anonymous_args = 0
68163   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
68164   ldr lr, .L21320
68165   sub sp, sp, #16
68166   ldr ip, .L21320+4
68167   ldr r5, [lr, #0]
68168   ldr sl, [sp, #52]
68169   ldr r4, [ip, #0]
68170   str r0, [sp, #4]
68171   add ip, sl, #10
68172   mov r2, r2, asl #16
68173   mov fp, r3
68174   ldrh  r3, [r5, #16]
68175   ldr r5, [r5, #20]
68176   cmp ip, r4
68177   mov r4, r2, lsr #16
68178   ldr r2, [sp, #4]
68179   mov r1, r1, asl #16
68180   str r5, [sp, #0]
68181   mov r0, r1, lsr #16
68182   ldrb  ip, [r2, #0]  @ zero_extendqisi2
68183   bcs .L21313
68184   cmp ip, #0
68185   beq .L21313
68186   ldr r2, .L21320+8
68187   mov r9, r3, lsr #1
68188   ldr r2, [r2, #0]
68189   mla r3, sl, r9, fp
68190   add r1, r9, r9, asl #2
68191   str r2, [sp, #12]
68192   ldr r2, [sp, #0]
68193   mov r1, r1, asl #2
68194   str r1, [sp, #8]
68195   add r6, r2, r3, asl #1
68196   mov r5, r9, asl #1
68197   mov r1, fp
68198   mov r7, #0
68199   mov r8, #1
68200 .L21285:
68201   cmp ip, #10
68202   beq .L21319
68203   ldr r3, .L21320+12
68204   mov lr, #0
68205   ldr r2, [r3, ip, asl #2]
68206   ldr r3, .L21320+16
68207   mov ip, r6
68208   add r2, r3, r2, asl #1
68209 .L21289:
68210   ldrh  r3, [r2, #0]
68211   add lr, lr, #1
68212   tst r3, #32768
68213   streqh  r4, [ip, #0]  @ movhi
68214   strneh  r0, [ip, #0]  @ movhi
68215   tst r3, #16384
68216   streqh  r4, [ip, #2]  @ movhi
68217   strneh  r0, [ip, #2]  @ movhi
68218   tst r3, #8192
68219   streqh  r4, [ip, #4]  @ movhi
68220   strneh  r0, [ip, #4]  @ movhi
68221   tst r3, #4096
68222   streqh  r4, [ip, #6]  @ movhi
68223   strneh  r0, [ip, #6]  @ movhi
68224   tst r3, #2048
68225   streqh  r4, [ip, #8]  @ movhi
68226   strneh  r0, [ip, #8]  @ movhi
68227   tst r3, #1024
68228   strneh  r0, [ip, #10] @ movhi
68229   streqh  r4, [ip, #10] @ movhi
68230   cmp lr, #10
68231   add ip, ip, r5
68232   add r2, r2, #2
68233   bne .L21289
68234   add r3, r6, r5
68235   add r2, r5, r5, asl #3
68236   add r3, r3, r2
68237   ldr r2, [sp, #8]
68238   add r1, r1, #6
68239   rsb r3, r2, r3
68240   add r6, r3, #12
68241 .L21288:
68242   ldr r3, [sp, #4]
68243   ldr r2, [sp, #56]
68244   ldrb  ip, [r3, r8]  @ zero_extendqisi2
68245   add r7, r7, #1
68246   cmp r2, r7
68247   movls r3, #0
68248   movhi r3, #1
68249   cmp ip, #0
68250   movne r3, #0
68251   ldr r2, [sp, #12]
68252   cmp r3, #0
68253   add r3, r1, #6
68254   movne ip, #32
68255   addeq r8, r8, #1
68256   cmp r3, r2
68257   bcs .L21313
68258   cmp ip, #0
68259   bne .L21285
68260 .L21313:
68261   add sp, sp, #16
68262   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
68263 .L21319:
68264   add sl, sl, #10
68265   mla r3, sl, r9, fp
68266   ldr r2, [sp, #0]
68267   mov r1, fp
68268   add r6, r2, r3, asl #1
68269   b .L21288
68270 .L21321:
68271   .align  2
68272 .L21320:
68273   .word screen
68274   .word resolution_height
68275   .word resolution_width
68276   .word _font_offset
68277   .word _font_bits
68278   .size print_string_pad, .-print_string_pad
68279   .align  2
68280   .global print_string
68281   .type print_string, %function
68282 print_string:
68283   @ args = 4, pretend = 0, frame = 12
68284   @ frame_needed = 0, uses_anonymous_args = 0
68285   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
68286   ldr lr, .L21358
68287   sub sp, sp, #12
68288   ldr ip, .L21358+4
68289   ldr r5, [lr, #0]
68290   ldr r8, [sp, #48]
68291   ldr r4, [ip, #0]
68292   mov r9, r3
68293   ldrh  r3, [r5, #16]
68294   ldr r5, [r5, #20]
68295   add ip, r8, #10
68296   cmp ip, r4
68297   mov fp, r0
68298   mov r1, r1, asl #16
68299   mov r2, r2, asl #16
68300   str r5, [sp, #0]
68301   mov r0, r1, lsr #16
68302   mov r4, r2, lsr #16
68303   ldrb  ip, [fp, #0]  @ zero_extendqisi2
68304   bcs .L21352
68305   cmp ip, #0
68306   beq .L21352
68307   ldr r2, .L21358+8
68308   mov sl, r3, lsr #1
68309   ldr r2, [r2, #0]
68310   mla r3, r8, sl, r9
68311   add r1, sl, sl, asl #2
68312   str r2, [sp, #8]
68313   ldr r2, [sp, #0]
68314   mov r1, r1, asl #2
68315   cmp ip, #10
68316   str r1, [sp, #4]
68317   add r6, r2, r3, asl #1
68318   mov r5, sl, asl #1
68319   mov r1, r9
68320   mov r7, #1
68321   beq .L21357
68322 .L21327:
68323   ldr r3, .L21358+12
68324   mov lr, #0
68325   ldr r2, [r3, ip, asl #2]
68326   ldr r3, .L21358+16
68327   mov ip, r6
68328   add r2, r3, r2, asl #1
68329 .L21330:
68330   ldrh  r3, [r2, #0]
68331   add lr, lr, #1
68332   tst r3, #32768
68333   streqh  r4, [ip, #0]  @ movhi
68334   strneh  r0, [ip, #0]  @ movhi
68335   tst r3, #16384
68336   streqh  r4, [ip, #2]  @ movhi
68337   strneh  r0, [ip, #2]  @ movhi
68338   tst r3, #8192
68339   streqh  r4, [ip, #4]  @ movhi
68340   strneh  r0, [ip, #4]  @ movhi
68341   tst r3, #4096
68342   streqh  r4, [ip, #6]  @ movhi
68343   strneh  r0, [ip, #6]  @ movhi
68344   tst r3, #2048
68345   streqh  r4, [ip, #8]  @ movhi
68346   strneh  r0, [ip, #8]  @ movhi
68347   tst r3, #1024
68348   strneh  r0, [ip, #10] @ movhi
68349   streqh  r4, [ip, #10] @ movhi
68350   cmp lr, #10
68351   add ip, ip, r5
68352   add r2, r2, #2
68353   bne .L21330
68354   add r3, r5, r6
68355   add r2, r5, r5, asl #3
68356   add r3, r3, r2
68357   ldr r2, [sp, #4]
68358   add r1, r1, #6
68359   rsb r3, r2, r3
68360   ldr r2, [sp, #8]
68361   add r6, r3, #12
68362   add r3, r1, #6
68363   cmp r3, r2
68364   ldrb  ip, [r7, fp]  @ zero_extendqisi2
68365   bcs .L21352
68366 .L21356:
68367   cmp ip, #0
68368   beq .L21352
68369   cmp ip, #10
68370   add r7, r7, #1
68371   bne .L21327
68372 .L21357:
68373   add r8, r8, #10
68374   mla r3, r8, sl, r9
68375   ldr r2, [sp, #0]
68376   mov r1, r9
68377   add r6, r2, r3, asl #1
68378   ldr r2, [sp, #8]
68379   add r3, r1, #6
68380   cmp r3, r2
68381   ldrb  ip, [r7, fp]  @ zero_extendqisi2
68382   bcc .L21356
68383 .L21352:
68384   add sp, sp, #12
68385   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
68386 .L21359:
68387   .align  2
68388 .L21358:
68389   .word screen
68390   .word resolution_height
68391   .word resolution_width
68392   .word _font_offset
68393   .word _font_bits
68394   .size print_string, .-print_string
68395   .align  2
68396   .global render_scanline_obj_copy_bitmap_2D
68397   .type render_scanline_obj_copy_bitmap_2D, %function
68398 render_scanline_obj_copy_bitmap_2D:
68399   @ args = 0, pretend = 0, frame = 596
68400   @ frame_needed = 0, uses_anonymous_args = 0
68401   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
68402   ldr lr, .L22220
68403   add r0, r0, r0, asl #2
68404   ldrh  r4, [lr, #6]
68405   ldr ip, .L22220+4
68406   add r0, r4, r0, asl #5
68407   ldr ip, [ip, r0, asl #2]
68408   sub sp, sp, #596
68409   ldrh  r6, [lr, #0]
68410   ldrh  r5, [lr, #74]
68411   str ip, [sp, #56]
68412   cmp ip, #0
68413   ldr lr, .L22220+8
68414   ldr ip, .L22220+12
68415   str r4, [sp, #52]
68416   and r4, r6, #7
68417   add r4, ip, r4, asl #2
68418   add r0, lr, r0, asl #7
68419   str r4, [sp, #40]
68420   str r0, [sp, #60]
68421   str r1, [sp, #16]
68422   str r2, [sp, #12]
68423   str r3, [sp, #8]
68424   mov r5, r5, lsr #8
68425   beq .L22165
68426   and r7, r5, #16
68427   add ip, r3, r1, asl #1
68428   rsb lr, r1, r2
68429   mov r0, #0
68430   and r6, r6, #64
68431   and r5, r5, #4
68432   str r7, [sp, #76]
68433   str r6, [sp, #80]
68434   str r5, [sp, #84]
68435   str ip, [sp, #88]
68436   str lr, [sp, #108]
68437   str r0, [sp, #44]
68438   mov r1, r0
68439 .L21363:
68440   ldr r2, [sp, #60]
68441   ldr r4, .L22220+16
68442   ldrb  r3, [r1, r2]  @ zero_extendqisi2
68443   ldr ip, .L22220+20
68444   mov r3, r3, asl #3
68445   ldrh  r8, [r3, r4]
68446   add r3, r3, r4
68447   ldrh  sl, [r3, #2]
68448   mov r6, r8, lsr #12
68449   and r2, r6, #12
68450   orr r2, r2, sl, lsr #14
68451   ldr ip, [ip, r2, asl #2]
68452   ands  r7, r8, #512
68453   mov r1, sl, asl #23
68454   moveq lr, ip
68455   mov r9, r1, asr #23
68456   str r7, [sp, #28]
68457   ldr r7, [sp, #12]
68458   addne r1, r9, ip, asl #1
68459   addeq r1, r9, lr
68460   str r6, [sp, #24]
68461   ldr r6, [sp, #16]
68462   ldrh  r3, [r3, #4]
68463   cmp r1, r7
68464   movcc r7, r1
68465   ldr r0, [sp, #12]
68466   ldr r1, [sp, #16]
68467   cmp r9, r6
68468   movcs r6, r9
68469   str r3, [sp, #20]
68470   cmp r0, r6
68471   movls r3, #0
68472   movhi r3, #1
68473   cmp r1, r7
68474   movcs r3, #0
68475   cmp r3, #0
68476   str r2, [sp, #48]
68477   str ip, [sp, #112]
68478   beq .L21367
68479   cmp r7, r6
68480   ldr r3, .L22220+24
68481   movls r4, r6, asl #1
68482   ldrh  r0, [r3, #0]
68483   strls r4, [sp, #0]
68484   bls .L21369
68485   mov r2, r6, asl #1
68486   add r3, sp, #116
68487   str r2, [sp, #0]
68488   rsb r1, r6, r7
68489   add r2, r3, r2
68490   mov r3, #0
68491 .L21371:
68492   add r3, r3, #1
68493   cmp r1, r3
68494   strh  r0, [r2], #2  @ movhi
68495   bne .L21371
68496 .L21369:
68497   ldr fp, .L22220+28
68498   ldr r3, [fp, #0]
68499   cmp r3, #0
68500   beq .L21372
68501   ldr r5, .L22220+32
68502   mov r4, #0
68503   b .L21374
68504 .L22194:
68505   ldr ip, [sp, #76]
68506   cmp ip, #0
68507   bic ip, r0, #4
68508   beq .L21377
68509   ldr lr, [sp, #80]
68510   mov r0, ip
68511   cmp lr, #0
68512   mov r1, r6
68513   mov r2, r7
68514   add r3, sp, #116
68515   beq .L21379
68516   bl  render_scanline_obj_normal_1D
68517 .L21377:
68518   ldr r3, [fp, #0]
68519   add r4, r4, #1
68520   cmp r3, r4
68521   add r5, r5, #4
68522   bls .L21372
68523 .L21374:
68524   ldr r0, [r5, #0]
68525   tst r0, #4
68526   bne .L22194
68527   ldr r0, [sp, #84]
68528   mov r1, r7
68529   cmp r0, #0
68530   add r2, sp, #116
68531   mov r0, r6
68532   beq .L21377
68533   ldr r3, [sp, #40]
68534   mov lr, pc
68535   ldr pc, [r3, #0]
68536   ldr r3, [fp, #0]
68537   add r4, r4, #1
68538   cmp r3, r4
68539   add r5, r5, #4
68540   bhi .L21374
68541 .L21372:
68542   and r0, r8, #255
68543   cmp r0, #160
68544   ldr r6, [sp, #0]
68545   ldr r3, .L22220+36
68546   ldr r7, [sp, #48]
68547   add r4, sp, #116
68548   subgt r0, r0, #256
68549   tst r8, #256
68550   add r5, r4, r6
68551   ldr fp, [r3, r7, asl #2]
68552   beq .L21384
68553   tst r8, #8192
68554   beq .L21386
68555   mov r3, sl, lsr #4
68556   ldr ip, [sp, #28]
68557   ldr lr, .L22220+16
68558   ldr r1, [sp, #112]
68559   and r3, r3, #992
68560   cmp ip, #0
68561   add r3, r3, lr
68562   add r2, r1, r1, lsr #31
68563   add r1, fp, fp, lsr #31
68564   ldrh  r4, [r3, #30]
68565   mov lr, r1, asr #1
68566   ldrne r6, [sp, #112]
68567   ldr r1, [sp, #16]
68568   mov ip, r2, asr #1
68569   str r4, [sp, #32]
68570   moveq r7, ip
68571   movne r4, r6, asl #1
68572   ldreq r4, [sp, #112]
68573   moveq r6, lr
68574   movne r7, ip, asl #1
68575   movne r6, lr, asl #1
68576   cmp r9, r1
68577   ldrh  sl, [r3, #6]
68578   ldrh  r2, [r3, #14]
68579   ldrh  r8, [r3, #22]
68580   bge .L21391
68581   rsb r1, r9, r1
68582   rsb r4, r1, r4
68583   cmp r4, #0
68584   ble .L21367
68585   ldr r9, [sp, #16]
68586   rsb r7, r1, r7
68587 .L21391:
68588   ldr r1, [sp, #12]
68589   add r3, r9, r4
68590   cmp r3, r1
68591   blt .L21394
68592   rsb r4, r9, r1
68593   cmp r4, #0
68594   ble .L21367
68595 .L21394:
68596   add r0, r0, r6
68597   ldr r6, [sp, #32]
68598   mov r2, r2, asl #16
68599   mov ip, ip, asl #8
68600   mov r3, sl, asl #16
68601   mov r1, r6, asl #16
68602   str ip, [sp, #104]
68603   mov r6, r2, asr #16
68604   mov ip, lr, asl #8
68605   ldr r2, [sp, #52]
68606   ldr lr, [sp, #8]
68607   mov r3, r3, asr #16
68608   cmp r8, #0
68609   str r3, [sp, #64]
68610   mov r1, r1, asr #16
68611   add sl, lr, r9, asl #1
68612   rsb r0, r0, r2
68613   bne .L21396
68614   mla r3, r0, r1, ip
68615   mov r1, r3, asr #8
68616   cmp r1, fp
68617   bcs .L21367
68618   ldr ip, [sp, #20]
68619   mov r2, r1, lsr #3
68620   mov r3, ip, asl #22
68621   mov r3, r3, lsr #22
68622   add r3, r3, r2, asl #5
68623   and r1, r1, #7
68624   add r1, r1, r3, asl #2
68625   ldr r3, .L22220+40
68626   cmp r4, #0
68627   add r9, r3, r1, asl #3
68628   ble .L21367
68629   ldr r2, [sp, #64]
68630   mul r3, r0, r6
68631   mul r2, r7, r2
68632   ldr lr, [sp, #104]
68633   rsb r3, r2, r3
68634   add r0, lr, r3
68635   ldr r1, [sp, #112]
68636   mov ip, r0, asr #8
68637   cmp ip, r1
68638   movcs lr, r8
68639   bcs .L21402
68640   b .L22216
68641 .L21403:
68642   ldr r2, [sp, #112]
68643   cmp ip, r2
68644   bcc .L22182
68645 .L21402:
68646   ldr r3, [sp, #64]
68647   add lr, lr, #1
68648   add r0, r0, r3
68649   cmp r4, lr
68650   mov ip, r0, asr #8
68651   add sl, sl, #2
68652   add r5, r5, #2
68653   bne .L21403
68654 .L21367:
68655   ldr ip, [sp, #44]
68656   ldr lr, [sp, #56]
68657   add ip, ip, #1
68658   cmp ip, lr
68659   str ip, [sp, #44]
68660   beq .L22165
68661 .L22197:
68662   ldr r1, [sp, #44]
68663   b .L21363
68664 .L21379:
68665   mov r0, ip
68666   mov r1, r6
68667   mov r2, r7
68668   add r3, sp, #116
68669   bl  render_scanline_obj_normal_2D
68670   b .L21377
68671 .L21384:
68672   ldr r3, [sp, #52]
68673   tst sl, #8192
68674   rsb r0, r0, r3
68675   ldr r4, [sp, #24]
68676   rsbne r3, r0, fp
68677   subne r0, r3, #1
68678   mov r2, sl, asl #19
68679   and r3, r4, #2
68680   orr r3, r3, r2, lsr #31
68681   cmp r3, #3
68682   ldrls pc, [pc, r3, asl #2]
68683   b .L21367
68684   .p2align 2
68685 .L21464:
68686   .word .L21460
68687   .word .L21461
68688   .word .L21462
68689   .word .L21463
68690 .L21386:
68691   ldr r6, .L22220+16
68692   mov r3, sl, lsr #4
68693   and r3, r3, #992
68694   add r3, r3, r6
68695   ldr r7, [sp, #112]
68696   ldr r4, [sp, #28]
68697   ldrh  ip, [r3, #30]
68698   add r2, r7, r7, lsr #31
68699   cmp r4, #0
68700   add r1, fp, fp, lsr #31
68701   str ip, [sp, #36]
68702   ldrh  sl, [r3, #6]
68703   mov ip, r2, asr #1
68704   ldrh  r8, [r3, #22]
68705   ldrh  r2, [r3, #14]
68706   ldr r3, [sp, #16]
68707   mov lr, r1, asr #1
68708   movne r1, r7
68709   moveq r4, r7
68710   moveq r6, lr
68711   moveq r7, ip
68712   movne r4, r1, asl #1
68713   movne r7, ip, asl #1
68714   movne r6, lr, asl #1
68715   cmp r9, r3
68716   bge .L21423
68717   rsb r1, r9, r3
68718   rsb r4, r1, r4
68719   cmp r4, #0
68720   ble .L21367
68721   rsb r7, r1, r7
68722   mov r9, r3
68723 .L21423:
68724   ldr r1, [sp, #12]
68725   add r3, r9, r4
68726   cmp r3, r1
68727   blt .L21426
68728   rsb r4, r9, r1
68729   cmp r4, #0
68730   ble .L21367
68731 .L21426:
68732   add r0, r0, r6
68733   ldr r6, [sp, #36]
68734   mov r2, r2, asl #16
68735   mov ip, ip, asl #8
68736   mov r3, sl, asl #16
68737   mov r1, r6, asl #16
68738   str ip, [sp, #92]
68739   mov r6, r2, asr #16
68740   mov ip, lr, asl #8
68741   ldr r2, [sp, #52]
68742   ldr lr, [sp, #8]
68743   mov r3, r3, asr #16
68744   cmp r8, #0
68745   str r3, [sp, #68]
68746   mov r1, r1, asr #16
68747   add sl, lr, r9, asl #1
68748   rsb r0, r0, r2
68749   bne .L21428
68750   mla r3, r0, r1, ip
68751   mov r1, r3, asr #8
68752   cmp r1, fp
68753   bcs .L21367
68754   ldr ip, [sp, #20]
68755   mov r2, r1, lsr #3
68756   mov r3, ip, asl #22
68757   mov r3, r3, lsr #22
68758   add r3, r3, r2, asl #5
68759   and r1, r1, #7
68760   add r1, r1, r3, asl #3
68761   ldr r3, .L22220+40
68762   cmp r4, #0
68763   add r9, r3, r1, asl #2
68764   ble .L21367
68765   ldr r2, [sp, #68]
68766   mul r3, r0, r6
68767   mul r2, r7, r2
68768   ldr lr, [sp, #92]
68769   rsb r3, r2, r3
68770   ldr r1, [sp, #112]
68771   add r0, lr, r3
68772   mov ip, r0, asr #8
68773   cmp ip, r1
68774   movcs r1, r8
68775   bcs .L21434
68776   b .L22217
68777 .L21435:
68778   ldr r2, [sp, #112]
68779   cmp ip, r2
68780   bcc .L22184
68781 .L21434:
68782   ldr r3, [sp, #68]
68783   add r1, r1, #1
68784   add r0, r0, r3
68785   cmp r4, r1
68786   mov ip, r0, asr #8
68787   add sl, sl, #2
68788   add r5, r5, #2
68789   bne .L21435
68790   ldr ip, [sp, #44]
68791   ldr lr, [sp, #56]
68792   add ip, ip, #1
68793   cmp ip, lr
68794   str ip, [sp, #44]
68795   bne .L22197
68796 .L22165:
68797   add sp, sp, #596
68798   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
68799 .L21437:
68800   ldr r6, [sp, #112]
68801   cmp ip, r6
68802   bcs .L21367
68803 .L22184:
68804   mov r3, ip, asr #1
68805   and r6, r3, #3
68806   mov r3, ip, asr #3
68807   mov r3, r3, asl #5
68808   mov r2, ip, asr #1
68809   tst ip, #1
68810   and lr, r2, #3
68811   add ip, r3, r9
68812   add r2, r3, r9
68813   ldreqb  r3, [r2, lr]  @ zero_extendqisi2
68814   ldrneb  r3, [ip, r6]  @ zero_extendqisi2
68815   andeq r2, r3, #15
68816   movne r2, r3, lsr #4
68817   cmp r2, #0
68818   ldrneh  lr, [r5, #0]
68819   ldr r7, [sp, #68]
68820   add r1, r1, #1
68821   strneh  lr, [sl, #0]  @ movhi
68822   add r0, r0, r7
68823   cmp r4, r1
68824   mov ip, r0, asr #8
68825   add sl, sl, #2
68826   add r5, r5, #2
68827   bgt .L21437
68828   b .L21367
68829 .L21428:
68830   ldr r2, [sp, #20]
68831   cmp r4, #0
68832   mov r3, r2, asl #22
68833   ldr r2, .L22220+40
68834   mov r3, r3, lsr #22
68835   add r3, r2, r3, asl #5
68836   str r3, [sp, #96]
68837   ble .L21367
68838   mov r3, r8, asl #16
68839   mov r3, r3, asr #16
68840   str r3, [sp, #72]
68841   mul r2, r0, r1
68842   mul r3, r0, r6
68843   ldr r1, [sp, #72]
68844   ldr r0, [sp, #68]
68845   mul r1, r7, r1
68846   mul r0, r7, r0
68847   ldr r6, [sp, #92]
68848   rsb r3, r0, r3
68849   rsb r2, r1, r2
68850   add r7, r6, r3
68851   ldr r0, [sp, #112]
68852   add r6, ip, r2
68853   mov lr, r7, asr #8
68854   mov ip, r6, asr #8
68855   cmp lr, r0
68856   cmpcc ip, fp
68857   movcs r3, #0
68858   movcc r3, #1
68859   movcs r8, r3
68860   bcs .L21447
68861   b .L22218
68862 .L21448:
68863   ldr r1, [sp, #112]
68864   cmp lr, r1
68865   cmpcc ip, fp
68866   bcc .L21449
68867 .L21447:
68868   ldr r2, [sp, #68]
68869   ldr r3, [sp, #72]
68870   add r8, r8, #1
68871   add r7, r7, r2
68872   add r6, r6, r3
68873   cmp r4, r8
68874   mov lr, r7, asr #8
68875   mov ip, r6, asr #8
68876   add sl, sl, #2
68877   add r5, r5, #2
68878   bne .L21448
68879   b .L21367
68880 .L21405:
68881   ldr r6, [sp, #112]
68882   cmp ip, r6
68883   bcs .L21367
68884 .L22182:
68885   mov r3, ip, asr #3
68886   and r1, ip, #7
68887   add r3, r9, r3, asl #6
68888   ldrb  r2, [r3, r1]  @ zero_extendqisi2
68889   ldr r7, [sp, #64]
68890   cmp r2, #0
68891   ldrneh  r1, [r5, #0]
68892   add lr, lr, #1
68893   strneh  r1, [sl, #0]  @ movhi
68894   add r0, r0, r7
68895   cmp r4, lr
68896   mov ip, r0, asr #8
68897   add sl, sl, #2
68898   add r5, r5, #2
68899   bgt .L21405
68900   b .L21367
68901 .L21396:
68902   ldr r2, [sp, #20]
68903   cmp r4, #0
68904   mov r3, r2, asl #22
68905   ldr r2, .L22220+40
68906   mov r3, r3, lsr #22
68907   add r3, r2, r3, asl #5
68908   str r3, [sp, #100]
68909   ble .L21367
68910   mov r3, r8, asl #16
68911   mul r2, r0, r1
68912   mov r9, r3, asr #16
68913   mul r3, r0, r6
68914   ldr r0, [sp, #64]
68915   mul r1, r9, r7
68916   mul r0, r7, r0
68917   ldr r6, [sp, #104]
68918   rsb r3, r0, r3
68919   rsb r2, r1, r2
68920   add r7, r6, r3
68921   ldr r0, [sp, #112]
68922   add r6, ip, r2
68923   mov lr, r7, asr #8
68924   mov ip, r6, asr #8
68925   cmp lr, r0
68926   cmpcc ip, fp
68927   movcs r3, #0
68928   movcc r3, #1
68929   movcs r8, r3
68930   bcs .L21412
68931   b .L22219
68932 .L21413:
68933   ldr r1, [sp, #112]
68934   cmp lr, r1
68935   cmpcc ip, fp
68936   bcc .L21414
68937 .L21412:
68938   ldr r2, [sp, #64]
68939   add r8, r8, #1
68940   add r7, r7, r2
68941   add r6, r6, r9
68942   cmp r4, r8
68943   mov lr, r7, asr #8
68944   mov ip, r6, asr #8
68945   add sl, sl, #2
68946   add r5, r5, #2
68947   bne .L21413
68948   b .L21367
68949 .L21460:
68950   ldr r6, [sp, #20]
68951   mov r2, r0, lsr #3
68952   mov r3, r6, asl #22
68953   mov r3, r3, lsr #22
68954   add r3, r3, r2, asl #5
68955   and r1, r0, #7
68956   ldr r7, [sp, #16]
68957   add r1, r1, r3, asl #3
68958   ldr r3, .L22220+40
68959   cmp r9, r7
68960   add r0, r3, r1, asl #2
68961   bge .L21465
68962   ldr r1, [sp, #112]
68963   rsb ip, r9, r7
68964   rsb lr, ip, r1
68965   cmp lr, #0
68966   ble .L21367
68967   ldr r2, [sp, #12]
68968   add r3, r9, r1
68969   cmp r2, r3
68970   bhi .L21468
68971   mov r3, ip, lsr #3
68972   mov r1, r3, asl #5
68973   ands  r3, ip, #7
68974   add r6, r0, r1
68975   bne .L21470
68976   ldr r8, [sp, #108]
68977   ldr r7, [sp, #88]
68978 .L21472:
68979   movs  lr, r8, lsr #3
68980   beq .L21489
68981   mov r1, r5
68982   mov r2, r7
68983   mov r0, r6
68984   mov ip, #0
68985 .L21491:
68986   ldr r3, [r0, #0]
68987   cmp r3, #0
68988   beq .L21492
68989   tst r3, #15
68990   ldrneh  r4, [r1, #0]
68991   strneh  r4, [r2, #0]  @ movhi
68992   tst r3, #240
68993   ldrneh  r4, [r1, #2]
68994   strneh  r4, [r2, #2]  @ movhi
68995   tst r3, #3840
68996   ldrneh  r4, [r1, #4]
68997   strneh  r4, [r2, #4]  @ movhi
68998   tst r3, #61440
68999   ldrneh  r4, [r1, #6]
69000   strneh  r4, [r2, #6]  @ movhi
69001   tst r3, #983040
69002   ldrneh  r4, [r1, #8]
69003   strneh  r4, [r2, #8]  @ movhi
69004   tst r3, #15728640
69005   ldrneh  r4, [r1, #10]
69006   strneh  r4, [r2, #10] @ movhi
69007   tst r3, #251658240
69008   ldrneh  r4, [r1, #12]
69009   strneh  r4, [r2, #12] @ movhi
69010   movs  r3, r3, lsr #28
69011   ldrneh  r3, [r1, #14]
69012   strneh  r3, [r2, #14] @ movhi
69013 .L21492:
69014   add ip, ip, #1
69015   cmp ip, lr
69016   add r0, r0, #32
69017   add r2, r2, #16
69018   add r1, r1, #16
69019   bne .L21491
69020   mov r3, lr, asl #4
69021   add r7, r7, r3
69022   add r6, r6, lr, asl #5
69023   add r5, r5, r3
69024 .L21489:
69025   ands  r0, r8, #7
69026   beq .L21367
69027   ldr r3, [r6, #0]
69028   mov r1, #0
69029 .L21511:
69030   tst r3, #15
69031   mov r2, r1, asl #1
69032   ldrneh  r4, [r2, r5]
69033   add r1, r1, #1
69034   strneh  r4, [r2, r7]  @ movhi
69035   cmp r1, r0
69036   mov r3, r3, lsr #4
69037   bne .L21511
69038   b .L21367
69039 .L21461:
69040   ldr ip, [sp, #20]
69041   ldr lr, [sp, #112]
69042   mov r3, ip, asl #22
69043   mov r1, r0, lsr #3
69044   subs  r2, lr, #8
69045   mov r3, r3, lsr #22
69046   submi r2, lr, #1
69047   add r3, r3, r1, asl #5
69048   add r3, r3, r2, asr #3
69049   and r1, r0, #7
69050   ldr r0, [sp, #16]
69051   add r1, r1, r3, asl #3
69052   ldr r3, .L22220+40
69053   cmp r9, r0
69054   add r0, r3, r1, asl #2
69055   bge .L21595
69056   ldr r1, [sp, #16]
69057   rsb ip, r9, r1
69058   rsb r1, ip, lr
69059   cmp r1, #0
69060   ble .L21367
69061   ldr r2, [sp, #12]
69062   add r3, r9, lr
69063   cmp r2, r3
69064   bhi .L21598
69065   mov r3, ip, lsr #3
69066   ands  r6, ip, #7
69067   sub r0, r0, r3, asl #5
69068   bne .L21600
69069   ldr r8, [sp, #108]
69070   ldr r1, [sp, #88]
69071 .L21602:
69072   movs  r3, r8, lsr #3
69073   beq .L21619
69074   mov lr, r5
69075   mov ip, r1
69076   mov r6, r0
69077   mov r7, #0
69078 .L21621:
69079   ldr r2, [r6, #0]
69080   cmp r2, #0
69081   beq .L21622
69082   tst r2, #15
69083   ldrneh  r4, [lr, #14]
69084   strneh  r4, [ip, #14] @ movhi
69085   tst r2, #240
69086   ldrneh  r4, [lr, #12]
69087   strneh  r4, [ip, #12] @ movhi
69088   tst r2, #3840
69089   ldrneh  r4, [lr, #10]
69090   strneh  r4, [ip, #10] @ movhi
69091   tst r2, #61440
69092   ldrneh  r4, [lr, #8]
69093   strneh  r4, [ip, #8]  @ movhi
69094   tst r2, #983040
69095   ldrneh  r4, [lr, #6]
69096   strneh  r4, [ip, #6]  @ movhi
69097   tst r2, #15728640
69098   ldrneh  r4, [lr, #4]
69099   strneh  r4, [ip, #4]  @ movhi
69100   tst r2, #251658240
69101   ldrneh  r4, [lr, #2]
69102   strneh  r4, [ip, #2]  @ movhi
69103   movs  r2, r2, lsr #28
69104   ldrneh  r2, [lr, #0]
69105   strneh  r2, [ip, #0]  @ movhi
69106 .L21622:
69107   add r7, r7, #1
69108   cmp r7, r3
69109   sub r6, r6, #32
69110   add ip, ip, #16
69111   add lr, lr, #16
69112   bne .L21621
69113   rsb r2, r3, r3, asl #27
69114   mov r3, r3, asl #4
69115   add r1, r1, r3
69116   add r0, r0, r2, asl #5
69117   add r5, r5, r3
69118 .L21619:
69119   ands  ip, r8, #7
69120   beq .L21367
69121   ldr r0, [r0, #0]
69122   mov r2, #0
69123 .L21641:
69124   movs  r3, r0, lsr #28
69125   mov r3, r2, asl #1
69126   ldrneh  r4, [r3, r5]
69127   add r2, r2, #1
69128   strneh  r4, [r3, r1]  @ movhi
69129   cmp r2, ip
69130   mov r0, r0, asl #4
69131   bne .L21641
69132   b .L21367
69133 .L21463:
69134   ldr lr, [sp, #112]
69135   ldr r3, [sp, #20]
69136   subs  r2, lr, #8
69137   submi r2, lr, #1
69138   mov r1, r3, asl #22
69139   mov r2, r2, asr #3
69140   mov r3, r0, lsr #3
69141   add r2, r2, r3, asl #4
69142   mov r1, r1, lsr #22
69143   and r3, r0, #7
69144   add r1, r1, r2, asl #1
69145   add r3, r3, r1, asl #2
69146   ldr r4, [sp, #16]
69147   mov r0, r3, asl #3
69148   ldr r3, .L22220+40
69149   cmp r9, r4
69150   add r8, r0, r3
69151   bge .L21945
69152   rsb r0, r9, r4
69153   rsb lr, r0, lr
69154   cmp lr, #0
69155   ble .L21367
69156   ldr r6, [sp, #112]
69157   ldr r7, [sp, #12]
69158   add r3, r9, r6
69159   cmp r7, r3
69160   bhi .L21948
69161   mov r3, r0, lsr #3
69162   ands  ip, r0, #7
69163   sub sl, r8, r3, asl #6
69164   bne .L21950
69165   ldr r8, [sp, #108]
69166   ldr r7, [sp, #88]
69167 .L21952:
69168   movs  r6, r8, lsr #3
69169   beq .L22010
69170   mov r0, r5
69171   mov r1, r7
69172   mov ip, sl
69173   mov lr, #0
69174 .L22012:
69175   ldr r2, [ip, #4]
69176   cmp r2, #0
69177   beq .L22013
69178   tst r2, #255
69179   ldrneh  r3, [r0, #6]
69180   strneh  r3, [r1, #6]  @ movhi
69181   mov r3, r2, lsr #8
69182   tst r3, #255
69183   ldrneh  r4, [r0, #4]
69184   mov r3, r2, lsr #16
69185   strneh  r4, [r1, #4]  @ movhi
69186   tst r3, #255
69187   ldrneh  r3, [r0, #2]
69188   strneh  r3, [r1, #2]  @ movhi
69189   movs  r2, r2, lsr #24
69190   ldrneh  r4, [r0, #0]
69191   strneh  r4, [r1, #0]  @ movhi
69192 .L22013:
69193   ldr r2, [ip, #0]
69194   cmp r2, #0
69195   beq .L22022
69196   tst r2, #255
69197   ldrneh  r3, [r0, #14]
69198   strneh  r3, [r1, #14] @ movhi
69199   mov r3, r2, lsr #8
69200   tst r3, #255
69201   ldrneh  r4, [r0, #12]
69202   mov r3, r2, lsr #16
69203   strneh  r4, [r1, #12] @ movhi
69204   tst r3, #255
69205   ldrneh  r3, [r0, #10]
69206   strneh  r3, [r1, #10] @ movhi
69207   movs  r2, r2, lsr #24
69208   ldrneh  r4, [r0, #8]
69209   strneh  r4, [r1, #8]  @ movhi
69210 .L22022:
69211   add lr, lr, #1
69212   cmp lr, r6
69213   sub ip, ip, #64
69214   add r1, r1, #16
69215   add r0, r0, #16
69216   bne .L22012
69217   mov r3, r6, asl #4
69218   rsb r2, r6, r6, asl #26
69219   add r7, r7, r3
69220   add sl, sl, r2, asl #6
69221   add r5, r5, r3
69222 .L22010:
69223   ands  ip, r8, #7
69224   beq .L21367
69225   cmp ip, #3
69226   ldrls r2, [sl, #4]
69227   bls .L22045
69228   ldr r2, [sl, #4]
69229   cmp r2, #0
69230   beq .L22035
69231   tst r2, #255
69232   ldrneh  r6, [r5, #6]
69233   mov r3, r2, lsr #8
69234   strneh  r6, [r7, #6]  @ movhi
69235   tst r3, #255
69236   ldrneh  lr, [r5, #4]
69237   mov r3, r2, lsr #16
69238   strneh  lr, [r7, #4]  @ movhi
69239   tst r3, #255
69240   ldrneh  r0, [r5, #2]
69241   strneh  r0, [r7, #2]  @ movhi
69242   movs  r2, r2, lsr #24
69243   ldrneh  r1, [r5, #0]
69244   strneh  r1, [r7, #0]  @ movhi
69245 .L22035:
69246   subs  ip, ip, #4
69247   ldr r2, [sl, #0]
69248   addne r7, r7, #8
69249   addne r5, r5, #8
69250   beq .L21367
69251 .L22045:
69252   mov r1, #0
69253 .L22046:
69254   movs  r3, r2, lsr #24
69255   mov r0, r1, asl #1
69256   ldrneh  r4, [r0, r5]
69257   add r1, r1, #1
69258   strneh  r4, [r0, r7]  @ movhi
69259   cmp ip, r1
69260   mov r2, r2, asl #8
69261   bhi .L22046
69262   b .L21367
69263 .L21462:
69264   ldr ip, [sp, #20]
69265   mov r1, r0, lsr #3
69266   mov r2, ip, asl #22
69267   mov r2, r2, lsr #22
69268   add r2, r2, r1, asl #5
69269   and r3, r0, #7
69270   add r3, r3, r2, asl #2
69271   ldr lr, [sp, #16]
69272   mov r0, r3, asl #3
69273   ldr r3, .L22220+40
69274   cmp r9, lr
69275   add r2, r0, r3
69276   bge .L21725
69277   ldr r1, [sp, #112]
69278   rsb r0, r9, lr
69279   rsb lr, r0, r1
69280   cmp lr, #0
69281   ble .L21367
69282   ldr r4, [sp, #12]
69283   add r3, r9, r1
69284   cmp r4, r3
69285   bhi .L21728
69286   mov r3, r0, lsr #3
69287   ands  ip, r0, #7
69288   add sl, r2, r3, asl #6
69289   bne .L21730
69290   ldr r8, [sp, #108]
69291   ldr r7, [sp, #88]
69292 .L21732:
69293   movs  r6, r8, lsr #3
69294   beq .L21790
69295   mov r0, r5
69296   mov r1, r7
69297   mov ip, sl
69298   mov lr, #0
69299 .L21792:
69300   ldr r2, [ip, #0]
69301   cmp r2, #0
69302   beq .L21793
69303   tst r2, #255
69304   ldrneh  r3, [r0, #0]
69305   strneh  r3, [r1, #0]  @ movhi
69306   mov r3, r2, lsr #8
69307   tst r3, #255
69308   ldrneh  r4, [r0, #2]
69309   mov r3, r2, lsr #16
69310   strneh  r4, [r1, #2]  @ movhi
69311   tst r3, #255
69312   ldrneh  r3, [r0, #4]
69313   strneh  r3, [r1, #4]  @ movhi
69314   movs  r2, r2, lsr #24
69315   ldrneh  r4, [r0, #6]
69316   strneh  r4, [r1, #6]  @ movhi
69317 .L21793:
69318   ldr r2, [ip, #4]
69319   cmp r2, #0
69320   beq .L21802
69321   tst r2, #255
69322   ldrneh  r3, [r0, #8]
69323   strneh  r3, [r1, #8]  @ movhi
69324   mov r3, r2, lsr #8
69325   tst r3, #255
69326   ldrneh  r4, [r0, #10]
69327   mov r3, r2, lsr #16
69328   strneh  r4, [r1, #10] @ movhi
69329   tst r3, #255
69330   ldrneh  r3, [r0, #12]
69331   strneh  r3, [r1, #12] @ movhi
69332   movs  r2, r2, lsr #24
69333   ldrneh  r4, [r0, #14]
69334   strneh  r4, [r1, #14] @ movhi
69335 .L21802:
69336   add lr, lr, #1
69337   cmp lr, r6
69338   add ip, ip, #64
69339   add r1, r1, #16
69340   add r0, r0, #16
69341   bne .L21792
69342   mov r3, r6, asl #4
69343   add r7, r7, r3
69344   add sl, sl, r6, asl #6
69345   add r5, r5, r3
69346 .L21790:
69347   ands  r0, r8, #7
69348   beq .L21367
69349   cmp r0, #3
69350   ldrls r3, [sl, #0]
69351   bls .L21825
69352   ldr r2, [sl, #0]
69353   cmp r2, #0
69354   beq .L21815
69355   tst r2, #255
69356   ldrneh  r6, [r5, #0]
69357   mov r3, r2, lsr #8
69358   strneh  r6, [r7, #0]  @ movhi
69359   tst r3, #255
69360   ldrneh  ip, [r5, #2]
69361   mov r3, r2, lsr #16
69362   strneh  ip, [r7, #2]  @ movhi
69363   tst r3, #255
69364   ldrneh  lr, [r5, #4]
69365   strneh  lr, [r7, #4]  @ movhi
69366   movs  r2, r2, lsr #24
69367   ldrneh  r1, [r5, #6]
69368   strneh  r1, [r7, #6]  @ movhi
69369 .L21815:
69370   subs  r0, r0, #4
69371   ldr r3, [sl, #4]
69372   addne r7, r7, #8
69373   addne r5, r5, #8
69374   beq .L21367
69375 .L21825:
69376   mov r2, #0
69377 .L21826:
69378   tst r3, #255
69379   mov r1, r2, asl #1
69380   ldrneh  r4, [r1, r5]
69381   add r2, r2, #1
69382   strneh  r4, [r1, r7]  @ movhi
69383   cmp r0, r2
69384   mov r3, r3, lsr #8
69385   bhi .L21826
69386   b .L21367
69387 .L21725:
69388   ldr ip, [sp, #112]
69389   ldr lr, [sp, #12]
69390   add r3, r9, ip
69391   cmp lr, r3
69392   bls .L22200
69393   cmp ip, #0
69394   add r3, ip, #7
69395   movge r3, ip
69396   movs  r6, r3, asr #3
69397   beq .L21367
69398   ldr r7, [sp, #8]
69399   ldr r3, .L22220+48
69400   add r1, r7, r9, asl #1
69401   add r0, r0, r3
69402   mov lr, #0
69403   b .L21925
69404 .L22201:
69405   add r2, r2, #64
69406   add r1, r1, #16
69407   add r5, r5, #16
69408 .L21925:
69409   ldr ip, [r2, #0]
69410   cmp ip, #0
69411   beq .L21926
69412   tst ip, #255
69413   ldrneh  r3, [r5, #0]
69414   strneh  r3, [r1, #0]  @ movhi
69415   mov r3, ip, lsr #8
69416   tst r3, #255
69417   ldrneh  r4, [r5, #2]
69418   mov r3, ip, lsr #16
69419   strneh  r4, [r1, #2]  @ movhi
69420   tst r3, #255
69421   ldrneh  r7, [r5, #4]
69422   strneh  r7, [r1, #4]  @ movhi
69423   movs  ip, ip, lsr #24
69424   ldrneh  ip, [r5, #6]
69425   strneh  ip, [r1, #6]  @ movhi
69426 .L21926:
69427   ldr ip, [r0, #-60]
69428   cmp ip, #0
69429   beq .L21935
69430   tst ip, #255
69431   ldrneh  r3, [r5, #8]
69432   strneh  r3, [r1, #8]  @ movhi
69433   mov r3, ip, lsr #8
69434   tst r3, #255
69435   ldrneh  r4, [r5, #10]
69436   mov r3, ip, lsr #16
69437   strneh  r4, [r1, #10] @ movhi
69438   tst r3, #255
69439   ldrneh  r7, [r5, #12]
69440   strneh  r7, [r1, #12] @ movhi
69441   movs  ip, ip, lsr #24
69442   ldrneh  ip, [r5, #14]
69443   strneh  ip, [r1, #14] @ movhi
69444 .L21935:
69445   add lr, lr, #1
69446   cmp r6, lr
69447   add r0, r0, #64
69448   bne .L22201
69449   b .L21367
69450 .L21595:
69451   ldr ip, [sp, #12]
69452   add r3, r9, lr
69453   cmp ip, r3
69454   mov r7, lr
69455   bls .L22202
69456   cmp lr, #0
69457   add r3, lr, #7
69458   movge r3, lr
69459   movs  r3, r3, asr #3
69460   mov r6, lr
69461   beq .L21367
69462   ldr r7, [sp, #8]
69463   mov ip, #0
69464   add r1, r7, r9, asl #1
69465   b .L21706
69466 .L22221:
69467   .align  2
69468 .L22220:
69469   .word io_registers
69470   .word obj_priority_count
69471   .word obj_priority_list
69472   .word bitmap_mode_renderers-12
69473   .word oam_ram
69474   .word obj_width_table
69475   .word palette_ram_converted
69476   .word layer_count
69477   .word layer_order
69478   .word obj_height_table
69479   .word vram+65536
69480   .word vram+65472
69481   .word vram+65600
69482 .L22203:
69483   sub r0, r0, #32
69484   add r1, r1, #16
69485   add r5, r5, #16
69486 .L21706:
69487   ldr r2, [r0, #0]
69488   cmp r2, #0
69489   beq .L21707
69490   tst r2, #15
69491   ldrneh  lr, [r5, #14]
69492   strneh  lr, [r1, #14] @ movhi
69493   tst r2, #240
69494   ldrneh  r4, [r5, #12]
69495   strneh  r4, [r1, #12] @ movhi
69496   tst r2, #3840
69497   ldrneh  r6, [r5, #10]
69498   strneh  r6, [r1, #10] @ movhi
69499   tst r2, #61440
69500   ldrneh  r7, [r5, #8]
69501   strneh  r7, [r1, #8]  @ movhi
69502   tst r2, #983040
69503   ldrneh  lr, [r5, #6]
69504   strneh  lr, [r1, #6]  @ movhi
69505   tst r2, #15728640
69506   ldrneh  r4, [r5, #4]
69507   strneh  r4, [r1, #4]  @ movhi
69508   tst r2, #251658240
69509   ldrneh  r6, [r5, #2]
69510   strneh  r6, [r1, #2]  @ movhi
69511   movs  r2, r2, lsr #28
69512   ldrneh  r7, [r5, #0]
69513   strneh  r7, [r1, #0]  @ movhi
69514 .L21707:
69515   add ip, ip, #1
69516   cmp r3, ip
69517   bne .L22203
69518   b .L21367
69519 .L21465:
69520   ldr r1, [sp, #112]
69521   ldr r2, [sp, #12]
69522   add r3, r9, r1
69523   cmp r2, r3
69524   bls .L22204
69525   cmp r1, #0
69526   add r3, r1, #7
69527   movge r3, r1
69528   movs  r3, r3, asr #3
69529   mov r6, r1
69530   beq .L21367
69531   ldr r7, [sp, #8]
69532   mov r2, #0
69533   add r1, r7, r9, asl #1
69534   b .L21576
69535 .L22205:
69536   add r0, r0, #32
69537   add r1, r1, #16
69538   add r5, r5, #16
69539 .L21576:
69540   ldr ip, [r0, #0]
69541   cmp ip, #0
69542   beq .L21577
69543   tst ip, #15
69544   ldrneh  lr, [r5, #0]
69545   strneh  lr, [r1, #0]  @ movhi
69546   tst ip, #240
69547   ldrneh  r4, [r5, #2]
69548   strneh  r4, [r1, #2]  @ movhi
69549   tst ip, #3840
69550   ldrneh  r6, [r5, #4]
69551   strneh  r6, [r1, #4]  @ movhi
69552   tst ip, #61440
69553   ldrneh  r7, [r5, #6]
69554   strneh  r7, [r1, #6]  @ movhi
69555   tst ip, #983040
69556   ldrneh  lr, [r5, #8]
69557   strneh  lr, [r1, #8]  @ movhi
69558   tst ip, #15728640
69559   ldrneh  r4, [r5, #10]
69560   strneh  r4, [r1, #10] @ movhi
69561   tst ip, #251658240
69562   ldrneh  r6, [r5, #12]
69563   strneh  r6, [r1, #12] @ movhi
69564   movs  ip, ip, lsr #28
69565   ldrneh  r7, [r5, #14]
69566   strneh  r7, [r1, #14] @ movhi
69567 .L21577:
69568   add r2, r2, #1
69569   cmp r3, r2
69570   bne .L22205
69571   b .L21367
69572 .L21945:
69573   add r3, r9, lr
69574   mov ip, lr
69575   ldr lr, [sp, #12]
69576   cmp lr, r3
69577   bls .L22206
69578   cmp ip, #0
69579   add r3, ip, #7
69580   movge r3, ip
69581   movs  lr, r3, asr #3
69582   mov r7, ip
69583   beq .L21367
69584   ldr ip, [sp, #8]
69585   ldr r3, .L22220+44
69586   add r1, ip, r9, asl #1
69587   add r0, r0, r3
69588   mov r2, #0
69589   b .L22145
69590 .L22207:
69591   sub r8, r8, #64
69592   add r1, r1, #16
69593   add r5, r5, #16
69594 .L22145:
69595   ldr ip, [r0, #68]
69596   cmp ip, #0
69597   beq .L22146
69598   tst ip, #255
69599   ldrneh  r3, [r5, #6]
69600   strneh  r3, [r1, #6]  @ movhi
69601   mov r3, ip, lsr #8
69602   tst r3, #255
69603   ldrneh  r4, [r5, #4]
69604   mov r3, ip, lsr #16
69605   strneh  r4, [r1, #4]  @ movhi
69606   tst r3, #255
69607   ldrneh  r6, [r5, #2]
69608   strneh  r6, [r1, #2]  @ movhi
69609   movs  ip, ip, lsr #24
69610   ldrneh  r7, [r5, #0]
69611   strneh  r7, [r1, #0]  @ movhi
69612 .L22146:
69613   ldr ip, [r8, #0]
69614   cmp ip, #0
69615   beq .L22155
69616   tst ip, #255
69617   ldrneh  r3, [r5, #14]
69618   strneh  r3, [r1, #14] @ movhi
69619   mov r3, ip, lsr #8
69620   tst r3, #255
69621   ldrneh  r4, [r5, #12]
69622   mov r3, ip, lsr #16
69623   strneh  r4, [r1, #12] @ movhi
69624   tst r3, #255
69625   ldrneh  r6, [r5, #10]
69626   strneh  r6, [r1, #10] @ movhi
69627   movs  ip, ip, lsr #24
69628   ldrneh  r7, [r5, #8]
69629   strneh  r7, [r1, #8]  @ movhi
69630 .L22155:
69631   add r2, r2, #1
69632   cmp lr, r2
69633   sub r0, r0, #64
69634   bne .L22207
69635   b .L21367
69636 .L22219:
69637   mov r8, #0
69638 .L21414:
69639   ldr r0, [sp, #112]
69640   cmp ip, fp
69641   cmpcc lr, r0
69642   bcc .L22183
69643   b .L21367
69644 .L21415:
69645   ldr r3, [sp, #112]
69646   cmp ip, fp
69647   cmpcc lr, r3
69648   bcs .L21367
69649 .L22183:
69650   and r3, ip, #7
69651   mov r2, lr, asr #3
69652   mov r3, r3, asl #3
69653   mov r1, ip, asr #3
69654   add r3, r3, r2, asl #6
69655   ldr r0, [sp, #64]
69656   add r3, r3, r1, asl #10
69657   ldr r1, [sp, #100]
69658   add r7, r7, r0
69659   add r3, r3, r1
69660   and r0, lr, #7
69661   ldrb  r2, [r3, r0]  @ zero_extendqisi2
69662   add r8, r8, #1
69663   cmp r2, #0
69664   ldrneh  r2, [r5, #0]
69665   add r6, r6, r9
69666   strneh  r2, [sl, #0]  @ movhi
69667   cmp r4, r8
69668   mov ip, r6, asr #8
69669   mov lr, r7, asr #8
69670   add sl, sl, #2
69671   add r5, r5, #2
69672   bgt .L21415
69673   b .L21367
69674 .L22218:
69675   ldr r1, [sp, #112]
69676   mov r8, #0
69677 .L21449:
69678   cmp ip, fp
69679   cmpcc lr, r1
69680   bcc .L22185
69681   b .L21367
69682 .L21450:
69683   ldr r0, [sp, #112]
69684   cmp ip, fp
69685   cmpcc lr, r0
69686   bcs .L21367
69687 .L22185:
69688   mov r3, lr, asr #1
69689   ldr r1, [sp, #96]
69690   and r3, r3, #3
69691   and r0, ip, #7
69692   str r3, [sp, #4]
69693   ldr r3, [sp, #96]
69694   add r0, r1, r0, asl #2
69695   and r1, ip, #7
69696   mov r2, lr, asr #1
69697   add r1, r3, r1, asl #2
69698   mov r3, ip, asr #3
69699   and r9, r2, #3
69700   mov r3, r3, asl #10
69701   mov r2, lr, asr #3
69702   tst lr, #1
69703   add r3, r3, r2, asl #5
69704   add r2, r0, r3
69705   movne ip, r9
69706   add r0, r1, r3
69707   ldreqb  r3, [r0, r9]  @ zero_extendqisi2
69708   ldrneb  r3, [r2, ip]  @ zero_extendqisi2
69709   andeq r0, r3, #15
69710   movne r0, r3, lsr #4
69711   cmp r0, #0
69712   ldrneh  r2, [r5, #0]
69713   ldr lr, [sp, #68]
69714   ldr r1, [sp, #72]
69715   add r8, r8, #1
69716   strneh  r2, [sl, #0]  @ movhi
69717   add r7, r7, lr
69718   add r6, r6, r1
69719   cmp r4, r8
69720   mov lr, r7, asr #8
69721   mov ip, r6, asr #8
69722   add sl, sl, #2
69723   add r5, r5, #2
69724   bgt .L21450
69725   b .L21367
69726 .L22206:
69727   rsb fp, r9, lr
69728   cmp fp, #0
69729   ble .L21367
69730   ldr r2, [sp, #8]
69731   movs  sl, fp, lsr #3
69732   add r1, r2, r9, asl #1
69733   beq .L22104
69734   ldr r3, .L22220+44
69735   mov r6, r5
69736   add r0, r0, r3
69737   mov lr, r1
69738   mov r7, r8
69739   mov r2, #0
69740 .L22106:
69741   ldr ip, [r0, #68]
69742   cmp ip, #0
69743   beq .L22107
69744   tst ip, #255
69745   ldrneh  r3, [r6, #6]
69746   strneh  r3, [lr, #6]  @ movhi
69747   mov r3, ip, lsr #8
69748   tst r3, #255
69749   ldrneh  r4, [r6, #4]
69750   mov r3, ip, lsr #16
69751   strneh  r4, [lr, #4]  @ movhi
69752   tst r3, #255
69753   ldrneh  r3, [r6, #2]
69754   strneh  r3, [lr, #2]  @ movhi
69755   movs  ip, ip, lsr #24
69756   ldrneh  r4, [r6, #0]
69757   strneh  r4, [lr, #0]  @ movhi
69758 .L22107:
69759   ldr ip, [r7, #0]
69760   cmp ip, #0
69761   beq .L22116
69762   tst ip, #255
69763   ldrneh  r3, [r6, #14]
69764   strneh  r3, [lr, #14] @ movhi
69765   mov r3, ip, lsr #8
69766   tst r3, #255
69767   ldrneh  r4, [r6, #12]
69768   mov r3, ip, lsr #16
69769   strneh  r4, [lr, #12] @ movhi
69770   tst r3, #255
69771   ldrneh  r3, [r6, #10]
69772   strneh  r3, [lr, #10] @ movhi
69773   movs  ip, ip, lsr #24
69774   ldrneh  r4, [r6, #8]
69775   strneh  r4, [lr, #8]  @ movhi
69776 .L22116:
69777   add r2, r2, #1
69778   cmp sl, r2
69779   sub r7, r7, #64
69780   add lr, lr, #16
69781   add r6, r6, #16
69782   sub r0, r0, #64
69783   bne .L22106
69784   mov r3, sl, asl #4
69785   rsb r2, sl, sl, asl #26
69786   add r1, r1, r3
69787   add r8, r8, r2, asl #6
69788   add r5, r5, r3
69789 .L22104:
69790   ands  ip, fp, #7
69791   beq .L21367
69792   cmp ip, #3
69793   ldrls r2, [r8, #4]
69794   bls .L22139
69795   ldr r2, [r8, #4]
69796   cmp r2, #0
69797   beq .L22129
69798   tst r2, #255
69799   ldrneh  r6, [r5, #6]
69800   mov r3, r2, lsr #8
69801   strneh  r6, [r1, #6]  @ movhi
69802   tst r3, #255
69803   ldrneh  r7, [r5, #4]
69804   mov r3, r2, lsr #16
69805   strneh  r7, [r1, #4]  @ movhi
69806   tst r3, #255
69807   ldrneh  lr, [r5, #2]
69808   strneh  lr, [r1, #2]  @ movhi
69809   movs  r2, r2, lsr #24
69810   ldrneh  r0, [r5, #0]
69811   strneh  r0, [r1, #0]  @ movhi
69812 .L22129:
69813   subs  ip, ip, #4
69814   ldr r2, [r8, #0]
69815   addne r1, r1, #8
69816   addne r5, r5, #8
69817   beq .L21367
69818 .L22139:
69819   mov r3, #0
69820 .L22140:
69821   movs  r4, r2, lsr #24
69822   mov r0, r3, asl #1
69823   ldrneh  r6, [r0, r5]
69824   add r3, r3, #1
69825   strneh  r6, [r0, r1]  @ movhi
69826   cmp ip, r3
69827   mov r2, r2, asl #8
69828   bhi .L22140
69829   b .L21367
69830 .L22202:
69831   rsb r8, r9, ip
69832   cmp r8, #0
69833   ble .L21367
69834   ldr lr, [sp, #8]
69835   movs  r3, r8, lsr #3
69836   add r1, lr, r9, asl #1
69837   beq .L21679
69838   mov lr, r5
69839   mov ip, r1
69840   mov r6, r0
69841   mov r7, #0
69842 .L21681:
69843   ldr r2, [r6, #0]
69844   cmp r2, #0
69845   beq .L21682
69846   tst r2, #15
69847   ldrneh  r4, [lr, #14]
69848   strneh  r4, [ip, #14] @ movhi
69849   tst r2, #240
69850   ldrneh  r4, [lr, #12]
69851   strneh  r4, [ip, #12] @ movhi
69852   tst r2, #3840
69853   ldrneh  r4, [lr, #10]
69854   strneh  r4, [ip, #10] @ movhi
69855   tst r2, #61440
69856   ldrneh  r4, [lr, #8]
69857   strneh  r4, [ip, #8]  @ movhi
69858   tst r2, #983040
69859   ldrneh  r4, [lr, #6]
69860   strneh  r4, [ip, #6]  @ movhi
69861   tst r2, #15728640
69862   ldrneh  r4, [lr, #4]
69863   strneh  r4, [ip, #4]  @ movhi
69864   tst r2, #251658240
69865   ldrneh  r4, [lr, #2]
69866   strneh  r4, [ip, #2]  @ movhi
69867   movs  r2, r2, lsr #28
69868   ldrneh  r2, [lr, #0]
69869   strneh  r2, [ip, #0]  @ movhi
69870 .L21682:
69871   add r7, r7, #1
69872   cmp r7, r3
69873   sub r6, r6, #32
69874   add ip, ip, #16
69875   add lr, lr, #16
69876   bne .L21681
69877   rsb r2, r3, r3, asl #27
69878   mov r3, r3, asl #4
69879   add r1, r1, r3
69880   add r0, r0, r2, asl #5
69881   add r5, r5, r3
69882 .L21679:
69883   ands  ip, r8, #7
69884   beq .L21367
69885   ldr r0, [r0, #0]
69886   mov r2, #0
69887 .L21701:
69888   movs  r3, r0, lsr #28
69889   mov r3, r2, asl #1
69890   ldrneh  r4, [r3, r5]
69891   add r2, r2, #1
69892   strneh  r4, [r3, r1]  @ movhi
69893   cmp r2, ip
69894   mov r0, r0, asl #4
69895   bne .L21701
69896   b .L21367
69897 .L22204:
69898   rsb r8, r9, r2
69899   cmp r8, #0
69900   ble .L21367
69901   ldr r3, [sp, #8]
69902   movs  r7, r8, lsr #3
69903   add r1, r3, r9, asl #1
69904   beq .L21549
69905   mov lr, r5
69906   mov ip, r1
69907   mov r6, r0
69908   mov r2, #0
69909 .L21551:
69910   ldr r3, [r6, #0]
69911   cmp r3, #0
69912   beq .L21552
69913   tst r3, #15
69914   ldrneh  r4, [lr, #0]
69915   strneh  r4, [ip, #0]  @ movhi
69916   tst r3, #240
69917   ldrneh  r4, [lr, #2]
69918   strneh  r4, [ip, #2]  @ movhi
69919   tst r3, #3840
69920   ldrneh  r4, [lr, #4]
69921   strneh  r4, [ip, #4]  @ movhi
69922   tst r3, #61440
69923   ldrneh  r4, [lr, #6]
69924   strneh  r4, [ip, #6]  @ movhi
69925   tst r3, #983040
69926   ldrneh  r4, [lr, #8]
69927   strneh  r4, [ip, #8]  @ movhi
69928   tst r3, #15728640
69929   ldrneh  r4, [lr, #10]
69930   strneh  r4, [ip, #10] @ movhi
69931   tst r3, #251658240
69932   ldrneh  r4, [lr, #12]
69933   strneh  r4, [ip, #12] @ movhi
69934   movs  r3, r3, lsr #28
69935   ldrneh  r3, [lr, #14]
69936   strneh  r3, [ip, #14] @ movhi
69937 .L21552:
69938   add r2, r2, #1
69939   cmp r2, r7
69940   add r6, r6, #32
69941   add ip, ip, #16
69942   add lr, lr, #16
69943   bne .L21551
69944   mov r3, r7, asl #4
69945   add r1, r1, r3
69946   add r0, r0, r7, asl #5
69947   add r5, r5, r3
69948 .L21549:
69949   ands  ip, r8, #7
69950   beq .L21367
69951   ldr r0, [r0, #0]
69952   mov r2, #0
69953 .L21571:
69954   tst r0, #15
69955   mov r3, r2, asl #1
69956   ldrneh  r4, [r3, r5]
69957   add r2, r2, #1
69958   strneh  r4, [r3, r1]  @ movhi
69959   cmp r2, ip
69960   mov r0, r0, lsr #4
69961   bne .L21571
69962   b .L21367
69963 .L22200:
69964   rsb fp, r9, lr
69965   cmp fp, #0
69966   ble .L21367
69967   ldr r3, [sp, #8]
69968   movs  sl, fp, lsr #3
69969   add r1, r3, r9, asl #1
69970   beq .L21884
69971   ldr r3, .L22220+48
69972   mov r6, r5
69973   add r0, r0, r3
69974   mov lr, r1
69975   mov r7, r2
69976   mov r8, #0
69977 .L21886:
69978   ldr ip, [r7, #0]
69979   cmp ip, #0
69980   beq .L21887
69981   tst ip, #255
69982   ldrneh  r4, [r6, #0]
69983   mov r3, ip, lsr #8
69984   strneh  r4, [lr, #0]  @ movhi
69985   tst r3, #255
69986   ldrneh  r3, [r6, #2]
69987   strneh  r3, [lr, #2]  @ movhi
69988   mov r3, ip, lsr #16
69989   tst r3, #255
69990   ldrneh  r4, [r6, #4]
69991   strneh  r4, [lr, #4]  @ movhi
69992   movs  ip, ip, lsr #24
69993   ldrneh  ip, [r6, #6]
69994   strneh  ip, [lr, #6]  @ movhi
69995 .L21887:
69996   ldr ip, [r0, #-60]
69997   cmp ip, #0
69998   beq .L21896
69999   tst ip, #255
70000   ldrneh  r3, [r6, #8]
70001   strneh  r3, [lr, #8]  @ movhi
70002   mov r3, ip, lsr #8
70003   tst r3, #255
70004   ldrneh  r4, [r6, #10]
70005   mov r3, ip, lsr #16
70006   strneh  r4, [lr, #10] @ movhi
70007   tst r3, #255
70008   ldrneh  r3, [r6, #12]
70009   strneh  r3, [lr, #12] @ movhi
70010   movs  ip, ip, lsr #24
70011   ldrneh  r4, [r6, #14]
70012   strneh  r4, [lr, #14] @ movhi
70013 .L21896:
70014   add r8, r8, #1
70015   cmp r8, sl
70016   add r7, r7, #64
70017   add lr, lr, #16
70018   add r6, r6, #16
70019   add r0, r0, #64
70020   bne .L21886
70021   mov r3, sl, asl #4
70022   add r1, r1, r3
70023   add r2, r2, sl, asl #6
70024   add r5, r5, r3
70025 .L21884:
70026   ands  ip, fp, #7
70027   beq .L21367
70028   cmp ip, #3
70029   ldrls r3, [r2, #0]
70030   bls .L21919
70031   ldr r0, [r2, #0]
70032   cmp r0, #0
70033   beq .L21909
70034   tst r0, #255
70035   ldrneh  r6, [r5, #0]
70036   mov r3, r0, lsr #8
70037   strneh  r6, [r1, #0]  @ movhi
70038   tst r3, #255
70039   ldrneh  r7, [r5, #2]
70040   mov r3, r0, lsr #16
70041   strneh  r7, [r1, #2]  @ movhi
70042   tst r3, #255
70043   ldrneh  lr, [r5, #4]
70044   strneh  lr, [r1, #4]  @ movhi
70045   movs  r0, r0, lsr #24
70046   ldrneh  r0, [r5, #6]
70047   strneh  r0, [r1, #6]  @ movhi
70048 .L21909:
70049   subs  ip, ip, #4
70050   ldr r3, [r2, #4]
70051   addne r1, r1, #8
70052   addne r5, r5, #8
70053   beq .L21367
70054 .L21919:
70055   mov r2, #0
70056 .L21920:
70057   tst r3, #255
70058   mov r0, r2, asl #1
70059   ldrneh  r4, [r0, r5]
70060   add r2, r2, #1
70061   strneh  r4, [r0, r1]  @ movhi
70062   cmp ip, r2
70063   mov r3, r3, lsr #8
70064   bhi .L21920
70065   b .L21367
70066 .L21468:
70067   mov r3, ip, lsr #3
70068   mov r1, r3, asl #5
70069   ands  r3, ip, #7
70070   ldreq r3, [sp, #88]
70071   add ip, r0, r1
70072   bne .L22208
70073 .L21517:
70074   movs  r0, lr, lsr #3
70075   beq .L21367
70076   mov r1, #0
70077   b .L21527
70078 .L22209:
70079   add ip, ip, #32
70080   add r3, r3, #16
70081   add r5, r5, #16
70082 .L21527:
70083   ldr r2, [ip, #0]
70084   cmp r2, #0
70085   beq .L21528
70086   tst r2, #15
70087   ldrneh  r4, [r5, #0]
70088   strneh  r4, [r3, #0]  @ movhi
70089   tst r2, #240
70090   ldrneh  r6, [r5, #2]
70091   strneh  r6, [r3, #2]  @ movhi
70092   tst r2, #3840
70093   ldrneh  r7, [r5, #4]
70094   strneh  r7, [r3, #4]  @ movhi
70095   tst r2, #61440
70096   ldrneh  lr, [r5, #6]
70097   strneh  lr, [r3, #6]  @ movhi
70098   tst r2, #983040
70099   ldrneh  r4, [r5, #8]
70100   strneh  r4, [r3, #8]  @ movhi
70101   tst r2, #15728640
70102   ldrneh  r6, [r5, #10]
70103   strneh  r6, [r3, #10] @ movhi
70104   tst r2, #251658240
70105   ldrneh  r7, [r5, #12]
70106   strneh  r7, [r3, #12] @ movhi
70107   movs  r2, r2, lsr #28
70108   ldrneh  lr, [r5, #14]
70109   strneh  lr, [r3, #14] @ movhi
70110 .L21528:
70111   add r1, r1, #1
70112   cmp r1, r0
70113   bne .L22209
70114   b .L21367
70115 .L21728:
70116   ands  r1, r0, #7
70117   mov r3, r0, lsr #3
70118   add r0, r2, r3, asl #6
70119   ldreq r1, [sp, #88]
70120   bne .L22210
70121 .L21832:
70122   movs  lr, lr, lsr #3
70123   beq .L21367
70124   mov ip, #0
70125   b .L21861
70126 .L22211:
70127   add r0, r0, #64
70128   add r1, r1, #16
70129   add r5, r5, #16
70130 .L21861:
70131   ldr r2, [r0, #0]
70132   cmp r2, #0
70133   beq .L21862
70134   tst r2, #255
70135   ldrneh  r3, [r5, #0]
70136   strneh  r3, [r1, #0]  @ movhi
70137   mov r3, r2, lsr #8
70138   tst r3, #255
70139   ldrneh  r4, [r5, #2]
70140   mov r3, r2, lsr #16
70141   strneh  r4, [r1, #2]  @ movhi
70142   tst r3, #255
70143   ldrneh  r6, [r5, #4]
70144   strneh  r6, [r1, #4]  @ movhi
70145   movs  r2, r2, lsr #24
70146   ldrneh  r7, [r5, #6]
70147   strneh  r7, [r1, #6]  @ movhi
70148 .L21862:
70149   ldr r2, [r0, #4]
70150   cmp r2, #0
70151   beq .L21871
70152   tst r2, #255
70153   ldrneh  r3, [r5, #8]
70154   strneh  r3, [r1, #8]  @ movhi
70155   mov r3, r2, lsr #8
70156   tst r3, #255
70157   ldrneh  r4, [r5, #10]
70158   mov r3, r2, lsr #16
70159   strneh  r4, [r1, #10] @ movhi
70160   tst r3, #255
70161   ldrneh  r6, [r5, #12]
70162   strneh  r6, [r1, #12] @ movhi
70163   movs  r2, r2, lsr #24
70164   ldrneh  r7, [r5, #14]
70165   strneh  r7, [r1, #14] @ movhi
70166 .L21871:
70167   add ip, ip, #1
70168   cmp ip, lr
70169   bne .L22211
70170   b .L21367
70171 .L21948:
70172   ands  r2, r0, #7
70173   mov r3, r0, lsr #3
70174   sub r0, r8, r3, asl #6
70175   ldreq r1, [sp, #88]
70176   bne .L22212
70177 .L22052:
70178   movs  lr, lr, lsr #3
70179   beq .L21367
70180   mov ip, #0
70181   b .L22081
70182 .L22213:
70183   sub r0, r0, #64
70184   add r1, r1, #16
70185   add r5, r5, #16
70186 .L22081:
70187   ldr r2, [r0, #4]
70188   cmp r2, #0
70189   beq .L22082
70190   tst r2, #255
70191   ldrneh  r3, [r5, #6]
70192   strneh  r3, [r1, #6]  @ movhi
70193   mov r3, r2, lsr #8
70194   tst r3, #255
70195   ldrneh  r4, [r5, #4]
70196   mov r3, r2, lsr #16
70197   strneh  r4, [r1, #4]  @ movhi
70198   tst r3, #255
70199   ldrneh  r6, [r5, #2]
70200   strneh  r6, [r1, #2]  @ movhi
70201   movs  r2, r2, lsr #24
70202   ldrneh  r7, [r5, #0]
70203   strneh  r7, [r1, #0]  @ movhi
70204 .L22082:
70205   ldr r2, [r0, #0]
70206   cmp r2, #0
70207   beq .L22091
70208   tst r2, #255
70209   ldrneh  r3, [r5, #14]
70210   strneh  r3, [r1, #14] @ movhi
70211   mov r3, r2, lsr #8
70212   tst r3, #255
70213   ldrneh  r4, [r5, #12]
70214   mov r3, r2, lsr #16
70215   strneh  r4, [r1, #12] @ movhi
70216   tst r3, #255
70217   ldrneh  r6, [r5, #10]
70218   strneh  r6, [r1, #10] @ movhi
70219   movs  r2, r2, lsr #24
70220   ldrneh  r7, [r5, #8]
70221   strneh  r7, [r1, #8]  @ movhi
70222 .L22091:
70223   add ip, ip, #1
70224   cmp ip, lr
70225   bne .L22213
70226   b .L21367
70227 .L21598:
70228   mov r3, ip, lsr #3
70229   ands  r2, ip, #7
70230   sub r0, r0, r3, asl #5
70231   ldreq r3, [sp, #88]
70232   bne .L22214
70233 .L21647:
70234   movs  r1, r1, lsr #3
70235   beq .L21367
70236   mov r2, #0
70237   b .L21657
70238 .L22215:
70239   sub r0, r0, #32
70240   add r3, r3, #16
70241   add r5, r5, #16
70242 .L21657:
70243   ldr ip, [r0, #0]
70244   cmp ip, #0
70245   beq .L21658
70246   tst ip, #15
70247   ldrneh  r7, [r5, #14]
70248   strneh  r7, [r3, #14] @ movhi
70249   tst ip, #240
70250   ldrneh  lr, [r5, #12]
70251   strneh  lr, [r3, #12] @ movhi
70252   tst ip, #3840
70253   ldrneh  r4, [r5, #10]
70254   strneh  r4, [r3, #10] @ movhi
70255   tst ip, #61440
70256   ldrneh  r6, [r5, #8]
70257   strneh  r6, [r3, #8]  @ movhi
70258   tst ip, #983040
70259   ldrneh  r7, [r5, #6]
70260   strneh  r7, [r3, #6]  @ movhi
70261   tst ip, #15728640
70262   ldrneh  lr, [r5, #4]
70263   strneh  lr, [r3, #4]  @ movhi
70264   tst ip, #251658240
70265   ldrneh  r4, [r5, #2]
70266   strneh  r4, [r3, #2]  @ movhi
70267   movs  ip, ip, lsr #28
70268   ldrneh  r6, [r5, #0]
70269   strneh  r6, [r3, #0]  @ movhi
70270 .L21658:
70271   add r2, r2, #1
70272   cmp r2, r1
70273   bne .L22215
70274   b .L21367
70275 .L22214:
70276   rsbs  r6, r2, #8
70277   ldr ip, [r0, #0]
70278   ldreq r3, [sp, #88]
70279   beq .L21650
70280   mov r3, r2, asl #2
70281   mov r3, ip, asl r3
70282   mov lr, #0
70283 .L21651:
70284   movs  r7, r3, lsr #28
70285   mov ip, lr, asl #1
70286   ldrneh  r4, [ip, r5]
70287   ldrne r2, [sp, #88]
70288   add lr, lr, #1
70289   strneh  r4, [ip, r2]  @ movhi
70290   cmp lr, r6
70291   mov r3, r3, asl #4
70292   bne .L21651
70293   mov r3, r6, asl #1
70294   ldr r6, [sp, #88]
70295   add r5, r5, r3
70296   add r3, r6, r3
70297 .L21650:
70298   sub r0, r0, #32
70299   b .L21647
70300 .L22212:
70301   cmp r2, #3
70302   rsb ip, r2, #8
70303   bls .L22053
70304   cmp ip, #0
70305   ldr r1, [r0, #0]
70306   ldreq r1, [sp, #88]
70307   beq .L22057
70308   mov r3, r2, asl #3
70309   sub r3, r3, #32
70310   mov r3, r1, asl r3
70311   mov r1, #0
70312 .L22058:
70313   movs  r6, r3, lsr #24
70314   mov r2, r1, asl #1
70315   ldrneh  r4, [r2, r5]
70316   ldrne r7, [sp, #88]
70317   add r1, r1, #1
70318   strneh  r4, [r2, r7]  @ movhi
70319   cmp r1, ip
70320   mov r3, r3, asl #8
70321   bne .L22058
70322   ldr r6, [sp, #88]
70323   mov r3, ip, asl #1
70324   add r5, r5, r3
70325   add r1, r6, r3
70326 .L22057:
70327   sub r0, r0, #64
70328   b .L22052
70329 .L22210:
70330   cmp r1, #3
70331   rsb ip, r1, #8
70332   bls .L21833
70333   cmp ip, #0
70334   ldr r2, [r0, #4]
70335   ldreq r1, [sp, #88]
70336   beq .L21837
70337   mov r3, r1, asl #3
70338   sub r3, r3, #32
70339   mov r3, r2, lsr r3
70340   mov r1, #0
70341 .L21838:
70342   tst r3, #255
70343   mov r2, r1, asl #1
70344   ldrneh  r7, [r2, r5]
70345   ldrne r6, [sp, #88]
70346   add r1, r1, #1
70347   strneh  r7, [r2, r6]  @ movhi
70348   cmp ip, r1
70349   mov r3, r3, lsr #8
70350   bne .L21838
70351   mov r3, ip, asl #1
70352   ldr ip, [sp, #88]
70353   add r5, r5, r3
70354   add r1, ip, r3
70355 .L21837:
70356   add r0, r0, #64
70357   b .L21832
70358 .L22208:
70359   rsbs  r6, r3, #8
70360   ldr r0, [r0, r1]
70361   ldreq r3, [sp, #88]
70362   beq .L21520
70363   mov r3, r3, asl #2
70364   mov r0, r0, lsr r3
70365   mov r2, #0
70366 .L21521:
70367   tst r0, #15
70368   mov r3, r2, asl #1
70369   ldrneh  r1, [r3, r5]
70370   ldrne r7, [sp, #88]
70371   add r2, r2, #1
70372   strneh  r1, [r3, r7]  @ movhi
70373   cmp r6, r2
70374   mov r0, r0, lsr #4
70375   bne .L21521
70376   ldr r2, [sp, #88]
70377   mov r3, r6, asl #1
70378   add r5, r5, r3
70379   add r3, r2, r3
70380 .L21520:
70381   add ip, ip, #32
70382   b .L21517
70383 .L21950:
70384   ldr lr, [sp, #108]
70385   rsb r0, ip, #8
70386   cmp lr, r0
70387   bge .L21953
70388   cmp lr, #0
70389   ble .L21367
70390   cmp ip, #3
70391   bls .L21956
70392   ldr r2, [sl, #0]
70393   mov r3, ip, asl #3
70394   sub r3, r3, #32
70395   mov r2, r2, asl r3
70396   mov r1, #0
70397 .L21959:
70398   movs  r0, r2, lsr #24
70399   mov r3, r1, asl #1
70400   ldrneh  r6, [r3, r5]
70401   ldrne r4, [sp, #88]
70402   ldr r7, [sp, #108]
70403   add r1, r1, #1
70404   strneh  r6, [r3, r4]  @ movhi
70405   cmp r7, r1
70406   mov r2, r2, asl #8
70407   bne .L21959
70408   b .L21367
70409 .L21730:
70410   ldr r6, [sp, #108]
70411   rsb r0, ip, #8
70412   cmp r6, r0
70413   bge .L21733
70414   cmp r6, #0
70415   ble .L21367
70416   cmp ip, #3
70417   bls .L21736
70418   ldr r2, [sl, #4]
70419   mov r3, ip, asl #3
70420   sub r3, r3, #32
70421   mov r1, r2, lsr r3
70422   mov r2, #0
70423 .L21739:
70424   tst r1, #255
70425   mov r3, r2, asl #1
70426   ldrneh  ip, [r3, r5]
70427   ldrne r7, [sp, #88]
70428   ldr lr, [sp, #108]
70429   add r2, r2, #1
70430   strneh  ip, [r3, r7]  @ movhi
70431   cmp lr, r2
70432   mov r1, r1, lsr #8
70433   bne .L21739
70434   b .L21367
70435 .L21470:
70436   ldr r4, [sp, #108]
70437   rsb ip, r3, #8
70438   cmp r4, ip
70439   bge .L21473
70440   cmp r4, #0
70441   ble .L21367
70442   ldr r2, [r0, r1]
70443   mov r3, r3, asl #2
70444   mov r0, r2, lsr r3
70445   mov r2, #0
70446 .L21477:
70447   tst r0, #15
70448   mov r3, r2, asl #1
70449   ldrneh  r7, [r3, r5]
70450   ldrne r6, [sp, #88]
70451   ldr ip, [sp, #108]
70452   add r2, r2, #1
70453   strneh  r7, [r3, r6]  @ movhi
70454   cmp ip, r2
70455   mov r0, r0, lsr #4
70456   bne .L21477
70457   b .L21367
70458 .L21600:
70459   ldr r3, [sp, #108]
70460   rsb lr, r6, #8
70461   cmp r3, lr
70462   bge .L21603
70463   cmp r3, #0
70464   ble .L21367
70465   ldr r2, [r0, #0]
70466   mov r3, r6, asl #2
70467   mov r0, r2, asl r3
70468   mov r2, #0
70469 .L21607:
70470   movs  r4, r0, lsr #28
70471   mov r3, r2, asl #1
70472   ldrneh  r7, [r3, r5]
70473   ldrne r6, [sp, #88]
70474   ldr ip, [sp, #108]
70475   add r2, r2, #1
70476   strneh  r7, [r3, r6]  @ movhi
70477   cmp ip, r2
70478   mov r0, r0, asl #4
70479   bne .L21607
70480   b .L21367
70481 .L22053:
70482   subs  r6, ip, #4
70483   ldr r1, [r0, #4]
70484   ldreq r1, [sp, #88]
70485   beq .L22065
70486   mov r3, r2, asl #3
70487   sub r3, r3, #32
70488   mov r3, r1, asl r3
70489   mov r1, #0
70490 .L22066:
70491   movs  r7, r3, lsr #24
70492   mov r2, r1, asl #1
70493   ldrneh  r7, [r2, r5]
70494   ldrne r4, [sp, #88]
70495   add r1, r1, #1
70496   strneh  r7, [r2, r4]  @ movhi
70497   cmp r1, r6
70498   mov r3, r3, asl #8
70499   bne .L22066
70500   mov r3, ip, asl #1
70501   ldr ip, [sp, #88]
70502   add r2, r5, r3
70503   add r3, ip, r3
70504   sub r5, r2, #8
70505   sub r1, r3, #8
70506 .L22065:
70507   ldr r2, [r0, #0]
70508   cmp r2, #0
70509   beq .L22071
70510   tst r2, #255
70511   ldrneh  r3, [r5, #6]
70512   strneh  r3, [r1, #6]  @ movhi
70513   mov r3, r2, lsr #8
70514   tst r3, #255
70515   ldrneh  r4, [r5, #4]
70516   mov r3, r2, lsr #16
70517   strneh  r4, [r1, #4]  @ movhi
70518   tst r3, #255
70519   ldrneh  r6, [r5, #2]
70520   strneh  r6, [r1, #2]  @ movhi
70521   movs  r2, r2, lsr #24
70522   ldrneh  r7, [r5, #0]
70523   strneh  r7, [r1, #0]  @ movhi
70524 .L22071:
70525   add r1, r1, #8
70526   add r5, r5, #8
70527   sub r0, r0, #64
70528   b .L22052
70529 .L21833:
70530   subs  r6, ip, #4
70531   ldr r2, [r0, #0]
70532   ldreq r1, [sp, #88]
70533   beq .L21845
70534   mov r3, r1, asl #3
70535   mov r3, r2, lsr r3
70536   mov r1, #0
70537 .L21846:
70538   tst r3, #255
70539   mov r2, r1, asl #1
70540   ldrneh  r7, [r2, r5]
70541   ldrne r4, [sp, #88]
70542   add r1, r1, #1
70543   strneh  r7, [r2, r4]  @ movhi
70544   cmp r1, r6
70545   mov r3, r3, lsr #8
70546   bne .L21846
70547   mov r3, ip, asl #1
70548   ldr ip, [sp, #88]
70549   add r2, r5, r3
70550   add r3, ip, r3
70551   sub r5, r2, #8
70552   sub r1, r3, #8
70553 .L21845:
70554   ldr r2, [r0, #4]
70555   cmp r2, #0
70556   beq .L21851
70557   tst r2, #255
70558   ldrneh  r3, [r5, #0]
70559   strneh  r3, [r1, #0]  @ movhi
70560   mov r3, r2, lsr #8
70561   tst r3, #255
70562   ldrneh  r4, [r5, #2]
70563   mov r3, r2, lsr #16
70564   strneh  r4, [r1, #2]  @ movhi
70565   tst r3, #255
70566   ldrneh  r6, [r5, #4]
70567   strneh  r6, [r1, #4]  @ movhi
70568   movs  r2, r2, lsr #24
70569   ldrneh  r7, [r5, #6]
70570   strneh  r7, [r1, #6]  @ movhi
70571 .L21851:
70572   add r1, r1, #8
70573   add r5, r5, #8
70574   add r0, r0, #64
70575   b .L21832
70576 .L21733:
70577   cmp ip, #3
70578   bls .L21763
70579   cmp r0, #0
70580   ldr r2, [sl, #4]
70581   ldreq r7, [sp, #88]
70582   beq .L21767
70583   mov r3, ip, asl #3
70584   sub r3, r3, #32
70585   mov r1, r2, lsr r3
70586   mov r2, #0
70587 .L21768:
70588   tst r1, #255
70589   mov r3, r2, asl #1
70590   ldrneh  r4, [r3, r5]
70591   ldrne lr, [sp, #88]
70592   add r2, r2, #1
70593   strneh  r4, [r3, lr]  @ movhi
70594   cmp r0, r2
70595   mov r1, r1, lsr #8
70596   bne .L21768
70597   ldr r6, [sp, #88]
70598   mov r3, r0, asl #1
70599   add r5, r5, r3
70600   add r7, r3, r6
70601 .L21767:
70602   ldr ip, [sp, #108]
70603   add sl, sl, #64
70604   rsb r8, r0, ip
70605   b .L21732
70606 .L21473:
70607   cmp ip, #0
70608   ldr r2, [r6, #0]
70609   ldreq r7, [sp, #88]
70610   beq .L21483
70611   mov r3, r3, asl #2
70612   mov r3, r2, lsr r3
70613   mov r1, #0
70614 .L21484:
70615   tst r3, #15
70616   mov r2, r1, asl #1
70617   ldrneh  r0, [r2, r5]
70618   ldrne lr, [sp, #88]
70619   add r1, r1, #1
70620   strneh  r0, [r2, lr]  @ movhi
70621   cmp ip, r1
70622   mov r3, r3, lsr #4
70623   bne .L21484
70624   ldr r1, [sp, #88]
70625   mov r3, ip, asl #1
70626   add r5, r5, r3
70627   add r7, r3, r1
70628 .L21483:
70629   ldr r2, [sp, #108]
70630   add r6, r6, #32
70631   rsb r8, ip, r2
70632   b .L21472
70633 .L21603:
70634   cmp lr, #0
70635   ldr r2, [r0, #0]
70636   ldreq r1, [sp, #88]
70637   beq .L21613
70638   mov r3, r6, asl #2
70639   mov r3, r2, asl r3
70640   mov ip, #0
70641 .L21614:
70642   movs  r1, r3, lsr #28
70643   mov r2, ip, asl #1
70644   ldrneh  r6, [r2, r5]
70645   ldrne r4, [sp, #88]
70646   add ip, ip, #1
70647   strneh  r6, [r2, r4]  @ movhi
70648   cmp lr, ip
70649   mov r3, r3, asl #4
70650   bne .L21614
70651   ldr r7, [sp, #88]
70652   mov r3, lr, asl #1
70653   add r5, r5, r3
70654   add r1, r3, r7
70655 .L21613:
70656   ldr ip, [sp, #108]
70657   sub r0, r0, #32
70658   rsb r8, lr, ip
70659   b .L21602
70660 .L21953:
70661   cmp ip, #3
70662   bls .L21983
70663   cmp r0, #0
70664   ldr r2, [sl, #0]
70665   ldreq r7, [sp, #88]
70666   beq .L21987
70667   mov r3, ip, asl #3
70668   sub r3, r3, #32
70669   mov r3, r2, asl r3
70670   mov r1, #0
70671 .L21988:
70672   movs  r2, r3, lsr #24
70673   mov r2, r1, asl #1
70674   ldrneh  r6, [r2, r5]
70675   ldrne r4, [sp, #88]
70676   add r1, r1, #1
70677   strneh  r6, [r2, r4]  @ movhi
70678   cmp r0, r1
70679   mov r3, r3, asl #8
70680   bne .L21988
70681   ldr ip, [sp, #88]
70682   mov r3, r0, asl #1
70683   add r5, r5, r3
70684   add r7, ip, r3
70685 .L21987:
70686   ldr r6, [sp, #108]
70687   sub sl, sl, #64
70688   rsb r8, r0, r6
70689   b .L21952
70690 .L22217:
70691   mov r1, r8
70692   b .L22184
70693 .L22216:
70694   mov lr, r8
70695   b .L22182
70696 .L21983:
70697   subs  lr, r0, #4
70698   ldr r2, [sl, #4]
70699   ldreq r1, [sp, #88]
70700   beq .L21995
70701   mov r3, ip, asl #3
70702   sub r3, r3, #32
70703   mov r3, r2, asl r3
70704   mov r1, #0
70705 .L21996:
70706   movs  r2, r3, lsr #24
70707   mov r2, r1, asl #1
70708   ldrneh  r6, [r2, r5]
70709   ldrne r4, [sp, #88]
70710   add r1, r1, #1
70711   strneh  r6, [r2, r4]  @ movhi
70712   cmp r1, lr
70713   mov r3, r3, asl #8
70714   bne .L21996
70715   ldr r7, [sp, #88]
70716   mov r3, r0, asl #1
70717   add r2, r5, r3
70718   add r3, r7, r3
70719   sub r5, r2, #8
70720   sub r1, r3, #8
70721 .L21995:
70722   ldr r2, [sl, #0]
70723   cmp r2, #0
70724   beq .L22001
70725   tst r2, #255
70726   ldrneh  ip, [r5, #6]
70727   mov r3, r2, lsr #8
70728   strneh  ip, [r1, #6]  @ movhi
70729   tst r3, #255
70730   ldrneh  lr, [r5, #4]
70731   mov r3, r2, lsr #16
70732   strneh  lr, [r1, #4]  @ movhi
70733   tst r3, #255
70734   ldrneh  r3, [r5, #2]
70735   strneh  r3, [r1, #2]  @ movhi
70736   movs  r2, r2, lsr #24
70737   ldrneh  r4, [r5, #0]
70738   strneh  r4, [r1, #0]  @ movhi
70739 .L22001:
70740   add r7, r1, #8
70741   add r5, r5, #8
70742   b .L21987
70743 .L21763:
70744   subs  lr, r0, #4
70745   ldr r2, [sl, #0]
70746   ldreq r1, [sp, #88]
70747   beq .L21775
70748   mov r3, ip, asl #3
70749   mov r1, r2, lsr r3
70750   mov r2, #0
70751 .L21776:
70752   tst r1, #255
70753   mov r3, r2, asl #1
70754   ldrneh  ip, [r3, r5]
70755   ldrne r7, [sp, #88]
70756   add r2, r2, #1
70757   strneh  ip, [r3, r7]  @ movhi
70758   cmp r2, lr
70759   mov r1, r1, lsr #8
70760   bne .L21776
70761   ldr lr, [sp, #88]
70762   mov r3, r0, asl #1
70763   add r2, r5, r3
70764   add r3, lr, r3
70765   sub r5, r2, #8
70766   sub r1, r3, #8
70767 .L21775:
70768   ldr r2, [sl, #4]
70769   cmp r2, #0
70770   beq .L21781
70771   tst r2, #255
70772   ldrneh  r3, [r5, #0]
70773   strneh  r3, [r1, #0]  @ movhi
70774   mov r3, r2, lsr #8
70775   tst r3, #255
70776   ldrneh  r4, [r5, #2]
70777   mov r3, r2, lsr #16
70778   strneh  r4, [r1, #2]  @ movhi
70779   tst r3, #255
70780   ldrneh  r6, [r5, #4]
70781   strneh  r6, [r1, #4]  @ movhi
70782   movs  r2, r2, lsr #24
70783   ldrneh  r7, [r5, #6]
70784   strneh  r7, [r1, #6]  @ movhi
70785 .L21781:
70786   add r7, r1, #8
70787   add r5, r5, #8
70788   b .L21767
70789 .L21956:
70790   ldr lr, [sp, #108]
70791   mov r3, ip, asl #3
70792   ldr r1, [sl, #4]
70793   add r2, lr, ip
70794   sub r3, r3, #32
70795   cmp r2, #4
70796   mov r1, r1, asl r3
70797   bhi .L21963
70798   cmp lr, #0
70799   movne r2, #0
70800   beq .L21367
70801 .L21979:
70802   movs  r6, r1, lsr #24
70803   mov r3, r2, asl #1
70804   ldrneh  ip, [r3, r5]
70805   ldrne r7, [sp, #88]
70806   ldr lr, [sp, #108]
70807   add r2, r2, #1
70808   strneh  ip, [r3, r7]  @ movhi
70809   cmp lr, r2
70810   mov r1, r1, asl #8
70811   bne .L21979
70812   b .L21367
70813 .L21736:
70814   ldr r0, [sp, #108]
70815   ldr r3, [sl, #0]
70816   add r2, r0, ip
70817   mov r1, ip, asl #3
70818   cmp r2, #4
70819   mov r3, r3, lsr r1
70820   bhi .L21743
70821   cmp r0, #0
70822   movne r1, #0
70823   beq .L21367
70824 .L21759:
70825   tst r3, #255
70826   mov r2, r1, asl #1
70827   ldrneh  r7, [r2, r5]
70828   ldrne r6, [sp, #88]
70829   ldr ip, [sp, #108]
70830   add r1, r1, #1
70831   strneh  r7, [r2, r6]  @ movhi
70832   cmp ip, r1
70833   mov r3, r3, lsr #8
70834   bne .L21759
70835   b .L21367
70836 .L21963:
70837   rsbs  r2, ip, #4
70838   ldreq r3, [sp, #88]
70839   beq .L21968
70840   mov r0, #0
70841 .L21969:
70842   movs  r3, r1, lsr #24
70843   mov r3, r0, asl #1
70844   ldrneh  r6, [r3, r5]
70845   ldrne r4, [sp, #88]
70846   add r0, r0, #1
70847   strneh  r6, [r3, r4]  @ movhi
70848   cmp r0, r2
70849   mov r1, r1, asl #8
70850   bne .L21969
70851   ldr r7, [sp, #88]
70852   mov r3, r2, asl #1
70853   add r5, r5, r3
70854   add r3, r3, r7
70855 .L21968:
70856   ldr lr, [sp, #108]
70857   subs  ip, lr, r2
70858   ldr r2, [sl, #0]
70859   beq .L21367
70860   mov r0, #0
70861 .L21975:
70862   movs  r1, r2, lsr #24
70863   mov r1, r0, asl #1
70864   ldrneh  r4, [r1, r5]
70865   add r0, r0, #1
70866   strneh  r4, [r1, r3]  @ movhi
70867   cmp r0, ip
70868   mov r2, r2, asl #8
70869   bne .L21975
70870   b .L21367
70871 .L21743:
70872   rsbs  r1, ip, #4
70873   ldreq ip, [sp, #88]
70874   beq .L21748
70875   mov r0, #0
70876 .L21749:
70877   tst r3, #255
70878   mov r2, r0, asl #1
70879   ldrneh  r6, [r2, r5]
70880   ldrne r4, [sp, #88]
70881   add r0, r0, #1
70882   strneh  r6, [r2, r4]  @ movhi
70883   cmp r0, r1
70884   mov r3, r3, lsr #8
70885   bne .L21749
70886   ldr r7, [sp, #88]
70887   mov r3, r1, asl #1
70888   add r5, r5, r3
70889   add ip, r3, r7
70890 .L21748:
70891   ldr lr, [sp, #108]
70892   ldr r3, [sl, #4]
70893   subs  r0, lr, r1
70894   beq .L21367
70895   mov r1, #0
70896 .L21755:
70897   tst r3, #255
70898   mov r2, r1, asl #1
70899   ldrneh  r4, [r2, r5]
70900   add r1, r1, #1
70901   strneh  r4, [r2, ip]  @ movhi
70902   cmp r1, r0
70903   mov r3, r3, lsr #8
70904   bne .L21755
70905   b .L21367
70906   .size render_scanline_obj_copy_bitmap_2D, .-render_scanline_obj_copy_bitmap_2D
70907   .align  2
70908   .global render_scanline_obj_copy_bitmap_1D
70909   .type render_scanline_obj_copy_bitmap_1D, %function
70910 render_scanline_obj_copy_bitmap_1D:
70911   @ args = 0, pretend = 0, frame = 604
70912   @ frame_needed = 0, uses_anonymous_args = 0
70913   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
70914   ldr lr, .L23084
70915   add r0, r0, r0, asl #2
70916   ldrh  r4, [lr, #6]
70917   ldr ip, .L23084+4
70918   add r0, r4, r0, asl #5
70919   ldr ip, [ip, r0, asl #2]
70920   sub sp, sp, #604
70921   ldrh  r6, [lr, #0]
70922   ldrh  r5, [lr, #74]
70923   str ip, [sp, #56]
70924   cmp ip, #0
70925   ldr lr, .L23084+8
70926   ldr ip, .L23084+12
70927   str r4, [sp, #52]
70928   and r4, r6, #7
70929   add r4, ip, r4, asl #2
70930   add r0, lr, r0, asl #7
70931   str r4, [sp, #36]
70932   str r0, [sp, #60]
70933   str r1, [sp, #12]
70934   str r2, [sp, #8]
70935   str r3, [sp, #4]
70936   mov r5, r5, lsr #8
70937   beq .L23027
70938   rsb r0, r1, r2
70939   and ip, r5, #16
70940   add lr, r3, r1, asl #1
70941   and r6, r6, #64
70942   mov r1, #0
70943   and r5, r5, #4
70944   str ip, [sp, #88]
70945   str r6, [sp, #92]
70946   str r5, [sp, #96]
70947   str lr, [sp, #100]
70948   str r0, [sp, #120]
70949   str r1, [sp, #44]
70950   mov r2, r1
70951 .L22225:
70952   ldr r4, [sp, #60]
70953   ldr r5, .L23084+16
70954   ldrb  r3, [r2, r4]  @ zero_extendqisi2
70955   ldr lr, .L23084+20
70956   mov r3, r3, asl #3
70957   ldrh  r8, [r3, r5]
70958   add r3, r3, r5
70959   ldrh  sl, [r3, #2]
70960   mov r6, r8, lsr #12
70961   and r2, r6, #12
70962   orr r2, r2, sl, lsr #14
70963   mov r1, sl, asl #23
70964   ldr fp, [lr, r2, asl #2]
70965   ands  ip, r8, #512
70966   mov r9, r1, asr #23
70967   ldr r7, [sp, #8]
70968   addne r1, r9, fp, asl #1
70969   addeq r1, r9, fp
70970   str r6, [sp, #20]
70971   ldr r6, [sp, #12]
70972   ldrh  r3, [r3, #4]
70973   cmp r1, r7
70974   movcc r7, r1
70975   ldr r0, [sp, #8]
70976   ldr r1, [sp, #12]
70977   cmp r9, r6
70978   movcs r6, r9
70979   str r3, [sp, #16]
70980   cmp r0, r6
70981   movls r3, #0
70982   movhi r3, #1
70983   cmp r1, r7
70984   movcs r3, #0
70985   cmp r3, #0
70986   str r2, [sp, #48]
70987   str ip, [sp, #24]
70988   beq .L22229
70989   cmp r7, r6
70990   ldr r3, .L23084+24
70991   movls r4, r6, asl #1
70992   ldrh  r0, [r3, #0]
70993   strls r4, [sp, #0]
70994   bls .L22231
70995   mov r2, r6, asl #1
70996   add r3, sp, #124
70997   str r2, [sp, #0]
70998   rsb r1, r6, r7
70999   add r2, r3, r2
71000   mov r3, #0
71001 .L22233:
71002   add r3, r3, #1
71003   cmp r1, r3
71004   strh  r0, [r2], #2  @ movhi
71005   bne .L22233
71006 .L22231:
71007   ldr r5, .L23084+28
71008   ldr r3, [r5, #0]
71009   cmp r3, #0
71010   beq .L22234
71011   ldr r5, .L23084+32
71012   mov r4, #0
71013   b .L22236
71014 .L23056:
71015   ldr ip, [sp, #88]
71016   cmp ip, #0
71017   bic ip, r0, #4
71018   beq .L22239
71019   ldr lr, [sp, #92]
71020   mov r0, ip
71021   cmp lr, #0
71022   mov r1, r6
71023   mov r2, r7
71024   add r3, sp, #124
71025   beq .L22241
71026   bl  render_scanline_obj_normal_1D
71027 .L22239:
71028   ldr ip, .L23084+28
71029   add r4, r4, #1
71030   ldr r3, [ip, #0]
71031   add r5, r5, #4
71032   cmp r3, r4
71033   bls .L22234
71034 .L22236:
71035   ldr r0, [r5, #0]
71036   tst r0, #4
71037   bne .L23056
71038   ldr r0, [sp, #96]
71039   mov r1, r7
71040   cmp r0, #0
71041   add r2, sp, #124
71042   mov r0, r6
71043   beq .L22239
71044   ldr r3, [sp, #36]
71045   mov lr, pc
71046   ldr pc, [r3, #0]
71047   ldr ip, .L23084+28
71048   add r4, r4, #1
71049   ldr r3, [ip, #0]
71050   add r5, r5, #4
71051   cmp r3, r4
71052   bhi .L22236
71053 .L22234:
71054   and r0, r8, #255
71055   ldr r1, [sp, #0]
71056   cmp r0, #160
71057   add lr, sp, #124
71058   ldr r3, .L23084+36
71059   ldr r2, [sp, #48]
71060   add lr, lr, r1
71061   subgt r0, r0, #256
71062   tst r8, #256
71063   str lr, [sp, #40]
71064   ldr r4, [r3, r2, asl #2]
71065   beq .L22246
71066   tst r8, #8192
71067   beq .L22248
71068   ldr r6, .L23084+16
71069   mov r3, sl, lsr #4
71070   ldr r5, [sp, #24]
71071   add r1, r4, r4, lsr #31
71072   and r3, r3, #992
71073   add r3, r3, r6
71074   mov lr, r1, asr #1
71075   add r2, fp, fp, lsr #31
71076   ldr r1, [sp, #12]
71077   cmp r5, #0
71078   mov ip, r2, asr #1
71079   ldrh  sl, [r3, #30]
71080   ldrh  r8, [r3, #6]
71081   ldrh  r2, [r3, #14]
71082   ldrh  r3, [r3, #22]
71083   moveq r5, fp
71084   moveq r7, ip
71085   moveq r6, lr
71086   movne r5, fp, asl #1
71087   movne r7, ip, asl #1
71088   movne r6, lr, asl #1
71089   cmp r9, r1
71090   str r3, [sp, #28]
71091   bge .L22253
71092   rsb r1, r9, r1
71093   rsb r5, r1, r5
71094   cmp r5, #0
71095   ble .L22229
71096   ldr r9, [sp, #12]
71097   rsb r7, r1, r7
71098 .L22253:
71099   ldr r1, [sp, #8]
71100   add r3, r9, r5
71101   cmp r3, r1
71102   blt .L22256
71103   rsb r5, r9, r1
71104   cmp r5, #0
71105   ble .L22229
71106 .L22256:
71107   add r0, r0, r6
71108   ldr r6, [sp, #28]
71109   mov r1, sl, asl #16
71110   mov ip, ip, asl #8
71111   mov r3, r8, asl #16
71112   cmp r6, #0
71113   str ip, [sp, #116]
71114   mov r6, r1, asr #16
71115   mov ip, lr, asl #8
71116   ldr r1, [sp, #52]
71117   ldr lr, [sp, #4]
71118   mov r2, r2, asl #16
71119   mov r3, r3, asr #16
71120   add sl, lr, r9, asl #1
71121   str r3, [sp, #64]
71122   mov r8, r2, asr #16
71123   rsb lr, r0, r1
71124   bne .L22258
71125   mla r3, lr, r6, ip
71126   mov r0, r3, asr #8
71127   cmp r0, r4
71128   bcs .L22229
71129   cmp fp, #0
71130   ldr r4, [sp, #16]
71131   add r3, fp, #7
71132   movge r3, fp
71133   mov r3, r3, asr #3
71134   mov r2, r4, asl #22
71135   mov r3, r3, asl #1
71136   mov r1, r0, lsr #3
71137   mov r2, r2, lsr #22
71138   mla ip, r3, r1, r2
71139   and r0, r0, #7
71140   ldr r3, .L23084+40
71141   add r0, r0, ip, asl #2
71142   cmp r5, #0
71143   add r6, r3, r0, asl #3
71144   ble .L22229
71145   ldr r2, [sp, #64]
71146   mul r3, lr, r8
71147   mul r2, r7, r2
71148   ldr ip, [sp, #116]
71149   rsb r3, r2, r3
71150   add r0, ip, r3
71151   mov ip, r0, asr #8
71152   cmp ip, fp
71153   ldrcs lr, [sp, #28]
71154   bcs .L22264
71155   b .L23080
71156 .L22265:
71157   cmp ip, fp
71158   bcc .L23044
71159 .L22264:
71160   ldr r2, [sp, #40]
71161   ldr r1, [sp, #64]
71162   add lr, lr, #1
71163   add r0, r0, r1
71164   add r2, r2, #2
71165   cmp r5, lr
71166   mov ip, r0, asr #8
71167   add sl, sl, #2
71168   str r2, [sp, #40]
71169   bne .L22265
71170 .L22229:
71171   ldr ip, [sp, #44]
71172   ldr lr, [sp, #56]
71173   add ip, ip, #1
71174   cmp ip, lr
71175   str ip, [sp, #44]
71176   beq .L23027
71177 .L23059:
71178   ldr r2, [sp, #44]
71179   b .L22225
71180 .L22241:
71181   mov r0, ip
71182   mov r1, r6
71183   mov r2, r7
71184   add r3, sp, #124
71185   bl  render_scanline_obj_normal_2D
71186   b .L22239
71187 .L22246:
71188   ldr lr, [sp, #52]
71189   tst sl, #8192
71190   rsb ip, r0, lr
71191   ldr r0, [sp, #20]
71192   rsbne r3, ip, r4
71193   subne ip, r3, #1
71194   mov r2, sl, asl #19
71195   and r3, r0, #2
71196   orr r3, r3, r2, lsr #31
71197   cmp r3, #3
71198   ldrls pc, [pc, r3, asl #2]
71199   b .L22229
71200   .p2align 2
71201 .L22326:
71202   .word .L22322
71203   .word .L22323
71204   .word .L22324
71205   .word .L22325
71206 .L22248:
71207   ldr r6, .L23084+16
71208   mov r3, sl, lsr #4
71209   ldr r5, [sp, #24]
71210   add r1, r4, r4, lsr #31
71211   and r3, r3, #992
71212   add r3, r3, r6
71213   mov lr, r1, asr #1
71214   add r2, fp, fp, lsr #31
71215   ldr r1, [sp, #12]
71216   cmp r5, #0
71217   mov ip, r2, asr #1
71218   ldrh  sl, [r3, #30]
71219   ldrh  r8, [r3, #6]
71220   ldrh  r2, [r3, #14]
71221   ldrh  r3, [r3, #22]
71222   moveq r5, fp
71223   moveq r7, ip
71224   moveq r6, lr
71225   movne r5, fp, asl #1
71226   movne r7, ip, asl #1
71227   movne r6, lr, asl #1
71228   cmp r9, r1
71229   str r3, [sp, #32]
71230   bge .L22285
71231   rsb r1, r9, r1
71232   rsb r5, r1, r5
71233   cmp r5, #0
71234   ble .L22229
71235   ldr r9, [sp, #12]
71236   rsb r7, r1, r7
71237 .L22285:
71238   ldr r1, [sp, #8]
71239   add r3, r9, r5
71240   cmp r3, r1
71241   blt .L22288
71242   rsb r5, r9, r1
71243   cmp r5, #0
71244   ble .L22229
71245 .L22288:
71246   add r0, r0, r6
71247   ldr r6, [sp, #32]
71248   mov r1, sl, asl #16
71249   mov ip, ip, asl #8
71250   mov r3, r8, asl #16
71251   mov r2, r2, asl #16
71252   cmp r6, #0
71253   str ip, [sp, #104]
71254   mov r6, r1, asr #16
71255   mov ip, lr, asl #8
71256   ldr r1, [sp, #52]
71257   ldr lr, [sp, #4]
71258   mov r3, r3, asr #16
71259   mov r2, r2, asr #16
71260   add sl, lr, r9, asl #1
71261   str r3, [sp, #72]
71262   str r2, [sp, #76]
71263   rsb lr, r0, r1
71264   bne .L22290
71265   mla r3, lr, r6, ip
71266   mov r0, r3, asr #8
71267   cmp r0, r4
71268   bcs .L22229
71269   ldr r4, [sp, #16]
71270   cmp fp, #0
71271   add r3, fp, #7
71272   mov r2, r4, asl #22
71273   movge r3, fp
71274   mov r3, r3, asr #3
71275   mov r1, r0, lsr #3
71276   mov r2, r2, lsr #22
71277   mla ip, r3, r1, r2
71278   and r0, r0, #7
71279   ldr r3, .L23084+40
71280   add r0, r0, ip, asl #3
71281   cmp r5, #0
71282   add r8, r3, r0, asl #2
71283   ble .L22229
71284   ldr r3, [sp, #76]
71285   ldr r2, [sp, #72]
71286   mul r3, lr, r3
71287   mul r2, r7, r2
71288   ldr r6, [sp, #104]
71289   rsb r3, r2, r3
71290   add r0, r6, r3
71291   mov ip, r0, asr #8
71292   cmp ip, fp
71293   ldrcs r1, [sp, #32]
71294   bcs .L22296
71295   b .L23081
71296 .L22297:
71297   cmp ip, fp
71298   bcc .L23046
71299 .L22296:
71300   ldr ip, [sp, #72]
71301   ldr lr, [sp, #40]
71302   add r1, r1, #1
71303   add r0, r0, ip
71304   add lr, lr, #2
71305   cmp r5, r1
71306   mov ip, r0, asr #8
71307   add sl, sl, #2
71308   str lr, [sp, #40]
71309   bne .L22297
71310   ldr ip, [sp, #44]
71311   ldr lr, [sp, #56]
71312   add ip, ip, #1
71313   cmp ip, lr
71314   str ip, [sp, #44]
71315   bne .L23059
71316 .L23027:
71317   add sp, sp, #604
71318   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
71319 .L22299:
71320   cmp ip, fp
71321   bcs .L22229
71322 .L23046:
71323   mov r3, ip, asr #1
71324   and r6, r3, #3
71325   mov r3, ip, asr #3
71326   mov r3, r3, asl #5
71327   mov r2, ip, asr #1
71328   tst ip, #1
71329   and lr, r2, #3
71330   add ip, r3, r8
71331   add r2, r3, r8
71332   ldreqb  r3, [r2, lr]  @ zero_extendqisi2
71333   ldrneb  r3, [ip, r6]  @ zero_extendqisi2
71334   andeq r2, r3, #15
71335   movne r2, r3, lsr #4
71336   cmp r2, #0
71337   ldrne r4, [sp, #40]
71338   ldr r6, [sp, #40]
71339   ldrneh  r4, [r4, #0]
71340   ldr r3, [sp, #72]
71341   add r1, r1, #1
71342   strneh  r4, [sl, #0]  @ movhi
71343   add r0, r0, r3
71344   add r6, r6, #2
71345   cmp r5, r1
71346   mov ip, r0, asr #8
71347   add sl, sl, #2
71348   str r6, [sp, #40]
71349   bgt .L22299
71350   b .L22229
71351 .L22290:
71352   ldr r0, [sp, #16]
71353   cmp fp, #0
71354   add r1, fp, #7
71355   mov r2, r0, asl #22
71356   movge r1, fp
71357   ldr r3, .L23084+40
71358   mov r2, r2, lsr #22
71359   mov r1, r1, asr #3
71360   add r2, r3, r2, asl #5
71361   mov r1, r1, asl #5
71362   cmp r5, #0
71363   str r2, [sp, #108]
71364   str r1, [sp, #84]
71365   ble .L22229
71366   ldr r1, [sp, #32]
71367   ldr r0, [sp, #72]
71368   mov r3, r1, asl #16
71369   mov r3, r3, asr #16
71370   str r3, [sp, #80]
71371   ldr r1, [sp, #80]
71372   ldr r3, [sp, #76]
71373   mul r2, lr, r6
71374   mul r3, lr, r3
71375   mul r1, r7, r1
71376   mul r0, r7, r0
71377   ldr r6, [sp, #104]
71378   rsb r2, r1, r2
71379   rsb r3, r0, r3
71380   add r7, r6, r3
71381   add r6, ip, r2
71382   mov lr, r7, asr #8
71383   mov r3, r6, asr #8
71384   cmp lr, fp
71385   cmpcc r3, r4
71386   movcs r2, #0
71387   movcc r2, #1
71388   movcs r8, r2
71389   bcs .L22309
71390   b .L23082
71391 .L22310:
71392   cmp lr, fp
71393   cmpcc r3, r4
71394   bcc .L22312
71395 .L22309:
71396   ldr lr, [sp, #80]
71397   ldr r0, [sp, #40]
71398   ldr ip, [sp, #72]
71399   add r8, r8, #1
71400   add r6, r6, lr
71401   add r7, r7, ip
71402   add r0, r0, #2
71403   cmp r5, r8
71404   mov lr, r7, asr #8
71405   mov r3, r6, asr #8
71406   add sl, sl, #2
71407   str r0, [sp, #40]
71408   bne .L22310
71409   b .L22229
71410 .L23061:
71411   ldr r1, [sp, #108]
71412   and r0, r3, #7
71413   ldr r2, [sp, #84]
71414   add r0, r1, r0, asl #2
71415   and r1, r3, #7
71416   mov r3, r3, asr #3
71417   mov ip, lr, asr #1
71418   mul r2, r3, r2
71419   and r9, ip, #3
71420   ldr ip, [sp, #108]
71421   mov r3, lr, asr #1
71422   add r1, ip, r1, asl #2
71423   and ip, r3, #3
71424   mov r3, lr, asr #3
71425   add r2, r2, r3, asl #5
71426   add r3, r0, r2
71427   tst lr, #1
71428   add r0, r1, r2
71429   ldreqb  r3, [r0, ip]  @ zero_extendqisi2
71430   ldrneb  r3, [r3, r9]  @ zero_extendqisi2
71431   andeq r0, r3, #15
71432   movne r0, r3, lsr #4
71433   cmp r0, #0
71434   ldrne r2, [sp, #40]
71435   ldr lr, [sp, #72]
71436   ldrneh  r2, [r2, #0]
71437   ldr ip, [sp, #40]
71438   ldr r1, [sp, #80]
71439   add r8, r8, #1
71440   strneh  r2, [sl, #0]  @ movhi
71441   add r7, r7, lr
71442   add r6, r6, r1
71443   add ip, ip, #2
71444   cmp r5, r8
71445   mov lr, r7, asr #8
71446   mov r3, r6, asr #8
71447   add sl, sl, #2
71448   str ip, [sp, #40]
71449   ble .L22229
71450 .L22312:
71451   cmp r3, r4
71452   cmpcc lr, fp
71453   bcc .L23061
71454   b .L22229
71455 .L22267:
71456   cmp ip, fp
71457   bcs .L22229
71458 .L23044:
71459   ldr r3, [sp, #64]
71460   and r1, ip, #7
71461   add r0, r0, r3
71462   mov r3, ip, asr #3
71463   add r3, r6, r3, asl #6
71464   ldrb  r2, [r3, r1]  @ zero_extendqisi2
71465   ldr r1, [sp, #40]
71466   cmp r2, #0
71467   ldrne r4, [sp, #40]
71468   add lr, lr, #1
71469   ldrneh  r4, [r4, #0]
71470   add r1, r1, #2
71471   strneh  r4, [sl, #0]  @ movhi
71472   cmp r5, lr
71473   mov ip, r0, asr #8
71474   add sl, sl, #2
71475   str r1, [sp, #40]
71476   bgt .L22267
71477   b .L22229
71478 .L22258:
71479   ldr r3, [sp, #16]
71480   cmp fp, #0
71481   add r1, fp, #7
71482   mov r2, r3, asl #22
71483   movge r1, fp
71484   ldr r3, .L23084+40
71485   mov r2, r2, lsr #22
71486   mov r1, r1, asr #3
71487   add r2, r3, r2, asl #5
71488   mov r1, r1, asl #6
71489   cmp r5, #0
71490   str r2, [sp, #112]
71491   str r1, [sp, #68]
71492   ble .L22229
71493   ldr r0, [sp, #28]
71494   mul r2, lr, r6
71495   mov r3, r0, asl #16
71496   mov r9, r3, asr #16
71497   ldr r0, [sp, #64]
71498   mul r1, r9, r7
71499   mul r3, lr, r8
71500   mul r0, r7, r0
71501   rsb r2, r1, r2
71502   ldr r1, [sp, #116]
71503   rsb r3, r0, r3
71504   add r7, r1, r3
71505   add r6, ip, r2
71506   mov lr, r7, asr #8
71507   mov ip, r6, asr #8
71508   cmp lr, fp
71509   cmpcc ip, r4
71510   movcs r3, #0
71511   movcc r3, #1
71512   movcs r8, r3
71513   bcs .L22274
71514   b .L23083
71515 .L22275:
71516   cmp lr, fp
71517   cmpcc ip, r4
71518   bcc .L22277
71519 .L22274:
71520   ldr r3, [sp, #40]
71521   ldr r2, [sp, #64]
71522   add r8, r8, #1
71523   add r7, r7, r2
71524   add r6, r6, r9
71525   add r3, r3, #2
71526   cmp r5, r8
71527   mov lr, r7, asr #8
71528   mov ip, r6, asr #8
71529   add sl, sl, #2
71530   str r3, [sp, #40]
71531   bne .L22275
71532   b .L22229
71533 .L23063:
71534   ldr r0, [sp, #64]
71535   and r3, ip, #7
71536   mov r2, lr, asr #3
71537   ldr r1, [sp, #112]
71538   mov r3, r3, asl #3
71539   add r7, r7, r0
71540   add r3, r3, r2, asl #6
71541   ldr r0, [sp, #68]
71542   mov r2, ip, asr #3
71543   add r3, r3, r1
71544   mla r0, r2, r0, r3
71545   and r1, lr, #7
71546   ldrb  r3, [r0, r1]  @ zero_extendqisi2
71547   add r8, r8, #1
71548   cmp r3, #0
71549   ldrne r2, [sp, #40]
71550   ldr r3, [sp, #40]
71551   ldrneh  r2, [r2, #0]
71552   add r6, r6, r9
71553   strneh  r2, [sl, #0]  @ movhi
71554   add r3, r3, #2
71555   cmp r5, r8
71556   mov ip, r6, asr #8
71557   mov lr, r7, asr #8
71558   add sl, sl, #2
71559   str r3, [sp, #40]
71560   ble .L22229
71561 .L22277:
71562   cmp ip, r4
71563   cmpcc lr, fp
71564   bcc .L23063
71565   b .L22229
71566 .L22322:
71567   ldr r1, [sp, #16]
71568   cmp fp, #0
71569   add r3, fp, #7
71570   mov r2, r1, asl #22
71571   movge r3, fp
71572   mov lr, r3, asr #3
71573   mov r2, r2, lsr #22
71574   mov r3, ip, lsr #3
71575   mla r0, lr, r3, r2
71576   ldr r2, [sp, #12]
71577   and r1, ip, #7
71578   ldr r3, .L23084+40
71579   add r1, r1, r0, asl #3
71580   cmp r9, r2
71581   add r0, r3, r1, asl #2
71582   bge .L22327
71583   rsb ip, r9, r2
71584   rsb lr, ip, fp
71585   cmp lr, #0
71586   ble .L22229
71587   ldr r4, [sp, #8]
71588   add r3, r9, fp
71589   cmp r4, r3
71590   bhi .L22330
71591   mov r3, ip, lsr #3
71592   mov r1, r3, asl #5
71593   ands  r3, ip, #7
71594   add r6, r0, r1
71595   bne .L22332
71596   ldr r5, [sp, #120]
71597   ldr r7, [sp, #100]
71598 .L22334:
71599   movs  lr, r5, lsr #3
71600   beq .L22351
71601   ldr r1, [sp, #40]
71602   mov r2, r7
71603   mov r0, r6
71604   mov ip, #0
71605 .L22353:
71606   ldr r3, [r0, #0]
71607   cmp r3, #0
71608   beq .L22354
71609   tst r3, #15
71610   ldrneh  r4, [r1, #0]
71611   strneh  r4, [r2, #0]  @ movhi
71612   tst r3, #240
71613   ldrneh  r4, [r1, #2]
71614   strneh  r4, [r2, #2]  @ movhi
71615   tst r3, #3840
71616   ldrneh  r4, [r1, #4]
71617   strneh  r4, [r2, #4]  @ movhi
71618   tst r3, #61440
71619   ldrneh  r4, [r1, #6]
71620   strneh  r4, [r2, #6]  @ movhi
71621   tst r3, #983040
71622   ldrneh  r4, [r1, #8]
71623   strneh  r4, [r2, #8]  @ movhi
71624   tst r3, #15728640
71625   ldrneh  r4, [r1, #10]
71626   strneh  r4, [r2, #10] @ movhi
71627   tst r3, #251658240
71628   ldrneh  r4, [r1, #12]
71629   strneh  r4, [r2, #12] @ movhi
71630   movs  r3, r3, lsr #28
71631   ldrneh  r3, [r1, #14]
71632   strneh  r3, [r2, #14] @ movhi
71633 .L22354:
71634   add ip, ip, #1
71635   cmp ip, lr
71636   add r0, r0, #32
71637   add r2, r2, #16
71638   add r1, r1, #16
71639   bne .L22353
71640   ldr r4, [sp, #40]
71641   mov r3, lr, asl #4
71642   add r4, r4, r3
71643   add r7, r7, r3
71644   add r6, r6, lr, asl #5
71645   str r4, [sp, #40]
71646 .L22351:
71647   ands  r0, r5, #7
71648   beq .L22229
71649   ldr r3, [r6, #0]
71650   mov r1, #0
71651 .L22373:
71652   tst r3, #15
71653   ldrne r5, [sp, #40]
71654   mov r2, r1, asl #1
71655   ldrneh  r5, [r2, r5]
71656   add r1, r1, #1
71657   strneh  r5, [r2, r7]  @ movhi
71658   cmp r1, r0
71659   mov r3, r3, lsr #4
71660   bne .L22373
71661   b .L22229
71662 .L22323:
71663   ldr r4, [sp, #16]
71664   cmp fp, #0
71665   add r3, fp, #7
71666   mov r2, r4, asl #22
71667   movge r3, fp
71668   mov lr, r3, asr #3
71669   mov r2, r2, lsr #22
71670   mov r1, ip, lsr #3
71671   mla r0, lr, r1, r2
71672   subs  r3, fp, #8
71673   submi r3, fp, #1
71674   ldr r5, [sp, #12]
71675   add r0, r0, r3, asr #3
71676   and r2, ip, #7
71677   ldr r3, .L23084+40
71678   add r2, r2, r0, asl #3
71679   cmp r9, r5
71680   add r0, r3, r2, asl #2
71681   bge .L22457
71682   rsb ip, r9, r5
71683   rsb r1, ip, fp
71684   cmp r1, #0
71685   ble .L22229
71686   ldr r6, [sp, #8]
71687   add r3, r9, fp
71688   cmp r6, r3
71689   bhi .L22460
71690   mov r3, ip, lsr #3
71691   ands  r6, ip, #7
71692   sub r0, r0, r3, asl #5
71693   bne .L22462
71694   ldr r8, [sp, #120]
71695   ldr r1, [sp, #100]
71696 .L22464:
71697   movs  r3, r8, lsr #3
71698   beq .L22481
71699   ldr lr, [sp, #40]
71700   mov ip, r1
71701   mov r6, r0
71702   mov r7, #0
71703 .L22483:
71704   ldr r2, [r6, #0]
71705   cmp r2, #0
71706   beq .L22484
71707   tst r2, #15
71708   ldrneh  r4, [lr, #14]
71709   strneh  r4, [ip, #14] @ movhi
71710   tst r2, #240
71711   ldrneh  r5, [lr, #12]
71712   strneh  r5, [ip, #12] @ movhi
71713   tst r2, #3840
71714   ldrneh  r4, [lr, #10]
71715   strneh  r4, [ip, #10] @ movhi
71716   tst r2, #61440
71717   ldrneh  r5, [lr, #8]
71718   strneh  r5, [ip, #8]  @ movhi
71719   tst r2, #983040
71720   ldrneh  r4, [lr, #6]
71721   strneh  r4, [ip, #6]  @ movhi
71722   tst r2, #15728640
71723   ldrneh  r5, [lr, #4]
71724   strneh  r5, [ip, #4]  @ movhi
71725   tst r2, #251658240
71726   ldrneh  r4, [lr, #2]
71727   strneh  r4, [ip, #2]  @ movhi
71728   movs  r2, r2, lsr #28
71729   ldrneh  r5, [lr, #0]
71730   strneh  r5, [ip, #0]  @ movhi
71731 .L22484:
71732   add r7, r7, #1
71733   cmp r7, r3
71734   sub r6, r6, #32
71735   add ip, ip, #16
71736   add lr, lr, #16
71737   bne .L22483
71738   ldr r6, [sp, #40]
71739   rsb r2, r3, r3, asl #27
71740   mov r3, r3, asl #4
71741   add r6, r6, r3
71742   add r1, r1, r3
71743   add r0, r0, r2, asl #5
71744   str r6, [sp, #40]
71745 .L22481:
71746   ands  ip, r8, #7
71747   beq .L22229
71748   ldr r0, [r0, #0]
71749   mov r2, #0
71750 .L22503:
71751   movs  lr, r0, lsr #28
71752   ldrne r4, [sp, #40]
71753   mov r3, r2, asl #1
71754   ldrneh  r4, [r3, r4]
71755   add r2, r2, #1
71756   strneh  r4, [r3, r1]  @ movhi
71757   cmp r2, ip
71758   mov r0, r0, asl #4
71759   bne .L22503
71760   b .L22229
71761 .L22325:
71762   cmp fp, #0
71763   add r2, fp, #7
71764   movge r2, fp
71765   subs  r3, fp, #8
71766   submi r3, fp, #1
71767   mov lr, r2, asr #3
71768   mov r3, r3, asr #3
71769   mov r1, ip, lsr #3
71770   mla r0, lr, r1, r3
71771   ldr r4, [sp, #16]
71772   and r3, ip, #7
71773   mov r2, r4, asl #22
71774   mov r2, r2, lsr #22
71775   add r2, r2, r0, asl #1
71776   add r3, r3, r2, asl #2
71777   ldr r5, [sp, #12]
71778   mov r0, r3, asl #3
71779   ldr r3, .L23084+40
71780   cmp r9, r5
71781   add r8, r0, r3
71782   bge .L22807
71783   rsb r0, r9, r5
71784   rsb lr, r0, fp
71785   cmp lr, #0
71786   ble .L22229
71787   ldr r6, [sp, #8]
71788   add r3, r9, fp
71789   cmp r6, r3
71790   bhi .L22810
71791   mov r3, r0, lsr #3
71792   ands  ip, r0, #7
71793   sub sl, r8, r3, asl #6
71794   bne .L22812
71795   ldr r8, [sp, #120]
71796   ldr r7, [sp, #100]
71797 .L22814:
71798   movs  r6, r8, lsr #3
71799   beq .L22872
71800   ldr r0, [sp, #40]
71801   mov r1, r7
71802   mov ip, sl
71803   mov lr, #0
71804 .L22874:
71805   ldr r2, [ip, #4]
71806   cmp r2, #0
71807   beq .L22875
71808   tst r2, #255
71809   ldrneh  r3, [r0, #6]
71810   strneh  r3, [r1, #6]  @ movhi
71811   mov r3, r2, lsr #8
71812   tst r3, #255
71813   ldrneh  r4, [r0, #4]
71814   mov r3, r2, lsr #16
71815   strneh  r4, [r1, #4]  @ movhi
71816   tst r3, #255
71817   ldrneh  r5, [r0, #2]
71818   strneh  r5, [r1, #2]  @ movhi
71819   movs  r2, r2, lsr #24
71820   ldrneh  r2, [r0, #0]
71821   strneh  r2, [r1, #0]  @ movhi
71822 .L22875:
71823   ldr r2, [ip, #0]
71824   cmp r2, #0
71825   beq .L22884
71826   tst r2, #255
71827   ldrneh  r3, [r0, #14]
71828   strneh  r3, [r1, #14] @ movhi
71829   mov r3, r2, lsr #8
71830   tst r3, #255
71831   ldrneh  r4, [r0, #12]
71832   mov r3, r2, lsr #16
71833   strneh  r4, [r1, #12] @ movhi
71834   tst r3, #255
71835   ldrneh  r5, [r0, #10]
71836   strneh  r5, [r1, #10] @ movhi
71837   movs  r2, r2, lsr #24
71838   ldrneh  r2, [r0, #8]
71839   strneh  r2, [r1, #8]  @ movhi
71840 .L22884:
71841   add lr, lr, #1
71842   cmp lr, r6
71843   sub ip, ip, #64
71844   add r1, r1, #16
71845   add r0, r0, #16
71846   bne .L22874
71847   ldr r4, [sp, #40]
71848   mov r3, r6, asl #4
71849   rsb r2, r6, r6, asl #26
71850   add r4, r4, r3
71851   add r7, r7, r3
71852   add sl, sl, r2, asl #6
71853   str r4, [sp, #40]
71854 .L22872:
71855   ands  ip, r8, #7
71856   beq .L22229
71857   cmp ip, #3
71858   ldrls r2, [sl, #4]
71859   bls .L22907
71860   ldr r2, [sl, #4]
71861   cmp r2, #0
71862   beq .L22897
71863   tst r2, #255
71864   ldrne r5, [sp, #40]
71865   mov r3, r2, lsr #8
71866   ldrneh  r5, [r5, #6]
71867   strneh  r5, [r7, #6]  @ movhi
71868   tst r3, #255
71869   ldrne r6, [sp, #40]
71870   mov r3, r2, lsr #16
71871   ldrneh  r6, [r6, #4]
71872   strneh  r6, [r7, #4]  @ movhi
71873   tst r3, #255
71874   ldrne lr, [sp, #40]
71875   ldrneh  lr, [lr, #2]
71876   strneh  lr, [r7, #2]  @ movhi
71877   movs  r2, r2, lsr #24
71878   ldrne r0, [sp, #40]
71879   ldrneh  r0, [r0, #0]
71880   strneh  r0, [r7, #0]  @ movhi
71881 .L22897:
71882   subs  ip, ip, #4
71883   ldr r2, [sl, #0]
71884   beq .L22229
71885   ldr r1, [sp, #40]
71886   add r7, r7, #8
71887   add r1, r1, #8
71888   str r1, [sp, #40]
71889 .L22907:
71890   mov r1, #0
71891 .L22908:
71892   movs  r3, r2, lsr #24
71893   ldrne r4, [sp, #40]
71894   mov r0, r1, asl #1
71895   ldrneh  r4, [r0, r4]
71896   add r1, r1, #1
71897   strneh  r4, [r0, r7]  @ movhi
71898   cmp ip, r1
71899   mov r2, r2, asl #8
71900   bhi .L22908
71901   b .L22229
71902 .L23085:
71903   .align  2
71904 .L23084:
71905   .word io_registers
71906   .word obj_priority_count
71907   .word obj_priority_list
71908   .word bitmap_mode_renderers-12
71909   .word oam_ram
71910   .word obj_width_table
71911   .word palette_ram_converted
71912   .word layer_count
71913   .word layer_order
71914   .word obj_height_table
71915   .word vram+65536
71916   .word vram+65472
71917   .word vram+65600
71918 .L22324:
71919   ldr lr, [sp, #16]
71920   cmp fp, #0
71921   add r3, fp, #7
71922   mov r1, lr, asl #22
71923   movge r3, fp
71924   mov r2, ip, lsr #3
71925   mov r6, r3, asr #3
71926   mov r2, r2, asl #1
71927   mov r1, r1, lsr #22
71928   mla r0, r2, r6, r1
71929   and r3, ip, #7
71930   add r3, r3, r0, asl #2
71931   ldr r1, [sp, #12]
71932   mov r0, r3, asl #3
71933   ldr r3, .L23084+40
71934   cmp r9, r1
71935   add r2, r0, r3
71936   bge .L22587
71937   rsb r0, r9, r1
71938   rsb lr, r0, fp
71939   cmp lr, #0
71940   ble .L22229
71941   ldr r4, [sp, #8]
71942   add r3, r9, fp
71943   cmp r4, r3
71944   bhi .L22590
71945   mov r3, r0, lsr #3
71946   ands  ip, r0, #7
71947   add sl, r2, r3, asl #6
71948   bne .L22592
71949   ldr r8, [sp, #120]
71950   ldr r7, [sp, #100]
71951 .L22594:
71952   movs  r6, r8, lsr #3
71953   beq .L22652
71954   ldr r0, [sp, #40]
71955   mov r1, r7
71956   mov ip, sl
71957   mov lr, #0
71958 .L22654:
71959   ldr r2, [ip, #0]
71960   cmp r2, #0
71961   beq .L22655
71962   tst r2, #255
71963   ldrneh  r3, [r0, #0]
71964   strneh  r3, [r1, #0]  @ movhi
71965   mov r3, r2, lsr #8
71966   tst r3, #255
71967   ldrneh  r4, [r0, #2]
71968   mov r3, r2, lsr #16
71969   strneh  r4, [r1, #2]  @ movhi
71970   tst r3, #255
71971   ldrneh  r5, [r0, #4]
71972   strneh  r5, [r1, #4]  @ movhi
71973   movs  r2, r2, lsr #24
71974   ldrneh  r2, [r0, #6]
71975   strneh  r2, [r1, #6]  @ movhi
71976 .L22655:
71977   ldr r2, [ip, #4]
71978   cmp r2, #0
71979   beq .L22664
71980   tst r2, #255
71981   ldrneh  r3, [r0, #8]
71982   strneh  r3, [r1, #8]  @ movhi
71983   mov r3, r2, lsr #8
71984   tst r3, #255
71985   ldrneh  r4, [r0, #10]
71986   mov r3, r2, lsr #16
71987   strneh  r4, [r1, #10] @ movhi
71988   tst r3, #255
71989   ldrneh  r5, [r0, #12]
71990   strneh  r5, [r1, #12] @ movhi
71991   movs  r2, r2, lsr #24
71992   ldrneh  r2, [r0, #14]
71993   strneh  r2, [r1, #14] @ movhi
71994 .L22664:
71995   add lr, lr, #1
71996   cmp lr, r6
71997   add ip, ip, #64
71998   add r1, r1, #16
71999   add r0, r0, #16
72000   bne .L22654
72001   ldr r4, [sp, #40]
72002   mov r3, r6, asl #4
72003   add r4, r4, r3
72004   add r7, r7, r3
72005   add sl, sl, r6, asl #6
72006   str r4, [sp, #40]
72007 .L22652:
72008   ands  r0, r8, #7
72009   beq .L22229
72010   cmp r0, #3
72011   ldrls r3, [sl, #0]
72012   bls .L22687
72013   ldr r2, [sl, #0]
72014   cmp r2, #0
72015   beq .L22677
72016   tst r2, #255
72017   ldrne r5, [sp, #40]
72018   mov r3, r2, lsr #8
72019   ldrneh  r5, [r5, #0]
72020   strneh  r5, [r7, #0]  @ movhi
72021   tst r3, #255
72022   ldrne r6, [sp, #40]
72023   mov r3, r2, lsr #16
72024   ldrneh  r6, [r6, #2]
72025   strneh  r6, [r7, #2]  @ movhi
72026   tst r3, #255
72027   ldrne ip, [sp, #40]
72028   ldrneh  ip, [ip, #4]
72029   strneh  ip, [r7, #4]  @ movhi
72030   movs  r2, r2, lsr #24
72031   ldrne lr, [sp, #40]
72032   ldrneh  lr, [lr, #6]
72033   strneh  lr, [r7, #6]  @ movhi
72034 .L22677:
72035   subs  r0, r0, #4
72036   ldr r3, [sl, #4]
72037   beq .L22229
72038   ldr r1, [sp, #40]
72039   add r7, r7, #8
72040   add r1, r1, #8
72041   str r1, [sp, #40]
72042 .L22687:
72043   mov r2, #0
72044 .L22688:
72045   tst r3, #255
72046   ldrne r4, [sp, #40]
72047   mov r1, r2, asl #1
72048   ldrneh  r4, [r1, r4]
72049   add r2, r2, #1
72050   strneh  r4, [r1, r7]  @ movhi
72051   cmp r0, r2
72052   mov r3, r3, lsr #8
72053   bhi .L22688
72054   b .L22229
72055 .L22587:
72056   ldr r4, [sp, #8]
72057   add r3, r9, fp
72058   cmp r4, r3
72059   bls .L23064
72060   cmp r6, #0
72061   beq .L22229
72062   ldr r5, [sp, #4]
72063   ldr r3, .L23084+48
72064   add r1, r5, r9, asl #1
72065   add r0, r0, r3
72066   mov lr, #0
72067   b .L22787
72068 .L23065:
72069   ldr r3, [sp, #40]
72070   add r2, r2, #64
72071   add r3, r3, #16
72072   add r1, r1, #16
72073   str r3, [sp, #40]
72074 .L22787:
72075   ldr ip, [r2, #0]
72076   cmp ip, #0
72077   beq .L22788
72078   tst ip, #255
72079   ldrne r3, [sp, #40]
72080   ldrneh  r3, [r3, #0]
72081   strneh  r3, [r1, #0]  @ movhi
72082   mov r3, ip, lsr #8
72083   tst r3, #255
72084   ldrne r4, [sp, #40]
72085   mov r3, ip, lsr #16
72086   ldrneh  r4, [r4, #2]
72087   strneh  r4, [r1, #2]  @ movhi
72088   tst r3, #255
72089   ldrne r5, [sp, #40]
72090   ldrneh  r5, [r5, #4]
72091   strneh  r5, [r1, #4]  @ movhi
72092   movs  ip, ip, lsr #24
72093   ldrne ip, [sp, #40]
72094   ldrneh  ip, [ip, #6]
72095   strneh  ip, [r1, #6]  @ movhi
72096 .L22788:
72097   ldr ip, [r0, #-60]
72098   cmp ip, #0
72099   beq .L22797
72100   tst ip, #255
72101   ldrne r3, [sp, #40]
72102   ldrneh  r3, [r3, #8]
72103   strneh  r3, [r1, #8]  @ movhi
72104   mov r3, ip, lsr #8
72105   tst r3, #255
72106   ldrne r4, [sp, #40]
72107   mov r3, ip, lsr #16
72108   ldrneh  r4, [r4, #10]
72109   strneh  r4, [r1, #10] @ movhi
72110   tst r3, #255
72111   ldrne r5, [sp, #40]
72112   ldrneh  r5, [r5, #12]
72113   strneh  r5, [r1, #12] @ movhi
72114   movs  ip, ip, lsr #24
72115   ldrne ip, [sp, #40]
72116   ldrneh  ip, [ip, #14]
72117   strneh  ip, [r1, #14] @ movhi
72118 .L22797:
72119   add lr, lr, #1
72120   cmp r6, lr
72121   add r0, r0, #64
72122   bne .L23065
72123   b .L22229
72124 .L22457:
72125   ldr r1, [sp, #8]
72126   add r3, r9, fp
72127   cmp r1, r3
72128   bls .L23066
72129   cmp lr, #0
72130   beq .L22229
72131   ldr r5, [sp, #4]
72132   mov r3, #0
72133   add r1, r5, r9, asl #1
72134   b .L22568
72135 .L23067:
72136   ldr r6, [sp, #40]
72137   sub r0, r0, #32
72138   add r6, r6, #16
72139   add r1, r1, #16
72140   str r6, [sp, #40]
72141 .L22568:
72142   ldr r2, [r0, #0]
72143   cmp r2, #0
72144   beq .L22569
72145   tst r2, #15
72146   ldrne r6, [sp, #40]
72147   ldrneh  r6, [r6, #14]
72148   strneh  r6, [r1, #14] @ movhi
72149   tst r2, #240
72150   ldrne ip, [sp, #40]
72151   ldrneh  ip, [ip, #12]
72152   strneh  ip, [r1, #12] @ movhi
72153   tst r2, #3840
72154   ldrne r4, [sp, #40]
72155   ldrneh  r4, [r4, #10]
72156   strneh  r4, [r1, #10] @ movhi
72157   tst r2, #61440
72158   ldrne r5, [sp, #40]
72159   ldrneh  r5, [r5, #8]
72160   strneh  r5, [r1, #8]  @ movhi
72161   tst r2, #983040
72162   ldrne r6, [sp, #40]
72163   ldrneh  r6, [r6, #6]
72164   strneh  r6, [r1, #6]  @ movhi
72165   tst r2, #15728640
72166   ldrne ip, [sp, #40]
72167   ldrneh  ip, [ip, #4]
72168   strneh  ip, [r1, #4]  @ movhi
72169   tst r2, #251658240
72170   ldrne r4, [sp, #40]
72171   ldrneh  r4, [r4, #2]
72172   strneh  r4, [r1, #2]  @ movhi
72173   movs  r2, r2, lsr #28
72174   ldrne r5, [sp, #40]
72175   ldrneh  r5, [r5, #0]
72176   strneh  r5, [r1, #0]  @ movhi
72177 .L22569:
72178   add r3, r3, #1
72179   cmp lr, r3
72180   bne .L23067
72181   b .L22229
72182 .L22327:
72183   ldr r1, [sp, #8]
72184   add r3, r9, fp
72185   cmp r1, r3
72186   bls .L23068
72187   cmp lr, #0
72188   beq .L22229
72189   ldr r2, [sp, #4]
72190   mov r3, #0
72191   add r1, r2, r9, asl #1
72192   b .L22438
72193 .L23069:
72194   ldr r2, [sp, #40]
72195   add r0, r0, #32
72196   add r2, r2, #16
72197   add r1, r1, #16
72198   str r2, [sp, #40]
72199 .L22438:
72200   ldr ip, [r0, #0]
72201   cmp ip, #0
72202   beq .L22439
72203   tst ip, #15
72204   ldrne r4, [sp, #40]
72205   ldrneh  r4, [r4, #0]
72206   strneh  r4, [r1, #0]  @ movhi
72207   tst ip, #240
72208   ldrne r5, [sp, #40]
72209   ldrneh  r5, [r5, #2]
72210   strneh  r5, [r1, #2]  @ movhi
72211   tst ip, #3840
72212   ldrne r6, [sp, #40]
72213   ldrneh  r6, [r6, #4]
72214   strneh  r6, [r1, #4]  @ movhi
72215   tst ip, #61440
72216   ldrne r2, [sp, #40]
72217   ldrneh  r2, [r2, #6]
72218   strneh  r2, [r1, #6]  @ movhi
72219   tst ip, #983040
72220   ldrne r4, [sp, #40]
72221   ldrneh  r4, [r4, #8]
72222   strneh  r4, [r1, #8]  @ movhi
72223   tst ip, #15728640
72224   ldrne r5, [sp, #40]
72225   ldrneh  r5, [r5, #10]
72226   strneh  r5, [r1, #10] @ movhi
72227   tst ip, #251658240
72228   ldrne r6, [sp, #40]
72229   ldrneh  r6, [r6, #12]
72230   strneh  r6, [r1, #12] @ movhi
72231   movs  ip, ip, lsr #28
72232   ldrne ip, [sp, #40]
72233   ldrneh  ip, [ip, #14]
72234   strneh  ip, [r1, #14] @ movhi
72235 .L22439:
72236   add r3, r3, #1
72237   cmp lr, r3
72238   bne .L23069
72239   b .L22229
72240 .L22807:
72241   ldr r4, [sp, #8]
72242   add r3, r9, fp
72243   cmp r4, r3
72244   bls .L23070
72245   cmp lr, #0
72246   beq .L22229
72247   ldr r5, [sp, #4]
72248   ldr r3, .L23084+44
72249   add r1, r5, r9, asl #1
72250   add r0, r0, r3
72251   mov r2, #0
72252   b .L23007
72253 .L23071:
72254   ldr r6, [sp, #40]
72255   sub r8, r8, #64
72256   add r6, r6, #16
72257   add r1, r1, #16
72258   str r6, [sp, #40]
72259 .L23007:
72260   ldr ip, [r0, #68]
72261   cmp ip, #0
72262   beq .L23008
72263   tst ip, #255
72264   ldrne r6, [sp, #40]
72265   mov r3, ip, lsr #8
72266   ldrneh  r6, [r6, #6]
72267   strneh  r6, [r1, #6]  @ movhi
72268   tst r3, #255
72269   ldrne r3, [sp, #40]
72270   ldrneh  r3, [r3, #4]
72271   strneh  r3, [r1, #4]  @ movhi
72272   mov r3, ip, lsr #16
72273   tst r3, #255
72274   ldrne r4, [sp, #40]
72275   ldrneh  r4, [r4, #2]
72276   strneh  r4, [r1, #2]  @ movhi
72277   movs  ip, ip, lsr #24
72278   ldrne r5, [sp, #40]
72279   ldrneh  r5, [r5, #0]
72280   strneh  r5, [r1, #0]  @ movhi
72281 .L23008:
72282   ldr ip, [r8, #0]
72283   cmp ip, #0
72284   beq .L23017
72285   tst ip, #255
72286   ldrne r6, [sp, #40]
72287   mov r3, ip, lsr #8
72288   ldrneh  r6, [r6, #14]
72289   strneh  r6, [r1, #14] @ movhi
72290   tst r3, #255
72291   ldrne r3, [sp, #40]
72292   ldrneh  r3, [r3, #12]
72293   strneh  r3, [r1, #12] @ movhi
72294   mov r3, ip, lsr #16
72295   tst r3, #255
72296   ldrne r4, [sp, #40]
72297   ldrneh  r4, [r4, #10]
72298   strneh  r4, [r1, #10] @ movhi
72299   movs  ip, ip, lsr #24
72300   ldrne r5, [sp, #40]
72301   ldrneh  r5, [r5, #8]
72302   strneh  r5, [r1, #8]  @ movhi
72303 .L23017:
72304   add r2, r2, #1
72305   cmp lr, r2
72306   sub r0, r0, #64
72307   bne .L23071
72308   b .L22229
72309 .L23070:
72310   rsb fp, r9, r4
72311   cmp fp, #0
72312   ble .L22229
72313   ldr r5, [sp, #4]
72314   movs  sl, fp, lsr #3
72315   add r1, r5, r9, asl #1
72316   beq .L22966
72317   ldr r3, .L23084+44
72318   ldr r6, [sp, #40]
72319   add r0, r0, r3
72320   mov lr, r1
72321   mov r7, r8
72322   mov r2, #0
72323 .L22968:
72324   ldr ip, [r0, #68]
72325   cmp ip, #0
72326   beq .L22969
72327   tst ip, #255
72328   ldrneh  r3, [r6, #6]
72329   strneh  r3, [lr, #6]  @ movhi
72330   mov r3, ip, lsr #8
72331   tst r3, #255
72332   ldrneh  r4, [r6, #4]
72333   mov r3, ip, lsr #16
72334   strneh  r4, [lr, #4]  @ movhi
72335   tst r3, #255
72336   ldrneh  r5, [r6, #2]
72337   strneh  r5, [lr, #2]  @ movhi
72338   movs  ip, ip, lsr #24
72339   ldrneh  ip, [r6, #0]
72340   strneh  ip, [lr, #0]  @ movhi
72341 .L22969:
72342   ldr ip, [r7, #0]
72343   cmp ip, #0
72344   beq .L22978
72345   tst ip, #255
72346   ldrneh  r3, [r6, #14]
72347   strneh  r3, [lr, #14] @ movhi
72348   mov r3, ip, lsr #8
72349   tst r3, #255
72350   ldrneh  r4, [r6, #12]
72351   mov r3, ip, lsr #16
72352   strneh  r4, [lr, #12] @ movhi
72353   tst r3, #255
72354   ldrneh  r5, [r6, #10]
72355   strneh  r5, [lr, #10] @ movhi
72356   movs  ip, ip, lsr #24
72357   ldrneh  ip, [r6, #8]
72358   strneh  ip, [lr, #8]  @ movhi
72359 .L22978:
72360   add r2, r2, #1
72361   cmp sl, r2
72362   sub r7, r7, #64
72363   add lr, lr, #16
72364   add r6, r6, #16
72365   sub r0, r0, #64
72366   bne .L22968
72367   ldr lr, [sp, #40]
72368   mov r3, sl, asl #4
72369   rsb r2, sl, sl, asl #26
72370   add lr, lr, r3
72371   add r1, r1, r3
72372   add r8, r8, r2, asl #6
72373   str lr, [sp, #40]
72374 .L22966:
72375   ands  ip, fp, #7
72376   beq .L22229
72377   cmp ip, #3
72378   ldrls r2, [r8, #4]
72379   bls .L23001
72380   ldr r2, [r8, #4]
72381   cmp r2, #0
72382   beq .L22991
72383   tst r2, #255
72384   ldrne r0, [sp, #40]
72385   mov r3, r2, lsr #8
72386   ldrneh  r0, [r0, #6]
72387   strneh  r0, [r1, #6]  @ movhi
72388   tst r3, #255
72389   ldrne r3, [sp, #40]
72390   ldrneh  r3, [r3, #4]
72391   strneh  r3, [r1, #4]  @ movhi
72392   mov r3, r2, lsr #16
72393   tst r3, #255
72394   ldrne r4, [sp, #40]
72395   ldrneh  r4, [r4, #2]
72396   strneh  r4, [r1, #2]  @ movhi
72397   movs  r2, r2, lsr #24
72398   ldrne r5, [sp, #40]
72399   ldrneh  r5, [r5, #0]
72400   strneh  r5, [r1, #0]  @ movhi
72401 .L22991:
72402   subs  ip, ip, #4
72403   ldr r2, [r8, #0]
72404   beq .L22229
72405   ldr r6, [sp, #40]
72406   add r1, r1, #8
72407   add r6, r6, #8
72408   str r6, [sp, #40]
72409 .L23001:
72410   mov r3, #0
72411 .L23002:
72412   movs  lr, r2, lsr #24
72413   ldrne r4, [sp, #40]
72414   mov r0, r3, asl #1
72415   ldrneh  r4, [r0, r4]
72416   add r3, r3, #1
72417   strneh  r4, [r0, r1]  @ movhi
72418   cmp ip, r3
72419   mov r2, r2, asl #8
72420   bhi .L23002
72421   b .L22229
72422 .L23066:
72423   rsb r8, r9, r1
72424   cmp r8, #0
72425   ble .L22229
72426   ldr r2, [sp, #4]
72427   movs  r3, r8, lsr #3
72428   add r1, r2, r9, asl #1
72429   beq .L22541
72430   ldr lr, [sp, #40]
72431   mov ip, r1
72432   mov r6, r0
72433   mov r7, #0
72434 .L22543:
72435   ldr r2, [r6, #0]
72436   cmp r2, #0
72437   beq .L22544
72438   tst r2, #15
72439   ldrneh  r4, [lr, #14]
72440   strneh  r4, [ip, #14] @ movhi
72441   tst r2, #240
72442   ldrneh  r5, [lr, #12]
72443   strneh  r5, [ip, #12] @ movhi
72444   tst r2, #3840
72445   ldrneh  r4, [lr, #10]
72446   strneh  r4, [ip, #10] @ movhi
72447   tst r2, #61440
72448   ldrneh  r5, [lr, #8]
72449   strneh  r5, [ip, #8]  @ movhi
72450   tst r2, #983040
72451   ldrneh  r4, [lr, #6]
72452   strneh  r4, [ip, #6]  @ movhi
72453   tst r2, #15728640
72454   ldrneh  r5, [lr, #4]
72455   strneh  r5, [ip, #4]  @ movhi
72456   tst r2, #251658240
72457   ldrneh  r4, [lr, #2]
72458   strneh  r4, [ip, #2]  @ movhi
72459   movs  r2, r2, lsr #28
72460   ldrneh  r5, [lr, #0]
72461   strneh  r5, [ip, #0]  @ movhi
72462 .L22544:
72463   add r7, r7, #1
72464   cmp r7, r3
72465   sub r6, r6, #32
72466   add ip, ip, #16
72467   add lr, lr, #16
72468   bne .L22543
72469   ldr r6, [sp, #40]
72470   rsb r2, r3, r3, asl #27
72471   mov r3, r3, asl #4
72472   add r6, r6, r3
72473   add r1, r1, r3
72474   add r0, r0, r2, asl #5
72475   str r6, [sp, #40]
72476 .L22541:
72477   ands  ip, r8, #7
72478   beq .L22229
72479   ldr r0, [r0, #0]
72480   mov r2, #0
72481 .L22563:
72482   movs  lr, r0, lsr #28
72483   ldrne r4, [sp, #40]
72484   mov r3, r2, asl #1
72485   ldrneh  r4, [r3, r4]
72486   add r2, r2, #1
72487   strneh  r4, [r3, r1]  @ movhi
72488   cmp r2, ip
72489   mov r0, r0, asl #4
72490   bne .L22563
72491   b .L22229
72492 .L23068:
72493   rsb r8, r9, r1
72494   cmp r8, #0
72495   ble .L22229
72496   ldr r2, [sp, #4]
72497   movs  r7, r8, lsr #3
72498   add r1, r2, r9, asl #1
72499   beq .L22411
72500   ldr lr, [sp, #40]
72501   mov ip, r1
72502   mov r6, r0
72503   mov r2, #0
72504 .L22413:
72505   ldr r3, [r6, #0]
72506   cmp r3, #0
72507   beq .L22414
72508   tst r3, #15
72509   ldrneh  r4, [lr, #0]
72510   strneh  r4, [ip, #0]  @ movhi
72511   tst r3, #240
72512   ldrneh  r5, [lr, #2]
72513   strneh  r5, [ip, #2]  @ movhi
72514   tst r3, #3840
72515   ldrneh  r4, [lr, #4]
72516   strneh  r4, [ip, #4]  @ movhi
72517   tst r3, #61440
72518   ldrneh  r5, [lr, #6]
72519   strneh  r5, [ip, #6]  @ movhi
72520   tst r3, #983040
72521   ldrneh  r4, [lr, #8]
72522   strneh  r4, [ip, #8]  @ movhi
72523   tst r3, #15728640
72524   ldrneh  r5, [lr, #10]
72525   strneh  r5, [ip, #10] @ movhi
72526   tst r3, #251658240
72527   ldrneh  r4, [lr, #12]
72528   strneh  r4, [ip, #12] @ movhi
72529   movs  r3, r3, lsr #28
72530   ldrneh  r5, [lr, #14]
72531   strneh  r5, [ip, #14] @ movhi
72532 .L22414:
72533   add r2, r2, #1
72534   cmp r2, r7
72535   add r6, r6, #32
72536   add ip, ip, #16
72537   add lr, lr, #16
72538   bne .L22413
72539   ldr r6, [sp, #40]
72540   mov r3, r7, asl #4
72541   add r6, r6, r3
72542   add r1, r1, r3
72543   add r0, r0, r7, asl #5
72544   str r6, [sp, #40]
72545 .L22411:
72546   ands  ip, r8, #7
72547   beq .L22229
72548   ldr r0, [r0, #0]
72549   mov r2, #0
72550 .L22433:
72551   tst r0, #15
72552   ldrne lr, [sp, #40]
72553   mov r3, r2, asl #1
72554   ldrneh  lr, [r3, lr]
72555   add r2, r2, #1
72556   strneh  lr, [r3, r1]  @ movhi
72557   cmp r2, ip
72558   mov r0, r0, lsr #4
72559   bne .L22433
72560   b .L22229
72561 .L23064:
72562   rsb fp, r9, r4
72563   cmp fp, #0
72564   ble .L22229
72565   ldr r5, [sp, #4]
72566   movs  sl, fp, lsr #3
72567   add r1, r5, r9, asl #1
72568   beq .L22746
72569   ldr r3, .L23084+48
72570   ldr r6, [sp, #40]
72571   add r0, r0, r3
72572   mov lr, r1
72573   mov r7, r2
72574   mov r8, #0
72575 .L22748:
72576   ldr ip, [r7, #0]
72577   cmp ip, #0
72578   beq .L22749
72579   tst ip, #255
72580   ldrneh  r3, [r6, #0]
72581   strneh  r3, [lr, #0]  @ movhi
72582   mov r3, ip, lsr #8
72583   tst r3, #255
72584   ldrneh  r4, [r6, #2]
72585   mov r3, ip, lsr #16
72586   strneh  r4, [lr, #2]  @ movhi
72587   tst r3, #255
72588   ldrneh  r5, [r6, #4]
72589   strneh  r5, [lr, #4]  @ movhi
72590   movs  ip, ip, lsr #24
72591   ldrneh  ip, [r6, #6]
72592   strneh  ip, [lr, #6]  @ movhi
72593 .L22749:
72594   ldr ip, [r0, #-60]
72595   cmp ip, #0
72596   beq .L22758
72597   tst ip, #255
72598   ldrneh  r3, [r6, #8]
72599   strneh  r3, [lr, #8]  @ movhi
72600   mov r3, ip, lsr #8
72601   tst r3, #255
72602   ldrneh  r4, [r6, #10]
72603   mov r3, ip, lsr #16
72604   strneh  r4, [lr, #10] @ movhi
72605   tst r3, #255
72606   ldrneh  r5, [r6, #12]
72607   strneh  r5, [lr, #12] @ movhi
72608   movs  ip, ip, lsr #24
72609   ldrneh  ip, [r6, #14]
72610   strneh  ip, [lr, #14] @ movhi
72611 .L22758:
72612   add r8, r8, #1
72613   cmp r8, sl
72614   add r7, r7, #64
72615   add lr, lr, #16
72616   add r6, r6, #16
72617   add r0, r0, #64
72618   bne .L22748
72619   ldr lr, [sp, #40]
72620   mov r3, sl, asl #4
72621   add lr, lr, r3
72622   add r1, r1, r3
72623   add r2, r2, sl, asl #6
72624   str lr, [sp, #40]
72625 .L22746:
72626   ands  ip, fp, #7
72627   beq .L22229
72628   cmp ip, #3
72629   ldrls r3, [r2, #0]
72630   bls .L22781
72631   ldr r0, [r2, #0]
72632   cmp r0, #0
72633   beq .L22771
72634   tst r0, #255
72635   ldrne r3, [sp, #40]
72636   ldrneh  r3, [r3, #0]
72637   strneh  r3, [r1, #0]  @ movhi
72638   mov r3, r0, lsr #8
72639   tst r3, #255
72640   ldrne r4, [sp, #40]
72641   mov r3, r0, lsr #16
72642   ldrneh  r4, [r4, #2]
72643   strneh  r4, [r1, #2]  @ movhi
72644   tst r3, #255
72645   ldrne r5, [sp, #40]
72646   ldrneh  r5, [r5, #4]
72647   strneh  r5, [r1, #4]  @ movhi
72648   movs  r0, r0, lsr #24
72649   ldrne r6, [sp, #40]
72650   ldrneh  r6, [r6, #6]
72651   strneh  r6, [r1, #6]  @ movhi
72652 .L22771:
72653   subs  ip, ip, #4
72654   ldr r3, [r2, #4]
72655   beq .L22229
72656   ldr lr, [sp, #40]
72657   add r1, r1, #8
72658   add lr, lr, #8
72659   str lr, [sp, #40]
72660 .L22781:
72661   mov r2, #0
72662 .L22782:
72663   tst r3, #255
72664   ldrne r4, [sp, #40]
72665   mov r0, r2, asl #1
72666   ldrneh  r4, [r0, r4]
72667   add r2, r2, #1
72668   strneh  r4, [r0, r1]  @ movhi
72669   cmp ip, r2
72670   mov r3, r3, lsr #8
72671   bhi .L22782
72672   b .L22229
72673 .L22330:
72674   mov r3, ip, lsr #3
72675   mov r1, r3, asl #5
72676   ands  r3, ip, #7
72677   ldreq r3, [sp, #100]
72678   add ip, r0, r1
72679   bne .L23072
72680 .L22379:
72681   movs  r0, lr, lsr #3
72682   beq .L22229
72683   mov r1, #0
72684   b .L22389
72685 .L23073:
72686   ldr lr, [sp, #40]
72687   add ip, ip, #32
72688   add lr, lr, #16
72689   add r3, r3, #16
72690   str lr, [sp, #40]
72691 .L22389:
72692   ldr r2, [ip, #0]
72693   cmp r2, #0
72694   beq .L22390
72695   tst r2, #15
72696   ldrne lr, [sp, #40]
72697   ldrneh  lr, [lr, #0]
72698   strneh  lr, [r3, #0]  @ movhi
72699   tst r2, #240
72700   ldrne r4, [sp, #40]
72701   ldrneh  r4, [r4, #2]
72702   strneh  r4, [r3, #2]  @ movhi
72703   tst r2, #3840
72704   ldrne r5, [sp, #40]
72705   ldrneh  r5, [r5, #4]
72706   strneh  r5, [r3, #4]  @ movhi
72707   tst r2, #61440
72708   ldrne r6, [sp, #40]
72709   ldrneh  r6, [r6, #6]
72710   strneh  r6, [r3, #6]  @ movhi
72711   tst r2, #983040
72712   ldrne lr, [sp, #40]
72713   ldrneh  lr, [lr, #8]
72714   strneh  lr, [r3, #8]  @ movhi
72715   tst r2, #15728640
72716   ldrne r4, [sp, #40]
72717   ldrneh  r4, [r4, #10]
72718   strneh  r4, [r3, #10] @ movhi
72719   tst r2, #251658240
72720   ldrne r5, [sp, #40]
72721   ldrneh  r5, [r5, #12]
72722   strneh  r5, [r3, #12] @ movhi
72723   movs  r2, r2, lsr #28
72724   ldrne r6, [sp, #40]
72725   ldrneh  r6, [r6, #14]
72726   strneh  r6, [r3, #14] @ movhi
72727 .L22390:
72728   add r1, r1, #1
72729   cmp r1, r0
72730   bne .L23073
72731   b .L22229
72732 .L22590:
72733   ands  r1, r0, #7
72734   mov r3, r0, lsr #3
72735   add r0, r2, r3, asl #6
72736   ldreq r1, [sp, #100]
72737   bne .L23074
72738 .L22694:
72739   movs  lr, lr, lsr #3
72740   beq .L22229
72741   mov ip, #0
72742   b .L22723
72743 .L23075:
72744   ldr r2, [sp, #40]
72745   add r0, r0, #64
72746   add r2, r2, #16
72747   add r1, r1, #16
72748   str r2, [sp, #40]
72749 .L22723:
72750   ldr r2, [r0, #0]
72751   cmp r2, #0
72752   beq .L22724
72753   tst r2, #255
72754   ldrne r3, [sp, #40]
72755   ldrneh  r3, [r3, #0]
72756   strneh  r3, [r1, #0]  @ movhi
72757   mov r3, r2, lsr #8
72758   tst r3, #255
72759   ldrne r4, [sp, #40]
72760   mov r3, r2, lsr #16
72761   ldrneh  r4, [r4, #2]
72762   strneh  r4, [r1, #2]  @ movhi
72763   tst r3, #255
72764   ldrne r5, [sp, #40]
72765   ldrneh  r5, [r5, #4]
72766   strneh  r5, [r1, #4]  @ movhi
72767   movs  r2, r2, lsr #24
72768   ldrne r6, [sp, #40]
72769   ldrneh  r6, [r6, #6]
72770   strneh  r6, [r1, #6]  @ movhi
72771 .L22724:
72772   ldr r2, [r0, #4]
72773   cmp r2, #0
72774   beq .L22733
72775   tst r2, #255
72776   ldrne r3, [sp, #40]
72777   ldrneh  r3, [r3, #8]
72778   strneh  r3, [r1, #8]  @ movhi
72779   mov r3, r2, lsr #8
72780   tst r3, #255
72781   ldrne r4, [sp, #40]
72782   mov r3, r2, lsr #16
72783   ldrneh  r4, [r4, #10]
72784   strneh  r4, [r1, #10] @ movhi
72785   tst r3, #255
72786   ldrne r5, [sp, #40]
72787   ldrneh  r5, [r5, #12]
72788   strneh  r5, [r1, #12] @ movhi
72789   movs  r2, r2, lsr #24
72790   ldrne r6, [sp, #40]
72791   ldrneh  r6, [r6, #14]
72792   strneh  r6, [r1, #14] @ movhi
72793 .L22733:
72794   add ip, ip, #1
72795   cmp ip, lr
72796   bne .L23075
72797   b .L22229
72798 .L22810:
72799   ands  r2, r0, #7
72800   mov r3, r0, lsr #3
72801   sub r0, r8, r3, asl #6
72802   ldreq r1, [sp, #100]
72803   bne .L23076
72804 .L22914:
72805   movs  lr, lr, lsr #3
72806   beq .L22229
72807   mov ip, #0
72808   b .L22943
72809 .L23077:
72810   ldr r2, [sp, #40]
72811   sub r0, r0, #64
72812   add r2, r2, #16
72813   add r1, r1, #16
72814   str r2, [sp, #40]
72815 .L22943:
72816   ldr r2, [r0, #4]
72817   cmp r2, #0
72818   beq .L22944
72819   tst r2, #255
72820   ldrne r3, [sp, #40]
72821   ldrneh  r3, [r3, #6]
72822   strneh  r3, [r1, #6]  @ movhi
72823   mov r3, r2, lsr #8
72824   tst r3, #255
72825   ldrne r4, [sp, #40]
72826   mov r3, r2, lsr #16
72827   ldrneh  r4, [r4, #4]
72828   strneh  r4, [r1, #4]  @ movhi
72829   tst r3, #255
72830   ldrne r5, [sp, #40]
72831   ldrneh  r5, [r5, #2]
72832   strneh  r5, [r1, #2]  @ movhi
72833   movs  r2, r2, lsr #24
72834   ldrne r6, [sp, #40]
72835   ldrneh  r6, [r6, #0]
72836   strneh  r6, [r1, #0]  @ movhi
72837 .L22944:
72838   ldr r2, [r0, #0]
72839   cmp r2, #0
72840   beq .L22953
72841   tst r2, #255
72842   ldrne r3, [sp, #40]
72843   ldrneh  r3, [r3, #14]
72844   strneh  r3, [r1, #14] @ movhi
72845   mov r3, r2, lsr #8
72846   tst r3, #255
72847   ldrne r4, [sp, #40]
72848   mov r3, r2, lsr #16
72849   ldrneh  r4, [r4, #12]
72850   strneh  r4, [r1, #12] @ movhi
72851   tst r3, #255
72852   ldrne r5, [sp, #40]
72853   ldrneh  r5, [r5, #10]
72854   strneh  r5, [r1, #10] @ movhi
72855   movs  r2, r2, lsr #24
72856   ldrne r6, [sp, #40]
72857   ldrneh  r6, [r6, #8]
72858   strneh  r6, [r1, #8]  @ movhi
72859 .L22953:
72860   add ip, ip, #1
72861   cmp ip, lr
72862   bne .L23077
72863   b .L22229
72864 .L22460:
72865   mov r3, ip, lsr #3
72866   ands  r2, ip, #7
72867   sub r0, r0, r3, asl #5
72868   ldreq r3, [sp, #100]
72869   bne .L23078
72870 .L22509:
72871   movs  r1, r1, lsr #3
72872   beq .L22229
72873   mov r2, #0
72874   b .L22519
72875 .L23079:
72876   ldr ip, [sp, #40]
72877   sub r0, r0, #32
72878   add ip, ip, #16
72879   add r3, r3, #16
72880   str ip, [sp, #40]
72881 .L22519:
72882   ldr ip, [r0, #0]
72883   cmp ip, #0
72884   beq .L22520
72885   tst ip, #15
72886   ldrne lr, [sp, #40]
72887   ldrneh  lr, [lr, #14]
72888   strneh  lr, [r3, #14] @ movhi
72889   tst ip, #240
72890   ldrne r4, [sp, #40]
72891   ldrneh  r4, [r4, #12]
72892   strneh  r4, [r3, #12] @ movhi
72893   tst ip, #3840
72894   ldrne r5, [sp, #40]
72895   ldrneh  r5, [r5, #10]
72896   strneh  r5, [r3, #10] @ movhi
72897   tst ip, #61440
72898   ldrne r6, [sp, #40]
72899   ldrneh  r6, [r6, #8]
72900   strneh  r6, [r3, #8]  @ movhi
72901   tst ip, #983040
72902   ldrne lr, [sp, #40]
72903   ldrneh  lr, [lr, #6]
72904   strneh  lr, [r3, #6]  @ movhi
72905   tst ip, #15728640
72906   ldrne r4, [sp, #40]
72907   ldrneh  r4, [r4, #4]
72908   strneh  r4, [r3, #4]  @ movhi
72909   tst ip, #251658240
72910   ldrne r5, [sp, #40]
72911   ldrneh  r5, [r5, #2]
72912   strneh  r5, [r3, #2]  @ movhi
72913   movs  ip, ip, lsr #28
72914   ldrne r6, [sp, #40]
72915   ldrneh  r6, [r6, #0]
72916   strneh  r6, [r3, #0]  @ movhi
72917 .L22520:
72918   add r2, r2, #1
72919   cmp r2, r1
72920   bne .L23079
72921   b .L22229
72922 .L23078:
72923   rsbs  r6, r2, #8
72924   ldr ip, [r0, #0]
72925   ldreq r3, [sp, #100]
72926   beq .L22512
72927   mov r3, r2, asl #2
72928   mov r3, ip, asl r3
72929   mov lr, #0
72930 .L22513:
72931   movs  r5, r3, lsr #28
72932   ldrne r2, [sp, #40]
72933   mov ip, lr, asl #1
72934   ldrneh  r4, [ip, r2]
72935   ldrne r2, [sp, #100]
72936   add lr, lr, #1
72937   strneh  r4, [ip, r2]  @ movhi
72938   cmp lr, r6
72939   mov r3, r3, asl #4
72940   bne .L22513
72941   ldr r5, [sp, #40]
72942   mov r3, r6, asl #1
72943   ldr r6, [sp, #100]
72944   add r5, r5, r3
72945   str r5, [sp, #40]
72946   add r3, r6, r3
72947 .L22512:
72948   sub r0, r0, #32
72949   b .L22509
72950 .L23076:
72951   cmp r2, #3
72952   rsb ip, r2, #8
72953   bls .L22915
72954   cmp ip, #0
72955   ldr r1, [r0, #0]
72956   ldreq r1, [sp, #100]
72957   beq .L22919
72958   mov r3, r2, asl #3
72959   sub r3, r3, #32
72960   mov r3, r1, asl r3
72961   mov r1, #0
72962 .L22920:
72963   movs  r5, r3, lsr #24
72964   ldrne r6, [sp, #40]
72965   mov r2, r1, asl #1
72966   ldrneh  r4, [r2, r6]
72967   ldrne r6, [sp, #100]
72968   add r1, r1, #1
72969   strneh  r4, [r2, r6]  @ movhi
72970   cmp r1, ip
72971   mov r3, r3, asl #8
72972   bne .L22920
72973   ldr r5, [sp, #40]
72974   mov r3, ip, asl #1
72975   ldr r6, [sp, #100]
72976   add r5, r5, r3
72977   str r5, [sp, #40]
72978   add r1, r6, r3
72979 .L22919:
72980   sub r0, r0, #64
72981   b .L22914
72982 .L23074:
72983   cmp r1, #3
72984   rsb ip, r1, #8
72985   bls .L22695
72986   cmp ip, #0
72987   ldr r2, [r0, #4]
72988   ldreq r1, [sp, #100]
72989   beq .L22699
72990   mov r3, r1, asl #3
72991   sub r3, r3, #32
72992   mov r3, r2, lsr r3
72993   mov r1, #0
72994 .L22700:
72995   tst r3, #255
72996   ldrne r5, [sp, #40]
72997   mov r2, r1, asl #1
72998   ldrneh  r6, [r2, r5]
72999   ldrne r5, [sp, #100]
73000   add r1, r1, #1
73001   strneh  r6, [r2, r5]  @ movhi
73002   cmp ip, r1
73003   mov r3, r3, lsr #8
73004   bne .L22700
73005   mov r3, ip, asl #1
73006   ldr ip, [sp, #40]
73007   ldr r2, [sp, #100]
73008   add ip, ip, r3
73009   str ip, [sp, #40]
73010   add r1, r2, r3
73011 .L22699:
73012   add r0, r0, #64
73013   b .L22694
73014 .L23072:
73015   rsbs  r6, r3, #8
73016   ldr r0, [r0, r1]
73017   ldreq r3, [sp, #100]
73018   beq .L22382
73019   mov r3, r3, asl #2
73020   mov r0, r0, lsr r3
73021   mov r2, #0
73022 .L22383:
73023   tst r0, #15
73024   ldrne r1, [sp, #40]
73025   mov r3, r2, asl #1
73026   ldrneh  r4, [r3, r1]
73027   ldrne r1, [sp, #100]
73028   add r2, r2, #1
73029   strneh  r4, [r3, r1]  @ movhi
73030   cmp r6, r2
73031   mov r0, r0, lsr #4
73032   bne .L22383
73033   ldr r5, [sp, #40]
73034   mov r3, r6, asl #1
73035   ldr r6, [sp, #100]
73036   add r5, r5, r3
73037   str r5, [sp, #40]
73038   add r3, r6, r3
73039 .L22382:
73040   add ip, ip, #32
73041   b .L22379
73042 .L22812:
73043   ldr lr, [sp, #120]
73044   rsb r0, ip, #8
73045   cmp lr, r0
73046   bge .L22815
73047   cmp lr, #0
73048   ble .L22229
73049   cmp ip, #3
73050   bls .L22818
73051   ldr r2, [sl, #0]
73052   mov r3, ip, asl #3
73053   sub r3, r3, #32
73054   mov r2, r2, asl r3
73055   mov r1, #0
73056 .L22821:
73057   movs  r0, r2, lsr #24
73058   ldrne r4, [sp, #40]
73059   mov r3, r1, asl #1
73060   ldrneh  r5, [r3, r4]
73061   ldr r6, [sp, #120]
73062   ldrne r4, [sp, #100]
73063   add r1, r1, #1
73064   strneh  r5, [r3, r4]  @ movhi
73065   cmp r6, r1
73066   mov r2, r2, asl #8
73067   bne .L22821
73068   b .L22229
73069 .L22592:
73070   ldr r5, [sp, #120]
73071   rsb r0, ip, #8
73072   cmp r5, r0
73073   bge .L22595
73074   cmp r5, #0
73075   ble .L22229
73076   cmp ip, #3
73077   bls .L22598
73078   ldr r2, [sl, #4]
73079   mov r3, ip, asl #3
73080   sub r3, r3, #32
73081   mov r1, r2, lsr r3
73082   mov r2, #0
73083 .L22601:
73084   tst r1, #255
73085   ldrne r6, [sp, #40]
73086   mov r3, r2, asl #1
73087   ldrneh  ip, [r3, r6]
73088   ldr lr, [sp, #120]
73089   ldrne r6, [sp, #100]
73090   add r2, r2, #1
73091   strneh  ip, [r3, r6]  @ movhi
73092   cmp lr, r2
73093   mov r1, r1, lsr #8
73094   bne .L22601
73095   b .L22229
73096 .L22332:
73097   ldr r5, [sp, #120]
73098   rsb ip, r3, #8
73099   cmp r5, ip
73100   bge .L22335
73101   cmp r5, #0
73102   ble .L22229
73103   ldr r2, [r0, r1]
73104   mov r3, r3, asl #2
73105   mov r0, r2, lsr r3
73106   mov r2, #0
73107 .L22339:
73108   tst r0, #15
73109   ldrne r6, [sp, #40]
73110   mov r3, r2, asl #1
73111   ldrneh  ip, [r3, r6]
73112   ldr lr, [sp, #120]
73113   ldrne r6, [sp, #100]
73114   add r2, r2, #1
73115   strneh  ip, [r3, r6]  @ movhi
73116   cmp lr, r2
73117   mov r0, r0, lsr #4
73118   bne .L22339
73119   b .L22229
73120 .L22462:
73121   ldr ip, [sp, #120]
73122   rsb lr, r6, #8
73123   cmp ip, lr
73124   bge .L22465
73125   cmp ip, #0
73126   ble .L22229
73127   ldr r2, [r0, #0]
73128   mov r3, r6, asl #2
73129   mov r0, r2, asl r3
73130   mov r2, #0
73131 .L22469:
73132   movs  lr, r0, lsr #28
73133   ldrne r1, [sp, #40]
73134   mov r3, r2, asl #1
73135   ldrneh  r4, [r3, r1]
73136   ldr r5, [sp, #120]
73137   ldrne r1, [sp, #100]
73138   add r2, r2, #1
73139   strneh  r4, [r3, r1]  @ movhi
73140   cmp r5, r2
73141   mov r0, r0, asl #4
73142   bne .L22469
73143   b .L22229
73144 .L22915:
73145   subs  r6, ip, #4
73146   ldr r1, [r0, #4]
73147   ldreq r1, [sp, #100]
73148   beq .L22927
73149   mov r3, r2, asl #3
73150   sub r3, r3, #32
73151   mov r3, r1, asl r3
73152   mov r1, #0
73153 .L22928:
73154   movs  r2, r3, lsr #24
73155   ldrne r4, [sp, #40]
73156   mov r2, r1, asl #1
73157   ldrneh  r5, [r2, r4]
73158   ldrne r4, [sp, #100]
73159   add r1, r1, #1
73160   strneh  r5, [r2, r4]  @ movhi
73161   cmp r1, r6
73162   mov r3, r3, asl #8
73163   bne .L22928
73164   ldr r6, [sp, #40]
73165   mov r3, ip, asl #1
73166   ldr ip, [sp, #100]
73167   add r2, r6, r3
73168   sub r2, r2, #8
73169   add r3, ip, r3
73170   str r2, [sp, #40]
73171   sub r1, r3, #8
73172 .L22927:
73173   ldr r2, [r0, #0]
73174   cmp r2, #0
73175   beq .L22933
73176   tst r2, #255
73177   ldrne r3, [sp, #40]
73178   ldrneh  r3, [r3, #6]
73179   strneh  r3, [r1, #6]  @ movhi
73180   mov r3, r2, lsr #8
73181   tst r3, #255
73182   ldrne r4, [sp, #40]
73183   mov r3, r2, lsr #16
73184   ldrneh  r4, [r4, #4]
73185   strneh  r4, [r1, #4]  @ movhi
73186   tst r3, #255
73187   ldrne r5, [sp, #40]
73188   ldrneh  r5, [r5, #2]
73189   strneh  r5, [r1, #2]  @ movhi
73190   movs  r2, r2, lsr #24
73191   ldrne r6, [sp, #40]
73192   ldrneh  r6, [r6, #0]
73193   strneh  r6, [r1, #0]  @ movhi
73194 .L22933:
73195   ldr ip, [sp, #40]
73196   add r1, r1, #8
73197   add ip, ip, #8
73198   sub r0, r0, #64
73199   str ip, [sp, #40]
73200   b .L22914
73201 .L22695:
73202   subs  r6, ip, #4
73203   ldr r2, [r0, #0]
73204   ldreq r1, [sp, #100]
73205   beq .L22707
73206   mov r3, r1, asl #3
73207   mov r3, r2, lsr r3
73208   mov r1, #0
73209 .L22708:
73210   tst r3, #255
73211   ldrne r4, [sp, #40]
73212   mov r2, r1, asl #1
73213   ldrneh  r5, [r2, r4]
73214   ldrne r4, [sp, #100]
73215   add r1, r1, #1
73216   strneh  r5, [r2, r4]  @ movhi
73217   cmp r1, r6
73218   mov r3, r3, lsr #8
73219   bne .L22708
73220   ldr r6, [sp, #40]
73221   mov r3, ip, asl #1
73222   ldr ip, [sp, #100]
73223   add r2, r6, r3
73224   sub r2, r2, #8
73225   add r3, ip, r3
73226   str r2, [sp, #40]
73227   sub r1, r3, #8
73228 .L22707:
73229   ldr r2, [r0, #4]
73230   cmp r2, #0
73231   beq .L22713
73232   tst r2, #255
73233   ldrne r3, [sp, #40]
73234   ldrneh  r3, [r3, #0]
73235   strneh  r3, [r1, #0]  @ movhi
73236   mov r3, r2, lsr #8
73237   tst r3, #255
73238   ldrne r4, [sp, #40]
73239   mov r3, r2, lsr #16
73240   ldrneh  r4, [r4, #2]
73241   strneh  r4, [r1, #2]  @ movhi
73242   tst r3, #255
73243   ldrne r5, [sp, #40]
73244   ldrneh  r5, [r5, #4]
73245   strneh  r5, [r1, #4]  @ movhi
73246   movs  r2, r2, lsr #24
73247   ldrne r6, [sp, #40]
73248   ldrneh  r6, [r6, #6]
73249   strneh  r6, [r1, #6]  @ movhi
73250 .L22713:
73251   ldr ip, [sp, #40]
73252   add r1, r1, #8
73253   add ip, ip, #8
73254   add r0, r0, #64
73255   str ip, [sp, #40]
73256   b .L22694
73257 .L22595:
73258   cmp ip, #3
73259   bls .L22625
73260   cmp r0, #0
73261   ldr r2, [sl, #4]
73262   ldreq r7, [sp, #100]
73263   beq .L22629
73264   mov r3, ip, asl #3
73265   sub r3, r3, #32
73266   mov r1, r2, lsr r3
73267   mov r2, #0
73268 .L22630:
73269   tst r1, #255
73270   ldrne lr, [sp, #40]
73271   mov r3, r2, asl #1
73272   ldrneh  r4, [r3, lr]
73273   ldrne lr, [sp, #100]
73274   add r2, r2, #1
73275   strneh  r4, [r3, lr]  @ movhi
73276   cmp r0, r2
73277   mov r1, r1, lsr #8
73278   bne .L22630
73279   ldr r5, [sp, #40]
73280   mov r3, r0, asl #1
73281   ldr r6, [sp, #100]
73282   add r5, r5, r3
73283   str r5, [sp, #40]
73284   add r7, r3, r6
73285 .L22629:
73286   ldr r6, [sp, #120]
73287   add sl, sl, #64
73288   rsb r8, r0, r6
73289   b .L22594
73290 .L22335:
73291   cmp ip, #0
73292   ldr r2, [r6, #0]
73293   ldreq r7, [sp, #100]
73294   beq .L22345
73295   mov r3, r3, asl #2
73296   mov r3, r2, lsr r3
73297   mov r1, #0
73298 .L22346:
73299   tst r3, #15
73300   ldrne r0, [sp, #40]
73301   mov r2, r1, asl #1
73302   ldrneh  r4, [r2, r0]
73303   ldrne r0, [sp, #100]
73304   add r1, r1, #1
73305   strneh  r4, [r2, r0]  @ movhi
73306   cmp ip, r1
73307   mov r3, r3, lsr #4
73308   bne .L22346
73309   ldr r5, [sp, #40]
73310   mov r3, ip, asl #1
73311   ldr lr, [sp, #100]
73312   add r5, r5, r3
73313   str r5, [sp, #40]
73314   add r7, r3, lr
73315 .L22345:
73316   ldr r0, [sp, #120]
73317   add r6, r6, #32
73318   rsb r5, ip, r0
73319   b .L22334
73320 .L22465:
73321   cmp lr, #0
73322   ldr r2, [r0, #0]
73323   ldreq r1, [sp, #100]
73324   beq .L22475
73325   mov r3, r6, asl #2
73326   mov r3, r2, asl r3
73327   mov ip, #0
73328 .L22476:
73329   movs  r6, r3, lsr #28
73330   ldrne r1, [sp, #40]
73331   mov r2, ip, asl #1
73332   ldrneh  r4, [r2, r1]
73333   ldrne r1, [sp, #100]
73334   add ip, ip, #1
73335   strneh  r4, [r2, r1]  @ movhi
73336   cmp lr, ip
73337   mov r3, r3, asl #4
73338   bne .L22476
73339   ldr r5, [sp, #40]
73340   mov r3, lr, asl #1
73341   ldr r6, [sp, #100]
73342   add r5, r5, r3
73343   str r5, [sp, #40]
73344   add r1, r3, r6
73345 .L22475:
73346   ldr ip, [sp, #120]
73347   sub r0, r0, #32
73348   rsb r8, lr, ip
73349   b .L22464
73350 .L22815:
73351   cmp ip, #3
73352   bls .L22845
73353   cmp r0, #0
73354   ldr r2, [sl, #0]
73355   ldreq r7, [sp, #100]
73356   beq .L22849
73357   mov r3, ip, asl #3
73358   sub r3, r3, #32
73359   mov r3, r2, asl r3
73360   mov r1, #0
73361 .L22850:
73362   movs  r2, r3, lsr #24
73363   ldrne r4, [sp, #40]
73364   mov r2, r1, asl #1
73365   ldrneh  r5, [r2, r4]
73366   ldrne r4, [sp, #100]
73367   add r1, r1, #1
73368   strneh  r5, [r2, r4]  @ movhi
73369   cmp r0, r1
73370   mov r3, r3, asl #8
73371   bne .L22850
73372   ldr r6, [sp, #40]
73373   mov r3, r0, asl #1
73374   ldr ip, [sp, #100]
73375   add r6, r6, r3
73376   str r6, [sp, #40]
73377   add r7, ip, r3
73378 .L22849:
73379   ldr ip, [sp, #120]
73380   sub sl, sl, #64
73381   rsb r8, r0, ip
73382   b .L22814
73383 .L23082:
73384   mov r8, #0
73385   b .L22312
73386 .L23083:
73387   mov r8, #0
73388   b .L22277
73389 .L23081:
73390   ldr r1, [sp, #32]
73391   b .L23046
73392 .L23080:
73393   ldr lr, [sp, #28]
73394   b .L23044
73395 .L22845:
73396   subs  lr, r0, #4
73397   ldr r2, [sl, #4]
73398   ldreq r1, [sp, #100]
73399   beq .L22857
73400   mov r3, ip, asl #3
73401   sub r3, r3, #32
73402   mov r3, r2, asl r3
73403   mov r1, #0
73404 .L22858:
73405   movs  r2, r3, lsr #24
73406   ldrne r4, [sp, #40]
73407   mov r2, r1, asl #1
73408   ldrneh  r5, [r2, r4]
73409   ldrne r4, [sp, #100]
73410   add r1, r1, #1
73411   strneh  r5, [r2, r4]  @ movhi
73412   cmp r1, lr
73413   mov r3, r3, asl #8
73414   bne .L22858
73415   ldr r6, [sp, #40]
73416   mov r3, r0, asl #1
73417   ldr ip, [sp, #100]
73418   add r2, r6, r3
73419   sub r2, r2, #8
73420   add r3, ip, r3
73421   str r2, [sp, #40]
73422   sub r1, r3, #8
73423 .L22857:
73424   ldr r2, [sl, #0]
73425   cmp r2, #0
73426   beq .L22863
73427   tst r2, #255
73428   ldrne lr, [sp, #40]
73429   mov r3, r2, lsr #8
73430   ldrneh  lr, [lr, #6]
73431   strneh  lr, [r1, #6]  @ movhi
73432   tst r3, #255
73433   ldrne r3, [sp, #40]
73434   ldrneh  r3, [r3, #4]
73435   strneh  r3, [r1, #4]  @ movhi
73436   mov r3, r2, lsr #16
73437   tst r3, #255
73438   ldrne r4, [sp, #40]
73439   ldrneh  r4, [r4, #2]
73440   strneh  r4, [r1, #2]  @ movhi
73441   movs  r2, r2, lsr #24
73442   ldrne r5, [sp, #40]
73443   ldrneh  r5, [r5, #0]
73444   strneh  r5, [r1, #0]  @ movhi
73445 .L22863:
73446   ldr r6, [sp, #40]
73447   add r7, r1, #8
73448   add r6, r6, #8
73449   str r6, [sp, #40]
73450   b .L22849
73451 .L22625:
73452   subs  lr, r0, #4
73453   ldr r2, [sl, #0]
73454   ldreq r1, [sp, #100]
73455   beq .L22637
73456   mov r3, ip, asl #3
73457   mov r1, r2, lsr r3
73458   mov r2, #0
73459 .L22638:
73460   tst r1, #255
73461   ldrne ip, [sp, #40]
73462   mov r3, r2, asl #1
73463   ldrneh  r4, [r3, ip]
73464   ldrne ip, [sp, #100]
73465   add r2, r2, #1
73466   strneh  r4, [r3, ip]  @ movhi
73467   cmp r2, lr
73468   mov r1, r1, lsr #8
73469   bne .L22638
73470   ldr r5, [sp, #40]
73471   mov r3, r0, asl #1
73472   ldr r6, [sp, #100]
73473   add r2, r5, r3
73474   sub r2, r2, #8
73475   add r3, r6, r3
73476   str r2, [sp, #40]
73477   sub r1, r3, #8
73478 .L22637:
73479   ldr r2, [sl, #4]
73480   cmp r2, #0
73481   beq .L22643
73482   tst r2, #255
73483   ldrne ip, [sp, #40]
73484   mov r3, r2, lsr #8
73485   ldrneh  ip, [ip, #0]
73486   strneh  ip, [r1, #0]  @ movhi
73487   tst r3, #255
73488   ldrne lr, [sp, #40]
73489   mov r3, r2, lsr #16
73490   ldrneh  lr, [lr, #2]
73491   strneh  lr, [r1, #2]  @ movhi
73492   tst r3, #255
73493   ldrne r3, [sp, #40]
73494   ldrneh  r3, [r3, #4]
73495   strneh  r3, [r1, #4]  @ movhi
73496   movs  r2, r2, lsr #24
73497   ldrne r4, [sp, #40]
73498   ldrneh  r4, [r4, #6]
73499   strneh  r4, [r1, #6]  @ movhi
73500 .L22643:
73501   ldr r5, [sp, #40]
73502   add r7, r1, #8
73503   add r5, r5, #8
73504   str r5, [sp, #40]
73505   b .L22629
73506 .L22818:
73507   ldr lr, [sp, #120]
73508   mov r3, ip, asl #3
73509   ldr r1, [sl, #4]
73510   add r2, lr, ip
73511   sub r3, r3, #32
73512   cmp r2, #4
73513   mov r1, r1, asl r3
73514   bhi .L22825
73515   cmp lr, #0
73516   movne r2, #0
73517   beq .L22229
73518 .L22841:
73519   movs  r5, r1, lsr #24
73520   ldrne r6, [sp, #40]
73521   mov r3, r2, asl #1
73522   ldrneh  ip, [r3, r6]
73523   ldr lr, [sp, #120]
73524   ldrne r6, [sp, #100]
73525   add r2, r2, #1
73526   strneh  ip, [r3, r6]  @ movhi
73527   cmp lr, r2
73528   mov r1, r1, asl #8
73529   bne .L22841
73530   b .L22229
73531 .L22598:
73532   ldr r0, [sp, #120]
73533   ldr r3, [sl, #0]
73534   add r2, r0, ip
73535   mov r1, ip, asl #3
73536   cmp r2, #4
73537   mov r3, r3, lsr r1
73538   bhi .L22605
73539   cmp r0, #0
73540   movne r1, #0
73541   beq .L22229
73542 .L22621:
73543   tst r3, #255
73544   ldrne r5, [sp, #40]
73545   mov r2, r1, asl #1
73546   ldrneh  r6, [r2, r5]
73547   ldr ip, [sp, #120]
73548   ldrne r5, [sp, #100]
73549   add r1, r1, #1
73550   strneh  r6, [r2, r5]  @ movhi
73551   cmp ip, r1
73552   mov r3, r3, lsr #8
73553   bne .L22621
73554   b .L22229
73555 .L22825:
73556   rsbs  r2, ip, #4
73557   ldreq r3, [sp, #100]
73558   beq .L22830
73559   mov r0, #0
73560 .L22831:
73561   movs  r3, r1, lsr #24
73562   ldrne r4, [sp, #40]
73563   mov r3, r0, asl #1
73564   ldrneh  r5, [r3, r4]
73565   ldrne r4, [sp, #100]
73566   add r0, r0, #1
73567   strneh  r5, [r3, r4]  @ movhi
73568   cmp r0, r2
73569   mov r1, r1, asl #8
73570   bne .L22831
73571   ldr r6, [sp, #40]
73572   mov r3, r2, asl #1
73573   ldr ip, [sp, #100]
73574   add r6, r6, r3
73575   str r6, [sp, #40]
73576   add r3, r3, ip
73577 .L22830:
73578   ldr lr, [sp, #120]
73579   subs  ip, lr, r2
73580   ldr r2, [sl, #0]
73581   beq .L22229
73582   mov r0, #0
73583 .L22837:
73584   movs  r1, r2, lsr #24
73585   ldrne r4, [sp, #40]
73586   mov r1, r0, asl #1
73587   ldrneh  r4, [r1, r4]
73588   add r0, r0, #1
73589   strneh  r4, [r1, r3]  @ movhi
73590   cmp r0, ip
73591   mov r2, r2, asl #8
73592   bne .L22837
73593   b .L22229
73594 .L22605:
73595   rsbs  r1, ip, #4
73596   ldreq ip, [sp, #100]
73597   beq .L22610
73598   mov r0, #0
73599 .L22611:
73600   tst r3, #255
73601   ldrne r4, [sp, #40]
73602   mov r2, r0, asl #1
73603   ldrneh  r5, [r2, r4]
73604   ldrne r4, [sp, #100]
73605   add r0, r0, #1
73606   strneh  r5, [r2, r4]  @ movhi
73607   cmp r0, r1
73608   mov r3, r3, lsr #8
73609   bne .L22611
73610   ldr r6, [sp, #40]
73611   mov r3, r1, asl #1
73612   ldr lr, [sp, #100]
73613   add r6, r6, r3
73614   str r6, [sp, #40]
73615   add ip, r3, lr
73616 .L22610:
73617   ldr r2, [sp, #120]
73618   ldr r3, [sl, #4]
73619   subs  r0, r2, r1
73620   beq .L22229
73621   mov r1, #0
73622 .L22617:
73623   tst r3, #255
73624   ldrne r4, [sp, #40]
73625   mov r2, r1, asl #1
73626   ldrneh  r4, [r2, r4]
73627   add r1, r1, #1
73628   strneh  r4, [r2, ip]  @ movhi
73629   cmp r1, r0
73630   mov r3, r3, lsr #8
73631   bne .L22617
73632   b .L22229
73633   .size render_scanline_obj_copy_bitmap_1D, .-render_scanline_obj_copy_bitmap_1D
73634   .align  2
73635   .global render_scanline_window_bitmap
73636   .type render_scanline_window_bitmap, %function
73637 render_scanline_window_bitmap:
73638   @ args = 0, pretend = 0, frame = 20
73639   @ frame_needed = 0, uses_anonymous_args = 0
73640   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
73641   ldr lr, .L23662
73642   mov r2, r1, lsr #13
73643   ldrh  ip, [lr, #74]
73644   ldr r3, .L23662+4
73645   and ip, ip, #63
73646   sub sp, sp, #32
73647   mov r6, r1
73648   sub r2, r2, #1
73649   and r1, r1, #7
73650   str ip, [sp, #12]
73651   add r9, r3, r1, asl #2
73652   mov r7, r0
73653   ldrh  ip, [lr, #6]
73654   ldrh  sl, [lr, #80]
73655   cmp r2, #6
73656   ldrls pc, [pc, r2, asl #2]
73657   b .L23576
73658   .p2align 2
73659 .L23095:
73660   .word .L23088
73661   .word .L23089
73662   .word .L23090
73663   .word .L23091
73664   .word .L23092
73665   .word .L23093
73666   .word .L23094
73667 .L23089:
73668   ldrh  r3, [lr, #70]
73669   ldr r4, .L23662
73670   and r1, r3, #255
73671   mov r0, r3, lsr #8
73672   cmp r0, r1
73673   ldrh  r2, [lr, #72]
73674   bls .L23117
73675   cmp ip, r0
73676   movls r3, #0
73677   movhi r3, #1
73678   cmp ip, r1
73679   orrls r3, r3, #1
73680   cmp r3, #0
73681   bne .L23125
73682 .L23580:
73683   cmp r1, #227
73684   bhi .L23125
73685 .L23121:
73686   mov r4, #240
73687   mov r5, r4
73688 .L23133:
73689   mov r0, #0
73690   mov r1, r5
73691   mov r2, r7
73692   ldr r3, [sp, #12]
73693   stmia sp, {r6, sl}  @ phole stm
73694   str r9, [sp, #8]
73695   bl  render_scanline_conditional_bitmap
73696 .L23134:
73697   cmp r5, r4
73698   beq .L23114
73699   mov r0, r5
73700   mov r3, r8
73701   mov r1, r4
73702   mov r2, r7
73703   stmia sp, {r6, sl}  @ phole stm
73704   str r9, [sp, #8]
73705   bl  render_scanline_conditional_bitmap
73706 .L23114:
73707   cmp r4, #240
73708   beq .L23576
73709   ldr r3, [sp, #12]
73710   mov r0, r4
73711   mov r2, r7
73712 .L23623:
73713   mov r1, #240
73714   stmia sp, {r6, sl}  @ phole stm
73715   str r9, [sp, #8]
73716   bl  render_scanline_conditional_bitmap
73717 .L23576:
73718   add sp, sp, #32
73719   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
73720 .L23088:
73721   ldrh  r3, [lr, #68]
73722   ldr r4, .L23662
73723   and r2, r3, #255
73724   mov r1, r3, lsr #8
73725   cmp r1, r2
73726   ldrh  r0, [lr, #72]
73727   bls .L23096
73728   cmp ip, r1
73729   movls r3, #0
73730   movhi r3, #1
73731   cmp ip, r2
73732   orrls r3, r3, #1
73733   cmp r3, #0
73734   beq .L23578
73735 .L23104:
73736   cmp r1, #227
73737   bhi .L23121
73738   ldrh  r3, [r4, #64]
73739   and r8, r0, #63
73740   and r4, r3, #255
73741   mov r3, r3, lsr #8
73742   cmp r3, #240
73743   movcc r5, r3
73744   movcs r5, #240
73745   cmp r4, #240
73746   bhi .L23645
73747 .L23124:
73748   cmp r5, r4
73749   bls .L23128
73750   cmp r4, #0
73751   bne .L23646
73752 .L23130:
73753   mov r0, r4
73754   ldr r3, [sp, #12]
73755   mov r2, r7
73756   mov r1, r5
73757   stmia sp, {r6, sl}  @ phole stm
73758   str r9, [sp, #8]
73759   bl  render_scanline_conditional_bitmap
73760   cmp r5, #240
73761   movne r0, r5
73762   movne r2, r7
73763   movne r3, r8
73764   bne .L23623
73765   b .L23576
73766 .L23094:
73767   ldrh  r3, [lr, #68]
73768   ldr r2, .L23662
73769   and r1, r3, #255
73770   mov r0, r3, lsr #8
73771   cmp r0, r1
73772   ldrh  r4, [lr, #72]
73773   bls .L23360
73774   cmp ip, r0
73775   movls r3, #0
73776   movhi r3, #1
73777   cmp ip, r1
73778   orrls r3, r3, #1
73779   cmp r3, #0
73780   beq .L23639
73781 .L23368:
73782   cmp r0, #227
73783   bls .L23647
73784 .L23364:
73785   mov r8, #240
73786   mov fp, r8
73787 .L23367:
73788   ldrh  r3, [lr, #70]
73789   ldr r0, .L23662
73790   and r1, r3, #255
73791   mov r2, r3, lsr #8
73792   cmp r2, r1
73793   bls .L23371
73794   cmp ip, r2
73795   movls r3, #0
73796   movhi r3, #1
73797   cmp ip, r1
73798   orrls r3, r3, #1
73799   cmp r3, #0
73800   beq .L23640
73801 .L23379:
73802   cmp r2, #227
73803   bls .L23648
73804 .L23375:
73805   mov r5, #240
73806   mov r4, r5
73807 .L23378:
73808   cmp fp, r8
73809   bls .L23382
73810   cmp r8, #0
73811   bne .L23649
73812 .L23384:
73813   cmp r4, #240
73814   beq .L23386
73815   cmp r4, r5
73816   bhi .L23650
73817   cmp r4, #0
73818   beq .L23426
73819   cmp r8, #0
73820   beq .L23428
73821   cmp r8, r4
73822   bcs .L23426
73823 .L23428:
73824   cmp fp, r4
73825   bcs .L23437
73826   mov r0, r8
73827   mov r1, fp
73828   mov r2, r7
73829   ldr r3, [sp, #12]
73830   stmia sp, {r6, sl}  @ phole stm
73831   str r9, [sp, #8]
73832   bl  render_scanline_conditional_bitmap
73833   tst r6, #64
73834   beq .L23439
73835   mov r0, #4
73836   mov r1, r8
73837   mov r2, fp
73838   mov r3, r7
73839   bl  render_scanline_obj_copy_bitmap_1D
73840 .L23426:
73841   cmp r4, r5
73842   beq .L23443
73843   cmp r8, r4
73844   bls .L23445
73845   cmp r8, r5
73846   bcs .L23443
73847   cmp fp, r5
73848   ldrcc r3, [sp, #28]
73849   ldrcs r3, [sp, #28]
73850   movcc r0, r8
73851   movcc r1, fp
73852   movcs r0, r8
73853   movcs r1, r5
73854 .L23612:
73855   mov r2, r7
73856   stmia sp, {r6, sl}  @ phole stm
73857   str r9, [sp, #8]
73858   bl  render_scanline_conditional_bitmap
73859 .L23443:
73860   cmp r5, #240
73861   beq .L23418
73862   cmp r8, r5
73863   bls .L23454
73864   cmp r8, #239
73865   bhi .L23418
73866   cmp fp, #239
73867   bhi .L23457
73868   ldr r3, [sp, #12]
73869   mov r0, r8
73870   mov r1, fp
73871   mov r2, r7
73872   stmia sp, {r6, sl}  @ phole stm
73873   str r9, [sp, #8]
73874   bl  render_scanline_conditional_bitmap
73875   tst r6, #64
73876   beq .L23459
73877   mov r1, r8
73878   mov r0, #4
73879   mov r2, fp
73880   mov r3, r7
73881   bl  render_scanline_obj_copy_bitmap_1D
73882   b .L23422
73883 .L23093:
73884   ldrh  r3, [lr, #70]
73885   ldr r4, .L23662
73886   and r1, r3, #255
73887   mov r0, r3, lsr #8
73888   cmp r0, r1
73889   ldrh  r2, [lr, #72]
73890   bls .L23330
73891   cmp ip, r0
73892   movls r3, #0
73893   movhi r3, #1
73894   cmp ip, r1
73895   orrls r3, r3, #1
73896   cmp r3, #0
73897   beq .L23605
73898 .L23338:
73899   cmp r0, #227
73900   bls .L23651
73901 .L23334:
73902   mov r4, #240
73903   mov r5, r4
73904 .L23349:
73905   mov r0, #0
73906   mov r1, r5
73907   mov r2, r7
73908   ldr r3, [sp, #12]
73909   stmia sp, {r6, sl}  @ phole stm
73910   str r9, [sp, #8]
73911   bl  render_scanline_conditional_bitmap
73912 .L23350:
73913   ands  r8, r6, #64
73914   beq .L23351
73915   mov r0, #4
73916   mov r1, #0
73917   mov r2, r5
73918   mov r3, r7
73919   bl  render_scanline_obj_copy_bitmap_1D
73920 .L23353:
73921   cmp r4, r5
73922   beq .L23354
73923 .L23642:
73924   mov r0, r5
73925   mov r3, fp
73926   mov r1, r4
73927   mov r2, r7
73928   stmia sp, {r6, sl}  @ phole stm
73929   str r9, [sp, #8]
73930   bl  render_scanline_conditional_bitmap
73931 .L23354:
73932   cmp r4, #240
73933   beq .L23356
73934   ldr r3, [sp, #12]
73935   mov r0, r4
73936   mov r1, #240
73937   mov r2, r7
73938   stmia sp, {r6, sl}  @ phole stm
73939   str r9, [sp, #8]
73940   bl  render_scanline_conditional_bitmap
73941 .L23356:
73942   cmp r8, #0
73943   movne r1, r4
73944   beq .L23652
73945 .L23626:
73946   mov r3, r7
73947   mov r0, #4
73948   mov r2, #240
73949   add sp, sp, #32
73950   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
73951   b render_scanline_obj_copy_bitmap_1D
73952 .L23092:
73953   ldrh  r3, [lr, #68]
73954   ldr r4, .L23662
73955   and r1, r3, #255
73956   mov r0, r3, lsr #8
73957   cmp r0, r1
73958   ldrh  r2, [lr, #72]
73959   bls .L23300
73960   cmp ip, r0
73961   movls r3, #0
73962   movhi r3, #1
73963   cmp ip, r1
73964   orrls r3, r3, #1
73965   cmp r3, #0
73966   beq .L23603
73967 .L23308:
73968   cmp r0, #227
73969   bls .L23653
73970 .L23304:
73971   mov r4, #240
73972   mov r5, r4
73973 .L23319:
73974   mov r0, #0
73975   mov r1, r5
73976   mov r2, r7
73977   ldr r3, [sp, #12]
73978   stmia sp, {r6, sl}  @ phole stm
73979   str r9, [sp, #8]
73980   bl  render_scanline_conditional_bitmap
73981 .L23320:
73982   ands  r8, r6, #64
73983   beq .L23321
73984   mov r0, #4
73985   mov r1, #0
73986   mov r2, r5
73987   mov r3, r7
73988   bl  render_scanline_obj_copy_bitmap_1D
73989 .L23323:
73990   cmp r5, r4
73991   bne .L23642
73992   b .L23354
73993 .L23090:
73994   ldrh  r3, [lr, #68]
73995   ldr r2, .L23662
73996   and r1, r3, #255
73997   mov r0, r3, lsr #8
73998   cmp r0, r1
73999   ldrh  r4, [lr, #72]
74000   bls .L23138
74001   cmp ip, r0
74002   movls r3, #0
74003   movhi r3, #1
74004   cmp ip, r1
74005   orrls r3, r3, #1
74006   cmp r3, #0
74007   beq .L23635
74008 .L23146:
74009   cmp r0, #227
74010   bls .L23654
74011 .L23142:
74012   mov r5, #240
74013   mov fp, r5
74014 .L23145:
74015   ldrh  r3, [lr, #70]
74016   ldr r0, .L23662
74017   and r1, r3, #255
74018   mov r2, r3, lsr #8
74019   cmp r2, r1
74020   bls .L23149
74021   cmp ip, r2
74022   movls r3, #0
74023   movhi r3, #1
74024   cmp ip, r1
74025   orrls r3, r3, #1
74026   cmp r3, #0
74027   beq .L23636
74028 .L23157:
74029   cmp r2, #227
74030   bls .L23655
74031 .L23153:
74032   mov r8, #240
74033   mov r4, r8
74034 .L23156:
74035   cmp fp, r5
74036   bls .L23160
74037   cmp r5, #0
74038   bne .L23656
74039 .L23162:
74040   cmp r4, #240
74041   beq .L23164
74042   cmp r4, r8
74043   bls .L23166
74044   cmp r8, #0
74045   beq .L23168
74046   cmp r5, #0
74047   beq .L23170
74048   cmp r5, r8
74049   bcs .L23168
74050   cmp fp, r8
74051   movcc r0, r5
74052   movcc r1, fp
74053   movcs r0, r5
74054   movcs r1, r8
74055   mov r2, r7
74056   ldr r3, [sp, #20]
74057   stmia sp, {r6, sl}  @ phole stm
74058   str r9, [sp, #8]
74059   bl  render_scanline_conditional_bitmap
74060 .L23168:
74061   cmp r5, r8
74062   bls .L23177
74063   cmp r5, r4
74064   bcs .L23179
74065   cmp fp, r4
74066   ldrcc r3, [sp, #12]
74067   ldrcs r3, [sp, #12]
74068   movcc r0, r5
74069   movcc r1, fp
74070   movcs r0, r5
74071   movcs r1, r4
74072 .L23585:
74073   mov r2, r7
74074   stmia sp, {r6, sl}  @ phole stm
74075   str r9, [sp, #8]
74076   bl  render_scanline_conditional_bitmap
74077 .L23179:
74078   cmp r5, r4
74079   bls .L23186
74080   cmp r5, #239
74081   bhi .L23188
74082   cmp fp, #239
74083   movls r0, r5
74084   bls .L23589
74085   ldr r3, [sp, #20]
74086   mov r0, r5
74087   mov r1, #240
74088 .L23588:
74089   mov r2, r7
74090   stmia sp, {r6, sl}  @ phole stm
74091   str r9, [sp, #8]
74092   bl  render_scanline_conditional_bitmap
74093 .L23188:
74094   cmp fp, #240
74095   beq .L23576
74096 .L23192:
74097   ldr r3, [sp, #16]
74098   mov r0, fp
74099   mov r2, r7
74100   b .L23623
74101 .L23091:
74102   mov r1, #240
74103   ldr r3, [sp, #12]
74104   mov r0, #0
74105   mov r2, r7
74106   str sl, [sp, #4]
74107   str r9, [sp, #8]
74108   str r6, [sp, #0]
74109   bl  render_scanline_conditional_bitmap
74110   ands  r1, r6, #64
74111   beq .L23624
74112   mov r3, r7
74113   mov r0, #4
74114   mov r1, #0
74115   mov r2, #240
74116   add sp, sp, #32
74117   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
74118   b render_scanline_obj_copy_bitmap_1D
74119 .L23117:
74120   cmp ip, r0
74121   movcc r3, #0
74122   movcs r3, #1
74123   cmp ip, r1
74124   movcs r3, #0
74125   cmp r3, #0
74126   beq .L23580
74127 .L23125:
74128   cmp r0, #227
74129   bhi .L23121
74130   ldrh  r3, [r4, #66]
74131   mov r2, r2, lsr #8
74132   and r4, r3, #255
74133   mov r3, r3, lsr #8
74134   cmp r3, #240
74135   movcc r5, r3
74136   movcs r5, #240
74137   cmp r4, #240
74138   and r8, r2, #63
74139   bls .L23124
74140 .L23645:
74141   mov r4, #240
74142   b .L23124
74143 .L23300:
74144   cmp ip, r0
74145   movcc r3, #0
74146   movcs r3, #1
74147   cmp ip, r1
74148   movcs r3, #0
74149   cmp r3, #0
74150   bne .L23308
74151 .L23603:
74152   cmp r1, #227
74153   bls .L23304
74154   b .L23308
74155 .L23149:
74156   cmp ip, r2
74157   movcc r3, #0
74158   movcs r3, #1
74159   cmp ip, r1
74160   movcs r3, #0
74161   cmp r3, #0
74162   bne .L23157
74163 .L23636:
74164   cmp r1, #227
74165   bls .L23153
74166   b .L23157
74167 .L23138:
74168   cmp ip, r0
74169   movcc r3, #0
74170   movcs r3, #1
74171   cmp ip, r1
74172   movcs r3, #0
74173   cmp r3, #0
74174   bne .L23146
74175 .L23635:
74176   cmp r1, #227
74177   bls .L23142
74178   b .L23146
74179 .L23371:
74180   cmp ip, r2
74181   movcc r3, #0
74182   movcs r3, #1
74183   cmp ip, r1
74184   movcs r3, #0
74185   cmp r3, #0
74186   bne .L23379
74187 .L23640:
74188   cmp r1, #227
74189   bls .L23375
74190   b .L23379
74191 .L23330:
74192   cmp ip, r0
74193   movcc r3, #0
74194   movcs r3, #1
74195   cmp ip, r1
74196   movcs r3, #0
74197   cmp r3, #0
74198   bne .L23338
74199 .L23605:
74200   cmp r1, #227
74201   bls .L23334
74202   b .L23338
74203 .L23096:
74204   cmp ip, r1
74205   movcc r3, #0
74206   movcs r3, #1
74207   cmp ip, r2
74208   movcs r3, #0
74209   cmp r3, #0
74210   bne .L23104
74211 .L23578:
74212   cmp r2, #227
74213   bls .L23121
74214   b .L23104
74215 .L23360:
74216   cmp ip, r0
74217   movcc r3, #0
74218   movcs r3, #1
74219   cmp ip, r1
74220   movcs r3, #0
74221   cmp r3, #0
74222   bne .L23368
74223 .L23639:
74224   cmp r1, #227
74225   bls .L23364
74226   b .L23368
74227 .L23652:
74228   mov r1, r4
74229 .L23624:
74230   mov r3, r7
74231   mov r0, #4
74232   mov r2, #240
74233   add sp, sp, #32
74234   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
74235   b render_scanline_obj_copy_bitmap_2D
74236 .L23382:
74237   cmp r4, #240
74238   beq .L23472
74239   cmp r4, r5
74240   bls .L23474
74241   cmp r5, #0
74242   beq .L23476
74243   cmp fp, r5
74244   bcs .L23478
74245   cmp fp, #0
74246   movne r0, #0
74247   movne r1, fp
74248   bne .L23615
74249 .L23476:
74250   cmp fp, r4
74251   bcs .L23481
74252   cmp fp, r5
74253   bhi .L23657
74254 .L23483:
74255   cmp fp, #239
74256   bhi .L23489
74257   cmp fp, r4
74258   movhi r0, r4
74259   movhi r1, fp
74260   bhi .L23617
74261 .L23491:
74262   cmp fp, r8
74263   beq .L23519
74264   mov r0, fp
74265   ldr r3, [sp, #24]
74266   mov r1, r8
74267   mov r2, r7
74268   stmia sp, {r6, sl}  @ phole stm
74269   str r9, [sp, #8]
74270   bl  render_scanline_conditional_bitmap
74271 .L23519:
74272   cmp r4, #240
74273   beq .L23521
74274   cmp r4, r5
74275   bls .L23523
74276   cmp r5, #0
74277   beq .L23525
74278   cmp r8, #0
74279   beq .L23527
74280   cmp r8, r5
74281   bcs .L23525
74282   cmp r5, #240
74283   movhi r0, r8
74284   movhi r1, #240
74285   movls r0, r8
74286   movls r1, r5
74287   mov r2, r7
74288   ldr r3, [sp, #28]
74289   stmia sp, {r6, sl}  @ phole stm
74290   str r9, [sp, #8]
74291   bl  render_scanline_conditional_bitmap
74292 .L23525:
74293   cmp r8, r5
74294   bls .L23534
74295   cmp r8, r4
74296   bcc .L23658
74297 .L23536:
74298   cmp r8, r4
74299   bls .L23542
74300   cmp r8, #239
74301   bhi .L23576
74302   ldr r3, [sp, #28]
74303   mov r0, r8
74304   mov r2, r7
74305   b .L23623
74306 .L23160:
74307   cmp r4, #240
74308   beq .L23224
74309   cmp r4, r8
74310   bls .L23226
74311   cmp r8, #0
74312   beq .L23228
74313   cmp fp, r8
74314   bcs .L23230
74315   cmp fp, #0
74316   movne r0, #0
74317   movne r1, fp
74318   bne .L23591
74319 .L23228:
74320   cmp fp, r4
74321   bcs .L23233
74322   cmp fp, r8
74323   movhi r0, r8
74324   movhi r1, fp
74325   bhi .L23592
74326 .L23235:
74327   cmp fp, #239
74328   bhi .L23237
74329   cmp fp, r4
74330   movhi r0, r4
74331   movhi r1, fp
74332   bhi .L23595
74333 .L23239:
74334   cmp fp, r5
74335   beq .L23256
74336   mov r0, fp
74337   ldr r3, [sp, #16]
74338   mov r1, r5
74339   mov r2, r7
74340   stmia sp, {r6, sl}  @ phole stm
74341   str r9, [sp, #8]
74342   bl  render_scanline_conditional_bitmap
74343 .L23256:
74344   cmp r4, #240
74345   beq .L23258
74346   cmp r4, r8
74347   bls .L23260
74348   cmp r8, #0
74349   beq .L23262
74350   cmp r5, #0
74351   beq .L23264
74352   cmp r5, r8
74353   bcs .L23262
74354   cmp r8, #240
74355   movhi r0, r5
74356   movhi r1, #240
74357   movls r0, r5
74358   movls r1, r8
74359   mov r2, r7
74360   ldr r3, [sp, #20]
74361   stmia sp, {r6, sl}  @ phole stm
74362   str r9, [sp, #8]
74363   bl  render_scanline_conditional_bitmap
74364 .L23262:
74365   cmp r5, r8
74366   bls .L23271
74367   cmp r5, r4
74368   ldrcc r3, [sp, #12]
74369   movcc r0, r5
74370   bcc .L23599
74371 .L23273:
74372   cmp r5, r4
74373   bls .L23275
74374   cmp r5, #239
74375   bhi .L23576
74376   ldr r3, [sp, #20]
74377   mov r0, r5
74378   mov r2, r7
74379   b .L23623
74380 .L23351:
74381   mov r0, #4
74382   mov r1, r8
74383   mov r2, r5
74384   mov r3, r7
74385   bl  render_scanline_obj_copy_bitmap_2D
74386   b .L23353
74387 .L23321:
74388   mov r0, #4
74389   mov r1, r8
74390   mov r2, r5
74391   mov r3, r7
74392   bl  render_scanline_obj_copy_bitmap_2D
74393   b .L23323
74394 .L23653:
74395   ldrh  r3, [r4, #64]
74396   and fp, r2, #63
74397   and r4, r3, #255
74398   mov r3, r3, lsr #8
74399   cmp r3, #240
74400   movcc r5, r3
74401   movcs r5, #240
74402   cmp r4, #240
74403   movhi r4, #240
74404   cmp r5, r4
74405   bhi .L23644
74406   cmp r5, #0
74407   bne .L23319
74408   b .L23320
74409 .L23655:
74410   ldrh  r3, [r0, #66]
74411   mov r2, r4, lsr #8
74412   and r8, r3, #255
74413   mov r3, r3, lsr #8
74414   cmp r3, #240
74415   movcc r4, r3
74416   movcs r4, #240
74417   cmp r8, #240
74418   and r2, r2, #63
74419   movhi r8, #240
74420   str r2, [sp, #20]
74421   b .L23156
74422 .L23648:
74423   ldrh  r3, [r0, #66]
74424   mov r2, r4, lsr #8
74425   and r5, r3, #255
74426   mov r3, r3, lsr #8
74427   cmp r3, #240
74428   movcc r4, r3
74429   movcs r4, #240
74430   cmp r5, #240
74431   and r2, r2, #63
74432   movhi r5, #240
74433   str r2, [sp, #28]
74434   b .L23378
74435 .L23647:
74436   ldrh  r3, [r2, #64]
74437   and r2, r4, #63
74438   and r8, r3, #255
74439   mov r3, r3, lsr #8
74440   cmp r3, #240
74441   movcc fp, r3
74442   movcs fp, #240
74443   cmp r8, #240
74444   movhi r8, #240
74445   str r2, [sp, #24]
74446   b .L23367
74447 .L23651:
74448   ldrh  r3, [r4, #66]
74449   mov r2, r2, lsr #8
74450   and r4, r3, #255
74451   mov r3, r3, lsr #8
74452   cmp r3, #240
74453   movcc r5, r3
74454   movcs r5, #240
74455   cmp r4, #240
74456   movhi r4, #240
74457   cmp r5, r4
74458   and fp, r2, #63
74459   bhi .L23644
74460   cmp r5, #0
74461   bne .L23349
74462   b .L23350
74463 .L23654:
74464   ldrh  r3, [r2, #64]
74465   and r2, r4, #63
74466   and r5, r3, #255
74467   mov r3, r3, lsr #8
74468   cmp r3, #240
74469   movcc fp, r3
74470   movcs fp, #240
74471   cmp r5, #240
74472   movhi r5, #240
74473   str r2, [sp, #16]
74474   b .L23145
74475 .L23650:
74476   cmp r5, #0
74477   beq .L23390
74478   cmp r8, #0
74479   beq .L23392
74480   cmp r8, r5
74481   bcs .L23390
74482   cmp fp, r5
74483   movcc r0, r8
74484   movcc r1, fp
74485   movcs r0, r8
74486   movcs r1, r5
74487   mov r2, r7
74488   ldr r3, [sp, #28]
74489   stmia sp, {r6, sl}  @ phole stm
74490   str r9, [sp, #8]
74491   bl  render_scanline_conditional_bitmap
74492 .L23390:
74493   cmp r8, r5
74494   bls .L23399
74495   cmp r8, r4
74496   bcs .L23401
74497   cmp fp, r4
74498   bcs .L23403
74499   ldr r3, [sp, #12]
74500   mov r0, r8
74501   mov r1, fp
74502   mov r2, r7
74503   stmia sp, {r6, sl}  @ phole stm
74504   str r9, [sp, #8]
74505   bl  render_scanline_conditional_bitmap
74506   tst r6, #64
74507   beq .L23405
74508   mov r0, #4
74509   mov r1, r8
74510   mov r2, fp
74511   mov r3, r7
74512   bl  render_scanline_obj_copy_bitmap_1D
74513 .L23401:
74514   cmp r8, r4
74515   bls .L23416
74516   cmp r8, #239
74517   bhi .L23418
74518   cmp fp, #239
74519   movls r0, r8
74520   movhi r0, r8
74521   bhi .L23613
74522 .L23614:
74523   ldr r3, [sp, #28]
74524   mov r1, fp
74525   mov r2, r7
74526   stmia sp, {r6, sl}  @ phole stm
74527   str r9, [sp, #8]
74528   bl  render_scanline_conditional_bitmap
74529 .L23422:
74530   ldr r3, [sp, #24]
74531   mov r0, fp
74532   mov r2, r7
74533   b .L23623
74534 .L23166:
74535   cmp r4, #0
74536   beq .L23196
74537   cmp r5, #0
74538   beq .L23198
74539   cmp r5, r4
74540   bcs .L23196
74541 .L23198:
74542   cmp fp, r4
74543   movcc r0, r5
74544   movcc r1, fp
74545   movcs r0, r5
74546   movcs r1, r4
74547   mov r2, r7
74548   ldr r3, [sp, #12]
74549   stmia sp, {r6, sl}  @ phole stm
74550   str r9, [sp, #8]
74551   bl  render_scanline_conditional_bitmap
74552 .L23196:
74553   cmp r4, r8
74554   beq .L23205
74555   cmp r5, r4
74556   bls .L23207
74557   cmp r5, r8
74558   bcs .L23205
74559   cmp fp, r8
74560   ldrcc r3, [sp, #20]
74561   ldrcs r3, [sp, #20]
74562   movcc r0, r5
74563   movcc r1, fp
74564   movcs r0, r5
74565   movcs r1, r8
74566 .L23587:
74567   mov r2, r7
74568   stmia sp, {r6, sl}  @ phole stm
74569   str r9, [sp, #8]
74570   bl  render_scanline_conditional_bitmap
74571 .L23205:
74572   cmp r8, #240
74573   beq .L23188
74574   cmp r5, r8
74575   bls .L23216
74576   cmp r5, #239
74577   bhi .L23188
74578   cmp fp, #239
74579   movls r0, r5
74580   ldrls r3, [sp, #12]
74581   bls .L23590
74582   ldr r3, [sp, #12]
74583   mov r0, r5
74584   mov r1, #240
74585   b .L23588
74586 .L23649:
74587   mov r0, #0
74588   mov r1, r8
74589   mov r2, r7
74590   ldr r3, [sp, #24]
74591   stmia sp, {r6, sl}  @ phole stm
74592   str r9, [sp, #8]
74593   bl  render_scanline_conditional_bitmap
74594   b .L23384
74595 .L23656:
74596   mov r0, #0
74597   mov r1, r5
74598   mov r2, r7
74599   ldr r3, [sp, #16]
74600   stmia sp, {r6, sl}  @ phole stm
74601   str r9, [sp, #8]
74602   bl  render_scanline_conditional_bitmap
74603   b .L23162
74604 .L23472:
74605   cmp fp, #0
74606   bne .L23659
74607 .L23515:
74608   ands  r1, r6, #64
74609   beq .L23517
74610   mov r0, #4
74611   mov r1, #0
74612   mov r2, fp
74613   mov r3, r7
74614   bl  render_scanline_obj_copy_bitmap_1D
74615   b .L23491
74616 .L23224:
74617   cmp fp, #0
74618   beq .L23239
74619   mov r0, #0
74620   mov r1, fp
74621 .L23596:
74622   mov r2, r7
74623   ldr r3, [sp, #12]
74624   stmia sp, {r6, sl}  @ phole stm
74625   str r9, [sp, #8]
74626   bl  render_scanline_conditional_bitmap
74627   b .L23239
74628 .L23644:
74629   cmp r4, #0
74630   bne .L23660
74631 .L23343:
74632   ldr r3, [sp, #12]
74633   mov r0, r4
74634   mov r1, r5
74635   mov r2, r7
74636   stmia sp, {r6, sl}  @ phole stm
74637   str r9, [sp, #8]
74638   bl  render_scanline_conditional_bitmap
74639   tst r6, #64
74640   beq .L23345
74641   mov r1, r4
74642   mov r0, #4
74643   mov r2, r5
74644   mov r3, r7
74645   bl  render_scanline_obj_copy_bitmap_1D
74646 .L23347:
74647   cmp r5, #240
74648   movne r0, r5
74649   movne r2, r7
74650   movne r3, fp
74651   bne .L23623
74652   b .L23576
74653 .L23128:
74654   cmp r5, #0
74655   bne .L23133
74656   b .L23134
74657 .L23386:
74658   ldr r3, [sp, #12]
74659   mov r0, r8
74660   mov r1, fp
74661   mov r2, r7
74662   stmia sp, {r6, sl}  @ phole stm
74663   str r9, [sp, #8]
74664   bl  render_scanline_conditional_bitmap
74665   tst r6, #64
74666   beq .L23470
74667   mov r1, r8
74668   mov r0, #4
74669   mov r2, fp
74670   mov r3, r7
74671   bl  render_scanline_obj_copy_bitmap_1D
74672 .L23418:
74673   cmp fp, #240
74674   bne .L23422
74675   b .L23576
74676 .L23345:
74677   mov r1, r4
74678   mov r0, #4
74679   mov r2, r5
74680   mov r3, r7
74681   bl  render_scanline_obj_copy_bitmap_2D
74682   b .L23347
74683 .L23663:
74684   .align  2
74685 .L23662:
74686   .word io_registers
74687   .word bitmap_mode_renderers-12
74688 .L23523:
74689   cmp r4, #0
74690   beq .L23545
74691   cmp r8, #0
74692   beq .L23547
74693   cmp r8, r4
74694   bcc .L23547
74695 .L23545:
74696   cmp r4, r5
74697   beq .L23554
74698   cmp r8, r4
74699   bls .L23556
74700   cmp r8, r5
74701   bcs .L23554
74702   cmp r5, #240
74703   ldrhi r3, [sp, #28]
74704   movhi r0, r8
74705   ldrls r3, [sp, #28]
74706   movls r0, r8
74707   bls .L23621
74708 .L23622:
74709   mov r1, #240
74710   mov r2, r7
74711   stmia sp, {r6, sl}  @ phole stm
74712   str r9, [sp, #8]
74713   bl  render_scanline_conditional_bitmap
74714 .L23561:
74715   cmp r8, r5
74716   bls .L23565
74717   cmp r8, #239
74718   bhi .L23576
74719   mov r1, #240
74720   ldr r3, [sp, #12]
74721   mov r0, r8
74722   mov r2, r7
74723   str sl, [sp, #4]
74724   str r9, [sp, #8]
74725   str r6, [sp, #0]
74726   bl  render_scanline_conditional_bitmap
74727   tst r6, #64
74728   moveq r1, r8
74729   beq .L23624
74730   mov r1, r8
74731   b .L23626
74732 .L23260:
74733   cmp r4, #0
74734   beq .L23278
74735   cmp r5, #0
74736   beq .L23280
74737   cmp r5, r4
74738   bcc .L23280
74739 .L23278:
74740   cmp r4, r8
74741   beq .L23283
74742   cmp r5, r4
74743   bls .L23285
74744   cmp r5, r8
74745   bcs .L23283
74746   cmp r8, #240
74747   ldrhi r3, [sp, #20]
74748   movhi r0, r5
74749   ldrls r3, [sp, #20]
74750   movls r0, r5
74751   bls .L23600
74752 .L23601:
74753   mov r1, #240
74754   mov r2, r7
74755   stmia sp, {r6, sl}  @ phole stm
74756   str r9, [sp, #8]
74757   bl  render_scanline_conditional_bitmap
74758 .L23290:
74759   cmp r5, r8
74760   bls .L23294
74761   cmp r5, #239
74762   bhi .L23576
74763   ldr r3, [sp, #12]
74764   mov r0, r5
74765   mov r2, r7
74766   b .L23623
74767 .L23474:
74768   cmp r4, #0
74769   beq .L23493
74770   cmp fp, r4
74771   bcs .L23495
74772   cmp fp, #0
74773   bne .L23661
74774 .L23493:
74775   cmp r4, r5
74776   beq .L23502
74777   cmp fp, r5
74778   bcs .L23504
74779   cmp fp, r4
74780   movhi r0, r4
74781   movhi r1, fp
74782   bhi .L23616
74783 .L23502:
74784   cmp r5, #240
74785   beq .L23491
74786   cmp fp, #239
74787   bhi .L23508
74788   cmp fp, r5
74789   bls .L23491
74790   mov r0, r5
74791   mov r1, fp
74792   mov r2, r7
74793   ldr r3, [sp, #12]
74794   stmia sp, {r6, sl}  @ phole stm
74795   str r9, [sp, #8]
74796   bl  render_scanline_conditional_bitmap
74797   tst r6, #64
74798   beq .L23511
74799   mov r0, #4
74800   mov r1, r5
74801   mov r2, fp
74802   mov r3, r7
74803   bl  render_scanline_obj_copy_bitmap_1D
74804   b .L23491
74805 .L23226:
74806   cmp r4, #0
74807   beq .L23241
74808   cmp fp, r4
74809   bcs .L23243
74810   cmp fp, #0
74811   movne r0, #0
74812   movne r1, fp
74813   bne .L23593
74814 .L23241:
74815   cmp r4, r8
74816   beq .L23246
74817   cmp fp, r8
74818   bcs .L23248
74819   cmp fp, r4
74820   movhi r0, r4
74821   movhi r1, fp
74822   bhi .L23594
74823 .L23246:
74824   cmp r8, #240
74825   beq .L23239
74826   cmp fp, #239
74827   bhi .L23252
74828   cmp fp, r8
74829   movhi r0, r8
74830   movhi r1, fp
74831   bls .L23239
74832   b .L23596
74833 .L23521:
74834   cmp r8, #240
74835   beq .L23572
74836   ldr r3, [sp, #12]
74837   mov r0, r8
74838   mov r1, r4
74839   mov r2, r7
74840   str sl, [sp, #4]
74841   str r9, [sp, #8]
74842   str r6, [sp, #0]
74843   bl  render_scanline_conditional_bitmap
74844 .L23572:
74845   tst r6, #64
74846   beq .L23574
74847   mov r1, r8
74848   mov r2, r4
74849   mov r3, r7
74850   mov r0, #4
74851   add sp, sp, #32
74852   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
74853   b render_scanline_obj_copy_bitmap_1D
74854 .L23258:
74855   cmp r5, #240
74856   beq .L23576
74857   mov r0, r5
74858   mov r1, r4
74859   mov r2, r7
74860   ldr r3, [sp, #12]
74861   stmia sp, {r6, sl}  @ phole stm
74862   str r9, [sp, #8]
74863   bl  render_scanline_conditional_bitmap
74864   b .L23576
74865 .L23392:
74866   cmp fp, r5
74867   movcc r0, r8
74868   movcc r1, fp
74869   movcs r0, r8
74870   movcs r1, r5
74871   mov r2, r7
74872   ldr r3, [sp, #28]
74873   stmia sp, {r6, sl}  @ phole stm
74874   str r9, [sp, #8]
74875   bl  render_scanline_conditional_bitmap
74876 .L23399:
74877   cmp fp, r4
74878   bcs .L23409
74879   cmp fp, r5
74880   bls .L23401
74881   ldr r3, [sp, #12]
74882   mov r0, r5
74883   mov r1, fp
74884   mov r2, r7
74885   stmia sp, {r6, sl}  @ phole stm
74886   str r9, [sp, #8]
74887   bl  render_scanline_conditional_bitmap
74888   tst r6, #64
74889   beq .L23412
74890   mov r1, r5
74891   mov r0, #4
74892   mov r2, fp
74893   mov r3, r7
74894   bl  render_scanline_obj_copy_bitmap_1D
74895   b .L23401
74896 .L23170:
74897   cmp fp, r8
74898   movcc r0, r5
74899   movcc r1, fp
74900   movcs r0, r5
74901   movcs r1, r8
74902   mov r2, r7
74903   ldr r3, [sp, #20]
74904   stmia sp, {r6, sl}  @ phole stm
74905   str r9, [sp, #8]
74906   bl  render_scanline_conditional_bitmap
74907 .L23177:
74908   cmp fp, r4
74909   bcs .L23183
74910   cmp fp, r8
74911   bls .L23179
74912   ldr r3, [sp, #12]
74913   mov r0, r8
74914   mov r1, fp
74915   b .L23585
74916 .L23264:
74917   cmp r8, #240
74918   movhi r0, r5
74919   movhi r1, #240
74920   movls r0, r5
74921   movls r1, r8
74922   mov r2, r7
74923   ldr r3, [sp, #20]
74924   stmia sp, {r6, sl}  @ phole stm
74925   str r9, [sp, #8]
74926   bl  render_scanline_conditional_bitmap
74927 .L23271:
74928   ldr r3, [sp, #12]
74929   mov r0, r8
74930 .L23599:
74931   mov r1, r4
74932   mov r2, r7
74933   stmia sp, {r6, sl}  @ phole stm
74934   str r9, [sp, #8]
74935   bl  render_scanline_conditional_bitmap
74936   b .L23273
74937 .L23291:
74938   ldr r3, [sp, #20]
74939   mov r0, r4
74940 .L23600:
74941   mov r1, r8
74942   mov r2, r7
74943   stmia sp, {r6, sl}  @ phole stm
74944   str r9, [sp, #8]
74945   bl  render_scanline_conditional_bitmap
74946 .L23283:
74947   cmp r8, #240
74948   bne .L23290
74949   b .L23576
74950 .L23562:
74951   ldr r3, [sp, #28]
74952   mov r0, r4
74953 .L23621:
74954   mov r1, r5
74955   mov r2, r7
74956   stmia sp, {r6, sl}  @ phole stm
74957   str r9, [sp, #8]
74958   bl  render_scanline_conditional_bitmap
74959 .L23554:
74960   cmp r5, #240
74961   bne .L23561
74962   b .L23576
74963 .L23646:
74964   mov r0, #0
74965   mov r1, r4
74966   mov r2, r7
74967   mov r3, r8
74968   stmia sp, {r6, sl}  @ phole stm
74969   str r9, [sp, #8]
74970   bl  render_scanline_conditional_bitmap
74971   b .L23130
74972 .L23660:
74973   mov r0, #0
74974   mov r1, r4
74975   mov r2, r7
74976   mov r3, fp
74977   stmia sp, {r6, sl}  @ phole stm
74978   str r9, [sp, #8]
74979   bl  render_scanline_conditional_bitmap
74980   b .L23343
74981 .L23527:
74982   cmp r5, #240
74983   movhi r0, r8
74984   movhi r1, #240
74985   movls r0, r8
74986   movls r1, r5
74987   mov r2, r7
74988   ldr r3, [sp, #28]
74989   stmia sp, {r6, sl}  @ phole stm
74990   str r9, [sp, #8]
74991   bl  render_scanline_conditional_bitmap
74992 .L23534:
74993   ldr r3, [sp, #12]
74994   mov r0, r5
74995   mov r1, r4
74996   mov r2, r7
74997   stmia sp, {r6, sl}  @ phole stm
74998   str r9, [sp, #8]
74999   bl  render_scanline_conditional_bitmap
75000   tst r6, #64
75001   beq .L23540
75002   mov r1, r5
75003   mov r0, #4
75004   mov r2, r4
75005   mov r3, r7
75006   bl  render_scanline_obj_copy_bitmap_1D
75007   b .L23536
75008 .L23416:
75009   cmp fp, #239
75010   bhi .L23423
75011   cmp fp, r4
75012   bls .L23422
75013   mov r0, r4
75014   b .L23614
75015 .L23186:
75016   cmp fp, #239
75017   bhi .L23193
75018   cmp fp, r4
75019   bls .L23192
75020   mov r0, r4
75021 .L23589:
75022   ldr r3, [sp, #20]
75023 .L23590:
75024   mov r1, fp
75025   mov r2, r7
75026   stmia sp, {r6, sl}  @ phole stm
75027   str r9, [sp, #8]
75028   bl  render_scanline_conditional_bitmap
75029   b .L23192
75030 .L23237:
75031   mov r0, r4
75032   mov r1, #240
75033 .L23595:
75034   mov r2, r7
75035   ldr r3, [sp, #20]
75036   stmia sp, {r6, sl}  @ phole stm
75037   str r9, [sp, #8]
75038   bl  render_scanline_conditional_bitmap
75039   b .L23239
75040 .L23489:
75041   mov r0, r4
75042   mov r1, #240
75043 .L23617:
75044   mov r2, r7
75045   ldr r3, [sp, #28]
75046   stmia sp, {r6, sl}  @ phole stm
75047   str r9, [sp, #8]
75048   bl  render_scanline_conditional_bitmap
75049   b .L23491
75050 .L23233:
75051   mov r0, r8
75052   mov r1, r4
75053 .L23592:
75054   mov r2, r7
75055   ldr r3, [sp, #12]
75056   stmia sp, {r6, sl}  @ phole stm
75057   str r9, [sp, #8]
75058   bl  render_scanline_conditional_bitmap
75059   b .L23235
75060 .L23216:
75061   cmp fp, #239
75062   bhi .L23221
75063   cmp fp, r8
75064   movhi r0, r8
75065   ldrhi r3, [sp, #12]
75066   bls .L23192
75067   b .L23590
75068 .L23445:
75069   cmp fp, r5
75070   bcs .L23450
75071   cmp fp, r4
75072   bls .L23443
75073   ldr r3, [sp, #28]
75074   mov r0, r4
75075   mov r1, fp
75076   b .L23612
75077 .L23454:
75078   cmp fp, #239
75079   bhi .L23463
75080   cmp fp, r5
75081   bls .L23422
75082   ldr r3, [sp, #12]
75083   mov r0, r5
75084   mov r1, fp
75085   mov r2, r7
75086   stmia sp, {r6, sl}  @ phole stm
75087   str r9, [sp, #8]
75088   bl  render_scanline_conditional_bitmap
75089   tst r6, #64
75090   beq .L23466
75091   mov r1, r5
75092   mov r0, #4
75093   mov r2, fp
75094   mov r3, r7
75095   bl  render_scanline_obj_copy_bitmap_1D
75096   b .L23422
75097 .L23207:
75098   cmp fp, r8
75099   bcs .L23212
75100   cmp fp, r4
75101   bls .L23205
75102   ldr r3, [sp, #20]
75103   mov r0, r4
75104   mov r1, fp
75105   b .L23587
75106 .L23164:
75107   ldr r3, [sp, #12]
75108   mov r0, r5
75109   mov r1, fp
75110   b .L23588
75111 .L23574:
75112   mov r1, r8
75113   mov r2, r4
75114   mov r3, r7
75115   mov r0, #4
75116   add sp, sp, #32
75117   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
75118   b render_scanline_obj_copy_bitmap_2D
75119 .L23517:
75120   mov r0, #4
75121   mov r2, fp
75122   mov r3, r7
75123   bl  render_scanline_obj_copy_bitmap_2D
75124   b .L23491
75125 .L23504:
75126   mov r0, r4
75127   mov r1, r5
75128 .L23616:
75129   mov r2, r7
75130   ldr r3, [sp, #28]
75131   stmia sp, {r6, sl}  @ phole stm
75132   str r9, [sp, #8]
75133   bl  render_scanline_conditional_bitmap
75134   b .L23502
75135 .L23248:
75136   mov r0, r4
75137   mov r1, r8
75138 .L23594:
75139   mov r2, r7
75140   ldr r3, [sp, #20]
75141   stmia sp, {r6, sl}  @ phole stm
75142   str r9, [sp, #8]
75143   bl  render_scanline_conditional_bitmap
75144   b .L23246
75145 .L23285:
75146   cmp r8, #240
75147   bls .L23291
75148   cmp r4, #239
75149   bhi .L23290
75150   ldr r3, [sp, #20]
75151   mov r0, r4
75152   b .L23601
75153 .L23556:
75154   cmp r5, #240
75155   bls .L23562
75156   cmp r4, #239
75157   bhi .L23561
75158   ldr r3, [sp, #28]
75159   mov r0, r4
75160   b .L23622
75161 .L23423:
75162   mov r0, r4
75163 .L23613:
75164   ldr r3, [sp, #28]
75165   mov r1, #240
75166   mov r2, r7
75167   stmia sp, {r6, sl}  @ phole stm
75168   str r9, [sp, #8]
75169   bl  render_scanline_conditional_bitmap
75170   b .L23418
75171 .L23540:
75172   mov r1, r5
75173   mov r0, #4
75174   mov r2, r4
75175   mov r3, r7
75176   bl  render_scanline_obj_copy_bitmap_2D
75177   b .L23536
75178 .L23481:
75179   mov r0, r5
75180   mov r1, r4
75181   mov r2, r7
75182   ldr r3, [sp, #12]
75183   stmia sp, {r6, sl}  @ phole stm
75184   str r9, [sp, #8]
75185   bl  render_scanline_conditional_bitmap
75186   tst r6, #64
75187   beq .L23487
75188   mov r0, #4
75189   mov r1, r5
75190   mov r2, r4
75191   mov r3, r7
75192   bl  render_scanline_obj_copy_bitmap_1D
75193   b .L23483
75194 .L23542:
75195   ldr r3, [sp, #28]
75196   mov r0, r4
75197   mov r2, r7
75198   b .L23623
75199 .L23275:
75200   ldr r3, [sp, #20]
75201   mov r0, r4
75202   mov r2, r7
75203   b .L23623
75204 .L23294:
75205   ldr r3, [sp, #12]
75206   mov r0, r8
75207   mov r2, r7
75208   b .L23623
75209 .L23565:
75210   mov r1, #240
75211   ldr r3, [sp, #12]
75212   mov r0, r5
75213   mov r2, r7
75214   str sl, [sp, #4]
75215   str r9, [sp, #8]
75216   str r6, [sp, #0]
75217   bl  render_scanline_conditional_bitmap
75218   tst r6, #64
75219   movne r1, r5
75220   moveq r1, r5
75221   beq .L23624
75222   b .L23626
75223 .L23478:
75224   mov r0, #0
75225   mov r1, r5
75226 .L23615:
75227   mov r2, r7
75228   ldr r3, [sp, #28]
75229   stmia sp, {r6, sl}  @ phole stm
75230   str r9, [sp, #8]
75231   bl  render_scanline_conditional_bitmap
75232   b .L23476
75233 .L23243:
75234   mov r0, #0
75235   mov r1, r4
75236 .L23593:
75237   mov r2, r7
75238   ldr r3, [sp, #12]
75239   stmia sp, {r6, sl}  @ phole stm
75240   str r9, [sp, #8]
75241   bl  render_scanline_conditional_bitmap
75242   b .L23241
75243 .L23230:
75244   mov r0, #0
75245   mov r1, r8
75246 .L23591:
75247   mov r2, r7
75248   ldr r3, [sp, #20]
75249   stmia sp, {r6, sl}  @ phole stm
75250   str r9, [sp, #8]
75251   bl  render_scanline_conditional_bitmap
75252   b .L23228
75253 .L23547:
75254   mov r0, r8
75255   mov r1, r4
75256   mov r2, r7
75257   ldr r3, [sp, #12]
75258   stmia sp, {r6, sl}  @ phole stm
75259   str r9, [sp, #8]
75260   bl  render_scanline_conditional_bitmap
75261   tst r6, #64
75262   beq .L23552
75263   mov r0, #4
75264   mov r1, r8
75265   mov r2, r4
75266   mov r3, r7
75267   bl  render_scanline_obj_copy_bitmap_1D
75268   b .L23545
75269 .L23280:
75270   mov r0, r5
75271   mov r1, r4
75272   mov r2, r7
75273   ldr r3, [sp, #12]
75274   stmia sp, {r6, sl}  @ phole stm
75275   str r9, [sp, #8]
75276   bl  render_scanline_conditional_bitmap
75277   b .L23278
75278 .L23659:
75279   mov r0, #0
75280   mov r1, fp
75281   mov r2, r7
75282   ldr r3, [sp, #12]
75283   stmia sp, {r6, sl}  @ phole stm
75284   str r9, [sp, #8]
75285   bl  render_scanline_conditional_bitmap
75286   b .L23515
75287 .L23409:
75288   ldr r3, [sp, #12]
75289   mov r0, r5
75290   mov r1, r4
75291   mov r2, r7
75292   stmia sp, {r6, sl}  @ phole stm
75293   str r9, [sp, #8]
75294   bl  render_scanline_conditional_bitmap
75295   tst r6, #64
75296   beq .L23414
75297   mov r1, r5
75298   mov r0, #4
75299   mov r2, r4
75300   mov r3, r7
75301   bl  render_scanline_obj_copy_bitmap_1D
75302   b .L23401
75303 .L23183:
75304   ldr r3, [sp, #12]
75305   mov r0, r8
75306   mov r1, r4
75307   b .L23585
75308 .L23437:
75309   mov r0, r8
75310   mov r1, r4
75311   mov r2, r7
75312   ldr r3, [sp, #12]
75313   stmia sp, {r6, sl}  @ phole stm
75314   str r9, [sp, #8]
75315   bl  render_scanline_conditional_bitmap
75316   tst r6, #64
75317   beq .L23441
75318   mov r0, #4
75319   mov r1, r8
75320   mov r2, r4
75321   mov r3, r7
75322   bl  render_scanline_obj_copy_bitmap_1D
75323   b .L23426
75324 .L23252:
75325   mov r0, r8
75326   mov r1, #240
75327   b .L23596
75328 .L23470:
75329   mov r1, r8
75330   mov r0, #4
75331   mov r2, fp
75332   mov r3, r7
75333   bl  render_scanline_obj_copy_bitmap_2D
75334   b .L23418
75335 .L23508:
75336   mov r0, r5
75337   mov r1, #240
75338   mov r2, r7
75339   ldr r3, [sp, #12]
75340   stmia sp, {r6, sl}  @ phole stm
75341   str r9, [sp, #8]
75342   bl  render_scanline_conditional_bitmap
75343   tst r6, #64
75344   beq .L23513
75345   mov r0, #4
75346   mov r1, r5
75347   mov r2, #240
75348   mov r3, r7
75349   bl  render_scanline_obj_copy_bitmap_1D
75350   b .L23491
75351 .L23657:
75352   mov r0, r5
75353   mov r1, fp
75354   mov r2, r7
75355   ldr r3, [sp, #12]
75356   stmia sp, {r6, sl}  @ phole stm
75357   str r9, [sp, #8]
75358   bl  render_scanline_conditional_bitmap
75359   tst r6, #64
75360   beq .L23485
75361   mov r0, #4
75362   mov r1, r5
75363   mov r2, fp
75364   mov r3, r7
75365   bl  render_scanline_obj_copy_bitmap_1D
75366   b .L23483
75367 .L23193:
75368   ldr r3, [sp, #20]
75369   mov r0, r4
75370   mov r1, #240
75371   b .L23588
75372 .L23495:
75373   mov r1, r4
75374   mov r0, #0
75375   mov r2, r7
75376   ldr r3, [sp, #12]
75377   stmia sp, {r6, sl}  @ phole stm
75378   str r9, [sp, #8]
75379   bl  render_scanline_conditional_bitmap
75380   ands  r1, r6, #64
75381   beq .L23500
75382   mov r0, #4
75383   mov r1, #0
75384   mov r2, r4
75385   mov r3, r7
75386   bl  render_scanline_obj_copy_bitmap_1D
75387   b .L23493
75388 .L23487:
75389   mov r0, #4
75390   mov r1, r5
75391   mov r2, r4
75392   mov r3, r7
75393   bl  render_scanline_obj_copy_bitmap_2D
75394   b .L23483
75395 .L23552:
75396   mov r0, #4
75397   mov r1, r8
75398   mov r2, r4
75399   mov r3, r7
75400   bl  render_scanline_obj_copy_bitmap_2D
75401   b .L23545
75402 .L23221:
75403   ldr r3, [sp, #12]
75404   mov r0, r8
75405   mov r1, #240
75406   b .L23588
75407 .L23212:
75408   ldr r3, [sp, #20]
75409   mov r0, r4
75410   mov r1, r8
75411   b .L23587
75412 .L23463:
75413   ldr r3, [sp, #12]
75414   mov r0, r5
75415   mov r1, #240
75416   mov r2, r7
75417   stmia sp, {r6, sl}  @ phole stm
75418   str r9, [sp, #8]
75419   bl  render_scanline_conditional_bitmap
75420   tst r6, #64
75421   beq .L23468
75422   mov r1, r5
75423   mov r0, #4
75424   mov r2, #240
75425   mov r3, r7
75426   bl  render_scanline_obj_copy_bitmap_1D
75427   b .L23418
75428 .L23450:
75429   ldr r3, [sp, #28]
75430   mov r0, r4
75431   mov r1, r5
75432   b .L23612
75433 .L23658:
75434   ldr r3, [sp, #12]
75435   mov r0, r8
75436   mov r1, r4
75437   mov r2, r7
75438   stmia sp, {r6, sl}  @ phole stm
75439   str r9, [sp, #8]
75440   bl  render_scanline_conditional_bitmap
75441   tst r6, #64
75442   beq .L23538
75443   mov r0, #4
75444   mov r1, r8
75445   mov r2, r4
75446   mov r3, r7
75447   bl  render_scanline_obj_copy_bitmap_1D
75448   b .L23536
75449 .L23403:
75450   ldr r3, [sp, #12]
75451   mov r0, r8
75452   mov r1, r4
75453   mov r2, r7
75454   stmia sp, {r6, sl}  @ phole stm
75455   str r9, [sp, #8]
75456   bl  render_scanline_conditional_bitmap
75457   tst r6, #64
75458   beq .L23407
75459   mov r0, #4
75460   mov r1, r8
75461   mov r2, r4
75462   mov r3, r7
75463   bl  render_scanline_obj_copy_bitmap_1D
75464   b .L23401
75465 .L23439:
75466   mov r0, #4
75467   mov r1, r8
75468   mov r2, fp
75469   mov r3, r7
75470   bl  render_scanline_obj_copy_bitmap_2D
75471   b .L23426
75472 .L23414:
75473   mov r1, r5
75474   mov r0, #4
75475   mov r2, r4
75476   mov r3, r7
75477   bl  render_scanline_obj_copy_bitmap_2D
75478   b .L23401
75479 .L23441:
75480   mov r0, #4
75481   mov r1, r8
75482   mov r2, r4
75483   mov r3, r7
75484   bl  render_scanline_obj_copy_bitmap_2D
75485   b .L23426
75486 .L23513:
75487   mov r0, #4
75488   mov r1, r5
75489   mov r2, #240
75490   mov r3, r7
75491   bl  render_scanline_obj_copy_bitmap_2D
75492   b .L23491
75493 .L23457:
75494   ldr r3, [sp, #12]
75495   mov r0, r8
75496   mov r1, #240
75497   mov r2, r7
75498   stmia sp, {r6, sl}  @ phole stm
75499   str r9, [sp, #8]
75500   bl  render_scanline_conditional_bitmap
75501   tst r6, #64
75502   beq .L23461
75503   mov r1, r8
75504   mov r0, #4
75505   mov r2, #240
75506   mov r3, r7
75507   bl  render_scanline_obj_copy_bitmap_1D
75508   b .L23418
75509 .L23661:
75510   mov r1, fp
75511   mov r0, #0
75512   mov r2, r7
75513   ldr r3, [sp, #12]
75514   stmia sp, {r6, sl}  @ phole stm
75515   str r9, [sp, #8]
75516   bl  render_scanline_conditional_bitmap
75517   ands  r1, r6, #64
75518   beq .L23498
75519   mov r0, #4
75520   mov r1, #0
75521   mov r2, fp
75522   mov r3, r7
75523   bl  render_scanline_obj_copy_bitmap_1D
75524   b .L23493
75525 .L23485:
75526   mov r0, #4
75527   mov r1, r5
75528   mov r2, fp
75529   mov r3, r7
75530   bl  render_scanline_obj_copy_bitmap_2D
75531   b .L23483
75532 .L23412:
75533   mov r1, r5
75534   mov r0, #4
75535   mov r2, fp
75536   mov r3, r7
75537   bl  render_scanline_obj_copy_bitmap_2D
75538   b .L23401
75539 .L23500:
75540   mov r0, #4
75541   mov r2, r4
75542   mov r3, r7
75543   bl  render_scanline_obj_copy_bitmap_2D
75544   b .L23493
75545 .L23511:
75546   mov r0, #4
75547   mov r1, r5
75548   mov r2, fp
75549   mov r3, r7
75550   bl  render_scanline_obj_copy_bitmap_2D
75551   b .L23491
75552 .L23468:
75553   mov r1, r5
75554   mov r0, #4
75555   mov r2, #240
75556   mov r3, r7
75557   bl  render_scanline_obj_copy_bitmap_2D
75558   b .L23418
75559 .L23461:
75560   mov r1, r8
75561   mov r0, #4
75562   mov r2, #240
75563   mov r3, r7
75564   bl  render_scanline_obj_copy_bitmap_2D
75565   b .L23418
75566 .L23405:
75567   mov r0, #4
75568   mov r1, r8
75569   mov r2, fp
75570   mov r3, r7
75571   bl  render_scanline_obj_copy_bitmap_2D
75572   b .L23401
75573 .L23538:
75574   mov r0, #4
75575   mov r1, r8
75576   mov r2, r4
75577   mov r3, r7
75578   bl  render_scanline_obj_copy_bitmap_2D
75579   b .L23536
75580 .L23498:
75581   mov r0, #4
75582   mov r2, fp
75583   mov r3, r7
75584   bl  render_scanline_obj_copy_bitmap_2D
75585   b .L23493
75586 .L23407:
75587   mov r0, #4
75588   mov r1, r8
75589   mov r2, r4
75590   mov r3, r7
75591   bl  render_scanline_obj_copy_bitmap_2D
75592   b .L23401
75593 .L23459:
75594   mov r1, r8
75595   mov r0, #4
75596   mov r2, fp
75597   mov r3, r7
75598   bl  render_scanline_obj_copy_bitmap_2D
75599   b .L23422
75600 .L23466:
75601   mov r1, r5
75602   mov r0, #4
75603   mov r2, fp
75604   mov r3, r7
75605   bl  render_scanline_obj_copy_bitmap_2D
75606   b .L23422
75607   .size render_scanline_window_bitmap, .-render_scanline_window_bitmap
75608   .align  2
75609   .global update_scanline
75610   .type update_scanline, %function
75611 update_scanline:
75612   @ args = 0, pretend = 0, frame = 12
75613   @ frame_needed = 0, uses_anonymous_args = 0
75614   stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
75615   ldr r2, .L23760
75616   ldr r0, .L23760+4
75617   ldr r9, .L23760+8
75618   ldr r3, [r0, #0]
75619   ldr r1, [r2, #0]
75620   cmp r3, #0
75621   ldr r2, [r1, #20]
75622   ldrh  fp, [r9, #0]
75623   ldrh  r1, [r1, #16]
75624   ldrh  r3, [r9, #6]
75625   sub sp, sp, #12
75626   str r2, [sp, #8]
75627   stmia sp, {r1, r3}  @ phole stm
75628   and sl, fp, #7
75629   movne ip, #0
75630   bne .L23669
75631 .L23666:
75632   ldr r2, .L23760+12
75633   ldr r0, [sp, #4]
75634   ldr r3, [r2, sl, asl #2]
75635   ldr r2, .L23760+16
75636   and r3, r3, fp, lsr #8
75637   add lr, r2, r0, asl #2
75638   ldr r2, .L23760+20
75639   mov r1, #0
75640   mov r5, r1
75641   and r7, r3, #1
75642   and r0, r3, #16
75643   mov ip, #3
75644   and r8, r3, #8
75645   and r6, r3, #4
75646   and r4, r3, #2
75647   str r1, [r2, #0]
75648 .L23696:
75649   cmp r8, #0
75650   beq .L23725
75651   ldrh  r3, [r9, #14]
75652   and r3, r3, #3
75653   cmp r3, ip
75654   ldreq r3, .L23760+24
75655   moveq r2, #3
75656   streq r2, [r3, r5, asl #2]
75657   addeq r5, r5, #1
75658 .L23725:
75659   cmp r6, #0
75660   beq .L23728
75661   ldrh  r3, [r9, #12]
75662   and r3, r3, #3
75663   cmp r3, ip
75664   ldreq r3, .L23760+24
75665   moveq r2, #2
75666   streq r2, [r3, r5, asl #2]
75667   addeq r5, r5, #1
75668 .L23728:
75669   cmp r4, #0
75670   beq .L23731
75671   ldrh  r3, [r9, #10]
75672   and r3, r3, #3
75673   cmp r3, ip
75674   ldreq r3, .L23760+24
75675   moveq r2, #1
75676   streq r2, [r3, r5, asl #2]
75677   addeq r5, r5, r2
75678 .L23731:
75679   cmp r7, #0
75680   beq .L23698
75681   ldrh  r3, [r9, #8]
75682   and r3, r3, #3
75683   cmp r3, ip
75684   ldreq r3, .L23760+24
75685   moveq r2, #0
75686   streq r2, [r3, r5, asl #2]
75687   addeq r5, r5, #1
75688 .L23698:
75689   ldr r3, [lr, #1920]
75690   cmp r3, #0
75691   beq .L23700
75692   cmp r0, #0
75693   ldrne r3, .L23760+24
75694   orrne r2, ip, #4
75695   strne r2, [r3, r5, asl #2]
75696   addne r5, r5, #1
75697 .L23700:
75698   sub ip, ip, #1
75699   cmn ip, #1
75700   sub lr, lr, #640
75701   bne .L23696
75702   ldr r3, .L23760+20
75703   str r5, [r3, #0]
75704   ldr r3, .L23760+28
75705   ldr r1, [r3, #0]
75706   cmp r1, #0
75707   bne .L23734
75708   ldr r0, [sp, #0]
75709   ldr r4, [sp, #8]
75710   mov r2, r0, lsr #1
75711   ldr r0, [sp, #4]
75712   tst fp, #128
75713   mov r3, r0, asl #1
75714   mla r4, r3, r2, r4
75715   beq .L23706
75716   mov r3, r1
75717 .L23708:
75718   mvn r1, #0  @ movhi
75719   strh  r1, [r3, r4]  @ movhi
75720   add r3, r3, #2
75721   cmp r3, #480
75722   bne .L23708
75723 .L23709:
75724   ldr lr, .L23760+32
75725   ldr r4, .L23760+36
75726   ldr r5, [lr, #0]
75727   ldr r6, [r4, #0]
75728   ldr r3, [lr, #4]
75729   ldr r2, [r4, #4]
75730   ldrsh r7, [r9, #54]
75731   ldrsh r1, [r9, #34]
75732   ldrsh r0, [r9, #38]
75733   ldrsh ip, [r9, #50]
75734   add r5, r5, r1
75735   add r6, r6, r0
75736   add r3, r3, ip
75737   add r2, r2, r7
75738   str r3, [lr, #4]
75739   str r2, [r4, #4]
75740   str r5, [lr, #0]
75741   str r6, [r4, #0]
75742 .L23734:
75743   add sp, sp, #12
75744   ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
75745 .L23759:
75746   add ip, ip, #1
75747   cmp ip, #5
75748   beq .L23752
75749 .L23669:
75750   ldr r1, .L23760+16
75751   add r3, ip, ip, asl #2
75752   add r2, r1, r3, asl #7
75753   mov r3, #0
75754 .L23667:
75755   add r3, r3, #1
75756   mov r1, #0
75757   cmp r3, #160
75758   str r1, [r2], #4
75759   bne .L23667
75760   b .L23759
75761 .L23752:
75762   ldr r3, .L23760+40
75763   add r2, r3, #640
75764 .L23671:
75765   str r1, [r3], #4
75766   cmp r3, r2
75767   bne .L23671
75768   ldr r6, .L23760+44
75769   mov r7, #127
75770 .L23673:
75771   ldrh  r2, [r6, #8]
75772   ldrh  r0, [r6, #12]
75773   and r1, r2, #49152
75774   and r3, r2, #768
75775   cmp r3, #512
75776   cmpne r1, #49152
75777   beq .L23674
75778   mov r3, r2, lsr #10
75779   and r4, r3, #3
75780   cmp r4, #3
75781   beq .L23674
75782   cmp sl, #2
75783   bls .L23677
75784   mov r3, r0, asl #22
75785   mov r3, r3, lsr #22
75786   cmp r3, #512
75787   bcc .L23674
75788 .L23677:
75789   ldrh  r5, [r6, #10]
75790   and ip, r2, #255
75791   mov r3, r5, lsr #14
75792   orr r3, r3, r1, lsr #12
75793   ldr r1, .L23760+48
75794   cmp ip, #160
75795   subgt ip, ip, #256
75796   ldr r1, [r1, r3, asl #2]
75797   tst r2, #512
75798   ldr r2, .L23760+52
75799   movne r1, r1, asl #1
75800   ldr r2, [r2, r3, asl #2]
75801   add lr, ip, r1
75802   movne r2, r2, asl #1
75803   cmp lr, #0
75804   movle r3, #0
75805   movgt r3, #1
75806   cmp ip, #159
75807   movgt r3, #0
75808   cmp r3, #0
75809   beq .L23674
75810   mov r3, r5, asl #23
75811   mov r3, r3, asr #23
75812   add r2, r2, r3
75813   cmp r2, #0
75814   movle r1, #0
75815   movgt r1, #1
75816   cmp r3, #239
75817   movgt r1, #0
75818   cmp r1, #0
75819   beq .L23674
75820   cmp ip, #0
75821   movlt ip, #0
75822   cmp lr, #160
75823   movge lr, #160
75824   mov r3, r0, lsr #10
75825   cmp r4, #1
75826   and r3, r3, #3
75827   beq .L23754
75828   cmp r4, #2
75829   moveq r3, #4
75830   cmp ip, lr
75831   bge .L23674
75832   add r3, r3, r3, asl #2
75833   ldr r2, .L23760+56
75834   ldr r0, .L23760+16
75835   rsb r1, ip, lr
75836   add r3, ip, r3, asl #5
75837   mov r4, ip
75838   add r1, ip, r1
75839   add lr, r2, r3, asl #7
75840   and r5, r7, #255
75841   add ip, r0, r3, asl #2
75842 .L23694:
75843   ldr r2, [ip, #0]
75844   add r4, r4, #1
75845   add r3, r2, #1
75846   cmp r4, r1
75847   strb  r5, [lr, r2]
75848   str r3, [ip], #4
75849   add lr, lr, #128
75850   bne .L23694
75851 .L23674:
75852   sub r7, r7, #1
75853   cmn r7, #1
75854   sub r6, r6, #8
75855   bne .L23673
75856 .L23755:
75857   ldr r1, .L23760+4
75858   mov r3, #0
75859   str r3, [r1, #0]
75860   b .L23666
75861 .L23754:
75862   cmp ip, lr
75863   bge .L23674
75864   ldr r2, .L23760+56
75865   add r3, r3, r3, asl #2
75866   rsb r1, ip, lr
75867   add r3, ip, r3, asl #5
75868   add r8, ip, r1
75869   add r4, r2, r3, asl #7
75870   ldr r1, .L23760+16
75871   ldr r2, .L23760+40
75872   mov r5, ip
75873   and r0, r7, #255
75874   add lr, r1, r3, asl #2
75875   add ip, r2, ip, asl #2
75876 .L23690:
75877   ldr r3, [lr, #0]
75878   ldr r2, [ip, #0]
75879   add r5, r5, #1
75880   add r1, r3, #1
75881   add r2, r2, #1
75882   cmp r5, r8
75883   strb  r0, [r4, r3]
75884   str r1, [lr], #4
75885   str r2, [ip], #4
75886   add r4, r4, #128
75887   bne .L23690
75888   sub r7, r7, #1
75889   cmn r7, #1
75890   sub r6, r6, #8
75891   bne .L23673
75892   b .L23755
75893 .L23706:
75894   cmp sl, #2
75895   bls .L23756
75896   movs  r0, fp, lsr #13
75897   bne .L23757
75898   ldr r3, .L23760+60
75899   ldr r2, .L23760+64
75900   ldrh  r1, [r3, #0]
75901   add r8, r2, sl, asl #2
75902   mov r3, r0
75903 .L23716:
75904   strh  r1, [r3, r4]  @ movhi
75905   add r3, r3, #2
75906   cmp r3, #480
75907   bne .L23716
75908   cmp r5, #0
75909   beq .L23709
75910   ldr r6, .L23760+24
75911   and r7, fp, #64
75912   mov r5, #0
75913   b .L23719
75914 .L23758:
75915   bl  render_scanline_obj_normal_1D
75916 .L23724:
75917   ldr r0, .L23760+20
75918   add r5, r5, #1
75919   ldr r3, [r0, #0]
75920   add r6, r6, #4
75921   cmp r3, r5
75922   bls .L23709
75923 .L23719:
75924   ldr ip, [r6, #0]
75925   mov r1, #240
75926   ands  r0, ip, #4
75927   mov r2, r4
75928   beq .L23720
75929   sub r1, r1, #240
75930   bic ip, ip, #4
75931   cmp r7, r1
75932   mov r2, #240
75933   mov r3, r4
75934   mov r0, ip
75935   bne .L23758
75936   mov r0, ip
75937   mov r1, r7
75938   mov r2, #240
75939   mov r3, r4
75940   bl  render_scanline_obj_normal_2D
75941   b .L23724
75942 .L23756:
75943   movs  r2, fp, lsr #13
75944   beq .L23712
75945   mov r0, r4
75946   mov r1, fp
75947   bl  render_scanline_window_tile
75948   b .L23709
75949 .L23720:
75950   mov lr, pc
75951   ldr pc, [r8, #0]
75952   b .L23724
75953 .L23712:
75954   mov r0, r4
75955   mov r1, fp
75956   bl  render_scanline_tile
75957   b .L23709
75958 .L23757:
75959   mov r0, r4
75960   mov r1, fp
75961   bl  render_scanline_window_bitmap
75962   b .L23709
75963 .L23761:
75964   .align  2
75965 .L23760:
75966   .word screen
75967   .word oam_update
75968   .word io_registers
75969   .word active_layers
75970   .word obj_priority_count
75971   .word layer_count
75972   .word layer_order
75973   .word skip_next_frame
75974   .word affine_reference_x
75975   .word affine_reference_y
75976   .word obj_alpha_count
75977   .word oam_ram+1008
75978   .word obj_height_table
75979   .word obj_width_table
75980   .word obj_priority_list
75981   .word palette_ram_converted
75982   .word bitmap_mode_renderers-12
75983   .size update_scanline, .-update_scanline
75984   .global video_scale
75985   .section  .rodata
75986   .align  2
75987   .type video_scale, %object
75988   .size video_scale, 4
75989 video_scale:
75990   .word 1
75991   .global map_widths
75992   .data
75993   .align  2
75994   .type map_widths, %object
75995   .size map_widths, 16
75996 map_widths:
75997   .word 256
75998   .word 512
75999   .word 256
76000   .word 512
76001   .global map_heights
76002   .align  2
76003   .type map_heights, %object
76004   .size map_heights, 16
76005 map_heights:
76006   .word 256
76007   .word 256
76008   .word 512
76009   .word 512
76010   .global tile_mode_renderers
76011   .align  2
76012   .type tile_mode_renderers, %object
76013   .size tile_mode_renderers, 384
76014 tile_mode_renderers:
76015   .word render_scanline_text_base_normal
76016   .word render_scanline_text_transparent_normal
76017   .word render_scanline_text_base_alpha
76018   .word render_scanline_text_transparent_alpha
76019   .word render_scanline_text_base_color16
76020   .word render_scanline_text_transparent_color16
76021   .word render_scanline_text_base_color32
76022   .word render_scanline_text_transparent_color32
76023   .word render_scanline_text_base_normal
76024   .word render_scanline_text_transparent_normal
76025   .word render_scanline_text_base_alpha
76026   .word render_scanline_text_transparent_alpha
76027   .word render_scanline_text_base_color16
76028   .word render_scanline_text_transparent_color16
76029   .word render_scanline_text_base_color32
76030   .word render_scanline_text_transparent_color32
76031   .word render_scanline_text_base_normal
76032   .word render_scanline_text_transparent_normal
76033   .word render_scanline_text_base_alpha
76034   .word render_scanline_text_transparent_alpha
76035   .word render_scanline_text_base_color16
76036   .word render_scanline_text_transparent_color16
76037   .word render_scanline_text_base_color32
76038   .word render_scanline_text_transparent_color32
76039   .word render_scanline_text_base_normal
76040   .word render_scanline_text_transparent_normal
76041   .word render_scanline_text_base_alpha
76042   .word render_scanline_text_transparent_alpha
76043   .word render_scanline_text_base_color16
76044   .word render_scanline_text_transparent_color16
76045   .word render_scanline_text_base_color32
76046   .word render_scanline_text_transparent_color32
76047   .word render_scanline_text_base_normal
76048   .word render_scanline_text_transparent_normal
76049   .word render_scanline_text_base_alpha
76050   .word render_scanline_text_transparent_alpha
76051   .word render_scanline_text_base_color16
76052   .word render_scanline_text_transparent_color16
76053   .word render_scanline_text_base_color32
76054   .word render_scanline_text_transparent_color32
76055   .word render_scanline_text_base_normal
76056   .word render_scanline_text_transparent_normal
76057   .word render_scanline_text_base_alpha
76058   .word render_scanline_text_transparent_alpha
76059   .word render_scanline_text_base_color16
76060   .word render_scanline_text_transparent_color16
76061   .word render_scanline_text_base_color32
76062   .word render_scanline_text_transparent_color32
76063   .word render_scanline_affine_base_normal
76064   .word render_scanline_affine_transparent_normal
76065   .word render_scanline_affine_base_alpha
76066   .word render_scanline_affine_transparent_alpha
76067   .word render_scanline_affine_base_color16
76068   .word render_scanline_affine_transparent_color16
76069   .word render_scanline_affine_base_color32
76070   .word render_scanline_affine_transparent_color32
76071   .word render_scanline_text_base_normal
76072   .word render_scanline_text_transparent_normal
76073   .word render_scanline_text_base_alpha
76074   .word render_scanline_text_transparent_alpha
76075   .word render_scanline_text_base_color16
76076   .word render_scanline_text_transparent_color16
76077   .word render_scanline_text_base_color32
76078   .word render_scanline_text_transparent_color32
76079   .word render_scanline_text_base_normal
76080   .word render_scanline_text_transparent_normal
76081   .word render_scanline_text_base_alpha
76082   .word render_scanline_text_transparent_alpha
76083   .word render_scanline_text_base_color16
76084   .word render_scanline_text_transparent_color16
76085   .word render_scanline_text_base_color32
76086   .word render_scanline_text_transparent_color32
76087   .word render_scanline_text_base_normal
76088   .word render_scanline_text_transparent_normal
76089   .word render_scanline_text_base_alpha
76090   .word render_scanline_text_transparent_alpha
76091   .word render_scanline_text_base_color16
76092   .word render_scanline_text_transparent_color16
76093   .word render_scanline_text_base_color32
76094   .word render_scanline_text_transparent_color32
76095   .word render_scanline_affine_base_normal
76096   .word render_scanline_affine_transparent_normal
76097   .word render_scanline_affine_base_alpha
76098   .word render_scanline_affine_transparent_alpha
76099   .word render_scanline_affine_base_color16
76100   .word render_scanline_affine_transparent_color16
76101   .word render_scanline_affine_base_color32
76102   .word render_scanline_affine_transparent_color32
76103   .word render_scanline_affine_base_normal
76104   .word render_scanline_affine_transparent_normal
76105   .word render_scanline_affine_base_alpha
76106   .word render_scanline_affine_transparent_alpha
76107   .word render_scanline_affine_base_color16
76108   .word render_scanline_affine_transparent_color16
76109   .word render_scanline_affine_base_color32
76110   .word render_scanline_affine_transparent_color32
76111   .global bitmap_mode_renderers
76112   .align  2
76113   .type bitmap_mode_renderers, %object
76114   .size bitmap_mode_renderers, 12
76115 bitmap_mode_renderers:
76116   .word render_scanline_bitmap_mode3_normal
76117   .word render_scanline_bitmap_mode4_normal
76118   .word render_scanline_bitmap_mode5_normal
76119   .global obj_width_table
76120   .align  2
76121   .type obj_width_table, %object
76122   .size obj_width_table, 48
76123 obj_width_table:
76124   .word 8
76125   .word 16
76126   .word 32
76127   .word 64
76128   .word 16
76129   .word 32
76130   .word 32
76131   .word 64
76132   .word 8
76133   .word 8
76134   .word 16
76135   .word 32
76136   .global obj_height_table
76137   .align  2
76138   .type obj_height_table, %object
76139   .size obj_height_table, 48
76140 obj_height_table:
76141   .word 8
76142   .word 16
76143   .word 32
76144   .word 64
76145   .word 8
76146   .word 8
76147   .word 16
76148   .word 32
76149   .word 16
76150   .word 32
76151   .word 32
76152   .word 64
76153   .global active_layers
76154   .align  2
76155   .type active_layers, %object
76156   .size active_layers, 24
76157 active_layers:
76158   .word 31
76159   .word 23
76160   .word 28
76161   .word 20
76162   .word 20
76163   .word 20
76164   .global small_resolution_width
76165   .align  2
76166   .type small_resolution_width, %object
76167   .size small_resolution_width, 4
76168 small_resolution_width:
76169   .word 240
76170   .global small_resolution_height
76171   .align  2
76172   .type small_resolution_height, %object
76173   .size small_resolution_height, 4
76174 small_resolution_height:
76175   .word 160
76176   .global screen_scale
76177   .align  2
76178   .type screen_scale, %object
76179   .size screen_scale, 4
76180 screen_scale:
76181   .word 1
76182   .global current_scale
76183   .align  2
76184   .type current_scale, %object
76185   .size current_scale, 4
76186 current_scale:
76187   .word 1
76188   .global screen_filter
76189   .align  2
76190   .type screen_filter, %object
76191   .size screen_filter, 4
76192 screen_filter:
76193   .word 1
76194   .global debug_cursor_x
76195   .bss
76196   .align  2
76197   .type debug_cursor_x, %object
76198   .size debug_cursor_x, 4
76199 debug_cursor_x:
76200   .space  4
76201   .global debug_cursor_y
76202   .align  2
76203   .type debug_cursor_y, %object
76204   .size debug_cursor_y, 4
76205 debug_cursor_y:
76206   .space  4
76207   .section  .rodata
76208   .align  2
76209   .type _font_offset, %object
76210   .size _font_offset, 1024
76211 _font_offset:
76212   .word 0
76213   .word 10
76214   .word 20
76215   .word 30
76216   .word 40
76217   .word 50
76218   .word 60
76219   .word 70
76220   .word 80
76221   .word 90
76222   .word 100
76223   .word 110
76224   .word 120
76225   .word 130
76226   .word 140
76227   .word 150
76228   .word 160
76229   .word 170
76230   .word 180
76231   .word 190
76232   .word 200
76233   .word 210
76234   .word 220
76235   .word 230
76236   .word 240
76237   .word 250
76238   .word 260
76239   .word 270
76240   .word 280
76241   .word 290
76242   .word 300
76243   .word 310
76244   .word 320
76245   .word 330
76246   .word 340
76247   .word 350
76248   .word 360
76249   .word 370
76250   .word 380
76251   .word 390
76252   .word 400
76253   .word 410
76254   .word 420
76255   .word 430
76256   .word 440
76257   .word 450
76258   .word 460
76259   .word 470
76260   .word 480
76261   .word 490
76262   .word 500
76263   .word 510
76264   .word 520
76265   .word 530
76266   .word 540
76267   .word 550
76268   .word 560
76269   .word 570
76270   .word 580
76271   .word 590
76272   .word 600
76273   .word 610
76274   .word 620
76275   .word 630
76276   .word 640
76277   .word 650
76278   .word 660
76279   .word 670
76280   .word 680
76281   .word 690
76282   .word 700
76283   .word 710
76284   .word 720
76285   .word 730
76286   .word 740
76287   .word 750
76288   .word 760
76289   .word 770
76290   .word 780
76291   .word 790
76292   .word 800
76293   .word 810
76294   .word 820
76295   .word 830
76296   .word 840
76297   .word 850
76298   .word 860
76299   .word 870
76300   .word 880
76301   .word 890
76302   .word 900
76303   .word 910
76304   .word 920
76305   .word 930
76306   .word 940
76307   .word 950
76308   .word 960
76309   .word 970
76310   .word 980
76311   .word 990
76312   .word 1000
76313   .word 1010
76314   .word 1020
76315   .word 1030
76316   .word 1040
76317   .word 1050
76318   .word 1060
76319   .word 1070
76320   .word 1080
76321   .word 1090
76322   .word 1100
76323   .word 1110
76324   .word 1120
76325   .word 1130
76326   .word 1140
76327   .word 1150
76328   .word 1160
76329   .word 1170
76330   .word 1180
76331   .word 1190
76332   .word 1200
76333   .word 1210
76334   .word 1220
76335   .word 1230
76336   .word 1240
76337   .word 1250
76338   .word 1260
76339   .word 0
76340   .word 0
76341   .word 0
76342   .word 0
76343   .word 0
76344   .word 0
76345   .word 0
76346   .word 0
76347   .word 0
76348   .word 0
76349   .word 0
76350   .word 0
76351   .word 0
76352   .word 0
76353   .word 0
76354   .word 0
76355   .word 0
76356   .word 0
76357   .word 0
76358   .word 0
76359   .word 0
76360   .word 0
76361   .word 0
76362   .word 0
76363   .word 0
76364   .word 0
76365   .word 0
76366   .word 0
76367   .word 0
76368   .word 0
76369   .word 0
76370   .word 0
76371   .word 0
76372   .word 1270
76373   .word 1280
76374   .word 1290
76375   .word 1300
76376   .word 1310
76377   .word 1320
76378   .word 1330
76379   .word 1340
76380   .word 1350
76381   .word 1360
76382   .word 1370
76383   .word 1380
76384   .word 1390
76385   .word 1400
76386   .word 1410
76387   .word 1420
76388   .word 1430
76389   .word 1440
76390   .word 1450
76391   .word 1460
76392   .word 1470
76393   .word 1480
76394   .word 1490
76395   .word 1500
76396   .word 1510
76397   .word 1520
76398   .word 1530
76399   .word 1540
76400   .word 1550
76401   .word 1560
76402   .word 1570
76403   .word 1580
76404   .word 1590
76405   .word 1600
76406   .word 1610
76407   .word 1620
76408   .word 1630
76409   .word 1640
76410   .word 1650
76411   .word 1660
76412   .word 1670
76413   .word 1680
76414   .word 1690
76415   .word 1700
76416   .word 1710
76417   .word 1720
76418   .word 1730
76419   .word 1740
76420   .word 1750
76421   .word 1760
76422   .word 1770
76423   .word 1780
76424   .word 1790
76425   .word 1800
76426   .word 1810
76427   .word 1820
76428   .word 1830
76429   .word 1840
76430   .word 1850
76431   .word 1860
76432   .word 1870
76433   .word 1880
76434   .word 1890
76435   .word 1900
76436   .word 1910
76437   .word 1920
76438   .word 1930
76439   .word 1940
76440   .word 1950
76441   .word 1960
76442   .word 1970
76443   .word 1980
76444   .word 1990
76445   .word 2000
76446   .word 2010
76447   .word 2020
76448   .word 2030
76449   .word 2040
76450   .word 2050
76451   .word 2060
76452   .word 2070
76453   .word 2080
76454   .word 2090
76455   .word 2100
76456   .word 2110
76457   .word 2120
76458   .word 2130
76459   .word 2140
76460   .word 2150
76461   .word 2160
76462   .word 2170
76463   .word 2180
76464   .word 2190
76465   .word 2200
76466   .word 2210
76467   .word 2220
76468   .align  1
76469   .type _font_bits, %object
76470   .size _font_bits, 4460
76471 _font_bits:
76472   .short  0
76473   .short  -22528
76474   .short  0
76475   .short  -30720
76476   .short  0
76477   .short  -30720
76478   .short  0
76479   .short  -22528
76480   .short  0
76481   .short  0
76482   .short  0
76483   .short  0
76484   .short  8192
76485   .short  28672
76486   .short  -2048
76487   .short  28672
76488   .short  8192
76489   .short  0
76490   .short  0
76491   .short  0
76492   .short  -22528
76493   .short  21504
76494   .short  -22528
76495   .short  21504
76496   .short  -22528
76497   .short  21504
76498   .short  -22528
76499   .short  21504
76500   .short  -22528
76501   .short  21504
76502   .short  0
76503   .short  -28672
76504   .short  -28672
76505   .short  -4096
76506   .short  -28672
76507   .short  -28672
76508   .short  30720
76509   .short  4096
76510   .short  4096
76511   .short  4096
76512   .short  0
76513   .short  -8192
76514   .short  -32768
76515   .short  -16384
76516   .short  -32768
76517   .short  -18432
76518   .short  8192
76519   .short  12288
76520   .short  8192
76521   .short  8192
76522   .short  0
76523   .short  28672
76524   .short  -32768
76525   .short  -32768
76526   .short  28672
76527   .short  28672
76528   .short  18432
76529   .short  28672
76530   .short  18432
76531   .short  18432
76532   .short  0
76533   .short  -32768
76534   .short  -32768
76535   .short  -32768
76536   .short  -4096
76537   .short  30720
76538   .short  16384
76539   .short  28672
76540   .short  16384
76541   .short  16384
76542   .short  0
76543   .short  8192
76544   .short  20480
76545   .short  8192
76546   .short  0
76547   .short  0
76548   .short  0
76549   .short  0
76550   .short  0
76551   .short  0
76552   .short  0
76553   .short  0
76554   .short  8192
76555   .short  8192
76556   .short  -2048
76557   .short  8192
76558   .short  8192
76559   .short  -2048
76560   .short  0
76561   .short  0
76562   .short  0
76563   .short  -28672
76564   .short  -12288
76565   .short  -12288
76566   .short  -20480
76567   .short  -28672
76568   .short  16384
76569   .short  16384
76570   .short  16384
76571   .short  30720
76572   .short  0
76573   .short  -28672
76574   .short  -28672
76575   .short  24576
76576   .short  16384
76577   .short  30720
76578   .short  4096
76579   .short  4096
76580   .short  4096
76581   .short  4096
76582   .short  8192
76583   .short  8192
76584   .short  8192
76585   .short  8192
76586   .short  8192
76587   .short  -8192
76588   .short  0
76589   .short  0
76590   .short  0
76591   .short  0
76592   .short  0
76593   .short  0
76594   .short  0
76595   .short  0
76596   .short  0
76597   .short  -8192
76598   .short  8192
76599   .short  8192
76600   .short  8192
76601   .short  8192
76602   .short  0
76603   .short  0
76604   .short  0
76605   .short  0
76606   .short  0
76607   .short  15360
76608   .short  8192
76609   .short  8192
76610   .short  8192
76611   .short  8192
76612   .short  8192
76613   .short  8192
76614   .short  8192
76615   .short  8192
76616   .short  8192
76617   .short  15360
76618   .short  0
76619   .short  0
76620   .short  0
76621   .short  0
76622   .short  8192
76623   .short  8192
76624   .short  8192
76625   .short  8192
76626   .short  8192
76627   .short  -1024
76628   .short  8192
76629   .short  8192
76630   .short  8192
76631   .short  8192
76632   .short  -1024
76633   .short  0
76634   .short  0
76635   .short  0
76636   .short  0
76637   .short  0
76638   .short  0
76639   .short  0
76640   .short  0
76641   .short  0
76642   .short  0
76643   .short  0
76644   .short  -1024
76645   .short  0
76646   .short  0
76647   .short  0
76648   .short  0
76649   .short  0
76650   .short  0
76651   .short  0
76652   .short  0
76653   .short  0
76654   .short  0
76655   .short  0
76656   .short  0
76657   .short  -1024
76658   .short  0
76659   .short  0
76660   .short  0
76661   .short  0
76662   .short  0
76663   .short  0
76664   .short  0
76665   .short  0
76666   .short  0
76667   .short  0
76668   .short  0
76669   .short  -1024
76670   .short  0
76671   .short  0
76672   .short  0
76673   .short  0
76674   .short  0
76675   .short  0
76676   .short  0
76677   .short  0
76678   .short  0
76679   .short  0
76680   .short  0
76681   .short  -1024
76682   .short  8192
76683   .short  8192
76684   .short  8192
76685   .short  8192
76686   .short  8192
76687   .short  15360
76688   .short  8192
76689   .short  8192
76690   .short  8192
76691   .short  8192
76692   .short  8192
76693   .short  8192
76694   .short  8192
76695   .short  8192
76696   .short  8192
76697   .short  -8192
76698   .short  8192
76699   .short  8192
76700   .short  8192
76701   .short  8192
76702   .short  8192
76703   .short  8192
76704   .short  8192
76705   .short  8192
76706   .short  8192
76707   .short  -1024
76708   .short  0
76709   .short  0
76710   .short  0
76711   .short  0
76712   .short  0
76713   .short  0
76714   .short  0
76715   .short  0
76716   .short  0
76717   .short  -1024
76718   .short  8192
76719   .short  8192
76720   .short  8192
76721   .short  8192
76722   .short  8192
76723   .short  8192
76724   .short  8192
76725   .short  8192
76726   .short  8192
76727   .short  8192
76728   .short  8192
76729   .short  8192
76730   .short  8192
76731   .short  8192
76732   .short  0
76733   .short  6144
76734   .short  24576
76735   .short  -32768
76736   .short  24576
76737   .short  6144
76738   .short  0
76739   .short  -2048
76740   .short  0
76741   .short  0
76742   .short  0
76743   .short  -16384
76744   .short  12288
76745   .short  2048
76746   .short  12288
76747   .short  -16384
76748   .short  0
76749   .short  -2048
76750   .short  0
76751   .short  0
76752   .short  0
76753   .short  0
76754   .short  0
76755   .short  -2048
76756   .short  20480
76757   .short  20480
76758   .short  20480
76759   .short  20480
76760   .short  0
76761   .short  0
76762   .short  0
76763   .short  2048
76764   .short  4096
76765   .short  -2048
76766   .short  8192
76767   .short  -2048
76768   .short  16384
76769   .short  -32768
76770   .short  0
76771   .short  0
76772   .short  0
76773   .short  12288
76774   .short  18432
76775   .short  16384
76776   .short  -8192
76777   .short  16384
76778   .short  18432
76779   .short  -20480
76780   .short  0
76781   .short  0
76782   .short  0
76783   .short  0
76784   .short  0
76785   .short  0
76786   .short  8192
76787   .short  0
76788   .short  0
76789   .short  0
76790   .short  0
76791   .short  0
76792   .short  0
76793   .short  0
76794   .short  0
76795   .short  0
76796   .short  0
76797   .short  0
76798   .short  0
76799   .short  0
76800   .short  0
76801   .short  0
76802   .short  0
76803   .short  8192
76804   .short  8192
76805   .short  8192
76806   .short  8192
76807   .short  8192
76808   .short  0
76809   .short  8192
76810   .short  0
76811   .short  0
76812   .short  0
76813   .short  20480
76814   .short  20480
76815   .short  20480
76816   .short  0
76817   .short  0
76818   .short  0
76819   .short  0
76820   .short  0
76821   .short  0
76822   .short  0
76823   .short  20480
76824   .short  20480
76825   .short  -2048
76826   .short  20480
76827   .short  -2048
76828   .short  20480
76829   .short  20480
76830   .short  0
76831   .short  0
76832   .short  0
76833   .short  8192
76834   .short  28672
76835   .short  -24576
76836   .short  28672
76837   .short  10240
76838   .short  28672
76839   .short  8192
76840   .short  0
76841   .short  0
76842   .short  0
76843   .short  18432
76844   .short  -22528
76845   .short  20480
76846   .short  8192
76847   .short  20480
76848   .short  -22528
76849   .short  -28672
76850   .short  0
76851   .short  0
76852   .short  0
76853   .short  16384
76854   .short  -24576
76855   .short  -24576
76856   .short  16384
76857   .short  -22528
76858   .short  -28672
76859   .short  26624
76860   .short  0
76861   .short  0
76862   .short  0
76863   .short  8192
76864   .short  8192
76865   .short  8192
76866   .short  0
76867   .short  0
76868   .short  0
76869   .short  0
76870   .short  0
76871   .short  0
76872   .short  0
76873   .short  4096
76874   .short  8192
76875   .short  16384
76876   .short  16384
76877   .short  16384
76878   .short  8192
76879   .short  4096
76880   .short  0
76881   .short  0
76882   .short  0
76883   .short  16384
76884   .short  8192
76885   .short  4096
76886   .short  4096
76887   .short  4096
76888   .short  8192
76889   .short  16384
76890   .short  0
76891   .short  0
76892   .short  0
76893   .short  0
76894   .short  -30720
76895   .short  20480
76896   .short  -2048
76897   .short  20480
76898   .short  -30720
76899   .short  0
76900   .short  0
76901   .short  0
76902   .short  0
76903   .short  0
76904   .short  8192
76905   .short  8192
76906   .short  -2048
76907   .short  8192
76908   .short  8192
76909   .short  0
76910   .short  0
76911   .short  0
76912   .short  0
76913   .short  0
76914   .short  0
76915   .short  0
76916   .short  0
76917   .short  0
76918   .short  12288
76919   .short  8192
76920   .short  16384
76921   .short  0
76922   .short  0
76923   .short  0
76924   .short  0
76925   .short  0
76926   .short  -2048
76927   .short  0
76928   .short  0
76929   .short  0
76930   .short  0
76931   .short  0
76932   .short  0
76933   .short  0
76934   .short  0
76935   .short  0
76936   .short  0
76937   .short  0
76938   .short  8192
76939   .short  28672
76940   .short  8192
76941   .short  0
76942   .short  0
76943   .short  2048
76944   .short  2048
76945   .short  4096
76946   .short  8192
76947   .short  16384
76948   .short  -32768
76949   .short  -32768
76950   .short  0
76951   .short  0
76952   .short  0
76953   .short  8192
76954   .short  20480
76955   .short  -30720
76956   .short  -30720
76957   .short  -30720
76958   .short  20480
76959   .short  8192
76960   .short  0
76961   .short  0
76962   .short  0
76963   .short  8192
76964   .short  24576
76965   .short  -24576
76966   .short  8192
76967   .short  8192
76968   .short  8192
76969   .short  -2048
76970   .short  0
76971   .short  0
76972   .short  0
76973   .short  28672
76974   .short  -30720
76975   .short  2048
76976   .short  12288
76977   .short  16384
76978   .short  -32768
76979   .short  -2048
76980   .short  0
76981   .short  0
76982   .short  0
76983   .short  -2048
76984   .short  2048
76985   .short  4096
76986   .short  12288
76987   .short  2048
76988   .short  -30720
76989   .short  28672
76990   .short  0
76991   .short  0
76992   .short  0
76993   .short  4096
76994   .short  12288
76995   .short  20480
76996   .short  -28672
76997   .short  -2048
76998   .short  4096
76999   .short  4096
77000   .short  0
77001   .short  0
77002   .short  0
77003   .short  -2048
77004   .short  -32768
77005   .short  -20480
77006   .short  -14336
77007   .short  2048
77008   .short  -30720
77009   .short  28672
77010   .short  0
77011   .short  0
77012   .short  0
77013   .short  12288
77014   .short  16384
77015   .short  -32768
77016   .short  -20480
77017   .short  -14336
77018   .short  -30720
77019   .short  28672
77020   .short  0
77021   .short  0
77022   .short  0
77023   .short  -2048
77024   .short  2048
77025   .short  4096
77026   .short  4096
77027   .short  8192
77028   .short  16384
77029   .short  16384
77030   .short  0
77031   .short  0
77032   .short  0
77033   .short  28672
77034   .short  -30720
77035   .short  -30720
77036   .short  28672
77037   .short  -30720
77038   .short  -30720
77039   .short  28672
77040   .short  0
77041   .short  0
77042   .short  0
77043   .short  28672
77044   .short  -30720
77045   .short  -26624
77046   .short  26624
77047   .short  2048
77048   .short  4096
77049   .short  24576
77050   .short  0
77051   .short  0
77052   .short  0
77053   .short  0
77054   .short  8192
77055   .short  28672
77056   .short  8192
77057   .short  0
77058   .short  8192
77059   .short  28672
77060   .short  8192
77061   .short  0
77062   .short  0
77063   .short  0
77064   .short  8192
77065   .short  28672
77066   .short  8192
77067   .short  0
77068   .short  12288
77069   .short  8192
77070   .short  16384
77071   .short  0
77072   .short  0
77073   .short  2048
77074   .short  4096
77075   .short  8192
77076   .short  16384
77077   .short  8192
77078   .short  4096
77079   .short  2048
77080   .short  0
77081   .short  0
77082   .short  0
77083   .short  0
77084   .short  0
77085   .short  -2048
77086   .short  0
77087   .short  -2048
77088   .short  0
77089   .short  0
77090   .short  0
77091   .short  0
77092   .short  0
77093   .short  16384
77094   .short  8192
77095   .short  4096
77096   .short  2048
77097   .short  4096
77098   .short  8192
77099   .short  16384
77100   .short  0
77101   .short  0
77102   .short  0
77103   .short  28672
77104   .short  -30720
77105   .short  4096
77106   .short  8192
77107   .short  8192
77108   .short  0
77109   .short  8192
77110   .short  0
77111   .short  0
77112   .short  0
77113   .short  28672
77114   .short  -30720
77115   .short  -26624
77116   .short  -22528
77117   .short  -20480
77118   .short  -32768
77119   .short  28672
77120   .short  0
77121   .short  0
77122   .short  0
77123   .short  8192
77124   .short  20480
77125   .short  -30720
77126   .short  -30720
77127   .short  -2048
77128   .short  -30720
77129   .short  -30720
77130   .short  0
77131   .short  0
77132   .short  0
77133   .short  -4096
77134   .short  18432
77135   .short  18432
77136   .short  28672
77137   .short  18432
77138   .short  18432
77139   .short  -4096
77140   .short  0
77141   .short  0
77142   .short  0
77143   .short  28672
77144   .short  -30720
77145   .short  -32768
77146   .short  -32768
77147   .short  -32768
77148   .short  -30720
77149   .short  28672
77150   .short  0
77151   .short  0
77152   .short  0
77153   .short  -4096
77154   .short  18432
77155   .short  18432
77156   .short  18432
77157   .short  18432
77158   .short  18432
77159   .short  -4096
77160   .short  0
77161   .short  0
77162   .short  0
77163   .short  -2048
77164   .short  -32768
77165   .short  -32768
77166   .short  -4096
77167   .short  -32768
77168   .short  -32768
77169   .short  -2048
77170   .short  0
77171   .short  0
77172   .short  0
77173   .short  -2048
77174   .short  -32768
77175   .short  -32768
77176   .short  -4096
77177   .short  -32768
77178   .short  -32768
77179   .short  -32768
77180   .short  0
77181   .short  0
77182   .short  0
77183   .short  28672
77184   .short  -30720
77185   .short  -32768
77186   .short  -32768
77187   .short  -26624
77188   .short  -30720
77189   .short  28672
77190   .short  0
77191   .short  0
77192   .short  0
77193   .short  -30720
77194   .short  -30720
77195   .short  -30720
77196   .short  -2048
77197   .short  -30720
77198   .short  -30720
77199   .short  -30720
77200   .short  0
77201   .short  0
77202   .short  0
77203   .short  28672
77204   .short  8192
77205   .short  8192
77206   .short  8192
77207   .short  8192
77208   .short  8192
77209   .short  28672
77210   .short  0
77211   .short  0
77212   .short  0
77213   .short  14336
77214   .short  4096
77215   .short  4096
77216   .short  4096
77217   .short  4096
77218   .short  -28672
77219   .short  24576
77220   .short  0
77221   .short  0
77222   .short  0
77223   .short  -30720
77224   .short  -28672
77225   .short  -24576
77226   .short  -16384
77227   .short  -24576
77228   .short  -28672
77229   .short  -30720
77230   .short  0
77231   .short  0
77232   .short  0
77233   .short  -32768
77234   .short  -32768
77235   .short  -32768
77236   .short  -32768
77237   .short  -32768
77238   .short  -32768
77239   .short  -2048
77240   .short  0
77241   .short  0
77242   .short  0
77243   .short  -30720
77244   .short  -30720
77245   .short  -10240
77246   .short  -22528
77247   .short  -30720
77248   .short  -30720
77249   .short  -30720
77250   .short  0
77251   .short  0
77252   .short  0
77253   .short  -30720
77254   .short  -30720
77255   .short  -14336
77256   .short  -22528
77257   .short  -26624
77258   .short  -30720
77259   .short  -30720
77260   .short  0
77261   .short  0
77262   .short  0
77263   .short  28672
77264   .short  -30720
77265   .short  -30720
77266   .short  -30720
77267   .short  -30720
77268   .short  -30720
77269   .short  28672
77270   .short  0
77271   .short  0
77272   .short  0
77273   .short  -4096
77274   .short  -30720
77275   .short  -30720
77276   .short  -4096
77277   .short  -32768
77278   .short  -32768
77279   .short  -32768
77280   .short  0
77281   .short  0
77282   .short  0
77283   .short  28672
77284   .short  -30720
77285   .short  -30720
77286   .short  -30720
77287   .short  -30720
77288   .short  -22528
77289   .short  28672
77290   .short  2048
77291   .short  0
77292   .short  0
77293   .short  -4096
77294   .short  -30720
77295   .short  -30720
77296   .short  -4096
77297   .short  -24576
77298   .short  -28672
77299   .short  -30720
77300   .short  0
77301   .short  0
77302   .short  0
77303   .short  28672
77304   .short  -30720
77305   .short  -32768
77306   .short  28672
77307   .short  2048
77308   .short  -30720
77309   .short  28672
77310   .short  0
77311   .short  0
77312   .short  0
77313   .short  -2048
77314   .short  8192
77315   .short  8192
77316   .short  8192
77317   .short  8192
77318   .short  8192
77319   .short  8192
77320   .short  0
77321   .short  0
77322   .short  0
77323   .short  -30720
77324   .short  -30720
77325   .short  -30720
77326   .short  -30720
77327   .short  -30720
77328   .short  -30720
77329   .short  28672
77330   .short  0
77331   .short  0
77332   .short  0
77333   .short  -30720
77334   .short  -30720
77335   .short  -30720
77336   .short  20480
77337   .short  20480
77338   .short  20480
77339   .short  8192
77340   .short  0
77341   .short  0
77342   .short  0
77343   .short  -30720
77344   .short  -30720
77345   .short  -30720
77346   .short  -22528
77347   .short  -22528
77348   .short  -10240
77349   .short  -30720
77350   .short  0
77351   .short  0
77352   .short  0
77353   .short  -30720
77354   .short  -30720
77355   .short  20480
77356   .short  8192
77357   .short  20480
77358   .short  -30720
77359   .short  -30720
77360   .short  0
77361   .short  0
77362   .short  0
77363   .short  -30720
77364   .short  -30720
77365   .short  20480
77366   .short  8192
77367   .short  8192
77368   .short  8192
77369   .short  8192
77370   .short  0
77371   .short  0
77372   .short  0
77373   .short  -2048
77374   .short  2048
77375   .short  4096
77376   .short  8192
77377   .short  16384
77378   .short  -32768
77379   .short  -2048
77380   .short  0
77381   .short  0
77382   .short  0
77383   .short  28672
77384   .short  16384
77385   .short  16384
77386   .short  16384
77387   .short  16384
77388   .short  16384
77389   .short  28672
77390   .short  0
77391   .short  0
77392   .short  0
77393   .short  -32768
77394   .short  -32768
77395   .short  16384
77396   .short  8192
77397   .short  4096
77398   .short  2048
77399   .short  2048
77400   .short  0
77401   .short  0
77402   .short  0
77403   .short  28672
77404   .short  4096
77405   .short  4096
77406   .short  4096
77407   .short  4096
77408   .short  4096
77409   .short  28672
77410   .short  0
77411   .short  0
77412   .short  0
77413   .short  8192
77414   .short  20480
77415   .short  -30720
77416   .short  0
77417   .short  0
77418   .short  0
77419   .short  0
77420   .short  0
77421   .short  0
77422   .short  0
77423   .short  0
77424   .short  0
77425   .short  0
77426   .short  0
77427   .short  0
77428   .short  0
77429   .short  0
77430   .short  -2048
77431   .short  0
77432   .short  8192
77433   .short  4096
77434   .short  0
77435   .short  0
77436   .short  0
77437   .short  0
77438   .short  0
77439   .short  0
77440   .short  0
77441   .short  0
77442   .short  0
77443   .short  0
77444   .short  0
77445   .short  28672
77446   .short  2048
77447   .short  30720
77448   .short  -30720
77449   .short  30720
77450   .short  0
77451   .short  0
77452   .short  0
77453   .short  -32768
77454   .short  -32768
77455   .short  -20480
77456   .short  -14336
77457   .short  -30720
77458   .short  -14336
77459   .short  -20480
77460   .short  0
77461   .short  0
77462   .short  0
77463   .short  0
77464   .short  0
77465   .short  28672
77466   .short  -30720
77467   .short  -32768
77468   .short  -30720
77469   .short  28672
77470   .short  0
77471   .short  0
77472   .short  0
77473   .short  2048
77474   .short  2048
77475   .short  26624
77476   .short  -26624
77477   .short  -30720
77478   .short  -26624
77479   .short  26624
77480   .short  0
77481   .short  0
77482   .short  0
77483   .short  0
77484   .short  0
77485   .short  28672
77486   .short  -30720
77487   .short  -2048
77488   .short  -32768
77489   .short  28672
77490   .short  0
77491   .short  0
77492   .short  0
77493   .short  12288
77494   .short  18432
77495   .short  16384
77496   .short  -4096
77497   .short  16384
77498   .short  16384
77499   .short  16384
77500   .short  0
77501   .short  0
77502   .short  0
77503   .short  0
77504   .short  0
77505   .short  30720
77506   .short  -30720
77507   .short  -30720
77508   .short  30720
77509   .short  2048
77510   .short  -30720
77511   .short  28672
77512   .short  0
77513   .short  -32768
77514   .short  -32768
77515   .short  -20480
77516   .short  -14336
77517   .short  -30720
77518   .short  -30720
77519   .short  -30720
77520   .short  0
77521   .short  0
77522   .short  0
77523   .short  8192
77524   .short  0
77525   .short  24576
77526   .short  8192
77527   .short  8192
77528   .short  8192
77529   .short  28672
77530   .short  0
77531   .short  0
77532   .short  0
77533   .short  2048
77534   .short  0
77535   .short  6144
77536   .short  2048
77537   .short  2048
77538   .short  2048
77539   .short  18432
77540   .short  18432
77541   .short  12288
77542   .short  0
77543   .short  -32768
77544   .short  -32768
77545   .short  -30720
77546   .short  -28672
77547   .short  -8192
77548   .short  -28672
77549   .short  -30720
77550   .short  0
77551   .short  0
77552   .short  0
77553   .short  24576
77554   .short  8192
77555   .short  8192
77556   .short  8192
77557   .short  8192
77558   .short  8192
77559   .short  28672
77560   .short  0
77561   .short  0
77562   .short  0
77563   .short  0
77564   .short  0
77565   .short  -12288
77566   .short  -22528
77567   .short  -22528
77568   .short  -22528
77569   .short  -30720
77570   .short  0
77571   .short  0
77572   .short  0
77573   .short  0
77574   .short  0
77575   .short  -20480
77576   .short  -14336
77577   .short  -30720
77578   .short  -30720
77579   .short  -30720
77580   .short  0
77581   .short  0
77582   .short  0
77583   .short  0
77584   .short  0
77585   .short  28672
77586   .short  -30720
77587   .short  -30720
77588   .short  -30720
77589   .short  28672
77590   .short  0
77591   .short  0
77592   .short  0
77593   .short  0
77594   .short  0
77595   .short  -20480
77596   .short  -14336
77597   .short  -30720
77598   .short  -14336
77599   .short  -20480
77600   .short  -32768
77601   .short  -32768
77602   .short  0
77603   .short  0
77604   .short  0
77605   .short  26624
77606   .short  -26624
77607   .short  -30720
77608   .short  -26624
77609   .short  26624
77610   .short  2048
77611   .short  2048
77612   .short  0
77613   .short  0
77614   .short  0
77615   .short  -20480
77616   .short  -14336
77617   .short  -32768
77618   .short  -32768
77619   .short  -32768
77620   .short  0
77621   .short  0
77622   .short  0
77623   .short  0
77624   .short  0
77625   .short  28672
77626   .short  -32768
77627   .short  28672
77628   .short  2048
77629   .short  -4096
77630   .short  0
77631   .short  0
77632   .short  0
77633   .short  16384
77634   .short  16384
77635   .short  -4096
77636   .short  16384
77637   .short  16384
77638   .short  18432
77639   .short  12288
77640   .short  0
77641   .short  0
77642   .short  0
77643   .short  0
77644   .short  0
77645   .short  -30720
77646   .short  -30720
77647   .short  -30720
77648   .short  -26624
77649   .short  26624
77650   .short  0
77651   .short  0
77652   .short  0
77653   .short  0
77654   .short  0
77655   .short  -30720
77656   .short  -30720
77657   .short  20480
77658   .short  20480
77659   .short  8192
77660   .short  0
77661   .short  0
77662   .short  0
77663   .short  0
77664   .short  0
77665   .short  -30720
77666   .short  -30720
77667   .short  -22528
77668   .short  -22528
77669   .short  20480
77670   .short  0
77671   .short  0
77672   .short  0
77673   .short  0
77674   .short  0
77675   .short  -30720
77676   .short  20480
77677   .short  8192
77678   .short  20480
77679   .short  -30720
77680   .short  0
77681   .short  0
77682   .short  0
77683   .short  0
77684   .short  0
77685   .short  -30720
77686   .short  -30720
77687   .short  -26624
77688   .short  26624
77689   .short  2048
77690   .short  -30720
77691   .short  28672
77692   .short  0
77693   .short  0
77694   .short  0
77695   .short  -2048
77696   .short  4096
77697   .short  8192
77698   .short  16384
77699   .short  -2048
77700   .short  0
77701   .short  0
77702   .short  0
77703   .short  6144
77704   .short  8192
77705   .short  4096
77706   .short  24576
77707   .short  4096
77708   .short  8192
77709   .short  6144
77710   .short  0
77711   .short  0
77712   .short  0
77713   .short  8192
77714   .short  8192
77715   .short  8192
77716   .short  8192
77717   .short  8192
77718   .short  8192
77719   .short  8192
77720   .short  0
77721   .short  0
77722   .short  0
77723   .short  24576
77724   .short  4096
77725   .short  8192
77726   .short  6144
77727   .short  8192
77728   .short  4096
77729   .short  24576
77730   .short  0
77731   .short  0
77732   .short  0
77733   .short  18432
77734   .short  -22528
77735   .short  -28672
77736   .short  0
77737   .short  0
77738   .short  0
77739   .short  0
77740   .short  0
77741   .short  0
77742   .short  0
77743   .short  0
77744   .short  0
77745   .short  0
77746   .short  0
77747   .short  0
77748   .short  0
77749   .short  0
77750   .short  0
77751   .short  0
77752   .short  0
77753   .short  8192
77754   .short  0
77755   .short  8192
77756   .short  8192
77757   .short  8192
77758   .short  8192
77759   .short  8192
77760   .short  0
77761   .short  0
77762   .short  0
77763   .short  0
77764   .short  8192
77765   .short  30720
77766   .short  -24576
77767   .short  -24576
77768   .short  -24576
77769   .short  30720
77770   .short  8192
77771   .short  0
77772   .short  0
77773   .short  12288
77774   .short  18432
77775   .short  16384
77776   .short  -8192
77777   .short  16384
77778   .short  18432
77779   .short  -20480
77780   .short  0
77781   .short  0
77782   .short  0
77783   .short  0
77784   .short  0
77785   .short  -30720
77786   .short  28672
77787   .short  20480
77788   .short  28672
77789   .short  -30720
77790   .short  0
77791   .short  0
77792   .short  0
77793   .short  -30720
77794   .short  -30720
77795   .short  20480
77796   .short  8192
77797   .short  -2048
77798   .short  8192
77799   .short  8192
77800   .short  8192
77801   .short  0
77802   .short  0
77803   .short  8192
77804   .short  8192
77805   .short  8192
77806   .short  0
77807   .short  8192
77808   .short  8192
77809   .short  8192
77810   .short  0
77811   .short  0
77812   .short  0
77813   .short  28672
77814   .short  -32768
77815   .short  -8192
77816   .short  -28672
77817   .short  18432
77818   .short  14336
77819   .short  2048
77820   .short  28672
77821   .short  0
77822   .short  20480
77823   .short  0
77824   .short  0
77825   .short  0
77826   .short  0
77827   .short  0
77828   .short  0
77829   .short  0
77830   .short  0
77831   .short  0
77832   .short  0
77833   .short  28672
77834   .short  -30720
77835   .short  -22528
77836   .short  -14336
77837   .short  -22528
77838   .short  -30720
77839   .short  28672
77840   .short  0
77841   .short  0
77842   .short  0
77843   .short  14336
77844   .short  18432
77845   .short  22528
77846   .short  10240
77847   .short  0
77848   .short  30720
77849   .short  0
77850   .short  0
77851   .short  0
77852   .short  0
77853   .short  0
77854   .short  0
77855   .short  9216
77856   .short  18432
77857   .short  -28672
77858   .short  18432
77859   .short  9216
77860   .short  0
77861   .short  0
77862   .short  0
77863   .short  0
77864   .short  0
77865   .short  0
77866   .short  30720
77867   .short  2048
77868   .short  0
77869   .short  0
77870   .short  0
77871   .short  0
77872   .short  0
77873   .short  0
77874   .short  0
77875   .short  0
77876   .short  30720
77877   .short  0
77878   .short  0
77879   .short  0
77880   .short  0
77881   .short  0
77882   .short  0
77883   .short  28672
77884   .short  -30720
77885   .short  -6144
77886   .short  -14336
77887   .short  -14336
77888   .short  -30720
77889   .short  28672
77890   .short  0
77891   .short  0
77892   .short  -2048
77893   .short  0
77894   .short  0
77895   .short  0
77896   .short  0
77897   .short  0
77898   .short  0
77899   .short  0
77900   .short  0
77901   .short  0
77902   .short  0
77903   .short  8192
77904   .short  20480
77905   .short  8192
77906   .short  0
77907   .short  0
77908   .short  0
77909   .short  0
77910   .short  0
77911   .short  0
77912   .short  0
77913   .short  0
77914   .short  8192
77915   .short  8192
77916   .short  -2048
77917   .short  8192
77918   .short  8192
77919   .short  -2048
77920   .short  0
77921   .short  0
77922   .short  12288
77923   .short  18432
77924   .short  4096
77925   .short  8192
77926   .short  30720
77927   .short  0
77928   .short  0
77929   .short  0
77930   .short  0
77931   .short  0
77932   .short  28672
77933   .short  2048
77934   .short  12288
77935   .short  2048
77936   .short  28672
77937   .short  0
77938   .short  0
77939   .short  0
77940   .short  0
77941   .short  0
77942   .short  4096
77943   .short  8192
77944   .short  0
77945   .short  0
77946   .short  0
77947   .short  0
77948   .short  0
77949   .short  0
77950   .short  0
77951   .short  0
77952   .short  0
77953   .short  0
77954   .short  0
77955   .short  -30720
77956   .short  -30720
77957   .short  -30720
77958   .short  -14336
77959   .short  -20480
77960   .short  -32768
77961   .short  0
77962   .short  0
77963   .short  30720
77964   .short  -6144
77965   .short  -6144
77966   .short  26624
77967   .short  10240
77968   .short  10240
77969   .short  10240
77970   .short  0
77971   .short  0
77972   .short  0
77973   .short  0
77974   .short  0
77975   .short  0
77976   .short  8192
77977   .short  0
77978   .short  0
77979   .short  0
77980   .short  0
77981   .short  0
77982   .short  0
77983   .short  0
77984   .short  0
77985   .short  0
77986   .short  0
77987   .short  0
77988   .short  0
77989   .short  0
77990   .short  4096
77991   .short  8192
77992   .short  8192
77993   .short  24576
77994   .short  8192
77995   .short  8192
77996   .short  28672
77997   .short  0
77998   .short  0
77999   .short  0
78000   .short  0
78001   .short  0
78002   .short  0
78003   .short  12288
78004   .short  18432
78005   .short  18432
78006   .short  12288
78007   .short  0
78008   .short  30720
78009   .short  0
78010   .short  0
78011   .short  0
78012   .short  0
78013   .short  0
78014   .short  0
78015   .short  -28672
78016   .short  18432
78017   .short  9216
78018   .short  18432
78019   .short  -28672
78020   .short  0
78021   .short  0
78022   .short  16384
78023   .short  -16384
78024   .short  16384
78025   .short  16384
78026   .short  -7168
78027   .short  3072
78028   .short  5120
78029   .short  15360
78030   .short  1024
78031   .short  0
78032   .short  16384
78033   .short  -16384
78034   .short  16384
78035   .short  16384
78036   .short  -6144
78037   .short  5120
78038   .short  1024
78039   .short  2048
78040   .short  7168
78041   .short  0
78042   .short  -16384
78043   .short  8192
78044   .short  16384
78045   .short  8192
78046   .short  -14336
78047   .short  6144
78048   .short  10240
78049   .short  30720
78050   .short  2048
78051   .short  0
78052   .short  0
78053   .short  8192
78054   .short  0
78055   .short  8192
78056   .short  8192
78057   .short  16384
78058   .short  -30720
78059   .short  28672
78060   .short  0
78061   .short  0
78062   .short  16384
78063   .short  8192
78064   .short  28672
78065   .short  -30720
78066   .short  -30720
78067   .short  -2048
78068   .short  -30720
78069   .short  -30720
78070   .short  0
78071   .short  0
78072   .short  4096
78073   .short  8192
78074   .short  28672
78075   .short  -30720
78076   .short  -30720
78077   .short  -2048
78078   .short  -30720
78079   .short  -30720
78080   .short  0
78081   .short  0
78082   .short  8192
78083   .short  20480
78084   .short  28672
78085   .short  -30720
78086   .short  -30720
78087   .short  -2048
78088   .short  -30720
78089   .short  -30720
78090   .short  0
78091   .short  0
78092   .short  18432
78093   .short  -20480
78094   .short  28672
78095   .short  -30720
78096   .short  -30720
78097   .short  -2048
78098   .short  -30720
78099   .short  -30720
78100   .short  0
78101   .short  0
78102   .short  20480
78103   .short  0
78104   .short  28672
78105   .short  -30720
78106   .short  -30720
78107   .short  -2048
78108   .short  -30720
78109   .short  -30720
78110   .short  0
78111   .short  0
78112   .short  8192
78113   .short  20480
78114   .short  28672
78115   .short  -30720
78116   .short  -30720
78117   .short  -2048
78118   .short  -30720
78119   .short  -30720
78120   .short  0
78121   .short  0
78122   .short  0
78123   .short  15360
78124   .short  20480
78125   .short  -28672
78126   .short  -25600
78127   .short  -4096
78128   .short  -28672
78129   .short  -25600
78130   .short  0
78131   .short  0
78132   .short  0
78133   .short  28672
78134   .short  -30720
78135   .short  -32768
78136   .short  -32768
78137   .short  -32768
78138   .short  -30720
78139   .short  28672
78140   .short  8192
78141   .short  16384
78142   .short  16384
78143   .short  -2048
78144   .short  -32768
78145   .short  -32768
78146   .short  -4096
78147   .short  -32768
78148   .short  -32768
78149   .short  -2048
78150   .short  0
78151   .short  0
78152   .short  4096
78153   .short  -2048
78154   .short  -32768
78155   .short  -32768
78156   .short  -4096
78157   .short  -32768
78158   .short  -32768
78159   .short  -2048
78160   .short  0
78161   .short  0
78162   .short  8192
78163   .short  -2048
78164   .short  -32768
78165   .short  -32768
78166   .short  -4096
78167   .short  -32768
78168   .short  -32768
78169   .short  -2048
78170   .short  0
78171   .short  0
78172   .short  20480
78173   .short  -2048
78174   .short  -32768
78175   .short  -32768
78176   .short  -4096
78177   .short  -32768
78178   .short  -32768
78179   .short  -2048
78180   .short  0
78181   .short  0
78182   .short  16384
78183   .short  8192
78184   .short  28672
78185   .short  8192
78186   .short  8192
78187   .short  8192
78188   .short  8192
78189   .short  28672
78190   .short  0
78191   .short  0
78192   .short  4096
78193   .short  8192
78194   .short  28672
78195   .short  8192
78196   .short  8192
78197   .short  8192
78198   .short  8192
78199   .short  28672
78200   .short  0
78201   .short  0
78202   .short  8192
78203   .short  20480
78204   .short  28672
78205   .short  8192
78206   .short  8192
78207   .short  8192
78208   .short  8192
78209   .short  28672
78210   .short  0
78211   .short  0
78212   .short  20480
78213   .short  0
78214   .short  28672
78215   .short  8192
78216   .short  8192
78217   .short  8192
78218   .short  8192
78219   .short  28672
78220   .short  0
78221   .short  0
78222   .short  0
78223   .short  -4096
78224   .short  18432
78225   .short  18432
78226   .short  -6144
78227   .short  18432
78228   .short  18432
78229   .short  -4096
78230   .short  0
78231   .short  0
78232   .short  10240
78233   .short  20480
78234   .short  -30720
78235   .short  -14336
78236   .short  -22528
78237   .short  -26624
78238   .short  -30720
78239   .short  -30720
78240   .short  0
78241   .short  0
78242   .short  16384
78243   .short  8192
78244   .short  28672
78245   .short  -30720
78246   .short  -30720
78247   .short  -30720
78248   .short  -30720
78249   .short  28672
78250   .short  0
78251   .short  0
78252   .short  4096
78253   .short  8192
78254   .short  28672
78255   .short  -30720
78256   .short  -30720
78257   .short  -30720
78258   .short  -30720
78259   .short  28672
78260   .short  0
78261   .short  0
78262   .short  8192
78263   .short  20480
78264   .short  28672
78265   .short  -30720
78266   .short  -30720
78267   .short  -30720
78268   .short  -30720
78269   .short  28672
78270   .short  0
78271   .short  0
78272   .short  10240
78273   .short  20480
78274   .short  28672
78275   .short  -30720
78276   .short  -30720
78277   .short  -30720
78278   .short  -30720
78279   .short  28672
78280   .short  0
78281   .short  0
78282   .short  20480
78283   .short  0
78284   .short  28672
78285   .short  -30720
78286   .short  -30720
78287   .short  -30720
78288   .short  -30720
78289   .short  28672
78290   .short  0
78291   .short  0
78292   .short  0
78293   .short  0
78294   .short  0
78295   .short  -30720
78296   .short  20480
78297   .short  8192
78298   .short  20480
78299   .short  -30720
78300   .short  0
78301   .short  0
78302   .short  0
78303   .short  28672
78304   .short  -26624
78305   .short  -26624
78306   .short  -22528
78307   .short  -14336
78308   .short  -14336
78309   .short  28672
78310   .short  0
78311   .short  0
78312   .short  16384
78313   .short  8192
78314   .short  -30720
78315   .short  -30720
78316   .short  -30720
78317   .short  -30720
78318   .short  -30720
78319   .short  28672
78320   .short  0
78321   .short  0
78322   .short  4096
78323   .short  8192
78324   .short  -30720
78325   .short  -30720
78326   .short  -30720
78327   .short  -30720
78328   .short  -30720
78329   .short  28672
78330   .short  0
78331   .short  0
78332   .short  8192
78333   .short  20480
78334   .short  0
78335   .short  -30720
78336   .short  -30720
78337   .short  -30720
78338   .short  -30720
78339   .short  28672
78340   .short  0
78341   .short  0
78342   .short  20480
78343   .short  0
78344   .short  -30720
78345   .short  -30720
78346   .short  -30720
78347   .short  -30720
78348   .short  -30720
78349   .short  28672
78350   .short  0
78351   .short  0
78352   .short  4096
78353   .short  8192
78354   .short  -30720
78355   .short  -30720
78356   .short  20480
78357   .short  8192
78358   .short  8192
78359   .short  8192
78360   .short  0
78361   .short  0
78362   .short  0
78363   .short  -32768
78364   .short  -4096
78365   .short  -30720
78366   .short  -4096
78367   .short  -32768
78368   .short  -32768
78369   .short  -32768
78370   .short  0
78371   .short  0
78372   .short  0
78373   .short  28672
78374   .short  -30720
78375   .short  -28672
78376   .short  -24576
78377   .short  -28672
78378   .short  -30720
78379   .short  -20480
78380   .short  0
78381   .short  0
78382   .short  16384
78383   .short  8192
78384   .short  0
78385   .short  28672
78386   .short  2048
78387   .short  30720
78388   .short  -30720
78389   .short  30720
78390   .short  0
78391   .short  0
78392   .short  4096
78393   .short  8192
78394   .short  0
78395   .short  28672
78396   .short  2048
78397   .short  30720
78398   .short  -30720
78399   .short  30720
78400   .short  0
78401   .short  0
78402   .short  8192
78403   .short  20480
78404   .short  0
78405   .short  28672
78406   .short  2048
78407   .short  30720
78408   .short  -30720
78409   .short  30720
78410   .short  0
78411   .short  0
78412   .short  10240
78413   .short  20480
78414   .short  0
78415   .short  28672
78416   .short  2048
78417   .short  30720
78418   .short  -30720
78419   .short  30720
78420   .short  0
78421   .short  0
78422   .short  0
78423   .short  20480
78424   .short  0
78425   .short  28672
78426   .short  2048
78427   .short  30720
78428   .short  -30720
78429   .short  30720
78430   .short  0
78431   .short  0
78432   .short  8192
78433   .short  20480
78434   .short  8192
78435   .short  28672
78436   .short  2048
78437   .short  30720
78438   .short  -30720
78439   .short  30720
78440   .short  0
78441   .short  0
78442   .short  0
78443   .short  0
78444   .short  0
78445   .short  30720
78446   .short  5120
78447   .short  31744
78448   .short  -28672
78449   .short  31744
78450   .short  0
78451   .short  0
78452   .short  0
78453   .short  0
78454   .short  0
78455   .short  28672
78456   .short  -30720
78457   .short  -32768
78458   .short  -30720
78459   .short  28672
78460   .short  8192
78461   .short  16384
78462   .short  16384
78463   .short  8192
78464   .short  0
78465   .short  28672
78466   .short  -30720
78467   .short  -2048
78468   .short  -32768
78469   .short  28672
78470   .short  0
78471   .short  0
78472   .short  4096
78473   .short  8192
78474   .short  0
78475   .short  28672
78476   .short  -30720
78477   .short  -2048
78478   .short  -32768
78479   .short  28672
78480   .short  0
78481   .short  0
78482   .short  8192
78483   .short  20480
78484   .short  0
78485   .short  28672
78486   .short  -30720
78487   .short  -2048
78488   .short  -32768
78489   .short  28672
78490   .short  0
78491   .short  0
78492   .short  0
78493   .short  20480
78494   .short  0
78495   .short  28672
78496   .short  -30720
78497   .short  -2048
78498   .short  -32768
78499   .short  28672
78500   .short  0
78501   .short  0
78502   .short  16384
78503   .short  8192
78504   .short  0
78505   .short  24576
78506   .short  8192
78507   .short  8192
78508   .short  8192
78509   .short  28672
78510   .short  0
78511   .short  0
78512   .short  8192
78513   .short  16384
78514   .short  0
78515   .short  24576
78516   .short  8192
78517   .short  8192
78518   .short  8192
78519   .short  28672
78520   .short  0
78521   .short  0
78522   .short  8192
78523   .short  20480
78524   .short  0
78525   .short  24576
78526   .short  8192
78527   .short  8192
78528   .short  8192
78529   .short  28672
78530   .short  0
78531   .short  0
78532   .short  0
78533   .short  20480
78534   .short  0
78535   .short  24576
78536   .short  8192
78537   .short  8192
78538   .short  8192
78539   .short  28672
78540   .short  0
78541   .short  0
78542   .short  0
78543   .short  -16384
78544   .short  12288
78545   .short  28672
78546   .short  -30720
78547   .short  -30720
78548   .short  -30720
78549   .short  28672
78550   .short  0
78551   .short  0
78552   .short  10240
78553   .short  20480
78554   .short  0
78555   .short  -20480
78556   .short  -14336
78557   .short  -30720
78558   .short  -30720
78559   .short  -30720
78560   .short  0
78561   .short  0
78562   .short  16384
78563   .short  8192
78564   .short  0
78565   .short  28672
78566   .short  -30720
78567   .short  -30720
78568   .short  -30720
78569   .short  28672
78570   .short  0
78571   .short  0
78572   .short  4096
78573   .short  8192
78574   .short  0
78575   .short  28672
78576   .short  -30720
78577   .short  -30720
78578   .short  -30720
78579   .short  28672
78580   .short  0
78581   .short  0
78582   .short  8192
78583   .short  20480
78584   .short  0
78585   .short  28672
78586   .short  -30720
78587   .short  -30720
78588   .short  -30720
78589   .short  28672
78590   .short  0
78591   .short  0
78592   .short  10240
78593   .short  20480
78594   .short  0
78595   .short  28672
78596   .short  -30720
78597   .short  -30720
78598   .short  -30720
78599   .short  28672
78600   .short  0
78601   .short  0
78602   .short  0
78603   .short  20480
78604   .short  0
78605   .short  28672
78606   .short  -30720
78607   .short  -30720
78608   .short  -30720
78609   .short  28672
78610   .short  0
78611   .short  0
78612   .short  0
78613   .short  0
78614   .short  8192
78615   .short  0
78616   .short  -2048
78617   .short  0
78618   .short  8192
78619   .short  0
78620   .short  0
78621   .short  0
78622   .short  0
78623   .short  0
78624   .short  0
78625   .short  30720
78626   .short  -26624
78627   .short  -22528
78628   .short  -14336
78629   .short  -4096
78630   .short  0
78631   .short  0
78632   .short  16384
78633   .short  8192
78634   .short  0
78635   .short  -30720
78636   .short  -30720
78637   .short  -30720
78638   .short  -26624
78639   .short  26624
78640   .short  0
78641   .short  0
78642   .short  4096
78643   .short  8192
78644   .short  0
78645   .short  -30720
78646   .short  -30720
78647   .short  -30720
78648   .short  -26624
78649   .short  26624
78650   .short  0
78651   .short  0
78652   .short  8192
78653   .short  20480
78654   .short  0
78655   .short  -30720
78656   .short  -30720
78657   .short  -30720
78658   .short  -26624
78659   .short  26624
78660   .short  0
78661   .short  0
78662   .short  0
78663   .short  20480
78664   .short  0
78665   .short  -30720
78666   .short  -30720
78667   .short  -30720
78668   .short  -26624
78669   .short  26624
78670   .short  0
78671   .short  0
78672   .short  0
78673   .short  4096
78674   .short  8192
78675   .short  -30720
78676   .short  -30720
78677   .short  -26624
78678   .short  26624
78679   .short  2048
78680   .short  -30720
78681   .short  28672
78682   .short  0
78683   .short  0
78684   .short  -32768
78685   .short  -4096
78686   .short  -30720
78687   .short  -30720
78688   .short  -30720
78689   .short  -4096
78690   .short  -32768
78691   .short  -32768
78692   .short  0
78693   .short  20480
78694   .short  0
78695   .short  -30720
78696   .short  -30720
78697   .short  -26624
78698   .short  26624
78699   .short  2048
78700   .short  -30720
78701   .short  28672
78702   .align  2
78703   .type C.627.17651, %object
78704   .size C.627.17651, 8
78705 C.627.17651:
78706   .short  40
78707   .short  40
78708   .short  240
78709   .short  160
78710   .align  2
78711   .type C.626.17650, %object
78712   .size C.626.17650, 8
78713 C.626.17650:
78714   .short  0
78715   .short  0
78716   .short  240
78717   .short  160
78718   .global affine_reference_x
78719   .bss
78720   .align  2
78721   .type affine_reference_x, %object
78722   .size affine_reference_x, 8
78723 affine_reference_x:
78724   .space  8
78725   .global affine_reference_y
78726   .align  2
78727   .type affine_reference_y, %object
78728   .size affine_reference_y, 8
78729 affine_reference_y:
78730   .space  8
78731   .global hw_screen
78732   .align  2
78733   .type hw_screen, %object
78734   .size hw_screen, 4
78735 hw_screen:
78736   .space  4
78737   .global screen
78738   .align  2
78739   .type screen, %object
78740   .size screen, 4
78741 screen:
78742   .space  4
78743   .global obj_priority_list
78744   .type obj_priority_list, %object
78745   .size obj_priority_list, 102400
78746 obj_priority_list:
78747   .space  102400
78748   .global obj_priority_count
78749   .align  2
78750   .type obj_priority_count, %object
78751   .size obj_priority_count, 3200
78752 obj_priority_count:
78753   .space  3200
78754   .global obj_alpha_count
78755   .align  2
78756   .type obj_alpha_count, %object
78757   .size obj_alpha_count, 640
78758 obj_alpha_count:
78759   .space  640
78760   .global layer_order
78761   .align  2
78762   .type layer_order, %object
78763   .size layer_order, 64
78764 layer_order:
78765   .space  64
78766   .global layer_count
78767   .align  2
78768   .type layer_count, %object
78769   .size layer_count, 4
78770 layer_count:
78771   .space  4
78772   .global resolution_width
78773   .align  2
78774   .type resolution_width, %object
78775   .size resolution_width, 4
78776 resolution_width:
78777   .space  4
78778   .global resolution_height
78779   .align  2
78780   .type resolution_height, %object
78781   .size resolution_height, 4
78782 resolution_height:
78783   .space  4
78784   .global frame_to_render
78785   .align  2
78786   .type frame_to_render, %object
78787   .size frame_to_render, 4
78788 frame_to_render:
78789   .space  4
78790   .ident  "GCC: (GNU) 4.1.1"