xref: /rk3399_rockchip-uboot/drivers/rknand/rk_ftl_arm_v7.S (revision 3ae0b190b18a9af6c9f59eddca28c377297a59ae)
1/*
2 * Copyright (c) 2016-2018, Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 * date: 2021-03-18
9 */
10	.arch armv7-a
11	.eabi_attribute 20, 1
12	.eabi_attribute 21, 1
13	.eabi_attribute 23, 3
14	.eabi_attribute 24, 1
15	.eabi_attribute 25, 1
16	.eabi_attribute 26, 2
17	.eabi_attribute 30, 4
18	.eabi_attribute 34, 0
19	.eabi_attribute 18, 2
20	.file	"rk_ftl_arm_v7.S"
21	.section	.text.flash_read_ecc,"ax",%progbits
22	.align	1
23	.syntax unified
24	.thumb
25	.thumb_func
26	.fpu softvfp
27	.type	flash_read_ecc, %function
28flash_read_ecc:
29	@ args = 0, pretend = 0, frame = 0
30	@ frame_needed = 0, uses_anonymous_args = 0
31	ldr	r3, .L2
32	push	{r4, lr}
33	ldr	r4, [r3, r0, lsl #3]
34	add	r3, r3, r0, lsl #3
35	movs	r0, #80
36	ldrb	r3, [r3, #4]	@ zero_extendqisi2
37	add	r4, r4, r3, lsl #8
38	movs	r3, #122
39	str	r3, [r4, #2056]
40	bl	udelay
41	ldr	r3, [r4, #2048]
42	ldr	r0, [r4, #2048]
43	and	r3, r3, #15
44	and	r0, r0, #15
45	cmp	r0, r3
46	it	cc
47	movcc	r0, r3
48	ldr	r3, [r4, #2048]
49	and	r3, r3, #15
50	cmp	r3, r0
51	it	cc
52	movcc	r3, r0
53	ldr	r0, [r4, #2048]
54	and	r0, r0, #15
55	cmp	r0, r3
56	it	cc
57	movcc	r0, r3
58	pop	{r4, pc}
59.L3:
60	.align	2
61.L2:
62	.word	.LANCHOR0
63	.size	flash_read_ecc, .-flash_read_ecc
64	.section	.text.ftl_set_blk_mode.part.11,"ax",%progbits
65	.align	1
66	.syntax unified
67	.thumb
68	.thumb_func
69	.fpu softvfp
70	.type	ftl_set_blk_mode.part.11, %function
71ftl_set_blk_mode.part.11:
72	@ args = 0, pretend = 0, frame = 0
73	@ frame_needed = 0, uses_anonymous_args = 0
74	@ link register save eliminated.
75	ldr	r3, .L5
76	lsrs	r1, r0, #5
77	and	r0, r0, #31
78	ldr	r2, [r3]
79	movs	r3, #1
80	lsl	r0, r3, r0
81	ldr	r3, [r2, r1, lsl #2]
82	orrs	r3, r3, r0
83	str	r3, [r2, r1, lsl #2]
84	bx	lr
85.L6:
86	.align	2
87.L5:
88	.word	.LANCHOR1
89	.size	ftl_set_blk_mode.part.11, .-ftl_set_blk_mode.part.11
90	.section	.text.FlashMemCmp8,"ax",%progbits
91	.align	1
92	.global	FlashMemCmp8
93	.syntax unified
94	.thumb
95	.thumb_func
96	.fpu softvfp
97	.type	FlashMemCmp8, %function
98FlashMemCmp8:
99	@ args = 0, pretend = 0, frame = 0
100	@ frame_needed = 0, uses_anonymous_args = 0
101	ldr	r3, .L15
102	push	{r4, r5, lr}
103	ldrb	r3, [r3]	@ zero_extendqisi2
104	cbz	r3, .L10
105	ldrb	r4, [r0, #1]	@ zero_extendqisi2
106	ldrb	r3, [r1, #1]	@ zero_extendqisi2
107	cmp	r4, r3
108	beq	.L14
109	movs	r3, #0
110.L10:
111	cmp	r3, r2
112	bne	.L12
113.L14:
114	movs	r0, #0
115	pop	{r4, r5, pc}
116.L12:
117	ldrb	r5, [r0, r3]	@ zero_extendqisi2
118	ldrb	r4, [r1, r3]	@ zero_extendqisi2
119	adds	r3, r3, #1
120	cmp	r5, r4
121	beq	.L10
122	mov	r0, r3
123	pop	{r4, r5, pc}
124.L16:
125	.align	2
126.L15:
127	.word	.LANCHOR2
128	.size	FlashMemCmp8, .-FlashMemCmp8
129	.section	.text.FlashRsvdBlkChk,"ax",%progbits
130	.align	1
131	.global	FlashRsvdBlkChk
132	.syntax unified
133	.thumb
134	.thumb_func
135	.fpu softvfp
136	.type	FlashRsvdBlkChk, %function
137FlashRsvdBlkChk:
138	@ args = 0, pretend = 0, frame = 0
139	@ frame_needed = 0, uses_anonymous_args = 0
140	@ link register save eliminated.
141	ldr	r3, .L20
142	ldrb	r2, [r3]	@ zero_extendqisi2
143	ldr	r3, .L20+4
144	ldr	r3, [r3]
145	muls	r3, r2, r3
146	cmp	r3, r1
147	bls	.L19
148	adds	r0, r0, #0
149	it	ne
150	movne	r0, #1
151	bx	lr
152.L19:
153	movs	r0, #1
154	bx	lr
155.L21:
156	.align	2
157.L20:
158	.word	.LANCHOR3
159	.word	.LANCHOR4
160	.size	FlashRsvdBlkChk, .-FlashRsvdBlkChk
161	.section	.text.FlashGetRandomizer,"ax",%progbits
162	.align	1
163	.global	FlashGetRandomizer
164	.syntax unified
165	.thumb
166	.thumb_func
167	.fpu softvfp
168	.type	FlashGetRandomizer, %function
169FlashGetRandomizer:
170	@ args = 0, pretend = 0, frame = 0
171	@ frame_needed = 0, uses_anonymous_args = 0
172	ldr	r3, .L30
173	and	r2, r1, #127
174	push	{r4, lr}
175	ldrh	r4, [r3, r2, lsl #1]
176	ldr	r3, .L30+4
177	ldrb	r3, [r3]	@ zero_extendqisi2
178	cbz	r3, .L22
179	bl	FlashRsvdBlkChk
180	cbz	r0, .L22
181	orr	r4, r4, #-1073741824
182.L22:
183	mov	r0, r4
184	pop	{r4, pc}
185.L31:
186	.align	2
187.L30:
188	.word	.LANCHOR5
189	.word	.LANCHOR6
190	.size	FlashGetRandomizer, .-FlashGetRandomizer
191	.section	.text.FlashSetRandomizer,"ax",%progbits
192	.align	1
193	.global	FlashSetRandomizer
194	.syntax unified
195	.thumb
196	.thumb_func
197	.fpu softvfp
198	.type	FlashSetRandomizer, %function
199FlashSetRandomizer:
200	@ args = 0, pretend = 0, frame = 0
201	@ frame_needed = 0, uses_anonymous_args = 0
202	push	{r3, r4, r5, lr}
203	and	r2, r1, #127
204	ldr	r3, .L40
205	mov	r5, r0
206	ldrh	r4, [r3, r2, lsl #1]
207	ldr	r3, .L40+4
208	ldrb	r3, [r3]	@ zero_extendqisi2
209	cbz	r3, .L33
210	bl	FlashRsvdBlkChk
211	cbz	r0, .L33
212	orr	r4, r4, #-1073741824
213.L33:
214	ldr	r3, .L40+8
215	ldr	r3, [r3, r5, lsl #3]
216	str	r4, [r3, #336]
217	pop	{r3, r4, r5, pc}
218.L41:
219	.align	2
220.L40:
221	.word	.LANCHOR5
222	.word	.LANCHOR6
223	.word	.LANCHOR0
224	.size	FlashSetRandomizer, .-FlashSetRandomizer
225	.section	.text.FlashBlockAlignInit,"ax",%progbits
226	.align	1
227	.global	FlashBlockAlignInit
228	.syntax unified
229	.thumb
230	.thumb_func
231	.fpu softvfp
232	.type	FlashBlockAlignInit, %function
233FlashBlockAlignInit:
234	@ args = 0, pretend = 0, frame = 0
235	@ frame_needed = 0, uses_anonymous_args = 0
236	@ link register save eliminated.
237	cmp	r0, #512
238	ldr	r3, .L48
239	bls	.L43
240	mov	r2, #1024
241.L47:
242	str	r2, [r3]
243	bx	lr
244.L43:
245	cmp	r0, #256
246	bls	.L45
247	mov	r2, #512
248	b	.L47
249.L45:
250	cmp	r0, #128
251	bhi	.L46
252	str	r0, [r3]
253	bx	lr
254.L46:
255	mov	r2, #256
256	b	.L47
257.L49:
258	.align	2
259.L48:
260	.word	.LANCHOR4
261	.size	FlashBlockAlignInit, .-FlashBlockAlignInit
262	.section	.text.FlashReadCmd,"ax",%progbits
263	.align	1
264	.global	FlashReadCmd
265	.syntax unified
266	.thumb
267	.thumb_func
268	.fpu softvfp
269	.type	FlashReadCmd, %function
270FlashReadCmd:
271	@ args = 0, pretend = 0, frame = 0
272	@ frame_needed = 0, uses_anonymous_args = 0
273	@ link register save eliminated.
274	ldr	r2, .L52
275	push	{r4, r5}
276	ldr	r4, .L52+4
277	ldr	r3, [r2, r0, lsl #3]
278	add	r2, r2, r0, lsl #3
279	ldr	r4, [r4]
280	ldrb	r2, [r2, #4]	@ zero_extendqisi2
281	ldrb	r4, [r4, #7]	@ zero_extendqisi2
282	lsls	r2, r2, #8
283	cmp	r4, #1
284	itt	eq
285	addeq	r4, r3, r2
286	moveq	r5, #38
287	add	r3, r3, r2
288	mov	r2, #0
289	it	eq
290	streq	r5, [r4, #2056]
291	str	r2, [r3, #2056]
292	str	r2, [r3, #2052]
293	str	r2, [r3, #2052]
294	uxtb	r2, r1
295	str	r2, [r3, #2052]
296	lsrs	r2, r1, #8
297	str	r2, [r3, #2052]
298	lsrs	r2, r1, #16
299	str	r2, [r3, #2052]
300	movs	r2, #48
301	str	r2, [r3, #2056]
302	pop	{r4, r5}
303	b	FlashSetRandomizer
304.L53:
305	.align	2
306.L52:
307	.word	.LANCHOR0
308	.word	.LANCHOR7
309	.size	FlashReadCmd, .-FlashReadCmd
310	.section	.text.FlashReadDpDataOutCmd,"ax",%progbits
311	.align	1
312	.global	FlashReadDpDataOutCmd
313	.syntax unified
314	.thumb
315	.thumb_func
316	.fpu softvfp
317	.type	FlashReadDpDataOutCmd, %function
318FlashReadDpDataOutCmd:
319	@ args = 0, pretend = 0, frame = 0
320	@ frame_needed = 0, uses_anonymous_args = 0
321	@ link register save eliminated.
322	ldr	r2, .L58
323	push	{r4, r5, r6}
324	uxtb	r6, r1
325	ldr	r4, .L58+4
326	lsrs	r5, r1, #8
327	ldr	r3, [r2, r0, lsl #3]
328	add	r2, r2, r0, lsl #3
329	ldrb	r4, [r4, #16]	@ zero_extendqisi2
330	ldrb	r2, [r2, #4]	@ zero_extendqisi2
331	cmp	r4, #1
332	lsr	r4, r1, #16
333	lsl	r2, r2, #8
334	add	r3, r3, r2
335	bne	.L55
336	movs	r2, #6
337	str	r2, [r3, #2056]
338	movs	r2, #0
339	str	r2, [r3, #2052]
340	str	r2, [r3, #2052]
341	str	r6, [r3, #2052]
342	str	r5, [r3, #2052]
343	str	r4, [r3, #2052]
344.L57:
345	movs	r2, #224
346	str	r2, [r3, #2056]
347	pop	{r4, r5, r6}
348	b	FlashSetRandomizer
349.L55:
350	movs	r2, #0
351	str	r2, [r3, #2056]
352	str	r2, [r3, #2052]
353	str	r2, [r3, #2052]
354	str	r6, [r3, #2052]
355	str	r5, [r3, #2052]
356	str	r4, [r3, #2052]
357	movs	r4, #5
358	str	r4, [r3, #2056]
359	str	r2, [r3, #2052]
360	str	r2, [r3, #2052]
361	b	.L57
362.L59:
363	.align	2
364.L58:
365	.word	.LANCHOR0
366	.word	.LANCHOR8
367	.size	FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
368	.section	.text.FlashProgFirstCmd,"ax",%progbits
369	.align	1
370	.global	FlashProgFirstCmd
371	.syntax unified
372	.thumb
373	.thumb_func
374	.fpu softvfp
375	.type	FlashProgFirstCmd, %function
376FlashProgFirstCmd:
377	@ args = 0, pretend = 0, frame = 0
378	@ frame_needed = 0, uses_anonymous_args = 0
379	@ link register save eliminated.
380	push	{r4, r5}
381	lsrs	r2, r1, #16
382	ldr	r4, .L61
383	ldr	r3, [r4, r0, lsl #3]
384	add	r4, r4, r0, lsl #3
385	ldrb	r4, [r4, #4]	@ zero_extendqisi2
386	add	r3, r3, r4, lsl #8
387	movs	r4, #128
388	str	r4, [r3, #2056]
389	movs	r4, #0
390	str	r4, [r3, #2052]
391	str	r4, [r3, #2052]
392	uxtb	r4, r1
393	str	r4, [r3, #2052]
394	lsrs	r4, r1, #8
395	str	r4, [r3, #2052]
396	str	r2, [r3, #2052]
397	pop	{r4, r5}
398	b	FlashSetRandomizer
399.L62:
400	.align	2
401.L61:
402	.word	.LANCHOR0
403	.size	FlashProgFirstCmd, .-FlashProgFirstCmd
404	.section	.text.FlashEraseCmd,"ax",%progbits
405	.align	1
406	.global	FlashEraseCmd
407	.syntax unified
408	.thumb
409	.thumb_func
410	.fpu softvfp
411	.type	FlashEraseCmd, %function
412FlashEraseCmd:
413	@ args = 0, pretend = 0, frame = 0
414	@ frame_needed = 0, uses_anonymous_args = 0
415	push	{r4, lr}
416	ldr	r4, .L68
417	ldr	r3, [r4, r0, lsl #3]
418	add	r4, r4, r0, lsl #3
419	ldrb	r0, [r4, #4]	@ zero_extendqisi2
420	lsls	r0, r0, #8
421	cbz	r2, .L64
422	adds	r2, r3, r0
423	movs	r4, #96
424	str	r4, [r2, #2056]
425	uxtb	r4, r1
426	str	r4, [r2, #2052]
427	lsrs	r4, r1, #8
428	str	r4, [r2, #2052]
429	lsrs	r4, r1, #16
430	str	r4, [r2, #2052]
431	ldr	r2, .L68+4
432	ldr	r2, [r2]
433	add	r1, r1, r2
434.L64:
435	add	r3, r3, r0
436	movs	r2, #96
437	str	r2, [r3, #2056]
438	uxtb	r2, r1
439	str	r2, [r3, #2052]
440	lsrs	r2, r1, #8
441	lsrs	r1, r1, #16
442	str	r2, [r3, #2052]
443	movs	r2, #208
444	str	r1, [r3, #2052]
445	str	r2, [r3, #2056]
446	pop	{r4, pc}
447.L69:
448	.align	2
449.L68:
450	.word	.LANCHOR0
451	.word	.LANCHOR4
452	.size	FlashEraseCmd, .-FlashEraseCmd
453	.section	.text.FlashProgDpSecondCmd,"ax",%progbits
454	.align	1
455	.global	FlashProgDpSecondCmd
456	.syntax unified
457	.thumb
458	.thumb_func
459	.fpu softvfp
460	.type	FlashProgDpSecondCmd, %function
461FlashProgDpSecondCmd:
462	@ args = 0, pretend = 0, frame = 0
463	@ frame_needed = 0, uses_anonymous_args = 0
464	@ link register save eliminated.
465	push	{r4, r5}
466	lsrs	r2, r1, #16
467	ldr	r4, .L71
468	ldr	r3, [r4, r0, lsl #3]
469	add	r4, r4, r0, lsl #3
470	ldrb	r5, [r4, #4]	@ zero_extendqisi2
471	ldr	r4, .L71+4
472	ldrb	r4, [r4, #11]	@ zero_extendqisi2
473	add	r3, r3, r5, lsl #8
474	str	r4, [r3, #2056]
475	movs	r4, #0
476	str	r4, [r3, #2052]
477	str	r4, [r3, #2052]
478	uxtb	r4, r1
479	str	r4, [r3, #2052]
480	lsrs	r4, r1, #8
481	str	r4, [r3, #2052]
482	str	r2, [r3, #2052]
483	pop	{r4, r5}
484	b	FlashSetRandomizer
485.L72:
486	.align	2
487.L71:
488	.word	.LANCHOR0
489	.word	.LANCHOR8
490	.size	FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
491	.section	.text.FlashProgSecondCmd,"ax",%progbits
492	.align	1
493	.global	FlashProgSecondCmd
494	.syntax unified
495	.thumb
496	.thumb_func
497	.fpu softvfp
498	.type	FlashProgSecondCmd, %function
499FlashProgSecondCmd:
500	@ args = 0, pretend = 0, frame = 0
501	@ frame_needed = 0, uses_anonymous_args = 0
502	@ link register save eliminated.
503	ldr	r3, .L74
504	ldr	r2, [r3, r0, lsl #3]
505	add	r3, r3, r0, lsl #3
506	ldrb	r3, [r3, #4]	@ zero_extendqisi2
507	add	r3, r2, r3, lsl #8
508	movs	r2, #16
509	str	r2, [r3, #2056]
510	bx	lr
511.L75:
512	.align	2
513.L74:
514	.word	.LANCHOR0
515	.size	FlashProgSecondCmd, .-FlashProgSecondCmd
516	.section	.text.FlashProgDpFirstCmd,"ax",%progbits
517	.align	1
518	.global	FlashProgDpFirstCmd
519	.syntax unified
520	.thumb
521	.thumb_func
522	.fpu softvfp
523	.type	FlashProgDpFirstCmd, %function
524FlashProgDpFirstCmd:
525	@ args = 0, pretend = 0, frame = 0
526	@ frame_needed = 0, uses_anonymous_args = 0
527	@ link register save eliminated.
528	ldr	r3, .L77
529	ldr	r1, .L77+4
530	ldr	r2, [r3, r0, lsl #3]
531	add	r3, r3, r0, lsl #3
532	ldrb	r1, [r1, #10]	@ zero_extendqisi2
533	ldrb	r3, [r3, #4]	@ zero_extendqisi2
534	add	r3, r2, r3, lsl #8
535	str	r1, [r3, #2056]
536	bx	lr
537.L78:
538	.align	2
539.L77:
540	.word	.LANCHOR0
541	.word	.LANCHOR8
542	.size	FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
543	.section	.text.FlashReadStatus,"ax",%progbits
544	.align	1
545	.global	FlashReadStatus
546	.syntax unified
547	.thumb
548	.thumb_func
549	.fpu softvfp
550	.type	FlashReadStatus, %function
551FlashReadStatus:
552	@ args = 0, pretend = 0, frame = 0
553	@ frame_needed = 0, uses_anonymous_args = 0
554	push	{r3, r4, r5, lr}
555	movs	r2, #112
556	ldr	r3, .L80
557	ldr	r5, [r3, r0, lsl #3]
558	add	r3, r3, r0, lsl #3
559	movs	r0, #80
560	ldrb	r4, [r3, #4]	@ zero_extendqisi2
561	add	r3, r5, r4, lsl #8
562	adds	r4, r4, #8
563	lsls	r4, r4, #8
564	str	r2, [r3, #2056]
565	bl	udelay
566	ldr	r0, [r5, r4]
567	pop	{r3, r4, r5, pc}
568.L81:
569	.align	2
570.L80:
571	.word	.LANCHOR0
572	.size	FlashReadStatus, .-FlashReadStatus
573	.section	.text.js_hash,"ax",%progbits
574	.align	1
575	.global	js_hash
576	.syntax unified
577	.thumb
578	.thumb_func
579	.fpu softvfp
580	.type	js_hash, %function
581js_hash:
582	@ args = 0, pretend = 0, frame = 0
583	@ frame_needed = 0, uses_anonymous_args = 0
584	ldr	r3, .L85
585	add	r1, r1, r0
586	push	{r4, lr}
587.L83:
588	cmp	r0, r1
589	bne	.L84
590	mov	r0, r3
591	pop	{r4, pc}
592.L84:
593	lsrs	r2, r3, #2
594	ldrb	r4, [r0], #1	@ zero_extendqisi2
595	add	r2, r2, r3, lsl #5
596	add	r2, r2, r4
597	eors	r3, r3, r2
598	b	.L83
599.L86:
600	.align	2
601.L85:
602	.word	1204201446
603	.size	js_hash, .-js_hash
604	.section	.text.FlashLoadIdbInfo,"ax",%progbits
605	.align	1
606	.global	FlashLoadIdbInfo
607	.syntax unified
608	.thumb
609	.thumb_func
610	.fpu softvfp
611	.type	FlashLoadIdbInfo, %function
612FlashLoadIdbInfo:
613	@ args = 0, pretend = 0, frame = 0
614	@ frame_needed = 0, uses_anonymous_args = 0
615	@ link register save eliminated.
616	movs	r0, #0
617	bx	lr
618	.size	FlashLoadIdbInfo, .-FlashLoadIdbInfo
619	.section	.text.FlashPrintInfo,"ax",%progbits
620	.align	1
621	.global	FlashPrintInfo
622	.syntax unified
623	.thumb
624	.thumb_func
625	.fpu softvfp
626	.type	FlashPrintInfo, %function
627FlashPrintInfo:
628	@ args = 0, pretend = 0, frame = 0
629	@ frame_needed = 0, uses_anonymous_args = 0
630	@ link register save eliminated.
631	bx	lr
632	.size	FlashPrintInfo, .-FlashPrintInfo
633	.section	.text.ToshibaSetRRPara,"ax",%progbits
634	.align	1
635	.global	ToshibaSetRRPara
636	.syntax unified
637	.thumb
638	.thumb_func
639	.fpu softvfp
640	.type	ToshibaSetRRPara, %function
641ToshibaSetRRPara:
642	@ args = 0, pretend = 0, frame = 0
643	@ frame_needed = 0, uses_anonymous_args = 0
644	push	{r3, r4, r5, r6, r7, r8, r10, lr}
645	add	r7, r1, r1, lsl #2
646	ldr	r10, .L97+12
647	mov	r5, r0
648	mov	r6, r1
649	movs	r4, #0
650	ldr	r8, .L97+16
651.L90:
652	ldrb	r3, [r10]	@ zero_extendqisi2
653	cmp	r4, r3
654	bcc	.L94
655	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
656.L94:
657	movs	r3, #85
658	movs	r0, #200
659	str	r3, [r5, #8]
660	ldrsb	r3, [r4, r8]
661	str	r3, [r5, #4]
662	bl	udelay
663	ldr	r3, .L97
664	ldrb	r3, [r3]	@ zero_extendqisi2
665	cmp	r3, #34
666	bne	.L91
667	adds	r3, r4, r7
668	add	r3, r3, r8
669.L96:
670	ldrsb	r3, [r3, #5]
671.L95:
672	str	r3, [r5]
673	adds	r4, r4, #1
674	b	.L90
675.L91:
676	cmp	r3, #35
677	bne	.L93
678	ldr	r3, .L97+4
679	adds	r2, r4, r7
680	add	r3, r3, r2
681	b	.L96
682.L93:
683	ldr	r3, .L97+8
684	ldrsb	r3, [r3, r6]
685	b	.L95
686.L98:
687	.align	2
688.L97:
689	.word	.LANCHOR10
690	.word	.LANCHOR11
691	.word	.LANCHOR12
692	.word	.LANCHOR13
693	.word	.LANCHOR9
694	.size	ToshibaSetRRPara, .-ToshibaSetRRPara
695	.section	.text.SamsungSetRRPara,"ax",%progbits
696	.align	1
697	.global	SamsungSetRRPara
698	.syntax unified
699	.thumb
700	.thumb_func
701	.fpu softvfp
702	.type	SamsungSetRRPara, %function
703SamsungSetRRPara:
704	@ args = 0, pretend = 0, frame = 0
705	@ frame_needed = 0, uses_anonymous_args = 0
706	push	{r3, r4, r5, r6, r7, r8, r10, lr}
707	mov	r6, r0
708	ldr	r7, .L102
709	movs	r4, #0
710	mov	r10, #161
711	ldr	r8, .L102+4
712	add	r1, r7, r1, lsl #2
713	adds	r5, r1, #3
714.L100:
715	ldrb	r3, [r8]	@ zero_extendqisi2
716	cmp	r4, r3
717	bcc	.L101
718	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
719.L101:
720	movs	r3, #0
721	str	r10, [r6, #8]
722	str	r3, [r6]
723	mov	r0, #300
724	ldrsb	r3, [r7, r4]
725	adds	r4, r4, #1
726	str	r3, [r6]
727	ldrsb	r3, [r5, #1]!
728	str	r3, [r6]
729	bl	udelay
730	b	.L100
731.L103:
732	.align	2
733.L102:
734	.word	.LANCHOR14
735	.word	.LANCHOR13
736	.size	SamsungSetRRPara, .-SamsungSetRRPara
737	.global	__aeabi_uidiv
738	.global	__aeabi_uidivmod
739	.section	.text.LogAddr2PhyAddr,"ax",%progbits
740	.align	1
741	.global	LogAddr2PhyAddr
742	.syntax unified
743	.thumb
744	.thumb_func
745	.fpu softvfp
746	.type	LogAddr2PhyAddr, %function
747LogAddr2PhyAddr:
748	@ args = 4, pretend = 0, frame = 8
749	@ frame_needed = 0, uses_anonymous_args = 0
750	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
751	mov	r6, r3
752	ldr	r3, .L109
753	mov	r8, r1
754	mov	r7, r2
755	mov	r5, r0
756	ldrh	r4, [r3, #14]
757	ldrh	r3, [r3, #12]
758	smulbb	r4, r4, r3
759	ldr	r3, .L109+4
760	ldrh	fp, [r3]
761	uxth	r4, r4
762	ldr	r3, .L109+8
763	ldrb	r3, [r3]	@ zero_extendqisi2
764	cmp	r3, #1
765	ldr	r3, [r0, #4]
766	it	eq
767	lsleq	r1, fp, #1
768	ubfx	r2, r3, #10, #16
769	it	eq
770	uxtheq	fp, r1
771	mov	r0, r2
772	str	r3, [sp, #4]
773	mov	r1, r4
774	str	r2, [sp]
775	bl	__aeabi_uidiv
776	ldr	r2, [sp]
777	uxth	r10, r0
778	mov	r1, r4
779	mov	r0, r2
780	bl	__aeabi_uidivmod
781	ldr	r3, [sp, #4]
782	cmp	r8, #1
783	uxth	r1, r1
784	ubfx	r3, r3, #0, #10
785	bne	.L106
786	ldr	r2, .L109+12
787	ldrb	r2, [r2]	@ zero_extendqisi2
788	cbnz	r2, .L106
789	ldr	r2, .L109+16
790	ldrh	r3, [r2, r3, lsl #1]
791.L106:
792	ldr	r2, .L109+20
793	ldr	r2, [r2, r10, lsl #2]
794	mla	r1, fp, r1, r2
795	add	r1, r1, r3
796	ldrb	r3, [sp, #40]	@ zero_extendqisi2
797	str	r1, [r7]
798	str	r10, [r6]
799	cmp	r3, #1
800	bls	.L108
801	ldr	r0, [r5, #4]
802	ldr	r3, [r5, #40]
803	add	r0, r0, #1024
804	subs	r3, r0, r3
805	rsbs	r0, r3, #0
806	adcs	r0, r0, r3
807.L107:
808	add	sp, sp, #8
809	@ sp needed
810	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
811.L108:
812	movs	r0, #0
813	b	.L107
814.L110:
815	.align	2
816.L109:
817	.word	.LANCHOR15
818	.word	.LANCHOR4
819	.word	.LANCHOR2
820	.word	.LANCHOR16
821	.word	.LANCHOR17
822	.word	.LANCHOR18
823	.size	LogAddr2PhyAddr, .-LogAddr2PhyAddr
824	.section	.text.FlashReadStatusEN,"ax",%progbits
825	.align	1
826	.global	FlashReadStatusEN
827	.syntax unified
828	.thumb
829	.thumb_func
830	.fpu softvfp
831	.type	FlashReadStatusEN, %function
832FlashReadStatusEN:
833	@ args = 0, pretend = 0, frame = 0
834	@ frame_needed = 0, uses_anonymous_args = 0
835	ldr	r3, .L123
836	push	{r4, r5, r6, lr}
837	ldr	r5, [r3, r0, lsl #3]
838	add	r3, r3, r0, lsl #3
839	ldrb	r4, [r3, #4]	@ zero_extendqisi2
840	ldr	r3, .L123+4
841	ldr	r3, [r3]
842	ldrb	r3, [r3, #8]	@ zero_extendqisi2
843	cmp	r3, #2
844	lsl	r3, r4, #8
845	add	r4, r4, #8
846	bne	.L112
847	ldr	r0, .L123+8
848	cbnz	r2, .L113
849	ldrb	r2, [r0, #13]	@ zero_extendqisi2
850.L122:
851	add	r3, r3, r5
852	str	r2, [r3, #2056]
853	ldrb	r0, [r0, #15]	@ zero_extendqisi2
854	cbz	r0, .L117
855	add	r6, r5, r4, lsl #8
856	movs	r2, #0
857.L116:
858	cmp	r2, r0
859	bcc	.L118
860.L117:
861	lsls	r4, r4, #8
862	movs	r0, #80
863	bl	udelay
864	ldr	r0, [r5, r4]
865	uxtb	r0, r0
866	pop	{r4, r5, r6, pc}
867.L113:
868	ldrb	r2, [r0, #14]	@ zero_extendqisi2
869	b	.L122
870.L118:
871	lsls	r3, r2, #3
872	adds	r2, r2, #1
873	lsr	r3, r1, r3
874	uxtb	r3, r3
875	str	r3, [r6, #4]
876	b	.L116
877.L112:
878	add	r3, r3, r5
879	movs	r2, #112
880	str	r2, [r3, #2056]
881	b	.L117
882.L124:
883	.align	2
884.L123:
885	.word	.LANCHOR0
886	.word	.LANCHOR7
887	.word	.LANCHOR8
888	.size	FlashReadStatusEN, .-FlashReadStatusEN
889	.section	.text.FlashWaitReadyEN,"ax",%progbits
890	.align	1
891	.global	FlashWaitReadyEN
892	.syntax unified
893	.thumb
894	.thumb_func
895	.fpu softvfp
896	.type	FlashWaitReadyEN, %function
897FlashWaitReadyEN:
898	@ args = 0, pretend = 0, frame = 0
899	@ frame_needed = 0, uses_anonymous_args = 0
900	push	{r4, r5, r6, lr}
901	mov	r4, r0
902	mov	r5, r1
903	mov	r6, r2
904.L129:
905	mov	r2, r6
906	mov	r1, r5
907	mov	r0, r4
908	bl	FlashReadStatusEN
909	cmp	r0, #255
910	mov	r3, r0
911	beq	.L129
912	lsls	r3, r3, #25
913	bpl	.L129
914	pop	{r4, r5, r6, pc}
915	.size	FlashWaitReadyEN, .-FlashWaitReadyEN
916	.section	.text.NandcReadDontCaseBusyEn,"ax",%progbits
917	.align	1
918	.global	NandcReadDontCaseBusyEn
919	.syntax unified
920	.thumb
921	.thumb_func
922	.fpu softvfp
923	.type	NandcReadDontCaseBusyEn, %function
924NandcReadDontCaseBusyEn:
925	@ args = 0, pretend = 0, frame = 0
926	@ frame_needed = 0, uses_anonymous_args = 0
927	@ link register save eliminated.
928	bx	lr
929	.size	NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
930	.section	.text.NandcGetChipIf,"ax",%progbits
931	.align	1
932	.global	NandcGetChipIf
933	.syntax unified
934	.thumb
935	.thumb_func
936	.fpu softvfp
937	.type	NandcGetChipIf, %function
938NandcGetChipIf:
939	@ args = 0, pretend = 0, frame = 0
940	@ frame_needed = 0, uses_anonymous_args = 0
941	@ link register save eliminated.
942	ldr	r2, .L134
943	add	r3, r2, r0, lsl #3
944	ldr	r0, [r2, r0, lsl #3]
945	ldrb	r3, [r3, #4]	@ zero_extendqisi2
946	adds	r3, r3, #8
947	add	r0, r0, r3, lsl #8
948	bx	lr
949.L135:
950	.align	2
951.L134:
952	.word	.LANCHOR0
953	.size	NandcGetChipIf, .-NandcGetChipIf
954	.section	.text.NandcSetDdrPara,"ax",%progbits
955	.align	1
956	.global	NandcSetDdrPara
957	.syntax unified
958	.thumb
959	.thumb_func
960	.fpu softvfp
961	.type	NandcSetDdrPara, %function
962NandcSetDdrPara:
963	@ args = 0, pretend = 0, frame = 0
964	@ frame_needed = 0, uses_anonymous_args = 0
965	@ link register save eliminated.
966	ldr	r3, .L137
967	ldr	r2, [r3]
968	lsls	r3, r0, #8
969	orr	r0, r3, r0, lsl #16
970	orr	r0, r0, #1
971	str	r0, [r2, #304]
972	bx	lr
973.L138:
974	.align	2
975.L137:
976	.word	.LANCHOR19
977	.size	NandcSetDdrPara, .-NandcSetDdrPara
978	.section	.text.NandcSetDdrDiv,"ax",%progbits
979	.align	1
980	.global	NandcSetDdrDiv
981	.syntax unified
982	.thumb
983	.thumb_func
984	.fpu softvfp
985	.type	NandcSetDdrDiv, %function
986NandcSetDdrDiv:
987	@ args = 0, pretend = 0, frame = 0
988	@ frame_needed = 0, uses_anonymous_args = 0
989	@ link register save eliminated.
990	ldr	r3, .L140
991	orr	r0, r0, #16640
992	ldr	r3, [r3]
993	str	r0, [r3, #344]
994	bx	lr
995.L141:
996	.align	2
997.L140:
998	.word	.LANCHOR19
999	.size	NandcSetDdrDiv, .-NandcSetDdrDiv
1000	.section	.text.NandcSetDdrMode,"ax",%progbits
1001	.align	1
1002	.global	NandcSetDdrMode
1003	.syntax unified
1004	.thumb
1005	.thumb_func
1006	.fpu softvfp
1007	.type	NandcSetDdrMode, %function
1008NandcSetDdrMode:
1009	@ args = 0, pretend = 0, frame = 0
1010	@ frame_needed = 0, uses_anonymous_args = 0
1011	@ link register save eliminated.
1012	ldr	r3, .L145
1013	ldr	r2, [r3]
1014	ldr	r3, [r2]
1015	cbnz	r0, .L143
1016	bfi	r3, r0, #13, #1
1017.L144:
1018	str	r3, [r2]
1019	bx	lr
1020.L143:
1021	orr	r3, r3, #253952
1022	b	.L144
1023.L146:
1024	.align	2
1025.L145:
1026	.word	.LANCHOR19
1027	.size	NandcSetDdrMode, .-NandcSetDdrMode
1028	.section	.text.NandcSetMode,"ax",%progbits
1029	.align	1
1030	.global	NandcSetMode
1031	.syntax unified
1032	.thumb
1033	.thumb_func
1034	.fpu softvfp
1035	.type	NandcSetMode, %function
1036NandcSetMode:
1037	@ args = 0, pretend = 0, frame = 0
1038	@ frame_needed = 0, uses_anonymous_args = 0
1039	@ link register save eliminated.
1040	ldr	r3, .L154
1041	ands	r1, r0, #6
1042	ldr	r2, [r3]
1043	ldr	r3, [r2]
1044	beq	.L148
1045	lsls	r1, r0, #29
1046	movw	r1, #16641
1047	str	r1, [r2, #344]
1048	orr	r3, r3, #24576
1049	ldr	r1, .L154+4
1050	bfc	r3, #15, #1
1051	orr	r3, r3, #196608
1052	it	mi
1053	orrmi	r3, r3, #32768
1054	str	r1, [r2, #304]
1055	movs	r1, #38
1056	str	r1, [r2, #308]
1057	movs	r1, #39
1058	str	r1, [r2, #308]
1059.L150:
1060	str	r3, [r2]
1061	movs	r0, #0
1062	bx	lr
1063.L148:
1064	bfi	r3, r1, #13, #1
1065	b	.L150
1066.L155:
1067	.align	2
1068.L154:
1069	.word	.LANCHOR19
1070	.word	1710595
1071	.size	NandcSetMode, .-NandcSetMode
1072	.section	.text.NandcFlashCs,"ax",%progbits
1073	.align	1
1074	.global	NandcFlashCs
1075	.syntax unified
1076	.thumb
1077	.thumb_func
1078	.fpu softvfp
1079	.type	NandcFlashCs, %function
1080NandcFlashCs:
1081	@ args = 0, pretend = 0, frame = 0
1082	@ frame_needed = 0, uses_anonymous_args = 0
1083	@ link register save eliminated.
1084	ldr	r3, .L157
1085	movs	r2, #1
1086	ldr	r1, [r3, r0, lsl #3]
1087	add	r0, r3, r0, lsl #3
1088	ldrb	r0, [r0, #4]	@ zero_extendqisi2
1089	ldr	r3, [r1]
1090	lsls	r2, r2, r0
1091	bfi	r3, r2, #0, #8
1092	str	r3, [r1]
1093	bx	lr
1094.L158:
1095	.align	2
1096.L157:
1097	.word	.LANCHOR0
1098	.size	NandcFlashCs, .-NandcFlashCs
1099	.section	.text.NandcFlashDeCs,"ax",%progbits
1100	.align	1
1101	.global	NandcFlashDeCs
1102	.syntax unified
1103	.thumb
1104	.thumb_func
1105	.fpu softvfp
1106	.type	NandcFlashDeCs, %function
1107NandcFlashDeCs:
1108	@ args = 0, pretend = 0, frame = 0
1109	@ frame_needed = 0, uses_anonymous_args = 0
1110	@ link register save eliminated.
1111	ldr	r3, .L160
1112	ldr	r2, [r3, r0, lsl #3]
1113	ldr	r3, [r2]
1114	bfc	r3, #0, #8
1115	bfc	r3, #17, #1
1116	str	r3, [r2]
1117	bx	lr
1118.L161:
1119	.align	2
1120.L160:
1121	.word	.LANCHOR0
1122	.size	NandcFlashDeCs, .-NandcFlashDeCs
1123	.section	.text.HynixSetRRPara,"ax",%progbits
1124	.align	1
1125	.global	HynixSetRRPara
1126	.syntax unified
1127	.thumb
1128	.thumb_func
1129	.fpu softvfp
1130	.type	HynixSetRRPara, %function
1131HynixSetRRPara:
1132	@ args = 0, pretend = 0, frame = 8
1133	@ frame_needed = 0, uses_anonymous_args = 0
1134	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
1135	mov	r6, r3
1136	ldr	r3, .L171
1137	mov	r5, r0
1138	mov	r7, r1
1139	mov	r10, r2
1140	ldr	r3, [r3]
1141	ldrb	r3, [r3, #19]	@ zero_extendqisi2
1142	cmp	r3, #6
1143	bne	.L163
1144	movs	r4, #20
1145	add	r4, r4, r0, lsl #6
1146	add	r3, r4, r6, lsl #2
1147.L169:
1148	ldr	r4, .L171+4
1149.L170:
1150	add	r4, r4, r3
1151.L164:
1152	ldr	r3, .L171+8
1153	mov	r0, r5
1154	subs	r7, r7, #1
1155	subs	r4, r4, #1
1156	add	r7, r7, r10
1157	ldr	r8, [r3, r5, lsl #3]
1158	add	r3, r3, r5, lsl #3
1159	ldrb	fp, [r3, #4]	@ zero_extendqisi2
1160	bl	NandcFlashCs
1161	movs	r3, #54
1162	lsl	fp, fp, #8
1163	add	r0, r8, fp
1164	str	r3, [r0, #2056]
1165	add	r3, r10, #-1
1166	mov	r10, r0
1167.L167:
1168	cmp	r3, r7
1169	bne	.L168
1170	movs	r3, #22
1171	add	r8, r8, fp
1172	str	r3, [r8, #2056]
1173	mov	r0, r5
1174	bl	NandcFlashDeCs
1175	ldr	r3, .L171+12
1176	strb	r6, [r3, r5]
1177	add	sp, sp, #8
1178	@ sp needed
1179	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1180.L163:
1181	cmp	r3, #7
1182	bne	.L165
1183	movs	r4, #28
1184	movs	r3, #160
1185	smlabb	r3, r3, r0, r4
1186	movs	r4, #10
1187	smlabb	r3, r4, r6, r3
1188	b	.L169
1189.L165:
1190	cmp	r3, #8
1191	bne	.L166
1192	add	r4, r6, r6, lsl #2
1193	ldr	r3, .L171+16
1194	b	.L170
1195.L166:
1196	adds	r4, r6, #2
1197	add	r3, r4, r0, lsl #3
1198	ldr	r4, .L171+4
1199	add	r4, r4, r3, lsl #3
1200	adds	r4, r4, #4
1201	b	.L164
1202.L168:
1203	ldrb	r2, [r3, #1]!	@ zero_extendqisi2
1204	movs	r0, #200
1205	str	r2, [r10, #2052]
1206	str	r3, [sp, #4]
1207	bl	udelay
1208	ldrsb	r2, [r4, #1]!
1209	ldr	r3, [sp, #4]
1210	str	r2, [r10, #2048]
1211	b	.L167
1212.L172:
1213	.align	2
1214.L171:
1215	.word	.LANCHOR7
1216	.word	.LANCHOR20
1217	.word	.LANCHOR0
1218	.word	.LANCHOR21
1219	.word	.LANCHOR20+28
1220	.size	HynixSetRRPara, .-HynixSetRRPara
1221	.section	.text.FlashSetReadRetryDefault,"ax",%progbits
1222	.align	1
1223	.global	FlashSetReadRetryDefault
1224	.syntax unified
1225	.thumb
1226	.thumb_func
1227	.fpu softvfp
1228	.type	FlashSetReadRetryDefault, %function
1229FlashSetReadRetryDefault:
1230	@ args = 0, pretend = 0, frame = 0
1231	@ frame_needed = 0, uses_anonymous_args = 0
1232	ldr	r3, .L179
1233	push	{r4, r5, r6, lr}
1234	ldr	r3, [r3]
1235	ldrb	r3, [r3, #19]	@ zero_extendqisi2
1236	subs	r3, r3, #1
1237	cmp	r3, #7
1238	bhi	.L173
1239	ldr	r5, .L179+4
1240	movs	r4, #0
1241	adds	r6, r5, #4
1242.L176:
1243	ldr	r3, .L179+8
1244	uxtb	r0, r4
1245	ldrb	r3, [r3, r4, lsl #3]	@ zero_extendqisi2
1246	cmp	r3, #173
1247	bne	.L175
1248	movs	r3, #0
1249	mov	r2, r6
1250	ldrb	r1, [r5, #1]	@ zero_extendqisi2
1251	bl	HynixSetRRPara
1252.L175:
1253	adds	r4, r4, #1
1254	cmp	r4, #4
1255	bne	.L176
1256.L173:
1257	pop	{r4, r5, r6, pc}
1258.L180:
1259	.align	2
1260.L179:
1261	.word	.LANCHOR7
1262	.word	.LANCHOR20
1263	.word	.LANCHOR22
1264	.size	FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
1265	.section	.text.FlashWaitCmdDone,"ax",%progbits
1266	.align	1
1267	.global	FlashWaitCmdDone
1268	.syntax unified
1269	.thumb
1270	.thumb_func
1271	.fpu softvfp
1272	.type	FlashWaitCmdDone, %function
1273FlashWaitCmdDone:
1274	@ args = 0, pretend = 0, frame = 0
1275	@ frame_needed = 0, uses_anonymous_args = 0
1276	ldr	r2, .L188
1277	lsls	r3, r0, #4
1278	push	{r4, r5, r6, lr}
1279	mov	r6, r0
1280	adds	r4, r2, r3
1281	ldr	r1, [r4, #8]
1282	cbz	r1, .L183
1283	ldrb	r5, [r2, r3]	@ zero_extendqisi2
1284	mov	r0, r5
1285	bl	NandcFlashCs
1286	ldr	r3, .L188+4
1287	mov	r0, r5
1288	ldr	r1, [r4, #4]
1289	ldr	r2, [r3, r6, lsl #2]
1290	adds	r2, r2, #0
1291	it	ne
1292	movne	r2, #1
1293	bl	FlashWaitReadyEN
1294	mov	r1, r0
1295	mov	r0, r5
1296	bl	NandcFlashDeCs
1297	ldr	r3, [r4, #8]
1298	sbfx	r1, r1, #0, #1
1299	ldr	r2, [r4, #12]
1300	str	r1, [r3]
1301	movs	r3, #0
1302	str	r3, [r4, #8]
1303	cbz	r2, .L183
1304	str	r1, [r2]
1305	str	r3, [r4, #12]
1306.L183:
1307	movs	r0, #0
1308	pop	{r4, r5, r6, pc}
1309.L189:
1310	.align	2
1311.L188:
1312	.word	.LANCHOR23
1313	.word	.LANCHOR18
1314	.size	FlashWaitCmdDone, .-FlashWaitCmdDone
1315	.section	.text.NandcDelayns,"ax",%progbits
1316	.align	1
1317	.global	NandcDelayns
1318	.syntax unified
1319	.thumb
1320	.thumb_func
1321	.fpu softvfp
1322	.type	NandcDelayns, %function
1323NandcDelayns:
1324	@ args = 0, pretend = 0, frame = 0
1325	@ frame_needed = 0, uses_anonymous_args = 0
1326	push	{r3, lr}
1327	bl	udelay
1328	movs	r0, #0
1329	pop	{r3, pc}
1330	.size	NandcDelayns, .-NandcDelayns
1331	.section	.text.NandcWaitFlashReadyNoDelay,"ax",%progbits
1332	.align	1
1333	.global	NandcWaitFlashReadyNoDelay
1334	.syntax unified
1335	.thumb
1336	.thumb_func
1337	.fpu softvfp
1338	.type	NandcWaitFlashReadyNoDelay, %function
1339NandcWaitFlashReadyNoDelay:
1340	@ args = 0, pretend = 0, frame = 8
1341	@ frame_needed = 0, uses_anonymous_args = 0
1342	ldr	r3, .L196
1343	push	{r0, r1, r2, r4, r5, lr}
1344	ldr	r4, .L196+4
1345	ldr	r5, [r3, r0, lsl #3]
1346.L193:
1347	ldr	r3, [r5]
1348	str	r3, [sp, #4]
1349	ldr	r3, [sp, #4]
1350	lsls	r3, r3, #22
1351	bmi	.L194
1352	movs	r0, #10
1353	bl	udelay
1354	subs	r4, r4, #1
1355	bne	.L193
1356	mov	r0, #-1
1357.L191:
1358	add	sp, sp, #12
1359	@ sp needed
1360	pop	{r4, r5, pc}
1361.L194:
1362	movs	r0, #0
1363	b	.L191
1364.L197:
1365	.align	2
1366.L196:
1367	.word	.LANCHOR0
1368	.word	100000
1369	.size	NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
1370	.section	.text.NandcWaitFlashReady,"ax",%progbits
1371	.align	1
1372	.global	NandcWaitFlashReady
1373	.syntax unified
1374	.thumb
1375	.thumb_func
1376	.fpu softvfp
1377	.type	NandcWaitFlashReady, %function
1378NandcWaitFlashReady:
1379	@ args = 0, pretend = 0, frame = 8
1380	@ frame_needed = 0, uses_anonymous_args = 0
1381	push	{r0, r1, r2, r4, r5, lr}
1382	ldr	r3, .L203
1383	ldr	r4, .L203+4
1384	ldr	r5, [r3, r0, lsl #3]
1385	movs	r0, #130
1386	bl	udelay
1387.L200:
1388	ldr	r3, [r5]
1389	str	r3, [sp, #4]
1390	ldr	r3, [sp, #4]
1391	lsls	r3, r3, #22
1392	bmi	.L201
1393	movs	r0, #10
1394	bl	udelay
1395	subs	r4, r4, #1
1396	bne	.L200
1397	mov	r0, #-1
1398.L198:
1399	add	sp, sp, #12
1400	@ sp needed
1401	pop	{r4, r5, pc}
1402.L201:
1403	movs	r0, #0
1404	b	.L198
1405.L204:
1406	.align	2
1407.L203:
1408	.word	.LANCHOR0
1409	.word	100000
1410	.size	NandcWaitFlashReady, .-NandcWaitFlashReady
1411	.section	.text.FlashReset,"ax",%progbits
1412	.align	1
1413	.global	FlashReset
1414	.syntax unified
1415	.thumb
1416	.thumb_func
1417	.fpu softvfp
1418	.type	FlashReset, %function
1419FlashReset:
1420	@ args = 0, pretend = 0, frame = 0
1421	@ frame_needed = 0, uses_anonymous_args = 0
1422	ldr	r3, .L206
1423	push	{r4, r5, r6, lr}
1424	mov	r4, r0
1425	ldr	r5, [r3, r0, lsl #3]
1426	add	r3, r3, r0, lsl #3
1427	ldrb	r6, [r3, #4]	@ zero_extendqisi2
1428	bl	NandcFlashCs
1429	movs	r3, #255
1430	mov	r0, r4
1431	add	r5, r5, r6, lsl #8
1432	str	r3, [r5, #2056]
1433	bl	NandcWaitFlashReady
1434	mov	r0, r4
1435	pop	{r4, r5, r6, lr}
1436	b	NandcFlashDeCs
1437.L207:
1438	.align	2
1439.L206:
1440	.word	.LANCHOR0
1441	.size	FlashReset, .-FlashReset
1442	.section	.text.flash_enter_slc_mode,"ax",%progbits
1443	.align	1
1444	.global	flash_enter_slc_mode
1445	.syntax unified
1446	.thumb
1447	.thumb_func
1448	.fpu softvfp
1449	.type	flash_enter_slc_mode, %function
1450flash_enter_slc_mode:
1451	@ args = 0, pretend = 0, frame = 0
1452	@ frame_needed = 0, uses_anonymous_args = 0
1453	push	{r3, r4, r5, r6, r7, lr}
1454	mov	r5, r0
1455	ldr	r3, .L214
1456	ldrb	r3, [r3]	@ zero_extendqisi2
1457	cbz	r3, .L208
1458	bl	NandcFlashCs
1459	ldr	r3, .L214+4
1460	ldr	r6, [r3, r5, lsl #3]
1461	add	r3, r3, r5, lsl #3
1462	ldrb	r7, [r3, #4]	@ zero_extendqisi2
1463	ldr	r3, .L214+8
1464	ldrb	r3, [r3, r5, lsl #3]	@ zero_extendqisi2
1465	lsls	r7, r7, #8
1466	cmp	r3, #44
1467	bne	.L210
1468	adds	r4, r6, r7
1469	movs	r3, #239
1470	str	r3, [r4, #2056]
1471	movs	r3, #145
1472	str	r3, [r4, #2052]
1473	movs	r0, #50
1474	bl	udelay
1475	movs	r3, #0
1476	movs	r2, #1
1477	str	r3, [r4, #2048]
1478	movs	r0, #100
1479	str	r2, [r4, #2048]
1480	str	r3, [r4, #2048]
1481	str	r3, [r4, #2048]
1482	bl	udelay
1483.L210:
1484	mov	r0, r5
1485	add	r6, r6, r7
1486	bl	NandcWaitFlashReadyNoDelay
1487	movs	r3, #218
1488	mov	r0, r5
1489	str	r3, [r6, #2056]
1490	bl	NandcWaitFlashReady
1491	ldr	r3, .L214+12
1492	movs	r2, #2
1493	strb	r2, [r3]
1494.L208:
1495	pop	{r3, r4, r5, r6, r7, pc}
1496.L215:
1497	.align	2
1498.L214:
1499	.word	.LANCHOR16
1500	.word	.LANCHOR0
1501	.word	.LANCHOR22
1502	.word	.LANCHOR24
1503	.size	flash_enter_slc_mode, .-flash_enter_slc_mode
1504	.section	.text.flash_exit_slc_mode,"ax",%progbits
1505	.align	1
1506	.global	flash_exit_slc_mode
1507	.syntax unified
1508	.thumb
1509	.thumb_func
1510	.fpu softvfp
1511	.type	flash_exit_slc_mode, %function
1512flash_exit_slc_mode:
1513	@ args = 0, pretend = 0, frame = 0
1514	@ frame_needed = 0, uses_anonymous_args = 0
1515	push	{r3, r4, r5, r6, r7, lr}
1516	mov	r5, r0
1517	ldr	r3, .L222
1518	ldrb	r3, [r3]	@ zero_extendqisi2
1519	cbz	r3, .L216
1520	bl	NandcFlashCs
1521	ldr	r3, .L222+4
1522	ldr	r6, [r3, r5, lsl #3]
1523	add	r3, r3, r5, lsl #3
1524	ldrb	r7, [r3, #4]	@ zero_extendqisi2
1525	ldr	r3, .L222+8
1526	ldrb	r3, [r3, r5, lsl #3]	@ zero_extendqisi2
1527	lsls	r7, r7, #8
1528	cmp	r3, #44
1529	bne	.L218
1530	adds	r4, r6, r7
1531	movs	r3, #239
1532	str	r3, [r4, #2056]
1533	movs	r3, #145
1534	str	r3, [r4, #2052]
1535	movs	r0, #50
1536	bl	udelay
1537	movs	r3, #2
1538	movs	r0, #100
1539	str	r3, [r4, #2048]
1540	movs	r3, #1
1541	str	r3, [r4, #2048]
1542	movs	r3, #0
1543	str	r3, [r4, #2048]
1544	str	r3, [r4, #2048]
1545	bl	udelay
1546.L218:
1547	mov	r0, r5
1548	add	r6, r6, r7
1549	bl	NandcWaitFlashReadyNoDelay
1550	movs	r3, #223
1551	mov	r0, r5
1552	str	r3, [r6, #2056]
1553	bl	NandcWaitFlashReady
1554	ldr	r3, .L222+12
1555	movs	r2, #0
1556	strb	r2, [r3]
1557.L216:
1558	pop	{r3, r4, r5, r6, r7, pc}
1559.L223:
1560	.align	2
1561.L222:
1562	.word	.LANCHOR16
1563	.word	.LANCHOR0
1564	.word	.LANCHOR22
1565	.word	.LANCHOR24
1566	.size	flash_exit_slc_mode, .-flash_exit_slc_mode
1567	.section	.text.FlashEraseBlock,"ax",%progbits
1568	.align	1
1569	.global	FlashEraseBlock
1570	.syntax unified
1571	.thumb
1572	.thumb_func
1573	.fpu softvfp
1574	.type	FlashEraseBlock, %function
1575FlashEraseBlock:
1576	@ args = 0, pretend = 0, frame = 0
1577	@ frame_needed = 0, uses_anonymous_args = 0
1578	push	{r4, r5, r6, lr}
1579	mov	r4, r0
1580	mov	r5, r1
1581	mov	r6, r2
1582	bl	NandcWaitFlashReady
1583	mov	r0, r4
1584	bl	NandcFlashCs
1585	mov	r2, r6
1586	mov	r1, r5
1587	mov	r0, r4
1588	bl	FlashEraseCmd
1589	mov	r0, r4
1590	bl	NandcWaitFlashReady
1591	mov	r1, r5
1592	mov	r0, r4
1593	bl	FlashReadStatus
1594	mov	r1, r0
1595	mov	r0, r4
1596	bl	NandcFlashDeCs
1597	and	r0, r1, #1
1598	pop	{r4, r5, r6, pc}
1599	.size	FlashEraseBlock, .-FlashEraseBlock
1600	.section	.text.FlashSetInterfaceMode,"ax",%progbits
1601	.align	1
1602	.global	FlashSetInterfaceMode
1603	.syntax unified
1604	.thumb
1605	.thumb_func
1606	.fpu softvfp
1607	.type	FlashSetInterfaceMode, %function
1608FlashSetInterfaceMode:
1609	@ args = 0, pretend = 0, frame = 8
1610	@ frame_needed = 0, uses_anonymous_args = 0
1611	ldr	r3, .L253
1612	mov	ip, #128
1613	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
1614	movs	r5, #0
1615	movs	r7, #239
1616	mov	lr, #1
1617	mov	r8, #35
1618	mov	r10, #32
1619	ldrb	r3, [r3]	@ zero_extendqisi2
1620	and	r2, r3, #4
1621	and	r3, r3, #1
1622	str	r2, [sp, #4]
1623	mov	r2, r5
1624	str	r3, [sp]
1625.L235:
1626	ldr	r3, .L253+4
1627	ldrb	r4, [r5, r3]	@ zero_extendqisi2
1628	cmp	r4, #152
1629	beq	.L226
1630	cmp	r4, #69
1631	beq	.L226
1632	cmp	r4, #173
1633	beq	.L226
1634	cmp	r4, #44
1635	bne	.L227
1636.L226:
1637	ldr	r3, .L253+8
1638	cmp	r0, #1
1639	ldr	r1, [r5, r3]
1640	add	r3, r3, r5
1641	ldrb	r3, [r3, #4]	@ zero_extendqisi2
1642	bne	.L228
1643	ldr	r6, [sp]
1644	cbz	r6, .L227
1645	lsls	r3, r3, #8
1646	cmp	r4, #173
1647	add	fp, r1, r3
1648	str	r7, [fp, #2056]
1649	bne	.L229
1650	str	r0, [fp, #2052]
1651.L252:
1652	str	r2, [fp, #2048]
1653	b	.L233
1654.L229:
1655	cmp	r4, #44
1656	ittet	eq
1657	moveq	r4, #5
1658	streq	r0, [fp, #2052]
1659	strne	ip, [fp, #2052]
1660	streq	r4, [fp, #2048]
1661	it	ne
1662	strne	r0, [fp, #2048]
1663.L233:
1664	add	r3, r3, r1
1665	str	r2, [r3, #2048]
1666	str	r2, [r3, #2048]
1667	str	r2, [r3, #2048]
1668.L227:
1669	adds	r5, r5, #8
1670	cmp	r5, #32
1671	bne	.L235
1672	movs	r0, #0
1673	bl	NandcWaitFlashReady
1674	movs	r0, #0
1675	add	sp, sp, #8
1676	@ sp needed
1677	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1678.L228:
1679	ldr	r6, [sp, #4]
1680	cmp	r6, #0
1681	beq	.L227
1682	lsls	r3, r3, #8
1683	cmp	r4, #173
1684	add	fp, r1, r3
1685	str	r7, [fp, #2056]
1686	bne	.L232
1687	str	lr, [fp, #2052]
1688	str	r10, [fp, #2048]
1689	b	.L233
1690.L232:
1691	cmp	r4, #44
1692	bne	.L234
1693	str	lr, [fp, #2052]
1694	str	r8, [fp, #2048]
1695	b	.L233
1696.L234:
1697	str	ip, [fp, #2052]
1698	b	.L252
1699.L254:
1700	.align	2
1701.L253:
1702	.word	.LANCHOR25
1703	.word	.LANCHOR22
1704	.word	.LANCHOR0
1705	.size	FlashSetInterfaceMode, .-FlashSetInterfaceMode
1706	.section	.text.SandiskSetRRPara,"ax",%progbits
1707	.align	1
1708	.global	SandiskSetRRPara
1709	.syntax unified
1710	.thumb
1711	.thumb_func
1712	.fpu softvfp
1713	.type	SandiskSetRRPara, %function
1714SandiskSetRRPara:
1715	@ args = 0, pretend = 0, frame = 0
1716	@ frame_needed = 0, uses_anonymous_args = 0
1717	push	{r3, r4, r5, r6, r7, lr}
1718	movs	r3, #239
1719	str	r3, [r0, #8]
1720	movs	r3, #17
1721	mov	r5, r0
1722	mov	r4, r1
1723	str	r3, [r0, #4]
1724	movs	r0, #200
1725	bl	udelay
1726	ldr	r3, .L261
1727	add	r4, r4, r4, lsl #2
1728	ldr	r6, .L261+4
1729	movs	r2, #0
1730	ldr	r7, .L261+8
1731	ldrb	r1, [r3]	@ zero_extendqisi2
1732	ldr	r3, .L261+12
1733	ldrb	r0, [r3]	@ zero_extendqisi2
1734.L256:
1735	cmp	r2, r1
1736	bcc	.L259
1737	movs	r0, #0
1738	pop	{r3, r4, r5, r6, r7, lr}
1739	b	NandcWaitFlashReady
1740.L259:
1741	adds	r3, r2, r4
1742	cmp	r0, #67
1743	ite	eq
1744	addeq	r3, r3, r7
1745	addne	r3, r3, r6
1746	ldrsb	r3, [r3, #5]
1747	adds	r2, r2, #1
1748	str	r3, [r5]
1749	b	.L256
1750.L262:
1751	.align	2
1752.L261:
1753	.word	.LANCHOR13
1754	.word	.LANCHOR11
1755	.word	.LANCHOR9
1756	.word	.LANCHOR10
1757	.size	SandiskSetRRPara, .-SandiskSetRRPara
1758	.section	.text.micron_auto_read_calibration_config,"ax",%progbits
1759	.align	1
1760	.global	micron_auto_read_calibration_config
1761	.syntax unified
1762	.thumb
1763	.thumb_func
1764	.fpu softvfp
1765	.type	micron_auto_read_calibration_config, %function
1766micron_auto_read_calibration_config:
1767	@ args = 0, pretend = 0, frame = 0
1768	@ frame_needed = 0, uses_anonymous_args = 0
1769	push	{r4, r5, r6, lr}
1770	mov	r5, r0
1771	mov	r6, r1
1772	bl	NandcWaitFlashReady
1773	ldr	r0, .L264
1774	ldr	r4, [r0, r5, lsl #3]
1775	add	r0, r0, r5, lsl #3
1776	ldrb	r3, [r0, #4]	@ zero_extendqisi2
1777	movs	r0, #200
1778	add	r4, r4, r3, lsl #8
1779	movs	r3, #239
1780	str	r3, [r4, #2056]
1781	movs	r3, #150
1782	str	r3, [r4, #2052]
1783	bl	udelay
1784	movs	r3, #0
1785	str	r6, [r4, #2048]
1786	str	r3, [r4, #2048]
1787	str	r3, [r4, #2048]
1788	str	r3, [r4, #2048]
1789	pop	{r4, r5, r6, pc}
1790.L265:
1791	.align	2
1792.L264:
1793	.word	.LANCHOR0
1794	.size	micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
1795	.section	.text.FlashEraseSLc2KBlocks,"ax",%progbits
1796	.align	1
1797	.global	FlashEraseSLc2KBlocks
1798	.syntax unified
1799	.thumb
1800	.thumb_func
1801	.fpu softvfp
1802	.type	FlashEraseSLc2KBlocks, %function
1803FlashEraseSLc2KBlocks:
1804	@ args = 0, pretend = 0, frame = 8
1805	@ frame_needed = 0, uses_anonymous_args = 0
1806	push	{r4, r5, r6, r7, r8, r10, lr}
1807	mov	r7, r1
1808	ldr	r8, .L276+12
1809	sub	sp, sp, #20
1810	mov	r5, r0
1811	movs	r6, #0
1812	ldr	r10, .L276+16
1813.L267:
1814	cmp	r6, r7
1815	bne	.L272
1816	movs	r0, #0
1817	add	sp, sp, #20
1818	@ sp needed
1819	pop	{r4, r5, r6, r7, r8, r10, pc}
1820.L272:
1821	subs	r3, r7, r6
1822	add	r2, sp, #8
1823	uxtb	r3, r3
1824	movs	r1, #0
1825	mov	r0, r5
1826	str	r3, [sp]
1827	add	r3, sp, #12
1828	bl	LogAddr2PhyAddr
1829	ldr	r3, [sp, #12]
1830	ldrb	r2, [r8]	@ zero_extendqisi2
1831	cmp	r2, r3
1832	bhi	.L268
1833	mov	r3, #-1
1834	str	r3, [r5]
1835.L269:
1836	adds	r6, r6, #1
1837	adds	r5, r5, #36
1838	b	.L267
1839.L268:
1840	ldrb	r4, [r10, r3]	@ zero_extendqisi2
1841	lsls	r3, r3, #4
1842	ldr	r2, .L276
1843	mov	r0, r4
1844	strb	r4, [r2, r3]
1845	bl	NandcWaitFlashReady
1846	mov	r0, r4
1847	bl	NandcFlashCs
1848	movs	r2, #0
1849	ldr	r1, [sp, #8]
1850	mov	r0, r4
1851	bl	FlashEraseCmd
1852	mov	r0, r4
1853	bl	NandcWaitFlashReady
1854	ldr	r1, [sp, #8]
1855	mov	r0, r4
1856	bl	FlashReadStatus
1857	ldr	r3, .L276+4
1858	sbfx	r0, r0, #0, #1
1859	str	r0, [r5]
1860	movs	r2, #0
1861	ldr	r1, [sp, #8]
1862	mov	r0, r4
1863	ldr	r3, [r3]
1864	add	r1, r1, r3
1865	bl	FlashEraseCmd
1866	mov	r0, r4
1867	bl	NandcWaitFlashReady
1868	ldr	r1, [sp, #8]
1869	mov	r0, r4
1870	bl	FlashReadStatus
1871	lsls	r3, r0, #31
1872	itt	mi
1873	movmi	r3, #-1
1874	strmi	r3, [r5]
1875	ldr	r3, [r5]
1876	adds	r3, r3, #1
1877	bne	.L271
1878	ldr	r1, [sp, #8]
1879	ldr	r0, .L276+8
1880	bl	printf
1881.L271:
1882	mov	r0, r4
1883	bl	NandcFlashDeCs
1884	b	.L269
1885.L277:
1886	.align	2
1887.L276:
1888	.word	.LANCHOR23
1889	.word	.LANCHOR4
1890	.word	.LC1
1891	.word	.LANCHOR26
1892	.word	.LANCHOR27
1893	.size	FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
1894	.section	.text.FlashEraseBlocks,"ax",%progbits
1895	.align	1
1896	.global	FlashEraseBlocks
1897	.syntax unified
1898	.thumb
1899	.thumb_func
1900	.fpu softvfp
1901	.type	FlashEraseBlocks, %function
1902FlashEraseBlocks:
1903	@ args = 0, pretend = 0, frame = 16
1904	@ frame_needed = 0, uses_anonymous_args = 0
1905	ldr	r3, .L305
1906	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1907	mov	r8, r0
1908	sub	sp, sp, #24
1909	mov	fp, r1
1910	mov	r7, r2
1911	ldrb	r4, [r3]	@ zero_extendqisi2
1912	cbnz	r4, .L279
1913	ldr	r10, .L305+8
1914.L280:
1915	cmp	r4, r7
1916	bcc	.L289
1917	ldr	r5, .L305+4
1918	movs	r4, #0
1919	ldr	r6, .L305+8
1920.L290:
1921	ldr	r3, .L305+12
1922	ldrb	r3, [r3]	@ zero_extendqisi2
1923	cmp	r4, r3
1924	bcc	.L292
1925	movs	r0, #0
1926	b	.L278
1927.L279:
1928	mov	r1, r2
1929	bl	FlashEraseSLc2KBlocks
1930.L278:
1931	add	sp, sp, #24
1932	@ sp needed
1933	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1934.L289:
1935	movs	r5, #36
1936	add	r2, sp, #16
1937	muls	r5, r4, r5
1938	movs	r1, #0
1939	add	r3, r8, r5
1940	str	r3, [sp, #12]
1941	subs	r3, r7, r4
1942	uxtb	r3, r3
1943	ldr	r0, [sp, #12]
1944	str	r3, [sp]
1945	add	r3, sp, #20
1946	bl	LogAddr2PhyAddr
1947	ldr	r3, .L305+12
1948	mov	r6, r0
1949	ldr	r0, [sp, #20]
1950	ldrb	r3, [r3]	@ zero_extendqisi2
1951	cmp	r3, r0
1952	bhi	.L282
1953	mov	r3, #-1
1954	str	r3, [r8, r5]
1955.L283:
1956	adds	r4, r4, #1
1957	b	.L280
1958.L282:
1959	ldr	r3, .L305+16
1960	ldrb	r3, [r3]	@ zero_extendqisi2
1961	cmp	r3, #0
1962	add	r3, r10, r0, lsl #4
1963	it	eq
1964	moveq	r6, #0
1965	ldr	r3, [r3, #8]
1966	cbz	r3, .L285
1967	uxtb	r0, r0
1968	bl	FlashWaitCmdDone
1969.L285:
1970	ldr	r1, [sp, #20]
1971	ldr	r0, [sp, #12]
1972	lsls	r2, r1, #4
1973	add	r3, r10, r2
1974	str	r0, [r3, #8]
1975	movs	r0, #0
1976	str	r0, [r3, #12]
1977	ldr	r0, [sp, #16]
1978	str	r0, [r3, #4]
1979	cbz	r6, .L286
1980	adds	r5, r5, #36
1981	add	r5, r5, r8
1982	str	r5, [r3, #12]
1983.L286:
1984	ldr	r3, .L305+20
1985	ldrb	r5, [r3, r1]	@ zero_extendqisi2
1986	mov	r0, r5
1987	strb	r5, [r10, r2]
1988	bl	NandcFlashCs
1989	cmp	fp, #1
1990	mov	r0, r5
1991	bne	.L287
1992	ldr	r3, .L305+4
1993	ldrb	r3, [r3]	@ zero_extendqisi2
1994	cbz	r3, .L287
1995	bl	flash_enter_slc_mode
1996.L288:
1997	ldr	r3, .L305+24
1998	mov	r0, r5
1999	ldr	r2, [sp, #20]
2000	add	r4, r4, r6
2001	ldr	r1, [sp, #16]
2002	ldr	r2, [r3, r2, lsl #2]
2003	adds	r2, r2, #0
2004	it	ne
2005	movne	r2, #1
2006	bl	FlashWaitReadyEN
2007	mov	r2, r6
2008	ldr	r1, [sp, #16]
2009	mov	r0, r5
2010	bl	FlashEraseCmd
2011	mov	r0, r5
2012	bl	NandcFlashDeCs
2013	b	.L283
2014.L287:
2015	bl	flash_exit_slc_mode
2016	b	.L288
2017.L292:
2018	uxtb	r0, r4
2019	bl	FlashWaitCmdDone
2020	cmp	fp, #1
2021	bne	.L291
2022	ldrb	r3, [r5]	@ zero_extendqisi2
2023	cbz	r3, .L291
2024	lsls	r3, r4, #4
2025	ldrb	r0, [r6, r3]	@ zero_extendqisi2
2026	bl	flash_exit_slc_mode
2027.L291:
2028	adds	r4, r4, #1
2029	b	.L290
2030.L306:
2031	.align	2
2032.L305:
2033	.word	.LANCHOR2
2034	.word	.LANCHOR16
2035	.word	.LANCHOR23
2036	.word	.LANCHOR26
2037	.word	.LANCHOR28
2038	.word	.LANCHOR27
2039	.word	.LANCHOR18
2040	.size	FlashEraseBlocks, .-FlashEraseBlocks
2041	.section	.text.FlashReadDpCmd,"ax",%progbits
2042	.align	1
2043	.global	FlashReadDpCmd
2044	.syntax unified
2045	.thumb
2046	.thumb_func
2047	.fpu softvfp
2048	.type	FlashReadDpCmd, %function
2049FlashReadDpCmd:
2050	@ args = 0, pretend = 0, frame = 0
2051	@ frame_needed = 0, uses_anonymous_args = 0
2052	ldr	r3, .L313
2053	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2054	mov	r8, r1
2055	ldr	lr, .L313+8
2056	uxtb	fp, r2
2057	lsr	r10, r2, #8
2058	lsrs	r5, r2, #16
2059	ldr	r4, [r3, r0, lsl #3]
2060	add	r3, r3, r0, lsl #3
2061	ldr	r2, [lr]
2062	mov	r7, r0
2063	ldrb	r6, [r3, #4]	@ zero_extendqisi2
2064	uxtb	ip, r8
2065	ldr	r3, .L313+4
2066	lsr	r0, r8, #8
2067	ldrb	r2, [r2, #7]	@ zero_extendqisi2
2068	ldrb	r1, [r3, #16]	@ zero_extendqisi2
2069	lsls	r6, r6, #8
2070	cmp	r1, #1
2071	lsr	r1, r8, #16
2072	bne	.L308
2073	cmp	r2, #1
2074	ittt	eq
2075	addeq	r2, r4, r6
2076	moveq	lr, #38
2077	streq	lr, [r2, #2056]
2078	add	r4, r4, r6
2079	ldrb	r2, [r3, #8]	@ zero_extendqisi2
2080	movs	r6, #0
2081	str	r2, [r4, #2056]
2082	ldrb	r3, [r3, #9]	@ zero_extendqisi2
2083	str	r6, [r4, #2052]
2084	str	r6, [r4, #2052]
2085	str	ip, [r4, #2052]
2086	str	r0, [r4, #2052]
2087	mov	r0, r7
2088	str	r1, [r4, #2052]
2089	str	r3, [r4, #2056]
2090	bl	NandcWaitFlashReady
2091	str	r6, [r4, #2056]
2092	str	r6, [r4, #2052]
2093	str	r6, [r4, #2052]
2094.L312:
2095	movs	r3, #48
2096	str	fp, [r4, #2052]
2097	mov	r1, r8
2098	str	r10, [r4, #2052]
2099	mov	r0, r7
2100	str	r5, [r4, #2052]
2101	str	r3, [r4, #2056]
2102	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
2103	b	FlashSetRandomizer
2104.L308:
2105	cmp	r2, #1
2106	ittt	eq
2107	addeq	r2, r4, r6
2108	moveq	lr, #38
2109	streq	lr, [r2, #2056]
2110	add	r4, r4, r6
2111	ldrb	r2, [r3, #8]	@ zero_extendqisi2
2112	str	r2, [r4, #2056]
2113	ldrb	r3, [r3, #9]	@ zero_extendqisi2
2114	str	ip, [r4, #2052]
2115	str	r0, [r4, #2052]
2116	str	r1, [r4, #2052]
2117	str	r3, [r4, #2056]
2118	b	.L312
2119.L314:
2120	.align	2
2121.L313:
2122	.word	.LANCHOR0
2123	.word	.LANCHOR8
2124	.word	.LANCHOR7
2125	.size	FlashReadDpCmd, .-FlashReadDpCmd
2126	.section	.text.ftl_flash_de_init,"ax",%progbits
2127	.align	1
2128	.global	ftl_flash_de_init
2129	.syntax unified
2130	.thumb
2131	.thumb_func
2132	.fpu softvfp
2133	.type	ftl_flash_de_init, %function
2134ftl_flash_de_init:
2135	@ args = 0, pretend = 0, frame = 0
2136	@ frame_needed = 0, uses_anonymous_args = 0
2137	push	{r4, lr}
2138	movs	r0, #0
2139	bl	NandcWaitFlashReady
2140	bl	FlashSetReadRetryDefault
2141	ldr	r3, .L325
2142	ldr	r0, [r3]
2143	cbz	r0, .L316
2144	movs	r0, #0
2145	bl	flash_enter_slc_mode
2146.L317:
2147	ldr	r4, .L325+4
2148	ldrb	r3, [r4]	@ zero_extendqisi2
2149	cbz	r3, .L318
2150	ldr	r3, .L325+8
2151	ldrb	r3, [r3]	@ zero_extendqisi2
2152	lsls	r3, r3, #31
2153	bpl	.L318
2154	movs	r0, #1
2155	bl	FlashSetInterfaceMode
2156	movs	r0, #1
2157	bl	NandcSetMode
2158	movs	r3, #0
2159	strb	r3, [r4]
2160.L318:
2161	ldr	r3, .L325+12
2162	movs	r0, #0
2163	ldr	r3, [r3]
2164	str	r0, [r3, #336]
2165	pop	{r4, pc}
2166.L316:
2167	bl	flash_exit_slc_mode
2168	b	.L317
2169.L326:
2170	.align	2
2171.L325:
2172	.word	.LANCHOR29
2173	.word	.LANCHOR30
2174	.word	.LANCHOR25
2175	.word	.LANCHOR0
2176	.size	ftl_flash_de_init, .-ftl_flash_de_init
2177	.section	.text.NandcRandmzSel,"ax",%progbits
2178	.align	1
2179	.global	NandcRandmzSel
2180	.syntax unified
2181	.thumb
2182	.thumb_func
2183	.fpu softvfp
2184	.type	NandcRandmzSel, %function
2185NandcRandmzSel:
2186	@ args = 0, pretend = 0, frame = 0
2187	@ frame_needed = 0, uses_anonymous_args = 0
2188	@ link register save eliminated.
2189	ldr	r3, .L328
2190	ldr	r3, [r3, r0, lsl #3]
2191	str	r1, [r3, #336]
2192	bx	lr
2193.L329:
2194	.align	2
2195.L328:
2196	.word	.LANCHOR0
2197	.size	NandcRandmzSel, .-NandcRandmzSel
2198	.section	.text.NandcTimeCfg,"ax",%progbits
2199	.align	1
2200	.global	NandcTimeCfg
2201	.syntax unified
2202	.thumb
2203	.thumb_func
2204	.fpu softvfp
2205	.type	NandcTimeCfg, %function
2206NandcTimeCfg:
2207	@ args = 0, pretend = 0, frame = 0
2208	@ frame_needed = 0, uses_anonymous_args = 0
2209	@ link register save eliminated.
2210	ldr	r3, .L335
2211	cmp	r0, #35
2212	ldr	r3, [r3]
2213	bhi	.L331
2214	movw	r2, #4193
2215.L334:
2216	str	r2, [r3, #4]
2217	bx	lr
2218.L331:
2219	cmp	r0, #99
2220	ite	hi
2221	movwhi	r2, #8322
2222	movwls	r2, #4225
2223	b	.L334
2224.L336:
2225	.align	2
2226.L335:
2227	.word	.LANCHOR19
2228	.size	NandcTimeCfg, .-NandcTimeCfg
2229	.section	.text.FlashTimingCfg,"ax",%progbits
2230	.align	1
2231	.global	FlashTimingCfg
2232	.syntax unified
2233	.thumb
2234	.thumb_func
2235	.fpu softvfp
2236	.type	FlashTimingCfg, %function
2237FlashTimingCfg:
2238	@ args = 0, pretend = 0, frame = 0
2239	@ frame_needed = 0, uses_anonymous_args = 0
2240	@ link register save eliminated.
2241	ldr	r3, .L338
2242	ldrb	r0, [r3, #21]	@ zero_extendqisi2
2243	b	NandcTimeCfg
2244.L339:
2245	.align	2
2246.L338:
2247	.word	.LANCHOR31
2248	.size	FlashTimingCfg, .-FlashTimingCfg
2249	.section	.text.NandcBchSel,"ax",%progbits
2250	.align	1
2251	.global	NandcBchSel
2252	.syntax unified
2253	.thumb
2254	.thumb_func
2255	.fpu softvfp
2256	.type	NandcBchSel, %function
2257NandcBchSel:
2258	@ args = 0, pretend = 0, frame = 0
2259	@ frame_needed = 0, uses_anonymous_args = 0
2260	ldr	r3, .L348
2261	movs	r1, #0
2262	push	{r4, lr}
2263	movs	r4, #16
2264	cmp	r0, r4
2265	ldr	r2, [r3]
2266	mov	r3, #1
2267	str	r3, [r2, #8]
2268	ldr	r3, .L348+4
2269	str	r0, [r3]
2270	mov	r3, r1
2271	bfi	r3, r4, #8, #8
2272	bfi	r3, r1, #18, #1
2273	bne	.L341
2274.L344:
2275	bfc	r3, #4, #1
2276.L342:
2277	orr	r3, r3, #1
2278	str	r3, [r2, #12]
2279	pop	{r4, pc}
2280.L341:
2281	cmp	r0, #24
2282	bne	.L343
2283	orr	r3, r3, #16
2284	b	.L342
2285.L343:
2286	cmp	r0, #40
2287	orr	r3, r3, #262144
2288	orr	r3, r3, #16
2289	bne	.L342
2290	b	.L344
2291.L349:
2292	.align	2
2293.L348:
2294	.word	.LANCHOR19
2295	.word	.LANCHOR32
2296	.size	NandcBchSel, .-NandcBchSel
2297	.section	.text.FlashBchSel,"ax",%progbits
2298	.align	1
2299	.global	FlashBchSel
2300	.syntax unified
2301	.thumb
2302	.thumb_func
2303	.fpu softvfp
2304	.type	FlashBchSel, %function
2305FlashBchSel:
2306	@ args = 0, pretend = 0, frame = 0
2307	@ frame_needed = 0, uses_anonymous_args = 0
2308	@ link register save eliminated.
2309	ldr	r3, .L351
2310	strb	r0, [r3]
2311	b	NandcBchSel
2312.L352:
2313	.align	2
2314.L351:
2315	.word	.LANCHOR33
2316	.size	FlashBchSel, .-FlashBchSel
2317	.section	.text.ftl_nandc_get_irq_status,"ax",%progbits
2318	.align	1
2319	.global	ftl_nandc_get_irq_status
2320	.syntax unified
2321	.thumb
2322	.thumb_func
2323	.fpu softvfp
2324	.type	ftl_nandc_get_irq_status, %function
2325ftl_nandc_get_irq_status:
2326	@ args = 0, pretend = 0, frame = 0
2327	@ frame_needed = 0, uses_anonymous_args = 0
2328	@ link register save eliminated.
2329	ldr	r0, [r0, #372]
2330	bx	lr
2331	.size	ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status
2332	.section	.text.rk_nandc_flash_ready,"ax",%progbits
2333	.align	1
2334	.global	rk_nandc_flash_ready
2335	.syntax unified
2336	.thumb
2337	.thumb_func
2338	.fpu softvfp
2339	.type	rk_nandc_flash_ready, %function
2340rk_nandc_flash_ready:
2341	@ args = 0, pretend = 0, frame = 0
2342	@ frame_needed = 0, uses_anonymous_args = 0
2343	@ link register save eliminated.
2344	bx	lr
2345	.size	rk_nandc_flash_ready, .-rk_nandc_flash_ready
2346	.section	.text.NandcIqrWaitFlashReady,"ax",%progbits
2347	.align	1
2348	.global	NandcIqrWaitFlashReady
2349	.syntax unified
2350	.thumb
2351	.thumb_func
2352	.fpu softvfp
2353	.type	NandcIqrWaitFlashReady, %function
2354NandcIqrWaitFlashReady:
2355	@ args = 0, pretend = 0, frame = 0
2356	@ frame_needed = 0, uses_anonymous_args = 0
2357	@ link register save eliminated.
2358	bx	lr
2359	.size	NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
2360	.section	.text.rk_nandc_flash_xfer_completed,"ax",%progbits
2361	.align	1
2362	.global	rk_nandc_flash_xfer_completed
2363	.syntax unified
2364	.thumb
2365	.thumb_func
2366	.fpu softvfp
2367	.type	rk_nandc_flash_xfer_completed, %function
2368rk_nandc_flash_xfer_completed:
2369	@ args = 0, pretend = 0, frame = 0
2370	@ frame_needed = 0, uses_anonymous_args = 0
2371	@ link register save eliminated.
2372	bx	lr
2373	.size	rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
2374	.section	.text.NandcSendDumpDataStart,"ax",%progbits
2375	.align	1
2376	.global	NandcSendDumpDataStart
2377	.syntax unified
2378	.thumb
2379	.thumb_func
2380	.fpu softvfp
2381	.type	NandcSendDumpDataStart, %function
2382NandcSendDumpDataStart:
2383	@ args = 0, pretend = 0, frame = 8
2384	@ frame_needed = 0, uses_anonymous_args = 0
2385	@ link register save eliminated.
2386	ldr	r2, [r0, #16]
2387	sub	sp, sp, #8
2388	ldr	r3, .L358
2389	str	r2, [sp, #4]
2390	ldr	r2, [sp, #4]
2391	bfc	r2, #2, #1
2392	str	r2, [sp, #4]
2393	ldr	r2, [sp, #4]
2394	str	r2, [r0, #16]
2395	str	r3, [r0, #8]
2396	orr	r3, r3, #4
2397	str	r3, [r0, #8]
2398	add	sp, sp, #8
2399	@ sp needed
2400	bx	lr
2401.L359:
2402	.align	2
2403.L358:
2404	.word	538969130
2405	.size	NandcSendDumpDataStart, .-NandcSendDumpDataStart
2406	.section	.text.NandcSendDumpDataDone,"ax",%progbits
2407	.align	1
2408	.global	NandcSendDumpDataDone
2409	.syntax unified
2410	.thumb
2411	.thumb_func
2412	.fpu softvfp
2413	.type	NandcSendDumpDataDone, %function
2414NandcSendDumpDataDone:
2415	@ args = 0, pretend = 0, frame = 8
2416	@ frame_needed = 0, uses_anonymous_args = 0
2417	@ link register save eliminated.
2418	sub	sp, sp, #8
2419.L361:
2420	ldr	r3, [r0, #8]
2421	str	r3, [sp, #4]
2422	ldr	r3, [sp, #4]
2423	lsls	r3, r3, #11
2424	bpl	.L361
2425	add	sp, sp, #8
2426	@ sp needed
2427	bx	lr
2428	.size	NandcSendDumpDataDone, .-NandcSendDumpDataDone
2429	.section	.text.NandcXferStart,"ax",%progbits
2430	.align	1
2431	.global	NandcXferStart
2432	.syntax unified
2433	.thumb
2434	.thumb_func
2435	.fpu softvfp
2436	.type	NandcXferStart, %function
2437NandcXferStart:
2438	@ args = 8, pretend = 0, frame = 24
2439	@ frame_needed = 0, uses_anonymous_args = 0
2440	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2441	sub	sp, sp, #24
2442	mov	r7, r1
2443	ldr	r1, [sp, #60]
2444	str	r2, [sp, #4]
2445	ldr	fp, [sp, #56]
2446	cmp	r1, #0
2447	bne	.L378
2448	adds	r5, fp, #0
2449	it	ne
2450	movne	r5, #1
2451.L365:
2452	ldr	r1, .L383
2453	movs	r4, #0
2454	ldr	r6, [r1, r0, lsl #3]
2455	add	r1, r1, r0, lsl #3
2456	movs	r0, #16
2457	ldr	r8, [r6, #12]
2458	ldrb	r1, [r1, #4]	@ zero_extendqisi2
2459	bfi	r8, r0, #8, #8
2460	bfi	r8, r4, #3, #1
2461	bfi	r4, r7, #1, #1
2462	bfi	r8, r1, #5, #3
2463	orr	r4, r4, #8
2464	movs	r1, #1
2465	bfi	r4, r1, #5, #2
2466	lsrs	r3, r3, r1
2467	orr	r4, r4, #536870912
2468	orr	r4, r4, #1024
2469	bfi	r4, r3, #4, #1
2470	ldr	r3, .L383+4
2471	ldr	r3, [r3]
2472	cmp	r3, #3
2473	bls	.L366
2474	ldr	r3, [r6, #16]
2475	str	r3, [sp, #20]
2476	ldr	r3, [sp, #20]
2477	bfc	r3, #2, #1
2478	str	r3, [sp, #20]
2479	cmp	r5, #0
2480	beq	.L367
2481	ldr	r5, .L383+8
2482	cmp	r7, #0
2483	bne	.L368
2484.L376:
2485	ldr	r2, [sp, #4]
2486	adds	r2, r2, #1
2487	asrs	r2, r2, #1
2488	bfi	r4, r2, #22, #6
2489	cmp	fp, #0
2490	beq	.L369
2491	mov	r0, fp
2492.L370:
2493	ldr	r3, [r5, #4]
2494	add	r1, r0, #63
2495	ubfx	r10, r4, #22, #5
2496	bic	r1, r1, #63
2497	str	r0, [r5, #8]
2498	add	r1, r1, r10, lsl #10
2499	str	r0, [r5, #16]
2500	bic	r0, r0, #63
2501	str	r3, [r5, #12]
2502	clz	r7, r7
2503	str	r3, [r5, #20]
2504	lsrs	r7, r7, #5
2505	bl	flush_dcache_range
2506	ldr	r0, [r5, #20]
2507	add	r1, r0, #63
2508	bic	r0, r0, #63
2509	bic	r1, r1, #63
2510	add	r1, r1, r10, lsl #7
2511	bl	flush_dcache_range
2512	movs	r3, #1
2513	movs	r2, #16
2514	str	r3, [r5, #24]
2515	tst	fp, #3
2516	ldr	r3, [r5, #16]
2517	str	r3, [r6, #20]
2518	ldr	r3, [r5, #20]
2519	str	r3, [r6, #24]
2520	mov	r3, #0
2521	str	r3, [sp, #20]
2522	ldr	r3, [sp, #20]
2523	bfi	r3, r2, #9, #5
2524	it	eq
2525	moveq	r2, #2
2526	str	r3, [sp, #20]
2527	ldr	r3, [sp, #20]
2528	orr	r3, r3, #448
2529	str	r3, [sp, #20]
2530	ittt	eq
2531	ldreq	r3, [sp, #20]
2532	bfieq	r3, r2, #3, #3
2533	streq	r3, [sp, #20]
2534	ldr	r3, [sp, #20]
2535	orr	r3, r3, #4
2536	str	r3, [sp, #20]
2537	ldr	r3, [sp, #20]
2538	bfi	r3, r7, #1, #1
2539	str	r3, [sp, #20]
2540	ldr	r3, [sp, #20]
2541	orr	r3, r3, #1
2542	str	r3, [sp, #20]
2543.L367:
2544	ldr	r3, [sp, #20]
2545	str	r3, [r6, #16]
2546.L366:
2547	str	r8, [r6, #12]
2548	str	r4, [r6, #8]
2549	orr	r4, r4, #4
2550	str	r4, [r6, #8]
2551	add	sp, sp, #24
2552	@ sp needed
2553	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2554.L378:
2555	movs	r5, #1
2556	b	.L365
2557.L368:
2558	ldr	r3, .L383+12
2559	movs	r1, #0
2560	ldr	lr, [r5, #4]
2561	mov	r0, r1
2562	ldr	r3, [r3]
2563	cmp	r3, #25
2564	ite	cc
2565	movcc	r3, #64
2566	movcs	r3, #128
2567	str	r3, [sp, #8]
2568	ldr	r3, [sp, #4]
2569	lsrs	r3, r3, #1
2570	str	r3, [sp, #12]
2571	ldr	r3, [sp, #60]
2572.L372:
2573	ldr	r2, [sp, #12]
2574	cmp	r0, r2
2575	bcs	.L376
2576	ldr	r2, [sp, #60]
2577	bic	r10, r1, #3
2578	cbz	r2, .L373
2579	ldrh	ip, [r3]
2580	adds	r3, r3, #4
2581	ldrh	r2, [r3, #-2]
2582	orr	ip, ip, r2, lsl #16
2583	str	ip, [lr, r10]
2584.L374:
2585	ldr	r2, [sp, #8]
2586	adds	r0, r0, #1
2587	add	r1, r1, r2
2588	b	.L372
2589.L373:
2590	mov	r2, #-1
2591	str	r2, [lr, r10]
2592	b	.L374
2593.L369:
2594	ldr	r3, .L383+8
2595	ldr	r0, [r3]
2596	b	.L370
2597.L384:
2598	.align	2
2599.L383:
2600	.word	.LANCHOR0
2601	.word	.LANCHOR34
2602	.word	.LANCHOR35
2603	.word	.LANCHOR32
2604	.size	NandcXferStart, .-NandcXferStart
2605	.section	.text.NandcXferComp,"ax",%progbits
2606	.align	1
2607	.global	NandcXferComp
2608	.syntax unified
2609	.thumb
2610	.thumb_func
2611	.fpu softvfp
2612	.type	NandcXferComp, %function
2613NandcXferComp:
2614	@ args = 0, pretend = 0, frame = 8
2615	@ frame_needed = 0, uses_anonymous_args = 0
2616	ldr	r3, .L413
2617	push	{r0, r1, r4, lr}
2618	ldr	r1, [r3, r0, lsl #3]
2619	ldr	r3, .L413+4
2620	ldr	r0, [r3]
2621	cmp	r0, #3
2622	bls	.L406
2623	ldr	r3, [r1, #16]
2624	lsls	r2, r3, #29
2625	bpl	.L406
2626	ldr	r3, [r1, #16]
2627	tst	r3, #2
2628	ldr	r3, [r1, #8]
2629	str	r3, [sp]
2630	beq	.L393
2631.L389:
2632	ldr	r2, [r1, #28]
2633	ldr	r3, [sp]
2634	ubfx	r2, r2, #16, #5
2635	ubfx	r3, r3, #22, #6
2636	cmp	r2, r3
2637	bge	.L390
2638	cmp	r0, #5
2639	bls	.L389
2640	ldr	r3, [r1]
2641	str	r3, [sp, #4]
2642	ldr	r3, [sp, #4]
2643	lsls	r3, r3, #18
2644	bpl	.L389
2645	ldr	r3, [sp, #4]
2646	lsls	r4, r3, #14
2647	bpl	.L389
2648.L390:
2649	ldr	r3, .L413+8
2650	movs	r2, #0
2651	str	r2, [r3, #24]
2652.L385:
2653	add	sp, sp, #8
2654	@ sp needed
2655	pop	{r4, pc}
2656.L394:
2657	ldr	r3, [r1, #8]
2658	str	r3, [sp]
2659.L393:
2660	ldr	r3, [sp]
2661	lsls	r2, r3, #11
2662	bpl	.L394
2663	ldr	r4, .L413+12
2664	ldr	r2, [r4]
2665	cbz	r2, .L395
2666	mov	r0, r1
2667	bl	NandcSendDumpDataStart
2668.L395:
2669	ldr	r3, [r4]
2670	cmp	r3, #0
2671	beq	.L390
2672	mov	r0, r1
2673	bl	NandcSendDumpDataDone
2674	b	.L390
2675.L406:
2676	ldr	r3, [r1, #8]
2677	str	r3, [sp]
2678	ldr	r3, [sp]
2679	lsls	r3, r3, #11
2680	bpl	.L406
2681	b	.L385
2682.L414:
2683	.align	2
2684.L413:
2685	.word	.LANCHOR0
2686	.word	.LANCHOR34
2687	.word	.LANCHOR35
2688	.word	.LANCHOR36
2689	.size	NandcXferComp, .-NandcXferComp
2690	.section	.text.Ftl_log2,"ax",%progbits
2691	.align	1
2692	.global	Ftl_log2
2693	.syntax unified
2694	.thumb
2695	.thumb_func
2696	.fpu softvfp
2697	.type	Ftl_log2, %function
2698Ftl_log2:
2699	@ args = 0, pretend = 0, frame = 0
2700	@ frame_needed = 0, uses_anonymous_args = 0
2701	@ link register save eliminated.
2702	movs	r1, #0
2703	movs	r2, #1
2704.L416:
2705	cmp	r2, r0
2706	uxth	r3, r1
2707	add	r1, r1, #1
2708	bls	.L417
2709	subs	r0, r3, #1
2710	uxth	r0, r0
2711	bx	lr
2712.L417:
2713	lsls	r2, r2, #1
2714	b	.L416
2715	.size	Ftl_log2, .-Ftl_log2
2716	.section	.text.FtlPrintInfo,"ax",%progbits
2717	.align	1
2718	.global	FtlPrintInfo
2719	.syntax unified
2720	.thumb
2721	.thumb_func
2722	.fpu softvfp
2723	.type	FtlPrintInfo, %function
2724FtlPrintInfo:
2725	@ args = 0, pretend = 0, frame = 0
2726	@ frame_needed = 0, uses_anonymous_args = 0
2727	@ link register save eliminated.
2728	bx	lr
2729	.size	FtlPrintInfo, .-FtlPrintInfo
2730	.section	.text.FtlSysBlkNumInit,"ax",%progbits
2731	.align	1
2732	.global	FtlSysBlkNumInit
2733	.syntax unified
2734	.thumb
2735	.thumb_func
2736	.fpu softvfp
2737	.type	FtlSysBlkNumInit, %function
2738FtlSysBlkNumInit:
2739	@ args = 0, pretend = 0, frame = 0
2740	@ frame_needed = 0, uses_anonymous_args = 0
2741	@ link register save eliminated.
2742	ldr	r3, .L420
2743	cmp	r0, #24
2744	it	cc
2745	movcc	r0, #24
2746	ldr	r2, .L420+4
2747	str	r0, [r3]
2748	ldr	r3, .L420+8
2749	ldrh	r3, [r3]
2750	muls	r3, r0, r3
2751	str	r3, [r2]
2752	ldr	r2, .L420+12
2753	ldrh	r2, [r2]
2754	subs	r0, r2, r0
2755	ldr	r2, .L420+16
2756	strh	r0, [r2]	@ movhi
2757	movs	r0, #0
2758	ldr	r2, .L420+20
2759	ldr	r2, [r2]
2760	subs	r3, r2, r3
2761	ldr	r2, .L420+24
2762	str	r3, [r2]
2763	bx	lr
2764.L421:
2765	.align	2
2766.L420:
2767	.word	.LANCHOR37
2768	.word	.LANCHOR39
2769	.word	.LANCHOR38
2770	.word	.LANCHOR41
2771	.word	.LANCHOR40
2772	.word	.LANCHOR43
2773	.word	.LANCHOR42
2774	.size	FtlSysBlkNumInit, .-FtlSysBlkNumInit
2775	.global	__aeabi_idiv
2776	.section	.text.FtlConstantsInit,"ax",%progbits
2777	.align	1
2778	.global	FtlConstantsInit
2779	.syntax unified
2780	.thumb
2781	.thumb_func
2782	.fpu softvfp
2783	.type	FtlConstantsInit, %function
2784FtlConstantsInit:
2785	@ args = 0, pretend = 0, frame = 24
2786	@ frame_needed = 0, uses_anonymous_args = 0
2787	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2788	mov	r10, r0
2789	ldrh	r7, [r0, #8]
2790	sub	sp, sp, #24
2791	ldr	r3, .L449
2792	ldrh	r2, [r0, #10]
2793	ldrh	r6, [r0, #14]
2794	strh	r7, [r3]	@ movhi
2795	ldrh	r3, [r0, #12]
2796	ldr	r0, .L449+4
2797	ldr	r1, .L449+8
2798	ldr	r4, .L449+12
2799	strh	r6, [r0]	@ movhi
2800	str	r0, [sp, #20]
2801	ldr	r0, .L449+16
2802	strh	r3, [r1]	@ movhi
2803	movs	r1, #0
2804	strh	r2, [r4]	@ movhi
2805	str	r4, [sp, #8]
2806.L423:
2807	strb	r1, [r1, r0]
2808	adds	r1, r1, #1
2809	cmp	r1, #32
2810	bne	.L423
2811	ldrh	r0, [r10, #14]
2812	ldrh	r1, [r10, #20]
2813	cmp	r1, r0, lsr #8
2814	bcs	.L424
2815	uxtb	r8, r3
2816	lsl	r1, r8, #1
2817	uxtb	r1, r1
2818	str	r1, [sp, #4]
2819	subs	r1, r2, #1
2820	muls	r1, r3, r1
2821	str	r1, [sp, #12]
2822	movs	r1, #0
2823.L425:
2824	cmp	r1, r3
2825	bcs	.L427
2826	ldr	r4, [sp, #12]
2827	sub	fp, r1, r3
2828	uxtb	r0, r1
2829	adds	r5, r1, r4
2830	ldr	r4, .L449+16
2831	add	r4, r4, r5
2832	movs	r5, #0
2833	mov	lr, r4
2834	ldr	r4, .L449+16
2835	mov	ip, r5
2836	add	fp, fp, r4
2837	b	.L428
2838.L426:
2839	add	r4, r8, r0
2840	strb	r0, [fp, r5]
2841	str	r4, [sp, #16]
2842	add	ip, ip, #1
2843	ldrb	r4, [sp, #16]	@ zero_extendqisi2
2844	strb	r4, [lr, r5]
2845	ldr	r4, [sp, #4]
2846	add	r0, r0, r4
2847	uxtb	r0, r0
2848.L428:
2849	cmp	ip, r2
2850	add	r5, r5, r3
2851	bcc	.L426
2852	adds	r1, r1, #1
2853	b	.L425
2854.L427:
2855	ldr	r1, [sp, #8]
2856	lsls	r2, r2, #1
2857	lsrs	r6, r6, #1
2858	strh	r2, [r1]	@ movhi
2859	ldr	r2, .L449+4
2860	strh	r6, [r2]	@ movhi
2861.L424:
2862	ldr	r1, .L449+20
2863	movs	r2, #5
2864	cmp	r7, #1
2865	mov	r0, #0
2866	strh	r2, [r1]	@ movhi
2867	ldr	r2, .L449+24
2868	it	eq
2869	strheq	r7, [r1]	@ movhi
2870	ldr	r1, .L449+28
2871	strh	r0, [r2]	@ movhi
2872	mov	r0, #4352
2873	strh	r0, [r1]	@ movhi
2874	ldr	r0, .L449+32
2875	ldrb	r0, [r0]	@ zero_extendqisi2
2876	str	r0, [sp, #4]
2877	cbz	r0, .L430
2878	mov	r0, #384
2879	strh	r0, [r1]	@ movhi
2880.L430:
2881	str	r2, [sp, #16]
2882	ldr	r2, [sp, #8]
2883	ldr	r1, .L449+36
2884	ldrh	r6, [r10, #16]
2885	ldrh	r5, [r2]
2886	ldr	r2, [sp, #20]
2887	ldr	fp, .L449+116
2888	ldr	r8, .L449+120
2889	smulbb	r5, r5, r3
2890	ldrh	r4, [r2]
2891	strh	r6, [fp]	@ movhi
2892	uxth	r5, r5
2893	smulbb	r3, r3, r4
2894	strh	r5, [r1]	@ movhi
2895	smulbb	r0, r5, r6
2896	ldr	r1, .L449+40
2897	strh	r3, [r1]	@ movhi
2898	ldrh	r1, [r10, #18]
2899	ldr	r3, .L449+44
2900	str	r1, [sp, #12]
2901	strh	r1, [r3]	@ movhi
2902	ldr	r3, .L449+48
2903	strh	r0, [r3]	@ movhi
2904	ldrh	r3, [r10, #20]
2905	mov	r0, r3
2906	strh	r3, [r8]	@ movhi
2907	str	r3, [sp, #8]
2908	bl	Ftl_log2
2909	ldr	r3, [sp, #8]
2910	mov	r7, r0
2911	ldr	ip, .L449+124
2912	cmp	r4, #1024
2913	ldr	lr, .L449+128
2914	ldr	r2, [sp, #16]
2915	strh	r0, [ip]	@ movhi
2916	lsl	r0, r3, #9
2917	ldr	r1, [sp, #12]
2918	uxth	r0, r0
2919	strh	r0, [lr]	@ movhi
2920	lsr	r0, r0, #8
2921	ldr	lr, .L449+132
2922	mul	r1, r3, r1
2923	strh	r0, [lr]	@ movhi
2924	ldrh	lr, [r10, #26]
2925	mov	r10, ip
2926	ldr	r0, .L449+52
2927	strh	lr, [r0]	@ movhi
2928	mul	lr, r4, r5
2929	ldr	r0, .L449+56
2930	str	lr, [r0]
2931	itt	hi
2932	uxtbhi	r0, r4
2933	strhhi	r0, [r2]	@ movhi
2934	ldrh	r2, [r2]
2935	subs	r2, r4, r2
2936	muls	r2, r5, r2
2937	muls	r2, r3, r2
2938	muls	r6, r2, r6
2939	ldr	r2, .L449+60
2940	asrs	r6, r6, #11
2941	str	r6, [r2]
2942	ldr	r6, .L449+28
2943	ldrh	r0, [r6]
2944	lsls	r0, r0, #3
2945	bl	__aeabi_idiv
2946	uxth	r0, r0
2947	mov	r3, r6
2948	ldr	r6, .L449+64
2949	cmp	r0, #4
2950	itt	ls
2951	movls	r2, #4
2952	strhls	r2, [r6]	@ movhi
2953	ldr	r2, [sp, #4]
2954	it	hi
2955	strhhi	r0, [r6]	@ movhi
2956	cbz	r2, .L434
2957	mov	r2, #640
2958	strh	r2, [r3]	@ movhi
2959.L434:
2960	ldrh	r3, [r3]
2961	lsls	r4, r4, #6
2962	ldr	r2, .L449+68
2963	mov	r1, r5
2964	ldrh	r0, [r6]
2965	asrs	r3, r3, r7
2966	adds	r7, r7, #9
2967	asrs	r4, r4, r7
2968	ldr	r7, .L449+72
2969	adds	r3, r3, #2
2970	strh	r3, [r2]	@ movhi
2971	ldr	r3, .L449+76
2972	strh	r4, [r3]	@ movhi
2973	uxth	r4, r4
2974	mul	r3, r4, r5
2975	adds	r4, r4, #8
2976	str	r3, [r7]
2977	bl	__aeabi_uidiv
2978	uxtah	r0, r4, r0
2979	ldr	r4, .L449+80
2980	cmp	r5, #1
2981	ldr	r5, .L449+84
2982	it	eq
2983	addeq	r0, r0, #4
2984	str	r0, [r4]
2985	ldrh	r0, [r4]
2986	bl	FtlSysBlkNumInit
2987	ldr	r2, [r4]
2988	movs	r0, #24
2989	ldr	r3, .L449+88
2990	ldrb	r5, [r5]	@ zero_extendqisi2
2991	str	r2, [r3]
2992	ldr	r3, .L449+92
2993	ldr	r2, [r3]
2994	ldrh	r3, [fp]
2995	lsls	r2, r2, #2
2996	muls	r3, r2, r3
2997	ldrh	r2, [r10]
2998	adds	r2, r2, #9
2999	lsrs	r3, r3, r2
3000	ldr	r2, .L449+96
3001	adds	r3, r3, #2
3002	uxth	r3, r3
3003	strh	r3, [r2]	@ movhi
3004	ldr	r2, .L449+100
3005	strh	r0, [r2]	@ movhi
3006	movs	r0, #0
3007	ldr	r2, .L449+104
3008	str	r0, [r2]
3009	ldrh	r0, [r6]
3010	adds	r2, r0, #3
3011	strh	r2, [r6]	@ movhi
3012	ldr	r2, [r7]
3013	adds	r4, r2, #3
3014	str	r4, [r7]
3015	cbz	r5, .L437
3016	adds	r2, r2, #5
3017	adds	r0, r0, #4
3018	strh	r0, [r6]	@ movhi
3019.L448:
3020	str	r2, [r7]
3021.L438:
3022	ldr	r1, .L449+108
3023	movs	r2, #0
3024	strh	r2, [r1]	@ movhi
3025	ldr	r2, .L449+112
3026	ldrh	r0, [r2]
3027	lsrs	r2, r0, #3
3028	add	r2, r2, r0, lsl #1
3029	movs	r0, #0
3030	adds	r2, r2, #52
3031	add	r3, r2, r3, lsl #2
3032	ldrh	r2, [r8]
3033	cmp	r3, r2, lsl #9
3034	itt	cc
3035	movcc	r3, #1
3036	strhcc	r3, [r1]	@ movhi
3037	add	sp, sp, #24
3038	@ sp needed
3039	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3040.L437:
3041	cmp	r4, #7
3042	bhi	.L438
3043	movs	r2, #8
3044	b	.L448
3045.L450:
3046	.align	2
3047.L449:
3048	.word	.LANCHOR44
3049	.word	.LANCHOR41
3050	.word	.LANCHOR46
3051	.word	.LANCHOR45
3052	.word	.LANCHOR47
3053	.word	.LANCHOR48
3054	.word	.LANCHOR49
3055	.word	.LANCHOR50
3056	.word	.LANCHOR2
3057	.word	.LANCHOR38
3058	.word	.LANCHOR51
3059	.word	.LANCHOR53
3060	.word	.LANCHOR54
3061	.word	.LANCHOR59
3062	.word	.LANCHOR43
3063	.word	.LANCHOR60
3064	.word	.LANCHOR61
3065	.word	.LANCHOR62
3066	.word	.LANCHOR64
3067	.word	.LANCHOR63
3068	.word	.LANCHOR37
3069	.word	.LANCHOR16
3070	.word	.LANCHOR65
3071	.word	.LANCHOR42
3072	.word	.LANCHOR66
3073	.word	.LANCHOR67
3074	.word	.LANCHOR68
3075	.word	.LANCHOR69
3076	.word	.LANCHOR40
3077	.word	.LANCHOR52
3078	.word	.LANCHOR55
3079	.word	.LANCHOR56
3080	.word	.LANCHOR57
3081	.word	.LANCHOR58
3082	.size	FtlConstantsInit, .-FtlConstantsInit
3083	.section	.text.IsBlkInVendorPart,"ax",%progbits
3084	.align	1
3085	.global	IsBlkInVendorPart
3086	.syntax unified
3087	.thumb
3088	.thumb_func
3089	.fpu softvfp
3090	.type	IsBlkInVendorPart, %function
3091IsBlkInVendorPart:
3092	@ args = 0, pretend = 0, frame = 0
3093	@ frame_needed = 0, uses_anonymous_args = 0
3094	@ link register save eliminated.
3095	ldr	r3, .L458
3096	ldrh	r3, [r3]
3097	cbz	r3, .L457
3098	ldr	r3, .L458+4
3099	ldr	r2, .L458+8
3100	ldr	r3, [r3]
3101	ldrh	r2, [r2]
3102	add	r2, r3, r2, lsl #1
3103.L453:
3104	cmp	r3, r2
3105	bne	.L454
3106.L457:
3107	movs	r0, #0
3108	bx	lr
3109.L454:
3110	ldrh	r1, [r3], #2
3111	cmp	r0, r1
3112	bne	.L453
3113	movs	r0, #1
3114	bx	lr
3115.L459:
3116	.align	2
3117.L458:
3118	.word	.LANCHOR70
3119	.word	.LANCHOR71
3120	.word	.LANCHOR61
3121	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
3122	.section	.text.FtlCacheMetchLpa,"ax",%progbits
3123	.align	1
3124	.global	FtlCacheMetchLpa
3125	.syntax unified
3126	.thumb
3127	.thumb_func
3128	.fpu softvfp
3129	.type	FtlCacheMetchLpa, %function
3130FtlCacheMetchLpa:
3131	@ args = 0, pretend = 0, frame = 0
3132	@ frame_needed = 0, uses_anonymous_args = 0
3133	ldr	r3, .L468
3134	push	{r4, r5, r6, lr}
3135	ldr	r3, [r3]
3136	cbz	r3, .L467
3137	ldr	r2, .L468+4
3138	movs	r6, #36
3139	ldr	r5, [r2]
3140	movs	r2, #0
3141.L463:
3142	mla	r4, r6, r2, r5
3143	ldr	r4, [r4, #16]
3144	cmp	r4, r0
3145	bcc	.L462
3146	cmp	r4, r1
3147	bls	.L465
3148.L462:
3149	adds	r2, r2, #1
3150	cmp	r3, r2
3151	bne	.L463
3152.L467:
3153	movs	r0, #0
3154	pop	{r4, r5, r6, pc}
3155.L465:
3156	movs	r0, #1
3157	pop	{r4, r5, r6, pc}
3158.L469:
3159	.align	2
3160.L468:
3161	.word	.LANCHOR72
3162	.word	.LANCHOR73
3163	.size	FtlCacheMetchLpa, .-FtlCacheMetchLpa
3164	.section	.text.FtlGetCap,"ax",%progbits
3165	.align	1
3166	.global	FtlGetCap
3167	.syntax unified
3168	.thumb
3169	.thumb_func
3170	.fpu softvfp
3171	.type	FtlGetCap, %function
3172FtlGetCap:
3173	@ args = 0, pretend = 0, frame = 0
3174	@ frame_needed = 0, uses_anonymous_args = 0
3175	@ link register save eliminated.
3176	ldr	r3, .L471
3177	ldr	r0, [r3]
3178	bx	lr
3179.L472:
3180	.align	2
3181.L471:
3182	.word	.LANCHOR68
3183	.size	FtlGetCap, .-FtlGetCap
3184	.section	.text.FtlGetCapacity,"ax",%progbits
3185	.align	1
3186	.global	FtlGetCapacity
3187	.syntax unified
3188	.thumb
3189	.thumb_func
3190	.fpu softvfp
3191	.type	FtlGetCapacity, %function
3192FtlGetCapacity:
3193	@ args = 0, pretend = 0, frame = 0
3194	@ frame_needed = 0, uses_anonymous_args = 0
3195	@ link register save eliminated.
3196	ldr	r3, .L474
3197	ldr	r0, [r3]
3198	bx	lr
3199.L475:
3200	.align	2
3201.L474:
3202	.word	.LANCHOR68
3203	.size	FtlGetCapacity, .-FtlGetCapacity
3204	.section	.text.ftl_get_density,"ax",%progbits
3205	.align	1
3206	.global	ftl_get_density
3207	.syntax unified
3208	.thumb
3209	.thumb_func
3210	.fpu softvfp
3211	.type	ftl_get_density, %function
3212ftl_get_density:
3213	@ args = 0, pretend = 0, frame = 0
3214	@ frame_needed = 0, uses_anonymous_args = 0
3215	@ link register save eliminated.
3216	ldr	r3, .L477
3217	ldr	r0, [r3]
3218	bx	lr
3219.L478:
3220	.align	2
3221.L477:
3222	.word	.LANCHOR68
3223	.size	ftl_get_density, .-ftl_get_density
3224	.section	.text.FtlGetLpn,"ax",%progbits
3225	.align	1
3226	.global	FtlGetLpn
3227	.syntax unified
3228	.thumb
3229	.thumb_func
3230	.fpu softvfp
3231	.type	FtlGetLpn, %function
3232FtlGetLpn:
3233	@ args = 0, pretend = 0, frame = 0
3234	@ frame_needed = 0, uses_anonymous_args = 0
3235	@ link register save eliminated.
3236	ldr	r3, .L480
3237	ldr	r0, [r3]
3238	bx	lr
3239.L481:
3240	.align	2
3241.L480:
3242	.word	.LANCHOR74
3243	.size	FtlGetLpn, .-FtlGetLpn
3244	.section	.text.FtlGetCurEraseBlock,"ax",%progbits
3245	.align	1
3246	.global	FtlGetCurEraseBlock
3247	.syntax unified
3248	.thumb
3249	.thumb_func
3250	.fpu softvfp
3251	.type	FtlGetCurEraseBlock, %function
3252FtlGetCurEraseBlock:
3253	@ args = 0, pretend = 0, frame = 0
3254	@ frame_needed = 0, uses_anonymous_args = 0
3255	@ link register save eliminated.
3256	ldr	r2, .L483
3257	ldr	r3, .L483+4
3258	ldr	r0, [r2]
3259	ldrh	r3, [r3]
3260	muls	r0, r3, r0
3261	bx	lr
3262.L484:
3263	.align	2
3264.L483:
3265	.word	.LANCHOR75
3266	.word	.LANCHOR38
3267	.size	FtlGetCurEraseBlock, .-FtlGetCurEraseBlock
3268	.section	.text.FtlGetAllBlockNum,"ax",%progbits
3269	.align	1
3270	.global	FtlGetAllBlockNum
3271	.syntax unified
3272	.thumb
3273	.thumb_func
3274	.fpu softvfp
3275	.type	FtlGetAllBlockNum, %function
3276FtlGetAllBlockNum:
3277	@ args = 0, pretend = 0, frame = 0
3278	@ frame_needed = 0, uses_anonymous_args = 0
3279	@ link register save eliminated.
3280	ldr	r2, .L486
3281	ldr	r3, .L486+4
3282	ldrh	r0, [r2]
3283	ldrh	r3, [r3]
3284	muls	r0, r3, r0
3285	bx	lr
3286.L487:
3287	.align	2
3288.L486:
3289	.word	.LANCHOR38
3290	.word	.LANCHOR41
3291	.size	FtlGetAllBlockNum, .-FtlGetAllBlockNum
3292	.section	.text.FtlBbmMapBadBlock,"ax",%progbits
3293	.align	1
3294	.global	FtlBbmMapBadBlock
3295	.syntax unified
3296	.thumb
3297	.thumb_func
3298	.fpu softvfp
3299	.type	FtlBbmMapBadBlock, %function
3300FtlBbmMapBadBlock:
3301	@ args = 0, pretend = 0, frame = 0
3302	@ frame_needed = 0, uses_anonymous_args = 0
3303	ldr	r3, .L489
3304	push	{r0, r1, r2, r4, r5, r6, r7, lr}
3305	mov	r5, r0
3306	ldrh	r4, [r3]
3307	mov	r1, r4
3308	bl	__aeabi_uidiv
3309	mov	r1, r4
3310	ldr	r4, .L489+4
3311	uxth	r6, r0
3312	mov	r0, r5
3313	bl	__aeabi_uidivmod
3314	add	r2, r4, r6, lsl #2
3315	uxth	r3, r1
3316	ldr	r2, [r2, #28]
3317	lsrs	r1, r3, #5
3318	and	r7, r3, #31
3319	movs	r0, #1
3320	lsls	r0, r0, r7
3321	ldr	r7, [r2, r1, lsl #2]
3322	orrs	r0, r0, r7
3323	str	r0, [r2, r1, lsl #2]
3324	mov	r2, r6
3325	str	r0, [sp]
3326	mov	r1, r5
3327	ldr	r0, .L489+8
3328	bl	printf
3329	ldrh	r3, [r4, #6]
3330	movs	r0, #0
3331	adds	r3, r3, #1
3332	strh	r3, [r4, #6]	@ movhi
3333	add	sp, sp, #12
3334	@ sp needed
3335	pop	{r4, r5, r6, r7, pc}
3336.L490:
3337	.align	2
3338.L489:
3339	.word	.LANCHOR51
3340	.word	.LANCHOR76
3341	.word	.LC2
3342	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
3343	.section	.text.FtlBbmIsBadBlock,"ax",%progbits
3344	.align	1
3345	.global	FtlBbmIsBadBlock
3346	.syntax unified
3347	.thumb
3348	.thumb_func
3349	.fpu softvfp
3350	.type	FtlBbmIsBadBlock, %function
3351FtlBbmIsBadBlock:
3352	@ args = 0, pretend = 0, frame = 0
3353	@ frame_needed = 0, uses_anonymous_args = 0
3354	ldr	r3, .L492
3355	push	{r4, r5, r6, lr}
3356	mov	r6, r0
3357	ldrh	r5, [r3]
3358	mov	r1, r5
3359	bl	__aeabi_uidivmod
3360	mov	r0, r6
3361	uxth	r4, r1
3362	mov	r1, r5
3363	bl	__aeabi_uidiv
3364	ldr	r3, .L492+4
3365	uxth	r0, r0
3366	lsrs	r2, r4, #5
3367	and	r4, r4, #31
3368	add	r0, r3, r0, lsl #2
3369	ldr	r3, [r0, #28]
3370	ldr	r0, [r3, r2, lsl #2]
3371	lsrs	r0, r0, r4
3372	and	r0, r0, #1
3373	pop	{r4, r5, r6, pc}
3374.L493:
3375	.align	2
3376.L492:
3377	.word	.LANCHOR51
3378	.word	.LANCHOR76
3379	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
3380	.section	.text.FtlBbtInfoPrint,"ax",%progbits
3381	.align	1
3382	.global	FtlBbtInfoPrint
3383	.syntax unified
3384	.thumb
3385	.thumb_func
3386	.fpu softvfp
3387	.type	FtlBbtInfoPrint, %function
3388FtlBbtInfoPrint:
3389	@ args = 0, pretend = 0, frame = 0
3390	@ frame_needed = 0, uses_anonymous_args = 0
3391	@ link register save eliminated.
3392	bx	lr
3393	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
3394	.section	.text.V2P_block,"ax",%progbits
3395	.align	1
3396	.global	V2P_block
3397	.syntax unified
3398	.thumb
3399	.thumb_func
3400	.fpu softvfp
3401	.type	V2P_block, %function
3402V2P_block:
3403	@ args = 0, pretend = 0, frame = 0
3404	@ frame_needed = 0, uses_anonymous_args = 0
3405	push	{r3, r4, r5, r6, r7, lr}
3406	mov	r5, r1
3407	ldr	r3, .L496
3408	mov	r7, r0
3409	ldrh	r6, [r3]
3410	mov	r1, r6
3411	bl	__aeabi_uidiv
3412	ldr	r3, .L496+4
3413	smulbb	r5, r6, r5
3414	mov	r1, r6
3415	ldrh	r4, [r3]
3416	smulbb	r4, r4, r0
3417	mov	r0, r7
3418	bl	__aeabi_uidivmod
3419	adds	r0, r5, r1
3420	add	r0, r0, r4
3421	uxth	r0, r0
3422	pop	{r3, r4, r5, r6, r7, pc}
3423.L497:
3424	.align	2
3425.L496:
3426	.word	.LANCHOR46
3427	.word	.LANCHOR51
3428	.size	V2P_block, .-V2P_block
3429	.section	.text.P2V_plane,"ax",%progbits
3430	.align	1
3431	.global	P2V_plane
3432	.syntax unified
3433	.thumb
3434	.thumb_func
3435	.fpu softvfp
3436	.type	P2V_plane, %function
3437P2V_plane:
3438	@ args = 0, pretend = 0, frame = 0
3439	@ frame_needed = 0, uses_anonymous_args = 0
3440	ldr	r3, .L499
3441	push	{r4, r5, r6, lr}
3442	mov	r6, r0
3443	ldrh	r5, [r3]
3444	ldr	r3, .L499+4
3445	ldrh	r1, [r3]
3446	bl	__aeabi_uidiv
3447	smulbb	r4, r0, r5
3448	mov	r1, r5
3449	mov	r0, r6
3450	bl	__aeabi_uidivmod
3451	add	r1, r1, r4
3452	uxth	r0, r1
3453	pop	{r4, r5, r6, pc}
3454.L500:
3455	.align	2
3456.L499:
3457	.word	.LANCHOR46
3458	.word	.LANCHOR51
3459	.size	P2V_plane, .-P2V_plane
3460	.section	.text.P2V_block_in_plane,"ax",%progbits
3461	.align	1
3462	.global	P2V_block_in_plane
3463	.syntax unified
3464	.thumb
3465	.thumb_func
3466	.fpu softvfp
3467	.type	P2V_block_in_plane, %function
3468P2V_block_in_plane:
3469	@ args = 0, pretend = 0, frame = 0
3470	@ frame_needed = 0, uses_anonymous_args = 0
3471	push	{r3, lr}
3472	ldr	r3, .L502
3473	ldrh	r1, [r3]
3474	bl	__aeabi_uidivmod
3475	ldr	r3, .L502+4
3476	uxth	r0, r1
3477	ldrh	r1, [r3]
3478	bl	__aeabi_uidiv
3479	uxth	r0, r0
3480	pop	{r3, pc}
3481.L503:
3482	.align	2
3483.L502:
3484	.word	.LANCHOR51
3485	.word	.LANCHOR46
3486	.size	P2V_block_in_plane, .-P2V_block_in_plane
3487	.section	.text.ftl_cmp_data_ver,"ax",%progbits
3488	.align	1
3489	.global	ftl_cmp_data_ver
3490	.syntax unified
3491	.thumb
3492	.thumb_func
3493	.fpu softvfp
3494	.type	ftl_cmp_data_ver, %function
3495ftl_cmp_data_ver:
3496	@ args = 0, pretend = 0, frame = 0
3497	@ frame_needed = 0, uses_anonymous_args = 0
3498	@ link register save eliminated.
3499	cmp	r0, r1
3500	bls	.L505
3501	subs	r0, r0, r1
3502	cmp	r0, #-2147483648
3503	ite	hi
3504	movhi	r0, #0
3505	movls	r0, #1
3506	bx	lr
3507.L505:
3508	subs	r0, r1, r0
3509	cmp	r0, #-2147483648
3510	ite	ls
3511	movls	r0, #0
3512	movhi	r0, #1
3513	bx	lr
3514	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
3515	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",%progbits
3516	.align	1
3517	.global	FtlFreeSysBlkQueueEmpty
3518	.syntax unified
3519	.thumb
3520	.thumb_func
3521	.fpu softvfp
3522	.type	FtlFreeSysBlkQueueEmpty, %function
3523FtlFreeSysBlkQueueEmpty:
3524	@ args = 0, pretend = 0, frame = 0
3525	@ frame_needed = 0, uses_anonymous_args = 0
3526	@ link register save eliminated.
3527	ldr	r3, .L508
3528	ldrh	r0, [r3, #6]
3529	clz	r0, r0
3530	lsrs	r0, r0, #5
3531	bx	lr
3532.L509:
3533	.align	2
3534.L508:
3535	.word	.LANCHOR77
3536	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
3537	.section	.text.FtlFreeSysBlkQueueFull,"ax",%progbits
3538	.align	1
3539	.global	FtlFreeSysBlkQueueFull
3540	.syntax unified
3541	.thumb
3542	.thumb_func
3543	.fpu softvfp
3544	.type	FtlFreeSysBlkQueueFull, %function
3545FtlFreeSysBlkQueueFull:
3546	@ args = 0, pretend = 0, frame = 0
3547	@ frame_needed = 0, uses_anonymous_args = 0
3548	@ link register save eliminated.
3549	ldr	r3, .L511
3550	ldrh	r0, [r3, #6]
3551	sub	r3, r0, #1024
3552	rsbs	r0, r3, #0
3553	adcs	r0, r0, r3
3554	bx	lr
3555.L512:
3556	.align	2
3557.L511:
3558	.word	.LANCHOR77
3559	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
3560	.section	.text.FtlFreeSysBlkQueueIn,"ax",%progbits
3561	.align	1
3562	.global	FtlFreeSysBlkQueueIn
3563	.syntax unified
3564	.thumb
3565	.thumb_func
3566	.fpu softvfp
3567	.type	FtlFreeSysBlkQueueIn, %function
3568FtlFreeSysBlkQueueIn:
3569	@ args = 0, pretend = 0, frame = 0
3570	@ frame_needed = 0, uses_anonymous_args = 0
3571	subs	r3, r0, #1
3572	movw	r2, #65533
3573	uxth	r3, r3
3574	push	{r4, r5, r6, lr}
3575	mov	r5, r0
3576	cmp	r3, r2
3577	bhi	.L513
3578	ldr	r4, .L522
3579	ldrh	r3, [r4, #6]
3580	cmp	r3, #1024
3581	beq	.L513
3582	cbz	r1, .L515
3583	ldr	r3, .L522+4
3584	ldr	r3, [r3]
3585	cbnz	r3, .L515
3586	bl	P2V_block_in_plane
3587	ldr	r3, .L522+8
3588	mov	r6, r0
3589	movs	r2, #1
3590	mov	r1, r2
3591	ldr	r0, [r3]
3592	lsls	r3, r5, #10
3593	str	r3, [r0, #4]
3594	bl	FlashEraseBlocks
3595	ldr	r3, .L522+12
3596	ldr	r2, [r3]
3597	ldrh	r3, [r2, r6, lsl #1]
3598	adds	r3, r3, #1
3599	strh	r3, [r2, r6, lsl #1]	@ movhi
3600	ldr	r2, .L522+16
3601	ldr	r3, [r2]
3602	adds	r3, r3, #1
3603	str	r3, [r2]
3604.L515:
3605	ldrh	r3, [r4, #6]
3606	adds	r3, r3, #1
3607	strh	r3, [r4, #6]	@ movhi
3608	ldrh	r3, [r4, #4]
3609	adds	r2, r3, #4
3610	adds	r3, r3, #1
3611	ubfx	r3, r3, #0, #10
3612	strh	r5, [r4, r2, lsl #1]	@ movhi
3613	strh	r3, [r4, #4]	@ movhi
3614.L513:
3615	pop	{r4, r5, r6, pc}
3616.L523:
3617	.align	2
3618.L522:
3619	.word	.LANCHOR77
3620	.word	.LANCHOR78
3621	.word	.LANCHOR79
3622	.word	.LANCHOR80
3623	.word	.LANCHOR81
3624	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3625	.section	.text.FtlFreeSysBLkSort,"ax",%progbits
3626	.align	1
3627	.global	FtlFreeSysBLkSort
3628	.syntax unified
3629	.thumb
3630	.thumb_func
3631	.fpu softvfp
3632	.type	FtlFreeSysBLkSort, %function
3633FtlFreeSysBLkSort:
3634	@ args = 0, pretend = 0, frame = 0
3635	@ frame_needed = 0, uses_anonymous_args = 0
3636	ldr	r3, .L533
3637	push	{r4, r5, r6, lr}
3638	ldrh	r2, [r3, #6]
3639	cbz	r2, .L524
3640	ldr	r2, .L533+4
3641	movs	r6, #0
3642	ldrh	r1, [r3, #2]
3643	mov	r5, r6
3644	ldrh	r4, [r2, #28]
3645	ldrh	r2, [r3, #4]
3646	and	r4, r4, #31
3647.L526:
3648	uxth	r0, r6
3649	adds	r6, r6, #1
3650	cmp	r4, r0
3651	bgt	.L527
3652	cbz	r5, .L524
3653	strh	r1, [r3, #2]	@ movhi
3654	strh	r2, [r3, #4]	@ movhi
3655.L524:
3656	pop	{r4, r5, r6, pc}
3657.L527:
3658	adds	r0, r1, #4
3659	adds	r1, r1, #1
3660	ldrh	r5, [r3, r0, lsl #1]
3661	adds	r0, r2, #4
3662	ubfx	r1, r1, #0, #10
3663	strh	r5, [r3, r0, lsl #1]	@ movhi
3664	movs	r5, #1
3665	add	r2, r2, r5
3666	ubfx	r2, r2, #0, #10
3667	b	.L526
3668.L534:
3669	.align	2
3670.L533:
3671	.word	.LANCHOR77
3672	.word	.LANCHOR82
3673	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
3674	.section	.text.FtlFreeSysBlkQueueOut,"ax",%progbits
3675	.align	1
3676	.global	FtlFreeSysBlkQueueOut
3677	.syntax unified
3678	.thumb
3679	.thumb_func
3680	.fpu softvfp
3681	.type	FtlFreeSysBlkQueueOut, %function
3682FtlFreeSysBlkQueueOut:
3683	@ args = 0, pretend = 0, frame = 0
3684	@ frame_needed = 0, uses_anonymous_args = 0
3685	push	{r3, r4, r5, r6, r7, r8, r10, lr}
3686	ldr	r4, .L545
3687	mov	r6, r4
3688.L536:
3689	ldrh	r1, [r4, #6]
3690	cmp	r1, #0
3691	beq	.L537
3692	ldrh	r3, [r4, #2]
3693	subs	r1, r1, #1
3694	strh	r1, [r4, #6]	@ movhi
3695	adds	r2, r3, #4
3696	adds	r3, r3, #1
3697	ubfx	r3, r3, #0, #10
3698	ldrh	r5, [r4, r2, lsl #1]
3699	strh	r3, [r4, #2]	@ movhi
3700	ldr	r3, .L545+4
3701	ldr	r10, [r3]
3702	cmp	r10, #0
3703	bne	.L538
3704	ldr	r8, .L545+28
3705	mov	r0, r5
3706	bl	P2V_block_in_plane
3707	mov	r7, r0
3708	lsls	r3, r5, #10
3709	ldr	r0, [r8]
3710	str	r3, [r0, #4]
3711	ldr	r3, .L545+8
3712	ldrb	r3, [r3]	@ zero_extendqisi2
3713	cbz	r3, .L539
3714	movs	r2, #1
3715	mov	r1, r10
3716	bl	FlashEraseBlocks
3717.L539:
3718	movs	r2, #1
3719	ldr	r0, [r8]
3720	mov	r1, r2
3721	bl	FlashEraseBlocks
3722	ldr	r3, .L545+12
3723	ldr	r2, [r3]
3724	ldrh	r3, [r2, r7, lsl #1]
3725	adds	r3, r3, #1
3726	strh	r3, [r2, r7, lsl #1]	@ movhi
3727	ldr	r2, .L545+16
3728	ldr	r3, [r2]
3729	adds	r3, r3, #1
3730	str	r3, [r2]
3731.L538:
3732	subs	r3, r5, #1
3733	movw	r2, #65533
3734	uxth	r3, r3
3735	cmp	r3, r2
3736	bls	.L541
3737	ldrh	r2, [r6, #6]
3738	mov	r1, r5
3739	ldr	r0, .L545+20
3740	bl	printf
3741	b	.L536
3742.L537:
3743	ldr	r0, .L545+24
3744	bl	printf
3745.L540:
3746	b	.L540
3747.L541:
3748	mov	r0, r5
3749	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
3750.L546:
3751	.align	2
3752.L545:
3753	.word	.LANCHOR77
3754	.word	.LANCHOR78
3755	.word	.LANCHOR16
3756	.word	.LANCHOR80
3757	.word	.LANCHOR81
3758	.word	.LC4
3759	.word	.LC3
3760	.word	.LANCHOR79
3761	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3762	.section	.text.test_node_in_list,"ax",%progbits
3763	.align	1
3764	.global	test_node_in_list
3765	.syntax unified
3766	.thumb
3767	.thumb_func
3768	.fpu softvfp
3769	.type	test_node_in_list, %function
3770test_node_in_list:
3771	@ args = 0, pretend = 0, frame = 0
3772	@ frame_needed = 0, uses_anonymous_args = 0
3773	ldr	r3, .L552
3774	push	{r4, r5, lr}
3775	movw	r5, #65535
3776	ldr	r2, [r0]
3777	ldr	r4, [r3]
3778	subs	r3, r2, r4
3779	asrs	r0, r3, #1
3780	ldr	r3, .L552+4
3781	muls	r3, r0, r3
3782	movs	r0, #6
3783	uxth	r3, r3
3784.L549:
3785	cmp	r3, r1
3786	beq	.L550
3787	ldrh	r3, [r2]
3788	cmp	r3, r5
3789	beq	.L551
3790	mla	r2, r0, r3, r4
3791	b	.L549
3792.L550:
3793	movs	r0, #1
3794	pop	{r4, r5, pc}
3795.L551:
3796	movs	r0, #0
3797	pop	{r4, r5, pc}
3798.L553:
3799	.align	2
3800.L552:
3801	.word	.LANCHOR83
3802	.word	-1431655765
3803	.size	test_node_in_list, .-test_node_in_list
3804	.section	.text.insert_data_list,"ax",%progbits
3805	.align	1
3806	.global	insert_data_list
3807	.syntax unified
3808	.thumb
3809	.thumb_func
3810	.fpu softvfp
3811	.type	insert_data_list, %function
3812insert_data_list:
3813	@ args = 0, pretend = 0, frame = 16
3814	@ frame_needed = 0, uses_anonymous_args = 0
3815	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
3816	ldr	r3, .L570
3817	ldrh	lr, [r3]
3818	cmp	lr, r0
3819	bls	.L556
3820	ldr	r3, .L570+4
3821	movs	r5, #6
3822	ldr	r4, [r3]
3823	mul	r3, r5, r0
3824	str	r3, [sp, #4]
3825	adds	r1, r4, r3
3826	ldr	r2, [sp, #4]
3827	movw	r3, #65535
3828	strh	r3, [r1, #2]	@ movhi
3829	strh	r3, [r4, r2]	@ movhi
3830	ldr	r3, .L570+8
3831	ldr	ip, [r3]
3832	cmp	ip, #0
3833	bne	.L557
3834.L569:
3835	str	r1, [r3]
3836.L556:
3837	movs	r0, #0
3838	add	sp, sp, #16
3839	@ sp needed
3840	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3841.L557:
3842	ldr	r3, .L570+12
3843	lsls	r2, r0, #1
3844	ldr	r3, [r3]
3845	str	r3, [sp, #8]
3846	ldrh	r6, [r3, r0, lsl #1]
3847	ldrh	r3, [r1, #4]
3848	cbz	r3, .L567
3849	mul	fp, r3, r6
3850.L558:
3851	sub	r3, ip, r4
3852	asrs	r6, r3, #1
3853	ldr	r3, .L570+16
3854	muls	r3, r6, r3
3855	ldr	r6, .L570+20
3856	ldr	r8, [r6]
3857	movs	r6, #0
3858	uxth	r3, r3
3859	add	r2, r8, r2
3860	str	r2, [sp, #12]
3861	mov	r2, ip
3862.L565:
3863	adds	r6, r6, #1
3864	uxth	r6, r6
3865	cmp	lr, r6
3866	bcc	.L556
3867	cmp	r3, r0
3868	beq	.L556
3869	ldr	r7, [sp, #8]
3870	lsl	r10, r3, #1
3871	ldrh	r7, [r7, r3, lsl #1]
3872	mov	r5, r7
3873	ldrh	r7, [r2, #4]
3874	cbz	r7, .L568
3875	muls	r7, r5, r7
3876.L560:
3877	cmp	fp, r7
3878	bne	.L561
3879	ldr	r5, [sp, #12]
3880	ldrh	r10, [r8, r10]
3881	ldrh	r7, [r5]
3882	cmp	r10, r7
3883	bcc	.L563
3884.L562:
3885	ldr	r5, [sp, #4]
3886	cmp	r2, ip
3887	strh	r3, [r4, r5]	@ movhi
3888	ldrh	r3, [r2, #2]
3889	strh	r3, [r1, #2]	@ movhi
3890	bne	.L566
3891	strh	r0, [r2, #2]	@ movhi
3892	ldr	r3, .L570+8
3893	b	.L569
3894.L567:
3895	mov	fp, #-1
3896	b	.L558
3897.L568:
3898	mov	r7, #-1
3899	b	.L560
3900.L561:
3901	bcc	.L562
3902.L563:
3903	ldrh	r7, [r2]
3904	movw	r5, #65535
3905	cmp	r7, r5
3906	bne	.L564
3907	strh	r3, [r1, #2]	@ movhi
3908	strh	r0, [r2]	@ movhi
3909	ldr	r3, .L570+24
3910	b	.L569
3911.L564:
3912	movs	r3, #6
3913	mla	r2, r3, r7, r4
3914	mov	r3, r7
3915	b	.L565
3916.L566:
3917	ldrh	r1, [r2, #2]
3918	movs	r3, #6
3919	muls	r3, r1, r3
3920	strh	r0, [r4, r3]	@ movhi
3921	strh	r0, [r2, #2]	@ movhi
3922	b	.L556
3923.L571:
3924	.align	2
3925.L570:
3926	.word	.LANCHOR40
3927	.word	.LANCHOR83
3928	.word	.LANCHOR84
3929	.word	.LANCHOR85
3930	.word	-1431655765
3931	.word	.LANCHOR80
3932	.word	.LANCHOR86
3933	.size	insert_data_list, .-insert_data_list
3934	.section	.text.INSERT_DATA_LIST,"ax",%progbits
3935	.align	1
3936	.global	INSERT_DATA_LIST
3937	.syntax unified
3938	.thumb
3939	.thumb_func
3940	.fpu softvfp
3941	.type	INSERT_DATA_LIST, %function
3942INSERT_DATA_LIST:
3943	@ args = 0, pretend = 0, frame = 0
3944	@ frame_needed = 0, uses_anonymous_args = 0
3945	push	{r3, lr}
3946	bl	insert_data_list
3947	ldr	r2, .L574
3948	ldrh	r3, [r2]
3949	adds	r3, r3, #1
3950	uxth	r3, r3
3951	strh	r3, [r2]	@ movhi
3952	ldr	r2, .L574+4
3953	ldrh	r2, [r2]
3954	cmp	r2, r3
3955	bcs	.L572
3956	ldr	r1, .L574+8
3957	movs	r2, #245
3958	ldr	r0, .L574+12
3959	bl	printf
3960	ldr	r1, .L574+16
3961	ldr	r0, .L574+20
3962	pop	{r3, lr}
3963	b	printf
3964.L572:
3965	pop	{r3, pc}
3966.L575:
3967	.align	2
3968.L574:
3969	.word	.LANCHOR87
3970	.word	.LANCHOR40
3971	.word	.LANCHOR88
3972	.word	.LC5
3973	.word	.LC6
3974	.word	.LC7
3975	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
3976	.section	.text.insert_free_list,"ax",%progbits
3977	.align	1
3978	.global	insert_free_list
3979	.syntax unified
3980	.thumb
3981	.thumb_func
3982	.fpu softvfp
3983	.type	insert_free_list, %function
3984insert_free_list:
3985	@ args = 0, pretend = 0, frame = 0
3986	@ frame_needed = 0, uses_anonymous_args = 0
3987	movw	r1, #65535
3988	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3989	cmp	r0, r1
3990	beq	.L577
3991	ldr	r3, .L583
3992	mov	r10, #6
3993	mul	r7, r10, r0
3994	ldr	r4, [r3]
3995	ldr	r3, .L583+4
3996	adds	r5, r4, r7
3997	ldr	r6, [r3]
3998	mov	lr, r3
3999	strh	r1, [r5, #2]	@ movhi
4000	strh	r1, [r4, r7]	@ movhi
4001	cbnz	r6, .L578
4002	str	r5, [r3]
4003.L577:
4004	movs	r0, #0
4005	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4006.L578:
4007	ldr	r3, .L583+8
4008	subs	r2, r6, r4
4009	mov	fp, r1
4010	ldr	ip, [r3]
4011	asrs	r3, r2, #1
4012	ldr	r2, .L583+12
4013	ldrh	r8, [ip, r0, lsl #1]
4014	muls	r2, r3, r2
4015	mov	r3, r6
4016	uxth	r2, r2
4017.L581:
4018	ldrh	r1, [ip, r2, lsl #1]
4019	cmp	r1, r8
4020	bcs	.L579
4021	ldrh	r1, [r3]
4022	cmp	r1, fp
4023	bne	.L580
4024	strh	r2, [r5, #2]	@ movhi
4025	strh	r0, [r3]	@ movhi
4026	b	.L577
4027.L580:
4028	mla	r3, r10, r1, r4
4029	mov	r2, r1
4030	b	.L581
4031.L579:
4032	ldrh	r1, [r3, #2]
4033	cmp	r3, r6
4034	strh	r1, [r5, #2]	@ movhi
4035	it	ne
4036	ldrhne	r1, [r3, #2]
4037	strh	r2, [r4, r7]	@ movhi
4038	iteet	ne
4039	movne	r2, #6
4040	strheq	r0, [r3, #2]	@ movhi
4041	streq	r5, [lr]
4042	mulne	r2, r2, r1
4043	itt	ne
4044	strhne	r0, [r4, r2]	@ movhi
4045	strhne	r0, [r3, #2]	@ movhi
4046	b	.L577
4047.L584:
4048	.align	2
4049.L583:
4050	.word	.LANCHOR83
4051	.word	.LANCHOR89
4052	.word	.LANCHOR80
4053	.word	-1431655765
4054	.size	insert_free_list, .-insert_free_list
4055	.section	.text.INSERT_FREE_LIST,"ax",%progbits
4056	.align	1
4057	.global	INSERT_FREE_LIST
4058	.syntax unified
4059	.thumb
4060	.thumb_func
4061	.fpu softvfp
4062	.type	INSERT_FREE_LIST, %function
4063INSERT_FREE_LIST:
4064	@ args = 0, pretend = 0, frame = 0
4065	@ frame_needed = 0, uses_anonymous_args = 0
4066	push	{r3, lr}
4067	bl	insert_free_list
4068	ldr	r2, .L587
4069	ldrh	r3, [r2]
4070	adds	r3, r3, #1
4071	uxth	r3, r3
4072	strh	r3, [r2]	@ movhi
4073	ldr	r2, .L587+4
4074	ldrh	r2, [r2]
4075	cmp	r2, r3
4076	bcs	.L585
4077	ldr	r1, .L587+8
4078	movs	r2, #238
4079	ldr	r0, .L587+12
4080	bl	printf
4081	ldr	r1, .L587+16
4082	ldr	r0, .L587+20
4083	pop	{r3, lr}
4084	b	printf
4085.L585:
4086	pop	{r3, pc}
4087.L588:
4088	.align	2
4089.L587:
4090	.word	.LANCHOR90
4091	.word	.LANCHOR40
4092	.word	.LANCHOR91
4093	.word	.LC5
4094	.word	.LC6
4095	.word	.LC7
4096	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
4097	.section	.text.List_remove_node,"ax",%progbits
4098	.align	1
4099	.global	List_remove_node
4100	.syntax unified
4101	.thumb
4102	.thumb_func
4103	.fpu softvfp
4104	.type	List_remove_node, %function
4105List_remove_node:
4106	@ args = 0, pretend = 0, frame = 0
4107	@ frame_needed = 0, uses_anonymous_args = 0
4108	push	{r4, r5, r6, r7, r8, lr}
4109	movs	r6, #6
4110	ldr	r5, .L595
4111	muls	r6, r1, r6
4112	movw	r3, #65535
4113	mov	r8, r0
4114	ldr	r7, [r5]
4115	adds	r4, r7, r6
4116	ldrh	r2, [r4, #2]
4117	cmp	r2, r3
4118	bne	.L590
4119	ldr	r3, [r0]
4120	cmp	r4, r3
4121	beq	.L590
4122	ldr	r1, .L595+4
4123	movw	r2, #435
4124	ldr	r0, .L595+8
4125	bl	printf
4126	ldr	r1, .L595+12
4127	ldr	r0, .L595+16
4128	bl	printf
4129.L590:
4130	ldr	r3, [r8]
4131	movw	r1, #65535
4132	cmp	r4, r3
4133	ldrh	r3, [r7, r6]
4134	bne	.L591
4135	cmp	r3, r1
4136	ittee	ne
4137	ldrne	r0, [r5]
4138	movne	r2, #6
4139	moveq	r3, #0
4140	streq	r3, [r8]
4141	ittt	ne
4142	mlane	r3, r2, r3, r0
4143	strne	r3, [r8]
4144	strhne	r1, [r3, #2]	@ movhi
4145.L593:
4146	movw	r3, #65535
4147	movs	r0, #0
4148	strh	r3, [r7, r6]	@ movhi
4149	strh	r3, [r4, #2]	@ movhi
4150	pop	{r4, r5, r6, r7, r8, pc}
4151.L591:
4152	cmp	r3, r1
4153	ldrh	r1, [r4, #2]
4154	bne	.L594
4155	cmp	r1, r3
4156	beq	.L593
4157	movs	r2, #6
4158	ldr	r0, [r5]
4159	muls	r1, r2, r1
4160	strh	r3, [r0, r1]	@ movhi
4161	b	.L593
4162.L594:
4163	ldr	r0, [r5]
4164	movs	r2, #6
4165	mla	r5, r2, r3, r0
4166	strh	r1, [r5, #2]	@ movhi
4167	ldrh	r1, [r4, #2]
4168	muls	r2, r1, r2
4169	strh	r3, [r0, r2]	@ movhi
4170	b	.L593
4171.L596:
4172	.align	2
4173.L595:
4174	.word	.LANCHOR83
4175	.word	.LANCHOR92
4176	.word	.LC5
4177	.word	.LC6
4178	.word	.LC7
4179	.size	List_remove_node, .-List_remove_node
4180	.section	.text.List_pop_index_node,"ax",%progbits
4181	.align	1
4182	.global	List_pop_index_node
4183	.syntax unified
4184	.thumb
4185	.thumb_func
4186	.fpu softvfp
4187	.type	List_pop_index_node, %function
4188List_pop_index_node:
4189	@ args = 0, pretend = 0, frame = 0
4190	@ frame_needed = 0, uses_anonymous_args = 0
4191	ldr	r3, [r0]
4192	push	{r4, r5, r6, lr}
4193	cbz	r3, .L603
4194	ldr	r2, .L604
4195	movw	r5, #65535
4196	movs	r6, #6
4197	ldr	r2, [r2]
4198.L599:
4199	cbnz	r1, .L600
4200.L602:
4201	ldr	r4, .L604+4
4202	subs	r3, r3, r2
4203	asrs	r3, r3, #1
4204	muls	r4, r3, r4
4205	uxth	r1, r4
4206	bl	List_remove_node
4207	uxth	r0, r4
4208	pop	{r4, r5, r6, pc}
4209.L600:
4210	ldrh	r4, [r3]
4211	cmp	r4, r5
4212	beq	.L602
4213	subs	r1, r1, #1
4214	mla	r3, r6, r4, r2
4215	uxth	r1, r1
4216	b	.L599
4217.L603:
4218	movw	r0, #65535
4219	pop	{r4, r5, r6, pc}
4220.L605:
4221	.align	2
4222.L604:
4223	.word	.LANCHOR83
4224	.word	-1431655765
4225	.size	List_pop_index_node, .-List_pop_index_node
4226	.section	.text.List_get_gc_head_node,"ax",%progbits
4227	.align	1
4228	.global	List_get_gc_head_node
4229	.syntax unified
4230	.thumb
4231	.thumb_func
4232	.fpu softvfp
4233	.type	List_get_gc_head_node, %function
4234List_get_gc_head_node:
4235	@ args = 0, pretend = 0, frame = 0
4236	@ frame_needed = 0, uses_anonymous_args = 0
4237	ldr	r3, .L612
4238	push	{r4, lr}
4239	ldr	r3, [r3]
4240	cbz	r3, .L611
4241	ldr	r2, .L612+4
4242	movs	r4, #6
4243	ldr	r1, [r2]
4244	movw	r2, #65535
4245.L608:
4246	cbz	r0, .L609
4247	ldrh	r3, [r3]
4248	cmp	r3, r2
4249	bne	.L610
4250.L611:
4251	movw	r0, #65535
4252	pop	{r4, pc}
4253.L610:
4254	subs	r0, r0, #1
4255	mla	r3, r4, r3, r1
4256	uxth	r0, r0
4257	b	.L608
4258.L609:
4259	ldr	r0, .L612+8
4260	subs	r3, r3, r1
4261	asrs	r3, r3, #1
4262	muls	r3, r0, r3
4263	uxth	r0, r3
4264	pop	{r4, pc}
4265.L613:
4266	.align	2
4267.L612:
4268	.word	.LANCHOR84
4269	.word	.LANCHOR83
4270	.word	-1431655765
4271	.size	List_get_gc_head_node, .-List_get_gc_head_node
4272	.section	.text.List_update_data_list,"ax",%progbits
4273	.align	1
4274	.global	List_update_data_list
4275	.syntax unified
4276	.thumb
4277	.thumb_func
4278	.fpu softvfp
4279	.type	List_update_data_list, %function
4280List_update_data_list:
4281	@ args = 0, pretend = 0, frame = 0
4282	@ frame_needed = 0, uses_anonymous_args = 0
4283	ldr	r3, .L625
4284	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4285	mov	r4, r0
4286	ldrh	r3, [r3]
4287	cmp	r3, r0
4288	beq	.L616
4289	ldr	r3, .L625+4
4290	ldrh	r3, [r3]
4291	cmp	r3, r0
4292	beq	.L616
4293	ldr	r3, .L625+8
4294	ldrh	r3, [r3]
4295	cmp	r3, r0
4296	beq	.L616
4297	ldr	r7, .L625+12
4298	movs	r6, #6
4299	ldr	r3, .L625+16
4300	muls	r6, r0, r6
4301	ldr	fp, [r7]
4302	ldr	r3, [r3]
4303	add	r10, fp, r6
4304	cmp	r10, r3
4305	beq	.L616
4306	ldr	r3, .L625+20
4307	ldrh	r5, [r10, #4]
4308	ldr	r2, [r3]
4309	mov	r8, r3
4310	ldrh	r2, [r2, r0, lsl #1]
4311	cmp	r5, #0
4312	beq	.L623
4313	muls	r5, r2, r5
4314.L618:
4315	ldrh	r3, [r10, #2]
4316	movw	r2, #65535
4317	cmp	r3, r2
4318	bne	.L619
4319	ldrh	r2, [fp, r6]
4320	cmp	r2, r3
4321	bne	.L619
4322	ldr	r1, .L625+24
4323	movw	r2, #571
4324	ldr	r0, .L625+28
4325	bl	printf
4326	ldr	r1, .L625+32
4327	ldr	r0, .L625+36
4328	bl	printf
4329.L619:
4330	ldrh	r3, [r10, #2]
4331	movw	r2, #65535
4332	cmp	r3, r2
4333	bne	.L620
4334	ldrh	r2, [fp, r6]
4335	cmp	r2, r3
4336	beq	.L616
4337.L620:
4338	movs	r2, #6
4339	muls	r2, r3, r2
4340	ldr	r3, .L625+40
4341	asrs	r1, r2, #1
4342	muls	r3, r1, r3
4343	ldr	r1, [r8]
4344	ldrh	r0, [r1, r3, lsl #1]
4345	ldr	r1, [r7]
4346	add	r2, r2, r1
4347	ldrh	r3, [r2, #4]
4348	cbz	r3, .L624
4349	muls	r3, r0, r3
4350.L621:
4351	cmp	r5, r3
4352	bcs	.L616
4353	ldr	r5, .L625+44
4354	mov	r1, r4
4355	ldr	r0, .L625+16
4356	bl	List_remove_node
4357	ldrh	r3, [r5]
4358	cbnz	r3, .L622
4359	ldr	r1, .L625+24
4360	movw	r2, #585
4361	ldr	r0, .L625+28
4362	bl	printf
4363	ldr	r1, .L625+32
4364	ldr	r0, .L625+36
4365	bl	printf
4366.L622:
4367	ldrh	r3, [r5]
4368	mov	r0, r4
4369	subs	r3, r3, #1
4370	strh	r3, [r5]	@ movhi
4371	bl	INSERT_DATA_LIST
4372.L616:
4373	movs	r0, #0
4374	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4375.L623:
4376	mov	r5, #-1
4377	b	.L618
4378.L624:
4379	mov	r3, #-1
4380	b	.L621
4381.L626:
4382	.align	2
4383.L625:
4384	.word	.LANCHOR93
4385	.word	.LANCHOR94
4386	.word	.LANCHOR95
4387	.word	.LANCHOR83
4388	.word	.LANCHOR84
4389	.word	.LANCHOR85
4390	.word	.LANCHOR96
4391	.word	.LC5
4392	.word	.LC6
4393	.word	.LC7
4394	.word	-1431655765
4395	.word	.LANCHOR87
4396	.size	List_update_data_list, .-List_update_data_list
4397	.section	.text.ftl_map_blk_alloc_new_blk,"ax",%progbits
4398	.align	1
4399	.global	ftl_map_blk_alloc_new_blk
4400	.syntax unified
4401	.thumb
4402	.thumb_func
4403	.fpu softvfp
4404	.type	ftl_map_blk_alloc_new_blk, %function
4405ftl_map_blk_alloc_new_blk:
4406	@ args = 0, pretend = 0, frame = 0
4407	@ frame_needed = 0, uses_anonymous_args = 0
4408	ldrh	r1, [r0, #10]
4409	ldr	r2, [r0, #12]
4410	push	{r3, r4, r5, r6, r7, lr}
4411	mov	r4, r0
4412	movs	r3, #0
4413.L628:
4414	uxth	r5, r3
4415	cmp	r5, r1
4416	bcs	.L631
4417	mov	r7, r2
4418	adds	r3, r3, #1
4419	ldrh	r6, [r7]
4420	adds	r2, r2, #2
4421	cmp	r6, #0
4422	bne	.L628
4423	bl	FtlFreeSysBlkQueueOut
4424	subs	r3, r0, #1
4425	movw	r2, #65533
4426	uxth	r3, r3
4427	mov	r1, r0
4428	strh	r0, [r7]	@ movhi
4429	cmp	r3, r2
4430	bls	.L629
4431	ldr	r3, .L635
4432	ldr	r0, .L635+4
4433	ldrh	r2, [r3, #6]
4434	bl	printf
4435.L630:
4436	b	.L630
4437.L629:
4438	ldr	r3, [r4, #28]
4439	strh	r6, [r4, #2]	@ movhi
4440	strh	r5, [r4]	@ movhi
4441	adds	r3, r3, #1
4442	str	r3, [r4, #28]
4443	ldrh	r3, [r4, #8]
4444	adds	r3, r3, #1
4445	strh	r3, [r4, #8]	@ movhi
4446.L631:
4447	ldrh	r3, [r4, #10]
4448	cmp	r3, r5
4449	bhi	.L633
4450	ldr	r1, .L635+8
4451	movw	r2, #715
4452	ldr	r0, .L635+12
4453	bl	printf
4454	ldr	r1, .L635+16
4455	ldr	r0, .L635+20
4456	bl	printf
4457.L633:
4458	movs	r0, #0
4459	pop	{r3, r4, r5, r6, r7, pc}
4460.L636:
4461	.align	2
4462.L635:
4463	.word	.LANCHOR77
4464	.word	.LC8
4465	.word	.LANCHOR97
4466	.word	.LC5
4467	.word	.LC6
4468	.word	.LC7
4469	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
4470	.section	.text.select_l2p_ram_region,"ax",%progbits
4471	.align	1
4472	.global	select_l2p_ram_region
4473	.syntax unified
4474	.thumb
4475	.thumb_func
4476	.fpu softvfp
4477	.type	select_l2p_ram_region, %function
4478select_l2p_ram_region:
4479	@ args = 0, pretend = 0, frame = 0
4480	@ frame_needed = 0, uses_anonymous_args = 0
4481	push	{r3, r4, r5, r6, r7, lr}
4482	movs	r1, #0
4483	ldr	r3, .L647
4484	movs	r0, #12
4485	movw	r5, #65535
4486	ldrh	r2, [r3]
4487	ldr	r3, .L647+4
4488	ldr	r3, [r3]
4489.L638:
4490	uxth	r4, r1
4491	cmp	r4, r2
4492	bcc	.L640
4493	mov	r4, r2
4494	movs	r1, #0
4495	mov	r6, #-2147483648
4496	movs	r7, #12
4497.L641:
4498	uxth	r5, r1
4499	cmp	r5, r2
4500	bcc	.L643
4501	cmp	r4, r2
4502	bcc	.L639
4503	ldr	r1, .L647+8
4504	mov	r4, r2
4505	mov	r0, #-1
4506	ldrh	r7, [r1]
4507	movs	r1, #0
4508.L644:
4509	uxth	r5, r1
4510	cmp	r5, r2
4511	bcc	.L646
4512	cmp	r4, r2
4513	bcc	.L639
4514	movw	r2, #977
4515	ldr	r1, .L647+12
4516	ldr	r0, .L647+16
4517	bl	printf
4518	ldr	r1, .L647+20
4519	ldr	r0, .L647+24
4520	bl	printf
4521	b	.L639
4522.L640:
4523	adds	r1, r1, #1
4524	mla	r6, r0, r1, r3
4525	ldrh	r6, [r6, #-12]
4526	cmp	r6, r5
4527	bne	.L638
4528.L639:
4529	mov	r0, r4
4530	pop	{r3, r4, r5, r6, r7, pc}
4531.L643:
4532	mla	r0, r7, r1, r3
4533	ldr	r0, [r0, #4]
4534	cmp	r0, #0
4535	blt	.L642
4536	cmp	r6, r0
4537	itt	hi
4538	movhi	r6, r0
4539	movhi	r4, r5
4540.L642:
4541	adds	r1, r1, #1
4542	b	.L641
4543.L646:
4544	ldr	r6, [r3, #4]
4545	cmp	r0, r6
4546	bls	.L645
4547	ldrh	ip, [r3]
4548	cmp	ip, r7
4549	itt	ne
4550	movne	r0, r6
4551	movne	r4, r5
4552.L645:
4553	adds	r1, r1, #1
4554	adds	r3, r3, #12
4555	b	.L644
4556.L648:
4557	.align	2
4558.L647:
4559	.word	.LANCHOR67
4560	.word	.LANCHOR98
4561	.word	.LANCHOR99
4562	.word	.LANCHOR100
4563	.word	.LC5
4564	.word	.LC6
4565	.word	.LC7
4566	.size	select_l2p_ram_region, .-select_l2p_ram_region
4567	.section	.text.FtlUpdateVaildLpn,"ax",%progbits
4568	.align	1
4569	.global	FtlUpdateVaildLpn
4570	.syntax unified
4571	.thumb
4572	.thumb_func
4573	.fpu softvfp
4574	.type	FtlUpdateVaildLpn, %function
4575FtlUpdateVaildLpn:
4576	@ args = 0, pretend = 0, frame = 0
4577	@ frame_needed = 0, uses_anonymous_args = 0
4578	ldr	r2, .L659
4579	push	{r4, r5, r6, lr}
4580	mov	r1, r2
4581	ldrh	r3, [r2]
4582	cmp	r3, #4
4583	bhi	.L650
4584	cbnz	r0, .L650
4585	adds	r3, r3, #1
4586	strh	r3, [r2]	@ movhi
4587	pop	{r4, r5, r6, pc}
4588.L650:
4589	movs	r3, #0
4590	ldr	r0, .L659+4
4591	strh	r3, [r1]	@ movhi
4592	movw	r6, #65535
4593	ldr	r1, .L659+8
4594	ldrh	r4, [r0]
4595	mov	r0, r3
4596	ldr	r2, .L659+12
4597	ldr	r1, [r1]
4598	str	r3, [r2]
4599	add	r4, r1, r4, lsl #1
4600.L651:
4601	cmp	r1, r4
4602	bne	.L653
4603	cbz	r3, .L649
4604	str	r0, [r2]
4605.L649:
4606	pop	{r4, r5, r6, pc}
4607.L653:
4608	ldrh	r5, [r1], #2
4609	cmp	r5, r6
4610	itt	ne
4611	addne	r0, r0, r5
4612	movne	r3, #1
4613	b	.L651
4614.L660:
4615	.align	2
4616.L659:
4617	.word	.LANCHOR101
4618	.word	.LANCHOR40
4619	.word	.LANCHOR85
4620	.word	.LANCHOR102
4621	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
4622	.section	.text.ftl_set_blk_mode,"ax",%progbits
4623	.align	1
4624	.global	ftl_set_blk_mode
4625	.syntax unified
4626	.thumb
4627	.thumb_func
4628	.fpu softvfp
4629	.type	ftl_set_blk_mode, %function
4630ftl_set_blk_mode:
4631	@ args = 0, pretend = 0, frame = 0
4632	@ frame_needed = 0, uses_anonymous_args = 0
4633	@ link register save eliminated.
4634	mov	r3, r0
4635	cbz	r1, .L662
4636	b	ftl_set_blk_mode.part.11
4637.L662:
4638	ldr	r2, .L663
4639	lsrs	r0, r0, #5
4640	and	r3, r3, #31
4641	ldr	r1, [r2]
4642	movs	r2, #1
4643	lsl	r3, r2, r3
4644	ldr	r2, [r1, r0, lsl #2]
4645	bic	r2, r2, r3
4646	str	r2, [r1, r0, lsl #2]
4647	bx	lr
4648.L664:
4649	.align	2
4650.L663:
4651	.word	.LANCHOR1
4652	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
4653	.section	.text.ftl_get_blk_mode,"ax",%progbits
4654	.align	1
4655	.global	ftl_get_blk_mode
4656	.syntax unified
4657	.thumb
4658	.thumb_func
4659	.fpu softvfp
4660	.type	ftl_get_blk_mode, %function
4661ftl_get_blk_mode:
4662	@ args = 0, pretend = 0, frame = 0
4663	@ frame_needed = 0, uses_anonymous_args = 0
4664	@ link register save eliminated.
4665	ldr	r3, .L666
4666	lsrs	r2, r0, #5
4667	and	r0, r0, #31
4668	ldr	r3, [r3]
4669	ldr	r3, [r3, r2, lsl #2]
4670	lsr	r0, r3, r0
4671	and	r0, r0, #1
4672	bx	lr
4673.L667:
4674	.align	2
4675.L666:
4676	.word	.LANCHOR1
4677	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
4678	.section	.text.ftl_sb_update_avl_pages,"ax",%progbits
4679	.align	1
4680	.global	ftl_sb_update_avl_pages
4681	.syntax unified
4682	.thumb
4683	.thumb_func
4684	.fpu softvfp
4685	.type	ftl_sb_update_avl_pages, %function
4686ftl_sb_update_avl_pages:
4687	@ args = 0, pretend = 0, frame = 0
4688	@ frame_needed = 0, uses_anonymous_args = 0
4689	movs	r3, #0
4690	push	{r4, r5, r6, lr}
4691	strh	r3, [r0, #4]	@ movhi
4692	movw	r6, #65535
4693	ldr	r3, .L675
4694	ldrh	r4, [r3]
4695	add	r3, r0, r2, lsl #1
4696	adds	r3, r3, #14
4697.L669:
4698	cmp	r2, r4
4699	bcc	.L671
4700	ldr	r3, .L675+4
4701	add	r5, r0, #16
4702	movw	r6, #65535
4703	ldrh	r3, [r3]
4704	subs	r3, r3, #1
4705	subs	r1, r3, r1
4706	movs	r3, #0
4707	uxth	r1, r1
4708.L672:
4709	uxth	r2, r3
4710	cmp	r4, r2
4711	bhi	.L674
4712	pop	{r4, r5, r6, pc}
4713.L671:
4714	ldrh	r5, [r3, #2]!
4715	adds	r2, r2, #1
4716	uxth	r2, r2
4717	cmp	r5, r6
4718	ittt	ne
4719	ldrhne	r5, [r0, #4]
4720	addne	r5, r5, #1
4721	strhne	r5, [r0, #4]	@ movhi
4722	b	.L669
4723.L674:
4724	ldrh	r2, [r5], #2
4725	adds	r3, r3, #1
4726	cmp	r2, r6
4727	ittt	ne
4728	ldrhne	r2, [r0, #4]
4729	addne	r2, r2, r1
4730	strhne	r2, [r0, #4]	@ movhi
4731	b	.L672
4732.L676:
4733	.align	2
4734.L675:
4735	.word	.LANCHOR38
4736	.word	.LANCHOR52
4737	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
4738	.section	.text.make_superblock,"ax",%progbits
4739	.align	1
4740	.global	make_superblock
4741	.syntax unified
4742	.thumb
4743	.thumb_func
4744	.fpu softvfp
4745	.type	make_superblock, %function
4746make_superblock:
4747	@ args = 0, pretend = 0, frame = 0
4748	@ frame_needed = 0, uses_anonymous_args = 0
4749	ldr	r3, .L690
4750	ldrh	r2, [r0]
4751	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4752	mov	r4, r0
4753	ldrh	r3, [r3]
4754	cmp	r2, r3
4755	bcc	.L678
4756	ldr	r1, .L690+4
4757	movw	r2, #2819
4758	ldr	r0, .L690+8
4759	bl	printf
4760	ldr	r1, .L690+12
4761	ldr	r0, .L690+16
4762	bl	printf
4763.L678:
4764	ldr	r3, .L690+20
4765	add	r6, r4, #16
4766	ldr	r10, .L690+40
4767	movw	r7, #65535
4768	movs	r5, #0
4769	ldrh	r8, [r3]
4770	strh	r5, [r4, #4]	@ movhi
4771	strb	r5, [r4, #7]
4772.L679:
4773	uxth	r3, r5
4774	cmp	r8, r3
4775	bhi	.L681
4776	ldr	r2, .L690+24
4777	ldrb	r3, [r4, #7]	@ zero_extendqisi2
4778	ldrh	r2, [r2]
4779	smulbb	r3, r3, r2
4780	strh	r3, [r4, #4]	@ movhi
4781	movs	r3, #0
4782	strb	r3, [r4, #9]
4783	ldr	r3, .L690+28
4784	ldr	r3, [r3]
4785	cbz	r3, .L682
4786	ldr	r3, .L690+32
4787	ldrh	r2, [r4]
4788	ldr	r3, [r3]
4789	ldrh	r3, [r3, r2, lsl #1]
4790	cmp	r3, #79
4791	itt	ls
4792	movls	r3, #1
4793	strbls	r3, [r4, #9]
4794.L682:
4795	ldr	r3, .L690+36
4796	ldrb	r3, [r3]	@ zero_extendqisi2
4797	cbz	r3, .L683
4798	movs	r3, #1
4799	strb	r3, [r4, #9]
4800.L683:
4801	movs	r0, #0
4802	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4803.L681:
4804	ldrh	r1, [r4]
4805	ldrb	r0, [r10, r5]	@ zero_extendqisi2
4806	bl	V2P_block
4807	strh	r7, [r6]	@ movhi
4808	mov	fp, r0
4809	bl	FtlBbmIsBadBlock
4810	cbnz	r0, .L680
4811	strh	fp, [r6]	@ movhi
4812	ldrb	r3, [r4, #7]	@ zero_extendqisi2
4813	adds	r3, r3, #1
4814	strb	r3, [r4, #7]
4815.L680:
4816	adds	r5, r5, #1
4817	adds	r6, r6, #2
4818	b	.L679
4819.L691:
4820	.align	2
4821.L690:
4822	.word	.LANCHOR40
4823	.word	.LANCHOR103
4824	.word	.LC5
4825	.word	.LC6
4826	.word	.LC7
4827	.word	.LANCHOR38
4828	.word	.LANCHOR52
4829	.word	.LANCHOR104
4830	.word	.LANCHOR80
4831	.word	.LANCHOR2
4832	.word	.LANCHOR47
4833	.size	make_superblock, .-make_superblock
4834	.section	.text.update_multiplier_value,"ax",%progbits
4835	.align	1
4836	.global	update_multiplier_value
4837	.syntax unified
4838	.thumb
4839	.thumb_func
4840	.fpu softvfp
4841	.type	update_multiplier_value, %function
4842update_multiplier_value:
4843	@ args = 0, pretend = 0, frame = 0
4844	@ frame_needed = 0, uses_anonymous_args = 0
4845	push	{r3, r4, r5, r6, r7, r8, r10, lr}
4846	movs	r5, #0
4847	ldr	r3, .L698
4848	mov	r6, r0
4849	mov	r4, r5
4850	ldr	r10, .L698+12
4851	ldrh	r7, [r3]
4852	ldr	r3, .L698+4
4853	ldrh	r8, [r3]
4854.L693:
4855	uxth	r3, r5
4856	cmp	r7, r3
4857	bhi	.L695
4858	cbz	r4, .L697
4859	mov	r1, r4
4860	mov	r0, #32768
4861	bl	__aeabi_idiv
4862.L696:
4863	ldr	r3, .L698+8
4864	movs	r2, #6
4865	ldr	r3, [r3]
4866	mla	r6, r2, r6, r3
4867	strh	r0, [r6, #4]	@ movhi
4868	movs	r0, #0
4869	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
4870.L695:
4871	mov	r1, r6
4872	ldrb	r0, [r10, r5]	@ zero_extendqisi2
4873	bl	V2P_block
4874	bl	FtlBbmIsBadBlock
4875	cbnz	r0, .L694
4876	add	r4, r4, r8
4877	uxth	r4, r4
4878.L694:
4879	adds	r5, r5, #1
4880	b	.L693
4881.L697:
4882	mov	r0, r4
4883	b	.L696
4884.L699:
4885	.align	2
4886.L698:
4887	.word	.LANCHOR38
4888	.word	.LANCHOR52
4889	.word	.LANCHOR83
4890	.word	.LANCHOR47
4891	.size	update_multiplier_value, .-update_multiplier_value
4892	.section	.text.GetFreeBlockMinEraseCount,"ax",%progbits
4893	.align	1
4894	.global	GetFreeBlockMinEraseCount
4895	.syntax unified
4896	.thumb
4897	.thumb_func
4898	.fpu softvfp
4899	.type	GetFreeBlockMinEraseCount, %function
4900GetFreeBlockMinEraseCount:
4901	@ args = 0, pretend = 0, frame = 0
4902	@ frame_needed = 0, uses_anonymous_args = 0
4903	@ link register save eliminated.
4904	ldr	r3, .L703
4905	ldr	r0, [r3]
4906	cbz	r0, .L701
4907	ldr	r3, .L703+4
4908	ldr	r3, [r3]
4909	subs	r0, r0, r3
4910	ldr	r3, .L703+8
4911	asrs	r0, r0, #1
4912	muls	r0, r3, r0
4913	ldr	r3, .L703+12
4914	ldr	r3, [r3]
4915	uxth	r0, r0
4916	ldrh	r0, [r3, r0, lsl #1]
4917.L701:
4918	bx	lr
4919.L704:
4920	.align	2
4921.L703:
4922	.word	.LANCHOR89
4923	.word	.LANCHOR83
4924	.word	-1431655765
4925	.word	.LANCHOR80
4926	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
4927	.section	.text.GetFreeBlockMaxEraseCount,"ax",%progbits
4928	.align	1
4929	.global	GetFreeBlockMaxEraseCount
4930	.syntax unified
4931	.thumb
4932	.thumb_func
4933	.fpu softvfp
4934	.type	GetFreeBlockMaxEraseCount, %function
4935GetFreeBlockMaxEraseCount:
4936	@ args = 0, pretend = 0, frame = 0
4937	@ frame_needed = 0, uses_anonymous_args = 0
4938	ldr	r3, .L713
4939	push	{r4, r5, r6, lr}
4940	ldr	r3, [r3]
4941	cbz	r3, .L711
4942	ldr	r2, .L713+4
4943	movs	r5, #6
4944	movw	r6, #65535
4945	ldrh	r2, [r2]
4946	rsb	r2, r2, r2, lsl #3
4947	asrs	r2, r2, #3
4948	cmp	r0, r2
4949	it	gt
4950	uxthgt	r0, r2
4951	ldr	r2, .L713+8
4952	ldr	r1, [r2]
4953	ldr	r2, .L713+12
4954	subs	r3, r3, r1
4955	asrs	r3, r3, #1
4956	muls	r3, r2, r3
4957	movs	r2, #0
4958	uxth	r3, r3
4959.L708:
4960	uxth	r4, r2
4961	cmp	r0, r4
4962	bls	.L710
4963	mul	r4, r5, r3
4964	adds	r2, r2, #1
4965	ldrh	r4, [r1, r4]
4966	cmp	r4, r6
4967	bne	.L712
4968.L710:
4969	ldr	r2, .L713+16
4970	ldr	r2, [r2]
4971	ldrh	r0, [r2, r3, lsl #1]
4972	pop	{r4, r5, r6, pc}
4973.L712:
4974	mov	r3, r4
4975	b	.L708
4976.L711:
4977	mov	r0, r3
4978	pop	{r4, r5, r6, pc}
4979.L714:
4980	.align	2
4981.L713:
4982	.word	.LANCHOR89
4983	.word	.LANCHOR90
4984	.word	.LANCHOR83
4985	.word	-1431655765
4986	.word	.LANCHOR80
4987	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
4988	.section	.text.free_data_superblock,"ax",%progbits
4989	.align	1
4990	.global	free_data_superblock
4991	.syntax unified
4992	.thumb
4993	.thumb_func
4994	.fpu softvfp
4995	.type	free_data_superblock, %function
4996free_data_superblock:
4997	@ args = 0, pretend = 0, frame = 0
4998	@ frame_needed = 0, uses_anonymous_args = 0
4999	movw	r2, #65535
5000	push	{r3, lr}
5001	cmp	r0, r2
5002	beq	.L716
5003	ldr	r2, .L717
5004	movs	r1, #0
5005	ldr	r2, [r2]
5006	strh	r1, [r2, r0, lsl #1]	@ movhi
5007	bl	INSERT_FREE_LIST
5008.L716:
5009	movs	r0, #0
5010	pop	{r3, pc}
5011.L718:
5012	.align	2
5013.L717:
5014	.word	.LANCHOR85
5015	.size	free_data_superblock, .-free_data_superblock
5016	.section	.text.FtlGcBufInit,"ax",%progbits
5017	.align	1
5018	.global	FtlGcBufInit
5019	.syntax unified
5020	.thumb
5021	.thumb_func
5022	.fpu softvfp
5023	.type	FtlGcBufInit, %function
5024FtlGcBufInit:
5025	@ args = 0, pretend = 0, frame = 8
5026	@ frame_needed = 0, uses_anonymous_args = 0
5027	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5028	movs	r3, #0
5029	ldr	r1, .L724
5030	mov	fp, #1
5031	ldr	r2, .L724+4
5032	ldr	r5, [r1]
5033	ldr	r1, .L724+8
5034	str	r3, [r2]
5035	ldr	r2, .L724+12
5036	mov	r0, r5
5037	ldr	r1, [r1]
5038	ldrh	r2, [r2]
5039	str	r1, [sp, #4]
5040	ldr	r1, .L724+16
5041	ldrh	r1, [r1]
5042	str	r1, [sp]
5043	ldr	r1, .L724+20
5044	ldr	r10, [r1]
5045	ldr	r1, .L724+24
5046	ldrh	r7, [r1]
5047	ldr	r1, .L724+28
5048	ldr	r4, [r1]
5049	movs	r1, #12
5050	mla	r1, r2, r1, r1
5051	adds	r4, r4, #8
5052	add	r8, r5, r1
5053	mov	r1, r3
5054.L720:
5055	adds	r0, r0, #12
5056	ldr	r6, [sp]
5057	cmp	r0, r8
5058	add	ip, r3, r7
5059	add	r4, r4, #36
5060	add	lr, r1, r6
5061	bne	.L721
5062	ldr	r3, .L724+32
5063	mov	lr, #12
5064	mov	r8, #0
5065	ldr	r0, [r3]
5066	ldr	r3, .L724+8
5067	ldr	r4, [r3]
5068	ldr	r3, .L724+20
5069	ldr	ip, [r3]
5070.L722:
5071	cmp	r2, r0
5072	bcc	.L723
5073	add	sp, sp, #8
5074	@ sp needed
5075	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5076.L721:
5077	bic	r1, r1, #3
5078	bic	r3, r3, #3
5079	mov	r6, r1
5080	ldr	r1, [sp, #4]
5081	add	r3, r3, r10
5082	str	fp, [r0, #-4]
5083	str	r3, [r0, #-8]
5084	add	r6, r6, r1
5085	mov	r1, lr
5086	str	r6, [r0, #-12]
5087	str	r3, [r4, #-32]
5088	mov	r3, ip
5089	str	r6, [r4, #-36]
5090	b	.L720
5091.L723:
5092	ldr	r3, [sp]
5093	mul	r10, lr, r2
5094	muls	r3, r2, r3
5095	add	r1, r5, r10
5096	str	r8, [r1, #8]
5097	bic	r3, r3, #3
5098	add	r3, r3, r4
5099	str	r3, [r5, r10]
5100	mul	r3, r2, r7
5101	adds	r2, r2, #1
5102	uxth	r2, r2
5103	bic	r3, r3, #3
5104	add	r3, r3, ip
5105	str	r3, [r1, #4]
5106	b	.L722
5107.L725:
5108	.align	2
5109.L724:
5110	.word	.LANCHOR106
5111	.word	.LANCHOR105
5112	.word	.LANCHOR107
5113	.word	.LANCHOR38
5114	.word	.LANCHOR57
5115	.word	.LANCHOR108
5116	.word	.LANCHOR58
5117	.word	.LANCHOR109
5118	.word	.LANCHOR110
5119	.size	FtlGcBufInit, .-FtlGcBufInit
5120	.section	.text.FtlGcBufFree,"ax",%progbits
5121	.align	1
5122	.global	FtlGcBufFree
5123	.syntax unified
5124	.thumb
5125	.thumb_func
5126	.fpu softvfp
5127	.type	FtlGcBufFree, %function
5128FtlGcBufFree:
5129	@ args = 0, pretend = 0, frame = 0
5130	@ frame_needed = 0, uses_anonymous_args = 0
5131	ldr	r3, .L733
5132	mov	ip, #12
5133	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5134	movs	r4, #0
5135	mov	fp, #36
5136	mov	lr, r4
5137	ldr	r7, [r3]
5138	ldr	r3, .L733+4
5139	ldr	r5, [r3]
5140.L727:
5141	uxth	r3, r4
5142	cmp	r1, r3
5143	bls	.L726
5144	mla	r8, fp, r3, r0
5145	movs	r2, #0
5146.L728:
5147	uxth	r3, r2
5148	cmp	r7, r3
5149	bls	.L729
5150	mul	r3, ip, r3
5151	ldr	r6, [r8, #8]
5152	adds	r2, r2, #1
5153	add	r10, r5, r3
5154	ldr	r3, [r5, r3]
5155	cmp	r3, r6
5156	bne	.L728
5157	str	lr, [r10, #8]
5158.L729:
5159	adds	r4, r4, #1
5160	b	.L727
5161.L726:
5162	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5163.L734:
5164	.align	2
5165.L733:
5166	.word	.LANCHOR110
5167	.word	.LANCHOR106
5168	.size	FtlGcBufFree, .-FtlGcBufFree
5169	.section	.text.FtlGcBufAlloc,"ax",%progbits
5170	.align	1
5171	.global	FtlGcBufAlloc
5172	.syntax unified
5173	.thumb
5174	.thumb_func
5175	.fpu softvfp
5176	.type	FtlGcBufAlloc, %function
5177FtlGcBufAlloc:
5178	@ args = 0, pretend = 0, frame = 0
5179	@ frame_needed = 0, uses_anonymous_args = 0
5180	ldr	r3, .L742
5181	movs	r2, #0
5182	push	{r4, r5, r6, r7, r8, r10, lr}
5183	mov	ip, #12
5184	movs	r7, #1
5185	mov	lr, #36
5186	ldr	r4, [r3]
5187	ldr	r3, .L742+4
5188	ldr	r5, [r3]
5189.L736:
5190	uxth	r8, r2
5191	cmp	r1, r8
5192	bhi	.L740
5193	pop	{r4, r5, r6, r7, r8, r10, pc}
5194.L740:
5195	mov	r10, #0
5196.L737:
5197	uxth	r3, r10
5198	cmp	r4, r3
5199	bls	.L738
5200	mla	r3, ip, r3, r5
5201	add	r10, r10, #1
5202	ldr	r6, [r3, #8]
5203	cmp	r6, #0
5204	bne	.L737
5205	mla	r8, lr, r8, r0
5206	str	r7, [r3, #8]
5207	ldr	r6, [r3]
5208	ldr	r3, [r3, #4]
5209	str	r6, [r8, #8]
5210	str	r3, [r8, #12]
5211.L738:
5212	adds	r2, r2, #1
5213	b	.L736
5214.L743:
5215	.align	2
5216.L742:
5217	.word	.LANCHOR110
5218	.word	.LANCHOR106
5219	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
5220	.section	.text.IsBlkInGcList,"ax",%progbits
5221	.align	1
5222	.global	IsBlkInGcList
5223	.syntax unified
5224	.thumb
5225	.thumb_func
5226	.fpu softvfp
5227	.type	IsBlkInGcList, %function
5228IsBlkInGcList:
5229	@ args = 0, pretend = 0, frame = 0
5230	@ frame_needed = 0, uses_anonymous_args = 0
5231	@ link register save eliminated.
5232	ldr	r3, .L749
5233	ldr	r2, .L749+4
5234	ldr	r3, [r3]
5235	ldrh	r2, [r2]
5236	add	r2, r3, r2, lsl #1
5237.L745:
5238	cmp	r3, r2
5239	bne	.L747
5240	movs	r0, #0
5241	bx	lr
5242.L747:
5243	ldrh	r1, [r3], #2
5244	cmp	r1, r0
5245	bne	.L745
5246	movs	r0, #1
5247	bx	lr
5248.L750:
5249	.align	2
5250.L749:
5251	.word	.LANCHOR111
5252	.word	.LANCHOR112
5253	.size	IsBlkInGcList, .-IsBlkInGcList
5254	.section	.text.FtlGcUpdatePage,"ax",%progbits
5255	.align	1
5256	.global	FtlGcUpdatePage
5257	.syntax unified
5258	.thumb
5259	.thumb_func
5260	.fpu softvfp
5261	.type	FtlGcUpdatePage, %function
5262FtlGcUpdatePage:
5263	@ args = 0, pretend = 0, frame = 0
5264	@ frame_needed = 0, uses_anonymous_args = 0
5265	push	{r3, r4, r5, r6, r7, lr}
5266	mov	r5, r0
5267	ldr	r4, .L755
5268	ubfx	r0, r0, #10, #16
5269	mov	r6, r1
5270	mov	r7, r2
5271	bl	P2V_block_in_plane
5272	ldr	r3, .L755+4
5273	ldrh	r1, [r4]
5274	ldr	r2, [r3]
5275	movs	r3, #0
5276.L752:
5277	uxth	ip, r3
5278	cmp	ip, r1
5279	bcc	.L754
5280	bne	.L753
5281	strh	r0, [r2, ip, lsl #1]	@ movhi
5282	ldrh	r3, [r4]
5283	adds	r3, r3, #1
5284	strh	r3, [r4]	@ movhi
5285	b	.L753
5286.L754:
5287	adds	r3, r3, #1
5288	add	ip, r2, r3, lsl #1
5289	ldrh	ip, [ip, #-2]
5290	cmp	ip, r0
5291	bne	.L752
5292.L753:
5293	ldr	r2, .L755+8
5294	movs	r0, #12
5295	ldr	r1, .L755+12
5296	ldrh	r3, [r2]
5297	ldr	r1, [r1]
5298	muls	r0, r3, r0
5299	adds	r3, r3, #1
5300	adds	r4, r1, r0
5301	str	r6, [r4, #4]
5302	str	r7, [r4, #8]
5303	str	r5, [r1, r0]
5304	strh	r3, [r2]	@ movhi
5305	pop	{r3, r4, r5, r6, r7, pc}
5306.L756:
5307	.align	2
5308.L755:
5309	.word	.LANCHOR112
5310	.word	.LANCHOR111
5311	.word	.LANCHOR113
5312	.word	.LANCHOR114
5313	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
5314	.section	.text.FtlGcRefreshOpenBlock,"ax",%progbits
5315	.align	1
5316	.global	FtlGcRefreshOpenBlock
5317	.syntax unified
5318	.thumb
5319	.thumb_func
5320	.fpu softvfp
5321	.type	FtlGcRefreshOpenBlock, %function
5322FtlGcRefreshOpenBlock:
5323	@ args = 0, pretend = 0, frame = 0
5324	@ frame_needed = 0, uses_anonymous_args = 0
5325	ldr	ip, .L762+12
5326	push	{r4, r5, r6, r7, lr}
5327	ldrh	lr, [ip]
5328	cmp	lr, r0
5329	beq	.L758
5330	ldr	r6, .L762
5331	ldrh	r7, [r6]
5332	cmp	r0, r7
5333	beq	.L758
5334	ldr	r4, .L762+4
5335	ldrh	r5, [r4]
5336	cmp	r0, r5
5337	beq	.L758
5338	ldr	r2, .L762+8
5339	ldrh	r1, [r2]
5340	cmp	r0, r1
5341	beq	.L758
5342	movw	r3, #65535
5343	cmp	lr, r3
5344	bne	.L759
5345	strh	r0, [ip]	@ movhi
5346.L758:
5347	movs	r0, #0
5348	pop	{r4, r5, r6, r7, pc}
5349.L759:
5350	cmp	r7, r3
5351	bne	.L760
5352	strh	r0, [r6]	@ movhi
5353	b	.L758
5354.L760:
5355	cmp	r5, r3
5356	bne	.L761
5357	strh	r0, [r4]	@ movhi
5358	b	.L758
5359.L761:
5360	cmp	r1, r3
5361	it	eq
5362	strheq	r0, [r2]	@ movhi
5363	b	.L758
5364.L763:
5365	.align	2
5366.L762:
5367	.word	.LANCHOR116
5368	.word	.LANCHOR117
5369	.word	.LANCHOR118
5370	.word	.LANCHOR115
5371	.size	FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
5372	.section	.text.FtlGcRefreshBlock,"ax",%progbits
5373	.align	1
5374	.global	FtlGcRefreshBlock
5375	.syntax unified
5376	.thumb
5377	.thumb_func
5378	.fpu softvfp
5379	.type	FtlGcRefreshBlock, %function
5380FtlGcRefreshBlock:
5381	@ args = 0, pretend = 0, frame = 0
5382	@ frame_needed = 0, uses_anonymous_args = 0
5383	ldr	ip, .L774+12
5384	push	{r4, r5, r6, r7, lr}
5385	ldrh	lr, [ip]
5386	cmp	lr, r0
5387	beq	.L772
5388	ldr	r6, .L774
5389	ldrh	r7, [r6]
5390	cmp	r0, r7
5391	beq	.L772
5392	ldr	r4, .L774+4
5393	ldrh	r5, [r4]
5394	cmp	r0, r5
5395	beq	.L772
5396	ldr	r2, .L774+8
5397	ldrh	r1, [r2]
5398	cmp	r0, r1
5399	beq	.L772
5400	movw	r3, #65535
5401	cmp	lr, r3
5402	bne	.L766
5403	strh	r0, [ip]	@ movhi
5404.L772:
5405	movs	r0, #0
5406	pop	{r4, r5, r6, r7, pc}
5407.L766:
5408	cmp	r7, r3
5409	bne	.L767
5410	strh	r0, [r6]	@ movhi
5411	b	.L772
5412.L767:
5413	cmp	r5, r3
5414	bne	.L768
5415	strh	r0, [r4]	@ movhi
5416	b	.L772
5417.L768:
5418	cmp	r1, r3
5419	bne	.L773
5420	strh	r0, [r2]	@ movhi
5421	b	.L772
5422.L773:
5423	mov	r0, #-1
5424	pop	{r4, r5, r6, r7, pc}
5425.L775:
5426	.align	2
5427.L774:
5428	.word	.LANCHOR116
5429	.word	.LANCHOR117
5430	.word	.LANCHOR118
5431	.word	.LANCHOR115
5432	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
5433	.section	.text.FtlGcMarkBadPhyBlk,"ax",%progbits
5434	.align	1
5435	.global	FtlGcMarkBadPhyBlk
5436	.syntax unified
5437	.thumb
5438	.thumb_func
5439	.fpu softvfp
5440	.type	FtlGcMarkBadPhyBlk, %function
5441FtlGcMarkBadPhyBlk:
5442	@ args = 0, pretend = 0, frame = 0
5443	@ frame_needed = 0, uses_anonymous_args = 0
5444	push	{r3, r4, r5, lr}
5445	mov	r4, r0
5446	bl	P2V_block_in_plane
5447	mov	r5, r0
5448	bl	FtlGcRefreshBlock
5449	ldr	r3, .L784
5450	ldr	r3, [r3]
5451	cbz	r3, .L777
5452	ldr	r3, .L784+4
5453	ldr	r2, [r3]
5454	ldrh	r3, [r2, r5, lsl #1]
5455	cmp	r3, #39
5456	itt	hi
5457	subhi	r3, r3, #40
5458	strhhi	r3, [r2, r5, lsl #1]	@ movhi
5459.L777:
5460	ldr	r2, .L784+8
5461	movs	r1, #0
5462	ldr	r5, .L784+12
5463	ldrh	r3, [r2]
5464.L778:
5465	uxth	r0, r1
5466	cmp	r3, r0
5467	bhi	.L780
5468	cmp	r3, #15
5469	itttt	ls
5470	addls	r1, r3, #1
5471	strhls	r1, [r2]	@ movhi
5472	ldrls	r2, .L784+12
5473	strhls	r4, [r2, r3, lsl #1]	@ movhi
5474	b	.L779
5475.L780:
5476	adds	r1, r1, #1
5477	add	r0, r5, r1, lsl #1
5478	ldrh	r0, [r0, #-2]
5479	cmp	r0, r4
5480	bne	.L778
5481.L779:
5482	movs	r0, #0
5483	pop	{r3, r4, r5, pc}
5484.L785:
5485	.align	2
5486.L784:
5487	.word	.LANCHOR104
5488	.word	.LANCHOR80
5489	.word	.LANCHOR119
5490	.word	.LANCHOR120
5491	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
5492	.section	.text.FtlGcReFreshBadBlk,"ax",%progbits
5493	.align	1
5494	.global	FtlGcReFreshBadBlk
5495	.syntax unified
5496	.thumb
5497	.thumb_func
5498	.fpu softvfp
5499	.type	FtlGcReFreshBadBlk, %function
5500FtlGcReFreshBadBlk:
5501	@ args = 0, pretend = 0, frame = 0
5502	@ frame_needed = 0, uses_anonymous_args = 0
5503	ldr	r3, .L792
5504	push	{r4, lr}
5505	ldrh	r3, [r3]
5506	cbz	r3, .L787
5507	ldr	r2, .L792+4
5508	ldrh	r1, [r2]
5509	movw	r2, #65535
5510	cmp	r1, r2
5511	bne	.L787
5512	ldr	r4, .L792+8
5513	ldrh	r2, [r4]
5514	cmp	r2, r3
5515	itt	cs
5516	movcs	r3, #0
5517	strhcs	r3, [r4]	@ movhi
5518	ldr	r3, .L792+12
5519	ldrh	r2, [r4]
5520	ldrh	r0, [r3, r2, lsl #1]
5521	bl	P2V_block_in_plane
5522	bl	FtlGcRefreshBlock
5523	ldrh	r3, [r4]
5524	adds	r3, r3, #1
5525	strh	r3, [r4]	@ movhi
5526.L787:
5527	movs	r0, #0
5528	pop	{r4, pc}
5529.L793:
5530	.align	2
5531.L792:
5532	.word	.LANCHOR119
5533	.word	.LANCHOR115
5534	.word	.LANCHOR121
5535	.word	.LANCHOR120
5536	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
5537	.section	.text.flash_boot_enter_slc_mode,"ax",%progbits
5538	.align	1
5539	.global	flash_boot_enter_slc_mode
5540	.syntax unified
5541	.thumb
5542	.thumb_func
5543	.fpu softvfp
5544	.type	flash_boot_enter_slc_mode, %function
5545flash_boot_enter_slc_mode:
5546	@ args = 0, pretend = 0, frame = 0
5547	@ frame_needed = 0, uses_anonymous_args = 0
5548	@ link register save eliminated.
5549	ldr	r3, .L796
5550	ldr	r2, [r3]
5551	ldr	r3, .L796+4
5552	cmp	r2, r3
5553	bne	.L794
5554	b	flash_enter_slc_mode
5555.L794:
5556	bx	lr
5557.L797:
5558	.align	2
5559.L796:
5560	.word	.LANCHOR122
5561	.word	1446522928
5562	.size	flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
5563	.section	.text.flash_boot_exit_slc_mode,"ax",%progbits
5564	.align	1
5565	.global	flash_boot_exit_slc_mode
5566	.syntax unified
5567	.thumb
5568	.thumb_func
5569	.fpu softvfp
5570	.type	flash_boot_exit_slc_mode, %function
5571flash_boot_exit_slc_mode:
5572	@ args = 0, pretend = 0, frame = 0
5573	@ frame_needed = 0, uses_anonymous_args = 0
5574	@ link register save eliminated.
5575	ldr	r3, .L800
5576	ldr	r2, [r3]
5577	ldr	r3, .L800+4
5578	cmp	r2, r3
5579	bne	.L798
5580	b	flash_exit_slc_mode
5581.L798:
5582	bx	lr
5583.L801:
5584	.align	2
5585.L800:
5586	.word	.LANCHOR122
5587	.word	1446522928
5588	.size	flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
5589	.section	.text.FW_FlashBlockErase.constprop.41,"ax",%progbits
5590	.align	1
5591	.syntax unified
5592	.thumb
5593	.thumb_func
5594	.fpu softvfp
5595	.type	FW_FlashBlockErase.constprop.41, %function
5596FW_FlashBlockErase.constprop.41:
5597	@ args = 0, pretend = 0, frame = 0
5598	@ frame_needed = 0, uses_anonymous_args = 0
5599	push	{r3, r4, r5, lr}
5600	mov	r4, r0
5601	ldr	r3, .L803
5602	movs	r0, #0
5603	ldr	r3, [r3]
5604	ldrb	r5, [r3, #9]	@ zero_extendqisi2
5605	bl	flash_boot_enter_slc_mode
5606	mov	r0, r4
5607	mov	r1, r5
5608	bl	__aeabi_uidiv
5609	movs	r2, #0
5610	mov	r1, r0
5611	mov	r0, r2
5612	bl	FlashEraseBlock
5613	mov	r4, r0
5614	movs	r0, #0
5615	bl	flash_boot_exit_slc_mode
5616	uxtb	r0, r4
5617	pop	{r3, r4, r5, pc}
5618.L804:
5619	.align	2
5620.L803:
5621	.word	.LANCHOR7
5622	.size	FW_FlashBlockErase.constprop.41, .-FW_FlashBlockErase.constprop.41
5623	.section	.text.ftl_memset,"ax",%progbits
5624	.align	1
5625	.global	ftl_memset
5626	.syntax unified
5627	.thumb
5628	.thumb_func
5629	.fpu softvfp
5630	.type	ftl_memset, %function
5631ftl_memset:
5632	@ args = 0, pretend = 0, frame = 0
5633	@ frame_needed = 0, uses_anonymous_args = 0
5634	@ link register save eliminated.
5635	b	memset
5636	.size	ftl_memset, .-ftl_memset
5637	.section	.text.BuildFlashLsbPageTable,"ax",%progbits
5638	.align	1
5639	.global	BuildFlashLsbPageTable
5640	.syntax unified
5641	.thumb
5642	.thumb_func
5643	.fpu softvfp
5644	.type	BuildFlashLsbPageTable, %function
5645BuildFlashLsbPageTable:
5646	@ args = 0, pretend = 0, frame = 0
5647	@ frame_needed = 0, uses_anonymous_args = 0
5648	push	{r4, lr}
5649	mov	r4, r1
5650	cbnz	r0, .L807
5651	ldr	r3, .L862
5652.L808:
5653	strh	r0, [r3, r0, lsl #1]	@ movhi
5654	adds	r0, r0, #1
5655	cmp	r0, #512
5656	bne	.L808
5657.L814:
5658	movs	r1, #255
5659	mov	r2, #2048
5660	ldr	r0, .L862+4
5661	uxth	r4, r4
5662	bl	ftl_memset
5663	ldr	r1, .L862
5664	movs	r3, #0
5665	ldr	r0, .L862+4
5666.L809:
5667	uxth	r2, r3
5668	cmp	r4, r2
5669	bhi	.L842
5670	pop	{r4, pc}
5671.L807:
5672	cmp	r0, #1
5673	bne	.L810
5674	ldr	r1, .L862
5675	movs	r3, #0
5676.L813:
5677	cmp	r3, #3
5678	uxth	r2, r3
5679	bls	.L811
5680	tst	r2, #1
5681	ite	ne
5682	movne	r0, #3
5683	moveq	r0, #2
5684	rsb	r2, r0, r2, lsl #1
5685	uxth	r2, r2
5686.L811:
5687	strh	r2, [r1, r3, lsl #1]	@ movhi
5688	adds	r3, r3, #1
5689	cmp	r3, #512
5690	bne	.L813
5691	b	.L814
5692.L810:
5693	cmp	r0, #2
5694	bne	.L815
5695	ldr	r1, .L862
5696	movs	r2, #0
5697.L817:
5698	uxth	r3, r2
5699	cmp	r2, #1
5700	ittt	hi
5701	lslhi	r3, r3, #1
5702	addhi	r3, r3, #-1
5703	uxthhi	r3, r3
5704	strh	r3, [r1, r2, lsl #1]	@ movhi
5705	adds	r2, r2, #1
5706	cmp	r2, #512
5707	bne	.L817
5708	b	.L814
5709.L815:
5710	cmp	r0, #3
5711	bne	.L818
5712	ldr	r1, .L862
5713	movs	r3, #0
5714.L821:
5715	cmp	r3, #5
5716	uxth	r2, r3
5717	bls	.L819
5718	tst	r2, #1
5719	ite	ne
5720	movne	r0, #5
5721	moveq	r0, #4
5722	rsb	r2, r0, r2, lsl #1
5723	uxth	r2, r2
5724.L819:
5725	strh	r2, [r1, r3, lsl #1]	@ movhi
5726	adds	r3, r3, #1
5727	cmp	r3, #512
5728	bne	.L821
5729	b	.L814
5730.L818:
5731	cmp	r0, #4
5732	mov	r3, #0
5733	bne	.L822
5734	ldr	r2, .L862
5735	strh	r3, [r2]	@ movhi
5736	movs	r3, #1
5737	strh	r3, [r2, #2]	@ movhi
5738	movs	r3, #2
5739	strh	r3, [r2, #4]	@ movhi
5740	movs	r3, #3
5741	strh	r3, [r2, #6]	@ movhi
5742	movs	r3, #5
5743	strh	r3, [r2, #10]	@ movhi
5744	movs	r3, #7
5745	strh	r3, [r2, #12]	@ movhi
5746	movs	r3, #8
5747	strh	r0, [r2, #8]	@ movhi
5748	strh	r3, [r2, #14]!	@ movhi
5749.L824:
5750	tst	r3, #1
5751	ite	ne
5752	movne	r1, #7
5753	moveq	r1, #6
5754	rsb	r1, r1, r3, lsl #1
5755	adds	r3, r3, #1
5756	uxth	r3, r3
5757	strh	r1, [r2, #2]!	@ movhi
5758	cmp	r3, #512
5759	bne	.L824
5760	b	.L814
5761.L822:
5762	cmp	r0, #5
5763	bne	.L825
5764	ldr	r2, .L862
5765.L826:
5766	strh	r3, [r2, r3, lsl #1]	@ movhi
5767	adds	r3, r3, #1
5768	cmp	r3, #16
5769	bne	.L826
5770	ldr	r2, .L862+8
5771.L827:
5772	strh	r3, [r2, #2]!	@ movhi
5773	adds	r3, r3, #2
5774	uxth	r3, r3
5775	cmp	r3, #1008
5776	bne	.L827
5777	b	.L814
5778.L825:
5779	cmp	r0, #6
5780	bne	.L828
5781	ldr	r0, .L862
5782	mov	r1, r3
5783.L831:
5784	cmp	r1, #5
5785	uxth	r2, r1
5786	bls	.L829
5787	tst	r2, #1
5788	ite	ne
5789	movne	r2, #12
5790	moveq	r2, #10
5791	subs	r2, r3, r2
5792	uxth	r2, r2
5793.L829:
5794	strh	r2, [r0, r1, lsl #1]	@ movhi
5795	adds	r1, r1, #1
5796	cmp	r1, #512
5797	add	r3, r3, #3
5798	uxth	r3, r3
5799	bne	.L831
5800	b	.L814
5801.L828:
5802	cmp	r0, #9
5803	bne	.L832
5804	ldr	r2, .L862
5805	movw	r1, #1021
5806	strh	r3, [r2]	@ movhi
5807	movs	r3, #1
5808	strh	r3, [r2, #2]	@ movhi
5809	mov	r3, r2
5810	movs	r2, #2
5811	strh	r2, [r3, #4]!	@ movhi
5812	movs	r2, #3
5813.L833:
5814	strh	r2, [r3, #2]!	@ movhi
5815	adds	r2, r2, #2
5816	uxth	r2, r2
5817	cmp	r2, r1
5818	bne	.L833
5819	b	.L814
5820.L832:
5821	cmp	r0, #10
5822	bne	.L834
5823	ldr	r2, .L862
5824.L835:
5825	strh	r3, [r2, r3, lsl #1]	@ movhi
5826	adds	r3, r3, #1
5827	cmp	r3, #63
5828	bne	.L835
5829	ldr	r2, .L862+12
5830	movw	r1, #961
5831.L836:
5832	strh	r3, [r2, #2]!	@ movhi
5833	adds	r3, r3, #2
5834	uxth	r3, r3
5835	cmp	r3, r1
5836	bne	.L836
5837	b	.L814
5838.L834:
5839	cmp	r0, #11
5840	bne	.L837
5841	ldr	r2, .L862
5842	movs	r3, #0
5843.L838:
5844	strh	r3, [r2, r3, lsl #1]	@ movhi
5845	adds	r3, r3, #1
5846	cmp	r3, #8
5847	bne	.L838
5848	ldr	r1, .L862+16
5849.L840:
5850	tst	r3, #1
5851	ite	ne
5852	movne	r2, #7
5853	moveq	r2, #6
5854	rsb	r2, r2, r3, lsl #1
5855	adds	r3, r3, #1
5856	uxth	r3, r3
5857	strh	r2, [r1, #2]!	@ movhi
5858	cmp	r3, #512
5859	bne	.L840
5860	b	.L814
5861.L837:
5862	cmp	r0, #12
5863	bne	.L814
5864	ldr	r3, .L862
5865	movs	r2, #0
5866	strh	r2, [r3]	@ movhi
5867	movs	r2, #1
5868	strh	r2, [r3, #2]	@ movhi
5869	movs	r2, #2
5870	strh	r2, [r3, #4]	@ movhi
5871	movs	r2, #3
5872	strh	r2, [r3, #6]!	@ movhi
5873	movs	r2, #4
5874.L841:
5875	subs	r1, r2, #1
5876	add	r1, r1, r2, lsr #1
5877	adds	r2, r2, #1
5878	uxth	r2, r2
5879	strh	r1, [r3, #2]!	@ movhi
5880	cmp	r2, #512
5881	bne	.L841
5882	b	.L814
5883.L842:
5884	ldrh	r2, [r1, r3, lsl #1]
5885	adds	r3, r3, #1
5886	strh	r2, [r0, r2, lsl #1]	@ movhi
5887	b	.L809
5888.L863:
5889	.align	2
5890.L862:
5891	.word	.LANCHOR17
5892	.word	.LANCHOR123
5893	.word	.LANCHOR17+30
5894	.word	.LANCHOR17+124
5895	.word	.LANCHOR17+14
5896	.size	BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
5897	.section	.text.FlashDieInfoInit,"ax",%progbits
5898	.align	1
5899	.global	FlashDieInfoInit
5900	.syntax unified
5901	.thumb
5902	.thumb_func
5903	.fpu softvfp
5904	.type	FlashDieInfoInit, %function
5905FlashDieInfoInit:
5906	@ args = 0, pretend = 0, frame = 8
5907	@ frame_needed = 0, uses_anonymous_args = 0
5908	ldr	r3, .L878
5909	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5910	movs	r4, #0
5911	ldr	r5, .L878+4
5912	ldr	fp, .L878+36
5913	ldrh	r0, [r3, #10]
5914	strb	r4, [r5]
5915	strb	r4, [fp]
5916	bl	FlashBlockAlignInit
5917	movs	r2, #8
5918	mov	r1, r4
5919	ldr	r0, .L878+8
5920	bl	ftl_memset
5921	movs	r2, #32
5922	mov	r1, r4
5923	ldr	r0, .L878+12
5924	bl	ftl_memset
5925	movs	r2, #128
5926	mov	r1, r4
5927	ldr	r0, .L878+16
5928	bl	ftl_memset
5929	ldr	r3, .L878+20
5930	ldr	r10, .L878+32
5931	ldr	r6, [r3]
5932	ldr	r3, .L878+8
5933	ldrb	r8, [r6]	@ zero_extendqisi2
5934	adds	r7, r6, #1
5935.L866:
5936	mov	r2, r8
5937	add	r1, r10, r4, lsl #3
5938	mov	r0, r7
5939	str	r3, [sp, #4]
5940	bl	FlashMemCmp8
5941	ldr	r3, [sp, #4]
5942	cbnz	r0, .L865
5943	ldrb	r2, [r5]	@ zero_extendqisi2
5944	ldr	r1, .L878+12
5945	strb	r4, [r3, r2]
5946	str	r0, [r1, r2, lsl #2]
5947	adds	r1, r2, #1
5948	strb	r1, [r5]
5949.L865:
5950	adds	r4, r4, #1
5951	cmp	r4, #4
5952	bne	.L866
5953	ldrb	r3, [r5]	@ zero_extendqisi2
5954	strb	r3, [fp]
5955	ldrb	r3, [r6, #8]	@ zero_extendqisi2
5956	cmp	r3, #2
5957	beq	.L867
5958.L871:
5959	ldrh	r2, [r6, #14]
5960	ldrb	r3, [r5]	@ zero_extendqisi2
5961	smulbb	r3, r3, r2
5962	ldrb	r2, [r6, #13]	@ zero_extendqisi2
5963	smulbb	r3, r3, r2
5964	ldr	r2, .L878+24
5965	strh	r3, [r2]	@ movhi
5966	add	sp, sp, #8
5967	@ sp needed
5968	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5969.L867:
5970	ldr	r3, .L878+28
5971	movs	r4, #0
5972	ldr	r10, .L878+12
5973	ldr	fp, [r3]
5974	ldr	r3, .L878+8
5975.L870:
5976	str	r3, [sp, #4]
5977	mov	r2, r8
5978	ldr	r3, .L878+32
5979	mov	r0, r7
5980	add	r1, r3, r4, lsl #3
5981	bl	FlashMemCmp8
5982	ldr	r3, [sp, #4]
5983	cbnz	r0, .L868
5984	ldrh	r2, [r6, #14]
5985	ldrb	r1, [r5]	@ zero_extendqisi2
5986	and	r0, r2, #65280
5987	ldrb	r2, [r6, #13]	@ zero_extendqisi2
5988	mul	r2, fp, r2
5989	muls	r2, r0, r2
5990	str	r2, [r10, r1, lsl #2]
5991	ldrb	r0, [r6, #23]	@ zero_extendqisi2
5992	cbz	r0, .L869
5993	lsls	r2, r2, #1
5994	str	r2, [r10, r1, lsl #2]
5995.L869:
5996	adds	r2, r1, #1
5997	strb	r4, [r3, r1]
5998	strb	r2, [r5]
5999.L868:
6000	adds	r4, r4, #1
6001	cmp	r4, #4
6002	bne	.L870
6003	b	.L871
6004.L879:
6005	.align	2
6006.L878:
6007	.word	.LANCHOR31
6008	.word	.LANCHOR26
6009	.word	.LANCHOR27
6010	.word	.LANCHOR18
6011	.word	.LANCHOR23
6012	.word	.LANCHOR7
6013	.word	.LANCHOR125
6014	.word	.LANCHOR4
6015	.word	.LANCHOR22
6016	.word	.LANCHOR124
6017	.size	FlashDieInfoInit, .-FlashDieInfoInit
6018	.section	.text.ftl_read_flash_info,"ax",%progbits
6019	.align	1
6020	.global	ftl_read_flash_info
6021	.syntax unified
6022	.thumb
6023	.thumb_func
6024	.fpu softvfp
6025	.type	ftl_read_flash_info, %function
6026ftl_read_flash_info:
6027	@ args = 0, pretend = 0, frame = 0
6028	@ frame_needed = 0, uses_anonymous_args = 0
6029	push	{r4, r5, r6, lr}
6030	movs	r2, #11
6031	movs	r1, #0
6032	mov	r4, r0
6033	bl	ftl_memset
6034	ldr	r3, .L883
6035	movs	r2, #0
6036	ldr	r1, [r3]
6037	ldr	r3, .L883+4
6038	ldrb	r5, [r1, #9]	@ zero_extendqisi2
6039	ldr	r3, [r3]
6040	smulbb	r3, r3, r5
6041	uxth	r3, r3
6042	lsrs	r0, r3, #8
6043	strb	r3, [r4, #4]
6044	strb	r0, [r4, #5]
6045	ldr	r0, .L883+8
6046	ldrb	r0, [r0]	@ zero_extendqisi2
6047	strb	r0, [r4, #7]
6048	ldrb	r0, [r1, #13]	@ zero_extendqisi2
6049	muls	r3, r0, r3
6050	ldrh	r0, [r1, #14]
6051	muls	r0, r3, r0
6052	ldrb	r3, [r1, #8]	@ zero_extendqisi2
6053	strb	r5, [r4, #6]
6054	movs	r5, #1
6055	muls	r3, r0, r3
6056	ubfx	r0, r3, #8, #8
6057	strb	r3, [r4]
6058	strb	r0, [r4, #1]
6059	ubfx	r0, r3, #16, #8
6060	lsrs	r3, r3, #24
6061	strb	r0, [r4, #2]
6062	ldr	r0, .L883+12
6063	strb	r3, [r4, #3]
6064	movs	r3, #32
6065	strb	r3, [r4, #8]
6066	ldrb	r3, [r1, #7]	@ zero_extendqisi2
6067	strb	r2, [r4, #10]
6068	strb	r3, [r4, #9]
6069	ldr	r3, .L883+16
6070	ldrb	r1, [r3]	@ zero_extendqisi2
6071	mov	r3, r2
6072.L881:
6073	uxtb	r2, r3
6074	cmp	r1, r2
6075	bhi	.L882
6076	pop	{r4, r5, r6, pc}
6077.L882:
6078	ldrb	r2, [r3, r0]	@ zero_extendqisi2
6079	adds	r3, r3, #1
6080	ldrb	r6, [r4, #10]	@ zero_extendqisi2
6081	lsl	r2, r5, r2
6082	orrs	r2, r2, r6
6083	strb	r2, [r4, #10]
6084	b	.L881
6085.L884:
6086	.align	2
6087.L883:
6088	.word	.LANCHOR7
6089	.word	.LANCHOR4
6090	.word	.LANCHOR33
6091	.word	.LANCHOR27
6092	.word	.LANCHOR26
6093	.size	ftl_read_flash_info, .-ftl_read_flash_info
6094	.section	.text.FtlBbt2Bitmap,"ax",%progbits
6095	.align	1
6096	.global	FtlBbt2Bitmap
6097	.syntax unified
6098	.thumb
6099	.thumb_func
6100	.fpu softvfp
6101	.type	FtlBbt2Bitmap, %function
6102FtlBbt2Bitmap:
6103	@ args = 0, pretend = 0, frame = 0
6104	@ frame_needed = 0, uses_anonymous_args = 0
6105	ldr	r3, .L891
6106	push	{r4, r5, r6, r7, r8, lr}
6107	mov	r5, r0
6108	ldr	r7, .L891+4
6109	mov	r6, r1
6110	subs	r4, r5, #2
6111	addw	r5, r5, #1022
6112	ldrh	r2, [r3]
6113	movs	r1, #0
6114	ldr	r8, .L891+24
6115	mov	r0, r6
6116	lsls	r2, r2, #2
6117	bl	ftl_memset
6118.L888:
6119	ldrh	r3, [r4, #2]
6120	movw	r2, #65535
6121	cmp	r3, r2
6122	beq	.L885
6123	ldrh	r2, [r7]
6124	cmp	r2, r3
6125	bhi	.L887
6126	mov	r1, r8
6127	movs	r2, #92
6128	ldr	r0, .L891+8
6129	bl	printf
6130	ldr	r1, .L891+12
6131	ldr	r0, .L891+16
6132	bl	printf
6133.L887:
6134	ldrh	r3, [r4, #2]!
6135	movs	r2, #1
6136	cmp	r5, r4
6137	lsr	r1, r3, #5
6138	and	r3, r3, #31
6139	lsl	r3, r2, r3
6140	ldr	r2, [r6, r1, lsl #2]
6141	orr	r2, r2, r3
6142	str	r2, [r6, r1, lsl #2]
6143	ldr	r2, .L891+20
6144	ldrh	r3, [r2, #6]
6145	add	r3, r3, #1
6146	strh	r3, [r2, #6]	@ movhi
6147	bne	.L888
6148.L885:
6149	pop	{r4, r5, r6, r7, r8, pc}
6150.L892:
6151	.align	2
6152.L891:
6153	.word	.LANCHOR126
6154	.word	.LANCHOR51
6155	.word	.LC5
6156	.word	.LC6
6157	.word	.LC7
6158	.word	.LANCHOR76
6159	.word	.LANCHOR127
6160	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
6161	.section	.text.FtlBbtMemInit,"ax",%progbits
6162	.align	1
6163	.global	FtlBbtMemInit
6164	.syntax unified
6165	.thumb
6166	.thumb_func
6167	.fpu softvfp
6168	.type	FtlBbtMemInit, %function
6169FtlBbtMemInit:
6170	@ args = 0, pretend = 0, frame = 0
6171	@ frame_needed = 0, uses_anonymous_args = 0
6172	@ link register save eliminated.
6173	ldr	r0, .L894
6174	movw	r3, #65535
6175	movs	r2, #16
6176	movs	r1, #255
6177	strh	r3, [r0]	@ movhi
6178	movs	r3, #0
6179	strh	r3, [r0, #6]	@ movhi
6180	adds	r0, r0, #12
6181	b	ftl_memset
6182.L895:
6183	.align	2
6184.L894:
6185	.word	.LANCHOR76
6186	.size	FtlBbtMemInit, .-FtlBbtMemInit
6187	.section	.text.FtlFreeSysBlkQueueInit,"ax",%progbits
6188	.align	1
6189	.global	FtlFreeSysBlkQueueInit
6190	.syntax unified
6191	.thumb
6192	.thumb_func
6193	.fpu softvfp
6194	.type	FtlFreeSysBlkQueueInit, %function
6195FtlFreeSysBlkQueueInit:
6196	@ args = 0, pretend = 0, frame = 0
6197	@ frame_needed = 0, uses_anonymous_args = 0
6198	ldr	r3, .L897
6199	mov	r2, #2048
6200	push	{r4, lr}
6201	movs	r4, #0
6202	mov	r1, r4
6203	strh	r4, [r3, #2]	@ movhi
6204	strh	r4, [r3, #4]	@ movhi
6205	strh	r4, [r3, #6]	@ movhi
6206	strh	r0, [r3], #8	@ movhi
6207	mov	r0, r3
6208	bl	ftl_memset
6209	mov	r0, r4
6210	pop	{r4, pc}
6211.L898:
6212	.align	2
6213.L897:
6214	.word	.LANCHOR77
6215	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
6216	.section	.text.ftl_free_no_use_map_blk,"ax",%progbits
6217	.align	1
6218	.global	ftl_free_no_use_map_blk
6219	.syntax unified
6220	.thumb
6221	.thumb_func
6222	.fpu softvfp
6223	.type	ftl_free_no_use_map_blk, %function
6224ftl_free_no_use_map_blk:
6225	@ args = 0, pretend = 0, frame = 8
6226	@ frame_needed = 0, uses_anonymous_args = 0
6227	ldrh	r2, [r0, #10]
6228	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6229	mov	r4, r0
6230	ldr	r5, [r0, #20]
6231	movs	r1, #0
6232	ldr	r7, [r0, #12]
6233	lsls	r2, r2, #1
6234	ldr	r6, [r0, #24]
6235	mov	r0, r5
6236	bl	ftl_memset
6237	movs	r3, #0
6238.L900:
6239	ldrh	r1, [r4, #6]
6240	uxth	r2, r3
6241	cmp	r1, r2
6242	bhi	.L904
6243	ldr	r3, .L919
6244	movs	r6, #0
6245	mov	r10, r6
6246	ldrh	r2, [r3]
6247	ldrh	r3, [r4]
6248	strh	r2, [r5, r3, lsl #1]	@ movhi
6249	mov	r2, r6
6250	ldrh	fp, [r5]
6251.L905:
6252	ldrh	r3, [r4, #10]
6253	uxth	ip, r6
6254	cmp	r3, ip
6255	bhi	.L909
6256	mov	r0, r10
6257	add	sp, sp, #8
6258	@ sp needed
6259	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6260.L904:
6261	uxth	r2, r3
6262	ldr	r1, [r6, r2, lsl #2]
6263	movs	r2, #0
6264	ubfx	r1, r1, #10, #16
6265.L901:
6266	ldrh	ip, [r4, #10]
6267	uxth	r0, r2
6268	cmp	ip, r0
6269	bhi	.L903
6270	adds	r3, r3, #1
6271	b	.L900
6272.L903:
6273	uxth	r0, r2
6274	ldrh	ip, [r7, r0, lsl #1]
6275	cmp	ip, r1
6276	bne	.L902
6277	cbz	r1, .L902
6278	ldrh	ip, [r5, r0, lsl #1]
6279	add	ip, ip, #1
6280	strh	ip, [r5, r0, lsl #1]	@ movhi
6281.L902:
6282	adds	r2, r2, #1
6283	b	.L901
6284.L909:
6285	uxth	r1, r6
6286	ldrh	r3, [r5, r1, lsl #1]
6287	lsl	r8, r1, #1
6288	cmp	fp, r3
6289	bls	.L906
6290	ldrh	r0, [r7, r1, lsl #1]
6291	add	r8, r8, r7
6292	cbnz	r0, .L907
6293.L908:
6294	adds	r6, r6, #1
6295	b	.L905
6296.L906:
6297	cmp	r3, #0
6298	bne	.L908
6299	ldrh	r0, [r7, r1, lsl #1]
6300	add	r8, r8, r7
6301	cmp	r0, #0
6302	beq	.L908
6303.L910:
6304	movs	r1, #1
6305	str	r2, [sp, #4]
6306	bl	FtlFreeSysBlkQueueIn
6307	ldr	r2, [sp, #4]
6308	strh	r2, [r8]	@ movhi
6309	ldrh	r3, [r4, #8]
6310	subs	r3, r3, #1
6311	strh	r3, [r4, #8]	@ movhi
6312	b	.L908
6313.L907:
6314	mov	r10, ip
6315	mov	fp, r3
6316	cmp	r3, #0
6317	beq	.L910
6318	b	.L908
6319.L920:
6320	.align	2
6321.L919:
6322	.word	.LANCHOR53
6323	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
6324	.section	.text.FtlL2PDataInit,"ax",%progbits
6325	.align	1
6326	.global	FtlL2PDataInit
6327	.syntax unified
6328	.thumb
6329	.thumb_func
6330	.fpu softvfp
6331	.type	FtlL2PDataInit, %function
6332FtlL2PDataInit:
6333	@ args = 0, pretend = 0, frame = 0
6334	@ frame_needed = 0, uses_anonymous_args = 0
6335	push	{r4, r5, r6, r7, r8, lr}
6336	movs	r1, #0
6337	ldr	r5, .L924
6338	ldr	r4, .L924+4
6339	ldr	r2, [r5]
6340	ldr	r7, .L924+8
6341	ldr	r6, .L924+12
6342	ldr	r0, [r4]
6343	lsls	r2, r2, #1
6344	ldr	r8, .L924+44
6345	bl	ftl_memset
6346	ldrh	r3, [r7]
6347	movs	r1, #255
6348	ldrh	r2, [r6]
6349	ldr	r0, [r8]
6350	muls	r2, r3, r2
6351	bl	ftl_memset
6352	ldr	r3, .L924+16
6353	movw	r0, #65535
6354	ldrh	r1, [r6]
6355	ldr	ip, [r8]
6356	ldr	r2, [r3]
6357	movs	r3, #12
6358	ldrh	r7, [r7]
6359	mla	r3, r1, r3, r3
6360	adds	r1, r2, r3
6361	movs	r3, #0
6362	mov	lr, r3
6363.L922:
6364	adds	r2, r2, #12
6365	adds	r6, r3, r7
6366	cmp	r2, r1
6367	bne	.L923
6368	ldr	r3, .L924+20
6369	ldr	r2, [r5]
6370	strh	r0, [r3, #2]	@ movhi
6371	strh	r2, [r3, #10]	@ movhi
6372	movw	r2, #61634
6373	strh	r2, [r3, #4]	@ movhi
6374	ldr	r2, .L924+24
6375	strh	r0, [r3]	@ movhi
6376	ldrh	r2, [r2]
6377	strh	r2, [r3, #8]	@ movhi
6378	ldr	r2, .L924+28
6379	ldrh	r2, [r2]
6380	strh	r2, [r3, #6]	@ movhi
6381	ldr	r2, .L924+32
6382	ldr	r2, [r2]
6383	str	r2, [r3, #12]
6384	ldr	r2, .L924+36
6385	ldr	r2, [r2]
6386	str	r2, [r3, #16]
6387	ldr	r2, [r4]
6388	str	r2, [r3, #20]
6389	ldr	r2, .L924+40
6390	ldr	r2, [r2]
6391	str	r2, [r3, #24]
6392	pop	{r4, r5, r6, r7, r8, pc}
6393.L923:
6394	bic	r3, r3, #3
6395	str	lr, [r2, #-8]
6396	add	r3, r3, ip
6397	strh	r0, [r2, #-12]	@ movhi
6398	str	r3, [r2, #-4]
6399	mov	r3, r6
6400	b	.L922
6401.L925:
6402	.align	2
6403.L924:
6404	.word	.LANCHOR64
6405	.word	.LANCHOR128
6406	.word	.LANCHOR57
6407	.word	.LANCHOR67
6408	.word	.LANCHOR98
6409	.word	.LANCHOR130
6410	.word	.LANCHOR131
6411	.word	.LANCHOR66
6412	.word	.LANCHOR132
6413	.word	.LANCHOR133
6414	.word	.LANCHOR134
6415	.word	.LANCHOR129
6416	.size	FtlL2PDataInit, .-FtlL2PDataInit
6417	.section	.text.FtlVariablesInit,"ax",%progbits
6418	.align	1
6419	.global	FtlVariablesInit
6420	.syntax unified
6421	.thumb
6422	.thumb_func
6423	.fpu softvfp
6424	.type	FtlVariablesInit, %function
6425FtlVariablesInit:
6426	@ args = 0, pretend = 0, frame = 0
6427	@ frame_needed = 0, uses_anonymous_args = 0
6428	push	{r3, r4, r5, lr}
6429	movs	r4, #0
6430	ldr	r3, .L927
6431	movw	r2, #65535
6432	mov	r1, r4
6433	ldr	r5, .L927+4
6434	str	r4, [r3]
6435	ldr	r3, .L927+8
6436	strh	r2, [r3]	@ movhi
6437	mov	r2, #-1
6438	ldr	r3, .L927+12
6439	str	r4, [r3]
6440	ldr	r3, .L927+16
6441	str	r4, [r3]
6442	ldr	r3, .L927+20
6443	str	r2, [r3]
6444	ldr	r3, .L927+24
6445	str	r4, [r3]
6446	ldr	r3, .L927+28
6447	strh	r4, [r3]	@ movhi
6448	ldr	r3, .L927+32
6449	ldrh	r2, [r3]
6450	ldr	r3, .L927+36
6451	lsls	r2, r2, #1
6452	ldr	r0, [r3]
6453	bl	ftl_memset
6454	ldrh	r2, [r5]
6455	mov	r1, r4
6456	ldr	r3, .L927+40
6457	lsls	r2, r2, #1
6458	ldr	r0, [r3]
6459	bl	ftl_memset
6460	ldrh	r2, [r5]
6461	mov	r1, r4
6462	ldr	r3, .L927+44
6463	lsls	r2, r2, #1
6464	ldr	r0, [r3]
6465	bl	ftl_memset
6466	mov	r1, r4
6467	movs	r2, #48
6468	ldr	r0, .L927+48
6469	bl	ftl_memset
6470	mov	r2, #512
6471	mov	r1, r4
6472	ldr	r0, .L927+52
6473	bl	ftl_memset
6474	bl	FtlGcBufInit
6475	bl	FtlL2PDataInit
6476	mov	r0, r4
6477	pop	{r3, r4, r5, pc}
6478.L928:
6479	.align	2
6480.L927:
6481	.word	.LANCHOR135
6482	.word	.LANCHOR41
6483	.word	.LANCHOR136
6484	.word	.LANCHOR137
6485	.word	.LANCHOR138
6486	.word	.LANCHOR139
6487	.word	.LANCHOR104
6488	.word	.LANCHOR70
6489	.word	.LANCHOR61
6490	.word	.LANCHOR71
6491	.word	.LANCHOR80
6492	.word	.LANCHOR140
6493	.word	.LANCHOR82
6494	.word	.LANCHOR141
6495	.size	FtlVariablesInit, .-FtlVariablesInit
6496	.section	.text.SupperBlkListInit,"ax",%progbits
6497	.align	1
6498	.global	SupperBlkListInit
6499	.syntax unified
6500	.thumb
6501	.thumb_func
6502	.fpu softvfp
6503	.type	SupperBlkListInit, %function
6504SupperBlkListInit:
6505	@ args = 0, pretend = 0, frame = 24
6506	@ frame_needed = 0, uses_anonymous_args = 0
6507	ldr	r3, .L940
6508	movs	r2, #6
6509	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6510	movs	r1, #0
6511	ldr	r6, .L940+4
6512	sub	sp, sp, #24
6513	movs	r4, #0
6514	ldrh	r3, [r3]
6515	mov	r8, r4
6516	ldr	r0, [r6]
6517	mov	r5, r4
6518	mov	r10, r6
6519	muls	r2, r3, r2
6520	bl	ftl_memset
6521	ldr	r3, .L940+8
6522	ldr	r2, .L940+12
6523	ldr	r1, .L940+16
6524	str	r4, [r3]
6525	ldr	r3, .L940+20
6526	strh	r4, [r2]	@ movhi
6527	strh	r4, [r1]	@ movhi
6528	str	r4, [r3]
6529	ldr	r3, .L940+24
6530	str	r2, [sp, #8]
6531	str	r4, [r3]
6532	ldr	r3, .L940+28
6533	mov	fp, r3
6534	strh	r4, [r3]	@ movhi
6535.L930:
6536	ldr	r3, .L940+32
6537	sxth	r7, r4
6538	ldrh	r3, [r3]
6539	cmp	r7, r3
6540	bge	.L937
6541	ldr	r3, .L940+36
6542	uxth	r1, r4
6543	str	r1, [sp, #12]
6544	ldrh	r2, [r3]
6545	ldr	r3, .L940+40
6546	ldrh	r3, [r3]
6547	str	r3, [sp, #4]
6548	movs	r3, #0
6549	mov	r6, r3
6550	b	.L938
6551.L932:
6552	str	r3, [sp, #20]
6553	ldr	r3, .L940+44
6554	ldr	r1, [sp, #12]
6555	str	r2, [sp, #16]
6556	ldrb	r0, [r3, r0]	@ zero_extendqisi2
6557	bl	V2P_block
6558	bl	FtlBbmIsBadBlock
6559	ldr	r2, [sp, #16]
6560	ldr	r3, [sp, #20]
6561	cbnz	r0, .L931
6562	ldr	r1, [sp, #4]
6563	add	r6, r6, r1
6564	sxth	r6, r6
6565.L931:
6566	adds	r3, r3, #1
6567.L938:
6568	sxth	r0, r3
6569	cmp	r0, r2
6570	blt	.L932
6571	lsls	r3, r7, #1
6572	cbz	r6, .L933
6573	mov	r1, r6
6574	str	r3, [sp, #4]
6575	mov	r0, #32768
6576	bl	__aeabi_idiv
6577	ldr	r3, [sp, #4]
6578	sxth	r6, r0
6579.L934:
6580	ldr	r2, [r10]
6581	add	r3, r3, r7
6582	add	r2, r2, r3, lsl #1
6583	ldr	r3, .L940+48
6584	strh	r6, [r2, #4]	@ movhi
6585	ldrh	r3, [r3]
6586	cmp	r7, r3
6587	beq	.L935
6588	ldr	r3, .L940+52
6589	ldrh	r3, [r3]
6590	cmp	r7, r3
6591	beq	.L935
6592	ldr	r3, .L940+56
6593	ldrh	r3, [r3]
6594	cmp	r7, r3
6595	beq	.L935
6596	ldr	r3, .L940+60
6597	uxth	r0, r4
6598	ldr	r3, [r3]
6599	ldrh	r3, [r3, r7, lsl #1]
6600	cbnz	r3, .L936
6601	add	r8, r8, #1
6602	uxth	r8, r8
6603	bl	INSERT_FREE_LIST
6604.L935:
6605	adds	r4, r4, #1
6606	b	.L930
6607.L933:
6608	ldr	r2, .L940+60
6609	movw	r1, #65535
6610	ldr	r2, [r2]
6611	strh	r1, [r2, r7, lsl #1]	@ movhi
6612	b	.L934
6613.L936:
6614	adds	r5, r5, #1
6615	uxth	r5, r5
6616	bl	INSERT_DATA_LIST
6617	b	.L935
6618.L937:
6619	ldr	r2, [sp, #8]
6620	strh	r8, [fp]	@ movhi
6621	strh	r5, [r2]	@ movhi
6622	add	r5, r5, r8
6623	cmp	r3, r5
6624	bge	.L939
6625	ldr	r1, .L940+64
6626	movw	r2, #2899
6627	ldr	r0, .L940+68
6628	bl	printf
6629	ldr	r1, .L940+72
6630	ldr	r0, .L940+76
6631	bl	printf
6632.L939:
6633	movs	r0, #0
6634	add	sp, sp, #24
6635	@ sp needed
6636	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6637.L941:
6638	.align	2
6639.L940:
6640	.word	.LANCHOR41
6641	.word	.LANCHOR83
6642	.word	.LANCHOR89
6643	.word	.LANCHOR87
6644	.word	.LANCHOR142
6645	.word	.LANCHOR84
6646	.word	.LANCHOR86
6647	.word	.LANCHOR90
6648	.word	.LANCHOR40
6649	.word	.LANCHOR38
6650	.word	.LANCHOR52
6651	.word	.LANCHOR47
6652	.word	.LANCHOR93
6653	.word	.LANCHOR94
6654	.word	.LANCHOR95
6655	.word	.LANCHOR85
6656	.word	.LANCHOR143
6657	.word	.LC5
6658	.word	.LC6
6659	.word	.LC7
6660	.size	SupperBlkListInit, .-SupperBlkListInit
6661	.section	.text.FtlGcPageVarInit,"ax",%progbits
6662	.align	1
6663	.global	FtlGcPageVarInit
6664	.syntax unified
6665	.thumb
6666	.thumb_func
6667	.fpu softvfp
6668	.type	FtlGcPageVarInit, %function
6669FtlGcPageVarInit:
6670	@ args = 0, pretend = 0, frame = 0
6671	@ frame_needed = 0, uses_anonymous_args = 0
6672	ldr	r2, .L943
6673	movs	r3, #0
6674	push	{r4, lr}
6675	movs	r1, #255
6676	ldr	r4, .L943+4
6677	strh	r3, [r2]	@ movhi
6678	ldr	r2, .L943+8
6679	strh	r3, [r2]	@ movhi
6680	ldrh	r2, [r4]
6681	ldr	r3, .L943+12
6682	lsls	r2, r2, #1
6683	ldr	r0, [r3]
6684	bl	ftl_memset
6685	ldrh	r3, [r4]
6686	movs	r2, #12
6687	movs	r1, #255
6688	muls	r2, r3, r2
6689	ldr	r3, .L943+16
6690	ldr	r0, [r3]
6691	bl	ftl_memset
6692	pop	{r4, lr}
6693	b	FtlGcBufInit
6694.L944:
6695	.align	2
6696.L943:
6697	.word	.LANCHOR112
6698	.word	.LANCHOR54
6699	.word	.LANCHOR113
6700	.word	.LANCHOR111
6701	.word	.LANCHOR114
6702	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
6703	.section	.text.idb_init,"ax",%progbits
6704	.align	1
6705	.global	idb_init
6706	.syntax unified
6707	.thumb
6708	.thumb_func
6709	.fpu softvfp
6710	.type	idb_init, %function
6711idb_init:
6712	@ args = 0, pretend = 0, frame = 0
6713	@ frame_needed = 0, uses_anonymous_args = 0
6714	push	{r3, lr}
6715	mov	r2, #262144
6716	movs	r1, #0
6717	ldr	r0, .L946
6718	bl	ftl_memset
6719	movs	r0, #0
6720	pop	{r3, pc}
6721.L947:
6722	.align	2
6723.L946:
6724	.word	idb_buf
6725	.size	idb_init, .-idb_init
6726	.section	.text.NandcXferData,"ax",%progbits
6727	.align	1
6728	.global	NandcXferData
6729	.syntax unified
6730	.thumb
6731	.thumb_func
6732	.fpu softvfp
6733	.type	NandcXferData, %function
6734NandcXferData:
6735	@ args = 4, pretend = 0, frame = 72
6736	@ frame_needed = 0, uses_anonymous_args = 0
6737	push	{r4, r5, r6, r7, r8, r10, lr}
6738	sub	sp, sp, #84
6739	ldr	r6, [sp, #112]
6740	mov	r10, r3
6741	mov	r8, r0
6742	mov	r4, r1
6743	ldr	r3, .L970
6744	mov	r7, r2
6745	ldr	r5, [r3, r0, lsl #3]
6746	cbnz	r6, .L949
6747	add	r6, sp, #16
6748	movs	r2, #64
6749	movs	r1, #255
6750	add	r0, sp, #16
6751	bl	ftl_memset
6752.L949:
6753	mov	r1, r4
6754	mov	r0, r8
6755	str	r6, [sp, #4]
6756	movs	r3, #0
6757	str	r10, [sp]
6758	mov	r2, r7
6759	bl	NandcXferStart
6760	mov	r1, r4
6761	mov	r0, r8
6762	bl	NandcXferComp
6763	cmp	r4, #0
6764	bne	.L963
6765	ldr	r1, .L970+4
6766	lsr	ip, r7, #1
6767	ldr	r8, .L970+12
6768	mov	r2, r4
6769	mov	r0, r4
6770	ldr	r3, [r1]
6771	cmp	r3, #25
6772	mov	r3, r6
6773	ite	cc
6774	movcc	lr, #64
6775	movcs	lr, #128
6776.L952:
6777	cmp	r0, ip
6778	add	r3, r3, #4
6779	add	r6, lr, r2
6780	bcc	.L953
6781	ldr	r3, .L970+8
6782	lsrs	r2, r7, #2
6783	ldr	r7, [r1]
6784	movs	r1, #0
6785	mov	r0, r1
6786	ldr	r6, [r3]
6787.L954:
6788	cmp	r1, r2
6789	bcs	.L950
6790	cbnz	r7, .L960
6791.L950:
6792	movs	r3, #0
6793	str	r3, [r5, #16]
6794	ldr	r3, .L970+8
6795	ldr	r3, [r3]
6796	cmp	r3, #5
6797	bls	.L948
6798	cbnz	r4, .L948
6799	ldr	r3, [r5]
6800	and	r2, r3, #139264
6801	cmp	r2, #139264
6802	ittt	eq
6803	moveq	r0, #-1
6804	orreq	r3, r3, #131072
6805	streq	r3, [r5]
6806.L948:
6807	add	sp, sp, #84
6808	@ sp needed
6809	pop	{r4, r5, r6, r7, r8, r10, pc}
6810.L953:
6811	bic	r10, r2, #3
6812	ldr	r2, [r8, #4]
6813	adds	r0, r0, #1
6814	ldr	r2, [r2, r10]
6815	strb	r2, [r3, #-4]
6816	lsr	r10, r2, #8
6817	strb	r10, [r3, #-3]
6818	lsr	r10, r2, #16
6819	lsrs	r2, r2, #24
6820	strb	r10, [r3, #-2]
6821	strb	r2, [r3, #-1]
6822	mov	r2, r6
6823	b	.L952
6824.L960:
6825	add	r3, r1, #8
6826	ldr	r3, [r5, r3, lsl #2]
6827	str	r3, [sp, #12]
6828	ldr	r3, [sp, #12]
6829	lsls	r3, r3, #29
6830	bmi	.L966
6831	ldr	r3, [sp, #12]
6832	ubfx	r3, r3, #15, #1
6833	cmp	r3, #0
6834	bne	.L966
6835	cmp	r6, #5
6836	bls	.L956
6837	ldr	r3, [sp, #12]
6838	ubfx	ip, r3, #3, #5
6839	ldr	r3, [sp, #12]
6840	ubfx	r8, r3, #27, #1
6841	ldr	r3, [sp, #12]
6842	ldr	lr, [sp, #12]
6843	orr	ip, ip, r8, lsl #5
6844	ubfx	r3, r3, #16, #5
6845	ubfx	lr, lr, #29, #1
6846	orr	r3, r3, lr, lsl #5
6847	cmp	ip, r3
6848	ldr	r3, [sp, #12]
6849	itete	hi
6850	ldrhi	ip, [sp, #12]
6851	ldrls	ip, [sp, #12]
6852	ubfxhi	r3, r3, #3, #5
6853	ubfxls	r3, r3, #16, #5
6854	ite	hi
6855	ubfxhi	ip, ip, #27, #1
6856	ubfxls	ip, ip, #29, #1
6857.L969:
6858	orr	r3, r3, ip, lsl #5
6859.L958:
6860	cmp	r0, r3
6861	it	cc
6862	movcc	r0, r3
6863.L955:
6864	adds	r1, r1, #1
6865	b	.L954
6866.L956:
6867	cmp	r6, #3
6868	bls	.L958
6869	ldr	r3, [sp, #12]
6870	ubfx	ip, r3, #3, #5
6871	ldr	r3, [sp, #12]
6872	ubfx	r8, r3, #28, #1
6873	ldr	r3, [sp, #12]
6874	ldr	lr, [sp, #12]
6875	orr	ip, ip, r8, lsl #5
6876	ubfx	r3, r3, #16, #5
6877	ubfx	lr, lr, #30, #1
6878	orr	r3, r3, lr, lsl #5
6879	cmp	ip, r3
6880	ldr	r3, [sp, #12]
6881	itete	hi
6882	ldrhi	ip, [sp, #12]
6883	ldrls	ip, [sp, #12]
6884	ubfxhi	r3, r3, #3, #5
6885	ubfxls	r3, r3, #16, #5
6886	ite	hi
6887	ubfxhi	ip, ip, #28, #1
6888	ubfxls	ip, ip, #30, #1
6889	b	.L969
6890.L966:
6891	mov	r0, #-1
6892	b	.L955
6893.L963:
6894	movs	r0, #0
6895	b	.L950
6896.L971:
6897	.align	2
6898.L970:
6899	.word	.LANCHOR0
6900	.word	.LANCHOR32
6901	.word	.LANCHOR34
6902	.word	.LANCHOR35
6903	.size	NandcXferData, .-NandcXferData
6904	.section	.text.FlashReadRawPage,"ax",%progbits
6905	.align	1
6906	.global	FlashReadRawPage
6907	.syntax unified
6908	.thumb
6909	.thumb_func
6910	.fpu softvfp
6911	.type	FlashReadRawPage, %function
6912FlashReadRawPage:
6913	@ args = 0, pretend = 0, frame = 0
6914	@ frame_needed = 0, uses_anonymous_args = 0
6915	push	{r0, r1, r4, r5, r6, r7, r8, lr}
6916	mov	r8, r3
6917	ldr	r3, .L974
6918	mov	r6, r1
6919	mov	r7, r2
6920	mov	r4, r0
6921	ldrb	r5, [r3, #9]	@ zero_extendqisi2
6922	cbnz	r0, .L973
6923	ldr	r3, .L974+4
6924	ldr	r2, .L974+8
6925	ldrb	r3, [r3]	@ zero_extendqisi2
6926	ldr	r0, [r2]
6927	muls	r0, r3, r0
6928	cmp	r0, r1
6929	it	hi
6930	movhi	r5, #4
6931.L973:
6932	mov	r0, r4
6933	bl	NandcWaitFlashReady
6934	mov	r0, r4
6935	bl	NandcFlashCs
6936	mov	r1, r6
6937	mov	r0, r4
6938	bl	FlashReadCmd
6939	mov	r0, r4
6940	bl	NandcWaitFlashReady
6941	mov	r3, r7
6942	mov	r2, r5
6943	str	r8, [sp]
6944	movs	r1, #0
6945	mov	r0, r4
6946	bl	NandcXferData
6947	mov	r1, r0
6948	mov	r0, r4
6949	bl	NandcFlashDeCs
6950	mov	r0, r1
6951	add	sp, sp, #8
6952	@ sp needed
6953	pop	{r4, r5, r6, r7, r8, pc}
6954.L975:
6955	.align	2
6956.L974:
6957	.word	.LANCHOR31
6958	.word	.LANCHOR3
6959	.word	.LANCHOR4
6960	.size	FlashReadRawPage, .-FlashReadRawPage
6961	.section	.text.FlashDdrTunningRead,"ax",%progbits
6962	.align	1
6963	.global	FlashDdrTunningRead
6964	.syntax unified
6965	.thumb
6966	.thumb_func
6967	.fpu softvfp
6968	.type	FlashDdrTunningRead, %function
6969FlashDdrTunningRead:
6970	@ args = 4, pretend = 0, frame = 24
6971	@ frame_needed = 0, uses_anonymous_args = 0
6972	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6973	mov	r7, r3
6974	ldr	r3, .L1001
6975	sub	sp, sp, #24
6976	str	r0, [sp, #8]
6977	ldr	r3, [r3]
6978	str	r1, [sp, #12]
6979	str	r2, [sp, #4]
6980	ldr	r3, [r3, #304]
6981	str	r3, [sp, #20]
6982	ldr	r3, .L1001+4
6983	ldr	r3, [r3]
6984	cmp	r3, #8
6985	ldr	r3, [sp, #56]
6986	ite	cc
6987	movcc	fp, #6
6988	movcs	fp, #12
6989	cmp	r3, #0
6990	beq	.L990
6991	movs	r0, #1
6992	ldr	r4, .L1001+8
6993	bl	FlashSetInterfaceMode
6994	movs	r0, #1
6995	bl	NandcSetMode
6996	ldr	r0, [sp, #8]
6997	bl	FlashReset
6998	mov	r3, r7
6999	ldr	r2, [sp, #4]
7000	ldr	r1, [sp, #12]
7001	ldr	r0, [sp, #8]
7002	bl	FlashReadRawPage
7003	mov	r6, r0
7004	ldrb	r0, [r4]	@ zero_extendqisi2
7005	bl	FlashSetInterfaceMode
7006	ldrb	r0, [r4]	@ zero_extendqisi2
7007	bl	NandcSetMode
7008	adds	r3, r6, #1
7009	bne	.L979
7010.L988:
7011	mov	r6, #-1
7012.L976:
7013	mov	r0, r6
7014	add	sp, sp, #24
7015	@ sp needed
7016	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7017.L979:
7018	mov	r2, r6
7019	ldr	r1, [sp, #12]
7020	ldr	r0, .L1001+12
7021	bl	printf
7022	ldr	r2, .L1001+16
7023	ldr	r3, [r2]
7024	adds	r3, r3, #1
7025	cmp	r3, #2048
7026	bcs	.L981
7027	str	r3, [r2]
7028	b	.L976
7029.L981:
7030	movs	r7, #0
7031	str	r7, [r2]
7032	str	r7, [sp, #4]
7033.L978:
7034	mov	r10, #0
7035	mov	r8, #-1
7036	mov	r5, r10
7037	mov	r4, r10
7038	str	r10, [sp, #16]
7039.L986:
7040	uxtb	r0, fp
7041	bl	NandcSetDdrPara
7042	mov	r3, r7
7043	ldr	r2, [sp, #4]
7044	ldr	r1, [sp, #12]
7045	ldr	r0, [sp, #8]
7046	bl	FlashReadRawPage
7047	adds	r3, r6, #1
7048	cmp	r0, r3
7049	bhi	.L982
7050	cmp	r0, #2
7051	bhi	.L992
7052	adds	r4, r4, #1
7053	cmp	r4, #9
7054	bls	.L992
7055	mov	r3, r5
7056	mov	r6, r0
7057	sub	r5, fp, r4
7058	mov	r8, #0
7059.L984:
7060	ldr	r2, [sp, #16]
7061	cmp	r4, r2
7062	it	ls
7063	movls	r5, r3
7064.L985:
7065	cbz	r5, .L987
7066	mov	r1, r5
7067	ldr	r0, .L1001+20
7068	bl	printf
7069	uxtb	r0, r5
7070	bl	NandcSetDdrPara
7071.L987:
7072	cmp	r8, #0
7073	beq	.L976
7074	ldr	r2, [sp, #12]
7075	ldr	r1, [sp, #8]
7076	ldr	r0, .L1001+24
7077	bl	printf
7078	ldr	r3, [sp, #56]
7079	cmp	r3, #0
7080	beq	.L988
7081	ldr	r3, [sp, #20]
7082	ubfx	r0, r3, #8, #8
7083	bl	NandcSetDdrPara
7084	b	.L976
7085.L990:
7086	mov	r6, #1024
7087	b	.L978
7088.L982:
7089	ldr	r3, [sp, #16]
7090	cmp	r4, r3
7091	bls	.L993
7092	cmp	r4, #7
7093	sub	r5, r10, r4
7094	bhi	.L985
7095	str	r4, [sp, #16]
7096.L993:
7097	movs	r4, #0
7098	b	.L983
7099.L992:
7100	mov	r8, #0
7101	mov	r10, fp
7102	mov	r6, r0
7103	mov	r7, r8
7104	str	r8, [sp, #4]
7105.L983:
7106	add	fp, fp, #2
7107	cmp	fp, #69
7108	bls	.L986
7109	mov	r3, r5
7110	mov	r5, r10
7111	b	.L984
7112.L1002:
7113	.align	2
7114.L1001:
7115	.word	.LANCHOR19
7116	.word	.LANCHOR34
7117	.word	.LANCHOR25
7118	.word	.LC9
7119	.word	.LANCHOR144
7120	.word	.LC10
7121	.word	.LC11
7122	.size	FlashDdrTunningRead, .-FlashDdrTunningRead
7123	.section	.text.FlashReadPage,"ax",%progbits
7124	.align	1
7125	.global	FlashReadPage
7126	.syntax unified
7127	.thumb
7128	.thumb_func
7129	.fpu softvfp
7130	.type	FlashReadPage, %function
7131FlashReadPage:
7132	@ args = 0, pretend = 0, frame = 0
7133	@ frame_needed = 0, uses_anonymous_args = 0
7134	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7135	mov	r7, r2
7136	mov	r5, r0
7137	mov	r6, r1
7138	mov	r8, r3
7139	bl	FlashReadRawPage
7140	adds	r2, r0, #1
7141	mov	r4, r0
7142	bne	.L1004
7143	ldr	r10, .L1022+20
7144	ldrb	fp, [r10]	@ zero_extendqisi2
7145	cmp	fp, #0
7146	bne	.L1005
7147.L1007:
7148	ldr	r3, .L1022
7149	ldrb	r3, [r3]	@ zero_extendqisi2
7150	cbz	r3, .L1004
7151	ldr	r3, .L1022+4
7152	mov	r1, r6
7153	mov	r2, r7
7154	mov	r0, r5
7155	ldr	r3, [r3]
7156	ldr	r10, [r3, #304]
7157	movs	r3, #1
7158	str	r3, [sp]
7159	mov	r3, r8
7160	bl	FlashDdrTunningRead
7161	adds	r1, r0, #1
7162	mov	r4, r0
7163	beq	.L1008
7164	ldr	r3, .L1022+8
7165	ldrb	r3, [r3]	@ zero_extendqisi2
7166	cmp	r0, r3, lsr #1
7167	bls	.L1004
7168.L1008:
7169	ubfx	r0, r10, #8, #8
7170	bl	NandcSetDdrPara
7171	b	.L1004
7172.L1005:
7173	movs	r3, #0
7174	mov	r2, r7
7175	strb	r3, [r10]
7176	mov	r1, r6
7177	mov	r3, r8
7178	mov	r0, r5
7179	bl	FlashReadRawPage
7180	adds	r3, r0, #1
7181	strb	fp, [r10]
7182	beq	.L1007
7183	mov	r4, r0
7184.L1004:
7185	ldr	r10, .L1022+24
7186	ldr	fp, [r10]
7187	cmp	fp, #0
7188	beq	.L1003
7189	adds	r2, r4, #1
7190	bne	.L1003
7191	mov	r3, r8
7192	mov	r2, r7
7193	mov	r1, r6
7194	mov	r0, r5
7195	blx	fp
7196	mov	r3, r6
7197	mov	r4, r0
7198	mov	r1, r0
7199	mov	r2, r5
7200	ldr	r0, .L1022+12
7201	bl	printf
7202	adds	r3, r4, #1
7203	bne	.L1003
7204	ldr	r3, .L1022+16
7205	ldrb	r3, [r3]	@ zero_extendqisi2
7206	cbz	r3, .L1003
7207	mov	r0, r5
7208	bl	flash_enter_slc_mode
7209	ldr	r4, [r10]
7210	mov	r3, r8
7211	mov	r2, r7
7212	mov	r1, r6
7213	mov	r0, r5
7214	blx	r4
7215	mov	r4, r0
7216	mov	r0, r5
7217	bl	flash_exit_slc_mode
7218.L1003:
7219	mov	r0, r4
7220	add	sp, sp, #8
7221	@ sp needed
7222	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7223.L1023:
7224	.align	2
7225.L1022:
7226	.word	.LANCHOR30
7227	.word	.LANCHOR19
7228	.word	.LANCHOR33
7229	.word	.LC12
7230	.word	.LANCHOR16
7231	.word	.LANCHOR6
7232	.word	.LANCHOR145
7233	.size	FlashReadPage, .-FlashReadPage
7234	.section	.text.FlashDdrParaScan,"ax",%progbits
7235	.align	1
7236	.global	FlashDdrParaScan
7237	.syntax unified
7238	.thumb
7239	.thumb_func
7240	.fpu softvfp
7241	.type	FlashDdrParaScan, %function
7242FlashDdrParaScan:
7243	@ args = 0, pretend = 0, frame = 0
7244	@ frame_needed = 0, uses_anonymous_args = 0
7245	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7246	mov	r6, r0
7247	ldr	r4, .L1035
7248	movs	r5, #0
7249	mov	r7, r1
7250	ldrb	r0, [r4]	@ zero_extendqisi2
7251	bl	FlashSetInterfaceMode
7252	ldrb	r0, [r4]	@ zero_extendqisi2
7253	bl	NandcSetMode
7254	mov	r3, r5
7255	mov	r2, r5
7256	str	r5, [sp]
7257	mov	r1, r7
7258	mov	r0, r6
7259	bl	FlashDdrTunningRead
7260	mov	r3, r5
7261	mov	r2, r5
7262	mov	r8, r0
7263	mov	r1, r7
7264	mov	r0, r6
7265	ldr	r5, .L1035+4
7266	bl	FlashReadRawPage
7267	adds	r0, r0, #1
7268	beq	.L1025
7269	cmp	r8, #-1
7270	bne	.L1026
7271.L1025:
7272	ldrb	r3, [r4]	@ zero_extendqisi2
7273	lsls	r3, r3, #31
7274	bpl	.L1026
7275	movs	r0, #1
7276	bl	FlashSetInterfaceMode
7277	movs	r0, #1
7278	bl	NandcSetMode
7279	movs	r3, #0
7280.L1034:
7281	movs	r0, #0
7282	strb	r3, [r5]
7283	add	sp, sp, #8
7284	@ sp needed
7285	pop	{r4, r5, r6, r7, r8, pc}
7286.L1026:
7287	movs	r3, #1
7288	b	.L1034
7289.L1036:
7290	.align	2
7291.L1035:
7292	.word	.LANCHOR25
7293	.word	.LANCHOR30
7294	.size	FlashDdrParaScan, .-FlashDdrParaScan
7295	.section	.text.ToshibaReadRetrial,"ax",%progbits
7296	.align	1
7297	.global	ToshibaReadRetrial
7298	.syntax unified
7299	.thumb
7300	.thumb_func
7301	.fpu softvfp
7302	.type	ToshibaReadRetrial, %function
7303ToshibaReadRetrial:
7304	@ args = 0, pretend = 0, frame = 24
7305	@ frame_needed = 0, uses_anonymous_args = 0
7306	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7307	sub	sp, sp, #24
7308	mov	r6, r0
7309	str	r2, [sp, #12]
7310	mov	fp, r3
7311	str	r1, [sp, #20]
7312	bl	NandcWaitFlashReady
7313	ldr	r3, .L1064
7314	ldr	r2, .L1064+4
7315	ldr	r4, [r3, r6, lsl #3]
7316	add	r3, r3, r6, lsl #3
7317	str	r2, [sp, #16]
7318	ldrb	r7, [r3, #4]	@ zero_extendqisi2
7319	ldrb	r3, [r2]	@ zero_extendqisi2
7320	add	r5, r7, #8
7321	subs	r3, r3, #67
7322	add	r5, r4, r5, lsl #8
7323	cmp	r3, #1
7324	bls	.L1054
7325	ldr	r3, .L1064+8
7326	ldrb	r3, [r3]	@ zero_extendqisi2
7327	cbz	r3, .L1055
7328	movs	r0, #0
7329	bl	NandcSetDdrMode
7330	movs	r3, #1
7331.L1055:
7332	str	r3, [sp, #8]
7333	add	r3, r4, r7, lsl #8
7334	movs	r2, #92
7335	str	r2, [r3, #2056]
7336	movs	r2, #197
7337	str	r2, [r3, #2056]
7338.L1038:
7339	mov	r8, #1
7340	mov	r3, #-1
7341	str	r3, [sp, #4]
7342.L1040:
7343	ldr	r3, .L1064+12
7344	ldrb	r3, [r3]	@ zero_extendqisi2
7345	adds	r3, r3, #1
7346	cmp	r8, r3
7347	bcc	.L1049
7348	ldr	r10, [sp, #4]
7349.L1048:
7350	ldr	r3, [sp, #16]
7351	movs	r1, #0
7352	mov	r0, r5
7353	ldrb	r2, [r3]	@ zero_extendqisi2
7354	subs	r2, r2, #67
7355	cmp	r2, #1
7356	bhi	.L1050
7357	bl	SandiskSetRRPara
7358.L1051:
7359	add	r4, r4, r7, lsl #8
7360	movs	r2, #255
7361	str	r2, [r4, #2056]
7362	ldr	r2, .L1064+16
7363	ldrb	r2, [r2]	@ zero_extendqisi2
7364	add	r2, r2, r2, lsl #1
7365	cmp	r10, r2, asr #2
7366	bcc	.L1052
7367	cmp	r10, #-1
7368	it	ne
7369	movne	r10, #256
7370.L1052:
7371	mov	r0, r6
7372	bl	NandcWaitFlashReady
7373	ldr	r3, [sp, #8]
7374	cbz	r3, .L1037
7375	movs	r0, #4
7376	bl	NandcSetDdrMode
7377.L1037:
7378	mov	r0, r10
7379	add	sp, sp, #24
7380	@ sp needed
7381	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7382.L1054:
7383	movs	r3, #0
7384	str	r3, [sp, #8]
7385	b	.L1038
7386.L1049:
7387	ldr	r3, [sp, #16]
7388	mov	r0, r5
7389	uxtb	r1, r8
7390	ldrb	r3, [r3]	@ zero_extendqisi2
7391	subs	r3, r3, #67
7392	cmp	r3, #1
7393	bhi	.L1041
7394	bl	SandiskSetRRPara
7395.L1042:
7396	ldr	r3, [sp, #16]
7397	ldrb	r3, [r3]	@ zero_extendqisi2
7398	cmp	r3, #34
7399	bne	.L1043
7400	ldr	r3, .L1064+12
7401	ldrb	r3, [r3]	@ zero_extendqisi2
7402	subs	r3, r3, #3
7403	cmp	r8, r3
7404	ittt	eq
7405	addeq	r3, r4, r7, lsl #8
7406	moveq	r2, #179
7407	streq	r2, [r3, #2056]
7408.L1043:
7409	add	r3, r4, r7, lsl #8
7410	movs	r2, #38
7411	str	r2, [r3, #2056]
7412	movs	r2, #93
7413	str	r2, [r3, #2056]
7414	ldr	r3, [sp, #8]
7415	cbz	r3, .L1044
7416	movs	r0, #4
7417	bl	NandcSetDdrMode
7418	mov	r3, fp
7419	ldr	r2, [sp, #12]
7420	ldr	r1, [sp, #20]
7421	mov	r0, r6
7422	bl	FlashReadRawPage
7423	mov	r10, r0
7424	movs	r0, #0
7425	bl	NandcSetDdrMode
7426.L1045:
7427	cmp	r10, #-1
7428	beq	.L1046
7429	ldr	r2, .L1064+16
7430	ldr	r3, [sp, #4]
7431	ldrb	r2, [r2]	@ zero_extendqisi2
7432	cmp	r3, #-1
7433	it	eq
7434	moveq	r3, r10
7435	str	r3, [sp, #4]
7436	add	r2, r2, r2, lsl #1
7437	cmp	r10, r2, asr #2
7438	bcc	.L1048
7439	mov	fp, #0
7440	str	fp, [sp, #12]
7441.L1046:
7442	add	r8, r8, #1
7443	b	.L1040
7444.L1041:
7445	bl	ToshibaSetRRPara
7446	b	.L1042
7447.L1044:
7448	mov	r3, fp
7449	ldr	r2, [sp, #12]
7450	ldr	r1, [sp, #20]
7451	mov	r0, r6
7452	bl	FlashReadRawPage
7453	mov	r10, r0
7454	b	.L1045
7455.L1050:
7456	bl	ToshibaSetRRPara
7457	b	.L1051
7458.L1065:
7459	.align	2
7460.L1064:
7461	.word	.LANCHOR0
7462	.word	.LANCHOR10
7463	.word	.LANCHOR30
7464	.word	.LANCHOR146
7465	.word	.LANCHOR33
7466	.size	ToshibaReadRetrial, .-ToshibaReadRetrial
7467	.section	.text.SamsungReadRetrial,"ax",%progbits
7468	.align	1
7469	.global	SamsungReadRetrial
7470	.syntax unified
7471	.thumb
7472	.thumb_func
7473	.fpu softvfp
7474	.type	SamsungReadRetrial, %function
7475SamsungReadRetrial:
7476	@ args = 0, pretend = 0, frame = 0
7477	@ frame_needed = 0, uses_anonymous_args = 0
7478	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7479	mov	r7, r0
7480	mov	r10, r2
7481	mov	r8, r3
7482	mov	fp, r1
7483	movs	r6, #1
7484	bl	NandcWaitFlashReady
7485	ldr	r2, .L1079
7486	mov	r4, #-1
7487	add	r3, r2, r7, lsl #3
7488	ldrb	r5, [r3, #4]	@ zero_extendqisi2
7489	add	r3, r5, #8
7490	ldr	r5, [r2, r7, lsl #3]
7491	add	r5, r5, r3, lsl #8
7492.L1067:
7493	ldr	r3, .L1079+4
7494	ldrb	r3, [r3]	@ zero_extendqisi2
7495	adds	r3, r3, #1
7496	cmp	r6, r3
7497	bcc	.L1071
7498.L1070:
7499	movs	r1, #0
7500	mov	r0, r5
7501	bl	SamsungSetRRPara
7502	ldr	r3, .L1079+8
7503	ldrb	r3, [r3]	@ zero_extendqisi2
7504	add	r3, r3, r3, lsl #1
7505	cmp	r4, r3, asr #2
7506	bcc	.L1066
7507	adds	r3, r4, #1
7508	it	ne
7509	movne	r4, #256
7510.L1066:
7511	mov	r0, r4
7512	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7513.L1071:
7514	uxtb	r1, r6
7515	mov	r0, r5
7516	bl	SamsungSetRRPara
7517	mov	r2, r10
7518	mov	r3, r8
7519	mov	r1, fp
7520	mov	r0, r7
7521	bl	FlashReadRawPage
7522	adds	r2, r0, #1
7523	beq	.L1068
7524	ldr	r3, .L1079+8
7525	cmp	r4, #-1
7526	it	eq
7527	moveq	r4, r0
7528	ldrb	r3, [r3]	@ zero_extendqisi2
7529	add	r3, r3, r3, lsl #1
7530	cmp	r0, r3, asr #2
7531	bcc	.L1074
7532	mov	r8, #0
7533	mov	r10, r8
7534.L1068:
7535	adds	r6, r6, #1
7536	b	.L1067
7537.L1074:
7538	mov	r4, r0
7539	b	.L1070
7540.L1080:
7541	.align	2
7542.L1079:
7543	.word	.LANCHOR0
7544	.word	.LANCHOR146
7545	.word	.LANCHOR33
7546	.size	SamsungReadRetrial, .-SamsungReadRetrial
7547	.section	.text.MicronReadRetrial,"ax",%progbits
7548	.align	1
7549	.global	MicronReadRetrial
7550	.syntax unified
7551	.thumb
7552	.thumb_func
7553	.fpu softvfp
7554	.type	MicronReadRetrial, %function
7555MicronReadRetrial:
7556	@ args = 0, pretend = 0, frame = 32
7557	@ frame_needed = 0, uses_anonymous_args = 0
7558	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7559	mov	r7, r3
7560	ldr	r3, .L1106
7561	sub	sp, sp, #40
7562	mov	r5, r0
7563	str	r2, [sp, #16]
7564	ldrb	r2, [r3]	@ zero_extendqisi2
7565	ldr	r3, .L1106+4
7566	str	r1, [sp, #28]
7567	ldrb	r3, [r3]	@ zero_extendqisi2
7568	cmp	r3, #0
7569	bne	.L1082
7570	add	r2, r2, r2, lsl #1
7571	asrs	r3, r2, #2
7572.L1105:
7573.L1083:
7574	mov	r8, #0
7575	str	r3, [sp, #12]
7576	mov	r6, r8
7577.L1093:
7578	mov	r0, r5
7579	mov	r10, #0
7580	bl	NandcWaitFlashReady
7581	ldr	r3, .L1106+8
7582	mov	r4, #-1
7583	ldr	r2, [r3, r5, lsl #3]
7584	add	r3, r3, r5, lsl #3
7585	ldrb	fp, [r3, #4]	@ zero_extendqisi2
7586	str	r2, [sp, #24]
7587	lsl	r3, fp, #8
7588	str	r3, [sp, #32]
7589.L1084:
7590	ldr	r3, .L1106+12
7591	ldrb	r3, [r3]	@ zero_extendqisi2
7592	cmp	r10, r3
7593	bcc	.L1088
7594.L1087:
7595	ldr	r3, [sp, #24]
7596	movs	r0, #200
7597	add	fp, r3, fp, lsl #8
7598	movs	r3, #239
7599	str	r3, [fp, #2056]
7600	movs	r3, #137
7601	str	r3, [fp, #2052]
7602	bl	udelay
7603	ldr	r3, [sp, #12]
7604	str	r6, [fp, #2048]
7605	str	r6, [fp, #2048]
7606	cmp	r4, r3
7607	str	r6, [fp, #2048]
7608	str	r6, [fp, #2048]
7609	bcc	.L1089
7610	adds	r1, r4, #1
7611	mov	r3, r10
7612	it	ne
7613	movne	r4, #256
7614	ldr	r2, [sp, #28]
7615	str	r4, [sp]
7616	mov	r1, r10
7617	ldr	r0, .L1106+16
7618	bl	printf
7619	cmp	r8, #0
7620	bne	.L1091
7621	ldr	r3, .L1106+4
7622	ldrb	r3, [r3]	@ zero_extendqisi2
7623	cmp	r3, #0
7624	beq	.L1081
7625	adds	r2, r4, #1
7626	bne	.L1081
7627	movs	r1, #3
7628	mov	r0, r5
7629	bl	micron_auto_read_calibration_config
7630	mov	r8, #1
7631	b	.L1093
7632.L1082:
7633	ldr	r3, .L1106+20
7634	smull	r2, r3, r2, r3
7635	b	.L1105
7636.L1088:
7637	ldr	r2, [sp, #32]
7638	movs	r0, #200
7639	ldr	r3, [sp, #24]
7640	add	r3, r3, r2
7641	movs	r2, #239
7642	str	r2, [r3, #2056]
7643	movs	r2, #137
7644	str	r2, [r3, #2052]
7645	str	r3, [sp, #36]
7646	bl	udelay
7647	add	r3, r10, #1
7648	ldr	r1, [sp, #28]
7649	mov	r2, r3
7650	str	r3, [sp, #20]
7651	ldr	r3, [sp, #36]
7652	mov	r0, r5
7653	str	r2, [r3, #2048]
7654	str	r6, [r3, #2048]
7655	ldr	r2, [sp, #16]
7656	str	r6, [r3, #2048]
7657	str	r6, [r3, #2048]
7658	mov	r3, r7
7659	bl	FlashReadRawPage
7660	adds	r3, r0, #1
7661	beq	.L1085
7662	ldr	r3, [sp, #12]
7663	cmp	r4, #-1
7664	it	eq
7665	moveq	r4, r0
7666	cmp	r0, r3
7667	bcc	.L1095
7668	movs	r7, #0
7669	str	r7, [sp, #16]
7670.L1085:
7671	ldr	r10, [sp, #20]
7672	b	.L1084
7673.L1095:
7674	movs	r7, #0
7675	mov	r4, r0
7676	str	r7, [sp, #16]
7677	b	.L1087
7678.L1091:
7679	movs	r1, #0
7680	mov	r0, r5
7681	bl	micron_auto_read_calibration_config
7682	adds	r3, r4, #1
7683	it	ne
7684	movne	r4, #256
7685.L1081:
7686	mov	r0, r4
7687	add	sp, sp, #40
7688	@ sp needed
7689	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7690.L1089:
7691	cmp	r8, #0
7692	beq	.L1081
7693	movs	r1, #0
7694	mov	r0, r5
7695	bl	micron_auto_read_calibration_config
7696	mov	r4, #256
7697	b	.L1081
7698.L1107:
7699	.align	2
7700.L1106:
7701	.word	.LANCHOR33
7702	.word	.LANCHOR16
7703	.word	.LANCHOR0
7704	.word	.LANCHOR146
7705	.word	.LC13
7706	.word	1431655766
7707	.size	MicronReadRetrial, .-MicronReadRetrial
7708	.section	.text.HynixReadRetrial,"ax",%progbits
7709	.align	1
7710	.global	HynixReadRetrial
7711	.syntax unified
7712	.thumb
7713	.thumb_func
7714	.fpu softvfp
7715	.type	HynixReadRetrial, %function
7716HynixReadRetrial:
7717	@ args = 0, pretend = 0, frame = 8
7718	@ frame_needed = 0, uses_anonymous_args = 0
7719	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7720	mov	r10, r3
7721	ldr	r4, .L1125
7722	mov	r8, #0
7723	mov	r6, #-1
7724	mov	fp, r2
7725	mov	r7, r0
7726	str	r1, [sp, #4]
7727	ldrb	r3, [r4, #2]	@ zero_extendqisi2
7728	adds	r2, r4, r0
7729	ldrb	r5, [r2, #12]	@ zero_extendqisi2
7730	str	r3, [sp]
7731	ldr	r3, .L1125+4
7732	ldr	r3, [r3]
7733	ldrb	r3, [r3, #19]	@ zero_extendqisi2
7734	subs	r3, r3, #7
7735	cmp	r3, #1
7736	it	ls
7737	ldrbls	r5, [r2, #20]	@ zero_extendqisi2
7738	bl	NandcWaitFlashReady
7739.L1110:
7740	ldr	r3, [sp]
7741	cmp	r8, r3
7742	bcc	.L1115
7743.L1114:
7744	ldr	r3, .L1125+4
7745	add	r4, r4, r7
7746	ldr	r3, [r3]
7747	ldrb	r3, [r3, #19]	@ zero_extendqisi2
7748	subs	r3, r3, #7
7749	cmp	r3, #1
7750	ldr	r3, .L1125+8
7751	ite	ls
7752	strbls	r5, [r4, #20]
7753	strbhi	r5, [r4, #12]
7754	ldrb	r3, [r3]	@ zero_extendqisi2
7755	add	r3, r3, r3, lsl #1
7756	cmp	r6, r3, asr #2
7757	bcc	.L1108
7758	adds	r3, r6, #1
7759	it	ne
7760	movne	r6, #256
7761.L1108:
7762	mov	r0, r6
7763	add	sp, sp, #8
7764	@ sp needed
7765	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7766.L1115:
7767	ldr	r3, [sp]
7768	adds	r5, r5, #1
7769	uxtb	r5, r5
7770	ldr	r2, .L1125+12
7771	ldrb	r1, [r4, #1]	@ zero_extendqisi2
7772	mov	r0, r7
7773	cmp	r3, r5
7774	it	ls
7775	movls	r5, #0
7776	mov	r3, r5
7777	bl	HynixSetRRPara
7778	mov	r2, fp
7779	mov	r3, r10
7780	ldr	r1, [sp, #4]
7781	mov	r0, r7
7782	bl	FlashReadRawPage
7783	adds	r2, r0, #1
7784	beq	.L1112
7785	ldr	r3, .L1125+8
7786	cmp	r6, #-1
7787	it	eq
7788	moveq	r6, r0
7789	ldrb	r3, [r3]	@ zero_extendqisi2
7790	add	r3, r3, r3, lsl #1
7791	cmp	r0, r3, asr #2
7792	bcc	.L1119
7793	mov	r10, #0
7794	mov	fp, r10
7795.L1112:
7796	add	r8, r8, #1
7797	b	.L1110
7798.L1119:
7799	mov	r6, r0
7800	b	.L1114
7801.L1126:
7802	.align	2
7803.L1125:
7804	.word	.LANCHOR20
7805	.word	.LANCHOR7
7806	.word	.LANCHOR33
7807	.word	.LANCHOR20+4
7808	.size	HynixReadRetrial, .-HynixReadRetrial
7809	.section	.text.samsung_read_retrial,"ax",%progbits
7810	.align	1
7811	.syntax unified
7812	.thumb
7813	.thumb_func
7814	.fpu softvfp
7815	.type	samsung_read_retrial, %function
7816samsung_read_retrial:
7817	@ args = 0, pretend = 0, frame = 16
7818	@ frame_needed = 0, uses_anonymous_args = 0
7819	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7820	sub	sp, sp, #24
7821	mov	r8, r0
7822	mov	r10, r2
7823	mov	r7, r3
7824	str	r1, [sp, #16]
7825	bl	NandcWaitFlashReady
7826	ldr	r3, .L1152
7827	ldr	r2, [r3, r8, lsl #3]
7828	add	r3, r3, r8, lsl #3
7829	str	r2, [sp, #12]
7830	ldr	r2, .L1152+4
7831	ldrb	r3, [r3, #4]	@ zero_extendqisi2
7832	ldrb	r2, [r2]	@ zero_extendqisi2
7833	cmp	r2, #0
7834	bne	.L1128
7835	lsls	r3, r3, #8
7836	mov	r4, #-1
7837	movs	r6, #1
7838	str	r3, [sp, #20]
7839	ldr	r2, [sp, #20]
7840	ldr	r3, [sp, #12]
7841	adds	r5, r3, r2
7842.L1132:
7843	movs	r3, #239
7844	mov	fp, #0
7845	str	r3, [r5, #2056]
7846	movs	r3, #141
7847	str	r3, [r5, #2052]
7848	mov	r2, r10
7849	ldr	r3, .L1152+8
7850	mov	r0, r8
7851	ldr	r1, [sp, #16]
7852	ldrsb	r3, [r6, r3]
7853	str	r3, [r5, #2048]
7854	mov	r3, r7
7855	str	fp, [r5, #2048]
7856	str	fp, [r5, #2048]
7857	str	fp, [r5, #2048]
7858	bl	FlashReadRawPage
7859	adds	r1, r0, #1
7860	beq	.L1129
7861	ldr	r3, .L1152+12
7862	cmp	r4, #-1
7863	it	eq
7864	moveq	r4, r0
7865	ldrb	r3, [r3]	@ zero_extendqisi2
7866	add	r3, r3, r3, lsl #1
7867	cmp	r0, r3, asr #2
7868	bcc	.L1140
7869	mov	r7, fp
7870	mov	r10, fp
7871.L1129:
7872	adds	r6, r6, #1
7873	cmp	r6, #26
7874	bne	.L1132
7875.L1131:
7876	ldr	r2, [sp, #20]
7877	ldr	r3, [sp, #12]
7878	add	r3, r3, r2
7879	movs	r2, #239
7880	str	r2, [r3, #2056]
7881	movs	r3, #141
7882.L1151:
7883	str	r3, [r5, #2052]
7884	movs	r3, #0
7885	str	r3, [r5, #2048]
7886	str	r3, [r5, #2048]
7887	str	r3, [r5, #2048]
7888	str	r3, [r5, #2048]
7889	ldr	r3, .L1152+12
7890	ldrb	r3, [r3]	@ zero_extendqisi2
7891	add	r3, r3, r3, lsl #1
7892	cmp	r4, r3, asr #2
7893	bcc	.L1138
7894	adds	r3, r4, #1
7895	ldr	r2, [sp, #16]
7896	it	ne
7897	movne	r4, #256
7898	mov	r3, r6
7899	str	r4, [sp]
7900	mov	r1, r6
7901	ldr	r0, .L1152+16
7902	bl	printf
7903.L1138:
7904	mov	r0, r8
7905	bl	NandcWaitFlashReady
7906	mov	r0, r4
7907	add	sp, sp, #24
7908	@ sp needed
7909	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7910.L1140:
7911	mov	r4, r0
7912	b	.L1131
7913.L1128:
7914	lsls	r3, r3, #8
7915	ldr	fp, .L1152+20
7916	mov	r4, #-1
7917	str	r3, [sp, #20]
7918	movs	r6, #1
7919	ldr	r3, [sp, #12]
7920	ldr	r2, [sp, #20]
7921	adds	r5, r3, r2
7922.L1137:
7923	movs	r3, #239
7924	mov	r2, r10
7925	str	r3, [r5, #2056]
7926	movs	r3, #137
7927	str	r3, [r5, #2052]
7928	mov	r0, r8
7929	ldrb	r3, [fp, #4]	@ zero_extendqisi2
7930	ldr	r1, [sp, #16]
7931	str	r3, [r5, #2048]
7932	ldrb	r3, [fp, #5]	@ zero_extendqisi2
7933	str	r3, [r5, #2048]
7934	ldrb	r3, [fp, #6]	@ zero_extendqisi2
7935	str	r3, [r5, #2048]
7936	ldrb	r3, [fp, #7]	@ zero_extendqisi2
7937	str	r3, [r5, #2048]
7938	mov	r3, r7
7939	bl	FlashReadRawPage
7940	adds	r2, r0, #1
7941	beq	.L1134
7942	ldr	r3, .L1152+12
7943	cmp	r4, #-1
7944	it	eq
7945	moveq	r4, r0
7946	ldrb	r3, [r3]	@ zero_extendqisi2
7947	add	r3, r3, r3, lsl #1
7948	cmp	r0, r3, asr #2
7949	bcc	.L1141
7950	movs	r7, #0
7951	mov	r10, r7
7952.L1134:
7953	adds	r6, r6, #1
7954	add	fp, fp, #4
7955	cmp	r6, #26
7956	bne	.L1137
7957.L1136:
7958	ldr	r2, [sp, #20]
7959	ldr	r3, [sp, #12]
7960	add	r3, r3, r2
7961	movs	r2, #239
7962	str	r2, [r3, #2056]
7963	movs	r3, #137
7964	b	.L1151
7965.L1141:
7966	mov	r4, r0
7967	b	.L1136
7968.L1153:
7969	.align	2
7970.L1152:
7971	.word	.LANCHOR0
7972	.word	.LANCHOR24
7973	.word	.LANCHOR147
7974	.word	.LANCHOR33
7975	.word	.LC14
7976	.word	.LANCHOR148
7977	.size	samsung_read_retrial, .-samsung_read_retrial
7978	.section	.text.FlashProgPage,"ax",%progbits
7979	.align	1
7980	.global	FlashProgPage
7981	.syntax unified
7982	.thumb
7983	.thumb_func
7984	.fpu softvfp
7985	.type	FlashProgPage, %function
7986FlashProgPage:
7987	@ args = 0, pretend = 0, frame = 0
7988	@ frame_needed = 0, uses_anonymous_args = 0
7989	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7990	mov	r8, r3
7991	ldr	r3, .L1157
7992	mov	r5, r1
7993	mov	r7, r2
7994	mov	r4, r0
7995	ldrb	r6, [r3, #9]	@ zero_extendqisi2
7996	cbnz	r0, .L1155
7997	ldr	r3, .L1157+4
7998	ldr	r2, .L1157+8
7999	ldrb	r3, [r3]	@ zero_extendqisi2
8000	ldr	r1, [r2]
8001	muls	r1, r3, r1
8002	cmp	r1, r5
8003	bls	.L1155
8004	ldr	r3, .L1157+12
8005	ldrb	r3, [r3]	@ zero_extendqisi2
8006	cmp	r3, #0
8007	it	ne
8008	movne	r6, #4
8009.L1155:
8010	mov	r0, r4
8011	bl	NandcWaitFlashReady
8012	mov	r0, r4
8013	bl	NandcFlashCs
8014	mov	r1, r5
8015	mov	r0, r4
8016	bl	FlashProgFirstCmd
8017	mov	r3, r7
8018	mov	r2, r6
8019	str	r8, [sp]
8020	movs	r1, #1
8021	mov	r0, r4
8022	bl	NandcXferData
8023	mov	r1, r5
8024	mov	r0, r4
8025	bl	FlashProgSecondCmd
8026	mov	r0, r4
8027	bl	NandcWaitFlashReady
8028	mov	r1, r5
8029	mov	r0, r4
8030	bl	FlashReadStatus
8031	mov	r1, r0
8032	mov	r0, r4
8033	bl	NandcFlashDeCs
8034	and	r0, r1, #1
8035	add	sp, sp, #8
8036	@ sp needed
8037	pop	{r4, r5, r6, r7, r8, pc}
8038.L1158:
8039	.align	2
8040.L1157:
8041	.word	.LANCHOR31
8042	.word	.LANCHOR3
8043	.word	.LANCHOR4
8044	.word	.LANCHOR2
8045	.size	FlashProgPage, .-FlashProgPage
8046	.section	.text.FlashPageProgMsbFFData,"ax",%progbits
8047	.align	1
8048	.global	FlashPageProgMsbFFData
8049	.syntax unified
8050	.thumb
8051	.thumb_func
8052	.fpu softvfp
8053	.type	FlashPageProgMsbFFData, %function
8054FlashPageProgMsbFFData:
8055	@ args = 0, pretend = 0, frame = 0
8056	@ frame_needed = 0, uses_anonymous_args = 0
8057	push	{r3, r4, r5, r6, r7, r8, r10, lr}
8058	mov	r6, r0
8059	ldr	r3, .L1179
8060	mov	r7, r1
8061	mov	r4, r2
8062	ldrb	r3, [r3]	@ zero_extendqisi2
8063	cbz	r3, .L1160
8064	ldr	r3, .L1179+4
8065	ldr	r3, [r3]
8066	cbnz	r3, .L1159
8067.L1160:
8068	ldr	r5, .L1179+8
8069	ldr	r3, [r5]
8070	ldrb	r2, [r3, #19]	@ zero_extendqisi2
8071	subs	r3, r2, #5
8072	uxtb	r3, r3
8073	cmp	r3, #30
8074	bhi	.L1161
8075	ldr	r1, .L1179+12
8076	lsr	r3, r1, r3
8077	lsls	r3, r3, #31
8078	bmi	.L1162
8079.L1166:
8080	cmp	r2, #68
8081	bne	.L1159
8082.L1162:
8083	ldr	r10, .L1179+16
8084	ldr	r8, .L1179+20
8085.L1164:
8086	ldr	r3, [r5]
8087	ldrh	r3, [r3, #10]
8088	cmp	r3, r4
8089	bhi	.L1165
8090	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
8091.L1165:
8092	ldrh	r2, [r10, r4, lsl #1]
8093	movw	r3, #65535
8094	cmp	r2, r3
8095	bne	.L1159
8096	mov	r2, #32768
8097	movs	r1, #255
8098	ldr	r0, [r8]
8099	bl	ftl_memset
8100	ldr	r3, [r8]
8101	adds	r1, r4, r7
8102	mov	r0, r6
8103	adds	r4, r4, #1
8104	uxth	r4, r4
8105	mov	r2, r3
8106	bl	FlashProgPage
8107	b	.L1164
8108.L1161:
8109	cmp	r2, #50
8110	bne	.L1166
8111	b	.L1162
8112.L1159:
8113	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
8114.L1180:
8115	.align	2
8116.L1179:
8117	.word	.LANCHOR16
8118	.word	.LANCHOR29
8119	.word	.LANCHOR7
8120	.word	1073758215
8121	.word	.LANCHOR123
8122	.word	.LANCHOR149
8123	.size	FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
8124	.section	.text.ftl_memcpy,"ax",%progbits
8125	.align	1
8126	.global	ftl_memcpy
8127	.syntax unified
8128	.thumb
8129	.thumb_func
8130	.fpu softvfp
8131	.type	ftl_memcpy, %function
8132ftl_memcpy:
8133	@ args = 0, pretend = 0, frame = 0
8134	@ frame_needed = 0, uses_anonymous_args = 0
8135	@ link register save eliminated.
8136	b	memcpy
8137	.size	ftl_memcpy, .-ftl_memcpy
8138	.section	.text.FlashReadIdbData,"ax",%progbits
8139	.align	1
8140	.global	FlashReadIdbData
8141	.syntax unified
8142	.thumb
8143	.thumb_func
8144	.fpu softvfp
8145	.type	FlashReadIdbData, %function
8146FlashReadIdbData:
8147	@ args = 0, pretend = 0, frame = 0
8148	@ frame_needed = 0, uses_anonymous_args = 0
8149	push	{r3, lr}
8150	mov	r2, #2048
8151	ldr	r1, .L1183
8152	bl	ftl_memcpy
8153	movs	r0, #0
8154	pop	{r3, pc}
8155.L1184:
8156	.align	2
8157.L1183:
8158	.word	.LANCHOR150
8159	.size	FlashReadIdbData, .-FlashReadIdbData
8160	.section	.text.FlashLoadPhyInfoInRam,"ax",%progbits
8161	.align	1
8162	.global	FlashLoadPhyInfoInRam
8163	.syntax unified
8164	.thumb
8165	.thumb_func
8166	.fpu softvfp
8167	.type	FlashLoadPhyInfoInRam, %function
8168FlashLoadPhyInfoInRam:
8169	@ args = 0, pretend = 0, frame = 0
8170	@ frame_needed = 0, uses_anonymous_args = 0
8171	push	{r4, r5, r6, r7, r8, lr}
8172	movs	r6, #0
8173	ldr	r7, .L1193
8174	ldr	r5, .L1193+4
8175.L1188:
8176	ldrb	r2, [r7, #-1]	@ zero_extendqisi2
8177	mov	r1, r5
8178	mov	r0, r7
8179	lsl	r8, r6, #5
8180	bl	FlashMemCmp8
8181	mov	r4, r0
8182	cbnz	r0, .L1186
8183	ldr	r5, .L1193+8
8184	mov	r3, r4
8185	ldr	r2, .L1193+12
8186	add	r5, r5, r8
8187	ldrb	r0, [r5, #22]	@ zero_extendqisi2
8188	mov	r1, r2
8189.L1187:
8190	lsls	r6, r3, #5
8191	ldrb	r6, [r6, r2]	@ zero_extendqisi2
8192	cmp	r6, r0
8193	beq	.L1190
8194	adds	r3, r3, #1
8195	cmp	r3, #4
8196	bne	.L1187
8197.L1190:
8198	ldr	r6, .L1193+16
8199	add	r1, r1, r3, lsl #5
8200	movs	r2, #32
8201	ldr	r0, .L1193+20
8202	bl	ftl_memcpy
8203	movs	r2, #32
8204	mov	r1, r5
8205	mov	r0, r6
8206	bl	ftl_memcpy
8207	ldrh	r0, [r6, #10]
8208	bl	FlashBlockAlignInit
8209	b	.L1185
8210.L1186:
8211	adds	r6, r6, #1
8212	adds	r7, r7, #32
8213	cmp	r6, #86
8214	bne	.L1188
8215	mov	r4, #-1
8216.L1185:
8217	mov	r0, r4
8218	pop	{r4, r5, r6, r7, r8, pc}
8219.L1194:
8220	.align	2
8221.L1193:
8222	.word	.LANCHOR151+1
8223	.word	.LANCHOR22
8224	.word	.LANCHOR151
8225	.word	.LANCHOR152
8226	.word	.LANCHOR31
8227	.word	.LANCHOR8
8228	.size	FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
8229	.section	.text.NandcCopy1KB,"ax",%progbits
8230	.align	1
8231	.global	NandcCopy1KB
8232	.syntax unified
8233	.thumb
8234	.thumb_func
8235	.fpu softvfp
8236	.type	NandcCopy1KB, %function
8237NandcCopy1KB:
8238	@ args = 4, pretend = 0, frame = 0
8239	@ frame_needed = 0, uses_anonymous_args = 0
8240	cmp	r1, #1
8241	push	{r4, r5, r6, lr}
8242	mov	r4, r2
8243	add	r2, r0, #4096
8244	add	r6, r0, #512
8245	add	r0, r2, r4, lsl #9
8246	ldr	r5, [sp, #16]
8247	bne	.L1196
8248	cbz	r3, .L1197
8249	mov	r2, #1024
8250	mov	r1, r3
8251	bl	ftl_memcpy
8252.L1197:
8253	cbz	r5, .L1195
8254	ldrb	r2, [r5, #1]	@ zero_extendqisi2
8255	lsrs	r4, r4, #1
8256	ldrb	r3, [r5]	@ zero_extendqisi2
8257	add	r4, r4, r4, lsl #1
8258	lsls	r4, r4, #4
8259	orr	r3, r3, r2, lsl #8
8260	ldrb	r2, [r5, #2]	@ zero_extendqisi2
8261	orr	r3, r3, r2, lsl #16
8262	ldrb	r2, [r5, #3]	@ zero_extendqisi2
8263	orr	r3, r3, r2, lsl #24
8264	str	r3, [r6, r4]
8265	pop	{r4, r5, r6, pc}
8266.L1196:
8267	cbz	r3, .L1200
8268	mov	r1, r0
8269	mov	r2, #1024
8270	mov	r0, r3
8271	bl	ftl_memcpy
8272.L1200:
8273	cbz	r5, .L1195
8274	lsrs	r4, r4, #1
8275	add	r4, r4, r4, lsl #1
8276	lsls	r4, r4, #4
8277	ldr	r3, [r6, r4]
8278	strb	r3, [r5]
8279	lsrs	r2, r3, #8
8280	strb	r2, [r5, #1]
8281	lsrs	r2, r3, #16
8282	lsrs	r3, r3, #24
8283	strb	r2, [r5, #2]
8284	strb	r3, [r5, #3]
8285.L1195:
8286	pop	{r4, r5, r6, pc}
8287	.size	NandcCopy1KB, .-NandcCopy1KB
8288	.section	.text.FlashLoadPhyInfo,"ax",%progbits
8289	.align	1
8290	.global	FlashLoadPhyInfo
8291	.syntax unified
8292	.thumb
8293	.thumb_func
8294	.fpu softvfp
8295	.type	FlashLoadPhyInfo, %function
8296FlashLoadPhyInfo:
8297	@ args = 0, pretend = 0, frame = 24
8298	@ frame_needed = 0, uses_anonymous_args = 0
8299	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8300	movs	r3, #60
8301	sub	sp, sp, #24
8302	ldr	fp, .L1225+32
8303	movs	r4, #0
8304	movs	r7, #4
8305	strb	r3, [sp, #20]
8306	movs	r3, #40
8307	strb	r3, [sp, #21]
8308	movs	r3, #24
8309	strb	r3, [sp, #22]
8310	movs	r3, #16
8311	strb	r3, [sp, #23]
8312	mov	r0, r4
8313	ldr	r3, [fp]
8314	mov	r6, #-1
8315	ldr	r8, .L1225+36
8316	ldr	r10, .L1225+40
8317	str	r3, [sp, #4]
8318	ldr	r5, .L1225
8319	ldr	r3, [r8]
8320	str	r4, [r10]
8321	str	r3, [r5]
8322	bl	flash_enter_slc_mode
8323	str	r10, [sp, #12]
8324	mov	r10, r8
8325.L1212:
8326	mov	r8, #0
8327	adds	r3, r4, #1
8328	str	r3, [sp, #8]
8329.L1214:
8330	add	r3, sp, #20
8331	ldrb	r0, [r3, r8]	@ zero_extendqisi2
8332	bl	FlashBchSel
8333	movs	r3, #0
8334	ldr	r2, [r10]
8335	mov	r1, r4
8336	mov	r0, r3
8337	bl	FlashReadRawPage
8338	adds	r0, r0, #1
8339	bne	.L1213
8340	movs	r3, #0
8341	ldr	r2, [r10]
8342	ldr	r1, [sp, #8]
8343	mov	r0, r3
8344	bl	FlashReadRawPage
8345	adds	r0, r0, #1
8346	bne	.L1213
8347	add	r8, r8, #1
8348	cmp	r8, #4
8349	bne	.L1214
8350.L1215:
8351	ldr	r3, [sp, #4]
8352	subs	r7, r7, #1
8353	add	r4, r4, r3
8354	bne	.L1212
8355	mov	r0, r7
8356	b	.L1224
8357.L1216:
8358	movw	r1, #2036
8359	add	r0, r8, #12
8360	bl	js_hash
8361	ldr	r3, [r8, #8]
8362	cmp	r3, r0
8363	bne	.L1222
8364	ldr	r6, .L1225+4
8365	movs	r2, #32
8366	add	r1, r8, #160
8367	mov	r0, r6
8368	bl	ftl_memcpy
8369	ldr	r1, [r5]
8370	movs	r2, #32
8371	ldr	r0, .L1225+8
8372	adds	r1, r1, #192
8373	bl	ftl_memcpy
8374	ldr	r1, [r5]
8375	mov	r2, #852
8376	ldr	r0, .L1225+12
8377	adds	r1, r1, #224
8378	bl	ftl_memcpy
8379	ldrh	r0, [r6, #10]
8380	bl	FlashBlockAlignInit
8381	ldr	r6, [r5]
8382	mov	r0, r4
8383	ldr	r3, .L1225+16
8384	ldr	r1, [fp]
8385	ldr	r2, [r6, #1076]
8386	strb	r2, [r3]
8387	ldr	r3, [sp, #12]
8388	str	r4, [r3]
8389	bl	__aeabi_uidiv
8390	ldr	r3, .L1225+20
8391	adds	r0, r0, #1
8392	cmp	r0, #1
8393	itte	ls
8394	movls	r2, #2
8395	strls	r2, [r3]
8396	strhi	r0, [r3]
8397	ldrh	r2, [r6, #14]
8398	movs	r6, #0
8399	ldr	r3, .L1225+24
8400	strb	r2, [r3]
8401	b	.L1215
8402.L1222:
8403	mov	r6, #-1
8404	b	.L1215
8405.L1213:
8406	ldr	r8, [r5]
8407	ldr	r2, .L1225+28
8408	ldr	r3, [r8]
8409	cmp	r3, r2
8410	bne	.L1215
8411	cmp	r6, #0
8412	bne	.L1216
8413	ldr	r1, [fp]
8414	mov	r0, r4
8415	bl	__aeabi_uidiv
8416	ldr	r3, .L1225+20
8417	adds	r0, r0, #1
8418	str	r0, [r3]
8419	mov	r0, r6
8420.L1224:
8421	bl	flash_exit_slc_mode
8422	mov	r0, r6
8423	add	sp, sp, #24
8424	@ sp needed
8425	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8426.L1226:
8427	.align	2
8428.L1225:
8429	.word	.LANCHOR153
8430	.word	.LANCHOR31
8431	.word	.LANCHOR8
8432	.word	.LANCHOR20
8433	.word	.LANCHOR30
8434	.word	.LANCHOR156
8435	.word	.LANCHOR157
8436	.word	1312902724
8437	.word	.LANCHOR4
8438	.word	.LANCHOR154
8439	.word	.LANCHOR155
8440	.size	FlashLoadPhyInfo, .-FlashLoadPhyInfo
8441	.section	.text.FlashSavePhyInfo,"ax",%progbits
8442	.align	1
8443	.global	FlashSavePhyInfo
8444	.syntax unified
8445	.thumb
8446	.thumb_func
8447	.fpu softvfp
8448	.type	FlashSavePhyInfo, %function
8449FlashSavePhyInfo:
8450	@ args = 0, pretend = 0, frame = 16
8451	@ frame_needed = 0, uses_anonymous_args = 0
8452	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
8453	ldr	r6, .L1240
8454	ldr	r7, .L1240+4
8455	ldr	r3, [r6]
8456	ldr	r10, .L1240+64
8457	ldr	r8, .L1240+68
8458	str	r3, [r7]
8459	ldr	r3, .L1240+8
8460	ldrb	r0, [r3]	@ zero_extendqisi2
8461	bl	FlashBchSel
8462	mov	r2, #2048
8463	movs	r1, #0
8464	ldr	r0, [r6]
8465	bl	ftl_memset
8466	ldr	r0, [r7]
8467	movs	r2, #32
8468	ldr	r3, .L1240+12
8469	ldr	r1, .L1240+16
8470	str	r10, [r0]
8471	adds	r0, r0, #16
8472	ldrb	r3, [r3]	@ zero_extendqisi2
8473	strh	r3, [r0, #-4]	@ movhi
8474	ldr	r3, .L1240+20
8475	ldrb	r3, [r3]	@ zero_extendqisi2
8476	strh	r3, [r0, #-2]	@ movhi
8477	ldr	r3, .L1240+24
8478	ldrb	r3, [r3]	@ zero_extendqisi2
8479	str	r3, [r0, #1060]
8480	bl	ftl_memcpy
8481	ldr	r0, [r7]
8482	movs	r2, #8
8483	ldr	r1, .L1240+28
8484	adds	r0, r0, #80
8485	bl	ftl_memcpy
8486	ldr	r0, [r7]
8487	movs	r2, #32
8488	ldr	r1, .L1240+32
8489	adds	r0, r0, #96
8490	bl	ftl_memcpy
8491	ldr	r0, [r7]
8492	movs	r2, #32
8493	ldr	r1, .L1240+36
8494	adds	r0, r0, #160
8495	bl	ftl_memcpy
8496	ldr	r0, [r7]
8497	movs	r2, #32
8498	ldr	r1, .L1240+40
8499	adds	r0, r0, #192
8500	bl	ftl_memcpy
8501	ldr	r0, [r7]
8502	mov	r2, #852
8503	ldr	r1, .L1240+44
8504	adds	r0, r0, #224
8505	bl	ftl_memcpy
8506	ldr	r4, [r7]
8507	movw	r1, #2036
8508	add	r0, r4, #12
8509	bl	js_hash
8510	mov	r3, #1592
8511	str	r0, [r4, #8]
8512	str	r3, [r4, #4]
8513	movs	r0, #0
8514	ldr	r3, [r8]
8515	movs	r4, #0
8516	mov	r5, r4
8517	str	r3, [r7]
8518	bl	flash_enter_slc_mode
8519	str	r7, [sp, #4]
8520	ldr	r7, .L1240+48
8521	str	r10, [sp, #8]
8522	mov	fp, r7
8523.L1233:
8524	ldr	r1, [r7]
8525	movs	r2, #0
8526	mov	r0, r2
8527	muls	r1, r5, r1
8528	bl	FlashEraseBlock
8529	ldr	r3, .L1240+52
8530	ldrb	r10, [r3]	@ zero_extendqisi2
8531	cmp	r10, #0
8532	beq	.L1228
8533	mov	r10, #0
8534.L1229:
8535	ldr	r1, [fp]
8536	movs	r3, #0
8537	ldr	r2, [r6]
8538	mov	r0, r3
8539	mla	r1, r1, r5, r10
8540	add	r10, r10, #1
8541	bl	FlashProgPage
8542	cmp	r10, #10
8543	bne	.L1229
8544.L1230:
8545	ldr	r1, [fp]
8546	movs	r3, #0
8547	ldr	r2, [r8]
8548	mov	r0, r3
8549	add	r10, r5, #1
8550	muls	r1, r5, r1
8551	bl	FlashReadRawPage
8552	adds	r0, r0, #1
8553	beq	.L1231
8554	ldr	r3, [sp, #4]
8555	ldr	r1, [sp, #8]
8556	ldr	r3, [r3]
8557	ldr	r2, [r3]
8558	cmp	r2, r1
8559	bne	.L1231
8560	add	r0, r3, #12
8561	movw	r1, #2036
8562	str	r3, [sp, #12]
8563	bl	js_hash
8564	ldr	r3, [sp, #12]
8565	ldr	r3, [r3, #8]
8566	cmp	r3, r0
8567	bne	.L1231
8568	ldr	r3, .L1240+56
8569	cmp	r4, #1
8570	str	r10, [r3]
8571	ldr	r3, [fp]
8572	mul	r5, r5, r3
8573	ldr	r3, .L1240+60
8574	str	r5, [r3]
8575	beq	.L1234
8576	movs	r4, #1
8577.L1231:
8578	mov	r5, r10
8579	cmp	r5, #4
8580	bne	.L1233
8581.L1232:
8582	movs	r0, #0
8583	bl	flash_exit_slc_mode
8584	clz	r0, r4
8585	lsrs	r0, r0, #5
8586	negs	r0, r0
8587	add	sp, sp, #16
8588	@ sp needed
8589	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8590.L1228:
8591	ldr	r1, [r7]
8592	mov	r3, r10
8593	ldr	r2, [r6]
8594	mov	r0, r10
8595	muls	r1, r5, r1
8596	bl	FlashProgPage
8597	ldr	r1, [r7]
8598	mov	r3, r10
8599	ldr	r2, [r6]
8600	mov	r0, r10
8601	muls	r1, r5, r1
8602	adds	r1, r1, #1
8603	bl	FlashProgPage
8604	b	.L1230
8605.L1234:
8606	movs	r4, #2
8607	b	.L1232
8608.L1241:
8609	.align	2
8610.L1240:
8611	.word	.LANCHOR154
8612	.word	.LANCHOR153
8613	.word	.LANCHOR158
8614	.word	.LANCHOR26
8615	.word	.LANCHOR22
8616	.word	.LANCHOR3
8617	.word	.LANCHOR30
8618	.word	.LANCHOR27
8619	.word	.LANCHOR18
8620	.word	.LANCHOR31
8621	.word	.LANCHOR8
8622	.word	.LANCHOR20
8623	.word	.LANCHOR4
8624	.word	.LANCHOR16
8625	.word	.LANCHOR156
8626	.word	.LANCHOR155
8627	.word	1312902724
8628	.word	.LANCHOR149
8629	.size	FlashSavePhyInfo, .-FlashSavePhyInfo
8630	.section	.text.FlashReadIdbDataRaw,"ax",%progbits
8631	.align	1
8632	.global	FlashReadIdbDataRaw
8633	.syntax unified
8634	.thumb
8635	.thumb_func
8636	.fpu softvfp
8637	.type	FlashReadIdbDataRaw, %function
8638FlashReadIdbDataRaw:
8639	@ args = 0, pretend = 0, frame = 16
8640	@ frame_needed = 0, uses_anonymous_args = 0
8641	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
8642	movs	r3, #60
8643	strb	r3, [sp, #12]
8644	movs	r3, #40
8645	mov	r10, r0
8646	strb	r3, [sp, #13]
8647	movs	r3, #24
8648	strb	r3, [sp, #14]
8649	movs	r3, #16
8650	strb	r3, [sp, #15]
8651	ldr	r3, .L1260
8652	ldrb	r3, [r3]	@ zero_extendqisi2
8653	str	r3, [sp]
8654	ldr	r3, .L1260+4
8655	ldr	r2, [r3]
8656	str	r3, [sp, #4]
8657	cbz	r2, .L1243
8658	movs	r0, #0
8659	bl	flash_enter_slc_mode
8660.L1243:
8661	mov	r7, #-1
8662	movs	r4, #2
8663	mov	r2, #2048
8664	movs	r1, #0
8665	mov	r0, r10
8666	bl	ftl_memset
8667.L1244:
8668	ldr	r3, .L1260+8
8669	ldrb	r3, [r3]	@ zero_extendqisi2
8670	cmp	r4, r3
8671	bcc	.L1249
8672.L1248:
8673	ldr	r0, [sp]
8674	bl	FlashBchSel
8675	ldr	r3, [sp, #4]
8676	ldr	r3, [r3]
8677	cbz	r3, .L1242
8678	movs	r0, #0
8679	bl	flash_exit_slc_mode
8680.L1242:
8681	mov	r0, r7
8682	add	sp, sp, #16
8683	@ sp needed
8684	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8685.L1249:
8686	ldr	r5, .L1260+12
8687	movs	r6, #0
8688	ldr	fp, .L1260+28
8689.L1246:
8690	add	r3, sp, #12
8691	ldrb	r8, [r6, r3]	@ zero_extendqisi2
8692	mov	r0, r8
8693	bl	FlashBchSel
8694	ldr	r1, [fp]
8695	movs	r3, #0
8696	ldr	r2, [r5]
8697	mov	r0, r3
8698	muls	r1, r4, r1
8699	bl	FlashReadRawPage
8700	adds	r0, r0, #1
8701	bne	.L1245
8702	adds	r6, r6, #1
8703	cmp	r6, #4
8704	bne	.L1246
8705.L1247:
8706	adds	r4, r4, #1
8707	b	.L1244
8708.L1252:
8709	movs	r7, #0
8710	b	.L1248
8711.L1245:
8712	ldr	r3, [r5]
8713	ldr	r2, [r3]
8714	ldr	r3, .L1260+16
8715	cmp	r2, r3
8716	bne	.L1247
8717	mov	r1, r8
8718	ldr	r0, .L1260+20
8719	bl	printf
8720	mov	r2, #2048
8721	ldr	r1, [r5]
8722	mov	r0, r10
8723	bl	ftl_memcpy
8724	ldr	r3, [r5]
8725	ldr	r2, .L1260+8
8726	ldr	r3, [r3, #512]
8727	strb	r3, [r2]
8728	ldr	r3, .L1260+24
8729	ldr	r2, [r3]
8730	cmp	r4, r2
8731	bcs	.L1252
8732	str	r4, [r3]
8733	movs	r7, #0
8734	bl	FlashSavePhyInfo
8735	b	.L1247
8736.L1261:
8737	.align	2
8738.L1260:
8739	.word	.LANCHOR33
8740	.word	.LANCHOR29
8741	.word	.LANCHOR3
8742	.word	.LANCHOR154
8743	.word	-52655045
8744	.word	.LC15
8745	.word	.LANCHOR156
8746	.word	.LANCHOR4
8747	.size	FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
8748	.section	.text.idb_write_data,"ax",%progbits
8749	.align	1
8750	.global	idb_write_data
8751	.syntax unified
8752	.thumb
8753	.thumb_func
8754	.fpu softvfp
8755	.type	idb_write_data, %function
8756idb_write_data:
8757	@ args = 0, pretend = 0, frame = 96
8758	@ frame_needed = 0, uses_anonymous_args = 0
8759	mov	r0, r1
8760	mov	r1, r2
8761	adds	r2, r0, r3
8762	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8763	cmp	r2, #63
8764	sub	sp, sp, #104
8765	bls	.L1263
8766	cmp	r0, #576
8767	bcs	.L1264
8768	ldr	r2, .L1315
8769	cmp	r0, #64
8770	mov	r4, #1
8771	str	r4, [r2]
8772	bhi	.L1265
8773	rsb	r0, r0, #64
8774	subs	r2, r3, r0
8775	add	r1, r1, r0, lsl #9
8776	ldr	r0, .L1315+4
8777	lsls	r2, r2, #9
8778.L1314:
8779	bl	ftl_memcpy
8780.L1303:
8781	movs	r0, #0
8782	add	sp, sp, #104
8783	@ sp needed
8784	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8785.L1265:
8786	rsb	r2, r0, #576
8787	subs	r0, r0, #64
8788	cmp	r2, r3
8789	it	cs
8790	movcs	r2, r3
8791	ldr	r3, .L1315+4
8792	lsls	r2, r2, #9
8793	add	r0, r3, r0, lsl #9
8794	b	.L1314
8795.L1263:
8796	cmp	r0, #576
8797	bcc	.L1303
8798.L1264:
8799	ldr	r3, .L1315
8800	ldr	r3, [r3]
8801	cmp	r3, #0
8802	beq	.L1303
8803	ldr	r3, .L1315+8
8804	ldr	r2, [r3]
8805	ldrb	r3, [r2, #9]	@ zero_extendqisi2
8806	ldrh	r2, [r2, #10]
8807	smulbb	r3, r3, r2
8808	uxth	r3, r3
8809	mov	r1, r3
8810	addw	r0, r3, #511
8811	str	r3, [sp, #8]
8812	bl	__aeabi_uidiv
8813	ldr	r1, .L1315+4
8814	movs	r3, #0
8815	str	r0, [sp, #20]
8816	movw	r2, #65535
8817	mov	r0, r1
8818.L1269:
8819	ldr	r4, [r1, r2, lsl #2]
8820	cbnz	r4, .L1267
8821	ldr	r4, [r1, r3, lsl #2]
8822	adds	r3, r3, #1
8823	cmp	r3, #4096
8824	it	hi
8825	movhi	r3, #0
8826	str	r4, [r1, r2, lsl #2]
8827	subs	r2, r2, #1
8828	cmp	r2, #4096
8829	bne	.L1269
8830.L1267:
8831	ldr	r1, [r0, r2, lsl #2]
8832	mov	r3, #512
8833	ldr	r0, .L1315+12
8834	bl	printf
8835	ldr	r3, .L1315+16
8836	ldr	r2, [sp, #8]
8837	ldr	r3, [r3]
8838	str	r3, [sp, #16]
8839	ldr	r3, [sp, #20]
8840	muls	r3, r2, r3
8841	str	r3, [sp, #36]
8842	ldr	r3, [sp, #16]
8843	mul	r4, r3, r2
8844	movs	r3, #0
8845	str	r3, [sp, #12]
8846.L1270:
8847	ldr	r3, [sp, #16]
8848	cmp	r3, #15
8849	bls	.L1287
8850	ldr	r3, [sp, #12]
8851	cbnz	r3, .L1289
8852	mov	r1, r3
8853	ldr	r0, .L1315+20
8854	bl	printf
8855.L1289:
8856	ldr	r3, .L1315
8857	movs	r2, #0
8858	str	r2, [r3]
8859	b	.L1303
8860.L1316:
8861	.align	2
8862.L1315:
8863	.word	.LANCHOR159
8864	.word	idb_buf
8865	.word	.LANCHOR7
8866	.word	.LC16
8867	.word	.LANCHOR156
8868	.word	.LC18
8869.L1287:
8870	mov	r2, #512
8871	movs	r1, #0
8872	ldr	r0, .L1317
8873	bl	memset
8874	ldr	r3, .L1317+4
8875	mov	r0, r4
8876	ldr	r3, [r3]
8877	ldrb	fp, [r3, #9]	@ zero_extendqisi2
8878	ldrh	r5, [r3, #10]
8879	bl	FW_FlashBlockErase.constprop.41
8880	smulbb	r5, r5, fp
8881	uxth	r5, r5
8882	cmp	r5, #512
8883	bcs	.L1271
8884	adds	r0, r5, r4
8885	bl	FW_FlashBlockErase.constprop.41
8886.L1271:
8887	ldr	r7, .L1317+8
8888	mov	r1, r5
8889	ldr	r10, .L1317+36
8890	mov	r0, r4
8891	bl	__aeabi_uidivmod
8892	mov	r6, r1
8893	subs	r3, r4, r1
8894	str	r3, [sp, #24]
8895.L1275:
8896	lsrs	r2, r6, #2
8897	beq	.L1272
8898	ldr	r0, .L1317+12
8899	adds	r1, r2, #1
8900	ldr	r3, .L1317+16
8901	ldrb	r0, [r0]	@ zero_extendqisi2
8902	ldrh	r3, [r3, r1, lsl #1]
8903	cbz	r0, .L1273
8904	ldr	r0, [r10]
8905	ldr	r5, .L1317+20
8906	cmp	r0, r5
8907	it	eq
8908	moveq	r3, r1
8909.L1273:
8910	add	r3, r3, #1073741824
8911	subs	r3, r3, #1
8912	lsls	r3, r3, #2
8913	str	r3, [sp, #40]
8914.L1272:
8915	movw	r3, #61424
8916	str	r3, [sp, #44]
8917	ldr	r3, .L1317+16
8918	ldrh	r5, [r3, r2, lsl #1]
8919	ldr	r3, .L1317+12
8920	ldrb	r3, [r3]	@ zero_extendqisi2
8921	cbz	r3, .L1274
8922	ldr	r3, [r10]
8923	ldr	r1, .L1317+20
8924	cmp	r3, r1
8925	it	eq
8926	moveq	r5, r2
8927.L1274:
8928	ldr	r3, [sp, #24]
8929	adds	r6, r6, #4
8930	ldr	r2, .L1317+24
8931	ldr	r8, .L1317+4
8932	mla	r3, r5, fp, r3
8933	adds	r5, r5, #1
8934	uxth	r5, r5
8935	str	r3, [sp, #32]
8936	ldrb	r3, [r2]	@ zero_extendqisi2
8937	ldr	r2, .L1317+28
8938	str	r3, [sp, #28]
8939	ldrb	r0, [r2]	@ zero_extendqisi2
8940	bl	FlashBchSel
8941	movs	r0, #0
8942	bl	flash_boot_enter_slc_mode
8943	ldr	r2, [r8]
8944	ldr	r3, [sp, #32]
8945	ldrb	r1, [r2, #9]	@ zero_extendqisi2
8946	mov	r0, r3
8947	bl	__aeabi_uidiv
8948	add	r3, sp, #40
8949	mov	r2, r7
8950	mov	r1, r0
8951	movs	r0, #0
8952	bl	FlashProgPage
8953	movs	r0, #0
8954	add	r7, r7, #2048
8955	bl	flash_boot_exit_slc_mode
8956	ldr	r0, [sp, #28]
8957	bl	FlashBchSel
8958	mov	r1, fp
8959	ldr	r0, [sp, #24]
8960	bl	__aeabi_uidiv
8961	mov	r2, r5
8962	mov	r1, r0
8963	movs	r0, #0
8964	bl	FlashPageProgMsbFFData
8965	ldr	r3, .L1317+32
8966	cmp	r7, r3
8967	bne	.L1275
8968	ldr	r3, [r8]
8969	mov	r0, r4
8970	ldr	r7, .L1317
8971	movs	r6, #0
8972	ldrb	r8, [r3, #9]	@ zero_extendqisi2
8973	ldrh	r1, [r3, #10]
8974	smulbb	r1, r1, r8
8975	uxth	r1, r1
8976	bl	__aeabi_uidivmod
8977	mul	r5, r8, r1
8978	mov	r10, r1
8979	subs	r3, r4, r1
8980	str	r3, [sp, #28]
8981	ubfx	r5, r5, #2, #2
8982.L1276:
8983	cmp	r6, #512
8984	bcs	.L1283
8985	ldr	r1, .L1317+12
8986	rsb	r3, r5, #4
8987	uxth	r3, r3
8988	ldr	r2, .L1317+16
8989	ldrb	r1, [r1]	@ zero_extendqisi2
8990	str	r3, [sp, #24]
8991	add	r3, r10, r6
8992	lsrs	r3, r3, #2
8993	ldrh	r2, [r2, r3, lsl #1]
8994	cbz	r1, .L1277
8995	ldr	r1, .L1317+36
8996	ldr	r0, .L1317+20
8997	ldr	r1, [r1]
8998	cmp	r1, r0
8999	it	eq
9000	moveq	r2, r3
9001.L1277:
9002	ldr	r3, [sp, #28]
9003	add	r5, r5, r3
9004	ldr	r3, .L1317+24
9005	mla	r5, r2, r8, r5
9006	ldrb	r3, [r3]	@ zero_extendqisi2
9007	str	r3, [sp, #32]
9008	ldr	r3, .L1317+4
9009	ldr	r3, [r3]
9010	ldrb	fp, [r3, #9]	@ zero_extendqisi2
9011	ldr	r3, .L1317+40
9012	ldrh	r2, [r3, #26]
9013	ldr	r3, .L1317+44
9014	ldr	r3, [r3]
9015	muls	r3, r2, r3
9016	mul	r3, fp, r3
9017	cmp	r5, r3
9018	bcs	.L1278
9019	ldr	r3, .L1317+28
9020	ldrb	r0, [r3]	@ zero_extendqisi2
9021	bl	FlashBchSel
9022.L1278:
9023	movs	r0, #0
9024	bl	flash_boot_enter_slc_mode
9025	mov	r1, fp
9026	mov	r0, r5
9027	bl	__aeabi_uidiv
9028	add	r3, sp, #40
9029	mov	r1, r0
9030	mov	fp, r0
9031	mov	r2, r7
9032	movs	r0, #0
9033	bl	FlashReadPage
9034	adds	r3, r0, #1
9035	mov	r5, r0
9036	bne	.L1279
9037	ldr	r3, .L1317+28
9038	ldrb	r3, [r3]	@ zero_extendqisi2
9039	cmp	r3, #40
9040	beq	.L1279
9041	movs	r0, #40
9042	bl	FlashBchSel
9043	add	r3, sp, #40
9044	mov	r2, r7
9045	mov	r1, fp
9046	movs	r0, #0
9047	bl	FlashReadPage
9048	mov	r5, r0
9049.L1279:
9050	movs	r0, #0
9051	bl	flash_boot_exit_slc_mode
9052	ldr	r0, [sp, #32]
9053	bl	FlashBchSel
9054	adds	r5, r5, #1
9055	mov	r5, #-1
9056	it	ne
9057	movne	r5, #0
9058	cbz	r5, .L1280
9059.L1283:
9060	ldr	r3, .L1317+8
9061	movs	r5, #0
9062	ldr	r6, .L1317
9063.L1281:
9064	mov	r7, r3
9065	ldr	r1, [r6, r5, lsl #2]
9066	ldr	r2, [r7]
9067	adds	r3, r3, #4
9068	cmp	r1, r2
9069	beq	.L1284
9070	mov	r2, #512
9071	movs	r1, #0
9072	ldr	r0, .L1317
9073	bl	memset
9074	str	r5, [sp]
9075	mov	r1, r4
9076	ldr	r3, [r7]
9077	ldr	r2, [r6, r5, lsl #2]
9078	ldr	r0, .L1317+48
9079	bl	printf
9080	mov	r0, r4
9081	bl	FW_FlashBlockErase.constprop.41
9082	ldr	r3, [sp, #20]
9083	cmp	r3, #1
9084	bls	.L1285
9085	ldr	r3, [sp, #8]
9086	adds	r0, r3, r4
9087	bl	FW_FlashBlockErase.constprop.41
9088.L1285:
9089	ldr	r3, [sp, #16]
9090	ldr	r2, [sp, #20]
9091	add	r3, r3, r2
9092	str	r3, [sp, #16]
9093	ldr	r3, [sp, #36]
9094	add	r4, r4, r3
9095	b	.L1270
9096.L1280:
9097	ldr	r3, [sp, #24]
9098	add	r6, r6, r3
9099	add	r7, r7, r3, lsl #9
9100	uxth	r6, r6
9101	b	.L1276
9102.L1284:
9103	adds	r5, r5, #1
9104	cmp	r5, #65536
9105	bne	.L1281
9106	ldr	r3, [sp, #12]
9107	adds	r3, r3, #1
9108	cmp	r3, #5
9109	str	r3, [sp, #12]
9110	bls	.L1285
9111	b	.L1289
9112.L1318:
9113	.align	2
9114.L1317:
9115	.word	gp_flash_check_buf
9116	.word	.LANCHOR7
9117	.word	idb_buf
9118	.word	.LANCHOR16
9119	.word	.LANCHOR17
9120	.word	1446522928
9121	.word	.LANCHOR33
9122	.word	.LANCHOR158
9123	.word	idb_buf+262144
9124	.word	.LANCHOR122
9125	.word	.LANCHOR15
9126	.word	.LANCHOR4
9127	.word	.LC17
9128	.size	idb_write_data, .-idb_write_data
9129	.section	.text.ftl_memcpy32,"ax",%progbits
9130	.align	1
9131	.global	ftl_memcpy32
9132	.syntax unified
9133	.thumb
9134	.thumb_func
9135	.fpu softvfp
9136	.type	ftl_memcpy32, %function
9137ftl_memcpy32:
9138	@ args = 0, pretend = 0, frame = 0
9139	@ frame_needed = 0, uses_anonymous_args = 0
9140	movs	r3, #0
9141	push	{r4, lr}
9142.L1320:
9143	cmp	r3, r2
9144	bne	.L1321
9145	pop	{r4, pc}
9146.L1321:
9147	ldr	r4, [r1, r3, lsl #2]
9148	str	r4, [r0, r3, lsl #2]
9149	adds	r3, r3, #1
9150	b	.L1320
9151	.size	ftl_memcpy32, .-ftl_memcpy32
9152	.section	.text.ftl_memcmp,"ax",%progbits
9153	.align	1
9154	.global	ftl_memcmp
9155	.syntax unified
9156	.thumb
9157	.thumb_func
9158	.fpu softvfp
9159	.type	ftl_memcmp, %function
9160ftl_memcmp:
9161	@ args = 0, pretend = 0, frame = 0
9162	@ frame_needed = 0, uses_anonymous_args = 0
9163	@ link register save eliminated.
9164	b	memcmp
9165	.size	ftl_memcmp, .-ftl_memcmp
9166	.section	.text.rknand_get_clk_rate,"ax",%progbits
9167	.align	1
9168	.global	rknand_get_clk_rate
9169	.syntax unified
9170	.thumb
9171	.thumb_func
9172	.fpu softvfp
9173	.type	rknand_get_clk_rate, %function
9174rknand_get_clk_rate:
9175	@ args = 0, pretend = 0, frame = 0
9176	@ frame_needed = 0, uses_anonymous_args = 0
9177	@ link register save eliminated.
9178	ldr	r0, .L1324
9179	bx	lr
9180.L1325:
9181	.align	2
9182.L1324:
9183	.word	148000000
9184	.size	rknand_get_clk_rate, .-rknand_get_clk_rate
9185	.section	.text.ftl_malloc,"ax",%progbits
9186	.align	1
9187	.global	ftl_malloc
9188	.syntax unified
9189	.thumb
9190	.thumb_func
9191	.fpu softvfp
9192	.type	ftl_malloc, %function
9193ftl_malloc:
9194	@ args = 0, pretend = 0, frame = 0
9195	@ frame_needed = 0, uses_anonymous_args = 0
9196	@ link register save eliminated.
9197	movs	r1, #0
9198	b	kmalloc
9199	.size	ftl_malloc, .-ftl_malloc
9200	.section	.text.NandcInit,"ax",%progbits
9201	.align	1
9202	.global	NandcInit
9203	.syntax unified
9204	.thumb
9205	.thumb_func
9206	.fpu softvfp
9207	.type	NandcInit, %function
9208NandcInit:
9209	@ args = 0, pretend = 0, frame = 0
9210	@ frame_needed = 0, uses_anonymous_args = 0
9211	push	{r3, r4, r5, lr}
9212	movs	r2, #1
9213	ldr	r3, .L1329
9214	movs	r4, #0
9215	ldr	r5, .L1329+4
9216	str	r2, [r3, #12]
9217	movs	r2, #2
9218	str	r2, [r3, #20]
9219	movs	r2, #3
9220	stm	r3, {r0, r4}
9221	str	r0, [r3, #8]
9222	str	r0, [r3, #16]
9223	str	r2, [r3, #28]
9224	str	r0, [r3, #24]
9225	ldr	r3, .L1329+8
9226	ldr	r2, .L1329+12
9227	str	r0, [r3]
9228	ldr	r3, [r0]
9229	and	r3, r3, #253952
9230	ubfx	r1, r3, #13, #1
9231	bfi	r3, r4, #13, #1
9232	str	r1, [r2]
9233	orr	r3, r3, #256
9234	ldr	r2, [r0, #352]
9235	ldr	r1, .L1329+16
9236	ubfx	r2, r2, #16, #4
9237	str	r2, [r1]
9238	ldr	r2, [r0, #352]
9239	str	r2, [r5]
9240	movw	r5, #2049
9241	cmp	r2, r5
9242	itt	eq
9243	moveq	r2, #8
9244	streq	r2, [r1]
9245	str	r3, [r0]
9246	movw	r3, #4225
9247	str	r4, [r0, #336]
9248	str	r3, [r0, #4]
9249	movw	r3, #8322
9250	str	r3, [r0, #344]
9251	ldr	r3, .L1329+20
9252	str	r3, [r0, #304]
9253	mov	r0, #36864
9254	bl	ftl_malloc
9255	ldr	r3, .L1329+24
9256	str	r0, [r3]
9257	ldr	r3, .L1329+28
9258	str	r0, [r3]
9259	add	r0, r0, #32768
9260	str	r0, [r3, #4]
9261	str	r4, [r3, #24]
9262	ldr	r3, .L1329+32
9263	str	r4, [r3]
9264	pop	{r3, r4, r5, pc}
9265.L1330:
9266	.align	2
9267.L1329:
9268	.word	.LANCHOR0
9269	.word	.LANCHOR122
9270	.word	.LANCHOR19
9271	.word	.LANCHOR160
9272	.word	.LANCHOR34
9273	.word	1710593
9274	.word	.LANCHOR161
9275	.word	.LANCHOR35
9276	.word	.LANCHOR36
9277	.size	NandcInit, .-NandcInit
9278	.section	.text.FtlMemInit,"ax",%progbits
9279	.align	1
9280	.global	FtlMemInit
9281	.syntax unified
9282	.thumb
9283	.thumb_func
9284	.fpu softvfp
9285	.type	FtlMemInit, %function
9286FtlMemInit:
9287	@ args = 0, pretend = 0, frame = 0
9288	@ frame_needed = 0, uses_anonymous_args = 0
9289	ldr	r3, .L1337
9290	movs	r0, #128
9291	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9292	movs	r4, #0
9293	ldr	r2, .L1337+4
9294	movs	r6, #12
9295	movs	r7, #36
9296	strh	r4, [r3]	@ movhi
9297	ldr	r3, .L1337+8
9298	ldr	r5, .L1337+12
9299	ldr	fp, .L1337+320
9300	str	r4, [r3]
9301	ldr	r3, .L1337+16
9302	str	r4, [r3]
9303	ldr	r3, .L1337+20
9304	str	r4, [r3]
9305	ldr	r3, .L1337+24
9306	str	r4, [r3]
9307	ldr	r3, .L1337+28
9308	str	r4, [r3]
9309	ldr	r3, .L1337+32
9310	str	r4, [r3]
9311	ldr	r3, .L1337+36
9312	str	r4, [r3]
9313	ldr	r3, .L1337+40
9314	str	r4, [r3]
9315	ldr	r3, .L1337+44
9316	str	r4, [r3]
9317	ldr	r3, .L1337+48
9318	str	r4, [r3]
9319	ldr	r3, .L1337+52
9320	str	r4, [r3]
9321	ldr	r3, .L1337+56
9322	str	r4, [r3]
9323	ldr	r3, .L1337+60
9324	str	r4, [r3]
9325	ldr	r3, .L1337+64
9326	str	r4, [r3]
9327	ldr	r3, .L1337+68
9328	str	r4, [r3]
9329	ldr	r3, .L1337+72
9330	str	r4, [r3]
9331	ldr	r3, .L1337+76
9332	str	r4, [r3]
9333	movw	r3, #65535
9334	str	r3, [r2]
9335	ldr	r2, .L1337+80
9336	str	r4, [r2]
9337	ldr	r2, .L1337+84
9338	str	r4, [r2]
9339	ldr	r2, .L1337+88
9340	str	r4, [r2]
9341	ldr	r2, .L1337+92
9342	strh	r3, [r2]	@ movhi
9343	ldr	r2, .L1337+96
9344	strh	r3, [r2]	@ movhi
9345	ldr	r2, .L1337+100
9346	strh	r3, [r2]	@ movhi
9347	ldr	r2, .L1337+104
9348	strh	r3, [r2]	@ movhi
9349	movs	r2, #32
9350	ldr	r3, .L1337+108
9351	strh	r2, [r3]	@ movhi
9352	ldr	r3, .L1337+112
9353	strh	r0, [r3]	@ movhi
9354	ldr	r3, .L1337+116
9355	strh	r4, [r3]	@ movhi
9356	ldr	r3, .L1337+120
9357	strh	r4, [r3]	@ movhi
9358	ldr	r3, .L1337+124
9359	strh	r4, [r3]	@ movhi
9360	ldr	r3, .L1337+128
9361	strh	r4, [r3]	@ movhi
9362	ldr	r3, .L1337+132
9363	ldrh	r1, [r3]
9364	bl	__aeabi_idiv
9365	ldr	r2, .L1337+136
9366	str	r0, [r5]
9367	ldrh	r3, [r2]
9368	mov	r8, r2
9369	lsls	r3, r3, #2
9370	cmp	r0, r3
9371	it	hi
9372	strhi	r3, [r5]
9373	ldr	r3, .L1337+140
9374	str	r4, [r3]
9375	ldr	r4, .L1337+144
9376	ldrh	r0, [r4]
9377	lsls	r0, r0, #1
9378	bl	ftl_malloc
9379	ldr	r3, .L1337+148
9380	str	r0, [r3]
9381	ldrh	r0, [r4]
9382	muls	r0, r6, r0
9383	bl	ftl_malloc
9384	ldrh	r4, [r8]
9385	ldr	r3, .L1337+152
9386	muls	r4, r7, r4
9387	str	r0, [r3]
9388	lsl	r10, r4, #2
9389	mov	r0, r10
9390	bl	ftl_malloc
9391	ldr	r3, .L1337+156
9392	str	r0, [r3]
9393	mov	r0, r4
9394	bl	ftl_malloc
9395	ldr	r3, .L1337+160
9396	str	r0, [r3]
9397	mov	r0, r10
9398	bl	ftl_malloc
9399	ldr	r3, .L1337+164
9400	ldr	r10, .L1337+324
9401	str	r0, [r3]
9402	mov	r0, r4
9403	bl	ftl_malloc
9404	ldr	r3, .L1337+168
9405	str	r0, [r3]
9406	mov	r0, r4
9407	bl	ftl_malloc
9408	ldr	r3, .L1337+172
9409	str	r0, [r3]
9410	ldr	r0, [r5]
9411	muls	r0, r7, r0
9412	ldr	r7, .L1337+176
9413	bl	ftl_malloc
9414	ldr	r3, .L1337+180
9415	ldrh	r4, [r7]
9416	str	r0, [r3]
9417	ldrh	r3, [r8]
9418	mov	r0, r4
9419	lsls	r3, r3, #1
9420	adds	r3, r3, #1
9421	str	r3, [r10]
9422	bl	ftl_malloc
9423	ldr	r3, .L1337+184
9424	str	r0, [r3]
9425	mov	r0, r4
9426	bl	ftl_malloc
9427	ldr	r3, .L1337+188
9428	str	r0, [r3]
9429	mov	r0, r4
9430	bl	ftl_malloc
9431	ldr	r3, .L1337+192
9432	str	r0, [r3]
9433	ldr	r0, [r10]
9434	muls	r0, r4, r0
9435	bl	ftl_malloc
9436	ldr	r3, .L1337+196
9437	str	r0, [r3]
9438	ldr	r0, [r5]
9439	muls	r0, r4, r0
9440	bl	ftl_malloc
9441	ldr	r3, .L1337+200
9442	str	r0, [r3]
9443	mov	r0, r4
9444	bl	ftl_malloc
9445	ldr	r3, .L1337+204
9446	str	r0, [r3]
9447	mov	r0, r4
9448	bl	ftl_malloc
9449	ldr	r3, .L1337+208
9450	str	r0, [r3]
9451	ldr	r0, [r10]
9452	muls	r0, r6, r0
9453	bl	ftl_malloc
9454	ldr	r3, .L1337+212
9455	ldrh	r4, [r8]
9456	ldr	r8, .L1337+328
9457	str	r0, [r3]
9458	ldrh	r3, [fp]
9459	muls	r4, r3, r4
9460	mov	r0, r4
9461	bl	ftl_malloc
9462	ldr	r3, .L1337+216
9463	str	r0, [r3]
9464	lsls	r0, r4, #2
9465	ldr	r4, .L1337+220
9466	bl	ftl_malloc
9467	ldr	r3, .L1337+224
9468	str	r0, [r3]
9469	ldrh	r3, [fp]
9470	ldr	r0, [r10]
9471	muls	r0, r3, r0
9472	bl	ftl_malloc
9473	ldr	r3, .L1337+228
9474	str	r0, [r3]
9475	ldrh	r3, [fp]
9476	ldr	r0, [r5]
9477	ldr	r5, .L1337+232
9478	muls	r0, r3, r0
9479	bl	ftl_malloc
9480	ldr	r3, .L1337+236
9481	str	r0, [r3]
9482	ldrh	r0, [r4]
9483	lsls	r0, r0, #1
9484	uxth	r0, r0
9485	strh	r0, [r5]	@ movhi
9486	bl	ftl_malloc
9487	ldr	r3, .L1337+240
9488	str	r0, [r3]
9489	ldrh	r3, [r5]
9490	ldr	r0, .L1337+244
9491	addw	r3, r3, #547
9492	lsrs	r3, r3, #9
9493	and	r0, r0, r3, lsl #9
9494	strh	r3, [r5]	@ movhi
9495	bl	ftl_malloc
9496	ldr	r3, .L1337+248
9497	str	r0, [r3]
9498	adds	r0, r0, #32
9499	ldr	r3, .L1337+252
9500	str	r0, [r3]
9501	ldrh	r0, [r4]
9502	lsls	r0, r0, #1
9503	bl	ftl_malloc
9504	ldr	r5, [r8]
9505	ldr	r3, .L1337+256
9506	lsls	r5, r5, #1
9507	str	r0, [r3]
9508	mov	r0, r5
9509	bl	ftl_malloc
9510	ldr	r3, .L1337+260
9511	str	r0, [r3]
9512	mov	r0, r5
9513	bl	ftl_malloc
9514	ldr	r3, .L1337+264
9515	ldr	r5, .L1337+268
9516	str	r0, [r3]
9517	ldrh	r0, [r4]
9518	lsrs	r0, r0, #3
9519	adds	r0, r0, #4
9520	bl	ftl_malloc
9521	ldr	r3, .L1337+272
9522	str	r0, [r3]
9523	ldrh	r0, [r5]
9524	lsls	r0, r0, #1
9525	bl	ftl_malloc
9526	ldr	r3, .L1337+276
9527	str	r0, [r3]
9528	ldrh	r0, [r5]
9529	lsls	r0, r0, #1
9530	bl	ftl_malloc
9531	ldr	r3, .L1337+280
9532	str	r0, [r3]
9533	ldrh	r0, [r5]
9534	ldr	r5, .L1337+284
9535	lsls	r0, r0, #2
9536	bl	ftl_malloc
9537	ldr	r3, .L1337+288
9538	str	r0, [r3]
9539	ldrh	r0, [r5]
9540	lsls	r0, r0, #2
9541	bl	ftl_malloc
9542	ldrh	r2, [r5]
9543	movs	r1, #0
9544	ldr	r3, .L1337+292
9545	lsls	r2, r2, #2
9546	str	r0, [r3]
9547	bl	ftl_memset
9548	ldr	r3, .L1337+296
9549	ldrh	r5, [r3]
9550	lsls	r5, r5, #2
9551	mov	r0, r5
9552	bl	ftl_malloc
9553	ldr	r3, .L1337+300
9554	str	r0, [r3]
9555	mov	r0, r5
9556	bl	ftl_malloc
9557	ldr	r3, .L1337+304
9558	ldr	r5, .L1337+308
9559	str	r0, [r3]
9560	ldr	r0, [r8]
9561	lsls	r0, r0, #2
9562	bl	ftl_malloc
9563	ldr	r3, .L1337+312
9564	str	r0, [r3]
9565	ldrh	r0, [r5]
9566	muls	r0, r6, r0
9567	ldr	r6, .L1337+316
9568	bl	ftl_malloc
9569	b	.L1338
9570.L1339:
9571	.align	2
9572.L1337:
9573	.word	.LANCHOR142
9574	.word	.LANCHOR178
9575	.word	.LANCHOR162
9576	.word	.LANCHOR185
9577	.word	.LANCHOR163
9578	.word	.LANCHOR164
9579	.word	.LANCHOR165
9580	.word	.LANCHOR166
9581	.word	.LANCHOR167
9582	.word	.LANCHOR168
9583	.word	.LANCHOR169
9584	.word	.LANCHOR170
9585	.word	.LANCHOR171
9586	.word	.LANCHOR172
9587	.word	.LANCHOR173
9588	.word	.LANCHOR81
9589	.word	.LANCHOR174
9590	.word	.LANCHOR175
9591	.word	.LANCHOR176
9592	.word	.LANCHOR177
9593	.word	.LANCHOR179
9594	.word	.LANCHOR180
9595	.word	.LANCHOR75
9596	.word	.LANCHOR115
9597	.word	.LANCHOR116
9598	.word	.LANCHOR117
9599	.word	.LANCHOR118
9600	.word	.LANCHOR181
9601	.word	.LANCHOR182
9602	.word	.LANCHOR183
9603	.word	.LANCHOR119
9604	.word	.LANCHOR184
9605	.word	.LANCHOR121
9606	.word	.LANCHOR55
9607	.word	.LANCHOR38
9608	.word	.LANCHOR72
9609	.word	.LANCHOR54
9610	.word	.LANCHOR111
9611	.word	.LANCHOR114
9612	.word	.LANCHOR186
9613	.word	.LANCHOR187
9614	.word	.LANCHOR188
9615	.word	.LANCHOR79
9616	.word	.LANCHOR109
9617	.word	.LANCHOR57
9618	.word	.LANCHOR73
9619	.word	.LANCHOR189
9620	.word	.LANCHOR190
9621	.word	.LANCHOR191
9622	.word	.LANCHOR107
9623	.word	.LANCHOR192
9624	.word	.LANCHOR193
9625	.word	.LANCHOR194
9626	.word	.LANCHOR106
9627	.word	.LANCHOR195
9628	.word	.LANCHOR41
9629	.word	.LANCHOR196
9630	.word	.LANCHOR108
9631	.word	.LANCHOR198
9632	.word	.LANCHOR197
9633	.word	.LANCHOR140
9634	.word	33553920
9635	.word	.LANCHOR199
9636	.word	.LANCHOR80
9637	.word	.LANCHOR85
9638	.word	.LANCHOR132
9639	.word	.LANCHOR128
9640	.word	.LANCHOR61
9641	.word	.LANCHOR1
9642	.word	.LANCHOR71
9643	.word	.LANCHOR200
9644	.word	.LANCHOR62
9645	.word	.LANCHOR201
9646	.word	.LANCHOR202
9647	.word	.LANCHOR66
9648	.word	.LANCHOR134
9649	.word	.LANCHOR203
9650	.word	.LANCHOR67
9651	.word	.LANCHOR133
9652	.word	.LANCHOR45
9653	.word	.LANCHOR58
9654	.word	.LANCHOR110
9655	.word	.LANCHOR64
9656.L1338:
9657	ldr	r3, .L1340
9658	str	r0, [r3]
9659	ldrh	r3, [r5]
9660	ldrh	r0, [r7]
9661	ldr	r5, .L1340+4
9662	muls	r0, r3, r0
9663	bl	ftl_malloc
9664	ldr	r3, .L1340+8
9665	str	r0, [r3]
9666	movs	r0, #6
9667	ldrh	r3, [r4]
9668	muls	r0, r3, r0
9669	bl	ftl_malloc
9670	ldr	r3, .L1340+12
9671	str	r0, [r3]
9672	ldr	r3, .L1340+16
9673	ldrh	r0, [r3]
9674	ldrh	r3, [r6]
9675	adds	r0, r0, #31
9676	asrs	r0, r0, #5
9677	strh	r0, [r5]	@ movhi
9678	muls	r0, r3, r0
9679	lsls	r0, r0, #2
9680	bl	ftl_malloc
9681	ldrh	r1, [r5]
9682	movs	r2, #1
9683	ldr	r3, .L1340+20
9684	ldrh	r6, [r6]
9685	lsls	r1, r1, #2
9686	mov	r4, r3
9687	str	r0, [r4, #28]!
9688	mov	r0, r1
9689.L1333:
9690	cmp	r2, r6
9691	bcc	.L1334
9692	add	r3, r3, r2, lsl #2
9693	ldr	r2, .L1340+24
9694	movs	r1, #0
9695	adds	r3, r3, #24
9696.L1335:
9697	cmp	r3, r2
9698	bne	.L1336
9699	movs	r0, #0
9700	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9701.L1334:
9702	ldr	r5, [r3, #28]
9703	adds	r2, r2, #1
9704	add	r5, r5, r0
9705	add	r0, r0, r1
9706	str	r5, [r4, #4]!
9707	b	.L1333
9708.L1336:
9709	str	r1, [r3, #4]!
9710	b	.L1335
9711.L1341:
9712	.align	2
9713.L1340:
9714	.word	.LANCHOR98
9715	.word	.LANCHOR126
9716	.word	.LANCHOR129
9717	.word	.LANCHOR83
9718	.word	.LANCHOR51
9719	.word	.LANCHOR76
9720	.word	.LANCHOR76+56
9721	.size	FtlMemInit, .-FtlMemInit
9722	.section	.text.ftl_free,"ax",%progbits
9723	.align	1
9724	.global	ftl_free
9725	.syntax unified
9726	.thumb
9727	.thumb_func
9728	.fpu softvfp
9729	.type	ftl_free, %function
9730ftl_free:
9731	@ args = 0, pretend = 0, frame = 0
9732	@ frame_needed = 0, uses_anonymous_args = 0
9733	@ link register save eliminated.
9734	b	free
9735	.size	ftl_free, .-ftl_free
9736	.section	.text.FlashCs123Init,"ax",%progbits
9737	.align	1
9738	.global	FlashCs123Init
9739	.syntax unified
9740	.thumb
9741	.thumb_func
9742	.fpu softvfp
9743	.type	FlashCs123Init, %function
9744FlashCs123Init:
9745	@ args = 0, pretend = 0, frame = 0
9746	@ frame_needed = 0, uses_anonymous_args = 0
9747	@ link register save eliminated.
9748	bx	lr
9749	.size	FlashCs123Init, .-FlashCs123Init
9750	.section	.text.rk_nand_de_init,"ax",%progbits
9751	.align	1
9752	.global	rk_nand_de_init
9753	.syntax unified
9754	.thumb
9755	.thumb_func
9756	.fpu softvfp
9757	.type	rk_nand_de_init, %function
9758rk_nand_de_init:
9759	@ args = 0, pretend = 0, frame = 0
9760	@ frame_needed = 0, uses_anonymous_args = 0
9761	@ link register save eliminated.
9762	b	FlashDeInit
9763	.size	rk_nand_de_init, .-rk_nand_de_init
9764	.section	.text.rk_ftl_get_capacity,"ax",%progbits
9765	.align	1
9766	.global	rk_ftl_get_capacity
9767	.syntax unified
9768	.thumb
9769	.thumb_func
9770	.fpu softvfp
9771	.type	rk_ftl_get_capacity, %function
9772rk_ftl_get_capacity:
9773	@ args = 0, pretend = 0, frame = 0
9774	@ frame_needed = 0, uses_anonymous_args = 0
9775	@ link register save eliminated.
9776	ldr	r3, .L1346
9777	ldr	r0, [r3]
9778	bx	lr
9779.L1347:
9780	.align	2
9781.L1346:
9782	.word	.LANCHOR68
9783	.size	rk_ftl_get_capacity, .-rk_ftl_get_capacity
9784	.section	.text.rknand_print_hex,"ax",%progbits
9785	.align	1
9786	.global	rknand_print_hex
9787	.syntax unified
9788	.thumb
9789	.thumb_func
9790	.fpu softvfp
9791	.type	rknand_print_hex, %function
9792rknand_print_hex:
9793	@ args = 0, pretend = 0, frame = 0
9794	@ frame_needed = 0, uses_anonymous_args = 0
9795	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9796	movs	r5, #0
9797	ldr	r7, .L1357
9798	mov	fp, r0
9799	mov	r6, r1
9800	mov	r8, r2
9801	mov	r10, r3
9802	mov	r4, r5
9803.L1349:
9804	cmp	r4, r10
9805	bne	.L1355
9806	ldr	r1, .L1357+4
9807	ldr	r0, .L1357+8
9808	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
9809	b	printf
9810.L1355:
9811	cbnz	r5, .L1350
9812	mov	r2, r4
9813	mov	r1, fp
9814	ldr	r0, .L1357+12
9815	bl	printf
9816.L1350:
9817	cmp	r8, #4
9818	bne	.L1351
9819	ldr	r1, [r6, r4, lsl #2]
9820.L1356:
9821	mov	r0, r7
9822	adds	r5, r5, #1
9823	bl	printf
9824	cmp	r5, #15
9825	bls	.L1354
9826	movs	r5, #0
9827	ldr	r1, .L1357+4
9828	ldr	r0, .L1357+8
9829	bl	printf
9830.L1354:
9831	adds	r4, r4, #1
9832	b	.L1349
9833.L1351:
9834	cmp	r8, #2
9835	ite	eq
9836	ldrsheq	r1, [r6, r4, lsl #1]
9837	ldrbne	r1, [r6, r4]	@ zero_extendqisi2
9838	b	.L1356
9839.L1358:
9840	.align	2
9841.L1357:
9842	.word	.LC20
9843	.word	.LC21
9844	.word	.LC7
9845	.word	.LC19
9846	.size	rknand_print_hex, .-rknand_print_hex
9847	.section	.text.HynixGetReadRetryDefault,"ax",%progbits
9848	.align	1
9849	.global	HynixGetReadRetryDefault
9850	.syntax unified
9851	.thumb
9852	.thumb_func
9853	.fpu softvfp
9854	.type	HynixGetReadRetryDefault, %function
9855HynixGetReadRetryDefault:
9856	@ args = 0, pretend = 0, frame = 56
9857	@ frame_needed = 0, uses_anonymous_args = 0
9858	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9859	movs	r3, #172
9860	ldr	r5, .L1477
9861	cmp	r0, #2
9862	mov	r1, #173
9863	mov	r2, #174
9864	sub	sp, sp, #56
9865	mov	r4, r0
9866	strb	r3, [r5, #4]
9867	mov	r3, #175
9868	strb	r0, [r5]
9869	strb	r1, [r5, #5]
9870	strb	r2, [r5, #6]
9871	strb	r3, [r5, #7]
9872	bne	.L1360
9873	movs	r3, #167
9874	mov	fp, #7
9875	strb	r3, [r5, #4]
9876	movs	r2, #247
9877	ldr	r3, .L1477+4
9878	strb	r2, [r3, #17]
9879.L1470:
9880	mov	r10, #4
9881	b	.L1361
9882.L1360:
9883	cmp	r0, #3
9884	bne	.L1362
9885	movs	r3, #176
9886	strb	r3, [r5, #4]
9887	movs	r3, #177
9888	strb	r3, [r5, #5]
9889	movs	r3, #178
9890	strb	r3, [r5, #6]
9891	movs	r3, #179
9892	strb	r3, [r5, #7]
9893	movs	r3, #180
9894	strb	r3, [r5, #8]
9895	movs	r3, #181
9896	strb	r3, [r5, #9]
9897	movs	r3, #182
9898	strb	r3, [r5, #10]
9899	movs	r3, #183
9900.L1471:
9901	mov	fp, #8
9902	strb	r3, [r5, #11]
9903	mov	r10, fp
9904.L1361:
9905	subs	r3, r4, #1
9906	cmp	r3, #1
9907	bhi	.L1367
9908	mov	r8, #0
9909.L1368:
9910	ldr	r3, .L1477+8
9911	ldrb	r2, [r3]	@ zero_extendqisi2
9912	uxtb	r3, r8
9913	cmp	r2, r3
9914	bhi	.L1374
9915.L1375:
9916	ldr	r3, .L1477
9917	strb	r10, [r3, #1]
9918	strb	fp, [r3, #2]
9919	add	sp, sp, #56
9920	@ sp needed
9921	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9922.L1362:
9923	cmp	r0, #4
9924	bne	.L1363
9925	movs	r0, #204
9926	strb	r1, [r5, #9]
9927	strb	r0, [r5, #4]
9928	movs	r0, #191
9929	strb	r0, [r5, #5]
9930	movs	r0, #170
9931	strb	r0, [r5, #6]
9932	movs	r0, #171
9933	strb	r0, [r5, #7]
9934	movs	r0, #205
9935	strb	r0, [r5, #8]
9936	strb	r2, [r5, #10]
9937	b	.L1471
9938.L1363:
9939	cmp	r0, #5
9940	bne	.L1364
9941	movs	r3, #56
9942	mov	fp, #8
9943	strb	r3, [r5, #4]
9944	movs	r3, #57
9945	strb	r3, [r5, #5]
9946	movs	r3, #58
9947	strb	r3, [r5, #6]
9948	movs	r3, #59
9949	strb	r3, [r5, #7]
9950	b	.L1470
9951.L1364:
9952	cmp	r0, #6
9953	bne	.L1365
9954	movs	r3, #14
9955	mov	fp, #12
9956	strb	r3, [r5, #4]
9957	movs	r3, #15
9958	strb	r3, [r5, #5]
9959	movs	r3, #16
9960	strb	r3, [r5, #6]
9961	movs	r3, #17
9962	strb	r3, [r5, #7]
9963	b	.L1470
9964.L1365:
9965	cmp	r0, #7
9966	bne	.L1366
9967	movs	r3, #176
9968	mov	fp, #12
9969	strb	r3, [r5, #4]
9970	movs	r3, #177
9971	strb	r3, [r5, #5]
9972	movs	r3, #178
9973	strb	r3, [r5, #6]
9974	movs	r3, #179
9975	strb	r3, [r5, #7]
9976	movs	r3, #180
9977	strb	r3, [r5, #8]
9978	movs	r3, #181
9979	strb	r3, [r5, #9]
9980	movs	r3, #182
9981	strb	r3, [r5, #10]
9982	movs	r3, #183
9983	strb	r3, [r5, #11]
9984	movs	r3, #212
9985	strb	r3, [r5, #12]
9986	movs	r3, #213
9987	strb	r3, [r5, #13]
9988	mov	r10, #10
9989	b	.L1361
9990.L1366:
9991	cmp	r0, #8
9992	mov	r3, #7
9993	bne	.L1425
9994	strb	r3, [r5, #5]
9995	movs	r3, #9
9996	movs	r2, #6
9997	strb	r3, [r5, #7]
9998	movs	r3, #10
9999	strb	r2, [r5, #4]
10000	strb	r0, [r5, #6]
10001	mov	fp, #50
10002	strb	r3, [r5, #8]
10003	mov	r10, #5
10004	b	.L1361
10005.L1425:
10006	mov	fp, r3
10007	b	.L1470
10008.L1374:
10009	ldr	r2, .L1477+12
10010	movs	r6, #0
10011	ldrb	r2, [r2, r3]	@ zero_extendqisi2
10012	ldr	r3, .L1477+16
10013	ldr	r7, [r3, r2, lsl #3]
10014	add	r4, r5, r2, lsl #6
10015	add	r3, r3, r2, lsl #3
10016	movs	r2, #55
10017	adds	r4, r4, #20
10018	ldrb	r3, [r3, #4]	@ zero_extendqisi2
10019	add	r7, r7, r3, lsl #8
10020	addw	r3, r7, #2056
10021.L1369:
10022	adds	r1, r5, r6
10023	str	r2, [r3]
10024	ldrb	r1, [r1, #4]	@ zero_extendqisi2
10025	movs	r0, #80
10026	str	r2, [sp, #4]
10027	str	r3, [sp]
10028	str	r1, [r7, #2052]
10029	bl	udelay
10030	ldr	r1, [r7, #2048]
10031	ldr	r3, [sp]
10032	ldr	r2, [sp, #4]
10033	strb	r1, [r4, r6]
10034	adds	r6, r6, #1
10035	uxtb	r1, r6
10036	cmp	r10, r1
10037	bhi	.L1369
10038	ldr	r7, .L1477+4
10039	mov	r1, r4
10040	movs	r2, #0
10041.L1372:
10042	movs	r3, #1
10043	adds	r6, r7, r2
10044.L1371:
10045	ldrb	r0, [r6, r3, lsl #2]	@ zero_extendqisi2
10046	ldrb	ip, [r1]	@ zero_extendqisi2
10047	add	r0, r0, ip
10048	strb	r0, [r1, r3, lsl #3]
10049	adds	r3, r3, #1
10050	cmp	r3, #7
10051	bne	.L1371
10052	adds	r2, r2, #1
10053	adds	r1, r1, #1
10054	cmp	r2, #4
10055	bne	.L1372
10056	movs	r3, #0
10057	add	r8, r8, #1
10058	strb	r3, [r4, #16]
10059	strb	r3, [r4, #24]
10060	strb	r3, [r4, #32]
10061	strb	r3, [r4, #40]
10062	strb	r3, [r4, #48]
10063	strb	r3, [r4, #41]
10064	strb	r3, [r4, #49]
10065	b	.L1368
10066.L1367:
10067	subs	r3, r4, #3
10068	cmp	r3, #5
10069	bhi	.L1375
10070	smulbb	r3, fp, r10
10071	asrs	r2, r3, #1
10072	lsls	r3, r3, #4
10073	str	r3, [sp, #48]
10074	lsls	r3, r2, #2
10075	str	r2, [sp, #12]
10076	str	r3, [sp, #44]
10077	lsls	r3, r2, #1
10078	str	r3, [sp, #32]
10079	movs	r3, #0
10080.L1476:
10081	str	r3, [sp, #28]
10082	ldrb	r3, [sp, #28]	@ zero_extendqisi2
10083	str	r3, [sp, #16]
10084	ldr	r3, .L1477+8
10085	ldr	r2, [sp, #16]
10086	ldrb	r3, [r3]	@ zero_extendqisi2
10087	cmp	r3, r2
10088	bls	.L1375
10089	ldr	r2, [sp, #16]
10090	ldr	r3, .L1477+12
10091	ldrb	r8, [r3, r2]	@ zero_extendqisi2
10092	ldr	r3, .L1477+16
10093	mov	r0, r8
10094	ldr	r2, [r3, r8, lsl #3]
10095	add	r3, r3, r8, lsl #3
10096	ldrb	r3, [r3, #4]	@ zero_extendqisi2
10097	str	r2, [sp]
10098	str	r3, [sp, #4]
10099	mov	r3, r2
10100	ldr	r2, [sp, #4]
10101	add	r5, r3, r2, lsl #8
10102	movs	r3, #255
10103	str	r3, [r5, #2056]
10104	bl	NandcWaitFlashReady
10105	cmp	r4, #7
10106	bne	.L1377
10107	ldr	r3, .L1477
10108	movs	r0, #160
10109	mla	r0, r0, r8, r3
10110	add	r3, r0, #28
10111.L1472:
10112	ldr	r2, [sp, #4]
10113	cmp	r4, #4
10114	str	r3, [sp, #20]
10115	ldr	r3, [sp]
10116	add	r3, r3, r2, lsl #8
10117	mov	r2, #54
10118	str	r2, [r3, #2056]
10119	bne	.L1380
10120	movs	r2, #255
10121	str	r2, [r3, #2052]
10122	movs	r2, #64
10123	str	r2, [r3, #2048]
10124	movs	r2, #204
10125.L1473:
10126	str	r2, [r3, #2052]
10127	movs	r2, #77
10128	b	.L1474
10129.L1377:
10130	cmp	r4, #8
10131	beq	.L1379
10132	ldr	r0, .L1477
10133	add	r0, r0, r8, lsl #6
10134	add	r3, r0, #20
10135	b	.L1472
10136.L1478:
10137	.align	2
10138.L1477:
10139	.word	.LANCHOR20
10140	.word	.LANCHOR204
10141	.word	.LANCHOR26
10142	.word	.LANCHOR27
10143	.word	.LANCHOR0
10144.L1380:
10145	subs	r2, r4, #5
10146	cmp	r2, #1
10147	bhi	.L1382
10148	ldr	r2, .L1479
10149	ldrb	r2, [r2, #4]	@ zero_extendqisi2
10150	str	r2, [r3, #2052]
10151	movs	r2, #82
10152.L1474:
10153	str	r2, [r3, #2048]
10154.L1381:
10155	ldr	r2, [sp, #4]
10156	cmp	r4, #6
10157	ldr	r3, [sp]
10158	add	r3, r3, r2, lsl #8
10159	mov	r2, #22
10160	str	r2, [r3, #2056]
10161	mov	r2, #23
10162	str	r2, [r3, #2056]
10163	mov	r2, #4
10164	str	r2, [r3, #2056]
10165	mov	r2, #25
10166	str	r2, [r3, #2056]
10167	mov	r2, #0
10168	str	r2, [r3, #2056]
10169	str	r2, [r3, #2052]
10170	str	r2, [r3, #2052]
10171	it	eq
10172	moveq	r2, #31
10173	str	r2, [r3, #2052]
10174	movs	r2, #2
10175	str	r2, [r3, #2052]
10176	movs	r2, #0
10177	str	r2, [r3, #2052]
10178.L1424:
10179	ldr	r2, [sp, #4]
10180	mov	r0, r8
10181	ldr	r3, [sp]
10182	add	r3, r3, r2, lsl #8
10183	movs	r2, #48
10184	str	r2, [r3, #2056]
10185	bl	NandcWaitFlashReady
10186	subs	r3, r4, #5
10187	cmp	r3, #1
10188	str	r3, [sp, #36]
10189	bls	.L1427
10190	cmp	r4, #8
10191	beq	.L1427
10192	cmp	r4, #7
10193	ite	eq
10194	moveq	r2, #32
10195	movne	r2, #2
10196.L1385:
10197	ldr	r3, .L1479+4
10198	subs	r2, r2, #1
10199	ldm	sp, {r5, r6}
10200	ldr	r3, [r3]
10201	add	r5, r5, r6, lsl #8
10202	subs	r1, r3, #1
10203	uxtab	r2, r3, r2
10204	mov	r0, r1
10205	str	r5, [sp, #8]
10206.L1386:
10207	ldr	r5, [sp, #8]
10208	ldr	r5, [r5, #2048]
10209	strb	r5, [r0, #1]!
10210	cmp	r0, r2
10211	bne	.L1386
10212	cmp	r4, #8
10213	bne	.L1387
10214	movs	r2, #0
10215.L1389:
10216	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
10217	uxtb	r1, r2
10218	cmp	r0, #50
10219	beq	.L1388
10220	add	r0, r3, r2, lsl #2
10221	ldrb	r0, [r0, #1]	@ zero_extendqisi2
10222	cmp	r0, #5
10223	beq	.L1388
10224	adds	r2, r2, #1
10225	cmp	r2, #8
10226	bne	.L1389
10227.L1390:
10228	movs	r1, #0
10229	ldr	r0, .L1479+8
10230	bl	printf
10231.L1392:
10232	b	.L1392
10233.L1382:
10234	cmp	r4, #7
10235	bne	.L1381
10236	movs	r2, #174
10237	str	r2, [r3, #2052]
10238	movs	r2, #0
10239	str	r2, [r3, #2048]
10240	movs	r2, #176
10241	b	.L1473
10242.L1427:
10243	movs	r2, #16
10244	b	.L1385
10245.L1388:
10246	cmp	r1, #6
10247	bhi	.L1390
10248.L1391:
10249	ldr	r3, .L1479+4
10250	ldr	r2, [r3]
10251	mov	r3, r2
10252.L1401:
10253	ldr	r0, [sp, #48]
10254	subs	r1, r3, r2
10255	cmp	r1, r0
10256	blt	.L1402
10257	ldr	r3, .L1479+4
10258	ldr	r1, [r3]
10259	ldr	r3, [sp, #32]
10260	adds	r0, r1, r3
10261	movs	r3, #8
10262.L1404:
10263	mov	r6, r0
10264	movs	r5, #0
10265.L1403:
10266	ldrh	r7, [r6]
10267	adds	r5, r5, #1
10268	mvns	r7, r7
10269	strh	r7, [r6], #2	@ movhi
10270	ldr	r7, [sp, #12]
10271	cmp	r7, r5
10272	bgt	.L1403
10273	ldr	r5, [sp, #44]
10274	subs	r3, r3, #1
10275	add	r0, r0, r5
10276	bne	.L1404
10277	mov	r7, r1
10278	str	r3, [sp, #24]
10279.L1410:
10280	movs	r5, #0
10281	mov	r0, r5
10282.L1409:
10283	movs	r3, #1
10284	mov	ip, #0
10285	lsl	r6, r3, r0
10286	movs	r3, #16
10287	str	r3, [sp, #40]
10288	mov	lr, r6
10289	mov	r6, r7
10290.L1407:
10291	ldrh	r3, [r6]
10292	str	r3, [sp, #52]
10293	ldr	r3, [sp, #52]
10294	bics	r3, lr, r3
10295	ldr	r3, [sp, #32]
10296	it	eq
10297	addeq	ip, ip, #1
10298	add	r6, r6, r3
10299	ldr	r3, [sp, #40]
10300	subs	r3, r3, #1
10301	str	r3, [sp, #40]
10302	bne	.L1407
10303	cmp	ip, #8
10304	add	r0, r0, #1
10305	ittt	hi
10306	movhi	r3, lr
10307	orrhi	r5, r5, r3
10308	uxthhi	r5, r5
10309	cmp	r0, #16
10310	bne	.L1409
10311	ldr	r3, [sp, #24]
10312	strh	r5, [r7], #2	@ movhi
10313	adds	r3, r3, #1
10314	str	r3, [sp, #24]
10315	ldr	r0, [sp, #24]
10316	ldr	r3, [sp, #12]
10317	cmp	r3, r0
10318	bgt	.L1410
10319	subs	r0, r1, #4
10320	add	r5, r1, #28
10321	movs	r3, #0
10322.L1413:
10323	ldr	r6, [r0, #4]!
10324	cbnz	r6, .L1412
10325	adds	r3, r3, #1
10326.L1412:
10327	cmp	r5, r0
10328	bne	.L1413
10329	cmp	r3, #7
10330	ble	.L1414
10331	ldr	r0, .L1479+12
10332	mov	r3, #1024
10333	movs	r2, #1
10334	bl	rknand_print_hex
10335	movs	r1, #0
10336	ldr	r0, .L1479+8
10337	bl	printf
10338.L1415:
10339	b	.L1415
10340.L1387:
10341	cmp	r4, #7
10342	bne	.L1393
10343	movs	r2, #0
10344.L1395:
10345	ldrb	r0, [r3, r2, lsl #2]	@ zero_extendqisi2
10346	uxtb	r1, r2
10347	cmp	r0, #12
10348	beq	.L1394
10349	add	r0, r3, r2, lsl #2
10350	ldrb	r0, [r0, #1]	@ zero_extendqisi2
10351	cmp	r0, #10
10352	beq	.L1394
10353	adds	r2, r2, #1
10354	cmp	r2, #8
10355	bne	.L1395
10356.L1396:
10357	movs	r1, #0
10358	ldr	r0, .L1479+8
10359	bl	printf
10360.L1397:
10361	b	.L1397
10362.L1394:
10363	cmp	r1, #6
10364	bls	.L1391
10365	b	.L1396
10366.L1393:
10367	cmp	r4, #6
10368	bne	.L1391
10369	adds	r3, r3, #7
10370.L1398:
10371	ldrb	r2, [r1, #1]!	@ zero_extendqisi2
10372	cmp	r2, #12
10373	beq	.L1391
10374	ldrb	r2, [r1, #8]	@ zero_extendqisi2
10375	cmp	r2, #4
10376	beq	.L1391
10377	cmp	r1, r3
10378	bne	.L1398
10379	movs	r1, #0
10380	ldr	r0, .L1479+8
10381	bl	printf
10382.L1400:
10383	b	.L1400
10384.L1402:
10385	ldr	r1, [sp, #8]
10386	ldr	r1, [r1, #2048]
10387	strb	r1, [r3], #1
10388	b	.L1401
10389.L1414:
10390	cmp	r4, #6
10391	beq	.L1429
10392	cmp	r4, #7
10393	beq	.L1430
10394	cmp	r4, #8
10395	ite	eq
10396	moveq	r6, #5
10397	movne	r6, #8
10398.L1416:
10399	add	r3, r10, #-1
10400	ldr	r0, [sp, #20]
10401	uxtb	r3, r3
10402	movs	r5, #0
10403	adds	r3, r3, #1
10404.L1417:
10405	mov	ip, r0
10406	mov	r1, r2
10407.L1418:
10408	ldrb	r7, [r1], #1	@ zero_extendqisi2
10409	strb	r7, [ip], #1
10410	subs	r7, r1, r2
10411	uxtb	r7, r7
10412	cmp	r10, r7
10413	bhi	.L1418
10414	adds	r5, r5, #1
10415	add	r2, r2, r3
10416	cmp	fp, r5
10417	add	r0, r0, r6
10418	bgt	.L1417
10419	ldr	r3, [sp]
10420	mov	r0, r8
10421	ldr	r2, [sp, #4]
10422	add	r5, r3, r2, lsl #8
10423	movs	r3, #255
10424	str	r3, [r5, #2056]
10425	bl	NandcWaitFlashReady
10426	ldr	r3, [sp, #36]
10427	cmp	r3, #1
10428	bhi	.L1420
10429	movs	r3, #54
10430	ldr	r2, [sp, #8]
10431	str	r3, [r5, #2056]
10432	mov	r1, #-1
10433	ldr	r3, .L1479
10434	ldr	r0, [sp, #16]
10435	ldrb	r3, [r3, #4]	@ zero_extendqisi2
10436	str	r3, [r2, #2052]
10437	movs	r3, #0
10438	str	r3, [r2, #2048]
10439	movs	r3, #22
10440	str	r3, [r5, #2056]
10441	bl	FlashReadCmd
10442.L1421:
10443	mov	r0, r8
10444	bl	NandcWaitFlashReady
10445	ldr	r3, [sp, #28]
10446	adds	r3, r3, #1
10447	b	.L1476
10448.L1429:
10449	movs	r6, #4
10450	b	.L1416
10451.L1430:
10452	movs	r6, #10
10453	b	.L1416
10454.L1420:
10455	cmp	r4, #8
10456	ite	eq
10457	moveq	r3, #190
10458	movne	r3, #56
10459	str	r3, [r5, #2056]
10460	b	.L1421
10461.L1379:
10462	movs	r3, #120
10463	movs	r2, #23
10464	str	r3, [r5, #2056]
10465	movs	r3, #0
10466	str	r3, [r5, #2052]
10467	movs	r1, #25
10468	str	r3, [r5, #2052]
10469	str	r3, [r5, #2052]
10470	str	r2, [r5, #2056]
10471	movs	r2, #4
10472	str	r2, [r5, #2056]
10473	str	r1, [r5, #2056]
10474	movs	r1, #218
10475	str	r1, [r5, #2056]
10476	movs	r1, #21
10477	str	r3, [r5, #2056]
10478	str	r3, [r5, #2052]
10479	str	r3, [r5, #2052]
10480	str	r1, [r5, #2052]
10481	str	r2, [r5, #2052]
10482	str	r3, [r5, #2052]
10483	ldr	r3, .L1479+16
10484	str	r3, [sp, #20]
10485	b	.L1424
10486.L1480:
10487	.align	2
10488.L1479:
10489	.word	.LANCHOR20
10490	.word	.LANCHOR154
10491	.word	.LC22
10492	.word	.LC23
10493	.word	.LANCHOR20+28
10494	.size	HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
10495	.section	.text.FlashGetReadRetryDefault,"ax",%progbits
10496	.align	1
10497	.global	FlashGetReadRetryDefault
10498	.syntax unified
10499	.thumb
10500	.thumb_func
10501	.fpu softvfp
10502	.type	FlashGetReadRetryDefault, %function
10503FlashGetReadRetryDefault:
10504	@ args = 0, pretend = 0, frame = 0
10505	@ frame_needed = 0, uses_anonymous_args = 0
10506	@ link register save eliminated.
10507	mov	r3, r0
10508	cbz	r0, .L1481
10509	subs	r2, r0, #1
10510	cmp	r2, #7
10511	bhi	.L1483
10512	b	HynixGetReadRetryDefault
10513.L1483:
10514	cmp	r0, #49
10515	bne	.L1484
10516	ldr	r0, .L1504
10517	movs	r2, #64
10518	ldr	r1, .L1504+4
10519	strb	r3, [r0]
10520	movs	r3, #4
10521	strb	r3, [r0, #1]
10522	movs	r3, #15
10523	strb	r3, [r0, #2]
10524.L1502:
10525	adds	r0, r0, #4
10526	b	ftl_memcpy
10527.L1484:
10528	cmp	r0, #33
10529	beq	.L1485
10530	sub	r2, r0, #65
10531	cmp	r2, #1
10532	bhi	.L1486
10533.L1485:
10534	ldr	r0, .L1504
10535	strb	r3, [r0]
10536	movs	r3, #4
10537.L1503:
10538	strb	r3, [r0, #1]
10539	movs	r3, #7
10540	strb	r3, [r0, #2]
10541	movs	r2, #45
10542	ldr	r1, .L1504+8
10543	b	.L1502
10544.L1486:
10545	cmp	r0, #34
10546	beq	.L1487
10547	cmp	r0, #67
10548	bne	.L1488
10549.L1487:
10550	ldr	r0, .L1504
10551	strb	r3, [r0]
10552	movs	r3, #5
10553	b	.L1503
10554.L1488:
10555	cmp	r0, #35
10556	beq	.L1489
10557	cmp	r0, #68
10558	bne	.L1481
10559.L1489:
10560	ldr	r0, .L1504
10561	movs	r2, #95
10562	ldr	r1, .L1504+12
10563	strb	r3, [r0]
10564	movs	r3, #5
10565	strb	r3, [r0, #1]
10566	movs	r3, #17
10567	strb	r3, [r0, #2]
10568	b	.L1502
10569.L1481:
10570	bx	lr
10571.L1505:
10572	.align	2
10573.L1504:
10574	.word	.LANCHOR20
10575	.word	.LANCHOR14
10576	.word	.LANCHOR9
10577	.word	.LANCHOR11
10578	.size	FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
10579	.section	.text.FlashInit,"ax",%progbits
10580	.align	1
10581	.global	FlashInit
10582	.syntax unified
10583	.thumb
10584	.thumb_func
10585	.fpu softvfp
10586	.type	FlashInit, %function
10587FlashInit:
10588	@ args = 0, pretend = 0, frame = 16
10589	@ frame_needed = 0, uses_anonymous_args = 0
10590	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10591	mov	r4, r0
10592	sub	sp, sp, #32
10593	mov	r0, #32768
10594	movs	r5, #0
10595	bl	ftl_malloc
10596	ldr	r3, .L1614
10597	ldr	fp, .L1614+124
10598	ldr	r10, .L1614+128
10599	str	r0, [r3]
10600	mov	r0, #32768
10601	bl	ftl_malloc
10602	ldr	r3, .L1614+4
10603	ldr	r8, .L1614+132
10604	ldr	r6, .L1614+8
10605	str	r0, [r3]
10606	mov	r0, #4096
10607	bl	ftl_malloc
10608	ldr	r3, .L1614+12
10609	ldr	r7, .L1614+16
10610	str	r0, [r3]
10611	mov	r0, #32768
10612	bl	ftl_malloc
10613	ldr	r3, .L1614+20
10614	str	r0, [r3]
10615	mov	r0, #4096
10616	bl	ftl_malloc
10617	ldr	r3, .L1614+24
10618	ldr	r2, .L1614+28
10619	strb	r5, [r6]
10620	str	r0, [r3]
10621	movs	r3, #50
10622	strb	r3, [r2]
10623	movs	r2, #128
10624	strb	r3, [fp]
10625	mov	r0, r4
10626	ldr	r3, .L1614+32
10627	ldr	r4, .L1614+36
10628	strb	r5, [r10]
10629	str	r5, [r3]
10630	ldr	r3, .L1614+40
10631	strb	r5, [r8]
10632	str	r2, [r3]
10633	ldr	r3, .L1614+44
10634	str	r5, [r3]
10635	movs	r3, #60
10636	strb	r3, [r7]
10637	bl	NandcInit
10638	str	fp, [sp, #24]
10639	str	r10, [sp, #20]
10640	str	r8, [sp, #28]
10641.L1512:
10642	ldr	r3, .L1614+48
10643	uxtb	r8, r5
10644	mov	r0, r8
10645	ldr	fp, [r3, r5, lsl #3]
10646	add	r2, r3, r5, lsl #3
10647	ldrb	r10, [r2, #4]	@ zero_extendqisi2
10648	bl	FlashReset
10649	mov	r0, r8
10650	bl	NandcFlashCs
10651	add	fp, fp, r10, lsl #8
10652	movs	r2, #144
10653	mov	r10, #0
10654	str	r2, [fp, #2056]
10655	movs	r0, #200
10656	str	r10, [fp, #2052]
10657	bl	udelay
10658	ldr	r1, [fp, #2048]
10659	uxtb	r1, r1
10660	strb	r1, [r4]
10661	cmp	r1, #44
10662	ldr	r0, [fp, #2048]
10663	strb	r0, [r4, #1]
10664	ldr	r0, [fp, #2048]
10665	strb	r0, [r4, #2]
10666	ldr	r0, [fp, #2048]
10667	strb	r0, [r4, #3]
10668	ldr	r0, [fp, #2048]
10669	strb	r0, [r4, #4]
10670	ldr	r0, [fp, #2048]
10671	strb	r0, [r4, #5]
10672	bne	.L1507
10673	movs	r1, #239
10674	movs	r0, #200
10675	str	r1, [fp, #2056]
10676	movs	r1, #1
10677	str	r1, [fp, #2052]
10678	bl	udelay
10679	movs	r1, #4
10680	str	r1, [fp, #2048]
10681	str	r10, [fp, #2048]
10682	str	r10, [fp, #2048]
10683	str	r10, [fp, #2048]
10684.L1507:
10685	mov	r0, r8
10686	bl	NandcFlashDeCs
10687	ldrb	r2, [r4]	@ zero_extendqisi2
10688	subs	r3, r2, #1
10689	uxtb	r3, r3
10690	cmp	r3, #253
10691	bhi	.L1508
10692	ldrb	r1, [r4, #5]	@ zero_extendqisi2
10693	ldrb	r3, [r4, #1]	@ zero_extendqisi2
10694	ldr	r0, .L1614+52
10695	str	r1, [sp, #12]
10696	ldrb	r1, [r4, #4]	@ zero_extendqisi2
10697	str	r1, [sp, #8]
10698	ldrb	r1, [r4, #3]	@ zero_extendqisi2
10699	str	r1, [sp, #4]
10700	ldrb	r1, [r4, #2]	@ zero_extendqisi2
10701	str	r1, [sp]
10702	adds	r1, r5, #1
10703	bl	printf
10704.L1508:
10705	cbnz	r5, .L1509
10706	ldr	r2, .L1614+36
10707	ldrb	r3, [r2]	@ zero_extendqisi2
10708	subs	r3, r3, #1
10709	uxtb	r3, r3
10710	cmp	r3, #253
10711	bhi	.L1560
10712	ldrb	r3, [r2, #1]	@ zero_extendqisi2
10713	cmp	r3, #255
10714	beq	.L1560
10715.L1509:
10716	ldrb	r3, [r4]	@ zero_extendqisi2
10717	adds	r5, r5, #1
10718	adds	r4, r4, #8
10719	cmp	r3, #181
10720	itt	eq
10721	moveq	r3, #44
10722	strbeq	r3, [r4, #-8]
10723	cmp	r5, #4
10724	bne	.L1512
10725	ldr	r3, .L1614+36
10726	ldrb	r2, [r3]	@ zero_extendqisi2
10727	mov	r10, r3
10728	cmp	r2, #173
10729	beq	.L1513
10730	ldr	r3, .L1614+56
10731	ldr	r0, [r3]
10732	bl	NandcSetDdrMode
10733.L1513:
10734	ldr	r5, .L1614+60
10735	mov	r2, #852
10736	movs	r1, #0
10737	ldr	r0, .L1614+64
10738	bl	ftl_memset
10739	movs	r2, #0
10740	ldr	r4, .L1614+68
10741	strb	r2, [r5]
10742	mov	fp, r5
10743	ldr	r2, .L1614+72
10744	ldr	r3, .L1614+76
10745	ldr	r1, [r2]
10746	ldr	r2, .L1614+80
10747	str	r3, [r4]
10748	cmp	r1, r2
10749	mov	r8, r2
10750	bne	.L1514
10751	ldrb	r3, [r3, #19]	@ zero_extendqisi2
10752	cmp	r3, #50
10753	ittt	ne
10754	ldrne	r3, .L1614+84
10755	movne	r2, #1
10756	strne	r2, [r3]
10757.L1514:
10758	ldrb	r3, [r10, #1]	@ zero_extendqisi2
10759	cmp	r3, #161
10760	beq	.L1515
10761	cmp	r3, #241
10762	beq	.L1515
10763	cmp	r3, #218
10764	beq	.L1515
10765	and	r2, r3, #253
10766	cmp	r2, #209
10767	beq	.L1515
10768	cmp	r3, #220
10769	bne	.L1516
10770	ldrb	r2, [r10, #3]	@ zero_extendqisi2
10771	cmp	r2, #149
10772	bne	.L1516
10773.L1515:
10774	ldr	ip, .L1614+36
10775	movs	r0, #1
10776	ldr	r2, [sp, #20]
10777	ldr	r5, [sp, #24]
10778	ldrb	lr, [ip]	@ zero_extendqisi2
10779	strb	r0, [r2]
10780	movs	r2, #16
10781	strb	r2, [r5]
10782	strb	r2, [r7]
10783	cmp	lr, #152
10784	ldr	r2, .L1614+88
10785	strb	lr, [r2, #1]
10786	strb	r3, [r2, #2]
10787	bne	.L1518
10788	ldrsb	ip, [ip, #4]
10789	cmp	ip, #0
10790	blt	.L1519
10791	movs	r0, #24
10792	strb	r0, [r7]
10793.L1518:
10794	cmp	r1, r8
10795	beq	.L1521
10796	movw	r0, #2049
10797	cmp	r1, r0
10798	bne	.L1522
10799.L1521:
10800	movs	r1, #16
10801	strb	r1, [r7]
10802.L1522:
10803	cmp	r3, #218
10804	bne	.L1523
10805	mov	r1, #2048
10806.L1610:
10807	strh	r1, [r2, #14]	@ movhi
10808	strb	r3, [r2, #2]
10809.L1524:
10810	movs	r2, #32
10811	ldr	r1, .L1614+92
10812	ldr	r0, .L1614+96
10813	bl	ftl_memcpy
10814	movs	r2, #32
10815	ldr	r1, .L1614+88
10816	ldr	r0, .L1614+76
10817	bl	ftl_memcpy
10818.L1516:
10819	ldr	r3, [sp, #20]
10820	ldr	r10, .L1614+136
10821	ldrb	r3, [r3]	@ zero_extendqisi2
10822	cmp	r3, #0
10823	bne	.L1527
10824	bl	FlashLoadPhyInfoInRam
10825	cbnz	r0, .L1529
10826	ldr	r3, [r4]
10827	ldr	r7, .L1614+100
10828	ldrh	r3, [r3, #16]
10829	lsrs	r3, r3, #8
10830	lsls	r1, r3, #31
10831	and	r0, r3, #7
10832	strb	r0, [r7]
10833	bmi	.L1529
10834	movs	r3, #1
10835	strb	r3, [r6]
10836	bl	FlashSetInterfaceMode
10837	ldrb	r0, [r7]	@ zero_extendqisi2
10838	bl	NandcSetMode
10839.L1529:
10840	ldr	r3, [r4]
10841	ldrb	r3, [r3, #26]	@ zero_extendqisi2
10842	strb	r3, [r10]
10843	bl	FlashLoadPhyInfo
10844	cmp	r0, #0
10845	beq	.L1527
10846	ldr	r3, [r4]
10847	ldr	r0, .L1614+104
10848	ldrh	r1, [r3, #14]
10849	bl	printf
10850	bl	FlashLoadPhyInfoInRam
10851	adds	r2, r0, #1
10852	beq	.L1506
10853	bl	FlashDieInfoInit
10854	ldr	r3, [r4]
10855	ldrb	r0, [r3, #19]	@ zero_extendqisi2
10856	bl	FlashGetReadRetryDefault
10857	ldr	r3, [r4]
10858	ldr	r2, .L1614+108
10859	ldrb	r1, [r3, #9]	@ zero_extendqisi2
10860	ldrh	r2, [r2]
10861	addw	r2, r2, #4095
10862	cmp	r1, r2, asr #12
10863	blt	.L1532
10864	ldrh	r2, [r3, #14]
10865	adds	r2, r2, #255
10866	cmp	r1, r2, asr #8
10867	bge	.L1533
10868.L1532:
10869	ldrh	r2, [r3, #14]
10870	bic	r2, r2, #255
10871	strh	r2, [r3, #14]	@ movhi
10872.L1533:
10873	ldr	r3, .L1614+100
10874	ldrb	r3, [r3]	@ zero_extendqisi2
10875	tst	r3, #6
10876	beq	.L1534
10877	bl	FlashSavePhyInfo
10878	movs	r0, #0
10879	bl	flash_enter_slc_mode
10880	ldr	r3, .L1614+112
10881	movs	r0, #0
10882	ldr	r1, [r3]
10883	bl	FlashDdrParaScan
10884	movs	r0, #0
10885	bl	flash_exit_slc_mode
10886.L1534:
10887	bl	FlashSavePhyInfo
10888.L1527:
10889	ldr	r7, [r4]
10890	ldr	r5, .L1614+116
10891	ldrh	r2, [r7, #16]
10892	ldrb	r3, [r7, #26]	@ zero_extendqisi2
10893	ldrh	r0, [r7, #10]
10894	ubfx	r1, r2, #3, #1
10895	strb	r3, [r10]
10896	ubfx	r3, r2, #7, #1
10897	strb	r3, [fp]
10898	mov	fp, #0
10899	ldr	r3, .L1614+120
10900	str	fp, [r5]
10901	strb	r1, [r3]
10902	b	.L1615
10903.L1616:
10904	.align	2
10905.L1614:
10906	.word	.LANCHOR154
10907	.word	.LANCHOR149
10908	.word	.LANCHOR30
10909	.word	.LANCHOR205
10910	.word	.LANCHOR158
10911	.word	.LANCHOR206
10912	.word	.LANCHOR207
10913	.word	.LANCHOR157
10914	.word	.LANCHOR156
10915	.word	.LANCHOR22
10916	.word	.LANCHOR4
10917	.word	.LANCHOR144
10918	.word	.LANCHOR0
10919	.word	.LC24
10920	.word	.LANCHOR160
10921	.word	.LANCHOR6
10922	.word	.LANCHOR20
10923	.word	.LANCHOR7
10924	.word	.LANCHOR122
10925	.word	.LANCHOR31
10926	.word	1446522928
10927	.word	.LANCHOR29
10928	.word	.LANCHOR209
10929	.word	.LANCHOR152+32
10930	.word	.LANCHOR8
10931	.word	.LANCHOR25
10932	.word	.LC25
10933	.word	.LANCHOR125
10934	.word	.LANCHOR155
10935	.word	.LANCHOR145
10936	.word	.LANCHOR210
10937	.word	.LANCHOR3
10938	.word	.LANCHOR2
10939	.word	.LANCHOR208
10940	.word	.LANCHOR16
10941.L1615:
10942	ubfx	r1, r2, #4, #1
10943	ldr	r3, .L1617
10944	ubfx	r2, r2, #8, #3
10945	strb	r1, [r3]
10946	ldr	r3, .L1617+4
10947	ldrb	r1, [r7, #12]	@ zero_extendqisi2
10948	strb	r2, [r3]
10949	str	r3, [sp, #28]
10950	bl	__aeabi_idiv
10951	mov	r1, r0
10952	ldrb	r0, [r7, #18]	@ zero_extendqisi2
10953	bl	BuildFlashLsbPageTable
10954	bl	FlashDieInfoInit
10955	ldr	r2, [r4]
10956	mov	ip, r5
10957	ldr	r3, [sp, #28]
10958	ldrh	r1, [r2, #16]
10959	mov	r7, r3
10960	tst	r1, #64
10961	beq	.L1536
10962	ldrb	r0, [r2, #19]	@ zero_extendqisi2
10963	ldr	r3, .L1617+8
10964	ldr	r1, .L1617+12
10965	strb	r0, [r3]
10966	ldrb	r2, [r1, #1]	@ zero_extendqisi2
10967	ldr	r3, .L1617+16
10968	ldrb	r1, [r1, #2]	@ zero_extendqisi2
10969	strb	r2, [r3]
10970	ldr	r2, .L1617+20
10971	strb	r1, [r2]
10972	subs	r1, r0, #1
10973	cmp	r1, #7
10974	mov	r1, r2
10975	bhi	.L1537
10976	ldr	r3, .L1617+24
10977	str	r3, [r5]
10978	subs	r3, r0, #5
10979	cmp	r3, #1
10980	bls	.L1538
10981	cmp	r0, #8
10982	bne	.L1539
10983.L1538:
10984	ldr	r3, .L1617+28
10985	movs	r2, #1
10986	str	r2, [r3]
10987.L1539:
10988	cmp	r0, #7
10989	ldr	r3, .L1617+32
10990	beq	.L1540
10991	sub	r2, r3, #8
10992	cmp	r0, #8
10993	it	ne
10994	movne	r3, r2
10995.L1540:
10996	subs	r1, r3, #1
10997	movs	r2, #0
10998	adds	r3, r3, #31
10999.L1542:
11000	ldrsb	r5, [r1, #1]!
11001	cbnz	r5, .L1541
11002	adds	r2, r2, #1
11003.L1541:
11004	cmp	r3, r1
11005	bne	.L1542
11006	cmp	r2, #27
11007	bls	.L1536
11008	bl	FlashGetReadRetryDefault
11009	bl	FlashSavePhyInfo
11010.L1536:
11011	ldr	r3, .L1617+36
11012	ldr	r3, [r3]
11013	cmp	r3, r8
11014	bne	.L1554
11015	ldrb	r3, [r10]	@ zero_extendqisi2
11016	cbz	r3, .L1554
11017	ldr	r3, .L1617+40
11018	movs	r2, #0
11019	ldr	r3, [r3]
11020	strb	r2, [r3, #18]
11021.L1554:
11022	ldr	r3, .L1617+44
11023	ldrb	r3, [r3]	@ zero_extendqisi2
11024	cmp	r3, #44
11025	bne	.L1555
11026	ldrb	r3, [r6]	@ zero_extendqisi2
11027	cbz	r3, .L1555
11028	movs	r3, #0
11029	movs	r0, #1
11030	strb	r3, [r6]
11031	bl	FlashSetInterfaceMode
11032	movs	r0, #1
11033	bl	NandcSetMode
11034.L1555:
11035	ldrb	r3, [r7]	@ zero_extendqisi2
11036	tst	r3, #6
11037	beq	.L1556
11038	ldrb	r2, [r6]	@ zero_extendqisi2
11039	cbnz	r2, .L1557
11040	lsls	r3, r3, #31
11041	bmi	.L1556
11042.L1557:
11043	movs	r0, #0
11044	bl	flash_enter_slc_mode
11045	ldr	r3, .L1617+48
11046	movs	r0, #0
11047	ldr	r1, [r3]
11048	bl	FlashDdrParaScan
11049	movs	r0, #0
11050	bl	flash_exit_slc_mode
11051.L1556:
11052	ldr	r3, [r4]
11053	movs	r6, #16
11054	ldrb	r0, [r3, #20]	@ zero_extendqisi2
11055	bl	FlashBchSel
11056	ldr	r0, .L1617+52
11057	bl	FlashReadIdbDataRaw
11058	ldr	r7, [r4]
11059	ldr	r3, [sp, #24]
11060	ldr	r4, .L1617+56
11061	ldrb	r1, [r7, #12]	@ zero_extendqisi2
11062	strb	r6, [r3]
11063	ldrh	r5, [r7, #10]
11064	strh	r1, [r4, #8]	@ movhi
11065	ldrb	r3, [r7, #7]	@ zero_extendqisi2
11066	ldrh	r8, [r7, #14]
11067	mov	r0, r5
11068	str	r3, [r4, #4]
11069	ldr	r3, .L1617+44
11070	ldrb	r2, [r3, #1]	@ zero_extendqisi2
11071	lsl	r3, r2, r6
11072	orr	r3, r3, r2, lsl #8
11073	ldr	r2, .L1617+44
11074	ldrb	r2, [r2]	@ zero_extendqisi2
11075	orrs	r3, r3, r2
11076	ldr	r2, .L1617+44
11077	ldrb	r2, [r2, #3]	@ zero_extendqisi2
11078	orr	r3, r3, r2, lsl #24
11079	str	r3, [r4]
11080	ldr	r3, .L1617+60
11081	ldrb	r3, [r3]	@ zero_extendqisi2
11082	strh	r3, [r4, #10]	@ movhi
11083	ldrb	r3, [r7, #13]	@ zero_extendqisi2
11084	strh	r5, [r4, #16]	@ movhi
11085	strh	r8, [r4, #14]	@ movhi
11086	strh	r3, [r4, #12]	@ movhi
11087	bl	__aeabi_idiv
11088	mov	r2, #512
11089	strh	r0, [r4, #18]	@ movhi
11090	ldrb	r3, [r7, #9]	@ zero_extendqisi2
11091	strh	r2, [r4, #24]	@ movhi
11092	ldr	r2, [sp, #20]
11093	strh	r3, [r4, #20]	@ movhi
11094	smulbb	r5, r5, r3
11095	strh	r6, [r4, #26]	@ movhi
11096	ldrb	r2, [r2]	@ zero_extendqisi2
11097	uxth	r5, r5
11098	cmp	r2, #1
11099	strh	r5, [r4, #22]	@ movhi
11100	bne	.L1558
11101	lsls	r3, r3, #1
11102	lsr	r2, r8, #1
11103	lsls	r5, r5, #1
11104	strh	r3, [r4, #20]	@ movhi
11105	movs	r3, #8
11106	strh	r2, [r4, #14]	@ movhi
11107	strh	r5, [r4, #22]	@ movhi
11108	strh	r3, [r4, #26]	@ movhi
11109.L1558:
11110	ldrb	r0, [r7, #20]	@ zero_extendqisi2
11111	bl	FlashBchSel
11112	movs	r0, #0
11113.L1506:
11114	add	sp, sp, #32
11115	@ sp needed
11116	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11117.L1523:
11118	cmp	r3, #220
11119	bne	.L1525
11120	mov	r1, #4096
11121	b	.L1610
11122.L1525:
11123	cmp	r3, #211
11124	itttt	eq
11125	moveq	r3, #4096
11126	strheq	r3, [r2, #14]	@ movhi
11127	moveq	r3, #2
11128	strbeq	r3, [r2, #13]
11129	b	.L1524
11130.L1537:
11131	sub	lr, r0, #17
11132	cmp	lr, #2
11133	bhi	.L1544
11134	ldr	r3, .L1617+64
11135	cmp	r0, #19
11136	str	r3, [r5]
11137	ite	ne
11138	movne	r3, #7
11139	moveq	r3, #15
11140	strb	r3, [r2]
11141	b	.L1536
11142.L1544:
11143	cmp	r0, #33
11144	beq	.L1546
11145	sub	r2, r0, #65
11146	cmp	r2, #1
11147	bhi	.L1547
11148.L1546:
11149	ldr	r2, .L1617+68
11150	str	r2, [ip]
11151	movs	r2, #4
11152	strb	r2, [r3]
11153	movs	r3, #7
11154	strb	r3, [r1]
11155	b	.L1536
11156.L1547:
11157	sub	r2, r0, #67
11158	uxtb	r2, r2
11159	cmp	r2, #1
11160	bls	.L1548
11161	sub	r1, r0, #34
11162	cmp	r1, #1
11163	bhi	.L1549
11164.L1548:
11165	ldr	r1, .L1617+72
11166	cmp	r0, #35
11167	ldr	r5, .L1617+68
11168	str	r5, [r1]
11169	ldr	r1, .L1617+20
11170	beq	.L1550
11171	cmp	r0, #68
11172	beq	.L1550
11173	movs	r0, #7
11174.L1611:
11175	cmp	r2, #1
11176	strb	r0, [r1]
11177	ite	ls
11178	movls	r2, #4
11179	movhi	r2, #5
11180	strb	r2, [r3]
11181	b	.L1536
11182.L1550:
11183	movs	r0, #17
11184	b	.L1611
11185.L1549:
11186	cmp	r0, #49
11187	bne	.L1553
11188	ldr	r3, .L1617+76
11189	str	r3, [r5]
11190	b	.L1536
11191.L1553:
11192	cmp	r0, #50
11193	itttt	eq
11194	ldreq	r3, .L1617+80
11195	streq	r3, [r5]
11196	ldreq	r3, .L1617+84
11197	streq	fp, [r3]
11198	b	.L1536
11199.L1560:
11200	mvn	r0, #1
11201	b	.L1506
11202.L1519:
11203	ldr	r5, [sp, #28]
11204	strb	r0, [r5]
11205	b	.L1518
11206.L1618:
11207	.align	2
11208.L1617:
11209	.word	.LANCHOR28
11210	.word	.LANCHOR25
11211	.word	.LANCHOR10
11212	.word	.LANCHOR20
11213	.word	.LANCHOR13
11214	.word	.LANCHOR146
11215	.word	HynixReadRetrial
11216	.word	.LANCHOR36
11217	.word	.LANCHOR20+28
11218	.word	.LANCHOR122
11219	.word	.LANCHOR7
11220	.word	.LANCHOR22
11221	.word	.LANCHOR155
11222	.word	.LANCHOR150
11223	.word	.LANCHOR15
11224	.word	.LANCHOR26
11225	.word	MicronReadRetrial
11226	.word	ToshibaReadRetrial
11227	.word	.LANCHOR145
11228	.word	SamsungReadRetrial
11229	.word	samsung_read_retrial
11230	.word	.LANCHOR29
11231	.size	FlashInit, .-FlashInit
11232	.section	.text.FlashReadSlc2KPages,"ax",%progbits
11233	.align	1
11234	.global	FlashReadSlc2KPages
11235	.syntax unified
11236	.thumb
11237	.thumb_func
11238	.fpu softvfp
11239	.type	FlashReadSlc2KPages, %function
11240FlashReadSlc2KPages:
11241	@ args = 0, pretend = 0, frame = 16
11242	@ frame_needed = 0, uses_anonymous_args = 0
11243	ldr	r3, .L1676
11244	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11245	mov	r4, r0
11246	movs	r7, #0
11247	sub	sp, sp, #24
11248	ldrb	fp, [r3, #9]	@ zero_extendqisi2
11249	str	r1, [sp, #8]
11250	str	r2, [sp, #12]
11251.L1620:
11252	ldr	r3, [sp, #8]
11253	cmp	r7, r3
11254	bne	.L1644
11255	movs	r0, #0
11256	add	sp, sp, #24
11257	@ sp needed
11258	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11259.L1644:
11260	ldr	r3, [sp, #8]
11261	add	r2, sp, #20
11262	ldr	r1, [sp, #12]
11263	mov	r0, r4
11264	subs	r3, r3, r7
11265	uxtb	r3, r3
11266	str	r3, [sp]
11267	add	r3, sp, #16
11268	bl	LogAddr2PhyAddr
11269	ldr	r2, .L1676+4
11270	ldr	r3, [sp, #16]
11271	ldrb	r2, [r2]	@ zero_extendqisi2
11272	cmp	r2, r3
11273	bhi	.L1621
11274	mov	r3, #-1
11275	str	r3, [r4]
11276.L1622:
11277	adds	r7, r7, #1
11278	adds	r4, r4, #36
11279	b	.L1620
11280.L1621:
11281	ldr	r2, .L1676+8
11282	mov	r8, #0
11283	ldrb	r5, [r2, r3]	@ zero_extendqisi2
11284	mov	r0, r5
11285	bl	NandcWaitFlashReady
11286	mov	r0, r5
11287	bl	NandcFlashCs
11288.L1623:
11289	ldr	r1, [sp, #20]
11290	mov	r0, r5
11291	bl	FlashReadCmd
11292	mov	r0, r5
11293	bl	NandcWaitFlashReady
11294	ldr	r3, [r4, #12]
11295	mov	r2, fp
11296	movs	r1, #0
11297	mov	r0, r5
11298	str	r3, [sp]
11299	ldr	r3, [r4, #8]
11300	bl	NandcXferData
11301	ldr	r3, .L1676+12
11302	mov	r6, r0
11303	ldrb	r3, [r3]	@ zero_extendqisi2
11304	cmp	r3, #0
11305	bne	.L1624
11306.L1627:
11307	adds	r3, r6, #1
11308	beq	.L1625
11309.L1626:
11310	cmp	r8, #0
11311	beq	.L1629
11312.L1628:
11313	mov	r6, #256
11314.L1629:
11315	mov	r8, #0
11316.L1630:
11317	ldr	r3, .L1676+16
11318	mov	r0, r5
11319	ldr	r1, [sp, #20]
11320	ldr	r3, [r3]
11321	add	r1, r1, r3
11322	bl	FlashReadCmd
11323	mov	r0, r5
11324	bl	NandcWaitFlashReady
11325	ldr	r3, [r4, #8]
11326	cbz	r3, .L1631
11327	add	r3, r3, #2048
11328.L1631:
11329	ldr	r2, [r4, #12]
11330	cbz	r2, .L1632
11331	adds	r2, r2, #8
11332.L1632:
11333	str	r2, [sp]
11334	movs	r1, #0
11335	mov	r2, fp
11336	mov	r0, r5
11337	bl	NandcXferData
11338	ldr	r3, .L1676+12
11339	mov	r10, r0
11340	ldrb	r2, [r3]	@ zero_extendqisi2
11341	cmp	r2, #0
11342	bne	.L1633
11343.L1636:
11344	cmp	r10, #-1
11345	beq	.L1634
11346.L1635:
11347	cmp	r8, #0
11348	beq	.L1638
11349.L1637:
11350	mov	r10, #256
11351.L1638:
11352	mov	r0, r5
11353	bl	NandcFlashDeCs
11354	ldr	r2, .L1676+20
11355	cmp	r6, r10
11356	it	cc
11357	movcc	r6, r10
11358	ldrb	r2, [r2]	@ zero_extendqisi2
11359	add	r3, r2, r2, lsl #1
11360	cmp	r6, r3, asr #2
11361	bhi	.L1639
11362	movs	r3, #0
11363.L1675:
11364	str	r3, [r4]
11365	ldr	r3, [r4, #12]
11366	cbz	r3, .L1640
11367	ldr	r1, [r3, #12]
11368	adds	r1, r1, #1
11369	bne	.L1640
11370	ldr	r1, [r3, #8]
11371	adds	r0, r1, #1
11372	bne	.L1640
11373	ldr	r3, [r3]
11374	adds	r3, r3, #1
11375	it	ne
11376	strne	r1, [r4]
11377.L1640:
11378	ldr	r3, [r4]
11379	adds	r1, r3, #1
11380	bne	.L1622
11381	ldr	r1, [r4, #4]
11382	ldr	r0, .L1676+24
11383	bl	printf
11384	ldr	r1, [r4, #8]
11385	cbz	r1, .L1642
11386	movs	r3, #8
11387	movs	r2, #4
11388	ldr	r0, .L1676+28
11389	bl	rknand_print_hex
11390.L1642:
11391	ldr	r1, [r4, #12]
11392	cmp	r1, #0
11393	beq	.L1622
11394	movs	r3, #4
11395	ldr	r0, .L1676+32
11396	mov	r2, r3
11397	bl	rknand_print_hex
11398	b	.L1622
11399.L1624:
11400	mov	r0, r5
11401	bl	flash_read_ecc
11402	cmp	r0, #5
11403	bls	.L1627
11404	mov	r6, #256
11405	b	.L1626
11406.L1625:
11407	cmp	r8, #10
11408	beq	.L1628
11409	add	r8, r8, #1
11410	b	.L1623
11411.L1633:
11412	mov	r0, r5
11413	bl	flash_read_ecc
11414	cmp	r0, #5
11415	bls	.L1636
11416	mov	r10, #256
11417	b	.L1635
11418.L1634:
11419	cmp	r8, #10
11420	beq	.L1637
11421	add	r8, r8, #1
11422	b	.L1630
11423.L1639:
11424	mov	r3, #256
11425	b	.L1675
11426.L1677:
11427	.align	2
11428.L1676:
11429	.word	.LANCHOR31
11430	.word	.LANCHOR26
11431	.word	.LANCHOR27
11432	.word	.LANCHOR208
11433	.word	.LANCHOR4
11434	.word	.LANCHOR33
11435	.word	.LC26
11436	.word	.LC27
11437	.word	.LC28
11438	.size	FlashReadSlc2KPages, .-FlashReadSlc2KPages
11439	.section	.text.FlashReadPages,"ax",%progbits
11440	.align	1
11441	.global	FlashReadPages
11442	.syntax unified
11443	.thumb
11444	.thumb_func
11445	.fpu softvfp
11446	.type	FlashReadPages, %function
11447FlashReadPages:
11448	@ args = 0, pretend = 0, frame = 32
11449	@ frame_needed = 0, uses_anonymous_args = 0
11450	ldr	r3, .L1769
11451	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11452	sub	sp, sp, #40
11453	mov	r10, r0
11454	str	r1, [sp, #24]
11455	ldrb	r3, [r3]	@ zero_extendqisi2
11456	str	r2, [sp, #12]
11457	cbnz	r3, .L1679
11458	ldr	r2, .L1769+4
11459	mov	r8, r3
11460	str	r3, [sp, #8]
11461	ldrb	r2, [r2, #9]	@ zero_extendqisi2
11462	str	r2, [sp, #20]
11463	ldr	r2, .L1769+8
11464	ldrb	r2, [r2]	@ zero_extendqisi2
11465	str	r2, [sp, #28]
11466.L1680:
11467	ldr	r3, [sp, #8]
11468	ldr	r2, [sp, #24]
11469	cmp	r3, r2
11470	bcc	.L1718
11471	movs	r0, #0
11472	b	.L1678
11473.L1679:
11474	bl	FlashReadSlc2KPages
11475.L1678:
11476	add	sp, sp, #40
11477	@ sp needed
11478	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11479.L1718:
11480	ldr	r2, [sp, #8]
11481	movs	r3, #36
11482	ldr	r1, [sp, #12]
11483	mul	fp, r3, r2
11484	add	r7, r10, fp
11485	ldr	r3, [r7, #4]
11486	mov	r0, r7
11487	str	r3, [sp, #16]
11488	ldr	r3, [sp, #24]
11489	subs	r3, r3, r2
11490	add	r2, sp, #36
11491	uxtb	r3, r3
11492	str	r3, [sp]
11493	add	r3, sp, #32
11494	bl	LogAddr2PhyAddr
11495	ldr	r2, .L1769+12
11496	mov	r5, r0
11497	ldr	r3, [sp, #32]
11498	ldrb	r2, [r2]	@ zero_extendqisi2
11499	cmp	r2, r3
11500	bhi	.L1682
11501	mov	r3, #-1
11502	str	r3, [r10, fp]
11503.L1683:
11504	ldr	r3, [sp, #8]
11505	adds	r3, r3, #1
11506	str	r3, [sp, #8]
11507	b	.L1680
11508.L1682:
11509	ldr	r2, .L1769+16
11510	ldrb	r4, [r2, r3]	@ zero_extendqisi2
11511	ldr	r3, .L1769+20
11512	mov	r0, r4
11513	ldrb	r3, [r3]	@ zero_extendqisi2
11514	cmp	r3, #0
11515	it	eq
11516	moveq	r5, #0
11517	bl	NandcWaitFlashReady
11518	ldr	r3, .L1769+24
11519	ldr	r3, [r3]
11520	ldrb	r2, [r3, #19]	@ zero_extendqisi2
11521	subs	r3, r2, #1
11522	cmp	r3, #7
11523	bhi	.L1685
11524	ldr	r3, .L1769+28
11525	subs	r2, r2, #7
11526	cmp	r2, #1
11527	ldr	r2, .L1769+32
11528	add	r1, r3, r4
11529	ldrb	r3, [r1, #12]	@ zero_extendqisi2
11530	ldrb	r2, [r2, r4]	@ zero_extendqisi2
11531	it	ls
11532	ldrbls	r3, [r1, #20]	@ zero_extendqisi2
11533	cmp	r2, r3
11534	beq	.L1685
11535	ldr	r2, .L1769+36
11536	mov	r0, r4
11537	ldrb	r1, [r2, #-3]	@ zero_extendqisi2
11538	bl	HynixSetRRPara
11539.L1685:
11540	mov	r0, r4
11541	bl	NandcFlashCs
11542	ldr	r3, [sp, #12]
11543	cmp	r3, #1
11544	beq	.L1687
11545	ldr	r3, [sp, #16]
11546	cmp	r3, #0
11547	bge	.L1688
11548.L1687:
11549	ldr	r3, .L1769+40
11550	ldrb	r3, [r3]	@ zero_extendqisi2
11551	cbz	r3, .L1688
11552	mov	r0, r4
11553	bl	flash_enter_slc_mode
11554.L1695:
11555	ldr	r1, [sp, #36]
11556	adds	r6, r1, #1
11557	bne	.L1690
11558	cmp	r4, #255
11559	beq	.L1720
11560.L1690:
11561	cbz	r5, .L1692
11562	ldr	r3, .L1769+44
11563	mov	r0, r4
11564	ldr	r2, [r3]
11565	add	r2, r2, r1
11566	bl	FlashReadDpCmd
11567.L1693:
11568	mov	r0, r4
11569	bl	NandcWaitFlashReady
11570	cbz	r5, .L1691
11571	ldr	r1, [sp, #36]
11572	mov	r0, r4
11573	bl	FlashReadDpDataOutCmd
11574.L1691:
11575	ldr	r3, [r7, #12]
11576	movs	r1, #0
11577	ldr	r2, [sp, #20]
11578	mov	r0, r4
11579	str	r3, [sp]
11580	ldr	r3, [r7, #8]
11581	bl	NandcXferData
11582	ldr	r3, .L1769+8
11583	mov	r6, r0
11584	ldrb	r3, [r3]	@ zero_extendqisi2
11585	cbz	r3, .L1694
11586	adds	r0, r0, #1
11587	bne	.L1694
11588	ldr	r3, .L1769+8
11589	movs	r5, #0
11590	strb	r5, [r3]
11591	b	.L1695
11592.L1688:
11593	mov	r0, r4
11594	bl	flash_exit_slc_mode
11595	b	.L1695
11596.L1692:
11597	mov	r0, r4
11598	bl	FlashReadCmd
11599	b	.L1693
11600.L1720:
11601	movs	r5, #0
11602	b	.L1691
11603.L1694:
11604	cbz	r5, .L1696
11605	ldr	r3, .L1769+44
11606	mov	r0, r4
11607	ldr	r1, [sp, #36]
11608	ldr	r3, [r3]
11609	add	r1, r1, r3
11610	bl	FlashReadDpDataOutCmd
11611	add	r3, fp, #36
11612	movs	r1, #0
11613	add	r3, r3, r10
11614	mov	r0, r4
11615	ldr	r2, [r3, #12]
11616	str	r2, [sp]
11617	ldr	r2, [sp, #20]
11618	ldr	r3, [r3, #8]
11619	bl	NandcXferData
11620	cmp	r0, #-1
11621	mov	r8, r0
11622	it	eq
11623	moveq	r5, #0
11624.L1696:
11625	mov	r0, r4
11626	bl	NandcFlashDeCs
11627	ldr	r3, .L1769+8
11628	adds	r1, r6, #1
11629	ldrb	r2, [sp, #28]	@ zero_extendqisi2
11630	strb	r2, [r3]
11631	bne	.L1697
11632	ldr	r3, .L1769+48
11633	ldrb	r3, [r3]	@ zero_extendqisi2
11634	cbnz	r3, .L1698
11635.L1702:
11636	ldr	r3, .L1769+52
11637	ldr	r5, [r3]
11638	cmp	r5, #0
11639	bne	.L1699
11640	ldr	r3, [r7, #12]
11641	mov	r0, r4
11642	ldr	r2, [r7, #8]
11643	ldr	r1, [sp, #36]
11644	bl	FlashReadRawPage
11645	b	.L1768
11646.L1698:
11647	ldr	r3, .L1769+56
11648	mov	r0, r4
11649	ldr	r1, [sp, #36]
11650	ldr	r3, [r3]
11651	ldr	r5, [r3, #304]
11652	movs	r3, #1
11653	str	r3, [sp]
11654	ldr	r2, [r7, #8]
11655	ldr	r3, [r7, #12]
11656	bl	FlashDdrTunningRead
11657	adds	r2, r0, #1
11658	mov	r6, r0
11659	beq	.L1701
11660	ldr	r3, .L1769+60
11661	ldrb	r3, [r3]	@ zero_extendqisi2
11662	cmp	r0, r3, lsr #1
11663	bls	.L1721
11664.L1701:
11665	ubfx	r0, r5, #8, #8
11666	bl	NandcSetDdrPara
11667	adds	r3, r6, #1
11668	beq	.L1702
11669.L1721:
11670	movs	r5, #0
11671.L1697:
11672	ldr	r3, .L1769+60
11673	ldrb	r3, [r3]	@ zero_extendqisi2
11674	add	r3, r3, r3, lsl #1
11675	cmp	r6, r3, asr #2
11676	bls	.L1710
11677	ldr	r3, .L1769+52
11678	ldr	r3, [r3]
11679	cmp	r3, #0
11680	bne	.L1710
11681	mov	r6, #256
11682	b	.L1705
11683.L1770:
11684	.align	2
11685.L1769:
11686	.word	.LANCHOR2
11687	.word	.LANCHOR31
11688	.word	.LANCHOR6
11689	.word	.LANCHOR26
11690	.word	.LANCHOR27
11691	.word	.LANCHOR210
11692	.word	.LANCHOR7
11693	.word	.LANCHOR20
11694	.word	.LANCHOR21
11695	.word	.LANCHOR20+4
11696	.word	.LANCHOR16
11697	.word	.LANCHOR4
11698	.word	.LANCHOR30
11699	.word	.LANCHOR145
11700	.word	.LANCHOR19
11701	.word	.LANCHOR33
11702.L1699:
11703	ldr	r3, [r7, #12]
11704	mov	r0, r4
11705	ldr	r2, [r7, #8]
11706	ldr	r1, [sp, #36]
11707	blx	r5
11708	adds	r5, r0, #1
11709	mov	r6, r0
11710	bne	.L1703
11711	ldr	r3, .L1771
11712	ldr	r3, [r3]
11713	ldrb	r3, [r3, #19]	@ zero_extendqisi2
11714	subs	r3, r3, #1
11715	cmp	r3, #7
11716	bhi	.L1704
11717	ldr	r2, .L1771+4
11718	movs	r3, #0
11719	mov	r0, r4
11720	ldrb	r1, [r2, #-3]	@ zero_extendqisi2
11721	bl	HynixSetRRPara
11722.L1704:
11723	ldr	r3, [r7, #12]
11724	mov	r0, r4
11725	ldr	r2, [r7, #8]
11726	ldr	r1, [sp, #36]
11727	bl	FlashReadRawPage
11728	ldr	r2, .L1771+8
11729	mov	r6, r0
11730	mov	r3, r0
11731	ldr	r1, [r7, #4]
11732	ldr	r0, .L1771+12
11733	ldrb	r2, [r2]	@ zero_extendqisi2
11734	bl	printf
11735	adds	r0, r6, #1
11736	bne	.L1703
11737	ldr	r3, .L1771+16
11738	ldrb	r5, [r3]	@ zero_extendqisi2
11739	cbz	r5, .L1705
11740	ldr	r3, [sp, #12]
11741	mov	r0, r4
11742	cmp	r3, #1
11743	beq	.L1706
11744	ldr	r3, [sp, #16]
11745	cmp	r3, #0
11746	bge	.L1707
11747.L1706:
11748	bl	flash_enter_slc_mode
11749.L1708:
11750	ldr	r3, .L1771+20
11751	mov	r0, r4
11752	ldr	r2, [r7, #8]
11753	ldr	r1, [sp, #36]
11754	ldr	r5, [r3]
11755	ldr	r3, [r7, #12]
11756	blx	r5
11757.L1768:
11758	adds	r1, r0, #1
11759	mov	r6, r0
11760	mov	r5, #0
11761	bne	.L1710
11762.L1705:
11763	str	r6, [r10, fp]
11764.L1711:
11765	ldr	r3, [r10, fp]
11766	adds	r2, r3, #1
11767	bne	.L1713
11768	ldr	r2, .L1771+8
11769	ldr	r1, [r7, #4]
11770	ldr	r0, .L1771+24
11771	ldrb	r2, [r2]	@ zero_extendqisi2
11772	bl	printf
11773	ldr	r1, [r7, #12]
11774	cbz	r1, .L1713
11775	movs	r3, #4
11776	ldr	r0, .L1771+28
11777	mov	r2, r3
11778	bl	rknand_print_hex
11779.L1713:
11780	cbz	r5, .L1715
11781	ldr	r3, .L1771+8
11782	ldrb	r3, [r3]	@ zero_extendqisi2
11783	add	r3, r3, r3, lsl #1
11784	cmp	r8, r3, asr #2
11785	bls	.L1716
11786	ldr	r3, .L1771+20
11787	ldr	r3, [r3]
11788	cmp	r3, #0
11789	it	eq
11790	moveq	r8, #256
11791.L1716:
11792	cmp	r8, #-1
11793	add	r3, fp, #36
11794	str	r8, [r10, r3]
11795	beq	.L1715
11796	cmp	r8, #256
11797	itt	ne
11798	movne	r2, #0
11799	strne	r2, [r10, r3]
11800.L1715:
11801	ldr	r3, [sp, #8]
11802	add	r3, r3, r5
11803	str	r3, [sp, #8]
11804	ldr	r3, [sp, #12]
11805	cmp	r3, #1
11806	beq	.L1717
11807	ldr	r3, [sp, #16]
11808	cmp	r3, #0
11809	bge	.L1683
11810.L1717:
11811	ldr	r3, .L1771+16
11812	ldrb	r3, [r3]	@ zero_extendqisi2
11813	cmp	r3, #0
11814	beq	.L1683
11815	mov	r0, r4
11816	bl	flash_exit_slc_mode
11817	b	.L1683
11818.L1707:
11819	bl	flash_exit_slc_mode
11820	b	.L1708
11821.L1703:
11822	movs	r5, #0
11823.L1710:
11824	cmp	r6, #256
11825	beq	.L1705
11826	movs	r3, #0
11827	str	r3, [r10, fp]
11828	b	.L1711
11829.L1772:
11830	.align	2
11831.L1771:
11832	.word	.LANCHOR7
11833	.word	.LANCHOR20+4
11834	.word	.LANCHOR33
11835	.word	.LC29
11836	.word	.LANCHOR16
11837	.word	.LANCHOR145
11838	.word	.LC26
11839	.word	.LC28
11840	.size	FlashReadPages, .-FlashReadPages
11841	.section	.text.FlashProgSlc2KPages,"ax",%progbits
11842	.align	1
11843	.global	FlashProgSlc2KPages
11844	.syntax unified
11845	.thumb
11846	.thumb_func
11847	.fpu softvfp
11848	.type	FlashProgSlc2KPages, %function
11849FlashProgSlc2KPages:
11850	@ args = 0, pretend = 0, frame = 56
11851	@ frame_needed = 0, uses_anonymous_args = 0
11852	ldr	r3, .L1800
11853	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11854	mov	r8, r1
11855	ldr	fp, .L1800+32
11856	mov	r4, r0
11857	mov	r6, r0
11858	movs	r7, #0
11859	ldrb	r10, [r3, #9]	@ zero_extendqisi2
11860	sub	sp, sp, #64
11861	str	r2, [sp, #12]
11862.L1774:
11863	cmp	r7, r8
11864	bne	.L1780
11865	ldr	r10, .L1800+36
11866	mov	r8, #0
11867.L1781:
11868	cmp	r7, r8
11869	bne	.L1788
11870	movs	r0, #0
11871	add	sp, sp, #64
11872	@ sp needed
11873	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11874.L1780:
11875	sub	r3, r8, r7
11876	add	r2, sp, #20
11877	uxtb	r3, r3
11878	ldr	r1, [sp, #12]
11879	mov	r0, r6
11880	str	r3, [sp]
11881	add	r3, sp, #24
11882	bl	LogAddr2PhyAddr
11883	ldr	r2, .L1800+4
11884	ldr	r3, [sp, #24]
11885	ldrb	r2, [r2]	@ zero_extendqisi2
11886	cmp	r2, r3
11887	bhi	.L1775
11888	mov	r3, #-1
11889	str	r3, [r6]
11890.L1776:
11891	adds	r7, r7, #1
11892	adds	r6, r6, #36
11893	b	.L1774
11894.L1775:
11895	ldr	r2, .L1800+8
11896	ldrb	r5, [r2, r3]	@ zero_extendqisi2
11897	mov	r0, r5
11898	bl	NandcWaitFlashReady
11899	mov	r0, r5
11900	bl	NandcFlashCs
11901	ldr	r1, [sp, #20]
11902	mov	r0, r5
11903	bl	FlashProgFirstCmd
11904	ldr	r3, [r6, #12]
11905	mov	r2, r10
11906	movs	r1, #1
11907	mov	r0, r5
11908	str	r3, [sp]
11909	ldr	r3, [r6, #8]
11910	bl	NandcXferData
11911	ldr	r1, [sp, #20]
11912	mov	r0, r5
11913	bl	FlashProgSecondCmd
11914	mov	r0, r5
11915	bl	NandcWaitFlashReady
11916	ldr	r1, [sp, #20]
11917	mov	r0, r5
11918	bl	FlashReadStatus
11919	sbfx	r0, r0, #0, #1
11920	ldr	r1, [sp, #20]
11921	str	r0, [r6]
11922	mov	r0, r5
11923	ldr	r3, [fp]
11924	add	r1, r1, r3
11925	bl	FlashProgFirstCmd
11926	ldr	r3, [r6, #8]
11927	cbz	r3, .L1777
11928	add	r3, r3, #2048
11929.L1777:
11930	ldr	r2, [r6, #12]
11931	cbz	r2, .L1778
11932	adds	r2, r2, #8
11933.L1778:
11934	str	r2, [sp]
11935	movs	r1, #1
11936	mov	r2, r10
11937	mov	r0, r5
11938	bl	NandcXferData
11939	ldr	r3, [fp]
11940	mov	r0, r5
11941	ldr	r1, [sp, #20]
11942	add	r1, r1, r3
11943	bl	FlashProgSecondCmd
11944	mov	r0, r5
11945	bl	NandcWaitFlashReady
11946	ldr	r1, [sp, #20]
11947	mov	r0, r5
11948	bl	FlashReadStatus
11949	lsls	r2, r0, #31
11950	mov	r0, r5
11951	itt	mi
11952	movmi	r3, #-1
11953	strmi	r3, [r6]
11954	bl	NandcFlashDeCs
11955	b	.L1776
11956.L1788:
11957	ldr	r3, [r4]
11958	adds	r3, r3, #1
11959	bne	.L1782
11960	ldr	r1, [r4, #4]
11961	ldr	r0, .L1800+12
11962	bl	printf
11963.L1783:
11964	add	r8, r8, #1
11965	adds	r4, r4, #36
11966	b	.L1781
11967.L1782:
11968	sub	r3, r7, r8
11969	ldr	fp, .L1800+40
11970	uxtb	r3, r3
11971	add	r2, sp, #20
11972	ldr	r1, [sp, #12]
11973	mov	r0, r4
11974	str	r3, [sp]
11975	add	r3, sp, #24
11976	bl	LogAddr2PhyAddr
11977	ldr	lr, [r10]
11978	movs	r3, #0
11979	ldr	ip, [fp]
11980	mov	r6, r4
11981	add	r5, sp, #28
11982	str	r3, [lr]
11983	str	r3, [ip]
11984	ldmia	r6!, {r0, r1, r2, r3}
11985	stmia	r5!, {r0, r1, r2, r3}
11986	str	lr, [sp, #36]
11987	ldmia	r6!, {r0, r1, r2, r3}
11988	str	ip, [sp, #40]
11989	stmia	r5!, {r0, r1, r2, r3}
11990	movs	r1, #1
11991	ldr	r3, [r6]
11992	add	r0, sp, #28
11993	ldr	r2, [sp, #12]
11994	str	r3, [r5]
11995	bl	FlashReadPages
11996	ldr	r5, [sp, #28]
11997	adds	r3, r5, #1
11998	bne	.L1784
11999	ldr	r1, [r4, #4]
12000	ldr	r0, .L1800+16
12001	bl	printf
12002	str	r5, [r4]
12003.L1784:
12004	ldr	r5, [sp, #28]
12005	cmp	r5, #256
12006	bne	.L1785
12007	ldr	r1, [r4, #4]
12008	ldr	r0, .L1800+20
12009	bl	printf
12010	str	r5, [r4]
12011.L1785:
12012	ldr	r3, [r4, #12]
12013	cbz	r3, .L1786
12014	ldr	r2, [r3]
12015	ldr	r3, [fp]
12016	ldr	r3, [r3]
12017	cmp	r2, r3
12018	beq	.L1786
12019	ldr	r1, [r4, #4]
12020	ldr	r0, .L1800+24
12021	bl	printf
12022	mov	r3, #-1
12023	str	r3, [r4]
12024.L1786:
12025	ldr	r3, [r4, #8]
12026	cmp	r3, #0
12027	beq	.L1783
12028	ldr	r2, [r3]
12029	ldr	r3, [r10]
12030	ldr	r3, [r3]
12031	cmp	r2, r3
12032	beq	.L1783
12033	ldr	r1, [r4, #4]
12034	ldr	r0, .L1800+28
12035	bl	printf
12036	mov	r3, #-1
12037	str	r3, [r4]
12038	b	.L1783
12039.L1801:
12040	.align	2
12041.L1800:
12042	.word	.LANCHOR31
12043	.word	.LANCHOR26
12044	.word	.LANCHOR27
12045	.word	.LC30
12046	.word	.LC31
12047	.word	.LC32
12048	.word	.LC33
12049	.word	.LC34
12050	.word	.LANCHOR4
12051	.word	.LANCHOR206
12052	.word	.LANCHOR207
12053	.size	FlashProgSlc2KPages, .-FlashProgSlc2KPages
12054	.section	.text.FlashProgPages,"ax",%progbits
12055	.align	1
12056	.global	FlashProgPages
12057	.syntax unified
12058	.thumb
12059	.thumb_func
12060	.fpu softvfp
12061	.type	FlashProgPages, %function
12062FlashProgPages:
12063	@ args = 0, pretend = 0, frame = 64
12064	@ frame_needed = 0, uses_anonymous_args = 0
12065	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12066	sub	sp, sp, #72
12067	ldr	r5, .L1854
12068	mov	r4, r0
12069	mov	r8, r2
12070	str	r1, [sp, #8]
12071	ldr	r5, [r5]
12072	str	r3, [sp, #20]
12073	ldrb	r5, [r5, #19]	@ zero_extendqisi2
12074	str	r5, [sp, #16]
12075	ldr	r5, .L1854+4
12076	ldrb	r7, [r5]	@ zero_extendqisi2
12077	cbnz	r7, .L1803
12078	ldr	r3, .L1854+8
12079	ldrb	r3, [r3, #9]	@ zero_extendqisi2
12080	str	r3, [sp, #12]
12081.L1804:
12082	ldr	r3, [sp, #8]
12083	cmp	r7, r3
12084	bcc	.L1817
12085	ldr	r6, .L1854+12
12086	movs	r5, #0
12087	ldr	r7, .L1854+16
12088.L1818:
12089	ldrb	r3, [r6]	@ zero_extendqisi2
12090	cmp	r5, r3
12091	bcc	.L1820
12092	ldr	r3, [sp, #20]
12093	cmp	r3, #0
12094	bne	.L1821
12095.L1829:
12096	movs	r0, #0
12097	b	.L1802
12098.L1803:
12099	bl	FlashProgSlc2KPages
12100.L1802:
12101	add	sp, sp, #72
12102	@ sp needed
12103	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12104.L1817:
12105	ldr	r3, [sp, #8]
12106	movs	r6, #36
12107	muls	r6, r7, r6
12108	add	r2, sp, #28
12109	mov	r1, r8
12110	subs	r3, r3, r7
12111	uxtb	r3, r3
12112	add	fp, r4, r6
12113	str	r3, [sp]
12114	mov	r0, fp
12115	add	r3, sp, #32
12116	bl	LogAddr2PhyAddr
12117	ldr	r3, .L1854+12
12118	mov	r10, r0
12119	ldr	r0, [sp, #32]
12120	ldrb	r3, [r3]	@ zero_extendqisi2
12121	cmp	r3, r0
12122	bhi	.L1806
12123	mov	r3, #-1
12124	str	r3, [r4, r6]
12125.L1807:
12126	adds	r7, r7, #1
12127	b	.L1804
12128.L1806:
12129	ldr	r3, .L1854+20
12130	ldrb	r3, [r3]	@ zero_extendqisi2
12131	cmp	r3, #0
12132	ldr	r3, .L1854+24
12133	it	eq
12134	moveq	r10, #0
12135	add	r3, r3, r0, lsl #4
12136	ldr	r3, [r3, #8]
12137	cbz	r3, .L1809
12138	uxtb	r0, r0
12139	bl	FlashWaitCmdDone
12140.L1809:
12141	ldr	r3, [sp, #32]
12142	movs	r1, #0
12143	ldr	r2, .L1854+24
12144	add	r2, r2, r3, lsl #4
12145	str	r1, [r2, #12]
12146	ldr	r1, [sp, #28]
12147	str	fp, [r2, #8]
12148	str	r1, [r2, #4]
12149	cmp	r10, #0
12150	beq	.L1810
12151	add	r1, r6, #36
12152	add	r1, r1, r4
12153	str	r1, [r2, #12]
12154.L1810:
12155	ldr	r2, .L1854+28
12156	ldrb	r5, [r2, r3]	@ zero_extendqisi2
12157	lsls	r3, r3, #4
12158	ldr	r2, .L1854+24
12159	mov	r0, r5
12160	strb	r5, [r2, r3]
12161	ldr	r3, .L1854+12
12162	ldrb	r3, [r3]	@ zero_extendqisi2
12163	cmp	r3, #1
12164	bne	.L1811
12165	bl	NandcWaitFlashReady
12166.L1812:
12167	ldr	r3, [sp, #16]
12168	subs	r3, r3, #1
12169	cmp	r3, #7
12170	bhi	.L1813
12171	ldr	r3, .L1854+32
12172	ldrb	r3, [r3, r5]	@ zero_extendqisi2
12173	cbz	r3, .L1813
12174	ldr	r1, .L1854+36
12175	movs	r3, #0
12176	mov	r0, r5
12177	adds	r2, r1, #4
12178	ldrb	r1, [r1, #1]	@ zero_extendqisi2
12179	bl	HynixSetRRPara
12180.L1813:
12181	mov	r0, r5
12182	bl	NandcFlashCs
12183	cmp	r8, #1
12184	mov	r0, r5
12185	bne	.L1814
12186	ldr	r3, .L1854+16
12187	ldrb	r3, [r3]	@ zero_extendqisi2
12188	cmp	r3, #0
12189	beq	.L1814
12190	bl	flash_enter_slc_mode
12191.L1815:
12192	ldr	r1, [sp, #28]
12193	mov	r0, r5
12194	bl	FlashProgFirstCmd
12195	ldr	r3, [fp, #12]
12196	movs	r1, #1
12197	ldr	r2, [sp, #12]
12198	mov	r0, r5
12199	str	r3, [sp]
12200	ldr	r3, [fp, #8]
12201	bl	NandcXferData
12202	cmp	r10, #0
12203	beq	.L1816
12204	ldr	r1, [sp, #28]
12205	mov	r0, r5
12206	bl	FlashProgDpFirstCmd
12207	ldr	r3, .L1854+40
12208	mov	r0, r5
12209	ldr	r2, [sp, #32]
12210	adds	r6, r6, #36
12211	ldr	r1, [sp, #28]
12212	add	r6, r6, r4
12213	ldr	r2, [r3, r2, lsl #2]
12214	adds	r2, r2, #0
12215	it	ne
12216	movne	r2, #1
12217	bl	FlashWaitReadyEN
12218	ldr	r3, .L1854+44
12219	mov	r0, r5
12220	ldr	r1, [sp, #28]
12221	ldr	r3, [r3]
12222	add	r1, r1, r3
12223	bl	FlashProgDpSecondCmd
12224	ldr	r3, [r6, #12]
12225	movs	r1, #1
12226	ldr	r2, [sp, #12]
12227	mov	r0, r5
12228	str	r3, [sp]
12229	ldr	r3, [r6, #8]
12230	bl	NandcXferData
12231.L1816:
12232	ldr	r1, [sp, #28]
12233	mov	r0, r5
12234	bl	FlashProgSecondCmd
12235	mov	r0, r5
12236	add	r7, r7, r10
12237	bl	NandcFlashDeCs
12238	b	.L1807
12239.L1811:
12240	bl	NandcFlashCs
12241	ldr	r2, [sp, #32]
12242	mov	r0, r5
12243	ldr	r3, .L1854+40
12244	ldr	r1, [sp, #28]
12245	ldr	r2, [r3, r2, lsl #2]
12246	adds	r2, r2, #0
12247	it	ne
12248	movne	r2, #1
12249	bl	FlashWaitReadyEN
12250	mov	r0, r5
12251	bl	NandcFlashDeCs
12252	b	.L1812
12253.L1814:
12254	bl	flash_exit_slc_mode
12255	b	.L1815
12256.L1820:
12257	uxtb	r0, r5
12258	bl	FlashWaitCmdDone
12259	cmp	r8, #1
12260	bne	.L1819
12261	ldrb	r3, [r7]	@ zero_extendqisi2
12262	cbz	r3, .L1819
12263	ldr	r2, .L1854+24
12264	lsls	r3, r5, #4
12265	ldrb	r0, [r2, r3]	@ zero_extendqisi2
12266	bl	flash_exit_slc_mode
12267.L1819:
12268	adds	r5, r5, #1
12269	b	.L1818
12270.L1821:
12271	ldr	r10, .L1854+64
12272	movs	r7, #0
12273.L1822:
12274	ldr	r3, [sp, #8]
12275	cmp	r7, r3
12276	beq	.L1829
12277	ldr	r3, [r4]
12278	adds	r3, r3, #1
12279	bne	.L1823
12280	ldr	r1, [r4, #4]
12281	ldr	r0, .L1854+48
12282	bl	printf
12283.L1824:
12284	adds	r7, r7, #1
12285	adds	r4, r4, #36
12286	b	.L1822
12287.L1823:
12288	ldr	r3, [sp, #8]
12289	add	r2, sp, #28
12290	ldr	fp, .L1854+68
12291	mov	r1, r8
12292	mov	r0, r4
12293	mov	r6, r4
12294	subs	r3, r3, r7
12295	add	r5, sp, #36
12296	uxtb	r3, r3
12297	str	r3, [sp]
12298	add	r3, sp, #32
12299	bl	LogAddr2PhyAddr
12300	ldr	lr, [r10]
12301	movs	r3, #0
12302	ldr	ip, [fp]
12303	str	r3, [lr]
12304	str	r3, [ip]
12305	ldmia	r6!, {r0, r1, r2, r3}
12306	stmia	r5!, {r0, r1, r2, r3}
12307	str	lr, [sp, #44]
12308	ldmia	r6!, {r0, r1, r2, r3}
12309	str	ip, [sp, #48]
12310	stmia	r5!, {r0, r1, r2, r3}
12311	mov	r2, r8
12312	ldr	r3, [r6]
12313	movs	r1, #1
12314	add	r0, sp, #36
12315	str	r3, [r5]
12316	bl	FlashReadPages
12317	ldr	r5, [sp, #36]
12318	adds	r3, r5, #1
12319	bne	.L1825
12320	ldr	r1, [r4, #4]
12321	ldr	r0, .L1854+52
12322	bl	printf
12323	str	r5, [r4]
12324.L1825:
12325	ldr	r3, [r4, #12]
12326	cbz	r3, .L1826
12327	ldr	r2, [r3]
12328	ldr	r3, [fp]
12329	ldr	r3, [r3]
12330	cmp	r2, r3
12331	beq	.L1826
12332	ldr	r1, [r4, #4]
12333	ldr	r0, .L1854+56
12334	bl	printf
12335	mov	r3, #-1
12336	str	r3, [r4]
12337.L1826:
12338	ldr	r3, [r4, #8]
12339	cmp	r3, #0
12340	beq	.L1824
12341	ldr	r2, [r3]
12342	ldr	r3, [r10]
12343	ldr	r3, [r3]
12344	cmp	r2, r3
12345	beq	.L1824
12346	ldr	r1, [r4, #4]
12347	ldr	r0, .L1854+60
12348	bl	printf
12349	mov	r3, #-1
12350	str	r3, [r4]
12351	b	.L1824
12352.L1855:
12353	.align	2
12354.L1854:
12355	.word	.LANCHOR7
12356	.word	.LANCHOR2
12357	.word	.LANCHOR31
12358	.word	.LANCHOR26
12359	.word	.LANCHOR16
12360	.word	.LANCHOR28
12361	.word	.LANCHOR23
12362	.word	.LANCHOR27
12363	.word	.LANCHOR21
12364	.word	.LANCHOR20
12365	.word	.LANCHOR18
12366	.word	.LANCHOR4
12367	.word	.LC30
12368	.word	.LC31
12369	.word	.LC33
12370	.word	.LC34
12371	.word	.LANCHOR206
12372	.word	.LANCHOR207
12373	.size	FlashProgPages, .-FlashProgPages
12374	.section	.text.FlashTestBlk,"ax",%progbits
12375	.align	1
12376	.global	FlashTestBlk
12377	.syntax unified
12378	.thumb
12379	.thumb_func
12380	.fpu softvfp
12381	.type	FlashTestBlk, %function
12382FlashTestBlk:
12383	@ args = 0, pretend = 0, frame = 104
12384	@ frame_needed = 0, uses_anonymous_args = 0
12385	ldr	r3, .L1859
12386	push	{r4, r5, lr}
12387	mov	r4, r0
12388	sub	sp, sp, #108
12389	ldr	r3, [r3]
12390	cmp	r0, r3
12391	bcc	.L1858
12392	ldr	r5, .L1859+4
12393	add	r0, sp, #40
12394	movs	r2, #32
12395	movs	r1, #165
12396	str	r0, [sp, #16]
12397	lsls	r4, r4, #10
12398	ldr	r3, [r5]
12399	str	r3, [sp, #12]
12400	bl	ftl_memset
12401	movs	r2, #8
12402	movs	r1, #90
12403	ldr	r0, [r5]
12404	bl	ftl_memset
12405	movs	r2, #1
12406	add	r0, sp, #4
12407	mov	r1, r2
12408	str	r4, [sp, #8]
12409	bl	FlashEraseBlocks
12410	movs	r3, #1
12411	add	r0, sp, #4
12412	mov	r2, r3
12413	mov	r1, r3
12414	bl	FlashProgPages
12415	ldr	r4, [sp, #4]
12416	movs	r2, #1
12417	movs	r1, #0
12418	add	r0, sp, #4
12419	adds	r4, r4, #0
12420	it	ne
12421	movne	r4, #1
12422	negs	r4, r4
12423	bl	FlashEraseBlocks
12424.L1856:
12425	mov	r0, r4
12426	add	sp, sp, #108
12427	@ sp needed
12428	pop	{r4, r5, pc}
12429.L1858:
12430	movs	r4, #0
12431	b	.L1856
12432.L1860:
12433	.align	2
12434.L1859:
12435	.word	.LANCHOR156
12436	.word	.LANCHOR149
12437	.size	FlashTestBlk, .-FlashTestBlk
12438	.section	.text.FtlLowFormatEraseBlock,"ax",%progbits
12439	.align	1
12440	.global	FtlLowFormatEraseBlock
12441	.syntax unified
12442	.thumb
12443	.thumb_func
12444	.fpu softvfp
12445	.type	FtlLowFormatEraseBlock, %function
12446FtlLowFormatEraseBlock:
12447	@ args = 0, pretend = 0, frame = 40
12448	@ frame_needed = 0, uses_anonymous_args = 0
12449	ldr	r3, .L1906
12450	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12451	sub	sp, sp, #40
12452	str	r0, [sp, #8]
12453	ldr	r3, [r3]
12454	str	r1, [sp, #4]
12455	cmp	r3, #0
12456	bne	.L1888
12457	ldr	r2, .L1906+4
12458	mov	r10, r3
12459	mov	r5, r3
12460	mov	r4, r3
12461	mov	r8, #36
12462	ldrb	r2, [r2]	@ zero_extendqisi2
12463	str	r2, [sp, #20]
12464	ldr	r2, .L1906+8
12465	ldrb	r2, [r2]	@ zero_extendqisi2
12466	str	r2, [sp, #12]
12467	ldr	r2, .L1906+12
12468	str	r0, [r2]
12469	ldr	r2, .L1906+16
12470	ldrh	fp, [r2]
12471	ldr	r2, .L1906+20
12472	ldr	r7, [r2]
12473	ldr	r2, .L1906+24
12474	ldr	r2, [r2]
12475	str	r2, [sp, #16]
12476	ldr	r2, .L1906+28
12477	ldrh	r2, [r2]
12478	str	r2, [sp, #24]
12479.L1863:
12480	uxth	r2, r10
12481	cmp	fp, r2
12482	bhi	.L1867
12483	cmp	r5, #0
12484	beq	.L1861
12485	ldr	r3, [sp, #12]
12486	mov	r0, r7
12487	ldr	r10, .L1906+4
12488	mov	r8, #0
12489	mov	r2, r5
12490	ldr	r7, .L1906+20
12491	adds	r6, r3, #0
12492	it	ne
12493	movne	r6, #1
12494	strb	r8, [r10]
12495	mov	r1, r6
12496	bl	FlashEraseBlocks
12497	ldrb	r3, [sp, #20]	@ zero_extendqisi2
12498	strb	r3, [r10]
12499	mov	r10, #36
12500.L1869:
12501	uxth	r3, r8
12502	cmp	r5, r3
12503	bhi	.L1871
12504	ldr	r3, [sp, #4]
12505	cmp	r3, #0
12506	bne	.L1872
12507	uxth	r6, r6
12508	movs	r3, #6
12509	str	r3, [sp, #16]
12510	movs	r3, #1
12511	str	r3, [sp, #12]
12512.L1873:
12513	mov	r8, #0
12514.L1882:
12515	ldr	r3, .L1906+16
12516	mov	fp, #0
12517	mov	r5, fp
12518	ldrh	r3, [r3]
12519	str	r3, [sp, #24]
12520	ldr	r3, .L1906+20
12521	ldr	r10, [r3]
12522	ldr	r3, .L1906+32
12523	ldr	r3, [r3]
12524	str	r3, [sp, #28]
12525	ldr	r3, .L1906+36
12526	ldr	r3, [r3]
12527	str	r3, [sp, #32]
12528	ldr	r3, .L1906+28
12529	ldrh	r3, [r3]
12530	str	r3, [sp, #36]
12531.L1874:
12532	ldr	r3, [sp, #24]
12533	uxth	r2, fp
12534	cmp	r3, r2
12535	bhi	.L1877
12536	cbz	r5, .L1861
12537	ldr	fp, .L1906+4
12538	movs	r3, #1
12539	mov	r0, r10
12540	movs	r7, #0
12541	mov	r2, r6
12542	mov	r1, r5
12543	strb	r7, [fp]
12544	bl	FlashProgPages
12545	ldrb	r3, [sp, #20]	@ zero_extendqisi2
12546	ldr	r10, .L1906+20
12547	strb	r3, [fp]
12548	mov	fp, #36
12549.L1879:
12550	uxth	r3, r7
12551	cmp	r5, r3
12552	bhi	.L1881
12553	ldr	r3, [sp, #16]
12554	add	r8, r8, r3
12555	ldr	r3, [sp, #12]
12556	uxth	r8, r8
12557	cmp	r3, r8
12558	bhi	.L1882
12559	ldr	r8, .L1906+20
12560	movs	r7, #0
12561	mov	r10, #36
12562.L1883:
12563	uxth	r3, r7
12564	cmp	r5, r3
12565	bhi	.L1885
12566	ldr	r3, [sp, #8]
12567	cmp	r3, #63
12568	bls	.L1886
12569	ldr	r3, [sp, #4]
12570	cbz	r3, .L1861
12571.L1886:
12572	ldr	r3, .L1906+20
12573	mov	r2, r5
12574	mov	r1, r6
12575	ldr	r0, [r3]
12576	bl	FlashEraseBlocks
12577.L1861:
12578	mov	r0, r4
12579	add	sp, sp, #40
12580	@ sp needed
12581	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12582.L1867:
12583	mul	r2, r8, r10
12584	movs	r3, #0
12585	ldr	r1, [sp, #8]
12586	str	r3, [r7, r2]
12587	ldr	r3, .L1906+40
12588	ldrb	r0, [r3, r10]	@ zero_extendqisi2
12589	bl	V2P_block
12590	ldr	r3, [sp, #4]
12591	mov	r6, r0
12592	cbz	r3, .L1864
12593	bl	IsBlkInVendorPart
12594	cbnz	r0, .L1865
12595.L1864:
12596	mov	r0, r6
12597	bl	FtlBbmIsBadBlock
12598	cbnz	r0, .L1866
12599	ldr	r3, [sp, #24]
12600	mla	r1, r8, r5, r7
12601	lsls	r6, r6, #10
12602	mul	r2, r3, r5
12603	ldr	r3, [sp, #16]
12604	adds	r5, r5, #1
12605	str	r6, [r1, #4]
12606	uxth	r5, r5
12607	str	r0, [r1, #8]
12608	bic	r2, r2, #3
12609	add	r2, r2, r3
12610	str	r2, [r1, #12]
12611.L1865:
12612	add	r10, r10, #1
12613	b	.L1863
12614.L1866:
12615	adds	r4, r4, #1
12616	uxth	r4, r4
12617	b	.L1865
12618.L1871:
12619	mul	r3, r10, r8
12620	ldr	r2, [r7]
12621	adds	r1, r2, r3
12622	ldr	r3, [r2, r3]
12623	adds	r3, r3, #1
12624	bne	.L1870
12625	ldr	r0, [r1, #4]
12626	adds	r4, r4, #1
12627	uxth	r4, r4
12628	ubfx	r0, r0, #10, #16
12629	bl	FtlBbmMapBadBlock
12630.L1870:
12631	add	r8, r8, #1
12632	b	.L1869
12633.L1872:
12634	ldr	r3, .L1906+44
12635	ldrh	r3, [r3]
12636	str	r3, [sp, #12]
12637	ldr	r3, .L1906+8
12638	ldrb	r3, [r3]	@ zero_extendqisi2
12639	cbnz	r3, .L1889
12640	ldr	r3, [sp, #12]
12641	movs	r6, #1
12642	lsrs	r3, r3, #2
12643	str	r3, [sp, #16]
12644	b	.L1873
12645.L1889:
12646	movs	r6, #1
12647	str	r6, [sp, #16]
12648	b	.L1873
12649.L1877:
12650	movs	r3, #36
12651	ldr	r1, [sp, #8]
12652	mul	r2, r3, fp
12653	movs	r3, #0
12654	str	r3, [r10, r2]
12655	ldr	r3, .L1906+40
12656	ldrb	r0, [r3, fp]	@ zero_extendqisi2
12657	bl	V2P_block
12658	ldr	r3, [sp, #4]
12659	mov	r7, r0
12660	cbz	r3, .L1875
12661	bl	IsBlkInVendorPart
12662	cbnz	r0, .L1876
12663.L1875:
12664	mov	r0, r7
12665	bl	FtlBbmIsBadBlock
12666	cbnz	r0, .L1876
12667	movs	r3, #36
12668	add	r7, r8, r7, lsl #10
12669	mla	r1, r3, r5, r10
12670	ldr	r3, [sp, #28]
12671	str	r3, [r1, #8]
12672	ldr	r3, [sp, #36]
12673	str	r7, [r1, #4]
12674	mul	r2, r3, r5
12675	ldr	r3, [sp, #32]
12676	adds	r5, r5, #1
12677	uxth	r5, r5
12678	bic	r2, r2, #3
12679	add	r2, r2, r3
12680	str	r2, [r1, #12]
12681.L1876:
12682	add	fp, fp, #1
12683	b	.L1874
12684.L1881:
12685	mul	r3, fp, r7
12686	ldr	r2, [r10]
12687	adds	r1, r2, r3
12688	ldr	r3, [r2, r3]
12689	cbz	r3, .L1880
12690	ldr	r0, [r1, #4]
12691	adds	r4, r4, #1
12692	uxth	r4, r4
12693	ubfx	r0, r0, #10, #16
12694	bl	FtlBbmMapBadBlock
12695.L1880:
12696	adds	r7, r7, #1
12697	b	.L1879
12698.L1885:
12699	ldr	r3, [sp, #4]
12700	cbz	r3, .L1884
12701	mul	r3, r10, r7
12702	ldr	r2, [r8]
12703	adds	r1, r2, r3
12704	ldr	r3, [r2, r3]
12705	cbnz	r3, .L1884
12706	ldr	r0, [r1, #4]
12707	movs	r1, #1
12708	ubfx	r0, r0, #10, #16
12709	bl	FtlFreeSysBlkQueueIn
12710.L1884:
12711	adds	r7, r7, #1
12712	b	.L1883
12713.L1888:
12714	movs	r4, #0
12715	b	.L1861
12716.L1907:
12717	.align	2
12718.L1906:
12719	.word	.LANCHOR78
12720	.word	.LANCHOR28
12721	.word	.LANCHOR16
12722	.word	.LANCHOR75
12723	.word	.LANCHOR38
12724	.word	.LANCHOR79
12725	.word	.LANCHOR196
12726	.word	.LANCHOR58
12727	.word	.LANCHOR193
12728	.word	.LANCHOR194
12729	.word	.LANCHOR47
12730	.word	.LANCHOR53
12731	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
12732	.section	.text.FtlBbmTblFlush,"ax",%progbits
12733	.align	1
12734	.global	FtlBbmTblFlush
12735	.syntax unified
12736	.thumb
12737	.thumb_func
12738	.fpu softvfp
12739	.type	FtlBbmTblFlush, %function
12740FtlBbmTblFlush:
12741	@ args = 0, pretend = 0, frame = 8
12742	@ frame_needed = 0, uses_anonymous_args = 0
12743	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
12744	ldr	r3, .L1924
12745	ldr	r4, [r3]
12746	str	r3, [sp, #12]
12747	cmp	r4, #0
12748	bne	.L1910
12749	ldr	r3, .L1924+4
12750	mov	r1, r4
12751	ldr	r7, .L1924+8
12752	ldr	r5, .L1924+12
12753	ldr	r3, [r3]
12754	ldr	r0, [r7]
12755	mov	fp, r7
12756	ldr	r6, .L1924+16
12757	str	r3, [r5, #12]
12758	ldr	r7, .L1924+20
12759	ldr	r3, .L1924+24
12760	ldr	r8, .L1924+56
12761	str	r0, [r5, #8]
12762	ldrh	r2, [r3]
12763	bl	ftl_memset
12764.L1911:
12765	ldrh	r3, [r7]
12766	cmp	r4, r3
12767	blt	.L1912
12768	ldr	r6, [r5, #12]
12769	movs	r2, #16
12770	ldr	r4, .L1924+28
12771	movs	r1, #255
12772	movs	r7, #0
12773	mov	r0, r6
12774	mov	r8, r7
12775	bl	ftl_memset
12776	movw	r3, #61649
12777	mov	r10, r4
12778	strh	r3, [r6]	@ movhi
12779	ldr	r3, [r4, #8]
12780	str	r3, [r6, #4]
12781	ldrh	r3, [r4]
12782	strh	r3, [r6, #2]	@ movhi
12783	ldrh	r3, [r4, #4]
12784	strh	r3, [r6, #8]	@ movhi
12785	ldrh	r3, [r4, #6]
12786	strh	r3, [r6, #10]	@ movhi
12787	ldr	r3, .L1924+32
12788	ldr	r3, [r3]
12789	strh	r3, [r6, #12]	@ movhi
12790.L1913:
12791	ldr	r3, [fp]
12792	ldrh	r2, [r4, #2]
12793	ldrh	r1, [r4]
12794	str	r3, [r5, #8]
12795	ldr	r3, .L1924+4
12796	ldrh	r0, [r6, #10]
12797	ldr	r3, [r3]
12798	str	r3, [r5, #12]
12799	movs	r3, #0
12800	str	r3, [r5]
12801	orr	r3, r2, r1, lsl #10
12802	str	r3, [r5, #4]
12803	ldrh	r3, [r4, #4]
12804	str	r0, [sp]
12805	ldr	r0, .L1924+36
12806	bl	printf
12807	ldr	r3, .L1924+40
12808	ldrh	r2, [r4, #2]
12809	ldrh	r3, [r3]
12810	subs	r3, r3, #1
12811	cmp	r2, r3
12812	blt	.L1914
12813	ldr	r3, [r4, #8]
12814	mov	r1, #0	@ movhi
12815	ldrh	r2, [r4]
12816	strh	r1, [r4, #2]	@ movhi
12817	adds	r3, r3, #1
12818	str	r3, [r4, #8]
12819	str	r3, [r6, #4]
12820	strh	r2, [r6, #8]	@ movhi
12821	ldrh	r3, [r4, #4]
12822	strh	r2, [r4, #4]	@ movhi
12823	ldr	r2, .L1924+44
12824	strh	r3, [r4]	@ movhi
12825	lsls	r3, r3, #10
12826	ldr	r0, [r2]
12827	movs	r2, #1
12828	str	r3, [r5, #4]
12829	mov	r1, r2
12830	str	r3, [r0, #4]
12831	bl	FlashEraseBlocks
12832.L1914:
12833	movs	r3, #1
12834	ldr	r0, .L1924+12
12835	mov	r2, r3
12836	mov	r1, r3
12837	bl	FlashProgPages
12838	ldrh	r3, [r10, #2]
12839	adds	r3, r3, #1
12840	strh	r3, [r10, #2]	@ movhi
12841	ldr	r3, [r5]
12842	adds	r2, r3, #1
12843	bne	.L1915
12844	adds	r7, r7, #1
12845	ldr	r1, [r5, #4]
12846	uxth	r7, r7
12847	ldr	r0, .L1924+48
12848	bl	printf
12849	cmp	r7, #3
12850	bls	.L1913
12851	mov	r2, r7
12852	ldr	r1, [r5, #4]
12853	ldr	r0, .L1924+52
12854	bl	printf
12855	ldr	r2, [sp, #12]
12856	movs	r3, #1
12857	str	r3, [r2]
12858.L1910:
12859	movs	r0, #0
12860	add	sp, sp, #16
12861	@ sp needed
12862	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12863.L1912:
12864	ldrh	r2, [r8]
12865	ldr	r3, [r5, #8]
12866	ldr	r1, [r6, #4]!
12867	mul	r0, r4, r2
12868	lsls	r2, r2, #2
12869	adds	r4, r4, #1
12870	add	r0, r3, r0, lsl #2
12871	bl	ftl_memcpy
12872	b	.L1911
12873.L1915:
12874	add	r8, r8, #1
12875	cmp	r8, #1
12876	beq	.L1913
12877	cmp	r3, #256
12878	beq	.L1913
12879	b	.L1910
12880.L1925:
12881	.align	2
12882.L1924:
12883	.word	.LANCHOR78
12884	.word	.LANCHOR195
12885	.word	.LANCHOR189
12886	.word	.LANCHOR211
12887	.word	.LANCHOR76+24
12888	.word	.LANCHOR45
12889	.word	.LANCHOR57
12890	.word	.LANCHOR76
12891	.word	.LANCHOR37
12892	.word	.LC35
12893	.word	.LANCHOR53
12894	.word	.LANCHOR79
12895	.word	.LC36
12896	.word	.LC37
12897	.word	.LANCHOR126
12898	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
12899	.section	.text.allocate_data_superblock,"ax",%progbits
12900	.align	1
12901	.global	allocate_data_superblock
12902	.syntax unified
12903	.thumb
12904	.thumb_func
12905	.fpu softvfp
12906	.type	allocate_data_superblock, %function
12907allocate_data_superblock:
12908	@ args = 0, pretend = 0, frame = 8
12909	@ frame_needed = 0, uses_anonymous_args = 0
12910	ldr	r3, .L1991
12911	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
12912	mov	r4, r0
12913	ldr	r3, [r3]
12914	cmp	r3, #0
12915	bne	.L1928
12916.L1927:
12917	ldr	r3, .L1991+4
12918	ldr	r8, .L1991+60
12919	ldr	r7, .L1991+8
12920	ldrh	r3, [r3]
12921	ldrh	r2, [r8]
12922	add	r3, r3, r2
12923	ldrh	r2, [r7]
12924	cmp	r3, r2
12925	ble	.L1929
12926	ldr	r1, .L1991+12
12927	movw	r2, #3507
12928	ldr	r0, .L1991+16
12929	bl	printf
12930	ldr	r1, .L1991+20
12931	ldr	r0, .L1991+24
12932	bl	printf
12933.L1929:
12934	ldr	r3, .L1991+28
12935	ldrb	r2, [r4, #8]	@ zero_extendqisi2
12936	cmp	r4, r3
12937	bne	.L1930
12938	ldr	r3, .L1991+4
12939	ldrh	r5, [r3]
12940	ldr	r3, .L1991+32
12941	ldr	r3, [r3]
12942	lsrs	r0, r5, #1
12943	adds	r1, r0, #1
12944	mul	r6, r3, r5
12945	add	r1, r1, r6, lsr #2
12946	ldr	r6, .L1991+36
12947	uxth	r1, r1
12948	ldr	r6, [r6]
12949	cbz	r6, .L1931
12950	ldr	r6, .L1991+40
12951	ldr	r6, [r6]
12952	cmp	r6, #39
12953	bhi	.L1931
12954	cmp	r6, #2
12955	bls	.L1965
12956	lsls	r1, r5, #31
12957	bpl	.L1961
12958	cmp	r3, #0
12959	beq	.L1965
12960.L1961:
12961	mov	r1, r0
12962	b	.L1931
12963.L1930:
12964	cmp	r2, #1
12965	bne	.L1965
12966	ldr	r3, .L1991+44
12967	ldrh	r3, [r3]
12968	cmp	r3, #1
12969	beq	.L1965
12970	ldr	r3, .L1991+48
12971	ldrb	r3, [r3]	@ zero_extendqisi2
12972	cmp	r3, #0
12973	bne	.L1965
12974	ldr	r3, .L1991+4
12975	ldr	r0, .L1991+36
12976	ldrh	r3, [r3]
12977	ldr	r0, [r0]
12978	lsrs	r1, r3, #3
12979	cbz	r0, .L1931
12980	ldr	r0, .L1991+40
12981	ldr	r0, [r0]
12982	cmp	r0, #1
12983	bhi	.L1931
12984	rsb	r3, r3, r3, lsl #3
12985	ubfx	r1, r3, #3, #16
12986.L1931:
12987	cbz	r1, .L1932
12988	subs	r1, r1, #1
12989	uxth	r1, r1
12990.L1932:
12991	ldr	r0, .L1991+52
12992	bl	List_pop_index_node
12993	ldr	r3, .L1991+4
12994	mov	r5, r0
12995	uxth	r10, r0
12996	ldrh	r3, [r3]
12997	cbnz	r3, .L1933
12998	ldr	r1, .L1991+12
12999	movw	r2, #3532
13000	ldr	r0, .L1991+16
13001	bl	printf
13002	ldr	r1, .L1991+20
13003	ldr	r0, .L1991+24
13004	bl	printf
13005.L1933:
13006	ldr	r3, .L1991+4
13007	ldr	r2, .L1991+4
13008	ldrh	r3, [r3]
13009	subs	r3, r3, #1
13010	strh	r3, [r2]	@ movhi
13011	ldrh	r3, [r7]
13012	cmp	r3, r10
13013	bls	.L1927
13014	uxth	r5, r5
13015	lsls	r3, r5, #1
13016	str	r3, [sp]
13017	ldr	r3, .L1991+56
13018	ldr	r3, [r3]
13019	ldrh	r6, [r3, r5, lsl #1]
13020	cmp	r6, #0
13021	bne	.L1927
13022	strh	r10, [r4]	@ movhi
13023	mov	r0, r4
13024	bl	make_superblock
13025	ldrb	r3, [r4, #7]	@ zero_extendqisi2
13026	cmp	r3, #0
13027	bne	.L1935
13028	ldr	r3, .L1991+56
13029	movw	r2, #65535
13030	ldr	r3, [r3]
13031	strh	r2, [r3, r5, lsl #1]	@ movhi
13032	ldr	r3, .L1991+4
13033	ldrh	r2, [r8]
13034	ldrh	r3, [r3]
13035	add	r3, r3, r2
13036	ldrh	r2, [r7]
13037	cmp	r3, r2
13038	ble	.L1927
13039	mov	r2, #3552
13040	ldr	r1, .L1991+12
13041	ldr	r0, .L1991+16
13042	bl	printf
13043	ldr	r1, .L1991+20
13044	ldr	r0, .L1991+24
13045	bl	printf
13046	b	.L1927
13047.L1965:
13048	movs	r1, #0
13049	b	.L1932
13050.L1992:
13051	.align	2
13052.L1991:
13053	.word	.LANCHOR78
13054	.word	.LANCHOR90
13055	.word	.LANCHOR40
13056	.word	.LANCHOR212
13057	.word	.LC5
13058	.word	.LC6
13059	.word	.LC7
13060	.word	.LANCHOR95
13061	.word	.LANCHOR177
13062	.word	.LANCHOR104
13063	.word	.LANCHOR175
13064	.word	.LANCHOR44
13065	.word	.LANCHOR16
13066	.word	.LANCHOR89
13067	.word	.LANCHOR85
13068	.word	.LANCHOR87
13069.L1935:
13070	ldr	r3, .L1993
13071	ldrh	r2, [r8]
13072	ldrh	r3, [r3]
13073	add	r3, r3, r2
13074	ldrh	r2, [r7]
13075	cmp	r3, r2
13076	ble	.L1937
13077	ldr	r1, .L1993+4
13078	movw	r2, #3556
13079	ldr	r0, .L1993+8
13080	bl	printf
13081	ldr	r1, .L1993+12
13082	ldr	r0, .L1993+16
13083	bl	printf
13084.L1937:
13085	ldr	r3, .L1993+20
13086	add	lr, r4, #16
13087	ldr	r2, .L1993+24
13088	mov	r8, #0
13089	ldr	ip, [r3]
13090	ldrh	r0, [r2]
13091	movs	r2, #36
13092	mov	r3, ip
13093	mla	r0, r2, r0, ip
13094.L1938:
13095	cmp	r0, r3
13096	bne	.L1940
13097	cbnz	r6, .L1941
13098	ldr	r1, .L1993+4
13099	movw	r2, #3571
13100	ldr	r0, .L1993+8
13101	bl	printf
13102	ldr	r1, .L1993+12
13103	ldr	r0, .L1993+16
13104	bl	printf
13105.L1941:
13106	ldr	r3, .L1993+28
13107	ldr	r8, .L1993+80
13108	ldr	r3, [r3]
13109	cbz	r3, .L1942
13110	ldr	r3, .L1993+32
13111	cmp	r4, r3
13112	bne	.L1942
13113	ldr	r3, [r8]
13114	ldrh	r3, [r3, r5, lsl #1]
13115	cmp	r3, #40
13116	itt	hi
13117	movhi	r3, #0
13118	strbhi	r3, [r4, #8]
13119.L1942:
13120	ldr	r3, .L1993+36
13121	ldrh	r3, [r3]
13122	cmp	r3, r10
13123	bne	.L1943
13124	ldr	r1, .L1993+4
13125	movw	r2, #3578
13126	ldr	r0, .L1993+8
13127	bl	printf
13128	ldr	r1, .L1993+12
13129	ldr	r0, .L1993+16
13130	bl	printf
13131.L1943:
13132	ldrb	r2, [r4, #8]	@ zero_extendqisi2
13133	ldr	r3, .L1993+40
13134	ldr	fp, .L1993+84
13135	cmp	r2, #0
13136	bne	.L1944
13137	ldr	r1, [r8]
13138	ldrh	r2, [r1, r5, lsl #1]
13139	cmp	r2, #0
13140	beq	.L1945
13141	ldr	r0, .L1993+44
13142	ldrh	r0, [r0]
13143	add	r2, r2, r0
13144.L1988:
13145	strh	r2, [r1, r5, lsl #1]	@ movhi
13146	mov	r0, r10
13147	ldr	r2, [r3]
13148	movs	r1, #0
13149	str	r3, [sp, #4]
13150	adds	r2, r2, #1
13151	str	r2, [r3]
13152	bl	ftl_set_blk_mode
13153.L1989:
13154	ldr	r2, [r8]
13155	ldr	r3, [sp, #4]
13156	ldrh	r0, [r2, r5, lsl #1]
13157	ldr	r2, .L1993+48
13158	ldr	r1, [r2]
13159	cmp	r0, r1
13160	ldrh	r1, [r7]
13161	it	hi
13162	strhi	r0, [r2]
13163	ldr	r2, .L1993+44
13164	ldr	r0, [r3]
13165	ldr	r3, [fp]
13166	ldrh	r2, [r2]
13167	ldr	r7, .L1993+52
13168	mla	r0, r0, r2, r3
13169	bl	__aeabi_uidiv
13170	ldr	r3, .L1993+56
13171	str	r0, [r3]
13172	ldr	r3, .L1993+60
13173	ldr	r2, [r3]
13174	ldr	r3, [r2, #16]
13175	adds	r3, r3, #1
13176	str	r3, [r2, #16]
13177	ldr	r3, .L1993+20
13178	ldr	r0, [r3]
13179	movs	r3, #36
13180	adds	r1, r0, #4
13181	mla	r3, r3, r6, r0
13182	adds	r3, r3, #40
13183.L1949:
13184	adds	r1, r1, #36
13185	cmp	r3, r1
13186	bne	.L1950
13187	ldr	r3, .L1993+64
13188	ldrb	r3, [r3]	@ zero_extendqisi2
13189	cbz	r3, .L1951
13190	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13191	mov	r2, r6
13192	cmp	r3, #1
13193	ite	eq
13194	moveq	r1, #0
13195	movne	r1, #1
13196	bl	FlashEraseBlocks
13197.L1951:
13198	ldr	r3, .L1993+20
13199	movs	r7, #0
13200	mov	r8, r7
13201	mov	fp, #36
13202	mov	r2, r6
13203	ldrb	r1, [r4, #8]	@ zero_extendqisi2
13204	ldr	r0, [r3]
13205	bl	FlashEraseBlocks
13206.L1953:
13207	uxth	r3, r7
13208	cmp	r6, r3
13209	bhi	.L1955
13210	cmp	r8, #0
13211	beq	.L1956
13212	mov	r0, r10
13213	bl	update_multiplier_value
13214	bl	FtlBbmTblFlush
13215.L1956:
13216	ldrb	r2, [r4, #7]	@ zero_extendqisi2
13217	cmp	r2, #0
13218	bne	.L1957
13219	ldr	r3, .L1993+68
13220	movw	r2, #65535
13221	ldr	r3, [r3]
13222	strh	r2, [r3, r5, lsl #1]	@ movhi
13223	b	.L1927
13224.L1940:
13225	ldrh	r1, [lr], #2
13226	movw	fp, #65535
13227	str	r8, [r3, #8]
13228	str	r8, [r3, #12]
13229	cmp	r1, fp
13230	beq	.L1939
13231	mla	fp, r2, r6, ip
13232	adds	r6, r6, #1
13233	lsls	r1, r1, #10
13234	uxth	r6, r6
13235	str	r1, [fp, #4]
13236.L1939:
13237	adds	r3, r3, #36
13238	b	.L1938
13239.L1945:
13240	movs	r2, #2
13241	b	.L1988
13242.L1944:
13243	ldr	r1, [r8]
13244	mov	r0, r10
13245	str	r3, [sp, #4]
13246	ldrh	r2, [r1, r5, lsl #1]
13247	adds	r2, r2, #1
13248	strh	r2, [r1, r5, lsl #1]	@ movhi
13249	ldr	r2, [fp]
13250	adds	r2, r2, #1
13251	str	r2, [fp]
13252	bl	ftl_set_blk_mode.part.11
13253	b	.L1989
13254.L1950:
13255	ldr	r2, [r1, #-36]
13256	ands	r2, r2, r7
13257	str	r2, [r1, #-36]
13258	b	.L1949
13259.L1955:
13260	ldr	r2, .L1993+20
13261	mul	r3, fp, r7
13262	ldr	r2, [r2]
13263	adds	r1, r2, r3
13264	ldr	r2, [r2, r3]
13265	adds	r3, r2, #1
13266	bne	.L1954
13267	ldr	r0, [r1, #4]
13268	add	r8, r8, #1
13269	str	r2, [sp, #4]
13270	ubfx	r0, r0, #10, #16
13271	bl	FtlBbmMapBadBlock
13272	ldr	r2, [sp, #4]
13273	add	r3, r4, r7, lsl #1
13274	strh	r2, [r3, #16]	@ movhi
13275	ldrb	r3, [r4, #7]	@ zero_extendqisi2
13276	subs	r3, r3, #1
13277	strb	r3, [r4, #7]
13278.L1954:
13279	adds	r7, r7, #1
13280	b	.L1953
13281.L1957:
13282	ldr	r3, .L1993+72
13283	ldr	r1, .L1993+76
13284	ldrh	r3, [r3]
13285	strh	r10, [r4]	@ movhi
13286	smulbb	r3, r3, r2
13287	movs	r2, #0
13288	strh	r2, [r4, #2]	@ movhi
13289	strb	r2, [r4, #6]
13290	ldr	r2, [r1]
13291	uxth	r3, r3
13292	strh	r3, [r4, #4]	@ movhi
13293	str	r2, [r4, #12]
13294	adds	r2, r2, #1
13295	str	r2, [r1]
13296	ldr	r2, .L1993+68
13297	ldr	r1, [sp]
13298	ldr	r2, [r2]
13299	strh	r3, [r2, r1]	@ movhi
13300	ldrh	r3, [r4, #4]
13301	cbz	r3, .L1958
13302	ldrb	r3, [r4, #7]	@ zero_extendqisi2
13303	cbnz	r3, .L1928
13304.L1958:
13305	ldr	r1, .L1993+4
13306	movw	r2, #3642
13307	ldr	r0, .L1993+8
13308	bl	printf
13309	ldr	r1, .L1993+12
13310	ldr	r0, .L1993+16
13311	bl	printf
13312.L1928:
13313	movs	r0, #0
13314	add	sp, sp, #8
13315	@ sp needed
13316	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13317.L1994:
13318	.align	2
13319.L1993:
13320	.word	.LANCHOR90
13321	.word	.LANCHOR212
13322	.word	.LC5
13323	.word	.LC6
13324	.word	.LC7
13325	.word	.LANCHOR79
13326	.word	.LANCHOR38
13327	.word	.LANCHOR104
13328	.word	.LANCHOR93
13329	.word	.LANCHOR213
13330	.word	.LANCHOR172
13331	.word	.LANCHOR48
13332	.word	.LANCHOR174
13333	.word	-1024
13334	.word	.LANCHOR214
13335	.word	.LANCHOR199
13336	.word	.LANCHOR16
13337	.word	.LANCHOR85
13338	.word	.LANCHOR52
13339	.word	.LANCHOR164
13340	.word	.LANCHOR80
13341	.word	.LANCHOR173
13342	.size	allocate_data_superblock, .-allocate_data_superblock
13343	.section	.text.FtlGcFreeBadSuperBlk,"ax",%progbits
13344	.align	1
13345	.global	FtlGcFreeBadSuperBlk
13346	.syntax unified
13347	.thumb
13348	.thumb_func
13349	.fpu softvfp
13350	.type	FtlGcFreeBadSuperBlk, %function
13351FtlGcFreeBadSuperBlk:
13352	@ args = 0, pretend = 0, frame = 8
13353	@ frame_needed = 0, uses_anonymous_args = 0
13354	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
13355	mov	r10, r0
13356	ldr	r4, .L2007
13357	ldrh	r3, [r4]
13358	cbz	r3, .L1996
13359	ldr	r8, .L2007+12
13360	movs	r7, #0
13361.L1997:
13362	ldr	r3, .L2007+4
13363	ldrh	r2, [r3]
13364	uxth	r3, r7
13365	cmp	r2, r3
13366	bhi	.L2003
13367	bl	FtlGcReFreshBadBlk
13368.L1996:
13369	movs	r0, #0
13370	add	sp, sp, #8
13371	@ sp needed
13372	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13373.L2003:
13374	ldr	r2, .L2007+8
13375	uxth	r3, r7
13376	mov	r1, r10
13377	mov	fp, #0
13378	ldrb	r0, [r2, r3]	@ zero_extendqisi2
13379	bl	V2P_block
13380	mov	r1, r0
13381.L1998:
13382	ldrh	r3, [r4]
13383	uxth	r5, fp
13384	cmp	r3, r5
13385	bhi	.L2002
13386	adds	r7, r7, #1
13387	b	.L1997
13388.L2002:
13389	uxth	r6, fp
13390	ldrh	r3, [r8, r6, lsl #1]
13391	cmp	r3, r1
13392	bne	.L1999
13393	mov	r0, r1
13394	str	r1, [sp, #4]
13395	bl	FtlBbmMapBadBlock
13396	bl	FtlBbmTblFlush
13397	ldrh	r2, [r4]
13398	add	r3, r8, r6, lsl #1
13399	ldr	r1, [sp, #4]
13400.L2000:
13401	cmp	r5, r2
13402	bcc	.L2001
13403	subs	r2, r2, #1
13404	strh	r2, [r4]	@ movhi
13405.L1999:
13406	add	fp, fp, #1
13407	b	.L1998
13408.L2001:
13409	ldrh	r0, [r3, #2]!
13410	adds	r5, r5, #1
13411	uxth	r5, r5
13412	strh	r0, [r3, #-2]	@ movhi
13413	b	.L2000
13414.L2008:
13415	.align	2
13416.L2007:
13417	.word	.LANCHOR119
13418	.word	.LANCHOR38
13419	.word	.LANCHOR47
13420	.word	.LANCHOR120
13421	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
13422	.section	.text.update_vpc_list,"ax",%progbits
13423	.align	1
13424	.global	update_vpc_list
13425	.syntax unified
13426	.thumb
13427	.thumb_func
13428	.fpu softvfp
13429	.type	update_vpc_list, %function
13430update_vpc_list:
13431	@ args = 0, pretend = 0, frame = 0
13432	@ frame_needed = 0, uses_anonymous_args = 0
13433	push	{r3, r4, r5, lr}
13434	mov	r4, r0
13435	ldr	r3, .L2019
13436	ldr	r3, [r3]
13437	ldrh	r3, [r3, r0, lsl #1]
13438	cmp	r3, #0
13439	bne	.L2010
13440	ldr	r2, .L2019+4
13441	ldrh	r1, [r2]
13442	cmp	r1, r0
13443	bne	.L2011
13444	movw	r3, #65535
13445	strh	r3, [r2]	@ movhi
13446.L2012:
13447	ldr	r5, .L2019+8
13448	mov	r1, r4
13449	ldr	r0, .L2019+12
13450	bl	List_remove_node
13451	ldrh	r3, [r5]
13452	cbnz	r3, .L2014
13453	ldr	r1, .L2019+16
13454	movw	r2, #3767
13455	ldr	r0, .L2019+20
13456	bl	printf
13457	ldr	r1, .L2019+24
13458	ldr	r0, .L2019+28
13459	bl	printf
13460.L2014:
13461	ldrh	r3, [r5]
13462	mov	r0, r4
13463	subs	r3, r3, #1
13464	strh	r3, [r5]	@ movhi
13465	bl	free_data_superblock
13466	mov	r0, r4
13467	bl	FtlGcFreeBadSuperBlk
13468	ldr	r3, .L2019+32
13469	ldrh	r2, [r5]
13470	ldrh	r3, [r3]
13471	add	r3, r3, r2
13472	ldr	r2, .L2019+36
13473	ldrh	r2, [r2]
13474	cmp	r3, r2
13475	ble	.L2018
13476	ldr	r1, .L2019+16
13477	movw	r2, #3770
13478	ldr	r0, .L2019+20
13479	bl	printf
13480	ldr	r1, .L2019+24
13481	ldr	r0, .L2019+28
13482	bl	printf
13483.L2018:
13484	movs	r3, #1
13485	b	.L2009
13486.L2011:
13487	ldr	r2, .L2019+40
13488	ldrh	r2, [r2]
13489	cmp	r2, r0
13490	beq	.L2009
13491	ldr	r2, .L2019+44
13492	ldrh	r2, [r2]
13493	cmp	r2, r0
13494	beq	.L2009
13495	ldr	r2, .L2019+48
13496	ldrh	r2, [r2]
13497	cmp	r2, r0
13498	bne	.L2012
13499.L2009:
13500	mov	r0, r3
13501	pop	{r3, r4, r5, pc}
13502.L2010:
13503	bl	List_update_data_list
13504	movs	r3, #0
13505	b	.L2009
13506.L2020:
13507	.align	2
13508.L2019:
13509	.word	.LANCHOR85
13510	.word	.LANCHOR213
13511	.word	.LANCHOR87
13512	.word	.LANCHOR84
13513	.word	.LANCHOR215
13514	.word	.LC5
13515	.word	.LC6
13516	.word	.LC7
13517	.word	.LANCHOR90
13518	.word	.LANCHOR40
13519	.word	.LANCHOR93
13520	.word	.LANCHOR94
13521	.word	.LANCHOR95
13522	.size	update_vpc_list, .-update_vpc_list
13523	.section	.text.decrement_vpc_count,"ax",%progbits
13524	.align	1
13525	.global	decrement_vpc_count
13526	.syntax unified
13527	.thumb
13528	.thumb_func
13529	.fpu softvfp
13530	.type	decrement_vpc_count, %function
13531decrement_vpc_count:
13532	@ args = 0, pretend = 0, frame = 0
13533	@ frame_needed = 0, uses_anonymous_args = 0
13534	movw	r3, #65535
13535	push	{r4, r5, r6, lr}
13536	cmp	r0, r3
13537	mov	r4, r0
13538	beq	.L2022
13539	ldr	r5, .L2033
13540	ldr	r3, [r5]
13541	ldrh	r2, [r3, r0, lsl #1]
13542	cmp	r2, #0
13543	bne	.L2023
13544	mov	r1, r0
13545	ldr	r0, .L2033+4
13546	bl	printf
13547	ldr	r3, [r5]
13548	ldrh	r3, [r3, r4, lsl #1]
13549	cbnz	r3, .L2024
13550	ldr	r1, .L2033+8
13551	movw	r2, #3786
13552	ldr	r0, .L2033+12
13553	bl	printf
13554	ldr	r1, .L2033+16
13555	ldr	r0, .L2033+20
13556	bl	printf
13557.L2024:
13558	ldr	r3, [r5]
13559	movs	r2, #32
13560	mov	r1, r4
13561	ldr	r0, .L2033+24
13562	strh	r2, [r3, r4, lsl #1]	@ movhi
13563	bl	test_node_in_list
13564	cbz	r0, .L2025
13565	ldr	r6, .L2033+28
13566	mov	r1, r4
13567	ldr	r0, .L2033+24
13568	bl	List_remove_node
13569	ldrh	r3, [r6]
13570	cbnz	r3, .L2026
13571	ldr	r1, .L2033+8
13572	mov	r2, #3792
13573	ldr	r0, .L2033+12
13574	bl	printf
13575	ldr	r1, .L2033+16
13576	ldr	r0, .L2033+20
13577	bl	printf
13578.L2026:
13579	ldrh	r3, [r6]
13580	mov	r0, r4
13581	subs	r3, r3, #1
13582	strh	r3, [r6]	@ movhi
13583	bl	INSERT_DATA_LIST
13584	ldr	r3, [r5]
13585	mov	r1, r4
13586	ldr	r0, .L2033+32
13587	ldrh	r2, [r3, r4, lsl #1]
13588	bl	printf
13589.L2025:
13590	mov	r0, r4
13591	bl	FtlGcRefreshBlock
13592.L2029:
13593	movs	r5, #0
13594	b	.L2021
13595.L2023:
13596	subs	r2, r2, #1
13597	strh	r2, [r3, r0, lsl #1]	@ movhi
13598.L2022:
13599	ldr	r6, .L2033+36
13600	movw	r3, #65535
13601	ldrh	r0, [r6]
13602	cmp	r0, r3
13603	bne	.L2028
13604	strh	r4, [r6]	@ movhi
13605	b	.L2029
13606.L2028:
13607	cmp	r4, r0
13608	beq	.L2029
13609	bl	update_vpc_list
13610	ldr	r3, .L2033+40
13611	adds	r5, r0, #0
13612	ldr	r2, .L2033+44
13613	it	ne
13614	movne	r5, #1
13615	strh	r4, [r6]	@ movhi
13616	ldr	r3, [r3]
13617	ldr	r2, [r2]
13618	subs	r3, r3, r2
13619	asrs	r2, r3, #1
13620	ldr	r3, .L2033+48
13621	muls	r3, r2, r3
13622	ldr	r2, .L2033
13623	ldr	r2, [r2]
13624	uxth	r1, r3
13625	ldrh	r2, [r2, r1, lsl #1]
13626	cbnz	r2, .L2021
13627	cmp	r4, r1
13628	beq	.L2021
13629	ldr	r1, .L2033+8
13630	movw	r2, #3816
13631	ldr	r0, .L2033+12
13632	bl	printf
13633	ldr	r1, .L2033+16
13634	ldr	r0, .L2033+20
13635	bl	printf
13636.L2021:
13637	mov	r0, r5
13638	pop	{r4, r5, r6, pc}
13639.L2034:
13640	.align	2
13641.L2033:
13642	.word	.LANCHOR85
13643	.word	.LC38
13644	.word	.LANCHOR216
13645	.word	.LC5
13646	.word	.LC6
13647	.word	.LC7
13648	.word	.LANCHOR89
13649	.word	.LANCHOR90
13650	.word	.LC39
13651	.word	.LANCHOR136
13652	.word	.LANCHOR84
13653	.word	.LANCHOR83
13654	.word	-1431655765
13655	.size	decrement_vpc_count, .-decrement_vpc_count
13656	.section	.text.FtlSlcSuperblockCheck,"ax",%progbits
13657	.align	1
13658	.global	FtlSlcSuperblockCheck
13659	.syntax unified
13660	.thumb
13661	.thumb_func
13662	.fpu softvfp
13663	.type	FtlSlcSuperblockCheck, %function
13664FtlSlcSuperblockCheck:
13665	@ args = 0, pretend = 0, frame = 0
13666	@ frame_needed = 0, uses_anonymous_args = 0
13667	ldrh	r3, [r0, #4]
13668	push	{r4, r5, r6, lr}
13669	mov	r4, r0
13670	cmp	r3, #0
13671	beq	.L2035
13672	ldrh	r2, [r0]
13673	movw	r3, #65535
13674	cmp	r2, r3
13675	beq	.L2035
13676	ldrb	r3, [r0, #6]	@ zero_extendqisi2
13677	ldr	r5, .L2046
13678	ldr	r6, .L2046+4
13679	adds	r3, r3, #8
13680	ldrh	r3, [r0, r3, lsl #1]
13681.L2039:
13682	movw	r2, #65535
13683	cmp	r3, r2
13684	beq	.L2041
13685	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13686	cmp	r3, #1
13687	bne	.L2042
13688	ldrb	r1, [r5]	@ zero_extendqisi2
13689	cbnz	r1, .L2042
13690	ldrh	r1, [r4, #2]
13691	ldrh	r1, [r6, r1, lsl #1]
13692	cmp	r1, r2
13693	bne	.L2042
13694	ldrh	r3, [r4, #4]
13695	ldrh	r0, [r4]
13696	subs	r3, r3, #1
13697	strh	r3, [r4, #4]	@ movhi
13698	bl	decrement_vpc_count
13699	ldrh	r2, [r4, #4]
13700	cbnz	r2, .L2041
13701	ldrh	r3, [r4, #2]
13702	strb	r2, [r4, #6]
13703	adds	r3, r3, #1
13704	strh	r3, [r4, #2]	@ movhi
13705	pop	{r4, r5, r6, pc}
13706.L2041:
13707	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13708	ldr	r2, .L2046+8
13709	adds	r3, r3, #1
13710	ldrh	r2, [r2]
13711	uxtb	r3, r3
13712	strb	r3, [r4, #6]
13713	cmp	r2, r3
13714	bne	.L2040
13715	ldrh	r3, [r4, #2]
13716	adds	r3, r3, #1
13717	strh	r3, [r4, #2]	@ movhi
13718	movs	r3, #0
13719	strb	r3, [r4, #6]
13720.L2040:
13721	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13722	adds	r3, r3, #8
13723	ldrh	r3, [r4, r3, lsl #1]
13724	b	.L2039
13725.L2042:
13726	ldrb	r2, [r5]	@ zero_extendqisi2
13727	cbz	r2, .L2035
13728	cmp	r3, #1
13729	bne	.L2035
13730	ldr	r3, .L2046+12
13731	ldrh	r2, [r4, #2]
13732	ldrh	r3, [r3]
13733	cmp	r2, r3
13734	bcc	.L2035
13735	ldr	r3, .L2046+16
13736	ldrh	r1, [r4]
13737	ldrh	r0, [r4, #4]
13738	ldr	r2, [r3]
13739	ldrh	r3, [r2, r1, lsl #1]
13740	subs	r3, r3, r0
13741	strh	r3, [r2, r1, lsl #1]	@ movhi
13742	movs	r3, #0
13743	ldr	r2, .L2046+20
13744	strh	r3, [r4, #4]	@ movhi
13745	strb	r3, [r4, #6]
13746	ldrh	r2, [r2]
13747	strh	r2, [r4, #2]	@ movhi
13748.L2035:
13749	pop	{r4, r5, r6, pc}
13750.L2047:
13751	.align	2
13752.L2046:
13753	.word	.LANCHOR16
13754	.word	.LANCHOR123
13755	.word	.LANCHOR38
13756	.word	.LANCHOR53
13757	.word	.LANCHOR85
13758	.word	.LANCHOR52
13759	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
13760	.section	.text.get_new_active_ppa,"ax",%progbits
13761	.align	1
13762	.global	get_new_active_ppa
13763	.syntax unified
13764	.thumb
13765	.thumb_func
13766	.fpu softvfp
13767	.type	get_new_active_ppa, %function
13768get_new_active_ppa:
13769	@ args = 0, pretend = 0, frame = 0
13770	@ frame_needed = 0, uses_anonymous_args = 0
13771	ldrh	r2, [r0]
13772	movw	r3, #65535
13773	push	{r4, r5, r6, r7, r8, lr}
13774	mov	r4, r0
13775	cmp	r2, r3
13776	bne	.L2049
13777	ldr	r1, .L2070
13778	movw	r2, #3700
13779	ldr	r0, .L2070+4
13780	bl	printf
13781	ldr	r1, .L2070+8
13782	ldr	r0, .L2070+12
13783	bl	printf
13784.L2049:
13785	ldr	r5, .L2070+16
13786	ldrh	r2, [r4, #2]
13787	ldrh	r3, [r5]
13788	cmp	r2, r3
13789	bne	.L2050
13790	ldr	r1, .L2070
13791	movw	r2, #3701
13792	ldr	r0, .L2070+4
13793	bl	printf
13794	ldr	r1, .L2070+8
13795	ldr	r0, .L2070+12
13796	bl	printf
13797.L2050:
13798	ldrh	r3, [r4, #4]
13799	cbnz	r3, .L2051
13800	ldr	r1, .L2070
13801	movw	r2, #3702
13802	ldr	r0, .L2070+4
13803	bl	printf
13804	ldr	r1, .L2070+8
13805	ldr	r0, .L2070+12
13806	bl	printf
13807.L2051:
13808	movs	r3, #0
13809	ldr	r7, .L2070+20
13810	strb	r3, [r4, #10]
13811	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13812	ldr	r6, .L2070+24
13813	adds	r3, r3, #8
13814	ldrh	r2, [r4, r3, lsl #1]
13815.L2052:
13816	movw	r0, #65535
13817	cmp	r2, r0
13818	beq	.L2053
13819	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13820	ldrh	r1, [r4, #2]
13821	cmp	r3, #1
13822	ldrh	r3, [r4, #4]
13823	bne	.L2055
13824	ldrb	ip, [r6]	@ zero_extendqisi2
13825	cmp	ip, #0
13826	bne	.L2055
13827	ldr	ip, .L2070+28
13828	ldrh	ip, [ip, r1, lsl #1]
13829	cmp	ip, r0
13830	bne	.L2055
13831	subs	r3, r3, #1
13832	ldrh	r0, [r4]
13833	strh	r3, [r4, #4]	@ movhi
13834	bl	decrement_vpc_count
13835.L2053:
13836	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13837	ldrh	r2, [r7]
13838	adds	r3, r3, #1
13839	uxtb	r3, r3
13840	cmp	r2, r3
13841	strb	r3, [r4, #6]
13842	bne	.L2054
13843	ldrh	r3, [r4, #2]
13844	adds	r3, r3, #1
13845	strh	r3, [r4, #2]	@ movhi
13846	movs	r3, #0
13847	strb	r3, [r4, #6]
13848.L2054:
13849	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13850	adds	r3, r3, #8
13851	ldrh	r2, [r4, r3, lsl #1]
13852	b	.L2052
13853.L2055:
13854	ldr	r8, .L2070+24
13855	orr	r6, r1, r2, lsl #10
13856	subs	r3, r3, #1
13857	strh	r3, [r4, #4]	@ movhi
13858.L2056:
13859	ldrb	r3, [r4, #6]	@ zero_extendqisi2
13860	movw	r2, #65535
13861	ldrh	r0, [r7]
13862.L2058:
13863	adds	r3, r3, #1
13864	uxtb	r3, r3
13865	cmp	r3, r0
13866	itttt	eq
13867	ldrheq	r3, [r4, #2]
13868	addeq	r3, r3, #1
13869	strheq	r3, [r4, #2]	@ movhi
13870	moveq	r3, #0
13871	add	r1, r3, #8
13872	ldrh	r1, [r4, r1, lsl #1]
13873	cmp	r1, r2
13874	beq	.L2058
13875	strb	r3, [r4, #6]
13876	ldrb	r3, [r4, #8]	@ zero_extendqisi2
13877	cmp	r3, #1
13878	bne	.L2059
13879	ldrb	r1, [r8]	@ zero_extendqisi2
13880	ldrh	r3, [r4, #2]
13881	cbnz	r1, .L2060
13882	ldr	r1, .L2070+28
13883	ldrh	r3, [r1, r3, lsl #1]
13884	cmp	r3, r2
13885	bne	.L2059
13886	ldrh	r3, [r4, #4]
13887	cbz	r3, .L2059
13888	subs	r3, r3, #1
13889	ldrh	r0, [r4]
13890	strh	r3, [r4, #4]	@ movhi
13891	bl	decrement_vpc_count
13892	b	.L2056
13893.L2060:
13894	ldr	r2, .L2070+32
13895	ldrh	r2, [r2]
13896	cmp	r3, r2
13897	bcc	.L2059
13898	ldr	r3, .L2070+36
13899	ldrh	r1, [r4]
13900	ldrh	r0, [r4, #4]
13901	ldr	r2, [r3]
13902	ldrh	r3, [r2, r1, lsl #1]
13903	subs	r3, r3, r0
13904	strh	r3, [r2, r1, lsl #1]	@ movhi
13905	movs	r3, #0
13906	ldrh	r2, [r5]
13907	strh	r3, [r4, #4]	@ movhi
13908	strb	r3, [r4, #6]
13909	strh	r2, [r4, #2]	@ movhi
13910.L2059:
13911	ldrh	r2, [r4, #2]
13912	ldrh	r3, [r5]
13913	cmp	r2, r3
13914	bne	.L2048
13915	ldrh	r3, [r4, #4]
13916	cbz	r3, .L2048
13917	ldr	r1, .L2070
13918	movw	r2, #3752
13919	ldr	r0, .L2070+4
13920	bl	printf
13921	ldr	r1, .L2070+8
13922	ldr	r0, .L2070+12
13923	bl	printf
13924.L2048:
13925	mov	r0, r6
13926	pop	{r4, r5, r6, r7, r8, pc}
13927.L2071:
13928	.align	2
13929.L2070:
13930	.word	.LANCHOR217
13931	.word	.LC5
13932	.word	.LC6
13933	.word	.LC7
13934	.word	.LANCHOR52
13935	.word	.LANCHOR38
13936	.word	.LANCHOR16
13937	.word	.LANCHOR123
13938	.word	.LANCHOR53
13939	.word	.LANCHOR85
13940	.size	get_new_active_ppa, .-get_new_active_ppa
13941	.section	.text.FtlVpcTblFlush,"ax",%progbits
13942	.align	1
13943	.global	FtlVpcTblFlush
13944	.syntax unified
13945	.thumb
13946	.thumb_func
13947	.fpu softvfp
13948	.type	FtlVpcTblFlush, %function
13949FtlVpcTblFlush:
13950	@ args = 0, pretend = 0, frame = 8
13951	@ frame_needed = 0, uses_anonymous_args = 0
13952	ldr	r2, .L2096
13953	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
13954	ldr	r3, [r2]
13955	str	r2, [sp, #4]
13956	cmp	r3, #0
13957	bne	.L2074
13958	ldr	r4, .L2096+4
13959	ldr	r8, .L2096+112
13960	ldr	fp, .L2096+116
13961	ldr	r5, .L2096+8
13962	ldr	r0, [r8]
13963	ldr	r6, [fp]
13964	ldrh	r2, [r4]
13965	str	r0, [r5, #8]
13966	str	r6, [r5, #12]
13967	strh	r2, [r6, #2]	@ movhi
13968	movw	r2, #61604
13969	ldr	r7, .L2096+12
13970	strh	r2, [r6]	@ movhi
13971	str	r3, [r6, #12]
13972	ldr	ip, .L2096+120
13973	ldr	r2, [r4, #8]
13974	str	r3, [r6, #8]
13975	ldr	r3, .L2096+16
13976	str	r2, [r6, #4]
13977	stm	r7, {r3, ip}
13978	ldrh	r3, [r4, #6]
13979	strh	r3, [r7, #8]	@ movhi
13980	ldr	r3, .L2096+20
13981	ldrh	r3, [r3]
13982	strb	r3, [r7, #10]
13983	ldr	r3, .L2096+24
13984	ldrh	r2, [r3]
13985	ldrh	r1, [r3, #2]
13986	strh	r2, [r7, #14]	@ movhi
13987	ldrb	r2, [r3, #6]	@ zero_extendqisi2
13988	ldrb	r3, [r3, #8]	@ zero_extendqisi2
13989	strb	r3, [r7, #11]
13990	orr	r2, r2, r1, lsl #6
13991	ldr	r3, .L2096+28
13992	strh	r2, [r7, #16]	@ movhi
13993	ldrh	r2, [r3]
13994	ldrh	r1, [r3, #2]
13995	strh	r2, [r7, #18]	@ movhi
13996	ldrb	r2, [r3, #6]	@ zero_extendqisi2
13997	ldrb	r3, [r3, #8]	@ zero_extendqisi2
13998	strb	r3, [r7, #12]
13999	orr	r2, r2, r1, lsl #6
14000	ldr	r3, .L2096+32
14001	strh	r2, [r7, #20]	@ movhi
14002	ldrh	r2, [r3]
14003	strh	r2, [r7, #22]	@ movhi
14004	ldrh	r1, [r3, #2]
14005	ldrb	r2, [r3, #6]	@ zero_extendqisi2
14006	ldrb	r3, [r3, #8]	@ zero_extendqisi2
14007	strb	r3, [r7, #13]
14008	orr	r2, r2, r1, lsl #6
14009	ldr	r3, .L2096+36
14010	movs	r1, #255
14011	strh	r2, [r7, #24]	@ movhi
14012	ldr	r3, [r3]
14013	str	r3, [r7, #32]
14014	ldr	r3, .L2096+40
14015	ldr	r3, [r3]
14016	str	r3, [r7, #40]
14017	ldr	r3, .L2096+44
14018	ldr	r3, [r3]
14019	str	r3, [r7, #36]
14020	ldr	r3, .L2096+48
14021	ldrh	r3, [r3]
14022	strh	r3, [r7, #44]	@ movhi
14023	ldr	r3, .L2096+52
14024	ldrh	r3, [r3]
14025	strh	r3, [r7, #46]	@ movhi
14026	ldr	r3, .L2096+56
14027	ldrh	r2, [r3]
14028	bl	ftl_memset
14029	mov	r1, r7
14030	ldr	r7, .L2096+60
14031	movs	r2, #48
14032	ldr	r0, [r5, #8]
14033	bl	ftl_memcpy
14034	ldrh	r2, [r7]
14035	ldr	r3, .L2096+64
14036	ldr	r0, [r5, #8]
14037	ldr	r1, [r3]
14038	lsls	r2, r2, #1
14039	adds	r0, r0, #48
14040	bl	ftl_memcpy
14041	ldrh	r0, [r7]
14042	ldr	r3, [r5, #8]
14043	ldr	r1, .L2096+68
14044	lsrs	r2, r0, #3
14045	lsls	r0, r0, #1
14046	ldr	r1, [r1]
14047	adds	r0, r0, #51
14048	adds	r2, r2, #4
14049	bic	r0, r0, #3
14050	add	r0, r0, r3
14051	bl	ftl_memcpy
14052	ldr	r3, .L2096+72
14053	ldrh	r3, [r3]
14054	cbz	r3, .L2075
14055	ldrh	r0, [r7]
14056	ldr	r3, .L2096+76
14057	ldr	r1, .L2096+80
14058	ldrh	r2, [r3]
14059	lsrs	r3, r0, #3
14060	ldr	r1, [r1]
14061	add	r3, r3, r0, lsl #1
14062	ldr	r0, [r5, #8]
14063	adds	r3, r3, #52
14064	lsls	r2, r2, #2
14065	ubfx	r3, r3, #2, #14
14066	add	r0, r0, r3, lsl #2
14067	bl	ftl_memcpy
14068.L2075:
14069	movs	r7, #0
14070	movw	r10, #65535
14071	movs	r0, #0
14072	bl	FtlUpdateVaildLpn
14073.L2076:
14074	ldr	r3, [r8]
14075	ldrh	r1, [r4, #2]
14076	ldrh	r2, [r4]
14077	str	r3, [r5, #8]
14078	ldr	r3, [fp]
14079	str	r3, [r5, #12]
14080	orr	r3, r1, r2, lsl #10
14081	str	r3, [r5, #4]
14082	ldr	r3, .L2096+84
14083	ldrh	r3, [r3]
14084	subs	r3, r3, #1
14085	cmp	r1, r3
14086	blt	.L2077
14087	movs	r3, #0
14088	ldrh	r10, [r4, #4]
14089	strh	r3, [r4, #2]	@ movhi
14090	strh	r2, [r4, #4]	@ movhi
14091	bl	FtlFreeSysBlkQueueOut
14092	ldr	r3, .L2096+40
14093	ldr	r1, .L2096+40
14094	strh	r0, [r4]	@ movhi
14095	ldr	r3, [r3]
14096	adds	r2, r3, #1
14097	str	r3, [r4, #8]
14098	str	r2, [r1]
14099	lsls	r2, r0, #10
14100	str	r2, [r5, #4]
14101	str	r3, [r6, #4]
14102	strh	r0, [r6, #2]	@ movhi
14103.L2077:
14104	ldr	r3, .L2096+88
14105	ldrb	r3, [r3]	@ zero_extendqisi2
14106	cbz	r3, .L2078
14107	ldr	r3, .L2096+56
14108	ldr	r0, [r8]
14109	ldrh	r1, [r3]
14110	bl	js_hash
14111	str	r0, [r6, #12]
14112.L2078:
14113	movs	r3, #1
14114	ldr	r0, .L2096+8
14115	mov	r2, r3
14116	mov	r1, r3
14117	bl	FlashProgPages
14118	ldrh	r3, [r4, #2]
14119	ldr	r2, [r5]
14120	adds	r3, r3, #1
14121	uxth	r3, r3
14122	adds	r1, r2, #1
14123	strh	r3, [r4, #2]	@ movhi
14124	bne	.L2079
14125	cmp	r3, #1
14126	bne	.L2080
14127	ldr	r1, .L2096+92
14128	movw	r2, #1375
14129	ldr	r0, .L2096+96
14130	bl	printf
14131	ldr	r1, .L2096+100
14132	ldr	r0, .L2096+104
14133	bl	printf
14134.L2080:
14135	ldrh	r3, [r4, #2]
14136	adds	r7, r7, #1
14137	uxth	r7, r7
14138	cmp	r3, #1
14139	itttt	eq
14140	ldreq	r3, .L2096+84
14141	ldrheq	r3, [r3]
14142	addeq	r3, r3, #-1
14143	strheq	r3, [r4, #2]	@ movhi
14144	cmp	r7, #3
14145	bls	.L2076
14146	mov	r2, r7
14147	ldr	r1, [r5, #4]
14148	ldr	r0, .L2096+108
14149	bl	printf
14150	ldr	r2, [sp, #4]
14151	movs	r3, #1
14152	str	r3, [r2]
14153.L2074:
14154	movs	r0, #0
14155	add	sp, sp, #8
14156	@ sp needed
14157	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14158.L2079:
14159	cmp	r3, #1
14160	beq	.L2076
14161	cmp	r2, #256
14162	beq	.L2076
14163	movw	r3, #65535
14164	cmp	r10, r3
14165	beq	.L2074
14166	movs	r1, #1
14167	mov	r0, r10
14168	bl	FtlFreeSysBlkQueueIn
14169	b	.L2074
14170.L2097:
14171	.align	2
14172.L2096:
14173	.word	.LANCHOR78
14174	.word	.LANCHOR218
14175	.word	.LANCHOR211
14176	.word	.LANCHOR82
14177	.word	1179929683
14178	.word	.LANCHOR45
14179	.word	.LANCHOR93
14180	.word	.LANCHOR94
14181	.word	.LANCHOR95
14182	.word	.LANCHOR172
14183	.word	.LANCHOR164
14184	.word	.LANCHOR165
14185	.word	.LANCHOR115
14186	.word	.LANCHOR116
14187	.word	.LANCHOR57
14188	.word	.LANCHOR40
14189	.word	.LANCHOR85
14190	.word	.LANCHOR1
14191	.word	.LANCHOR69
14192	.word	.LANCHOR66
14193	.word	.LANCHOR134
14194	.word	.LANCHOR53
14195	.word	.LANCHOR2
14196	.word	.LANCHOR219
14197	.word	.LC5
14198	.word	.LC6
14199	.word	.LC7
14200	.word	.LC40
14201	.word	.LANCHOR189
14202	.word	.LANCHOR195
14203	.word	1342177379
14204	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
14205	.section	.text.FtlSuperblockPowerLostFix,"ax",%progbits
14206	.align	1
14207	.global	FtlSuperblockPowerLostFix
14208	.syntax unified
14209	.thumb
14210	.thumb_func
14211	.fpu softvfp
14212	.type	FtlSuperblockPowerLostFix, %function
14213FtlSuperblockPowerLostFix:
14214	@ args = 0, pretend = 0, frame = 40
14215	@ frame_needed = 0, uses_anonymous_args = 0
14216	ldr	r3, .L2113
14217	push	{r4, r5, r6, r7, r8, r10, lr}
14218	mov	r4, r0
14219	sub	sp, sp, #44
14220	ldr	r8, [r3]
14221	cmp	r8, #0
14222	bne	.L2098
14223	ldr	r3, .L2113+4
14224	ldrb	r3, [r3]	@ zero_extendqisi2
14225	cmp	r3, #0
14226	beq	.L2109
14227	ldrb	r3, [r0, #8]	@ zero_extendqisi2
14228	cmp	r3, #1
14229	bne	.L2109
14230	ldrh	r6, [r0, #4]
14231	mov	r8, r3
14232.L2100:
14233	mov	r3, #-1
14234	ldr	r2, .L2113+8
14235	str	r3, [sp, #20]
14236	movs	r7, #0
14237	ldr	r3, .L2113+12
14238	ldr	r5, [r2]
14239	mvn	r2, #2
14240	ldr	r10, .L2113+24
14241	ldr	r3, [r3]
14242	str	r5, [sp, #16]
14243	str	r3, [sp, #12]
14244	str	r2, [r5, #8]
14245	mvn	r2, #1
14246	str	r2, [r5, #12]
14247	ldrh	r2, [r4]
14248	strh	r7, [r5]	@ movhi
14249	strh	r2, [r5, #2]	@ movhi
14250	movw	r2, #61589
14251	str	r2, [r3]
14252	add	r2, r2, #304087040
14253	add	r2, r2, #1269760
14254	addw	r2, r2, #1507
14255	str	r2, [r3, #4]
14256.L2101:
14257	adds	r6, r6, #-1
14258	bcc	.L2104
14259	ldrh	r3, [r4, #4]
14260	cbnz	r3, .L2102
14261.L2104:
14262	ldr	r3, .L2113+16
14263	ldrh	r1, [r4]
14264	ldrh	r0, [r4, #4]
14265	ldr	r2, [r3]
14266	ldrh	r3, [r2, r1, lsl #1]
14267	subs	r3, r3, r0
14268	strh	r3, [r2, r1, lsl #1]	@ movhi
14269	ldr	r3, .L2113+20
14270	ldrh	r3, [r3]
14271	strh	r3, [r4, #2]	@ movhi
14272	movs	r3, #0
14273	strb	r3, [r4, #6]
14274	strh	r3, [r4, #4]	@ movhi
14275.L2098:
14276	add	sp, sp, #44
14277	@ sp needed
14278	pop	{r4, r5, r6, r7, r8, r10, pc}
14279.L2109:
14280	movs	r6, #12
14281	b	.L2100
14282.L2102:
14283	mov	r0, r4
14284	bl	get_new_active_ppa
14285	str	r0, [sp, #8]
14286	adds	r0, r0, #1
14287	beq	.L2104
14288	ldr	r3, [r10]
14289	movs	r1, #1
14290	add	r0, sp, #4
14291	str	r3, [r5, #4]
14292	adds	r3, r3, #1
14293	adds	r2, r3, #1
14294	mov	r2, r8
14295	it	eq
14296	moveq	r3, r7
14297	str	r3, [r10]
14298	movs	r3, #0
14299	bl	FlashProgPages
14300	ldrh	r0, [r4]
14301	bl	decrement_vpc_count
14302	b	.L2101
14303.L2114:
14304	.align	2
14305.L2113:
14306	.word	.LANCHOR78
14307	.word	.LANCHOR16
14308	.word	.LANCHOR195
14309	.word	.LANCHOR189
14310	.word	.LANCHOR85
14311	.word	.LANCHOR52
14312	.word	.LANCHOR165
14313	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
14314	.section	.text.FtlLoadFactoryBbt,"ax",%progbits
14315	.align	1
14316	.global	FtlLoadFactoryBbt
14317	.syntax unified
14318	.thumb
14319	.thumb_func
14320	.fpu softvfp
14321	.type	FtlLoadFactoryBbt, %function
14322FtlLoadFactoryBbt:
14323	@ args = 0, pretend = 0, frame = 0
14324	@ frame_needed = 0, uses_anonymous_args = 0
14325	ldr	r3, .L2125
14326	push	{r4, r5, r6, r7, r8, r10, fp, lr}
14327	movs	r6, #0
14328	ldr	r5, .L2125+4
14329	ldr	r3, [r3]
14330	ldr	r7, .L2125+8
14331	ldr	r10, .L2125+20
14332	str	r3, [r5, #8]
14333	ldr	r3, .L2125+12
14334	ldr	r8, [r3]
14335	str	r8, [r5, #12]
14336.L2116:
14337	ldr	r3, .L2125+16
14338	ldrh	r3, [r3]
14339	cmp	r6, r3
14340	bcc	.L2121
14341	movs	r0, #0
14342	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14343.L2121:
14344	ldrh	r4, [r10]
14345	movw	r3, #65535
14346	ldr	fp, .L2125+4
14347	strh	r3, [r7, #2]!	@ movhi
14348	subs	r4, r4, #1
14349	uxth	r4, r4
14350.L2117:
14351	ldrh	r3, [r10]
14352	sub	r2, r3, #15
14353	cmp	r2, r4
14354	bgt	.L2119
14355	mla	r3, r6, r3, r4
14356	movs	r2, #1
14357	mov	r1, r2
14358	mov	r0, fp
14359	lsls	r3, r3, #10
14360	str	r3, [r5, #4]
14361	bl	FlashReadPages
14362	ldr	r3, [r5]
14363	adds	r3, r3, #1
14364	beq	.L2118
14365	ldrh	r2, [r8]
14366	movw	r3, #61664
14367	cmp	r2, r3
14368	bne	.L2118
14369	strh	r4, [r7]	@ movhi
14370.L2119:
14371	adds	r6, r6, #1
14372	b	.L2116
14373.L2118:
14374	subs	r4, r4, #1
14375	uxth	r4, r4
14376	b	.L2117
14377.L2126:
14378	.align	2
14379.L2125:
14380	.word	.LANCHOR189
14381	.word	.LANCHOR211
14382	.word	.LANCHOR76+10
14383	.word	.LANCHOR195
14384	.word	.LANCHOR45
14385	.word	.LANCHOR51
14386	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
14387	.section	.text.FtlGetLastWrittenPage,"ax",%progbits
14388	.align	1
14389	.global	FtlGetLastWrittenPage
14390	.syntax unified
14391	.thumb
14392	.thumb_func
14393	.fpu softvfp
14394	.type	FtlGetLastWrittenPage, %function
14395FtlGetLastWrittenPage:
14396	@ args = 0, pretend = 0, frame = 104
14397	@ frame_needed = 0, uses_anonymous_args = 0
14398	cmp	r1, #1
14399	push	{r4, r5, r6, r7, r8, lr}
14400	it	eq
14401	ldreq	r3, .L2139
14402	sub	sp, sp, #104
14403	lsl	r7, r0, #10
14404	mov	r2, r1
14405	it	ne
14406	ldrne	r3, .L2139+4
14407	mov	r8, r1
14408	movs	r6, #0
14409	movs	r1, #1
14410	add	r0, sp, #4
14411	ldrh	r5, [r3]
14412	add	r3, sp, #40
14413	str	r3, [sp, #16]
14414	str	r6, [sp, #12]
14415	subs	r5, r5, #1
14416	sxth	r5, r5
14417	orr	r3, r5, r7
14418	str	r3, [sp, #8]
14419	bl	FlashReadPages
14420	ldr	r3, [sp, #40]
14421	adds	r3, r3, #1
14422	bne	.L2130
14423.L2131:
14424	cmp	r6, r5
14425	ble	.L2134
14426.L2130:
14427	mov	r0, r5
14428	add	sp, sp, #104
14429	@ sp needed
14430	pop	{r4, r5, r6, r7, r8, pc}
14431.L2134:
14432	adds	r3, r6, r5
14433	mov	r2, r8
14434	add	r3, r3, r3, lsr #31
14435	movs	r1, #1
14436	add	r0, sp, #4
14437	asrs	r4, r3, #1
14438	sxth	r3, r4
14439	orrs	r3, r3, r7
14440	str	r3, [sp, #8]
14441	bl	FlashReadPages
14442	ldr	r3, [sp, #40]
14443	adds	r3, r3, #1
14444	bne	.L2132
14445	ldr	r3, [sp, #44]
14446	adds	r3, r3, #1
14447	bne	.L2132
14448	ldr	r3, [sp, #4]
14449	adds	r3, r3, #1
14450	beq	.L2132
14451	subs	r4, r4, #1
14452	sxth	r5, r4
14453	b	.L2131
14454.L2132:
14455	adds	r4, r4, #1
14456	sxth	r6, r4
14457	b	.L2131
14458.L2140:
14459	.align	2
14460.L2139:
14461	.word	.LANCHOR53
14462	.word	.LANCHOR52
14463	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
14464	.section	.text.FtlLoadBbt,"ax",%progbits
14465	.align	1
14466	.global	FtlLoadBbt
14467	.syntax unified
14468	.thumb
14469	.thumb_func
14470	.fpu softvfp
14471	.type	FtlLoadBbt, %function
14472FtlLoadBbt:
14473	@ args = 0, pretend = 0, frame = 0
14474	@ frame_needed = 0, uses_anonymous_args = 0
14475	push	{r3, r4, r5, r6, r7, r8, r10, lr}
14476	ldr	r8, .L2170+48
14477	ldr	r4, .L2170
14478	ldr	r3, [r8]
14479	ldr	r7, .L2170+4
14480	mov	r10, r4
14481	str	r3, [r4, #8]
14482	ldr	r3, .L2170+8
14483	ldr	r6, [r3]
14484	str	r6, [r4, #12]
14485	bl	FtlBbtMemInit
14486	ldrh	r5, [r7]
14487	subs	r5, r5, #1
14488	uxth	r5, r5
14489.L2142:
14490	ldrh	r3, [r7]
14491	subs	r3, r3, #47
14492	cmp	r3, r5
14493	bgt	.L2145
14494	lsls	r3, r5, #10
14495	movs	r2, #1
14496	mov	r1, r2
14497	mov	r0, r10
14498	str	r3, [r4, #4]
14499	bl	FlashReadPages
14500	ldr	r3, [r4]
14501	adds	r3, r3, #1
14502	bne	.L2143
14503	ldr	r3, [r4, #4]
14504	movs	r2, #1
14505	mov	r1, r2
14506	mov	r0, r10
14507	adds	r3, r3, #1
14508	str	r3, [r4, #4]
14509	bl	FlashReadPages
14510.L2143:
14511	ldr	r3, [r4]
14512	adds	r3, r3, #1
14513	beq	.L2144
14514	ldrh	r2, [r6]
14515	movw	r3, #61649
14516	cmp	r2, r3
14517	bne	.L2144
14518	ldr	r3, .L2170+12
14519	ldr	r2, [r6, #4]
14520	strh	r5, [r3]	@ movhi
14521	str	r2, [r3, #8]
14522	ldrh	r2, [r6, #8]
14523	strh	r2, [r3, #4]	@ movhi
14524.L2145:
14525	ldr	r5, .L2170+12
14526	movw	r2, #65535
14527	ldrh	r3, [r5]
14528	cmp	r3, r2
14529	beq	.L2159
14530	ldrh	r3, [r5, #4]
14531	cmp	r3, r2
14532	beq	.L2149
14533	lsls	r3, r3, #10
14534	movs	r2, #1
14535	mov	r1, r2
14536	ldr	r0, .L2170
14537	str	r3, [r4, #4]
14538	bl	FlashReadPages
14539	ldr	r3, [r4]
14540	adds	r3, r3, #1
14541	beq	.L2149
14542	ldrh	r2, [r6]
14543	movw	r3, #61649
14544	cmp	r2, r3
14545	bne	.L2149
14546	ldr	r3, [r6, #4]
14547	ldr	r2, [r5, #8]
14548	cmp	r3, r2
14549	bls	.L2149
14550	ldrh	r2, [r5, #4]
14551	str	r3, [r5, #8]
14552	ldrh	r3, [r6, #8]
14553	strh	r2, [r5]	@ movhi
14554	strh	r3, [r5, #4]	@ movhi
14555.L2149:
14556	ldr	r10, .L2170
14557	movs	r1, #1
14558	ldrh	r0, [r5]
14559	bl	FtlGetLastWrittenPage
14560	sxth	r7, r0
14561	adds	r0, r0, #1
14562	strh	r0, [r5, #2]	@ movhi
14563.L2151:
14564	cmp	r7, #0
14565	bge	.L2154
14566	ldr	r1, .L2170+16
14567	movw	r2, #339
14568	ldr	r0, .L2170+20
14569	bl	printf
14570	ldr	r1, .L2170+24
14571	ldr	r0, .L2170+28
14572	bl	printf
14573.L2153:
14574	ldrh	r3, [r6, #10]
14575	ldrh	r0, [r6, #12]
14576	strh	r3, [r5, #6]	@ movhi
14577	movw	r3, #65535
14578	cmp	r0, r3
14579	beq	.L2156
14580	ldr	r3, .L2170+32
14581	ldr	r2, [r3]
14582	cmp	r0, r2
14583	beq	.L2156
14584	ldr	r3, .L2170+36
14585	ldrh	r3, [r3]
14586	lsrs	r3, r3, #2
14587	cmp	r2, r3
14588	bcs	.L2156
14589	cmp	r0, r3
14590	bcs	.L2156
14591	bl	FtlSysBlkNumInit
14592.L2156:
14593	ldr	r6, .L2170+40
14594	movs	r5, #0
14595	ldr	r7, .L2170+44
14596	ldr	r8, .L2170+52
14597.L2157:
14598	ldrh	r3, [r7]
14599	cmp	r5, r3
14600	bcc	.L2158
14601	movs	r0, #0
14602	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
14603.L2144:
14604	subs	r5, r5, #1
14605	uxth	r5, r5
14606	b	.L2142
14607.L2154:
14608	ldrh	r3, [r5]
14609	movs	r2, #1
14610	mov	r1, r2
14611	mov	r0, r10
14612	orr	r3, r7, r3, lsl #10
14613	str	r3, [r4, #4]
14614	ldr	r3, [r8]
14615	str	r3, [r4, #8]
14616	bl	FlashReadPages
14617	ldr	r3, [r4]
14618	adds	r3, r3, #1
14619	beq	.L2152
14620	ldrh	r2, [r6]
14621	movw	r3, #61649
14622	cmp	r2, r3
14623	beq	.L2153
14624.L2152:
14625	subs	r7, r7, #1
14626	sxth	r7, r7
14627	b	.L2151
14628.L2158:
14629	ldrh	r2, [r8]
14630	ldr	r1, [r4, #8]
14631	ldr	r0, [r6, #4]!
14632	lsls	r2, r2, #2
14633	mla	r1, r5, r2, r1
14634	adds	r5, r5, #1
14635	bl	ftl_memcpy
14636	b	.L2157
14637.L2159:
14638	mov	r0, #-1
14639	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
14640.L2171:
14641	.align	2
14642.L2170:
14643	.word	.LANCHOR211
14644	.word	.LANCHOR51
14645	.word	.LANCHOR195
14646	.word	.LANCHOR76
14647	.word	.LANCHOR220
14648	.word	.LC5
14649	.word	.LC6
14650	.word	.LC7
14651	.word	.LANCHOR37
14652	.word	.LANCHOR41
14653	.word	.LANCHOR76+24
14654	.word	.LANCHOR45
14655	.word	.LANCHOR189
14656	.word	.LANCHOR126
14657	.size	FtlLoadBbt, .-FtlLoadBbt
14658	.section	.text.ftl_map_blk_gc,"ax",%progbits
14659	.align	1
14660	.global	ftl_map_blk_gc
14661	.syntax unified
14662	.thumb
14663	.thumb_func
14664	.fpu softvfp
14665	.type	ftl_map_blk_gc, %function
14666ftl_map_blk_gc:
14667	@ args = 0, pretend = 0, frame = 8
14668	@ frame_needed = 0, uses_anonymous_args = 0
14669	ldr	r3, [r0, #24]
14670	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
14671	mov	r4, r0
14672	ldr	r5, [r0, #12]
14673	str	r3, [sp]
14674	bl	ftl_free_no_use_map_blk
14675	ldrh	r3, [r4, #10]
14676	ldrh	r2, [r4, #8]
14677	subs	r3, r3, #4
14678	cmp	r2, r3
14679	blt	.L2173
14680	uxth	r0, r0
14681	ldrh	r8, [r5, r0, lsl #1]
14682	cmp	r8, #0
14683	beq	.L2173
14684	ldr	r3, [r4, #32]
14685	cbnz	r3, .L2173
14686	movs	r2, #1
14687	str	r2, [r4, #32]
14688	strh	r3, [r5, r0, lsl #1]	@ movhi
14689	ldrh	r3, [r4, #8]
14690	ldrh	r2, [r4, #2]
14691	subs	r3, r3, #1
14692	strh	r3, [r4, #8]	@ movhi
14693	ldr	r3, .L2185
14694	ldrh	r3, [r3]
14695	cmp	r2, r3
14696	bcc	.L2174
14697	mov	r0, r4
14698	bl	ftl_map_blk_alloc_new_blk
14699.L2174:
14700	ldr	r5, .L2185+4
14701	movs	r6, #0
14702.L2175:
14703	ldrh	r3, [r4, #6]
14704	uxth	r10, r6
14705	cmp	r3, r10
14706	bhi	.L2181
14707	movs	r1, #1
14708	mov	r0, r8
14709	bl	FtlFreeSysBlkQueueIn
14710	movs	r3, #0
14711	str	r3, [r4, #32]
14712.L2173:
14713	ldr	r3, .L2185
14714	ldrh	r2, [r4, #2]
14715	ldrh	r3, [r3]
14716	cmp	r2, r3
14717	bcc	.L2179
14718	mov	r0, r4
14719	bl	ftl_map_blk_alloc_new_blk
14720	b	.L2179
14721.L2181:
14722	ldr	r3, [sp]
14723	uxth	fp, r6
14724	add	r3, r3, fp, lsl #2
14725	str	r3, [sp, #4]
14726	ldr	r3, [sp]
14727	ldr	r2, [r3, fp, lsl #2]
14728	cmp	r8, r2, lsr #10
14729	bne	.L2176
14730	ldr	r3, .L2185+8
14731	str	r2, [r5, #4]
14732	movs	r2, #1
14733	ldr	r0, .L2185+4
14734	ldr	r1, [r3]
14735	str	r1, [r5, #8]
14736	ldr	r1, .L2185+12
14737	ldr	r7, [r1]
14738	mov	r1, r2
14739	str	r7, [r5, #12]
14740	bl	FlashReadPages
14741	ldrh	r2, [r7, #8]
14742	cmp	r2, r10
14743	beq	.L2177
14744	ldr	r1, .L2185+16
14745	mov	r2, #752
14746	ldr	r0, .L2185+20
14747	bl	printf
14748	ldr	r1, .L2185+24
14749	ldr	r0, .L2185+28
14750	bl	printf
14751.L2177:
14752	ldr	r2, [r5]
14753	adds	r2, r2, #1
14754	ldrh	r2, [r7, #8]
14755	bne	.L2178
14756.L2180:
14757	ldr	r1, [sp, #4]
14758	movs	r3, #0
14759	ldr	r0, .L2185+32
14760	str	r3, [r1]
14761	ldr	r1, [r5, #4]
14762	bl	printf
14763	ldr	r3, .L2185+36
14764	movs	r2, #1
14765	str	r2, [r3]
14766.L2179:
14767	movs	r0, #0
14768	add	sp, sp, #8
14769	@ sp needed
14770	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14771.L2178:
14772	cmp	r2, r10
14773	bne	.L2180
14774	ldrh	r0, [r7]
14775	ldrh	r1, [r4, #4]
14776	cmp	r0, r1
14777	bne	.L2180
14778	ldr	r2, [r5, #8]
14779	mov	r1, fp
14780	mov	r0, r4
14781	bl	FtlMapWritePage
14782.L2176:
14783	adds	r6, r6, #1
14784	b	.L2175
14785.L2186:
14786	.align	2
14787.L2185:
14788	.word	.LANCHOR53
14789	.word	.LANCHOR211
14790	.word	.LANCHOR190
14791	.word	.LANCHOR195
14792	.word	.LANCHOR221
14793	.word	.LC5
14794	.word	.LC6
14795	.word	.LC7
14796	.word	.LC41
14797	.word	.LANCHOR78
14798	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
14799	.section	.text.Ftl_write_map_blk_to_last_page,"ax",%progbits
14800	.align	1
14801	.global	Ftl_write_map_blk_to_last_page
14802	.syntax unified
14803	.thumb
14804	.thumb_func
14805	.fpu softvfp
14806	.type	Ftl_write_map_blk_to_last_page, %function
14807Ftl_write_map_blk_to_last_page:
14808	@ args = 0, pretend = 0, frame = 0
14809	@ frame_needed = 0, uses_anonymous_args = 0
14810	ldr	r3, .L2201
14811	push	{r4, r5, r6, r7, r8, r10, fp, lr}
14812	mov	r4, r0
14813	ldr	r5, [r3]
14814	cbnz	r5, .L2188
14815	ldrh	r3, [r0]
14816	movw	r2, #65535
14817	ldr	r6, [r0, #12]
14818	cmp	r3, r2
14819	bne	.L2189
14820	ldrh	r3, [r0, #8]
14821	cbz	r3, .L2190
14822	ldr	r1, .L2201+4
14823	movw	r2, #793
14824	ldr	r0, .L2201+8
14825	bl	printf
14826	ldr	r1, .L2201+12
14827	ldr	r0, .L2201+16
14828	bl	printf
14829.L2190:
14830	ldrh	r3, [r4, #8]
14831	adds	r3, r3, #1
14832	strh	r3, [r4, #8]	@ movhi
14833	bl	FtlFreeSysBlkQueueOut
14834	movs	r3, #0
14835	strh	r0, [r6]	@ movhi
14836	strh	r3, [r4, #2]	@ movhi
14837	strh	r3, [r4]	@ movhi
14838	ldr	r3, [r4, #28]
14839	adds	r3, r3, #1
14840	str	r3, [r4, #28]
14841.L2188:
14842	movs	r0, #0
14843	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14844.L2189:
14845	ldrh	r8, [r6, r3, lsl #1]
14846	movs	r1, #255
14847	ldrh	r3, [r0, #2]
14848	ldr	r7, .L2201+20
14849	ldr	fp, .L2201+40
14850	ldr	r10, [r0, #24]
14851	orr	r3, r3, r8, lsl #10
14852	ldr	r0, [fp]
14853	str	r3, [r7, #4]
14854	ldr	r3, .L2201+24
14855	str	r0, [r7, #8]
14856	ldr	r6, [r3]
14857	ldr	r3, [r4, #28]
14858	str	r6, [r7, #12]
14859	str	r3, [r6, #4]
14860	movw	r3, #64245
14861	strh	r3, [r6, #8]	@ movhi
14862	ldrh	r3, [r4, #4]
14863	strh	r8, [r6, #2]	@ movhi
14864	strh	r3, [r6]	@ movhi
14865	ldr	r3, .L2201+28
14866	ldrh	r2, [r3]
14867	lsls	r2, r2, #3
14868	bl	ftl_memset
14869	ldrh	ip, [r4, #6]
14870	mov	r3, r5
14871	ldr	r1, [fp]
14872	mov	r2, r5
14873.L2191:
14874	uxth	r0, r3
14875	cmp	ip, r0
14876	bhi	.L2193
14877	ldr	r3, .L2201+32
14878	ldrb	r3, [r3]	@ zero_extendqisi2
14879	cbz	r3, .L2194
14880	ldr	r3, .L2201+36
14881	ldr	r0, [r7, #8]
14882	ldrh	r1, [r3]
14883	bl	js_hash
14884	str	r0, [r6, #12]
14885.L2194:
14886	movs	r2, #1
14887	movs	r3, #0
14888	mov	r1, r2
14889	ldr	r0, .L2201+20
14890	bl	FlashProgPages
14891	ldrh	r3, [r4, #2]
14892	mov	r0, r4
14893	adds	r3, r3, #1
14894	strh	r3, [r4, #2]	@ movhi
14895	bl	ftl_map_blk_gc
14896	b	.L2188
14897.L2193:
14898	ldr	r0, [r10, r3, lsl #2]
14899	cmp	r8, r0, lsr #10
14900	bne	.L2192
14901	adds	r2, r2, #1
14902	uxth	r2, r2
14903	str	r3, [r1, r2, lsl #3]
14904	add	r5, r1, r2, lsl #3
14905	ldr	r0, [r10, r3, lsl #2]
14906	str	r0, [r5, #4]
14907.L2192:
14908	adds	r3, r3, #1
14909	b	.L2191
14910.L2202:
14911	.align	2
14912.L2201:
14913	.word	.LANCHOR78
14914	.word	.LANCHOR222
14915	.word	.LC5
14916	.word	.LC6
14917	.word	.LC7
14918	.word	.LANCHOR211
14919	.word	.LANCHOR195
14920	.word	.LANCHOR53
14921	.word	.LANCHOR2
14922	.word	.LANCHOR57
14923	.word	.LANCHOR189
14924	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
14925	.section	.text.FtlMapWritePage,"ax",%progbits
14926	.align	1
14927	.global	FtlMapWritePage
14928	.syntax unified
14929	.thumb
14930	.thumb_func
14931	.fpu softvfp
14932	.type	FtlMapWritePage, %function
14933FtlMapWritePage:
14934	@ args = 0, pretend = 0, frame = 16
14935	@ frame_needed = 0, uses_anonymous_args = 0
14936	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
14937	mov	r4, r0
14938	ldr	r10, .L2229+44
14939	mov	r8, r1
14940	movs	r6, #0
14941	str	r2, [sp, #4]
14942.L2204:
14943	ldr	r2, .L2229
14944	ldr	r3, [r2]
14945	adds	r3, r3, #1
14946	str	r3, [r2]
14947	ldrh	r3, [r10]
14948	ldrh	r2, [r4, #2]
14949	subs	r3, r3, #1
14950	cmp	r2, r3
14951	bge	.L2205
14952	ldrh	r2, [r4]
14953	movw	r3, #65535
14954	cmp	r2, r3
14955	bne	.L2206
14956.L2205:
14957	mov	r0, r4
14958	bl	Ftl_write_map_blk_to_last_page
14959.L2206:
14960	ldr	r3, .L2229+4
14961	ldr	r2, [r3]
14962	str	r3, [sp, #8]
14963	cmp	r2, #0
14964	bne	.L2224
14965	ldrh	r2, [r4]
14966	ldr	r3, [r4, #12]
14967	ldrh	r3, [r3, r2, lsl #1]
14968	cbnz	r3, .L2208
14969	ldr	r1, .L2229+8
14970	movw	r2, #865
14971	ldr	r0, .L2229+12
14972	bl	printf
14973	ldr	r1, .L2229+16
14974	ldr	r0, .L2229+20
14975	bl	printf
14976.L2208:
14977	ldrh	r2, [r4]
14978	ldrh	r3, [r4, #10]
14979	cmp	r2, r3
14980	bcc	.L2209
14981	ldr	r1, .L2229+8
14982	movw	r2, #866
14983	ldr	r0, .L2229+12
14984	bl	printf
14985	ldr	r1, .L2229+16
14986	ldr	r0, .L2229+20
14987	bl	printf
14988.L2209:
14989	ldrh	r2, [r4]
14990	movs	r1, #0
14991	ldr	r3, [r4, #12]
14992	ldr	r5, .L2229+24
14993	ldrh	r7, [r3, r2, lsl #1]
14994	movs	r2, #16
14995	ldrh	r3, [r4, #2]
14996	mov	fp, r5
14997	orr	r3, r3, r7, lsl #10
14998	str	r3, [r5, #4]
14999	ldr	r3, [sp, #4]
15000	str	r3, [r5, #8]
15001	ldr	r3, .L2229+28
15002	ldr	r0, [r3]
15003	str	r0, [r5, #12]
15004	bl	ftl_memset
15005	ldr	r3, [r5, #12]
15006	ldr	r2, [r4, #28]
15007	str	r3, [sp, #12]
15008	str	r2, [r3, #4]
15009	ldrh	r2, [r4, #4]
15010	strh	r8, [r3, #8]	@ movhi
15011	strh	r7, [r3, #2]	@ movhi
15012	strh	r2, [r3]	@ movhi
15013	ldr	r2, .L2229+32
15014	ldrb	r2, [r2]	@ zero_extendqisi2
15015	cbz	r2, .L2210
15016	ldr	r2, .L2229+36
15017	ldr	r0, [r5, #8]
15018	ldrh	r1, [r2]
15019	bl	js_hash
15020	ldr	r3, [sp, #12]
15021	str	r0, [r3, #12]
15022.L2210:
15023	movs	r3, #1
15024	ldr	r0, .L2229+24
15025	mov	r2, r3
15026	mov	r1, r3
15027	bl	FlashProgPages
15028	ldrh	r3, [r4, #2]
15029	ldr	r2, [r5]
15030	adds	r3, r3, #1
15031	uxth	r3, r3
15032	adds	r1, r2, #1
15033	strh	r3, [r4, #2]	@ movhi
15034	bne	.L2211
15035	ldr	r1, [r5, #4]
15036	adds	r6, r6, #1
15037	ldr	r0, .L2229+40
15038	uxth	r6, r6
15039	bl	printf
15040	ldrh	r3, [r4, #2]
15041	cmp	r3, #2
15042	itttt	ls
15043	ldrls	r3, .L2229+44
15044	ldrhls	r3, [r3]
15045	addls	r3, r3, #-1
15046	strhls	r3, [r4, #2]	@ movhi
15047	cmp	r6, #3
15048	bls	.L2204
15049	mov	r2, r6
15050	ldr	r1, [fp, #4]
15051	ldr	r0, .L2229+48
15052	bl	printf
15053	ldr	r2, [sp, #8]
15054	movs	r3, #1
15055	str	r3, [r2]
15056.L2224:
15057	movs	r0, #0
15058	add	sp, sp, #16
15059	@ sp needed
15060	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
15061.L2211:
15062	cbz	r2, .L2214
15063	cmp	r3, #1
15064	strh	r7, [r4, #40]	@ movhi
15065	bne	.L2215
15066.L2216:
15067	movs	r3, #0
15068	str	r3, [r4, #36]
15069	b	.L2204
15070.L2215:
15071	cmp	r2, #256
15072.L2228:
15073	beq	.L2216
15074	ldr	r3, [r4, #36]
15075	cmp	r3, #0
15076	bne	.L2216
15077	ldr	r2, [fp, #4]
15078	ldr	r3, [r4, #24]
15079	str	r2, [r3, r8, lsl #2]
15080	b	.L2224
15081.L2214:
15082	cmp	r3, #1
15083	b	.L2228
15084.L2230:
15085	.align	2
15086.L2229:
15087	.word	.LANCHOR170
15088	.word	.LANCHOR78
15089	.word	.LANCHOR223
15090	.word	.LC5
15091	.word	.LC6
15092	.word	.LC7
15093	.word	.LANCHOR211
15094	.word	.LANCHOR195
15095	.word	.LANCHOR2
15096	.word	.LANCHOR57
15097	.word	.LC42
15098	.word	.LANCHOR53
15099	.word	.LC43
15100	.size	FtlMapWritePage, .-FtlMapWritePage
15101	.section	.text.flush_l2p_region,"ax",%progbits
15102	.align	1
15103	.global	flush_l2p_region
15104	.syntax unified
15105	.thumb
15106	.thumb_func
15107	.fpu softvfp
15108	.type	flush_l2p_region, %function
15109flush_l2p_region:
15110	@ args = 0, pretend = 0, frame = 0
15111	@ frame_needed = 0, uses_anonymous_args = 0
15112	push	{r3, r4, r5, lr}
15113	movs	r4, #12
15114	ldr	r5, .L2232
15115	muls	r4, r0, r4
15116	ldr	r0, .L2232+4
15117	ldr	r3, [r5]
15118	adds	r2, r3, r4
15119	ldrh	r1, [r3, r4]
15120	ldr	r2, [r2, #8]
15121	bl	FtlMapWritePage
15122	ldr	r3, [r5]
15123	movs	r0, #0
15124	add	r4, r4, r3
15125	ldr	r3, [r4, #4]
15126	bic	r3, r3, #-2147483648
15127	str	r3, [r4, #4]
15128	pop	{r3, r4, r5, pc}
15129.L2233:
15130	.align	2
15131.L2232:
15132	.word	.LANCHOR98
15133	.word	.LANCHOR130
15134	.size	flush_l2p_region, .-flush_l2p_region
15135	.section	.text.l2p_flush,"ax",%progbits
15136	.align	1
15137	.global	l2p_flush
15138	.syntax unified
15139	.thumb
15140	.thumb_func
15141	.fpu softvfp
15142	.type	l2p_flush, %function
15143l2p_flush:
15144	@ args = 0, pretend = 0, frame = 0
15145	@ frame_needed = 0, uses_anonymous_args = 0
15146	push	{r4, r5, r6, lr}
15147	movs	r4, #0
15148	ldr	r5, .L2238
15149	ldr	r6, .L2238+4
15150.L2235:
15151	ldrh	r3, [r5]
15152	uxth	r0, r4
15153	cmp	r3, r0
15154	bhi	.L2237
15155	movs	r0, #0
15156	pop	{r4, r5, r6, pc}
15157.L2237:
15158	ldr	r2, [r6]
15159	uxth	r3, r4
15160	movs	r1, #12
15161	mla	r3, r1, r3, r2
15162	ldr	r3, [r3, #4]
15163	cmp	r3, #0
15164	bge	.L2236
15165	bl	flush_l2p_region
15166.L2236:
15167	adds	r4, r4, #1
15168	b	.L2235
15169.L2239:
15170	.align	2
15171.L2238:
15172	.word	.LANCHOR67
15173	.word	.LANCHOR98
15174	.size	l2p_flush, .-l2p_flush
15175	.section	.text.FtlVendorPartWrite,"ax",%progbits
15176	.align	1
15177	.global	FtlVendorPartWrite
15178	.syntax unified
15179	.thumb
15180	.thumb_func
15181	.fpu softvfp
15182	.type	FtlVendorPartWrite, %function
15183FtlVendorPartWrite:
15184	@ args = 0, pretend = 0, frame = 56
15185	@ frame_needed = 0, uses_anonymous_args = 0
15186	ldr	r3, .L2252
15187	push	{r4, r5, r6, r7, r8, r10, fp, lr}
15188	sub	sp, sp, #56
15189	str	r2, [sp]
15190	adds	r2, r0, r1
15191	mov	r7, r0
15192	mov	r5, r1
15193	ldrh	r3, [r3]
15194	cmp	r2, r3
15195	bhi	.L2248
15196	ldr	r3, .L2252+4
15197	mov	r8, #0
15198	ldrh	r6, [r3]
15199	lsr	r6, r0, r6
15200	lsl	fp, r6, #2
15201.L2242:
15202	cbnz	r5, .L2247
15203.L2240:
15204	mov	r0, r8
15205	add	sp, sp, #56
15206	@ sp needed
15207	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
15208.L2247:
15209	ldr	r3, .L2252+8
15210	mov	r0, r7
15211	ldr	r10, .L2252+24
15212	ldr	r3, [r3]
15213	ldr	r2, [r3, fp]
15214	ldr	r3, .L2252+12
15215	str	r2, [sp, #12]
15216	ldrh	r3, [r3]
15217	mov	r1, r3
15218	str	r3, [sp, #8]
15219	bl	__aeabi_uidivmod
15220	ldr	r3, [sp, #8]
15221	ldr	r2, [sp, #12]
15222	str	r1, [sp, #4]
15223	subs	r4, r3, r1
15224	uxth	r4, r4
15225	cmp	r5, r4
15226	it	cc
15227	uxthcc	r4, r5
15228	cbz	r2, .L2244
15229	cmp	r4, r3
15230	beq	.L2244
15231	ldr	r3, [r10]
15232	add	r0, sp, #20
15233	str	r2, [sp, #24]
15234	movs	r2, #1
15235	mov	r1, r2
15236	str	r3, [sp, #28]
15237	movs	r3, #0
15238	str	r3, [sp, #32]
15239	bl	FlashReadPages
15240.L2245:
15241	lsls	r3, r4, #9
15242	ldr	r0, [r10]
15243	subs	r5, r5, r4
15244	mov	r2, r3
15245	str	r3, [sp, #8]
15246	ldm	sp, {r1, r3}
15247	add	r7, r7, r4
15248	add	fp, fp, #4
15249	add	r0, r0, r3, lsl #9
15250	bl	ftl_memcpy
15251	ldr	r2, [r10]
15252	mov	r1, r6
15253	ldr	r0, .L2252+16
15254	adds	r6, r6, #1
15255	bl	FtlMapWritePage
15256	ldr	r3, [sp]
15257	adds	r0, r0, #1
15258	it	eq
15259	moveq	r8, #-1
15260	mov	r2, r3
15261	ldr	r3, [sp, #8]
15262	add	r2, r2, r3
15263	str	r2, [sp]
15264	b	.L2242
15265.L2244:
15266	ldr	r3, .L2252+20
15267	movs	r1, #0
15268	ldr	r0, [r10]
15269	ldrh	r2, [r3]
15270	bl	ftl_memset
15271	b	.L2245
15272.L2248:
15273	mov	r8, #-1
15274	b	.L2240
15275.L2253:
15276	.align	2
15277.L2252:
15278	.word	.LANCHOR50
15279	.word	.LANCHOR56
15280	.word	.LANCHOR202
15281	.word	.LANCHOR55
15282	.word	.LANCHOR224
15283	.word	.LANCHOR57
15284	.word	.LANCHOR191
15285	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
15286	.section	.text.Ftl_save_ext_data,"ax",%progbits
15287	.align	1
15288	.global	Ftl_save_ext_data
15289	.syntax unified
15290	.thumb
15291	.thumb_func
15292	.fpu softvfp
15293	.type	Ftl_save_ext_data, %function
15294Ftl_save_ext_data:
15295	@ args = 0, pretend = 0, frame = 0
15296	@ frame_needed = 0, uses_anonymous_args = 0
15297	@ link register save eliminated.
15298	ldr	r2, .L2256
15299	ldr	r3, .L2256+4
15300	ldr	r1, [r2]
15301	cmp	r1, r3
15302	bne	.L2254
15303	ldr	r3, .L2256+8
15304	movs	r1, #1
15305	movs	r0, #0
15306	str	r3, [r2, #4]
15307	ldr	r3, .L2256+12
15308	ldr	r3, [r3]
15309	str	r3, [r2, #88]
15310	ldr	r3, .L2256+16
15311	ldr	r3, [r3]
15312	str	r3, [r2, #92]
15313	ldr	r3, .L2256+20
15314	ldr	r3, [r3]
15315	str	r3, [r2, #8]
15316	ldr	r3, .L2256+24
15317	ldr	r3, [r3]
15318	str	r3, [r2, #12]
15319	ldr	r3, .L2256+28
15320	ldr	r3, [r3]
15321	str	r3, [r2, #16]
15322	ldr	r3, .L2256+32
15323	ldr	r3, [r3]
15324	str	r3, [r2, #20]
15325	ldr	r3, .L2256+36
15326	ldr	r3, [r3]
15327	str	r3, [r2, #28]
15328	ldr	r3, .L2256+40
15329	ldr	r3, [r3]
15330	str	r3, [r2, #32]
15331	ldr	r3, .L2256+44
15332	ldr	r3, [r3]
15333	str	r3, [r2, #36]
15334	ldr	r3, .L2256+48
15335	ldr	r3, [r3]
15336	str	r3, [r2, #40]
15337	ldr	r3, .L2256+52
15338	ldr	r3, [r3]
15339	str	r3, [r2, #44]
15340	ldr	r3, .L2256+56
15341	ldr	r3, [r3]
15342	str	r3, [r2, #48]
15343	ldr	r3, .L2256+60
15344	ldr	r3, [r3]
15345	str	r3, [r2, #60]
15346	ldr	r3, .L2256+64
15347	ldr	r3, [r3]
15348	str	r3, [r2, #64]
15349	b	FtlVendorPartWrite
15350.L2254:
15351	bx	lr
15352.L2257:
15353	.align	2
15354.L2256:
15355	.word	.LANCHOR141
15356	.word	1179929683
15357	.word	1342177379
15358	.word	.LANCHOR225
15359	.word	.LANCHOR226
15360	.word	.LANCHOR166
15361	.word	.LANCHOR167
15362	.word	.LANCHOR171
15363	.word	.LANCHOR170
15364	.word	.LANCHOR173
15365	.word	.LANCHOR81
15366	.word	.LANCHOR168
15367	.word	.LANCHOR169
15368	.word	.LANCHOR174
15369	.word	.LANCHOR175
15370	.word	.LANCHOR163
15371	.word	.LANCHOR162
15372	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
15373	.section	.text.FtlEctTblFlush,"ax",%progbits
15374	.align	1
15375	.global	FtlEctTblFlush
15376	.syntax unified
15377	.thumb
15378	.thumb_func
15379	.fpu softvfp
15380	.type	FtlEctTblFlush, %function
15381FtlEctTblFlush:
15382	@ args = 0, pretend = 0, frame = 0
15383	@ frame_needed = 0, uses_anonymous_args = 0
15384	push	{r3, lr}
15385	ldr	r3, .L2265
15386	ldr	r3, [r3]
15387	cmp	r3, #0
15388	beq	.L2263
15389	ldr	r3, .L2265+4
15390	ldr	r3, [r3]
15391	cmp	r3, #39
15392	ite	hi
15393	movhi	r3, #32
15394	movls	r3, #4
15395.L2259:
15396	ldr	r1, .L2265+8
15397	ldrh	r2, [r1]
15398	cmp	r2, #31
15399	ittt	ls
15400	addls	r2, r2, #1
15401	movls	r3, #1
15402	strhls	r2, [r1]	@ movhi
15403	ldr	r2, .L2265+12
15404	cbnz	r0, .L2261
15405	ldr	r1, [r2]
15406	ldr	r0, [r1, #20]
15407	ldr	r1, [r1, #16]
15408	add	r3, r3, r0
15409	cmp	r1, r3
15410	bcc	.L2262
15411.L2261:
15412	ldr	r2, [r2]
15413	movs	r0, #64
15414	ldr	r3, [r2, #16]
15415	str	r3, [r2, #20]
15416	ldr	r3, .L2265+16
15417	str	r3, [r2]
15418	ldr	r3, .L2265+20
15419	ldrh	r1, [r3]
15420	lsls	r3, r1, #9
15421	str	r3, [r2, #12]
15422	ldr	r3, [r2, #8]
15423	adds	r3, r3, #1
15424	str	r3, [r2, #8]
15425	movs	r3, #0
15426	str	r3, [r2, #4]
15427	bl	FtlVendorPartWrite
15428	bl	Ftl_save_ext_data
15429.L2262:
15430	movs	r0, #0
15431	pop	{r3, pc}
15432.L2263:
15433	movs	r3, #32
15434	b	.L2259
15435.L2266:
15436	.align	2
15437.L2265:
15438	.word	.LANCHOR104
15439	.word	.LANCHOR175
15440	.word	.LANCHOR227
15441	.word	.LANCHOR199
15442	.word	1112818501
15443	.word	.LANCHOR198
15444	.size	FtlEctTblFlush, .-FtlEctTblFlush
15445	.section	.text.allocate_new_data_superblock,"ax",%progbits
15446	.align	1
15447	.global	allocate_new_data_superblock
15448	.syntax unified
15449	.thumb
15450	.thumb_func
15451	.fpu softvfp
15452	.type	allocate_new_data_superblock, %function
15453allocate_new_data_superblock:
15454	@ args = 0, pretend = 0, frame = 0
15455	@ frame_needed = 0, uses_anonymous_args = 0
15456	ldr	r3, .L2294
15457	push	{r4, r5, r6, lr}
15458	mov	r4, r0
15459	ldrh	r5, [r0]
15460	ldrh	r3, [r3]
15461	cmp	r3, r5
15462	bcs	.L2268
15463	ldr	r1, .L2294+4
15464	movw	r2, #3650
15465	ldr	r0, .L2294+8
15466	bl	printf
15467	ldr	r1, .L2294+12
15468	ldr	r0, .L2294+16
15469	bl	printf
15470.L2268:
15471	ldr	r3, .L2294+20
15472	ldr	r3, [r3]
15473	cmp	r3, #0
15474	bne	.L2269
15475	movw	r3, #65535
15476	cmp	r5, r3
15477	beq	.L2270
15478	ldr	r3, .L2294+24
15479	mov	r0, r5
15480	ldr	r3, [r3]
15481	ldrh	r3, [r3, r5, lsl #1]
15482	cbz	r3, .L2271
15483	bl	INSERT_DATA_LIST
15484.L2270:
15485	movs	r3, #0
15486	strb	r3, [r4, #8]
15487	ldr	r3, .L2294+28
15488	cmp	r4, r3
15489	beq	.L2272
15490	ldr	r3, .L2294+32
15491	ldrh	r2, [r3]
15492	cmp	r2, #1
15493	beq	.L2272
15494	ldr	r3, .L2294+36
15495	ldrb	r3, [r3]	@ zero_extendqisi2
15496	cbz	r3, .L2273
15497.L2272:
15498	movs	r3, #1
15499	strb	r3, [r4, #8]
15500.L2274:
15501	ldr	r6, .L2294+40
15502	movw	r2, #65535
15503	ldrh	r0, [r6]
15504	cmp	r0, r2
15505	beq	.L2279
15506	cmp	r5, r0
15507	bne	.L2280
15508	ldr	r3, .L2294+24
15509	ldr	r3, [r3]
15510	ldrh	r3, [r3, r0, lsl #1]
15511	cbz	r3, .L2281
15512.L2280:
15513	bl	update_vpc_list
15514.L2281:
15515	movw	r3, #65535
15516	strh	r3, [r6]	@ movhi
15517.L2279:
15518	mov	r0, r4
15519	bl	allocate_data_superblock
15520	bl	l2p_flush
15521	movs	r0, #0
15522	bl	FtlEctTblFlush
15523	bl	FtlVpcTblFlush
15524.L2269:
15525	movs	r0, #0
15526	pop	{r4, r5, r6, pc}
15527.L2271:
15528	bl	INSERT_FREE_LIST
15529	b	.L2270
15530.L2273:
15531	ldr	r3, .L2294+44
15532	cmp	r4, r3
15533	bne	.L2274
15534	cmp	r2, #3
15535	beq	.L2276
15536	ldr	r2, .L2294+48
15537	ldr	r2, [r2]
15538	cmp	r2, #1
15539	bne	.L2277
15540.L2276:
15541	movs	r2, #1
15542	strb	r2, [r3, #8]
15543.L2277:
15544	ldr	r2, .L2294+52
15545	ldr	r2, [r2]
15546	cmp	r2, #0
15547	beq	.L2274
15548	ldr	r2, .L2294+56
15549	ldr	r2, [r2]
15550	cmp	r2, #39
15551	itt	ls
15552	movls	r2, #1
15553	strbls	r2, [r3, #8]
15554	b	.L2274
15555.L2295:
15556	.align	2
15557.L2294:
15558	.word	.LANCHOR40
15559	.word	.LANCHOR228
15560	.word	.LC5
15561	.word	.LC6
15562	.word	.LC7
15563	.word	.LANCHOR78
15564	.word	.LANCHOR85
15565	.word	.LANCHOR94
15566	.word	.LANCHOR44
15567	.word	.LANCHOR16
15568	.word	.LANCHOR136
15569	.word	.LANCHOR93
15570	.word	.LANCHOR163
15571	.word	.LANCHOR104
15572	.word	.LANCHOR175
15573	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
15574	.section	.text.FtlVendorPartRead,"ax",%progbits
15575	.align	1
15576	.global	FtlVendorPartRead
15577	.syntax unified
15578	.thumb
15579	.thumb_func
15580	.fpu softvfp
15581	.type	FtlVendorPartRead, %function
15582FtlVendorPartRead:
15583	@ args = 0, pretend = 0, frame = 56
15584	@ frame_needed = 0, uses_anonymous_args = 0
15585	ldr	r3, .L2306
15586	push	{r4, r5, r6, r7, r8, r10, fp, lr}
15587	mov	r10, r2
15588	adds	r2, r0, r1
15589	sub	sp, sp, #56
15590	mov	r7, r0
15591	mov	r6, r1
15592	ldrh	r3, [r3]
15593	cmp	r2, r3
15594	bhi	.L2305
15595	ldr	r3, .L2306+4
15596	mov	r8, #0
15597	ldr	fp, .L2306+28
15598	ldrh	r5, [r3]
15599	lsr	r5, r0, r5
15600	lsls	r3, r5, #2
15601	str	r3, [sp]
15602.L2298:
15603	cbnz	r6, .L2304
15604.L2296:
15605	mov	r0, r8
15606	add	sp, sp, #56
15607	@ sp needed
15608	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
15609.L2304:
15610	ldr	r3, .L2306+8
15611	mov	r0, r7
15612	ldr	r2, [sp]
15613	ldr	r3, [r3]
15614	ldr	r3, [r3, r2]
15615	ldr	r2, .L2306+12
15616	str	r3, [sp, #8]
15617	ldrh	r4, [r2]
15618	mov	r1, r4
15619	bl	__aeabi_uidivmod
15620	subs	r4, r4, r1
15621	ldr	r3, [sp, #8]
15622	uxth	r4, r4
15623	str	r1, [sp, #4]
15624	cmp	r6, r4
15625	it	cc
15626	uxthcc	r4, r6
15627	lsls	r2, r4, #9
15628	str	r2, [sp, #8]
15629	cmp	r3, #0
15630	beq	.L2300
15631	ldr	r2, [fp]
15632	add	r0, sp, #20
15633	str	r3, [sp, #24]
15634	str	r3, [sp, #12]
15635	str	r2, [sp, #28]
15636	movs	r2, #0
15637	str	r2, [sp, #32]
15638	movs	r2, #1
15639	mov	r1, r2
15640	bl	FlashReadPages
15641	ldr	r2, [sp, #20]
15642	ldr	r3, [sp, #12]
15643	adds	r2, r2, #1
15644	ldr	r2, .L2306+16
15645	it	eq
15646	moveq	r8, #-1
15647	ldr	r2, [r2]
15648	cmp	r2, #256
15649	bne	.L2302
15650	mov	r2, r3
15651	mov	r1, r5
15652	ldr	r0, .L2306+20
15653	bl	printf
15654	ldr	r2, [fp]
15655	mov	r1, r5
15656	ldr	r0, .L2306+24
15657	bl	FtlMapWritePage
15658.L2302:
15659	ldr	r1, [fp]
15660	lsls	r2, r4, #9
15661	ldr	r3, [sp, #4]
15662	mov	r0, r10
15663	add	r1, r1, r3, lsl #9
15664	bl	ftl_memcpy
15665.L2303:
15666	ldr	r3, [sp, #8]
15667	adds	r5, r5, #1
15668	subs	r6, r6, r4
15669	add	r7, r7, r4
15670	add	r10, r10, r3
15671	ldr	r3, [sp]
15672	adds	r3, r3, #4
15673	str	r3, [sp]
15674	b	.L2298
15675.L2300:
15676	lsls	r2, r4, #9
15677	mov	r1, r3
15678	mov	r0, r10
15679	bl	ftl_memset
15680	b	.L2303
15681.L2305:
15682	mov	r8, #-1
15683	b	.L2296
15684.L2307:
15685	.align	2
15686.L2306:
15687	.word	.LANCHOR50
15688	.word	.LANCHOR56
15689	.word	.LANCHOR202
15690	.word	.LANCHOR55
15691	.word	.LANCHOR211
15692	.word	.LC44
15693	.word	.LANCHOR224
15694	.word	.LANCHOR191
15695	.size	FtlVendorPartRead, .-FtlVendorPartRead
15696	.section	.text.FtlLoadEctTbl,"ax",%progbits
15697	.align	1
15698	.global	FtlLoadEctTbl
15699	.syntax unified
15700	.thumb
15701	.thumb_func
15702	.fpu softvfp
15703	.type	FtlLoadEctTbl, %function
15704FtlLoadEctTbl:
15705	@ args = 0, pretend = 0, frame = 0
15706	@ frame_needed = 0, uses_anonymous_args = 0
15707	push	{r3, r4, r5, lr}
15708	movs	r0, #64
15709	ldr	r4, .L2310
15710	ldr	r5, .L2310+4
15711	ldr	r2, [r4]
15712	ldrh	r1, [r5]
15713	bl	FtlVendorPartRead
15714	ldr	r3, [r4]
15715	ldr	r2, [r3]
15716	ldr	r3, .L2310+8
15717	cmp	r2, r3
15718	beq	.L2309
15719	ldr	r1, .L2310+12
15720	ldr	r0, .L2310+16
15721	bl	printf
15722	ldrh	r2, [r5]
15723	movs	r1, #0
15724	ldr	r0, [r4]
15725	lsls	r2, r2, #9
15726	bl	ftl_memset
15727.L2309:
15728	movs	r0, #0
15729	pop	{r3, r4, r5, pc}
15730.L2311:
15731	.align	2
15732.L2310:
15733	.word	.LANCHOR199
15734	.word	.LANCHOR198
15735	.word	1112818501
15736	.word	.LC45
15737	.word	.LC7
15738	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
15739	.section	.text.Ftl_load_ext_data,"ax",%progbits
15740	.align	1
15741	.global	Ftl_load_ext_data
15742	.syntax unified
15743	.thumb
15744	.thumb_func
15745	.fpu softvfp
15746	.type	Ftl_load_ext_data, %function
15747Ftl_load_ext_data:
15748	@ args = 0, pretend = 0, frame = 0
15749	@ frame_needed = 0, uses_anonymous_args = 0
15750	push	{r3, r4, r5, lr}
15751	movs	r1, #1
15752	ldr	r4, .L2317
15753	movs	r0, #0
15754	ldr	r5, .L2317+4
15755	mov	r2, r4
15756	bl	FtlVendorPartRead
15757	ldr	r3, [r4]
15758	cmp	r3, r5
15759	beq	.L2313
15760	mov	r2, #512
15761	movs	r1, #0
15762	mov	r0, r4
15763	bl	ftl_memset
15764	str	r5, [r4]
15765.L2313:
15766	ldr	r3, [r4]
15767	cmp	r3, r5
15768	ldr	r5, .L2317+8
15769	bne	.L2314
15770	ldr	r2, [r4, #88]
15771	ldr	r3, .L2317+12
15772	str	r2, [r3]
15773	ldr	r2, [r4, #92]
15774	ldr	r3, .L2317+16
15775	str	r2, [r3]
15776	ldr	r2, [r4, #8]
15777	ldr	r3, .L2317+20
15778	str	r2, [r3]
15779	ldr	r2, [r4, #12]
15780	ldr	r3, .L2317+24
15781	str	r2, [r3]
15782	ldr	r2, [r4, #16]
15783	ldr	r3, .L2317+28
15784	str	r2, [r3]
15785	ldr	r2, [r4, #20]
15786	ldr	r3, .L2317+32
15787	str	r2, [r3]
15788	ldr	r3, [r4, #28]
15789	ldr	r2, [r4, #32]
15790	str	r3, [r5]
15791	ldr	r3, .L2317+36
15792	str	r2, [r3]
15793	ldr	r2, [r4, #36]
15794	ldr	r3, .L2317+40
15795	str	r2, [r3]
15796	ldr	r2, [r4, #40]
15797	ldr	r3, .L2317+44
15798	str	r2, [r3]
15799	ldr	r2, [r4, #44]
15800	ldr	r3, .L2317+48
15801	str	r2, [r3]
15802	ldr	r2, [r4, #48]
15803	ldr	r3, .L2317+52
15804	str	r2, [r3]
15805	ldr	r2, [r4, #60]
15806	ldr	r3, .L2317+56
15807	str	r2, [r3]
15808.L2314:
15809	ldr	r2, .L2317+60
15810	movs	r3, #0
15811	ldr	r1, [r4, #68]
15812	str	r3, [r2]
15813	ldr	r2, .L2317+64
15814	cmp	r1, r2
15815	bne	.L2315
15816	ldr	r2, .L2317+68
15817	ldrb	r2, [r2]	@ zero_extendqisi2
15818	cbz	r2, .L2316
15819	str	r3, [r4, #68]
15820	bl	Ftl_save_ext_data
15821.L2315:
15822	ldr	r3, .L2317+72
15823	ldr	r1, .L2317+76
15824	ldrh	r2, [r3]
15825	ldr	r3, .L2317+80
15826	ldrh	r1, [r1]
15827	ldr	r0, [r3]
15828	ldr	r3, [r5]
15829	mla	r0, r0, r2, r3
15830	bl	__aeabi_uidiv
15831	ldr	r3, .L2317+84
15832	str	r0, [r3]
15833	pop	{r3, r4, r5, pc}
15834.L2316:
15835	ldr	r3, .L2317+88
15836	movs	r2, #1
15837	ldr	r1, .L2317+92
15838	ldr	r0, .L2317+96
15839	str	r2, [r3]
15840	bl	printf
15841	b	.L2315
15842.L2318:
15843	.align	2
15844.L2317:
15845	.word	.LANCHOR141
15846	.word	1179929683
15847	.word	.LANCHOR173
15848	.word	.LANCHOR225
15849	.word	.LANCHOR226
15850	.word	.LANCHOR166
15851	.word	.LANCHOR167
15852	.word	.LANCHOR171
15853	.word	.LANCHOR170
15854	.word	.LANCHOR81
15855	.word	.LANCHOR168
15856	.word	.LANCHOR169
15857	.word	.LANCHOR174
15858	.word	.LANCHOR175
15859	.word	.LANCHOR163
15860	.word	.LANCHOR162
15861	.word	305432421
15862	.word	.LANCHOR16
15863	.word	.LANCHOR48
15864	.word	.LANCHOR40
15865	.word	.LANCHOR172
15866	.word	.LANCHOR214
15867	.word	.LANCHOR104
15868	.word	.LC46
15869	.word	.LC7
15870	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
15871	.section	.text.FtlMapBlkWriteDumpData,"ax",%progbits
15872	.align	1
15873	.global	FtlMapBlkWriteDumpData
15874	.syntax unified
15875	.thumb
15876	.thumb_func
15877	.fpu softvfp
15878	.type	FtlMapBlkWriteDumpData, %function
15879FtlMapBlkWriteDumpData:
15880	@ args = 0, pretend = 0, frame = 0
15881	@ frame_needed = 0, uses_anonymous_args = 0
15882	push	{r3, r4, r5, r6, r7, r8, r10, lr}
15883	mov	r4, r0
15884	ldr	r3, [r0, #36]
15885	cmp	r3, #0
15886	beq	.L2319
15887	movs	r3, #0
15888	ldrh	r6, [r0, #6]
15889	str	r3, [r0, #36]
15890	ldr	r3, .L2333
15891	ldr	r10, [r0, #24]
15892	ldr	r3, [r3]
15893	cmp	r3, #0
15894	bne	.L2319
15895	ldr	r3, .L2333+4
15896	ldr	r5, .L2333+8
15897	ldr	r3, [r3]
15898	mov	r7, r5
15899	str	r3, [r5, #8]
15900	ldr	r3, .L2333+12
15901	ldr	r8, [r3]
15902	ldrh	r3, [r0, #2]
15903	str	r8, [r5, #12]
15904	cbz	r3, .L2323
15905	ldr	r2, .L2333+16
15906	ldrh	r2, [r2]
15907	subs	r2, r2, #1
15908	cmp	r3, r2
15909	bge	.L2323
15910	ldrh	r2, [r0]
15911	movw	r1, #65535
15912	cmp	r2, r1
15913	beq	.L2323
15914	ldr	r1, [r0, #12]
15915	subs	r3, r3, #1
15916	mov	r0, r5
15917	ldrh	r2, [r1, r2, lsl #1]
15918	orr	r3, r3, r2, lsl #10
15919	movs	r2, #1
15920	mov	r1, r2
15921	str	r3, [r5, #4]
15922	bl	FlashReadPages
15923	ldr	r3, [r5]
15924	adds	r3, r3, #1
15925	beq	.L2323
15926	ldr	r3, [r4, #24]
15927	ldrh	r1, [r8, #8]
15928	ldr	r2, [r3, r1, lsl #2]
15929	ldr	r3, [r5, #4]
15930	cmp	r2, r3
15931	bne	.L2323
15932	ldr	r2, [r5, #8]
15933.L2332:
15934	mov	r0, r4
15935	pop	{r3, r4, r5, r6, r7, r8, r10, lr}
15936	b	FtlMapWritePage
15937.L2323:
15938	subs	r6, r6, #1
15939	uxth	r6, r6
15940	ldr	r3, [r10, r6, lsl #2]
15941	str	r3, [r7, #4]
15942	cbz	r3, .L2324
15943	movs	r2, #1
15944	ldr	r0, .L2333+8
15945	mov	r1, r2
15946	bl	FlashReadPages
15947.L2325:
15948	ldr	r2, [r7, #8]
15949	mov	r1, r6
15950	b	.L2332
15951.L2324:
15952	ldr	r3, .L2333+20
15953	movs	r1, #255
15954	ldr	r0, [r7, #8]
15955	ldrh	r2, [r3]
15956	bl	ftl_memset
15957	b	.L2325
15958.L2319:
15959	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
15960.L2334:
15961	.align	2
15962.L2333:
15963	.word	.LANCHOR78
15964	.word	.LANCHOR190
15965	.word	.LANCHOR211
15966	.word	.LANCHOR195
15967	.word	.LANCHOR53
15968	.word	.LANCHOR57
15969	.size	FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
15970	.section	.text.FtlScanSysBlk,"ax",%progbits
15971	.align	1
15972	.global	FtlScanSysBlk
15973	.syntax unified
15974	.thumb
15975	.thumb_func
15976	.fpu softvfp
15977	.type	FtlScanSysBlk, %function
15978FtlScanSysBlk:
15979	@ args = 0, pretend = 0, frame = 32
15980	@ frame_needed = 0, uses_anonymous_args = 0
15981	push	{r4, r5, r6, r7, r8, r10, fp, lr}
15982	movs	r4, #0
15983	ldr	r5, .L2417
15984	sub	sp, sp, #32
15985	mov	r1, r4
15986	ldr	r3, .L2417+4
15987	ldr	r2, [r5]
15988	ldr	r6, .L2417+8
15989	strh	r4, [r3]	@ movhi
15990	ldr	r3, .L2417+12
15991	lsls	r2, r2, #2
15992	strh	r4, [r6]	@ movhi
15993	ldr	r7, .L2417+16
15994	ldr	r0, [r3]
15995	bl	ftl_memset
15996	ldr	r2, [r5]
15997	mov	r1, r4
15998	ldr	r3, .L2417+20
15999	lsls	r2, r2, #1
16000	ldr	r0, [r3]
16001	bl	ftl_memset
16002	ldrh	r2, [r7]
16003	mov	r1, r4
16004	ldr	r3, .L2417+24
16005	lsls	r2, r2, #2
16006	ldr	r0, [r3]
16007	bl	ftl_memset
16008	ldrh	r2, [r7]
16009	mov	r1, r4
16010	ldr	r3, .L2417+28
16011	lsls	r2, r2, #1
16012	ldr	r0, [r3]
16013	bl	ftl_memset
16014	movs	r2, #16
16015	movs	r1, #255
16016	ldr	r0, .L2417+32
16017	bl	ftl_memset
16018	ldr	r3, .L2417+36
16019	str	r6, [sp, #12]
16020	str	r5, [sp, #16]
16021	ldrh	r3, [r3]
16022	str	r3, [sp, #4]
16023.L2336:
16024	ldr	r3, .L2417+40
16025	ldr	r2, [sp, #4]
16026	ldrh	r3, [r3]
16027	cmp	r3, r2
16028	bls	.L2378
16029	ldr	r3, .L2417+44
16030	movs	r5, #0
16031	ldr	r1, .L2417+48
16032	mov	fp, r5
16033	movs	r7, #36
16034	ldrh	r8, [r3]
16035	ldr	r3, .L2417+52
16036	ldr	r2, [r1]
16037	ldr	r1, .L2417+56
16038	ldr	r6, [r3]
16039	ldr	r3, .L2417+60
16040	str	r2, [sp, #8]
16041	ldrh	r10, [r1]
16042	ldr	r3, [r3]
16043	ldr	r2, .L2417+64
16044	b	.L2379
16045.L2338:
16046	ldrb	r0, [r2, r5]	@ zero_extendqisi2
16047	ldr	r1, [sp, #4]
16048	str	r3, [sp, #28]
16049	str	r2, [sp, #24]
16050	bl	V2P_block
16051	str	r0, [sp, #20]
16052	bl	FtlBbmIsBadBlock
16053	ldr	r2, [sp, #24]
16054	ldr	r3, [sp, #28]
16055	cbnz	r0, .L2337
16056	ldr	r1, [sp, #20]
16057	mla	r0, r7, fp, r6
16058	ldr	r4, [sp, #8]
16059	lsls	r1, r1, #10
16060	str	r3, [r0, #8]
16061	str	r1, [r0, #4]
16062	mul	r1, r10, fp
16063	bic	r1, r1, #3
16064	add	r1, r1, r4
16065	str	r1, [r0, #12]
16066	add	r1, fp, #1
16067	uxth	fp, r1
16068.L2337:
16069	adds	r5, r5, #1
16070.L2379:
16071	uxth	r1, r5
16072	cmp	r8, r1
16073	bhi	.L2338
16074	cmp	fp, #0
16075	bne	.L2339
16076.L2377:
16077	ldr	r3, [sp, #4]
16078	adds	r3, r3, #1
16079	uxth	r3, r3
16080	str	r3, [sp, #4]
16081	b	.L2336
16082.L2339:
16083	movs	r7, #0
16084	movs	r2, #1
16085	mov	r1, fp
16086	mov	r0, r6
16087	bl	FlashReadPages
16088.L2340:
16089	uxth	r3, r7
16090	cmp	fp, r3
16091	bls	.L2377
16092	ldr	r3, .L2417+52
16093	mov	r8, #36
16094	mul	r8, r8, r7
16095	ldr	r3, [r3]
16096	add	r2, r3, r8
16097	ldr	r3, [r3, r8]
16098	ldr	r5, [r2, #4]
16099	ldr	r6, [r2, #12]
16100	adds	r3, r3, #1
16101	ubfx	r5, r5, #10, #16
16102	bne	.L2343
16103	mov	r10, #16
16104.L2345:
16105	ldr	r3, .L2417+52
16106	movs	r2, #1
16107	mov	r1, r2
16108	ldr	r0, [r3]
16109	add	r0, r0, r8
16110	ldr	r3, [r0, #4]
16111	adds	r3, r3, #1
16112	str	r3, [r0, #4]
16113	bl	FlashReadPages
16114	ldrh	r2, [r6]
16115	movw	r3, #65535
16116	cmp	r2, r3
16117	ldr	r3, .L2417+52
16118	ldr	r3, [r3]
16119	bne	.L2342
16120	mov	r2, #-1
16121	str	r2, [r3, r8]
16122	ldr	r3, .L2417+52
16123	ldr	r3, [r3]
16124	ldr	r3, [r3, r8]
16125	cmp	r3, r2
16126	beq	.L2344
16127.L2343:
16128	ldr	r3, .L2417+68
16129	ldr	r2, [r3]
16130	ldr	r3, [r6, #4]
16131	adds	r1, r2, #1
16132	beq	.L2346
16133	cmp	r2, r3
16134	bhi	.L2347
16135.L2346:
16136	adds	r2, r3, #1
16137	ittt	ne
16138	ldrne	r1, .L2417+68
16139	addne	r2, r3, #1
16140	strne	r2, [r1]
16141.L2347:
16142	ldrh	r2, [r6]
16143	movw	r1, #61604
16144	cmp	r2, r1
16145	beq	.L2349
16146	bhi	.L2350
16147	movw	r3, #61574
16148	cmp	r2, r3
16149	beq	.L2351
16150.L2348:
16151	adds	r7, r7, #1
16152	b	.L2340
16153.L2342:
16154	ldr	r3, [r3, r8]
16155	adds	r3, r3, #1
16156	bne	.L2343
16157	add	r10, r10, #-1
16158	uxth	r10, r10
16159	cmp	r10, #0
16160	bne	.L2345
16161.L2344:
16162	ldr	r3, .L2417+72
16163	ldrb	r1, [r3]	@ zero_extendqisi2
16164	cbnz	r1, .L2416
16165.L2375:
16166	mov	r0, r5
16167	bl	FtlFreeSysBlkQueueIn
16168	b	.L2348
16169.L2350:
16170	movw	r3, #61634
16171	cmp	r2, r3
16172	beq	.L2352
16173	movw	r3, #65535
16174	cmp	r2, r3
16175	bne	.L2348
16176.L2416:
16177	movs	r1, #0
16178	b	.L2375
16179.L2352:
16180	ldr	r3, .L2417+8
16181	ldrh	r2, [r3]
16182	ldr	r3, .L2417
16183	ldr	r3, [r3]
16184	cmp	r2, r3
16185	bls	.L2354
16186	ldr	r1, .L2417+76
16187	movw	r2, #1469
16188	ldr	r0, .L2417+80
16189	bl	printf
16190	ldr	r1, .L2417+84
16191	ldr	r0, .L2417+88
16192	bl	printf
16193.L2354:
16194	ldr	r3, [sp, #16]
16195	ldr	r2, [sp, #12]
16196	ldr	r1, [r3]
16197	ldrh	r0, [r2]
16198	ldr	r2, .L2417+12
16199	uxth	r10, r1
16200	ldr	ip, [r2]
16201	add	r3, r10, #-1
16202	sub	r10, r10, r0
16203	add	r10, r10, #-1
16204	sxth	r3, r3
16205	sxth	r10, r10
16206.L2355:
16207	cmp	r3, r10
16208	bgt	.L2361
16209	cmp	r3, #0
16210	bge	.L2394
16211	b	.L2348
16212.L2361:
16213	ldr	r2, [ip, r3, lsl #2]
16214	add	r8, ip, r3, lsl #2
16215	ldr	r4, [r6, #4]
16216	cmp	r4, r2
16217	bls	.L2356
16218	ldr	r2, [ip]
16219	cbnz	r2, .L2357
16220	cmp	r1, r0
16221	ittt	ne
16222	ldrne	r2, .L2417+8
16223	addne	r0, r0, #1
16224	strhne	r0, [r2]	@ movhi
16225.L2357:
16226	ldr	r2, .L2417+20
16227	uxth	r10, r3
16228	ldr	r0, [r2]
16229	movs	r2, #0
16230.L2358:
16231	uxth	lr, r2
16232	sxth	r1, r2
16233	cmp	r10, lr
16234	bhi	.L2359
16235	ldr	r2, [r6, #4]
16236	cmp	r3, #0
16237	str	r2, [r8]
16238	strh	r5, [r0, r3, lsl #1]	@ movhi
16239	blt	.L2348
16240	ldr	r2, .L2417+8
16241	ldrh	r0, [r2]
16242	ldr	r2, .L2417
16243	ldr	r2, [r2]
16244	subs	r2, r2, r0
16245	subs	r2, r2, #1
16246	sxth	r2, r2
16247	cmp	r3, r2
16248	bgt	.L2348
16249.L2394:
16250	ldr	r2, .L2417+8
16251	adds	r0, r0, #1
16252	strh	r0, [r2]	@ movhi
16253	ldr	r2, [r6, #4]
16254	str	r2, [ip, r3, lsl #2]
16255	ldr	r2, .L2417+20
16256.L2414:
16257	ldr	r2, [r2]
16258	strh	r5, [r2, r3, lsl #1]	@ movhi
16259	b	.L2348
16260.L2359:
16261	add	lr, ip, r1, lsl #2
16262	adds	r2, r2, #1
16263	ldr	r4, [lr, #4]
16264	add	lr, r0, r1, lsl #1
16265	ldrh	lr, [lr, #2]
16266	str	r4, [ip, r1, lsl #2]
16267	strh	lr, [r0, r1, lsl #1]	@ movhi
16268	b	.L2358
16269.L2356:
16270	subs	r3, r3, #1
16271	sxth	r3, r3
16272	b	.L2355
16273.L2418:
16274	.align	2
16275.L2417:
16276	.word	.LANCHOR64
16277	.word	.LANCHOR70
16278	.word	.LANCHOR131
16279	.word	.LANCHOR133
16280	.word	.LANCHOR61
16281	.word	.LANCHOR132
16282	.word	.LANCHOR201
16283	.word	.LANCHOR71
16284	.word	.LANCHOR218
16285	.word	.LANCHOR40
16286	.word	.LANCHOR41
16287	.word	.LANCHOR38
16288	.word	.LANCHOR108
16289	.word	.LANCHOR186
16290	.word	.LANCHOR58
16291	.word	.LANCHOR107
16292	.word	.LANCHOR47
16293	.word	.LANCHOR164
16294	.word	.LANCHOR16
16295	.word	.LANCHOR229
16296	.word	.LC5
16297	.word	.LC6
16298	.word	.LC7
16299.L2351:
16300	ldr	r8, .L2419+20
16301	ldr	r10, .L2419+28
16302	ldrh	r2, [r8]
16303	ldrh	r3, [r10]
16304	cmp	r2, r3
16305	bls	.L2364
16306	ldr	r1, .L2419
16307	movw	r2, #1513
16308	ldr	r0, .L2419+4
16309	bl	printf
16310	ldr	r1, .L2419+8
16311	ldr	r0, .L2419+12
16312	bl	printf
16313.L2364:
16314	ldr	r2, .L2419+16
16315	ldrh	lr, [r10]
16316	ldrh	ip, [r8]
16317	ldr	r0, [r2]
16318	add	r10, lr, #-1
16319	sxth	r3, r10
16320	sub	r10, r10, ip
16321.L2365:
16322	cmp	r3, r10
16323	ble	.L2370
16324	ldr	r1, [r6, #4]
16325	add	r8, r0, r3, lsl #2
16326	ldr	r2, [r0, r3, lsl #2]
16327	cmp	r1, r2
16328	bls	.L2366
16329	ldr	r2, [r0]
16330	cbnz	r2, .L2367
16331	cmp	lr, ip
16332	ittt	ne
16333	ldrne	r2, .L2419+20
16334	addne	ip, ip, #1
16335	strhne	ip, [r2]	@ movhi
16336.L2367:
16337	ldr	r2, .L2419+24
16338	uxth	r10, r3
16339	ldr	ip, [r2]
16340	movs	r2, #0
16341.L2368:
16342	uxth	lr, r2
16343	sxth	r1, r2
16344	cmp	r10, lr
16345	bhi	.L2369
16346	ldr	r2, [r6, #4]
16347	str	r2, [r8]
16348	strh	r5, [ip, r3, lsl #1]	@ movhi
16349.L2370:
16350	cmp	r3, #0
16351	blt	.L2348
16352	ldr	r2, .L2419+28
16353	ldr	ip, .L2419+20
16354	ldrh	r2, [r2]
16355	ldrh	r1, [ip]
16356	subs	r2, r2, #1
16357	subs	r2, r2, r1
16358	sxth	r2, r2
16359	cmp	r3, r2
16360	bgt	.L2348
16361	ldr	r2, [r6, #4]
16362	adds	r1, r1, #1
16363	strh	r1, [ip]	@ movhi
16364	str	r2, [r0, r3, lsl #2]
16365	ldr	r2, .L2419+24
16366	b	.L2414
16367.L2369:
16368	add	lr, r0, r1, lsl #2
16369	adds	r2, r2, #1
16370	ldr	r4, [lr, #4]
16371	add	lr, ip, r1, lsl #1
16372	ldrh	lr, [lr, #2]
16373	str	r4, [r0, r1, lsl #2]
16374	strh	lr, [ip, r1, lsl #1]	@ movhi
16375	b	.L2368
16376.L2366:
16377	subs	r3, r3, #1
16378	sxth	r3, r3
16379	b	.L2365
16380.L2349:
16381	ldr	r8, .L2419+48
16382	movw	r2, #65535
16383	ldrh	r1, [r8]
16384	cmp	r1, r2
16385	bne	.L2372
16386.L2415:
16387	strh	r5, [r8]	@ movhi
16388	str	r3, [r8, #8]
16389	b	.L2348
16390.L2372:
16391	ldrh	r0, [r8, #4]
16392	cmp	r0, r2
16393	beq	.L2373
16394	movs	r1, #1
16395	bl	FtlFreeSysBlkQueueIn
16396.L2373:
16397	ldr	r3, [r6, #4]
16398	ldr	r2, [r8, #8]
16399	cmp	r2, r3
16400	bcs	.L2374
16401	ldrh	r2, [r8]
16402	strh	r2, [r8, #4]	@ movhi
16403	b	.L2415
16404.L2374:
16405	strh	r5, [r8, #4]	@ movhi
16406	b	.L2348
16407.L2378:
16408	ldr	r3, .L2419+32
16409	ldr	r2, [r3]
16410	ldrh	r3, [r2]
16411	cbz	r3, .L2380
16412.L2383:
16413	ldr	r3, .L2419+24
16414	ldr	r4, [r3]
16415	ldrh	r2, [r4]
16416	cmp	r2, #0
16417	beq	.L2381
16418.L2382:
16419	ldr	r3, .L2419+36
16420	ldrh	r2, [r3]
16421	ldr	r3, .L2419+40
16422	ldr	r3, [r3]
16423	cmp	r2, r3
16424	bls	.L2413
16425	ldr	r1, .L2419
16426	movw	r2, #1631
16427	ldr	r0, .L2419+4
16428	bl	printf
16429	ldr	r1, .L2419+8
16430	ldr	r0, .L2419+12
16431	bl	printf
16432.L2413:
16433	movs	r0, #0
16434	add	sp, sp, #32
16435	@ sp needed
16436	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
16437.L2380:
16438	ldr	r1, .L2419+36
16439	ldrh	r1, [r1]
16440	cmp	r1, #0
16441	beq	.L2383
16442	ldr	r5, .L2419+40
16443	ldr	r0, [r5]
16444.L2384:
16445	sxth	r1, r3
16446	cmp	r1, r0
16447	bcs	.L2383
16448	ldrh	r4, [r2, r1, lsl #1]
16449	adds	r3, r3, #1
16450	cmp	r4, #0
16451	beq	.L2384
16452	ldr	r3, .L2419+44
16453	movs	r6, #0
16454	ldr	r0, [r3]
16455	mov	r3, r1
16456.L2385:
16457	ldr	r4, [r5]
16458	cmp	r3, r4
16459	bcs	.L2383
16460	ldrh	r7, [r2, r3, lsl #1]
16461	subs	r4, r3, r1
16462	strh	r7, [r2, r4, lsl #1]	@ movhi
16463	ldr	r7, [r0, r3, lsl #2]
16464	str	r7, [r0, r4, lsl #2]
16465	strh	r6, [r2, r3, lsl #1]	@ movhi
16466	adds	r3, r3, #1
16467	sxth	r3, r3
16468	b	.L2385
16469.L2381:
16470	ldr	r3, .L2419+20
16471	ldrh	r3, [r3]
16472	cmp	r3, #0
16473	beq	.L2382
16474	ldr	r5, .L2419+28
16475	ldrh	r1, [r5]
16476.L2390:
16477	sxth	r3, r2
16478	cmp	r3, r1
16479	mov	r6, r3
16480	bge	.L2382
16481	ldrh	r0, [r4, r3, lsl #1]
16482	adds	r2, r2, #1
16483	cmp	r0, #0
16484	beq	.L2390
16485	ldr	r2, .L2419+16
16486	movs	r0, #0
16487	ldr	r2, [r2]
16488.L2391:
16489	ldrh	r1, [r5]
16490	cmp	r3, r1
16491	bge	.L2382
16492	ldrh	r7, [r4, r3, lsl #1]
16493	subs	r1, r3, r6
16494	strh	r7, [r4, r1, lsl #1]	@ movhi
16495	ldr	r7, [r2, r3, lsl #2]
16496	str	r7, [r2, r1, lsl #2]
16497	adds	r1, r3, #1
16498	strh	r0, [r4, r3, lsl #1]	@ movhi
16499	sxth	r3, r1
16500	b	.L2391
16501.L2420:
16502	.align	2
16503.L2419:
16504	.word	.LANCHOR229
16505	.word	.LC5
16506	.word	.LC6
16507	.word	.LC7
16508	.word	.LANCHOR201
16509	.word	.LANCHOR70
16510	.word	.LANCHOR71
16511	.word	.LANCHOR61
16512	.word	.LANCHOR132
16513	.word	.LANCHOR131
16514	.word	.LANCHOR64
16515	.word	.LANCHOR133
16516	.word	.LANCHOR218
16517	.size	FtlScanSysBlk, .-FtlScanSysBlk
16518	.section	.text.FtlLoadSysInfo,"ax",%progbits
16519	.align	1
16520	.global	FtlLoadSysInfo
16521	.syntax unified
16522	.thumb
16523	.thumb_func
16524	.fpu softvfp
16525	.type	FtlLoadSysInfo, %function
16526FtlLoadSysInfo:
16527	@ args = 0, pretend = 0, frame = 16
16528	@ frame_needed = 0, uses_anonymous_args = 0
16529	push	{r4, r5, r6, r7, r8, r10, fp, lr}
16530	movs	r1, #0
16531	ldr	r7, .L2455
16532	sub	sp, sp, #40
16533	ldr	r6, .L2455+4
16534	ldr	r3, [r7]
16535	ldr	r4, .L2455+8
16536	ldr	r8, .L2455+52
16537	ldrh	r2, [r6]
16538	ldr	r5, .L2455+12
16539	str	r3, [r4, #8]
16540	ldr	r3, [r8]
16541	lsls	r2, r2, #1
16542	ldr	r0, [r5]
16543	str	r3, [r4, #12]
16544	bl	ftl_memset
16545	ldr	r3, .L2455+16
16546	movw	r2, #65535
16547	str	r8, [sp, #24]
16548	str	r5, [sp, #28]
16549	ldrh	r0, [r3]
16550	mov	fp, r3
16551	cmp	r0, r2
16552	bne	.L2422
16553.L2434:
16554	mov	r0, #-1
16555.L2421:
16556	add	sp, sp, #40
16557	@ sp needed
16558	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
16559.L2422:
16560	movs	r1, #1
16561	bl	FtlGetLastWrittenPage
16562	ldrsh	r10, [fp]
16563	sxth	r5, r0
16564	adds	r0, r0, #1
16565	strh	r0, [fp, #2]	@ movhi
16566.L2424:
16567	cmp	r5, #0
16568	bge	.L2430
16569	movw	r2, #1708
16570	ldr	r1, .L2455+20
16571	ldr	r0, .L2455+24
16572	bl	printf
16573	ldr	r1, .L2455+28
16574	ldr	r0, .L2455+32
16575	bl	printf
16576	b	.L2429
16577.L2430:
16578	orr	r3, r5, r10, lsl #10
16579	movs	r2, #1
16580	mov	r1, r2
16581	ldr	r0, .L2455+8
16582	str	r3, [r4, #4]
16583	ldr	r3, [r7]
16584	str	r3, [r4, #8]
16585	bl	FlashReadPages
16586	ldr	r3, .L2455+36
16587	ldrb	r3, [r3]	@ zero_extendqisi2
16588	cmp	r3, #0
16589	beq	.L2425
16590	ldr	r8, [r4, #12]
16591	ldr	r3, [r8, #12]
16592	str	r3, [sp, #36]
16593	cmp	r3, #0
16594	beq	.L2425
16595	ldr	r2, [r4, #8]
16596	ldr	r1, .L2455+40
16597	mov	r0, r2
16598	str	r2, [sp, #32]
16599	ldrh	r1, [r1]
16600	bl	js_hash
16601	ldr	r3, [sp, #36]
16602	cmp	r3, r0
16603	beq	.L2425
16604	cmp	r5, #0
16605	bne	.L2426
16606	ldr	r2, .L2455+16
16607	ldrh	r1, [r2, #4]
16608	cmp	r10, r1
16609	beq	.L2426
16610	ldrh	r1, [r2]
16611	ldr	r2, [sp, #32]
16612	ldr	r0, .L2455+44
16613	ldr	r2, [r2]
16614	str	r3, [sp, #12]
16615	str	r2, [sp, #16]
16616	ldr	r3, [r8, #8]
16617	str	r3, [sp, #8]
16618	ldr	r3, [r8, #4]
16619	str	r3, [sp, #4]
16620	ldr	r3, [r8]
16621	str	r3, [sp]
16622	ldm	r4, {r2, r3}
16623	bl	printf
16624	ldr	r3, .L2455+16
16625	ldrsh	r10, [r3, #4]
16626	ldr	r3, .L2455+48
16627	ldrh	r5, [r3]
16628.L2428:
16629	subs	r5, r5, #1
16630	sxth	r5, r5
16631	b	.L2424
16632.L2456:
16633	.align	2
16634.L2455:
16635	.word	.LANCHOR189
16636	.word	.LANCHOR40
16637	.word	.LANCHOR211
16638	.word	.LANCHOR85
16639	.word	.LANCHOR218
16640	.word	.LANCHOR230
16641	.word	.LC5
16642	.word	.LC6
16643	.word	.LC7
16644	.word	.LANCHOR2
16645	.word	.LANCHOR57
16646	.word	.LC47
16647	.word	.LANCHOR53
16648	.word	.LANCHOR195
16649.L2426:
16650	mov	r3, #-1
16651	str	r3, [r4]
16652.L2425:
16653	ldr	r3, [r4]
16654	adds	r3, r3, #1
16655	beq	.L2428
16656	ldr	r3, [r7]
16657	ldr	r2, .L2457
16658	ldr	r3, [r3]
16659	cmp	r3, r2
16660	bne	.L2428
16661	ldr	r3, [sp, #24]
16662	ldr	r3, [r3]
16663	ldrh	r2, [r3]
16664	movw	r3, #61604
16665	cmp	r2, r3
16666	bne	.L2428
16667.L2429:
16668	ldr	r2, .L2457+4
16669	ldrh	r3, [r6]
16670	ldrh	r2, [r2]
16671	adds	r3, r3, #24
16672	cmp	r2, r3, lsl #1
16673	bcs	.L2432
16674	ldr	r1, .L2457+8
16675	movw	r2, #1710
16676	ldr	r0, .L2457+12
16677	bl	printf
16678	ldr	r1, .L2457+16
16679	ldr	r0, .L2457+20
16680	bl	printf
16681.L2432:
16682	movs	r2, #48
16683	ldr	r1, [r4, #8]
16684	ldr	r0, .L2457+24
16685	bl	ftl_memcpy
16686	ldrh	r2, [r6]
16687	ldr	r3, [sp, #28]
16688	ldr	r1, [r4, #8]
16689	lsls	r2, r2, #1
16690	ldr	r0, [r3]
16691	adds	r1, r1, #48
16692	bl	ftl_memcpy
16693	ldrh	r1, [r6]
16694	ldr	r3, [r4, #8]
16695	lsrs	r2, r1, #3
16696	lsls	r1, r1, #1
16697	adds	r1, r1, #51
16698	adds	r2, r2, #4
16699	bic	r1, r1, #3
16700	add	r1, r1, r3
16701	ldr	r3, .L2457+28
16702	ldr	r0, [r3]
16703	bl	ftl_memcpy
16704	ldr	r3, .L2457+32
16705	ldrh	r3, [r3]
16706	cbz	r3, .L2433
16707	ldrh	r1, [r6]
16708	ldr	r3, .L2457+36
16709	ldrh	r2, [r3]
16710	lsrs	r3, r1, #3
16711	add	r3, r3, r1, lsl #1
16712	ldr	r1, [r4, #8]
16713	adds	r3, r3, #52
16714	lsls	r2, r2, #2
16715	ubfx	r3, r3, #2, #14
16716	add	r1, r1, r3, lsl #2
16717	ldr	r3, .L2457+40
16718	ldr	r0, [r3]
16719	bl	ftl_memcpy
16720.L2433:
16721	ldr	r4, .L2457+24
16722	ldr	r3, .L2457
16723	ldr	r2, [r4]
16724	cmp	r2, r3
16725	bne	.L2434
16726	ldr	r3, .L2457+44
16727	ldrb	r2, [r4, #10]	@ zero_extendqisi2
16728	ldrh	r5, [r4, #8]
16729	ldrh	r3, [r3]
16730	strh	r5, [fp, #6]	@ movhi
16731	cmp	r2, r3
16732	bne	.L2434
16733	ldr	r3, .L2457+48
16734	ldr	r2, .L2457+52
16735	str	r5, [r3]
16736	ldr	r3, .L2457+56
16737	ldrh	r3, [r3]
16738	muls	r3, r5, r3
16739	str	r3, [r2]
16740	ldr	r2, .L2457+60
16741	ldrh	r2, [r2]
16742	muls	r3, r2, r3
16743	ldr	r2, .L2457+64
16744	str	r3, [r2]
16745	ldr	r3, .L2457+68
16746	ldr	r6, [r3]
16747	ldr	r3, .L2457+72
16748	ldrh	r0, [r3, #6]
16749	ldr	r3, .L2457+76
16750	subs	r0, r6, r0
16751	ldrh	r1, [r3]
16752	subs	r0, r0, r5
16753	bl	__aeabi_uidiv
16754	ldr	r3, .L2457+80
16755	cmp	r5, r6
16756	strh	r0, [r3]	@ movhi
16757	bls	.L2435
16758	ldr	r1, .L2457+8
16759	movw	r2, #1739
16760	ldr	r0, .L2457+12
16761	bl	printf
16762	ldr	r1, .L2457+16
16763	ldr	r0, .L2457+20
16764	bl	printf
16765.L2435:
16766	ldrh	r2, [r4, #16]
16767	ldr	r3, .L2457+84
16768	ldrh	ip, [r4, #14]
16769	ldr	r7, .L2457+88
16770	lsrs	r1, r2, #6
16771	and	r2, r2, #63
16772	strb	r2, [r3, #6]
16773	ldrb	r2, [r4, #11]	@ zero_extendqisi2
16774	strh	r1, [r3, #2]	@ movhi
16775	ldr	r1, .L2457+92
16776	strb	r2, [r3, #8]
16777	ldrh	r2, [r4, #18]
16778	strh	ip, [r3]	@ movhi
16779	movw	r3, #65535
16780	strh	r3, [r7]	@ movhi
16781	movs	r3, #0
16782	strh	r2, [r1]	@ movhi
16783	ldrh	r2, [r4, #20]
16784	strh	r3, [r7, #2]	@ movhi
16785	strb	r3, [r7, #6]
16786	strb	r3, [r7, #8]
16787	lsrs	r5, r2, #6
16788	and	r2, r2, #63
16789	strb	r2, [r1, #6]
16790	ldrb	r2, [r4, #12]	@ zero_extendqisi2
16791	strh	r5, [r1, #2]	@ movhi
16792	ldrh	r5, [r4, #22]
16793	strb	r2, [r1, #8]
16794	ldr	r2, .L2457+96
16795	strh	r5, [r2]	@ movhi
16796	ldrh	r5, [r4, #24]
16797	lsrs	r6, r5, #6
16798	and	r5, r5, #63
16799	strb	r5, [r2, #6]
16800	ldrb	r5, [r4, #13]	@ zero_extendqisi2
16801	strh	r6, [r2, #2]	@ movhi
16802	ldr	r6, [r4, #32]
16803	strb	r5, [r2, #8]
16804	ldr	r5, .L2457+100
16805	str	r3, [r5]
16806	ldr	r5, .L2457+104
16807	str	r3, [r5]
16808	ldr	r5, .L2457+108
16809	str	r3, [r5]
16810	ldr	r5, .L2457+112
16811	str	r3, [r5]
16812	ldr	r5, .L2457+116
16813	str	r6, [r5]
16814	mov	r6, r1
16815	ldr	r5, .L2457+120
16816	str	r3, [r5]
16817	ldr	r5, .L2457+124
16818	str	r3, [r5]
16819	ldr	r5, .L2457+128
16820	ldr	lr, [r4, #40]
16821	str	r3, [r5]
16822	ldr	r3, .L2457+132
16823	ldr	r5, [r3]
16824	cmp	lr, r5
16825	mov	r5, r2
16826	it	hi
16827	strhi	lr, [r3]
16828	ldr	r3, .L2457+136
16829	ldr	r2, [r4, #36]
16830	ldr	r1, [r3]
16831	cmp	r2, r1
16832	it	hi
16833	strhi	r2, [r3]
16834	movw	r3, #65535
16835	cmp	ip, r3
16836	beq	.L2438
16837	ldr	r0, .L2457+84
16838	bl	make_superblock
16839.L2438:
16840	ldrh	r2, [r6]
16841	movw	r3, #65535
16842	cmp	r2, r3
16843	beq	.L2439
16844	ldr	r0, .L2457+92
16845	bl	make_superblock
16846.L2439:
16847	ldrh	r2, [r5]
16848	movw	r3, #65535
16849	cmp	r2, r3
16850	beq	.L2440
16851	ldr	r0, .L2457+96
16852	bl	make_superblock
16853.L2440:
16854	ldrh	r2, [r7]
16855	movw	r3, #65535
16856	cmp	r2, r3
16857	beq	.L2441
16858	ldr	r0, .L2457+88
16859	bl	make_superblock
16860.L2441:
16861	movs	r0, #0
16862	b	.L2421
16863.L2458:
16864	.align	2
16865.L2457:
16866	.word	1179929683
16867	.word	.LANCHOR57
16868	.word	.LANCHOR230
16869	.word	.LC5
16870	.word	.LC6
16871	.word	.LC7
16872	.word	.LANCHOR82
16873	.word	.LANCHOR1
16874	.word	.LANCHOR69
16875	.word	.LANCHOR66
16876	.word	.LANCHOR203
16877	.word	.LANCHOR45
16878	.word	.LANCHOR231
16879	.word	.LANCHOR74
16880	.word	.LANCHOR52
16881	.word	.LANCHOR55
16882	.word	.LANCHOR68
16883	.word	.LANCHOR42
16884	.word	.LANCHOR76
16885	.word	.LANCHOR38
16886	.word	.LANCHOR232
16887	.word	.LANCHOR93
16888	.word	.LANCHOR213
16889	.word	.LANCHOR94
16890	.word	.LANCHOR95
16891	.word	.LANCHOR166
16892	.word	.LANCHOR167
16893	.word	.LANCHOR171
16894	.word	.LANCHOR170
16895	.word	.LANCHOR172
16896	.word	.LANCHOR173
16897	.word	.LANCHOR174
16898	.word	.LANCHOR169
16899	.word	.LANCHOR164
16900	.word	.LANCHOR165
16901	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
16902	.section	.text.FtlDumpBlockInfo,"ax",%progbits
16903	.align	1
16904	.global	FtlDumpBlockInfo
16905	.syntax unified
16906	.thumb
16907	.thumb_func
16908	.fpu softvfp
16909	.type	FtlDumpBlockInfo, %function
16910FtlDumpBlockInfo:
16911	@ args = 0, pretend = 0, frame = 64
16912	@ frame_needed = 0, uses_anonymous_args = 0
16913	push	{r4, r5, r6, r7, r8, r10, fp, lr}
16914	ubfx	r0, r0, #10, #16
16915	ldr	r4, .L2471
16916	sub	sp, sp, #88
16917	mov	r8, r1
16918	ldrh	r3, [r4]
16919	str	r3, [sp, #24]
16920	bl	P2V_block_in_plane
16921	ldr	r1, .L2471+4
16922	mov	r6, r0
16923	ldr	r0, .L2471+8
16924	bl	printf
16925	ldr	r3, .L2471+12
16926	mov	r1, r6
16927	ldr	r0, .L2471+16
16928	ldr	r3, [r3]
16929	ldrh	r2, [r3, r6, lsl #1]
16930	bl	printf
16931	add	r0, sp, #88
16932	strh	r6, [r0, #-48]!	@ movhi
16933	bl	make_superblock
16934	ldr	r3, .L2471+20
16935	ldrb	r5, [r3]	@ zero_extendqisi2
16936	cbz	r5, .L2460
16937	cmp	r8, #0
16938	bne	.L2469
16939	mov	r0, r6
16940	bl	ftl_get_blk_mode
16941	cmp	r0, #1
16942	mov	r5, r0
16943	bne	.L2460
16944	ldr	r3, .L2471+24
16945	ldrh	r3, [r3]
16946	str	r3, [sp, #24]
16947.L2460:
16948	movs	r6, #0
16949	ldrh	r3, [r4]
16950	ldr	r2, [sp, #24]
16951	mov	r1, r5
16952	ldr	r0, .L2471+28
16953	bl	printf
16954.L2461:
16955	ldr	r3, .L2471+32
16956	movs	r2, #0
16957	add	ip, sp, #54
16958	mov	r4, r2
16959	movw	r10, #65535
16960	mov	fp, #36
16961	ldrh	lr, [r3]
16962	ldr	r3, .L2471+36
16963	ldr	r0, [r3]
16964	ldr	r3, .L2471+40
16965	ldr	r3, [r3]
16966	str	r3, [sp, #28]
16967	ldr	r3, .L2471+44
16968	ldrh	r3, [r3]
16969	str	r3, [sp, #32]
16970	ldr	r3, .L2471+48
16971	ldr	r3, [r3]
16972	str	r3, [sp, #36]
16973	ldr	r3, .L2471+52
16974	ldrh	r8, [r3]
16975.L2462:
16976	uxth	r3, r2
16977	cmp	lr, r3
16978	bhi	.L2464
16979	ldr	fp, .L2471+56
16980	mov	r8, #0
16981	mov	r10, #36
16982	mov	r2, r5
16983	mov	r1, r4
16984	bl	FlashReadPages
16985.L2465:
16986	uxth	r3, r8
16987	cmp	r4, r3
16988	bhi	.L2466
16989	adds	r6, r6, #1
16990	ldr	r3, [sp, #24]
16991	uxth	r6, r6
16992	cmp	r3, r6
16993	bne	.L2461
16994.L2467:
16995	movs	r0, #0
16996	add	sp, sp, #88
16997	@ sp needed
16998	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
16999.L2469:
17000	movs	r5, #0
17001	b	.L2460
17002.L2464:
17003	ldrh	r3, [ip, #2]!
17004	cmp	r3, r10
17005	beq	.L2463
17006	mla	r1, fp, r4, r0
17007	ldr	r7, [sp, #28]
17008	orr	r3, r6, r3, lsl #10
17009	str	r3, [r1, #4]
17010	ldr	r3, [sp, #32]
17011	muls	r3, r4, r3
17012	bic	r3, r3, #3
17013	add	r3, r3, r7
17014	ldr	r7, [sp, #36]
17015	str	r3, [r1, #8]
17016	mul	r3, r8, r4
17017	adds	r4, r4, #1
17018	uxth	r4, r4
17019	bic	r3, r3, #3
17020	add	r3, r3, r7
17021	str	r3, [r1, #12]
17022.L2463:
17023	adds	r2, r2, #1
17024	b	.L2462
17025.L2466:
17026	ldr	r3, .L2471+36
17027	mul	r0, r10, r8
17028	ldrh	r1, [sp, #40]
17029	add	r8, r8, #1
17030	ldr	ip, [r3]
17031	add	r2, ip, r0
17032	ldr	lr, [r2, #8]
17033	ldr	r3, [r2, #12]
17034	ldr	r7, [lr, #4]
17035	str	r7, [sp, #20]
17036	ldr	r7, [lr]
17037	str	r7, [sp, #16]
17038	ldr	r7, [r3, #12]
17039	str	r7, [sp, #12]
17040	ldr	r7, [r3, #8]
17041	str	r7, [sp, #8]
17042	ldr	r7, [r3, #4]
17043	str	r7, [sp, #4]
17044	ldr	r3, [r3]
17045	str	r3, [sp]
17046	ldr	r3, [r2, #4]
17047	ldr	r2, [ip, r0]
17048	mov	r0, fp
17049	bl	printf
17050	b	.L2465
17051.L2472:
17052	.align	2
17053.L2471:
17054	.word	.LANCHOR52
17055	.word	.LANCHOR233
17056	.word	.LC48
17057	.word	.LANCHOR85
17058	.word	.LC49
17059	.word	.LANCHOR16
17060	.word	.LANCHOR53
17061	.word	.LC50
17062	.word	.LANCHOR38
17063	.word	.LANCHOR186
17064	.word	.LANCHOR107
17065	.word	.LANCHOR57
17066	.word	.LANCHOR108
17067	.word	.LANCHOR58
17068	.word	.LC51
17069	.size	FtlDumpBlockInfo, .-FtlDumpBlockInfo
17070	.section	.text.FtlScanAllBlock,"ax",%progbits
17071	.align	1
17072	.global	FtlScanAllBlock
17073	.syntax unified
17074	.thumb
17075	.thumb_func
17076	.fpu softvfp
17077	.type	FtlScanAllBlock, %function
17078FtlScanAllBlock:
17079	@ args = 0, pretend = 0, frame = 64
17080	@ frame_needed = 0, uses_anonymous_args = 0
17081	push	{r4, r5, r6, r7, r8, r10, fp, lr}
17082	sub	sp, sp, #88
17083	ldr	r6, .L2483
17084	ldr	r1, .L2483+4
17085	ldr	r0, .L2483+8
17086	bl	printf
17087	movs	r3, #0
17088	str	r3, [sp, #28]
17089.L2474:
17090	ldr	r3, .L2483+12
17091	ldrh	r0, [sp, #28]
17092	ldrh	r3, [r3]
17093	cmp	r3, r0
17094	bhi	.L2482
17095	movs	r0, #0
17096	add	sp, sp, #88
17097	@ sp needed
17098	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17099.L2482:
17100	add	r4, sp, #88
17101	add	r7, sp, #54
17102	strh	r0, [r4, #-48]!	@ movhi
17103	movw	r10, #65535
17104	bl	ftl_get_blk_mode
17105	ldr	r3, .L2483+16
17106	mov	fp, #36
17107	ldrh	r1, [sp, #28]
17108	ldr	r2, [r3]
17109	mov	r3, r0
17110	ldr	r0, .L2483+20
17111	ldrh	r2, [r2, r1, lsl #1]
17112	bl	printf
17113	mov	r0, r4
17114	bl	make_superblock
17115	ldr	r3, .L2483+24
17116	movs	r2, #0
17117	ldr	r0, [r6]
17118	mov	r4, r2
17119	ldrh	lr, [r3]
17120	ldr	r3, .L2483+28
17121	ldr	r3, [r3]
17122	str	r3, [sp, #32]
17123	ldr	r3, .L2483+32
17124	ldrh	ip, [r3]
17125	ldr	r3, .L2483+36
17126	ldr	r3, [r3]
17127	str	r3, [sp, #36]
17128	ldr	r3, .L2483+40
17129	ldrh	r8, [r3]
17130.L2475:
17131	uxth	r3, r2
17132	cmp	lr, r3
17133	bhi	.L2477
17134	ldr	r10, .L2483+44
17135	movs	r7, #0
17136	mov	r8, #36
17137	movs	r2, #0
17138	mov	r1, r4
17139	bl	FlashReadPages
17140.L2478:
17141	uxth	r3, r7
17142	cmp	r4, r3
17143	bhi	.L2479
17144	ldr	r10, .L2483+48
17145	movs	r7, #0
17146	mov	r8, #36
17147	movs	r2, #1
17148	mov	r1, r4
17149	ldr	r0, [r6]
17150	bl	FlashReadPages
17151.L2480:
17152	uxth	r3, r7
17153	cmp	r4, r3
17154	bhi	.L2481
17155	ldr	r3, [sp, #28]
17156	adds	r3, r3, #1
17157	str	r3, [sp, #28]
17158	b	.L2474
17159.L2477:
17160	ldrh	r3, [r7, #2]!
17161	cmp	r3, r10
17162	beq	.L2476
17163	mla	r1, fp, r4, r0
17164	ldr	r5, [sp, #32]
17165	lsls	r3, r3, #10
17166	str	r3, [r1, #4]
17167	mul	r3, ip, r4
17168	bic	r3, r3, #3
17169	add	r3, r3, r5
17170	ldr	r5, [sp, #36]
17171	str	r3, [r1, #8]
17172	mul	r3, r8, r4
17173	adds	r4, r4, #1
17174	uxth	r4, r4
17175	bic	r3, r3, #3
17176	add	r3, r3, r5
17177	str	r3, [r1, #12]
17178.L2476:
17179	adds	r2, r2, #1
17180	b	.L2475
17181.L2479:
17182	mul	r2, r8, r7
17183	ldr	r0, [r6]
17184	ldrh	r1, [sp, #40]
17185	adds	r7, r7, #1
17186	add	lr, r0, r2
17187	ldr	fp, [lr, #8]
17188	ldr	r3, [lr, #12]
17189	ldr	r5, [fp, #4]
17190	str	r5, [sp, #20]
17191	ldr	r5, [fp]
17192	str	r5, [sp, #16]
17193	ldr	r5, [r3, #12]
17194	str	r5, [sp, #12]
17195	ldr	r5, [r3, #8]
17196	str	r5, [sp, #8]
17197	ldr	r5, [r3, #4]
17198	str	r5, [sp, #4]
17199	ldr	r3, [r3]
17200	str	r3, [sp]
17201	ldr	r2, [r0, r2]
17202	mov	r0, r10
17203	ldr	r3, [lr, #4]
17204	bl	printf
17205	b	.L2478
17206.L2481:
17207	mul	r2, r8, r7
17208	ldr	r0, [r6]
17209	ldrh	r1, [sp, #40]
17210	adds	r7, r7, #1
17211	add	lr, r0, r2
17212	ldr	fp, [lr, #8]
17213	ldr	r3, [lr, #12]
17214	ldr	r5, [fp, #4]
17215	str	r5, [sp, #20]
17216	ldr	r5, [fp]
17217	str	r5, [sp, #16]
17218	ldr	r5, [r3, #12]
17219	str	r5, [sp, #12]
17220	ldr	r5, [r3, #8]
17221	str	r5, [sp, #8]
17222	ldr	r5, [r3, #4]
17223	str	r5, [sp, #4]
17224	ldr	r3, [r3]
17225	str	r3, [sp]
17226	ldr	r2, [r0, r2]
17227	mov	r0, r10
17228	ldr	r3, [lr, #4]
17229	bl	printf
17230	b	.L2480
17231.L2484:
17232	.align	2
17233.L2483:
17234	.word	.LANCHOR186
17235	.word	.LANCHOR234
17236	.word	.LC48
17237	.word	.LANCHOR41
17238	.word	.LANCHOR85
17239	.word	.LC52
17240	.word	.LANCHOR38
17241	.word	.LANCHOR107
17242	.word	.LANCHOR57
17243	.word	.LANCHOR108
17244	.word	.LANCHOR58
17245	.word	.LC53
17246	.word	.LC54
17247	.size	FtlScanAllBlock, .-FtlScanAllBlock
17248	.section	.text.FtlMapTblRecovery,"ax",%progbits
17249	.align	1
17250	.global	FtlMapTblRecovery
17251	.syntax unified
17252	.thumb
17253	.thumb_func
17254	.fpu softvfp
17255	.type	FtlMapTblRecovery, %function
17256FtlMapTblRecovery:
17257	@ args = 0, pretend = 0, frame = 24
17258	@ frame_needed = 0, uses_anonymous_args = 0
17259	ldr	r3, [r0, #24]
17260	movs	r1, #0
17261	push	{r4, r5, r6, r7, r8, r10, fp, lr}
17262	sub	sp, sp, #24
17263	ldrh	r7, [r0, #6]
17264	mov	r4, r0
17265	movs	r6, #0
17266	str	r3, [sp]
17267	ldr	r3, [r0, #16]
17268	ldr	r10, [r0, #12]
17269	lsls	r2, r7, #2
17270	str	r3, [sp, #12]
17271	ldrh	r3, [r0, #8]
17272	ldr	r0, [sp]
17273	str	r3, [sp, #4]
17274	bl	ftl_memset
17275	ldr	r2, .L2526
17276	ldr	r3, .L2526+4
17277	str	r6, [r4, #32]
17278	ldr	r1, [r2]
17279	mov	fp, r3
17280	str	r6, [r4, #28]
17281	str	r2, [sp, #8]
17282	str	r1, [r3, #8]
17283	ldr	r1, .L2526+8
17284	ldr	r5, [r1]
17285	movw	r1, #65535
17286	str	r5, [r3, #12]
17287	strh	r1, [r4]	@ movhi
17288	strh	r1, [r4, #2]	@ movhi
17289	movs	r1, #1
17290	str	r1, [r4, #36]
17291.L2486:
17292	ldr	r2, [sp, #4]
17293	sxth	r3, r6
17294	cmp	r3, r2
17295	bge	.L2505
17296	ldr	r2, [sp, #4]
17297	lsl	r8, r3, #1
17298	subs	r2, r2, #1
17299	cmp	r3, r2
17300	bne	.L2487
17301	ldrh	r0, [r10, r3, lsl #1]
17302	movs	r1, #1
17303	str	r3, [sp, #4]
17304	mov	fp, #0
17305	bl	FtlGetLastWrittenPage
17306	ldr	r3, [sp, #12]
17307	add	r8, r8, r10
17308	strh	r6, [r4]	@ movhi
17309	sxth	r10, r0
17310	ldr	r6, .L2526+4
17311	adds	r0, r0, #1
17312	mov	r2, r3
17313	ldr	r3, [sp, #4]
17314	strh	r0, [r4, #2]	@ movhi
17315	ldr	r3, [r2, r3, lsl #2]
17316	str	r3, [r4, #28]
17317.L2488:
17318	sxth	r2, fp
17319	cmp	r2, r10
17320	ble	.L2491
17321.L2505:
17322	mov	r0, r4
17323	bl	ftl_free_no_use_map_blk
17324	ldr	r3, .L2526+12
17325	ldrh	r2, [r4, #2]
17326	ldrh	r3, [r3]
17327	cmp	r2, r3
17328	bne	.L2493
17329	mov	r0, r4
17330	bl	ftl_map_blk_alloc_new_blk
17331.L2493:
17332	mov	r0, r4
17333	bl	ftl_map_blk_gc
17334	mov	r0, r4
17335	bl	ftl_map_blk_gc
17336	movs	r0, #0
17337	add	sp, sp, #24
17338	@ sp needed
17339	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17340.L2491:
17341	ldrh	r1, [r8]
17342	ldr	r0, .L2526+4
17343	orr	r2, r2, r1, lsl #10
17344	str	r2, [r6, #4]
17345	movs	r2, #1
17346	mov	r1, r2
17347	bl	FlashReadPages
17348	ldr	r3, .L2526+16
17349	ldrb	r2, [r3]	@ zero_extendqisi2
17350	cbz	r2, .L2489
17351	ldr	r2, [r6, #12]
17352	ldr	r2, [r2, #12]
17353	str	r2, [sp, #4]
17354	cbz	r2, .L2489
17355	ldr	r1, .L2526+20
17356	ldr	r0, [r6, #8]
17357	ldrh	r1, [r1]
17358	bl	js_hash
17359	ldr	r2, [sp, #4]
17360	cmp	r2, r0
17361	itt	ne
17362	movne	r2, #-1
17363	strne	r2, [r6]
17364.L2489:
17365	ldr	r2, [r6]
17366	adds	r2, r2, #1
17367	beq	.L2490
17368	ldrh	r2, [r5, #8]
17369	cmp	r7, r2
17370	bls	.L2490
17371	ldrh	r1, [r4, #4]
17372	ldrh	r0, [r5]
17373	cmp	r0, r1
17374	ittt	eq
17375	ldreq	r1, [r6, #4]
17376	ldreq	r3, [sp]
17377	streq	r1, [r3, r2, lsl #2]
17378.L2490:
17379	add	fp, fp, #1
17380	b	.L2488
17381.L2487:
17382	ldr	r2, [sp, #8]
17383	ldr	r0, .L2526+4
17384	ldr	r2, [r2]
17385	str	r2, [fp, #8]
17386	add	r2, r10, r8
17387	ldr	r8, .L2526+12
17388	str	r2, [sp, #16]
17389	ldrh	r2, [r10, r3, lsl #1]
17390	ldrh	r3, [r8]
17391	subs	r3, r3, #1
17392	orr	r3, r3, r2, lsl #10
17393	movs	r2, #1
17394	mov	r1, r2
17395	str	r3, [fp, #4]
17396	bl	FlashReadPages
17397	ldr	r3, [fp]
17398	adds	r3, r3, #1
17399	beq	.L2507
17400	ldrh	r2, [r5]
17401	ldrh	r3, [r4, #4]
17402	cmp	r2, r3
17403	bne	.L2507
17404	ldrh	r2, [r5, #8]
17405	movw	r3, #64245
17406	cmp	r2, r3
17407	beq	.L2495
17408.L2507:
17409	mov	r8, #0
17410.L2496:
17411	ldr	r2, .L2526+12
17412	sxth	r3, r8
17413	ldrh	r2, [r2]
17414	cmp	r3, r2
17415	bge	.L2503
17416	ldr	r2, [sp, #16]
17417	ldr	r0, .L2526+4
17418	ldrh	r2, [r2]
17419	orr	r3, r3, r2, lsl #10
17420	movs	r2, #1
17421	mov	r1, r2
17422	str	r3, [fp, #4]
17423	bl	FlashReadPages
17424	ldr	r3, .L2526+16
17425	ldrb	r3, [r3]	@ zero_extendqisi2
17426	cbz	r3, .L2500
17427	ldr	r3, [fp, #12]
17428	ldr	r3, [r3, #12]
17429	str	r3, [sp, #20]
17430	cbz	r3, .L2500
17431	ldr	r2, .L2526+20
17432	ldr	r0, [fp, #8]
17433	ldrh	r1, [r2]
17434	bl	js_hash
17435	ldr	r3, [sp, #20]
17436	cmp	r3, r0
17437	itt	ne
17438	movne	r3, #-1
17439	strne	r3, [fp]
17440.L2500:
17441	ldr	r3, [fp]
17442	adds	r3, r3, #1
17443	beq	.L2501
17444	ldrh	r3, [r5, #8]
17445	cmp	r7, r3
17446	bls	.L2501
17447	ldrh	r1, [r5]
17448	ldrh	r2, [r4, #4]
17449	cmp	r1, r2
17450	ittt	eq
17451	ldreq	r2, [fp, #4]
17452	ldreq	r1, [sp]
17453	streq	r2, [r1, r3, lsl #2]
17454.L2501:
17455	add	r8, r8, #1
17456	b	.L2496
17457.L2495:
17458	ldr	r3, [sp, #8]
17459	movs	r1, #0
17460	ldrh	r2, [r8]
17461	ldr	ip, [r3]
17462	subs	r2, r2, #1
17463.L2497:
17464	sxth	r3, r1
17465	cmp	r3, r2
17466	blt	.L2499
17467.L2503:
17468	adds	r6, r6, #1
17469	b	.L2486
17470.L2499:
17471	lsls	r0, r3, #3
17472	ldr	r3, [ip, r3, lsl #3]
17473	adds	r1, r1, #1
17474	uxth	lr, r3
17475	cmp	r7, lr
17476	itttt	hi
17477	addhi	r0, r0, ip
17478	ldrhi	r3, [sp]
17479	ldrhi	r0, [r0, #4]
17480	strhi	r0, [r3, lr, lsl #2]
17481	b	.L2497
17482.L2527:
17483	.align	2
17484.L2526:
17485	.word	.LANCHOR189
17486	.word	.LANCHOR211
17487	.word	.LANCHOR195
17488	.word	.LANCHOR53
17489	.word	.LANCHOR2
17490	.word	.LANCHOR57
17491	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
17492	.section	.text.FtlLoadVonderInfo,"ax",%progbits
17493	.align	1
17494	.global	FtlLoadVonderInfo
17495	.syntax unified
17496	.thumb
17497	.thumb_func
17498	.fpu softvfp
17499	.type	FtlLoadVonderInfo, %function
17500FtlLoadVonderInfo:
17501	@ args = 0, pretend = 0, frame = 0
17502	@ frame_needed = 0, uses_anonymous_args = 0
17503	push	{r3, lr}
17504	ldr	r3, .L2529
17505	ldr	r0, .L2529+4
17506	ldrh	r3, [r3]
17507	strh	r3, [r0, #10]	@ movhi
17508	movw	r3, #61574
17509	strh	r3, [r0, #4]	@ movhi
17510	ldr	r3, .L2529+8
17511	ldrh	r3, [r3]
17512	strh	r3, [r0, #8]	@ movhi
17513	ldr	r3, .L2529+12
17514	ldrh	r3, [r3]
17515	strh	r3, [r0, #6]	@ movhi
17516	ldr	r3, .L2529+16
17517	ldr	r3, [r3]
17518	str	r3, [r0, #12]
17519	ldr	r3, .L2529+20
17520	ldr	r3, [r3]
17521	str	r3, [r0, #16]
17522	ldr	r3, .L2529+24
17523	ldr	r3, [r3]
17524	str	r3, [r0, #20]
17525	ldr	r3, .L2529+28
17526	ldr	r3, [r3]
17527	str	r3, [r0, #24]
17528	bl	FtlMapTblRecovery
17529	movs	r0, #0
17530	pop	{r3, pc}
17531.L2530:
17532	.align	2
17533.L2529:
17534	.word	.LANCHOR61
17535	.word	.LANCHOR224
17536	.word	.LANCHOR70
17537	.word	.LANCHOR62
17538	.word	.LANCHOR71
17539	.word	.LANCHOR201
17540	.word	.LANCHOR200
17541	.word	.LANCHOR202
17542	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
17543	.section	.text.FtlLoadMapInfo,"ax",%progbits
17544	.align	1
17545	.global	FtlLoadMapInfo
17546	.syntax unified
17547	.thumb
17548	.thumb_func
17549	.fpu softvfp
17550	.type	FtlLoadMapInfo, %function
17551FtlLoadMapInfo:
17552	@ args = 0, pretend = 0, frame = 0
17553	@ frame_needed = 0, uses_anonymous_args = 0
17554	push	{r3, lr}
17555	bl	FtlL2PDataInit
17556	ldr	r0, .L2532
17557	bl	FtlMapTblRecovery
17558	movs	r0, #0
17559	pop	{r3, pc}
17560.L2533:
17561	.align	2
17562.L2532:
17563	.word	.LANCHOR130
17564	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
17565	.section	.text.ftl_scan_all_ppa,"ax",%progbits
17566	.align	1
17567	.global	ftl_scan_all_ppa
17568	.syntax unified
17569	.thumb
17570	.thumb_func
17571	.fpu softvfp
17572	.type	ftl_scan_all_ppa, %function
17573ftl_scan_all_ppa:
17574	@ args = 0, pretend = 0, frame = 8
17575	@ frame_needed = 0, uses_anonymous_args = 0
17576	ldr	r3, .L2550
17577	push	{r4, r5, r6, r7, r8, r10, fp, lr}
17578	sub	sp, sp, #32
17579	ldr	r5, .L2550+4
17580	ldrh	r4, [r3]
17581	str	r3, [sp, #28]
17582	subs	r4, r4, #16
17583	lsl	r10, r4, #10
17584.L2535:
17585	ldr	r3, [sp, #28]
17586	ldrh	r3, [r3]
17587	cmp	r4, r3
17588	blt	.L2543
17589	ldr	r1, .L2550+8
17590	ldr	r0, .L2550+12
17591	add	sp, sp, #32
17592	@ sp needed
17593	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
17594	b	printf
17595.L2543:
17596	uxth	r7, r4
17597	mov	r0, r7
17598	bl	ftl_get_blk_mode
17599	ldr	r3, .L2550+16
17600	ldrb	r3, [r3]	@ zero_extendqisi2
17601	cbz	r3, .L2536
17602	ldr	r3, .L2550+20
17603	ldrh	r3, [r3]
17604	cmp	r4, r3
17605	bge	.L2537
17606	ldr	r3, .L2550+24
17607	ldrh	r3, [r3]
17608	cmp	r4, r3
17609	blt	.L2537
17610.L2536:
17611	cmp	r0, #1
17612	bne	.L2538
17613.L2537:
17614	ldr	r3, .L2550+28
17615	mov	r8, #-2147483648
17616	ldrh	r6, [r3]
17617.L2539:
17618	mov	r3, r8
17619	mov	r2, r6
17620	mov	r1, r4
17621	ldr	r0, .L2550+32
17622	bl	printf
17623	mov	r0, r7
17624	bl	FtlBbmIsBadBlock
17625	cbz	r0, .L2540
17626	mov	r3, r8
17627	mov	r2, r6
17628	mov	r1, r4
17629	ldr	r0, .L2550+36
17630	bl	printf
17631.L2540:
17632	ldr	fp, .L2550+52
17633	movs	r7, #0
17634.L2541:
17635	cmp	r7, r6
17636	bne	.L2542
17637	adds	r4, r4, #1
17638	add	r10, r10, #1024
17639	b	.L2535
17640.L2538:
17641	ldr	r3, .L2550+40
17642	mov	r8, #0
17643	ldrh	r6, [r3]
17644	b	.L2539
17645.L2542:
17646	add	r3, r8, r10
17647	movs	r2, #0
17648	add	r3, r3, r7
17649	movs	r1, #1
17650	str	r3, [r5, #4]
17651	mov	r0, r5
17652	ldr	r3, [fp]
17653	adds	r7, r7, #1
17654	str	r2, [r5]
17655	str	r3, [r5, #8]
17656	ldr	r3, .L2550+44
17657	ldr	r3, [r3]
17658	str	r3, [r5, #12]
17659	bl	FlashReadPages
17660	ldr	r2, [r5, #8]
17661	ldr	r3, [r5, #12]
17662	ldr	r0, .L2550+48
17663	ldr	r1, [r2, #4]
17664	str	r1, [sp, #16]
17665	ldr	r2, [r2]
17666	ldr	r1, [r5, #4]
17667	str	r2, [sp, #12]
17668	ldr	r2, [r3, #12]
17669	str	r2, [sp, #8]
17670	ldr	r2, [r3, #8]
17671	str	r2, [sp, #4]
17672	ldr	r2, [r3, #4]
17673	str	r2, [sp]
17674	ldr	r2, [r5]
17675	ldr	r3, [r3]
17676	bl	printf
17677	b	.L2541
17678.L2551:
17679	.align	2
17680.L2550:
17681	.word	.LANCHOR51
17682	.word	.LANCHOR211
17683	.word	.LANCHOR235
17684	.word	.LC58
17685	.word	.LANCHOR16
17686	.word	.LANCHOR40
17687	.word	.LANCHOR59
17688	.word	.LANCHOR53
17689	.word	.LC55
17690	.word	.LC56
17691	.word	.LANCHOR52
17692	.word	.LANCHOR195
17693	.word	.LC57
17694	.word	.LANCHOR189
17695	.size	ftl_scan_all_ppa, .-ftl_scan_all_ppa
17696	.section	.text.FlashReadFacBbtData,"ax",%progbits
17697	.align	1
17698	.global	FlashReadFacBbtData
17699	.syntax unified
17700	.thumb
17701	.thumb_func
17702	.fpu softvfp
17703	.type	FlashReadFacBbtData, %function
17704FlashReadFacBbtData:
17705	@ args = 0, pretend = 0, frame = 48
17706	@ frame_needed = 0, uses_anonymous_args = 0
17707	push	{r4, r5, r6, r7, r8, r10, fp, lr}
17708	mov	fp, r2
17709	ldr	r2, .L2565
17710	sub	sp, sp, #48
17711	mov	r6, r1
17712	mov	r4, r0
17713	ldr	r7, .L2565+4
17714	ldrh	r3, [r2, #14]
17715	ldrh	r2, [r2, #12]
17716	smulbb	r3, r3, r2
17717	ldr	r2, [r7]
17718	uxth	r3, r3
17719	str	r2, [sp, #20]
17720	ldr	r2, .L2565+8
17721	subs	r5, r3, #1
17722	mul	r10, r6, r3
17723	uxth	r5, r5
17724	subs	r3, r3, #15
17725	ldr	r1, [r2]
17726	mov	r8, r2
17727	str	r1, [sp, #24]
17728.L2553:
17729	cmp	r3, r5
17730	ble	.L2560
17731	mov	r0, #-1
17732	b	.L2552
17733.L2560:
17734	add	r2, r5, r10
17735	add	r0, sp, #12
17736	lsls	r2, r2, #10
17737	str	r3, [sp, #4]
17738	str	r2, [sp, #16]
17739	movs	r2, #1
17740	mov	r1, r2
17741	bl	FlashReadPages
17742	ldr	r2, [sp, #12]
17743	ldr	r3, [sp, #4]
17744	adds	r2, r2, #1
17745	beq	.L2554
17746	ldr	r2, [r8]
17747	ldrh	r1, [r2]
17748	movw	r2, #61664
17749	cmp	r1, r2
17750	bne	.L2554
17751	cbz	r4, .L2561
17752	cbz	r6, .L2556
17753.L2559:
17754	mov	r2, fp
17755	ldr	r1, [r7]
17756	mov	r0, r4
17757	bl	ftl_memcpy
17758	movs	r3, #4
17759	ldr	r0, .L2565+12
17760	mov	r2, r3
17761	mov	r1, r4
17762	bl	rknand_print_hex
17763	movs	r0, #0
17764.L2552:
17765	add	sp, sp, #48
17766	@ sp needed
17767	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
17768.L2556:
17769	ldr	r1, [r7]
17770	mov	ip, #1
17771	ldr	r5, .L2565+16
17772.L2557:
17773	ldr	r0, [r5]
17774	uxth	r3, r6
17775	adds	r6, r6, #1
17776	cmp	r3, r0
17777	bcs	.L2559
17778	lsrs	r0, r3, #5
17779	and	r3, r3, #31
17780	lsl	r3, ip, r3
17781	ldr	r2, [r1, r0, lsl #2]
17782	orrs	r3, r3, r2
17783	str	r3, [r1, r0, lsl #2]
17784	b	.L2557
17785.L2554:
17786	subs	r5, r5, #1
17787	uxth	r5, r5
17788	b	.L2553
17789.L2561:
17790	mov	r0, r4
17791	b	.L2552
17792.L2566:
17793	.align	2
17794.L2565:
17795	.word	.LANCHOR15
17796	.word	.LANCHOR154
17797	.word	.LANCHOR205
17798	.word	.LC59
17799	.word	.LANCHOR156
17800	.size	FlashReadFacBbtData, .-FlashReadFacBbtData
17801	.section	.text.FlashGetBadBlockList,"ax",%progbits
17802	.align	1
17803	.global	FlashGetBadBlockList
17804	.syntax unified
17805	.thumb
17806	.thumb_func
17807	.fpu softvfp
17808	.type	FlashGetBadBlockList, %function
17809FlashGetBadBlockList:
17810	@ args = 0, pretend = 0, frame = 0
17811	@ frame_needed = 0, uses_anonymous_args = 0
17812	push	{r3, r4, r5, r6, r7, lr}
17813	mov	r5, r0
17814	ldr	r3, .L2577
17815	ldr	r6, .L2577+4
17816	ldr	r3, [r3]
17817	ldr	r0, [r6]
17818	ldrb	r4, [r3, #13]	@ zero_extendqisi2
17819	ldrh	r3, [r3, #14]
17820	smulbb	r4, r4, r3
17821	uxth	r4, r4
17822	adds	r2, r4, #7
17823	asrs	r2, r2, #3
17824	bl	FlashReadFacBbtData
17825	adds	r0, r0, #1
17826	bne	.L2568
17827.L2572:
17828	movs	r3, #0
17829.L2569:
17830	movw	r2, #65535
17831	movs	r0, #0
17832	strh	r2, [r5, r3, lsl #1]	@ movhi
17833	pop	{r3, r4, r5, r6, r7, pc}
17834.L2568:
17835	ldr	r7, [r6]
17836	movs	r2, #0
17837	lsr	ip, r4, #4
17838	mov	r3, r2
17839	subs	r4, r4, #1
17840	mov	lr, #1
17841.L2570:
17842	uxth	r1, r2
17843	cmp	r1, r4
17844	bge	.L2569
17845	lsrs	r6, r1, #5
17846	and	r0, r1, #31
17847	lsl	r0, lr, r0
17848	adds	r2, r2, #1
17849	ldr	r6, [r7, r6, lsl #2]
17850	tst	r0, r6
17851	ittt	ne
17852	addne	r0, r3, #1
17853	strhne	r1, [r5, r3, lsl #1]	@ movhi
17854	uxthne	r3, r0
17855	cmp	r3, ip
17856	bcc	.L2570
17857	b	.L2572
17858.L2578:
17859	.align	2
17860.L2577:
17861	.word	.LANCHOR7
17862	.word	.LANCHOR149
17863	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
17864	.section	.text.FtlMakeBbt,"ax",%progbits
17865	.align	1
17866	.global	FtlMakeBbt
17867	.syntax unified
17868	.thumb
17869	.thumb_func
17870	.fpu softvfp
17871	.type	FtlMakeBbt, %function
17872FtlMakeBbt:
17873	@ args = 0, pretend = 0, frame = 8
17874	@ frame_needed = 0, uses_anonymous_args = 0
17875	ldr	r3, .L2599
17876	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
17877	ldr	r7, [r3]
17878	cmp	r7, #0
17879	bne	.L2580
17880	ldr	r8, .L2599+40
17881	ldr	r4, .L2599+4
17882	bl	FtlBbtMemInit
17883	sub	r10, r8, #18
17884	bl	FtlLoadFactoryBbt
17885.L2581:
17886	ldr	r3, .L2599+8
17887	ldrh	r3, [r3]
17888	cmp	r7, r3
17889	bcc	.L2587
17890	ldr	r5, .L2599+12
17891	movs	r4, #0
17892.L2588:
17893	ldrh	r3, [r5]
17894	uxth	r0, r4
17895	adds	r4, r4, #1
17896	cmp	r3, r0
17897	bhi	.L2589
17898	ldr	r4, .L2599+16
17899	movw	r6, #65535
17900	ldrh	r5, [r4, #12]
17901	subs	r5, r5, #1
17902	uxth	r5, r5
17903.L2590:
17904	ldrh	r3, [r4, #12]
17905	subs	r3, r3, #47
17906	cmp	r3, r5
17907	bgt	.L2594
17908	mov	r0, r5
17909	bl	FtlBbmIsBadBlock
17910	cmp	r0, #1
17911	beq	.L2591
17912	mov	r0, r5
17913	bl	FlashTestBlk
17914	cmp	r0, #0
17915	beq	.L2592
17916	mov	r0, r5
17917	bl	FtlBbmMapBadBlock
17918.L2591:
17919	subs	r5, r5, #1
17920	uxth	r5, r5
17921	b	.L2590
17922.L2587:
17923	ldr	r3, .L2599+20
17924	movw	r1, #65535
17925	ldrh	r2, [r10, #2]!
17926	ldr	r0, [r3]
17927	ldr	r3, .L2599+24
17928	cmp	r2, r1
17929	str	r0, [r4, #8]
17930	ldr	fp, [r3]
17931	str	r3, [sp, #4]
17932	ldr	r3, .L2599+28
17933	str	fp, [r4, #12]
17934	beq	.L2582
17935	ldrh	r6, [r3]
17936	mov	r0, r4
17937	str	r3, [sp]
17938	mla	r6, r7, r6, r2
17939	lsls	r2, r6, #10
17940	str	r2, [r4, #4]
17941	movs	r2, #1
17942	mov	r1, r2
17943	bl	FlashReadPages
17944	ldr	r3, [sp]
17945	ldr	r1, [r4, #8]
17946	ldr	r0, [r8]
17947	ldrh	r2, [r3]
17948	adds	r2, r2, #7
17949	asrs	r2, r2, #3
17950	bl	ftl_memcpy
17951.L2583:
17952	uxth	r0, r6
17953	adds	r7, r7, #1
17954	add	r8, r8, #4
17955	bl	FtlBbmMapBadBlock
17956	b	.L2581
17957.L2582:
17958	mov	r1, r7
17959	str	r3, [sp]
17960	bl	FlashGetBadBlockList
17961	ldr	r1, [r8]
17962	ldr	r0, [r4, #8]
17963	bl	FtlBbt2Bitmap
17964	ldr	r3, [sp]
17965	ldrh	r5, [r3]
17966.L2585:
17967	subs	r5, r5, #1
17968	uxth	r5, r5
17969.L2584:
17970	ldr	r3, [sp]
17971	ldrh	r0, [r3]
17972	smlabb	r0, r0, r7, r5
17973	uxth	r0, r0
17974	bl	FtlBbmIsBadBlock
17975	cmp	r0, #1
17976	beq	.L2585
17977	ldr	r3, [sp, #4]
17978	movs	r2, #16
17979	movs	r1, #0
17980	strh	r5, [r10]	@ movhi
17981	ldr	r0, [r3]
17982	bl	ftl_memset
17983	ldr	r2, [sp]
17984	movw	r3, #61664
17985	strh	r3, [fp]	@ movhi
17986	movs	r3, #0
17987	str	r3, [fp, #4]
17988	ldrh	r6, [r2]
17989	ldrh	r3, [r10]
17990	ldr	r1, [r8]
17991	ldr	r0, [r4, #8]
17992	strh	r3, [fp, #2]	@ movhi
17993	mla	r6, r7, r6, r3
17994	lsls	r3, r6, #10
17995	str	r3, [r4, #4]
17996	ldr	r3, .L2599+32
17997	ldrh	r2, [r3]
17998	lsls	r2, r2, #2
17999	bl	ftl_memcpy
18000	movs	r2, #1
18001	mov	r0, r4
18002	mov	r1, r2
18003	bl	FlashEraseBlocks
18004	movs	r3, #1
18005	mov	r0, r4
18006	mov	r2, r3
18007	mov	r1, r3
18008	bl	FlashProgPages
18009	ldr	r3, [r4]
18010	adds	r3, r3, #1
18011	bne	.L2583
18012	uxth	r0, r6
18013	bl	FtlBbmMapBadBlock
18014	b	.L2584
18015.L2589:
18016	bl	FtlBbmMapBadBlock
18017	b	.L2588
18018.L2592:
18019	ldrh	r3, [r4]
18020	cmp	r3, r6
18021	bne	.L2593
18022	strh	r5, [r4]	@ movhi
18023	b	.L2591
18024.L2593:
18025	strh	r5, [r4, #4]	@ movhi
18026.L2594:
18027	ldr	r3, .L2599+36
18028	movs	r5, #0
18029	str	r5, [r4, #8]
18030	movs	r2, #2
18031	movs	r1, #1
18032	strh	r5, [r4, #2]	@ movhi
18033	ldr	r0, [r3]
18034	ldrh	r3, [r4]
18035	lsls	r3, r3, #10
18036	str	r3, [r0, #4]
18037	ldrh	r3, [r4, #4]
18038	lsls	r3, r3, #10
18039	str	r3, [r0, #40]
18040	bl	FlashEraseBlocks
18041	ldrh	r0, [r4]
18042	bl	FtlBbmMapBadBlock
18043	ldrh	r0, [r4, #4]
18044	bl	FtlBbmMapBadBlock
18045	bl	FtlBbmTblFlush
18046	ldr	r3, [r4, #8]
18047	ldrh	r2, [r4, #4]
18048	strh	r5, [r4, #2]	@ movhi
18049	adds	r3, r3, #1
18050	str	r3, [r4, #8]
18051	ldrh	r3, [r4]
18052	strh	r2, [r4]	@ movhi
18053	strh	r3, [r4, #4]	@ movhi
18054	bl	FtlBbmTblFlush
18055.L2580:
18056	movs	r0, #0
18057	add	sp, sp, #8
18058	@ sp needed
18059	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
18060.L2600:
18061	.align	2
18062.L2599:
18063	.word	.LANCHOR78
18064	.word	.LANCHOR211
18065	.word	.LANCHOR45
18066	.word	.LANCHOR59
18067	.word	.LANCHOR76
18068	.word	.LANCHOR189
18069	.word	.LANCHOR195
18070	.word	.LANCHOR51
18071	.word	.LANCHOR126
18072	.word	.LANCHOR79
18073	.word	.LANCHOR76+28
18074	.size	FtlMakeBbt, .-FtlMakeBbt
18075	.section	.text.log2phys,"ax",%progbits
18076	.align	1
18077	.global	log2phys
18078	.syntax unified
18079	.thumb
18080	.thumb_func
18081	.fpu softvfp
18082	.type	log2phys, %function
18083log2phys:
18084	@ args = 0, pretend = 0, frame = 24
18085	@ frame_needed = 0, uses_anonymous_args = 0
18086	push	{r4, r5, r6, r7, r8, r10, fp, lr}
18087	sub	sp, sp, #24
18088	ldr	r4, .L2619
18089	mov	fp, r0
18090	str	r2, [sp, #16]
18091	ldr	r2, [r4]
18092	ldr	r3, .L2619+4
18093	str	r1, [sp, #4]
18094	cmp	r0, r2
18095	ldrh	r5, [r3]
18096	bcc	.L2602
18097	ldr	r1, .L2619+8
18098	mov	r2, #1004
18099	ldr	r0, .L2619+12
18100	bl	printf
18101	ldr	r1, .L2619+16
18102	ldr	r0, .L2619+20
18103	bl	printf
18104.L2602:
18105	ldr	r3, [r4]
18106	cmp	fp, r3
18107	bcs	.L2603
18108	adds	r3, r5, #7
18109	ldr	r5, .L2619+24
18110	lsr	r7, fp, r3
18111	str	r3, [sp, #8]
18112	ldr	r3, .L2619+28
18113	movs	r4, #12
18114	ldr	r1, [r5]
18115	uxth	r6, r7
18116	ldrh	r2, [r3]
18117	movs	r3, #0
18118.L2604:
18119	uxth	r10, r3
18120	cmp	r10, r2
18121	bcc	.L2609
18122	bl	select_l2p_ram_region
18123	muls	r4, r0, r4
18124	ldr	r3, [r5]
18125	mov	r10, r0
18126	ldrh	r1, [r3, r4]
18127	adds	r2, r3, r4
18128	movw	r3, #65535
18129	cmp	r1, r3
18130	beq	.L2610
18131	ldr	r3, [r2, #4]
18132	cmp	r3, #0
18133	bge	.L2610
18134	bl	flush_l2p_region
18135.L2610:
18136	ldr	r3, .L2619+32
18137	ldrh	r3, [r3]
18138	cmp	r3, r6
18139	bcs	.L2611
18140	ldr	r1, .L2619+36
18141	movw	r2, #597
18142	ldr	r0, .L2619+12
18143	bl	printf
18144	ldr	r1, .L2619+16
18145	ldr	r0, .L2619+20
18146	bl	printf
18147.L2611:
18148	ldr	r3, .L2619+40
18149	uxth	r7, r7
18150	ldr	r3, [r3]
18151	ldr	r3, [r3, r7, lsl #2]
18152	cmp	r3, #0
18153	bne	.L2612
18154	ldr	r2, [r5]
18155	movs	r1, #255
18156	str	r3, [sp, #12]
18157	adds	r0, r2, r4
18158	ldr	r2, .L2619+44
18159	ldr	r0, [r0, #8]
18160	ldrh	r2, [r2]
18161	bl	ftl_memset
18162	ldr	r2, [r5]
18163	ldr	r3, [sp, #12]
18164	adds	r1, r2, r4
18165	strh	r6, [r2, r4]	@ movhi
18166	str	r3, [r1, #4]
18167	b	.L2606
18168.L2603:
18169	ldr	r3, [sp, #16]
18170	mov	r0, #-1
18171	cbnz	r3, .L2601
18172	ldr	r3, [sp, #4]
18173	str	r0, [r3]
18174.L2601:
18175	add	sp, sp, #24
18176	@ sp needed
18177	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
18178.L2609:
18179	adds	r3, r3, #1
18180	mla	r0, r4, r3, r1
18181	ldrh	r0, [r0, #-12]
18182	cmp	r0, r6
18183	bne	.L2604
18184.L2606:
18185	ldr	r2, [sp, #8]
18186	movs	r3, #1
18187	ldr	r0, [sp, #16]
18188	ldr	r1, .L2619+24
18189	lsls	r3, r3, r2
18190	movs	r2, #12
18191	subs	r3, r3, #1
18192	and	r3, r3, fp
18193	uxth	r3, r3
18194	cbnz	r0, .L2607
18195	ldr	r0, [r1]
18196	mla	r2, r2, r10, r0
18197	ldr	r2, [r2, #8]
18198	ldr	r3, [r2, r3, lsl #2]
18199	ldr	r2, [sp, #4]
18200	str	r3, [r2]
18201.L2608:
18202	ldr	r2, [r1]
18203	movs	r3, #12
18204	mla	r10, r3, r10, r2
18205	ldr	r3, [r10, #4]
18206	adds	r2, r3, #1
18207	beq	.L2617
18208	adds	r3, r3, #1
18209	str	r3, [r10, #4]
18210.L2617:
18211	movs	r0, #0
18212	b	.L2601
18213.L2607:
18214	ldr	r0, [r1]
18215	mla	r2, r2, r10, r0
18216	ldr	r0, [sp, #4]
18217	ldr	r4, [r0]
18218	ldr	r0, [r2, #8]
18219	str	r4, [r0, r3, lsl #2]
18220	ldr	r3, [r2, #4]
18221	orr	r3, r3, #-2147483648
18222	str	r3, [r2, #4]
18223	ldr	r3, .L2619+48
18224	strh	r6, [r3]	@ movhi
18225	b	.L2608
18226.L2612:
18227	ldr	r2, [r5]
18228	ldr	r8, .L2619+80
18229	str	r3, [sp, #20]
18230	add	r2, r2, r4
18231	ldr	r2, [r2, #8]
18232	mov	r0, r8
18233	str	r3, [r8, #4]
18234	str	r2, [r8, #8]
18235	ldr	r2, .L2619+52
18236	ldr	r2, [r2]
18237	str	r2, [r8, #12]
18238	movs	r2, #1
18239	mov	r1, r2
18240	bl	FlashReadPages
18241	ldr	r3, [r8, #12]
18242	ldrh	r2, [r3, #8]
18243	str	r3, [sp, #12]
18244	ldr	r3, [sp, #20]
18245	cmp	r2, r6
18246	beq	.L2613
18247	mov	r2, r3
18248	mov	r1, r7
18249	ldr	r0, .L2619+56
18250	bl	printf
18251	movs	r3, #4
18252	ldr	r1, [r8, #12]
18253	mov	r2, r3
18254	ldr	r0, .L2619+60
18255	bl	rknand_print_hex
18256	ldr	r3, .L2619+32
18257	movs	r2, #4
18258	ldr	r1, .L2619+40
18259	ldr	r0, .L2619+64
18260	ldrh	r3, [r3]
18261	ldr	r1, [r1]
18262	bl	rknand_print_hex
18263	ldr	r3, .L2619+68
18264	movs	r2, #1
18265	str	r2, [r3]
18266.L2614:
18267	ldr	r3, [sp, #12]
18268	ldrh	r3, [r3, #8]
18269	cmp	r3, r6
18270	beq	.L2615
18271	ldr	r1, .L2619+36
18272	mov	r2, #624
18273	ldr	r0, .L2619+12
18274	bl	printf
18275	ldr	r1, .L2619+16
18276	ldr	r0, .L2619+20
18277	bl	printf
18278.L2615:
18279	ldr	r3, .L2619+24
18280	movs	r1, #0
18281	ldr	r3, [r3]
18282	adds	r2, r3, r4
18283	str	r1, [r2, #4]
18284	strh	r6, [r3, r4]	@ movhi
18285	b	.L2606
18286.L2613:
18287	ldr	r2, [r8]
18288	cmp	r2, #256
18289	bne	.L2614
18290	mov	r2, r3
18291	mov	r1, r7
18292	ldr	r0, .L2619+72
18293	bl	printf
18294	ldr	r3, [r5]
18295	mov	r1, r7
18296	ldr	r0, .L2619+76
18297	add	r3, r3, r4
18298	ldr	r2, [r3, #8]
18299	bl	FtlMapWritePage
18300	b	.L2614
18301.L2620:
18302	.align	2
18303.L2619:
18304	.word	.LANCHOR74
18305	.word	.LANCHOR56
18306	.word	.LANCHOR236
18307	.word	.LC5
18308	.word	.LC6
18309	.word	.LC7
18310	.word	.LANCHOR98
18311	.word	.LANCHOR67
18312	.word	.LANCHOR66
18313	.word	.LANCHOR237
18314	.word	.LANCHOR134
18315	.word	.LANCHOR57
18316	.word	.LANCHOR99
18317	.word	.LANCHOR195
18318	.word	.LC60
18319	.word	.LC28
18320	.word	.LC61
18321	.word	.LANCHOR78
18322	.word	.LC62
18323	.word	.LANCHOR130
18324	.word	.LANCHOR211
18325	.size	log2phys, .-log2phys
18326	.section	.text.FtlCheckVpc,"ax",%progbits
18327	.align	1
18328	.global	FtlCheckVpc
18329	.syntax unified
18330	.thumb
18331	.thumb_func
18332	.fpu softvfp
18333	.type	FtlCheckVpc, %function
18334FtlCheckVpc:
18335	@ args = 0, pretend = 0, frame = 8
18336	@ frame_needed = 0, uses_anonymous_args = 0
18337	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
18338	movs	r4, #0
18339	ldr	r6, .L2645
18340	ldr	r5, .L2645+4
18341	ldr	r1, .L2645+8
18342	ldr	r0, .L2645+12
18343	bl	printf
18344	mov	r2, #8192
18345	movs	r1, #0
18346	ldr	r0, .L2645+4
18347	bl	memset
18348.L2622:
18349	ldr	r3, [r6]
18350	cmp	r4, r3
18351	bcc	.L2624
18352	ldr	r10, .L2645+60
18353	movs	r4, #0
18354	ldr	r7, .L2645+16
18355	mov	r5, r4
18356.L2625:
18357	ldrh	r2, [r10]
18358	uxth	r3, r4
18359	cmp	r2, r3
18360	bhi	.L2627
18361	ldr	r3, .L2645+20
18362	ldr	r4, [r3]
18363	cbz	r4, .L2628
18364	ldr	r3, .L2645+24
18365	mov	r8, #0
18366	ldr	r6, .L2645+28
18367	ldr	r10, .L2645+16
18368	ldrh	r7, [r3]
18369	ldr	r3, [r6]
18370	ldr	fp, .L2645+4
18371	subs	r4, r4, r3
18372	ldr	r3, .L2645+32
18373	asrs	r4, r4, #1
18374	muls	r4, r3, r4
18375	uxth	r4, r4
18376.L2629:
18377	uxth	r3, r8
18378	cmp	r7, r3
18379	bls	.L2628
18380	ldr	r3, [r10]
18381	ldrh	r2, [r3, r4, lsl #1]
18382	cbz	r2, .L2630
18383	movs	r5, #1
18384	ldrh	r3, [fp, r4, lsl #1]
18385	mov	r1, r4
18386	ldr	r0, .L2645+36
18387	bl	printf
18388.L2630:
18389	movs	r3, #6
18390	ldr	r2, [r6]
18391	muls	r4, r3, r4
18392	movw	r3, #65535
18393	add	r8, r8, #1
18394	ldrh	r4, [r2, r4]
18395	cmp	r4, r3
18396	bne	.L2629
18397.L2628:
18398	mov	r1, r5
18399	ldr	r0, .L2645+40
18400	bl	printf
18401	cbz	r5, .L2621
18402	ldr	r1, .L2645+8
18403	movw	r2, #1849
18404	ldr	r0, .L2645+44
18405	bl	printf
18406	ldr	r1, .L2645+48
18407	ldr	r0, .L2645+52
18408	bl	printf
18409.L2621:
18410	add	sp, sp, #8
18411	@ sp needed
18412	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
18413.L2624:
18414	movs	r2, #0
18415	add	r1, sp, #4
18416	mov	r0, r4
18417	bl	log2phys
18418	ldr	r0, [sp, #4]
18419	adds	r3, r0, #1
18420	beq	.L2623
18421	ubfx	r0, r0, #10, #16
18422	bl	P2V_block_in_plane
18423	ldrh	r3, [r5, r0, lsl #1]
18424	adds	r3, r3, #1
18425	strh	r3, [r5, r0, lsl #1]	@ movhi
18426.L2623:
18427	adds	r4, r4, #1
18428	b	.L2622
18429.L2627:
18430	ldr	r3, [r7]
18431	uxth	r6, r4
18432	ldr	r8, .L2645+4
18433	ldrh	r2, [r3, r6, lsl #1]
18434	ldrh	r3, [r8, r6, lsl #1]
18435	cmp	r2, r3
18436	beq	.L2626
18437	mov	r1, r6
18438	ldr	r0, .L2645+56
18439	bl	printf
18440	ldr	r3, [r7]
18441	movw	r2, #65535
18442	ldrh	r3, [r3, r6, lsl #1]
18443	cmp	r3, r2
18444	beq	.L2626
18445	ldrh	r2, [r8, r6, lsl #1]
18446	cmp	r2, r3
18447	it	hi
18448	movhi	r5, #1
18449.L2626:
18450	adds	r4, r4, #1
18451	b	.L2625
18452.L2646:
18453	.align	2
18454.L2645:
18455	.word	.LANCHOR74
18456	.word	check_valid_page_count_table
18457	.word	.LANCHOR238
18458	.word	.LC48
18459	.word	.LANCHOR85
18460	.word	.LANCHOR89
18461	.word	.LANCHOR90
18462	.word	.LANCHOR83
18463	.word	-1431655765
18464	.word	.LC64
18465	.word	.LC65
18466	.word	.LC5
18467	.word	.LC6
18468	.word	.LC7
18469	.word	.LC63
18470	.word	.LANCHOR40
18471	.size	FtlCheckVpc, .-FtlCheckVpc
18472	.section	.text.Ftlscanalldata,"ax",%progbits
18473	.align	1
18474	.global	Ftlscanalldata
18475	.syntax unified
18476	.thumb
18477	.thumb_func
18478	.fpu softvfp
18479	.type	Ftlscanalldata, %function
18480Ftlscanalldata:
18481	@ args = 0, pretend = 0, frame = 8
18482	@ frame_needed = 0, uses_anonymous_args = 0
18483	push	{r4, r5, r6, r7, r8, lr}
18484	movs	r5, #0
18485	ldr	r7, .L2661
18486	sub	sp, sp, #32
18487	movs	r1, #0
18488	ldr	r8, .L2661+24
18489	ldr	r0, .L2661+4
18490	bl	printf
18491.L2648:
18492	ldr	r3, [r7]
18493	cmp	r5, r3
18494	bcc	.L2654
18495	add	sp, sp, #32
18496	@ sp needed
18497	pop	{r4, r5, r6, r7, r8, pc}
18498.L2654:
18499	movs	r2, #0
18500	add	r1, sp, #28
18501	mov	r0, r5
18502	bl	log2phys
18503	ubfx	r3, r5, #0, #11
18504	cbnz	r3, .L2649
18505	ldr	r2, [sp, #28]
18506	mov	r1, r5
18507	mov	r0, r8
18508	bl	printf
18509.L2649:
18510	ldr	r3, [sp, #28]
18511	adds	r2, r3, #1
18512	beq	.L2651
18513	ldr	r4, .L2661+8
18514	movs	r2, #0
18515	movs	r1, #1
18516	str	r3, [r4, #4]
18517	mov	r0, r4
18518	ldr	r3, .L2661+12
18519	str	r5, [r4, #16]
18520	str	r2, [r4]
18521	ldr	r3, [r3]
18522	str	r3, [r4, #8]
18523	ldr	r3, .L2661+16
18524	ldr	r6, [r3]
18525	str	r6, [r4, #12]
18526	bl	FlashReadPages
18527	ldr	r3, [r4]
18528	cmp	r3, #256
18529	beq	.L2652
18530	adds	r3, r3, #1
18531	beq	.L2652
18532	ldr	r3, [r6, #8]
18533	cmp	r5, r3
18534	beq	.L2651
18535.L2652:
18536	ldr	r2, [r4, #8]
18537	ldr	r3, [r4, #12]
18538	ldr	r0, .L2661+20
18539	ldr	r1, [r2, #4]
18540	str	r1, [sp, #16]
18541	mov	r1, r5
18542	ldr	r2, [r2]
18543	str	r2, [sp, #12]
18544	ldr	r2, [r3, #12]
18545	str	r2, [sp, #8]
18546	ldr	r2, [r3, #8]
18547	str	r2, [sp, #4]
18548	ldr	r2, [r3, #4]
18549	str	r2, [sp]
18550	ldr	r2, [r4, #4]
18551	ldr	r3, [r3]
18552	bl	printf
18553.L2651:
18554	adds	r5, r5, #1
18555	b	.L2648
18556.L2662:
18557	.align	2
18558.L2661:
18559	.word	.LANCHOR74
18560	.word	.LC66
18561	.word	.LANCHOR211
18562	.word	.LANCHOR189
18563	.word	.LANCHOR195
18564	.word	.LC68
18565	.word	.LC67
18566	.size	Ftlscanalldata, .-Ftlscanalldata
18567	.section	.text.FtlReUsePrevPpa,"ax",%progbits
18568	.align	1
18569	.global	FtlReUsePrevPpa
18570	.syntax unified
18571	.thumb
18572	.thumb_func
18573	.fpu softvfp
18574	.type	FtlReUsePrevPpa, %function
18575FtlReUsePrevPpa:
18576	@ args = 0, pretend = 0, frame = 8
18577	@ frame_needed = 0, uses_anonymous_args = 0
18578	push	{r0, r1, r4, r5, r6, r7, r8, lr}
18579	mov	r6, r0
18580	ldr	r5, .L2673
18581	ubfx	r0, r1, #10, #16
18582	str	r1, [sp, #4]
18583	bl	P2V_block_in_plane
18584	ldr	r2, [r5]
18585	mov	r7, r0
18586	ldrh	r3, [r2, r0, lsl #1]
18587	cmp	r3, #0
18588	bne	.L2664
18589	ldr	r2, .L2673+4
18590	ldr	r4, [r2]
18591	cmp	r4, #0
18592	beq	.L2665
18593	ldr	r2, .L2673+8
18594	movw	lr, #65535
18595	ldr	ip, .L2673+32
18596	ldr	r0, .L2673+12
18597	ldr	r2, [r2]
18598	ldrh	r1, [r0]
18599	mov	r8, r0
18600	subs	r4, r4, r2
18601	asrs	r4, r4, #1
18602	mul	r4, ip, r4
18603	mov	ip, #6
18604	uxth	r4, r4
18605.L2666:
18606	uxth	r0, r3
18607	cmp	r1, r0
18608	bls	.L2665
18609	cmp	r4, r7
18610	bne	.L2667
18611	mov	r1, r4
18612	ldr	r0, .L2673+4
18613	bl	List_remove_node
18614	ldrh	r3, [r8]
18615	cbnz	r3, .L2668
18616	ldr	r1, .L2673+16
18617	movw	r2, #2271
18618	ldr	r0, .L2673+20
18619	bl	printf
18620	ldr	r1, .L2673+24
18621	ldr	r0, .L2673+28
18622	bl	printf
18623.L2668:
18624	ldrh	r3, [r8]
18625	mov	r0, r4
18626	subs	r3, r3, #1
18627	strh	r3, [r8]	@ movhi
18628	bl	INSERT_DATA_LIST
18629	ldr	r2, [r5]
18630	ldrh	r3, [r2, r7, lsl #1]
18631.L2664:
18632	adds	r3, r3, #1
18633	strh	r3, [r2, r7, lsl #1]	@ movhi
18634	b	.L2665
18635.L2667:
18636	mul	r4, ip, r4
18637	adds	r3, r3, #1
18638	ldrh	r4, [r2, r4]
18639	cmp	r4, lr
18640	bne	.L2666
18641.L2665:
18642	movs	r2, #1
18643	add	r1, sp, #4
18644	mov	r0, r6
18645	bl	log2phys
18646	add	sp, sp, #8
18647	@ sp needed
18648	pop	{r4, r5, r6, r7, r8, pc}
18649.L2674:
18650	.align	2
18651.L2673:
18652	.word	.LANCHOR85
18653	.word	.LANCHOR89
18654	.word	.LANCHOR83
18655	.word	.LANCHOR90
18656	.word	.LANCHOR239
18657	.word	.LC5
18658	.word	.LC6
18659	.word	.LC7
18660	.word	-1431655765
18661	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
18662	.section	.text.FtlRecoverySuperblock,"ax",%progbits
18663	.align	1
18664	.global	FtlRecoverySuperblock
18665	.syntax unified
18666	.thumb
18667	.thumb_func
18668	.fpu softvfp
18669	.type	FtlRecoverySuperblock, %function
18670FtlRecoverySuperblock:
18671	@ args = 0, pretend = 0, frame = 56
18672	@ frame_needed = 0, uses_anonymous_args = 0
18673	ldrh	r3, [r0]
18674	movw	r2, #65535
18675	push	{r4, r5, r6, r7, r8, r10, fp, lr}
18676	mov	r10, r0
18677	sub	sp, sp, #56
18678	cmp	r3, r2
18679	beq	.L2839
18680	ldrh	r3, [r0, #2]
18681	str	r3, [sp, #12]
18682	ldrb	r3, [r0, #6]	@ zero_extendqisi2
18683	ldr	r1, [sp, #12]
18684	str	r3, [sp, #28]
18685	ldr	r3, .L2848
18686	ldrh	r3, [r3]
18687	cmp	r3, r1
18688	mov	r3, #0
18689	bne	.L2678
18690	strh	r3, [r0, #4]	@ movhi
18691.L2846:
18692	strb	r3, [r10, #6]
18693.L2839:
18694	movs	r0, #0
18695	add	sp, sp, #56
18696	@ sp needed
18697	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
18698.L2678:
18699	ldrh	r0, [r0, #16]
18700.L2679:
18701	cmp	r0, r2
18702	uxth	r5, r3
18703	add	r3, r3, #1
18704	beq	.L2680
18705	ldrb	r1, [r10, #8]	@ zero_extendqisi2
18706	cmp	r1, #1
18707	bne	.L2681
18708	bl	FtlGetLastWrittenPage
18709	adds	r6, r0, #1
18710	mov	r4, r0
18711	beq	.L2682
18712	ldr	r3, .L2848+4
18713	ldrb	r3, [r3]	@ zero_extendqisi2
18714	cmp	r3, #0
18715	bne	.L2760
18716	ldr	r3, .L2848+8
18717	ldrh	r5, [r3, r0, lsl #1]
18718.L2683:
18719	ldr	r3, .L2848+12
18720	movw	r8, #65535
18721	mov	fp, #36
18722	ldrh	ip, [r3]
18723	ldr	r3, .L2848+16
18724	ldr	r0, [r3]
18725	ldr	r3, .L2848+20
18726	ldr	r3, [r3]
18727	str	r3, [sp, #8]
18728	ldr	r3, .L2848+24
18729	ldrh	lr, [r3]
18730	add	r3, r10, #16
18731	str	r3, [sp, #20]
18732	str	r3, [sp, #4]
18733	movs	r3, #0
18734	mov	r6, r3
18735.L2684:
18736	uxth	r2, r3
18737	cmp	ip, r2
18738	bhi	.L2688
18739	ldrb	r3, [r10, #8]	@ zero_extendqisi2
18740	cmp	r3, #1
18741	bne	.L2761
18742	ldr	r3, .L2848+4
18743	ldrb	r3, [r3]	@ zero_extendqisi2
18744	adds	r3, r3, #0
18745	it	ne
18746	movne	r3, #1
18747.L2840:
18748	str	r3, [sp, #36]
18749	mov	r1, r6
18750	ldr	r2, [sp, #36]
18751	movs	r7, #0
18752	bl	FlashReadPages
18753	ldr	r3, .L2848+28
18754	movw	fp, #65535
18755	ldr	r8, .L2848+16
18756	ldr	r3, [r3]
18757	subs	r3, r3, #1
18758	str	r3, [sp, #4]
18759.L2690:
18760	uxth	r3, r7
18761	cmp	r6, r3
18762	bhi	.L2695
18763	bne	.L2693
18764	adds	r4, r4, #1
18765	uxth	r3, r4
18766	str	r3, [sp, #8]
18767	ldr	r3, [r8]
18768	ldr	r0, [r3, #4]
18769.L2841:
18770	ubfx	r0, r0, #10, #16
18771	bl	P2V_plane
18772	ldrb	r3, [r10, #8]	@ zero_extendqisi2
18773	str	r0, [sp, #16]
18774	cmp	r3, #1
18775	bne	.L2697
18776	ldr	r2, .L2848+4
18777	ldrb	r2, [r2]	@ zero_extendqisi2
18778	cbnz	r2, .L2697
18779	ldr	r1, [sp, #8]
18780	ldr	r2, .L2848+8
18781	ldrh	r2, [r2, r1, lsl #1]
18782	str	r2, [sp, #8]
18783.L2697:
18784	ldr	r2, .L2848
18785	ldr	r1, [sp, #8]
18786	ldrh	r2, [r2]
18787	cmp	r2, r1
18788	bne	.L2698
18789	ldrh	r2, [sp, #8]
18790	strh	r2, [r10, #2]	@ movhi
18791	movs	r2, #0
18792	strb	r2, [r10, #6]
18793	strh	r2, [r10, #4]	@ movhi
18794.L2698:
18795	ldr	r2, [sp, #8]
18796	ldr	r1, [sp, #12]
18797	cmp	r2, r1
18798	bne	.L2699
18799	ldr	r2, [sp, #16]
18800	ldr	r1, [sp, #28]
18801	cmp	r2, r1
18802	bne	.L2699
18803.L2847:
18804	ldr	r1, [sp, #8]
18805	mov	r0, r10
18806	bl	ftl_sb_update_avl_pages
18807	b	.L2839
18808.L2680:
18809	uxth	r1, r3
18810	adds	r1, r1, #8
18811	ldrh	r0, [r10, r1, lsl #1]
18812	b	.L2679
18813.L2681:
18814	movs	r1, #0
18815	bl	FtlGetLastWrittenPage
18816	mov	r4, r0
18817	adds	r0, r0, #1
18818	beq	.L2682
18819.L2760:
18820	mov	r5, r4
18821	b	.L2683
18822.L2682:
18823	ldr	r3, [sp, #12]
18824	cbz	r3, .L2685
18825	ldr	r1, .L2848+32
18826	movw	r2, #2350
18827	ldr	r0, .L2848+36
18828	bl	printf
18829	ldr	r1, .L2848+40
18830	ldr	r0, .L2848+44
18831	bl	printf
18832.L2685:
18833	ldr	r3, [sp, #28]
18834	cbz	r3, .L2686
18835	cmp	r5, r3
18836	beq	.L2686
18837	ldr	r1, .L2848+32
18838	movw	r2, #2351
18839	ldr	r0, .L2848+36
18840	bl	printf
18841	ldr	r1, .L2848+40
18842	ldr	r0, .L2848+44
18843	bl	printf
18844.L2686:
18845	movs	r3, #0
18846	strh	r3, [r10, #2]	@ movhi
18847	b	.L2846
18848.L2688:
18849	ldr	r1, [sp, #4]
18850	ldrh	r2, [r1], #2
18851	cmp	r2, r8
18852	str	r1, [sp, #4]
18853	beq	.L2687
18854	mla	r1, fp, r6, r0
18855	orr	r2, r5, r2, lsl #10
18856	str	r2, [r1, #4]
18857	movs	r2, #0
18858	str	r2, [r1, #8]
18859	mul	r2, lr, r6
18860	adds	r6, r6, #1
18861	uxth	r6, r6
18862	bic	r2, r2, #3
18863	mov	r7, r2
18864	ldr	r2, [sp, #8]
18865	add	r7, r7, r2
18866	str	r7, [r1, #12]
18867.L2687:
18868	adds	r3, r3, #1
18869	b	.L2684
18870.L2761:
18871	movs	r3, #0
18872	b	.L2840
18873.L2695:
18874	movs	r3, #36
18875	ldr	r1, [r8]
18876	muls	r3, r7, r3
18877	adds	r2, r1, r3
18878	ldr	r3, [r1, r3]
18879	cbnz	r3, .L2691
18880	ldr	r2, [r2, #12]
18881	ldr	r3, [r2, #4]
18882	adds	r1, r3, #1
18883	beq	.L2692
18884	ldr	r1, .L2848+28
18885	mov	r0, r3
18886	ldr	r1, [r1]
18887	bl	ftl_cmp_data_ver
18888	cbz	r0, .L2692
18889	ldr	r1, .L2848+28
18890	adds	r3, r3, #1
18891	str	r3, [r1]
18892.L2692:
18893	ldr	r3, [r2]
18894	adds	r3, r3, #1
18895	bne	.L2694
18896.L2693:
18897	uxth	r3, r4
18898	uxth	r7, r7
18899	str	r3, [sp, #8]
18900	movs	r2, #36
18901	ldr	r3, [r8]
18902	mla	r7, r2, r7, r3
18903	ldr	r0, [r7, #4]
18904	b	.L2841
18905.L2691:
18906	ldr	r1, [r2, #4]
18907	uxth	fp, r5
18908	ldr	r0, .L2848+48
18909	bl	printf
18910	ldrh	r2, [r10]
18911	ldr	r3, .L2848+52
18912	strh	r2, [r3]	@ movhi
18913.L2694:
18914	adds	r7, r7, #1
18915	b	.L2690
18916.L2699:
18917	movw	r2, #65535
18918	cmp	fp, r2
18919	bne	.L2700
18920	cmp	r3, #0
18921	bne	.L2701
18922.L2700:
18923	ldr	r3, .L2848+56
18924	uxth	fp, r5
18925	uxth	r5, r5
18926	mov	r7, #-1
18927	mov	r6, r7
18928	ldr	r2, [r3]
18929	adds	r2, r2, #1
18930	itt	eq
18931	ldreq	r2, [sp, #4]
18932	streq	r2, [r3]
18933	ldr	r3, [r3]
18934	str	r3, [sp, #24]
18935	ldr	r3, [sp, #12]
18936	adds	r3, r3, #7
18937	cmp	r5, r3
18938	itet	gt
18939	subgt	r4, fp, #7
18940	ldrle	r4, [sp, #12]
18941	uxthgt	r4, r4
18942.L2704:
18943	cmp	r4, fp
18944	bhi	.L2719
18945	ldr	r3, .L2848+12
18946	movw	lr, #65535
18947	mov	ip, #36
18948	ldrh	r8, [r3]
18949	ldr	r3, .L2848+16
18950	ldr	r0, [r3]
18951	ldr	r3, [sp, #20]
18952	str	r3, [sp, #32]
18953	movs	r3, #0
18954	mov	r5, r3
18955	b	.L2720
18956.L2706:
18957	ldr	r1, [sp, #32]
18958	ldrh	r2, [r1], #2
18959	cmp	r2, lr
18960	str	r1, [sp, #32]
18961	beq	.L2705
18962	mla	r1, ip, r5, r0
18963	adds	r5, r5, #1
18964	orr	r2, r4, r2, lsl #10
18965	uxth	r5, r5
18966	str	r2, [r1, #4]
18967.L2705:
18968	adds	r3, r3, #1
18969.L2720:
18970	uxth	r2, r3
18971	cmp	r8, r2
18972	bhi	.L2706
18973	mov	r1, r5
18974	ldr	r2, [sp, #36]
18975	bl	FlashReadPages
18976	ldr	r2, .L2848+4
18977	movs	r1, #36
18978	ldr	r3, .L2848+56
18979	movs	r0, #0
18980	movw	ip, #65535
18981	ldrb	lr, [r2]	@ zero_extendqisi2
18982	ldr	r2, .L2848+16
18983	ldr	r3, [r3]
18984	ldr	r2, [r2]
18985	mla	r5, r1, r5, r2
18986.L2707:
18987	cmp	r5, r2
18988	bne	.L2717
18989	cbz	r0, .L2718
18990	ldr	r2, .L2848+56
18991	str	r3, [r2]
18992.L2718:
18993	adds	r4, r4, #1
18994	uxth	r4, r4
18995	b	.L2704
18996.L2849:
18997	.align	2
18998.L2848:
18999	.word	.LANCHOR52
19000	.word	.LANCHOR16
19001	.word	.LANCHOR17
19002	.word	.LANCHOR38
19003	.word	.LANCHOR186
19004	.word	.LANCHOR108
19005	.word	.LANCHOR58
19006	.word	.LANCHOR165
19007	.word	.LANCHOR240
19008	.word	.LC5
19009	.word	.LC6
19010	.word	.LC7
19011	.word	.LC69
19012	.word	.LANCHOR241
19013	.word	.LANCHOR139
19014.L2717:
19015	ldr	r1, [r2]
19016	cbnz	r1, .L2708
19017	ldr	r1, [r2, #12]
19018	ldrh	r8, [r1]
19019	cmp	r8, ip
19020	beq	.L2764
19021	ldr	r1, [r1, #4]
19022	cmp	r1, #-1
19023	beq	.L2764
19024	adds	r0, r7, #1
19025	bne	.L2766
19026	ldr	r0, .L2850
19027	ldrh	r0, [r0, r4, lsl #1]
19028	cmp	r0, ip
19029	bne	.L2710
19030	cmp	lr, #0
19031	beq	.L2766
19032.L2710:
19033	ldr	r0, [sp, #4]
19034	cmp	r0, r3
19035	it	ne
19036	movne	r7, r3
19037.L2766:
19038	movs	r0, #1
19039	b	.L2709
19040.L2708:
19041	cbz	r0, .L2711
19042	ldr	r2, .L2850+4
19043	str	r3, [r2]
19044.L2711:
19045	ldr	r3, .L2850+8
19046	ldrh	r2, [r10]
19047	strh	r2, [r3]	@ movhi
19048	ldrb	r3, [r10, #8]	@ zero_extendqisi2
19049	cbnz	r3, .L2701
19050	ldr	r3, .L2850
19051	ldrh	r2, [r3, r4, lsl #1]
19052	movw	r3, #65535
19053	cmp	r2, r3
19054	bne	.L2713
19055	adds	r1, r7, #1
19056	ldr	r3, .L2850+4
19057	beq	.L2714
19058	str	r7, [r3]
19059.L2701:
19060	ldr	fp, [sp, #12]
19061	movs	r2, #1
19062	ldr	r6, .L2850+12
19063	ldr	r3, .L2850+16
19064	strh	r2, [r3]	@ movhi
19065.L2721:
19066	ldr	r3, .L2850+20
19067	movw	ip, #65535
19068	ldr	r0, [r6]
19069	mov	lr, #36
19070	ldr	r1, [sp, #20]
19071	movs	r2, #0
19072	ldrh	r5, [r3]
19073	ldr	r3, .L2850+24
19074	str	r2, [sp, #24]
19075	ldrb	r7, [r3]	@ zero_extendqisi2
19076.L2722:
19077	uxth	r3, r2
19078	cmp	r3, r5
19079	bcc	.L2725
19080	ldr	r2, [sp, #36]
19081	ldr	r1, [sp, #24]
19082	bl	FlashReadPages
19083	movs	r3, #0
19084.L2845:
19085	str	r3, [sp, #32]
19086	ldr	r2, [sp, #24]
19087	ldrh	r3, [sp, #32]
19088	cmp	r2, r3
19089	bhi	.L2754
19090	ldrb	r3, [r10, #8]	@ zero_extendqisi2
19091	add	fp, fp, #1
19092	uxth	fp, fp
19093	cmp	r3, #1
19094	bne	.L2755
19095	ldr	r3, .L2850+24
19096	ldrb	r3, [r3]	@ zero_extendqisi2
19097	cbz	r3, .L2755
19098	ldr	r3, .L2850+28
19099	ldrh	r3, [r3]
19100	cmp	r3, fp
19101	bne	.L2755
19102	ldr	r3, [sp, #8]
19103	cmp	r3, fp
19104	beq	.L2730
19105.L2755:
19106	ldr	r3, .L2850+32
19107	ldrh	r3, [r3]
19108	cmp	r3, fp
19109	bne	.L2721
19110	ldr	r2, .L2850+20
19111	movw	r0, #65535
19112	movs	r3, #0
19113	strh	fp, [r10, #2]	@ movhi
19114	strh	r3, [r10, #4]	@ movhi
19115	ldrh	r2, [r2]
19116.L2756:
19117	uxth	r1, r3
19118	cmp	r1, r2
19119	bcs	.L2839
19120	ldr	r1, [sp, #20]
19121	ldrh	r4, [r1], #2
19122	cmp	r4, r0
19123	str	r1, [sp, #20]
19124	add	r1, r3, #1
19125	bne	.L2846
19126	mov	r3, r1
19127	b	.L2756
19128.L2714:
19129	ldr	r2, [sp, #4]
19130	ldr	r1, [sp, #24]
19131	cmp	r2, r1
19132	itet	eq
19133	ldreq	r2, [r3]
19134	movne	r2, r1
19135	addeq	r2, r2, #-1
19136.L2842:
19137	str	r2, [r3]
19138	b	.L2701
19139.L2713:
19140	ldr	r3, [sp, #4]
19141	cmp	r6, r3
19142	beq	.L2716
19143	adds	r2, r6, #1
19144	beq	.L2701
19145	ldr	r3, .L2850+4
19146	str	r6, [r3]
19147	b	.L2701
19148.L2716:
19149	ldr	r2, .L2850+4
19150	ldr	r1, [sp, #4]
19151	ldr	r3, [r2]
19152	cmp	r1, r3
19153	beq	.L2701
19154	subs	r3, r3, #1
19155	str	r3, [r2]
19156	b	.L2701
19157.L2764:
19158	mov	r1, r3
19159	mov	r3, r6
19160.L2709:
19161	mov	r6, r3
19162	adds	r2, r2, #36
19163	mov	r3, r1
19164	b	.L2707
19165.L2719:
19166	mov	r2, #-1
19167	ldr	r3, .L2850+4
19168	b	.L2842
19169.L2725:
19170	ldrh	r3, [r1], #2
19171	cmp	r3, ip
19172	beq	.L2723
19173	ldr	r4, [sp, #24]
19174	orr	r3, fp, r3, lsl #10
19175	mla	r4, lr, r4, r0
19176	str	r3, [r4, #4]
19177	ldrb	r8, [r10, #8]	@ zero_extendqisi2
19178	cmp	r8, #1
19179	bne	.L2724
19180	cbz	r7, .L2724
19181	orr	r3, r3, #-2147483648
19182	str	r3, [r4, #4]
19183.L2724:
19184	ldr	r3, [sp, #24]
19185	adds	r3, r3, #1
19186	uxth	r3, r3
19187	str	r3, [sp, #24]
19188.L2723:
19189	adds	r2, r2, #1
19190	b	.L2722
19191.L2754:
19192	ldr	r3, [sp, #32]
19193	movs	r5, #36
19194	ldr	r8, [r6]
19195	muls	r5, r3, r5
19196	add	r7, r8, r5
19197	ldr	r4, [r7, #4]
19198	ubfx	r0, r4, #10, #16
19199	str	r4, [sp, #52]
19200	bl	P2V_plane
19201	ldr	r3, [sp, #12]
19202	cmp	fp, r3
19203	bcc	.L2727
19204	bne	.L2728
19205	ldr	r3, [sp, #28]
19206	cmp	r3, r0
19207	bhi	.L2727
19208.L2728:
19209	ldr	r3, [sp, #8]
19210	cmp	fp, r3
19211	bne	.L2729
19212	ldr	r3, [sp, #16]
19213	cmp	r3, r0
19214	beq	.L2730
19215.L2729:
19216	ldr	r3, [r8, r5]
19217	adds	r3, r3, #1
19218	beq	.L2731
19219	ldr	r3, [r7, #12]
19220	movw	r2, #61589
19221	ldrh	r1, [r3]
19222	cmp	r1, r2
19223	beq	.L2732
19224	ldrh	r0, [r10]
19225.L2843:
19226	bl	decrement_vpc_count
19227	b	.L2727
19228.L2732:
19229	ldr	r2, [r3, #4]
19230	str	r2, [sp, #4]
19231	adds	r2, r2, #1
19232	beq	.L2733
19233	ldr	r2, .L2850+36
19234	ldr	r0, [sp, #4]
19235	ldr	r1, [r2]
19236	bl	ftl_cmp_data_ver
19237	cbz	r0, .L2733
19238	ldr	r1, [sp, #4]
19239	adds	r1, r1, #1
19240	str	r1, [r2]
19241.L2733:
19242	ldr	r4, [r3, #8]
19243	add	r1, sp, #48
19244	ldr	r3, [r3, #12]
19245	movs	r2, #0
19246	mov	r0, r4
19247	str	r3, [sp, #44]
19248	bl	log2phys
19249	ldr	r3, .L2850+4
19250	ldr	r1, [r3]
19251	adds	r3, r1, #1
19252	beq	.L2734
19253	ldr	r0, [sp, #4]
19254	bl	ftl_cmp_data_ver
19255	cmp	r0, #0
19256	beq	.L2734
19257	ldr	r3, [sp, #44]
19258	adds	r7, r3, #1
19259	beq	.L2735
19260	ldr	r0, [r6]
19261	movs	r2, #0
19262	movs	r1, #1
19263	add	r0, r0, r5
19264	str	r3, [r0, #4]
19265	ldr	r7, [r0, #12]
19266	bl	FlashReadPages
19267	ldr	r2, [r6]
19268	ldr	r1, [r2, r5]
19269	adds	r3, r2, r5
19270	adds	r1, r1, #1
19271	bne	.L2736
19272.L2737:
19273	mov	r3, #-1
19274	str	r3, [sp, #44]
19275.L2744:
19276	ldr	r7, [sp, #44]
19277	adds	r0, r7, #1
19278	beq	.L2727
19279.L2759:
19280	ubfx	r0, r7, #10, #16
19281	bl	P2V_block_in_plane
19282	ldr	r3, .L2850+40
19283	mov	r4, r0
19284	ldrh	r3, [r3]
19285	cmp	r3, r0
19286	bhi	.L2750
19287	ldr	r1, .L2850+44
19288	movw	r2, #2683
19289	ldr	r0, .L2850+48
19290	bl	printf
19291	ldr	r1, .L2850+52
19292	ldr	r0, .L2850+56
19293	bl	printf
19294.L2750:
19295	ldr	r3, .L2850+60
19296	ldr	r3, [r3]
19297	ldrh	r3, [r3, r4, lsl #1]
19298	cmp	r3, #0
19299	beq	.L2751
19300	mov	r0, r4
19301	b	.L2843
19302.L2735:
19303	ldr	r3, [sp, #52]
19304	ldr	r2, [sp, #48]
19305	cmp	r2, r3
19306	bne	.L2727
19307	movs	r2, #1
19308	add	r1, sp, #44
19309	mov	r0, r4
19310	bl	log2phys
19311.L2727:
19312	ldr	r3, [sp, #32]
19313	adds	r3, r3, #1
19314	b	.L2845
19315.L2736:
19316	ldr	r1, [r7, #8]
19317	cmp	r4, r1
19318	bne	.L2737
19319	ldr	r8, [r7, #4]
19320	ldr	r0, .L2850+4
19321	mov	r1, r8
19322	ldr	r0, [r0]
19323	bl	ftl_cmp_data_ver
19324	cmp	r0, #0
19325	beq	.L2737
19326	ldr	r1, [sp, #48]
19327	ldr	r0, [sp, #52]
19328	cmp	r1, r0
19329	bne	.L2739
19330.L2742:
19331	ldr	r1, [sp, #44]
19332	mov	r0, r4
19333	bl	FtlReUsePrevPpa
19334	b	.L2737
19335.L2851:
19336	.align	2
19337.L2850:
19338	.word	.LANCHOR123
19339	.word	.LANCHOR139
19340	.word	.LANCHOR241
19341	.word	.LANCHOR186
19342	.word	.LANCHOR242
19343	.word	.LANCHOR38
19344	.word	.LANCHOR16
19345	.word	.LANCHOR53
19346	.word	.LANCHOR52
19347	.word	.LANCHOR165
19348	.word	.LANCHOR40
19349	.word	.LANCHOR240
19350	.word	.LC5
19351	.word	.LC6
19352	.word	.LC7
19353	.word	.LANCHOR85
19354.L2739:
19355	ldr	r0, [sp, #44]
19356	cmp	r1, r0
19357	beq	.L2737
19358	adds	r0, r1, #1
19359	beq	.L2740
19360	str	r1, [r3, #4]
19361	movs	r2, #0
19362	movs	r1, #1
19363	mov	r0, r3
19364	ldr	r7, [r3, #12]
19365	bl	FlashReadPages
19366.L2741:
19367	ldr	r3, [r6]
19368	ldr	r3, [r3, r5]
19369	adds	r3, r3, #1
19370	beq	.L2742
19371	ldr	r3, [r7, #4]
19372	ldr	r2, .L2852
19373	mov	r1, r3
19374	ldr	r0, [r2]
19375	bl	ftl_cmp_data_ver
19376	cmp	r0, #0
19377	beq	.L2742
19378	mov	r1, r3
19379	mov	r0, r8
19380	bl	ftl_cmp_data_ver
19381	cmp	r0, #0
19382	beq	.L2737
19383	b	.L2742
19384.L2740:
19385	str	r1, [r2, r5]
19386	b	.L2741
19387.L2734:
19388	ldr	r3, [sp, #52]
19389	ldr	r2, [sp, #48]
19390	cmp	r2, r3
19391	beq	.L2744
19392	ldr	r3, [sp, #44]
19393	adds	r7, r3, #1
19394	beq	.L2746
19395	ldr	r2, .L2852+4
19396	ubfx	r3, r3, #10, #21
19397	ldr	r2, [r2]
19398	cmp	r3, r2
19399	bcs	.L2727
19400.L2746:
19401	movs	r2, #1
19402	add	r1, sp, #52
19403	mov	r0, r4
19404	bl	log2phys
19405	ldr	r7, [sp, #48]
19406	adds	r5, r7, #1
19407	beq	.L2744
19408	ldr	r3, [sp, #44]
19409	cmp	r7, r3
19410	beq	.L2759
19411	ubfx	r0, r7, #10, #16
19412	bl	P2V_block_in_plane
19413	ldr	r3, .L2852+8
19414	ldrh	r3, [r3]
19415	cmp	r3, r0
19416	beq	.L2749
19417	ldr	r3, .L2852+12
19418	ldrh	r3, [r3]
19419	cmp	r3, r0
19420	beq	.L2749
19421	ldr	r3, .L2852+16
19422	ldrh	r3, [r3]
19423	cmp	r3, r0
19424	bne	.L2744
19425.L2749:
19426	ldr	r0, [r6]
19427	movs	r2, #0
19428	movs	r1, #1
19429	str	r7, [r0, #4]
19430	ldr	r5, [r0, #12]
19431	bl	FlashReadPages
19432	ldr	r3, [r6]
19433	ldr	r3, [r3]
19434	adds	r3, r3, #1
19435	beq	.L2744
19436	ldr	r1, [r5, #4]
19437	ldr	r0, [sp, #4]
19438	bl	ftl_cmp_data_ver
19439	cmp	r0, #0
19440	bne	.L2744
19441	movs	r2, #1
19442	add	r1, sp, #48
19443	mov	r0, r4
19444	bl	log2phys
19445	b	.L2744
19446.L2751:
19447	mov	r1, r4
19448	ldr	r0, .L2852+20
19449	bl	printf
19450	b	.L2727
19451.L2731:
19452	ldrh	r3, [r10]
19453	mov	r1, r4
19454	ldr	r2, .L2852+24
19455	ldr	r0, .L2852+28
19456	strh	r3, [r2]	@ movhi
19457	ldr	r2, [sp, #4]
19458	bl	printf
19459	ldr	r2, .L2852+32
19460	ldr	r3, [r2]
19461	cmp	r3, #31
19462	bhi	.L2752
19463	ldr	r0, [sp, #52]
19464	ldr	r1, .L2852+36
19465	str	r0, [r1, r3, lsl #2]
19466	adds	r3, r3, #1
19467	str	r3, [r2]
19468.L2752:
19469	ldrh	r0, [r10]
19470	bl	decrement_vpc_count
19471	ldr	r3, .L2852
19472	ldr	r2, [r3]
19473	adds	r1, r2, #1
19474	bne	.L2753
19475	ldr	r2, [sp, #4]
19476.L2844:
19477	str	r2, [r3]
19478	b	.L2727
19479.L2753:
19480	ldr	r1, [sp, #4]
19481	cmp	r1, r2
19482	bcs	.L2727
19483	mov	r2, r1
19484	b	.L2844
19485.L2730:
19486	ldrb	r3, [sp, #16]	@ zero_extendqisi2
19487	ldr	r2, [sp, #16]
19488	strb	r3, [r10, #6]
19489	ldrh	r3, [sp, #8]
19490	strh	r3, [r10, #2]	@ movhi
19491	b	.L2847
19492.L2853:
19493	.align	2
19494.L2852:
19495	.word	.LANCHOR139
19496	.word	.LANCHOR43
19497	.word	.LANCHOR93
19498	.word	.LANCHOR94
19499	.word	.LANCHOR95
19500	.word	.LC70
19501	.word	.LANCHOR241
19502	.word	.LC71
19503	.word	.LANCHOR243
19504	.word	.LANCHOR244
19505	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
19506	.section	.text.FtlGcScanTempBlk,"ax",%progbits
19507	.align	1
19508	.global	FtlGcScanTempBlk
19509	.syntax unified
19510	.thumb
19511	.thumb_func
19512	.fpu softvfp
19513	.type	FtlGcScanTempBlk, %function
19514FtlGcScanTempBlk:
19515	@ args = 0, pretend = 0, frame = 64
19516	@ frame_needed = 0, uses_anonymous_args = 0
19517	ldr	r3, .L2899
19518	push	{r4, r5, r6, r7, r8, r10, fp, lr}
19519	mov	r4, r0
19520	sub	sp, sp, #64
19521	ldrh	r5, [r3]
19522	movw	r3, #65535
19523	cmp	r5, r3
19524	beq	.L2883
19525	cbnz	r5, .L2855
19526.L2856:
19527	bl	FtlGcPageVarInit
19528	b	.L2857
19529.L2883:
19530	movs	r5, #0
19531.L2855:
19532	ldr	r3, .L2899+4
19533	ldrh	r3, [r3]
19534	cmp	r3, r1
19535	beq	.L2856
19536.L2857:
19537	ldr	r8, .L2899+80
19538	mov	r3, #-1
19539	str	r3, [sp, #8]
19540.L2858:
19541	ldrh	r1, [r4]
19542	movw	r3, #65535
19543	movs	r2, #0
19544	strb	r2, [r4, #8]
19545	cmp	r1, r3
19546	beq	.L2859
19547.L2882:
19548	ldr	r3, .L2899+8
19549	movs	r2, #0
19550	ldr	r0, [r8]
19551	mov	fp, r2
19552	movw	lr, #65535
19553	mov	r10, #36
19554	ldrh	r3, [r3]
19555	str	r3, [sp, #12]
19556	ldr	r3, .L2899+12
19557	ldr	r3, [r3]
19558	str	r3, [sp, #16]
19559	ldr	r3, .L2899+16
19560	ldrh	r3, [r3]
19561	str	r3, [sp, #20]
19562	ldr	r3, .L2899+20
19563	ldr	r7, [r3]
19564	ldr	r3, .L2899+24
19565	ldrh	ip, [r3]
19566	add	r3, r4, #16
19567	str	r3, [sp, #4]
19568.L2860:
19569	ldr	r1, [sp, #12]
19570	uxth	r3, r2
19571	cmp	r1, r3
19572	bhi	.L2862
19573	mov	r10, #0
19574	movs	r2, #0
19575	mov	r1, fp
19576	bl	FlashReadPages
19577.L2863:
19578	uxth	r3, r10
19579	cmp	fp, r3
19580	bhi	.L2881
19581	ldr	r3, .L2899+4
19582	adds	r5, r5, #1
19583	uxth	r5, r5
19584	ldrh	r3, [r3]
19585	cmp	r3, r5
19586	bhi	.L2882
19587	movs	r2, #0
19588	b	.L2859
19589.L2862:
19590	ldr	r1, [sp, #4]
19591	ldrh	r3, [r1], #2
19592	cmp	r3, lr
19593	str	r1, [sp, #4]
19594	beq	.L2861
19595	mla	r1, r10, fp, r0
19596	orr	r3, r5, r3, lsl #10
19597	str	r3, [r1, #4]
19598	ldr	r3, [sp, #20]
19599	mul	r3, r3, fp
19600	bic	r3, r3, #3
19601	mov	r6, r3
19602	ldr	r3, [sp, #16]
19603	add	r6, r6, r3
19604	mul	r3, ip, fp
19605	str	r6, [r1, #8]
19606	bic	r3, r3, #3
19607	add	r3, r3, r7
19608	str	r3, [r1, #12]
19609	add	r3, fp, #1
19610	uxth	fp, r3
19611.L2861:
19612	adds	r2, r2, #1
19613	b	.L2860
19614.L2881:
19615	movs	r7, #36
19616	ldr	r6, [r8]
19617	mul	r7, r7, r10
19618	adds	r3, r6, r7
19619	ldr	r2, [r3, #4]
19620	str	r3, [sp, #12]
19621	ubfx	r0, r2, #10, #16
19622	str	r2, [sp, #4]
19623	bl	P2V_plane
19624	ldr	r6, [r6, r7]
19625	mov	r2, r0
19626	ldr	r3, [sp, #12]
19627	ldr	r3, [r3, #12]
19628	cmp	r6, #0
19629	bne	.L2864
19630	ldrh	r0, [r3]
19631	movw	r1, #65535
19632	cmp	r0, r1
19633	bne	.L2865
19634.L2868:
19635	ldr	r3, .L2899+28
19636	ldrb	r3, [r3]	@ zero_extendqisi2
19637	cbz	r3, .L2895
19638	ldr	r3, .L2899+32
19639	movs	r1, #1
19640	str	r1, [r3]
19641.L2859:
19642	ldr	r3, .L2899
19643	movw	r1, #65535
19644	mov	r0, r4
19645	strh	r5, [r4, #2]	@ movhi
19646	strb	r2, [r4, #6]
19647	strh	r1, [r3]	@ movhi
19648	mov	r1, r5
19649	bl	ftl_sb_update_avl_pages
19650	ldr	r0, [sp, #8]
19651	add	sp, sp, #64
19652	@ sp needed
19653	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
19654.L2865:
19655	ldr	r1, .L2899+36
19656	ldr	r0, [r3, #8]
19657	ldr	r1, [r1]
19658	cmp	r0, r1
19659	bhi	.L2868
19660	ldr	r2, .L2899+40
19661	ldrb	r2, [r2]	@ zero_extendqisi2
19662	cbnz	r2, .L2871
19663.L2872:
19664	ldr	r2, [r3, #8]
19665	add	r10, r10, #1
19666	ldr	r1, [sp, #4]
19667	ldr	r0, [r3, #12]
19668	bl	FtlGcUpdatePage
19669	b	.L2863
19670.L2895:
19671	ldr	r2, .L2899+44
19672	ldrh	r1, [r4]
19673	ldr	r2, [r2]
19674	strh	r3, [r2, r1, lsl #1]	@ movhi
19675.L2898:
19676	ldrh	r0, [r4]
19677	bl	INSERT_FREE_LIST
19678	ldr	r2, .L2899+48
19679	movw	r3, #65535
19680	strh	r3, [r4]	@ movhi
19681	strh	r3, [r2]	@ movhi
19682.L2897:
19683	bl	FtlGcPageVarInit
19684	movs	r5, #0
19685	b	.L2858
19686.L2871:
19687	mov	r2, r6
19688	add	r1, sp, #24
19689	str	r3, [sp, #12]
19690	bl	log2phys
19691	ldr	r3, [sp, #12]
19692	ldr	r1, [sp, #24]
19693	ldr	r2, [r3, #12]
19694	cmp	r2, r1
19695	bne	.L2872
19696	adds	r1, r2, #1
19697	beq	.L2872
19698	str	r2, [sp, #32]
19699	movs	r1, #1
19700	ldr	r2, .L2899+52
19701	add	r0, sp, #28
19702	ldr	r2, [r2]
19703	str	r2, [sp, #36]
19704	ldr	r2, .L2899+56
19705	ldr	r2, [r2]
19706	str	r2, [sp, #40]
19707	mov	r2, r6
19708	bl	FlashReadPages
19709	ldr	r2, .L2899+60
19710	ldr	r1, [r8]
19711	ldr	r0, [sp, #36]
19712	ldrh	r2, [r2]
19713	ldr	r3, [sp, #12]
19714	add	r7, r7, r1
19715	lsl	ip, r2, #7
19716.L2873:
19717	cmp	r6, ip
19718	beq	.L2872
19719	ldr	r1, [r7, #8]
19720	ldr	r2, [r0, r6, lsl #2]
19721	ldr	r1, [r1, r6, lsl #2]
19722	cmp	r1, r2
19723	beq	.L2874
19724	ldr	r2, [sp, #32]
19725	ldrh	r1, [r4]
19726	ldr	r0, .L2899+64
19727	bl	printf
19728	ldr	r3, .L2899+44
19729	movs	r1, #0
19730	ldrh	r2, [r4]
19731	ldr	r3, [r3]
19732	strh	r1, [r3, r2, lsl #1]	@ movhi
19733	b	.L2898
19734.L2874:
19735	adds	r6, r6, #1
19736	b	.L2873
19737.L2864:
19738	ldr	r2, [sp, #4]
19739	ldrh	r1, [r4]
19740	ldr	r0, .L2899+68
19741	bl	printf
19742	ldr	r3, .L2899+72
19743	ldrh	r2, [r4]
19744	ldr	r3, [r3]
19745	cbnz	r3, .L2877
19746	ldr	r3, .L2899+28
19747	ldrb	r3, [r3]	@ zero_extendqisi2
19748	cbz	r3, .L2878
19749.L2877:
19750	ldr	r3, .L2899+76
19751	ldr	r3, [r3]
19752	ldrh	r3, [r3, r2, lsl #1]
19753	cmp	r3, #159
19754	bls	.L2879
19755.L2878:
19756	ldr	r3, [r8]
19757	ldr	r3, [r3, r7]
19758	adds	r3, r3, #1
19759	bne	.L2880
19760.L2879:
19761	ldr	r3, [r8]
19762	add	r7, r7, r3
19763	ldr	r3, [r7, #4]
19764	str	r3, [sp, #8]
19765.L2880:
19766	ldr	r3, .L2899+44
19767	movs	r1, #0
19768	ldr	r3, [r3]
19769	strh	r1, [r3, r2, lsl #1]	@ movhi
19770	ldrh	r0, [r4]
19771	bl	INSERT_FREE_LIST
19772	movw	r3, #65535
19773	strh	r3, [r4]	@ movhi
19774	b	.L2897
19775.L2900:
19776	.align	2
19777.L2899:
19778	.word	.LANCHOR245
19779	.word	.LANCHOR52
19780	.word	.LANCHOR38
19781	.word	.LANCHOR107
19782	.word	.LANCHOR57
19783	.word	.LANCHOR108
19784	.word	.LANCHOR58
19785	.word	.LANCHOR16
19786	.word	.LANCHOR138
19787	.word	.LANCHOR74
19788	.word	.LANCHOR2
19789	.word	.LANCHOR85
19790	.word	.LANCHOR213
19791	.word	.LANCHOR194
19792	.word	.LANCHOR196
19793	.word	.LANCHOR55
19794	.word	.LC72
19795	.word	.LC73
19796	.word	.LANCHOR104
19797	.word	.LANCHOR80
19798	.word	.LANCHOR186
19799	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
19800	.section	.text.FtlGcFreeTempBlock,"ax",%progbits
19801	.align	1
19802	.global	FtlGcFreeTempBlock
19803	.syntax unified
19804	.thumb
19805	.thumb_func
19806	.fpu softvfp
19807	.type	FtlGcFreeTempBlock, %function
19808FtlGcFreeTempBlock:
19809	@ args = 0, pretend = 0, frame = 16
19810	@ frame_needed = 0, uses_anonymous_args = 0
19811	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
19812	ldr	r3, .L2925
19813	ldr	r3, [r3]
19814	cbz	r3, .L2902
19815.L2907:
19816	movs	r0, #0
19817.L2901:
19818	add	sp, sp, #16
19819	@ sp needed
19820	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
19821.L2902:
19822	ldr	r0, .L2925+4
19823	movw	r3, #65535
19824	ldr	r5, .L2925+8
19825	ldrh	r6, [r0]
19826	mov	r4, r0
19827	cmp	r6, r3
19828	beq	.L2904
19829	ldr	r3, .L2925+12
19830	ldrh	r1, [r3]
19831	bl	FtlGcScanTempBlk
19832	str	r0, [sp, #12]
19833	adds	r0, r0, #1
19834	beq	.L2904
19835	ldr	r3, .L2925+16
19836	ldr	r2, [r3]
19837	ldrh	r3, [r2, r6, lsl #1]
19838	cmp	r3, #4
19839	bls	.L2905
19840	subs	r3, r3, #5
19841	movs	r0, #1
19842	strh	r3, [r2, r6, lsl #1]	@ movhi
19843	bl	FtlEctTblFlush
19844.L2905:
19845	ldr	r3, [r5]
19846	cbnz	r3, .L2906
19847	ldr	r2, .L2925+20
19848	ldr	r0, [sp, #12]
19849	ldr	r3, [r2, #96]
19850	ubfx	r0, r0, #10, #16
19851	adds	r3, r3, #1
19852	str	r3, [r2, #96]
19853	bl	FtlBbmMapBadBlock
19854	bl	FtlBbmTblFlush
19855.L2906:
19856	movs	r3, #0
19857	movs	r0, #1
19858	str	r3, [r5]
19859	b	.L2901
19860.L2904:
19861	ldrh	r2, [r4]
19862	movs	r3, #0
19863	str	r3, [r5]
19864	movw	r3, #65535
19865	cmp	r2, r3
19866	beq	.L2907
19867	ldr	r6, .L2925+12
19868	bl	FtlCacheWriteBack
19869	ldrb	r0, [r4, #7]	@ zero_extendqisi2
19870	ldrh	r2, [r6]
19871	ldr	r5, .L2925+24
19872	muls	r2, r0, r2
19873	ldrh	r1, [r5]
19874	cmp	r1, r2
19875	beq	.L2908
19876	ldr	r1, .L2925+28
19877	movs	r2, #193
19878	ldr	r0, .L2925+32
19879	bl	printf
19880	ldr	r1, .L2925+36
19881	ldr	r0, .L2925+40
19882	bl	printf
19883.L2908:
19884	ldrh	r6, [r6]
19885	ldrb	r3, [r4, #7]	@ zero_extendqisi2
19886	ldr	r2, .L2925+44
19887	ldrh	r0, [r4]
19888	ldr	fp, .L2925+84
19889	smulbb	r3, r3, r6
19890	ldr	r1, [r2]
19891	movs	r6, #0
19892	mov	r10, r2
19893	strh	r3, [r1, r0, lsl #1]	@ movhi
19894	ldr	r1, .L2925+48
19895	ldrh	r3, [r5]
19896	ldr	r0, [r1]
19897	add	r3, r3, r0
19898	str	r3, [r1]
19899.L2909:
19900	ldrh	r2, [r5]
19901	uxth	r3, r6
19902	cmp	r2, r3
19903	bhi	.L2913
19904	movw	r0, #65535
19905	bl	decrement_vpc_count
19906	ldr	r3, .L2925+52
19907	ldrb	r3, [r3]	@ zero_extendqisi2
19908	cbz	r3, .L2914
19909	ldrh	r1, [r4]
19910	ldr	r0, .L2925+56
19911	bl	printf
19912.L2914:
19913	ldrh	r0, [r4]
19914	ldr	r3, [r10]
19915	ldrh	r3, [r3, r0, lsl #1]
19916	cmp	r3, #0
19917	beq	.L2915
19918	bl	INSERT_DATA_LIST
19919.L2916:
19920	ldr	r3, .L2925+60
19921	movw	r6, #65535
19922	strh	r6, [r4]	@ movhi
19923	movs	r4, #0
19924	strh	r4, [r5]	@ movhi
19925	strh	r4, [r3]	@ movhi
19926	bl	l2p_flush
19927	bl	FtlVpcTblFlush
19928	ldr	r3, .L2925+64
19929	strh	r6, [r3]	@ movhi
19930	ldr	r3, .L2925+68
19931	ldrh	r2, [r3]
19932	ldr	r3, .L2925+72
19933	ldrh	r3, [r3]
19934	add	r3, r3, r3, lsl #1
19935	cmp	r2, r3, asr #2
19936	ble	.L2907
19937	ldr	r3, .L2925+76
19938	movs	r2, #20
19939	mov	r0, r4
19940	strh	r2, [r3]	@ movhi
19941	b	.L2901
19942.L2913:
19943	uxth	r3, r6
19944	mov	r8, #12
19945	ldr	r2, [fp]
19946	mul	r8, r8, r3
19947	ldr	r3, .L2925+80
19948	ldr	r3, [r3]
19949	add	r7, r3, r8
19950	ldr	r0, [r7, #8]
19951	cmp	r0, r2
19952	bcc	.L2910
19953.L2923:
19954	ldrh	r0, [r4]
19955	b	.L2924
19956.L2910:
19957	movs	r2, #0
19958	add	r1, sp, #12
19959	str	r3, [sp, #4]
19960	bl	log2phys
19961	ldr	r3, [sp, #4]
19962	ldr	r2, [sp, #12]
19963	ldr	r0, [r3, r8]
19964	cmp	r0, r2
19965	bne	.L2912
19966	ubfx	r0, r0, #10, #16
19967	bl	P2V_block_in_plane
19968	movs	r2, #1
19969	mov	r8, r0
19970	adds	r1, r7, #4
19971	ldr	r0, [r7, #8]
19972	bl	log2phys
19973	mov	r0, r8
19974.L2924:
19975	bl	decrement_vpc_count
19976	b	.L2911
19977.L2912:
19978	ldr	r3, [r7, #4]
19979	cmp	r2, r3
19980	bne	.L2923
19981.L2911:
19982	adds	r6, r6, #1
19983	b	.L2909
19984.L2915:
19985	bl	INSERT_FREE_LIST
19986	b	.L2916
19987.L2926:
19988	.align	2
19989.L2925:
19990	.word	.LANCHOR78
19991	.word	.LANCHOR95
19992	.word	.LANCHOR138
19993	.word	.LANCHOR52
19994	.word	.LANCHOR80
19995	.word	.LANCHOR141
19996	.word	.LANCHOR113
19997	.word	.LANCHOR246
19998	.word	.LC5
19999	.word	.LC6
20000	.word	.LC7
20001	.word	.LANCHOR85
20002	.word	.LANCHOR166
20003	.word	.LANCHOR16
20004	.word	.LC74
20005	.word	.LANCHOR112
20006	.word	.LANCHOR213
20007	.word	.LANCHOR90
20008	.word	.LANCHOR232
20009	.word	.LANCHOR181
20010	.word	.LANCHOR114
20011	.word	.LANCHOR74
20012	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
20013	.section	.text.FtlGcPageRecovery,"ax",%progbits
20014	.align	1
20015	.global	FtlGcPageRecovery
20016	.syntax unified
20017	.thumb
20018	.thumb_func
20019	.fpu softvfp
20020	.type	FtlGcPageRecovery, %function
20021FtlGcPageRecovery:
20022	@ args = 0, pretend = 0, frame = 0
20023	@ frame_needed = 0, uses_anonymous_args = 0
20024	push	{r3, r4, r5, lr}
20025	ldr	r4, .L2929
20026	ldr	r5, .L2929+4
20027	ldrh	r1, [r4]
20028	mov	r0, r5
20029	bl	FtlGcScanTempBlk
20030	ldrh	r2, [r5, #2]
20031	ldrh	r3, [r4]
20032	cmp	r2, r3
20033	bcc	.L2927
20034	ldr	r0, .L2929+8
20035	bl	FtlMapBlkWriteDumpData
20036	movs	r0, #0
20037	bl	FtlGcFreeTempBlock
20038	ldr	r3, .L2929+12
20039	movs	r2, #0
20040	str	r2, [r3]
20041.L2927:
20042	pop	{r3, r4, r5, pc}
20043.L2930:
20044	.align	2
20045.L2929:
20046	.word	.LANCHOR52
20047	.word	.LANCHOR95
20048	.word	.LANCHOR130
20049	.word	.LANCHOR138
20050	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
20051	.section	.text.FtlPowerLostRecovery,"ax",%progbits
20052	.align	1
20053	.global	FtlPowerLostRecovery
20054	.syntax unified
20055	.thumb
20056	.thumb_func
20057	.fpu softvfp
20058	.type	FtlPowerLostRecovery, %function
20059FtlPowerLostRecovery:
20060	@ args = 0, pretend = 0, frame = 0
20061	@ frame_needed = 0, uses_anonymous_args = 0
20062	push	{r3, r4, r5, lr}
20063	movs	r4, #0
20064	ldr	r5, .L2932
20065	ldr	r3, .L2932+4
20066	mov	r0, r5
20067	str	r4, [r3]
20068	bl	FtlRecoverySuperblock
20069	mov	r0, r5
20070	ldr	r5, .L2932+8
20071	bl	FtlSlcSuperblockCheck
20072	mov	r0, r5
20073	bl	FtlRecoverySuperblock
20074	mov	r0, r5
20075	bl	FtlSlcSuperblockCheck
20076	bl	FtlGcPageRecovery
20077	movw	r0, #65535
20078	bl	decrement_vpc_count
20079	mov	r0, r4
20080	pop	{r3, r4, r5, pc}
20081.L2933:
20082	.align	2
20083.L2932:
20084	.word	.LANCHOR93
20085	.word	.LANCHOR243
20086	.word	.LANCHOR94
20087	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
20088	.section	.text.FtlSysBlkInit,"ax",%progbits
20089	.align	1
20090	.global	FtlSysBlkInit
20091	.syntax unified
20092	.thumb
20093	.thumb_func
20094	.fpu softvfp
20095	.type	FtlSysBlkInit, %function
20096FtlSysBlkInit:
20097	@ args = 0, pretend = 0, frame = 0
20098	@ frame_needed = 0, uses_anonymous_args = 0
20099	push	{r3, r4, r5, r6, r7, lr}
20100	movs	r3, #0
20101	ldr	r4, .L2947
20102	movw	r5, #65535
20103	strh	r3, [r4]	@ movhi
20104	ldr	r3, .L2947+4
20105	strh	r5, [r3]	@ movhi
20106	ldr	r3, .L2947+8
20107	ldrh	r0, [r3]
20108	bl	FtlFreeSysBlkQueueInit
20109	bl	FtlScanSysBlk
20110	ldr	r3, .L2947+12
20111	ldrh	r3, [r3]
20112	cmp	r3, r5
20113	mov	r5, r4
20114	bne	.L2935
20115.L2937:
20116	mov	r4, #-1
20117.L2934:
20118	mov	r0, r4
20119	pop	{r3, r4, r5, r6, r7, pc}
20120.L2935:
20121	bl	FtlLoadSysInfo
20122	mov	r4, r0
20123	cmp	r0, #0
20124	bne	.L2937
20125	bl	FtlLoadMapInfo
20126	bl	FtlLoadVonderInfo
20127	bl	Ftl_load_ext_data
20128	bl	FtlLoadEctTbl
20129	bl	FtlFreeSysBLkSort
20130	bl	SupperBlkListInit
20131	bl	FtlPowerLostRecovery
20132	movs	r0, #1
20133	bl	FtlUpdateVaildLpn
20134	ldr	r3, .L2947+16
20135	movs	r0, #12
20136	ldrh	r1, [r3]
20137	ldr	r3, .L2947+20
20138	ldr	r2, [r3]
20139	mov	r3, r4
20140.L2938:
20141	cmp	r3, r1
20142	bge	.L2943
20143	mla	r6, r0, r3, r2
20144	ldr	r6, [r6, #4]
20145	cmp	r6, #0
20146	bge	.L2939
20147.L2943:
20148	ldr	r0, .L2947+24
20149	cmp	r3, r1
20150	ldr	r2, [r0]
20151	add	r2, r2, #32
20152	str	r2, [r0]
20153	bge	.L2945
20154.L2940:
20155	ldr	r3, .L2947+28
20156	ldr	r1, [r3]
20157	ldr	r3, .L2947+32
20158	ldrh	r0, [r3]
20159	ldrh	r5, [r3, #4]
20160	ldrh	r2, [r1, r0, lsl #1]
20161	subs	r2, r2, r5
20162	ldr	r5, .L2947+36
20163	strh	r2, [r1, r0, lsl #1]	@ movhi
20164	ldrh	r2, [r5]
20165	strh	r2, [r3, #2]	@ movhi
20166	movs	r2, #0
20167	strh	r2, [r3, #4]	@ movhi
20168	strb	r2, [r3, #6]
20169	ldr	r3, .L2947+40
20170	ldrh	r6, [r3]
20171	ldrh	r7, [r3, #4]
20172	ldrh	r0, [r1, r6, lsl #1]
20173	subs	r0, r0, r7
20174	strh	r0, [r1, r6, lsl #1]	@ movhi
20175	strb	r2, [r3, #6]
20176	ldrh	r1, [r5]
20177	strh	r2, [r3, #4]	@ movhi
20178	ldr	r2, .L2947+44
20179	strh	r1, [r3, #2]	@ movhi
20180	ldrh	r3, [r2, #30]
20181	adds	r3, r3, #1
20182	strh	r3, [r2, #30]	@ movhi
20183	bl	l2p_flush
20184	bl	FtlVpcTblFlush
20185.L2946:
20186	bl	FtlVpcTblFlush
20187	b	.L2934
20188.L2939:
20189	adds	r3, r3, #1
20190	b	.L2938
20191.L2945:
20192	ldrh	r3, [r5]
20193	cmp	r3, #0
20194	bne	.L2940
20195	bl	l2p_flush
20196	b	.L2946
20197.L2948:
20198	.align	2
20199.L2947:
20200	.word	.LANCHOR242
20201	.word	.LANCHOR241
20202	.word	.LANCHOR39
20203	.word	.LANCHOR218
20204	.word	.LANCHOR67
20205	.word	.LANCHOR98
20206	.word	.LANCHOR165
20207	.word	.LANCHOR85
20208	.word	.LANCHOR93
20209	.word	.LANCHOR52
20210	.word	.LANCHOR94
20211	.word	.LANCHOR82
20212	.size	FtlSysBlkInit, .-FtlSysBlkInit
20213	.section	.text.FtlLowFormat,"ax",%progbits
20214	.align	1
20215	.global	FtlLowFormat
20216	.syntax unified
20217	.thumb
20218	.thumb_func
20219	.fpu softvfp
20220	.type	FtlLowFormat, %function
20221FtlLowFormat:
20222	@ args = 0, pretend = 0, frame = 24
20223	@ frame_needed = 0, uses_anonymous_args = 0
20224	ldr	r3, .L2980
20225	push	{r4, r5, r6, r7, r8, r10, fp, lr}
20226	sub	sp, sp, #24
20227	ldr	r4, [r3]
20228	cmp	r4, #0
20229	bne	.L2951
20230	ldr	r5, .L2980+4
20231	mov	r1, r4
20232	ldr	r3, .L2980+8
20233	ldr	r6, .L2980+12
20234	ldrh	r2, [r5]
20235	ldr	r0, [r3]
20236	ldr	r7, .L2980+16
20237	lsls	r2, r2, #2
20238	bl	ftl_memset
20239	ldrh	r2, [r5]
20240	mov	r1, r4
20241	ldr	r3, .L2980+20
20242	lsls	r2, r2, #2
20243	ldr	r0, [r3]
20244	bl	ftl_memset
20245	ldr	r3, .L2980+24
20246	ldrh	r0, [r6]
20247	str	r4, [r7]
20248	str	r4, [r3]
20249	bl	FtlFreeSysBlkQueueInit
20250	bl	FtlLoadBbt
20251	cbz	r0, .L2952
20252	bl	FtlMakeBbt
20253.L2952:
20254	ldr	r3, .L2980+28
20255	ldr	r2, .L2980+32
20256	ldr	ip, .L2980+124
20257	ldrh	r1, [r3]
20258	ldr	r4, [r2]
20259	ldr	r2, .L2980+36
20260	str	r3, [sp, #12]
20261	lsls	r1, r1, #7
20262	ldr	r5, [r2]
20263	movs	r2, #0
20264.L2953:
20265	uxth	r3, r2
20266	adds	r2, r2, #1
20267	cmp	r3, r1
20268	blt	.L2954
20269	ldr	r3, .L2980+40
20270	movs	r4, #0
20271	ldr	r8, .L2980+128
20272	ldrh	r5, [r3]
20273	mov	r10, r8
20274	str	r3, [sp]
20275.L2955:
20276	ldrh	r3, [r8]
20277	cmp	r3, r5
20278	bhi	.L2956
20279	ldr	r5, .L2980+44
20280	subs	r3, r4, #2
20281	ldrh	r1, [r5]
20282	cmp	r3, r1, lsl #1
20283	ble	.L2957
20284	mov	r0, r4
20285	movs	r4, #0
20286	bl	__aeabi_uidiv
20287	ldr	r3, .L2980+48
20288	ldr	r3, [r3]
20289	add	r0, r0, r3
20290	uxth	r0, r0
20291	bl	FtlSysBlkNumInit
20292	ldrh	r0, [r6]
20293	bl	FtlFreeSysBlkQueueInit
20294	ldr	r3, [sp]
20295	ldrh	r6, [r3]
20296.L2958:
20297	ldrh	r3, [r10]
20298	cmp	r3, r6
20299	bhi	.L2959
20300.L2957:
20301	mov	r8, #0
20302	mov	r6, r8
20303.L2960:
20304	ldr	r3, [sp]
20305	uxth	r0, r8
20306	add	r8, r8, #1
20307	ldrh	r3, [r3]
20308	cmp	r3, r0
20309	bhi	.L2961
20310	ldrh	r2, [r10]
20311	ldr	r3, .L2980+52
20312	ldrh	r5, [r5]
20313	str	r2, [r3]
20314	ldr	r3, .L2980+56
20315	mov	r1, r5
20316	ldr	r3, [r3]
20317	mov	r0, r3
20318	str	r3, [sp, #16]
20319	bl	__aeabi_uidiv
20320	ldr	r1, .L2980+60
20321	mov	fp, r0
20322	ubfx	r3, fp, #5, #16
20323	ldr	r0, .L2980+64
20324	add	r2, r3, #36
20325	str	r3, [sp, #4]
20326	strh	r2, [r1]	@ movhi
20327	movs	r2, #24
20328	muls	r2, r5, r2
20329	str	fp, [r0]
20330	mov	r8, r0
20331	str	r1, [sp, #8]
20332	cmp	r6, r2
20333	ble	.L2962
20334	ldr	r3, [sp, #16]
20335	mov	r1, r5
20336	subs	r0, r3, r6
20337	bl	__aeabi_uidiv
20338	ldr	r3, [sp, #8]
20339	str	r0, [r8]
20340	lsrs	r0, r0, #5
20341	adds	r0, r0, #24
20342	strh	r0, [r3]	@ movhi
20343.L2962:
20344	ldr	r3, .L2980+68
20345	ldr	r3, [r3]
20346	cmp	r3, #1
20347	bne	.L2963
20348	ldr	r2, .L2980+60
20349	mov	r1, r5
20350	mov	r0, r6
20351	ldrh	r3, [r2]
20352	str	r2, [sp, #20]
20353	str	r3, [sp, #16]
20354	bl	__aeabi_uidiv
20355	ldr	r3, [sp, #16]
20356	ldr	r2, [sp, #20]
20357	uxtah	r0, r3, r0
20358	add	r3, r3, r0, asr #2
20359	strh	r3, [r2]	@ movhi
20360.L2963:
20361	ldr	r3, .L2980+72
20362	ldrb	r3, [r3]	@ zero_extendqisi2
20363	cbz	r3, .L2964
20364	ldr	r2, .L2980+60
20365	mov	r1, r5
20366	mov	r0, r6
20367	ldrh	r3, [r2]
20368	str	r2, [sp, #20]
20369	str	r3, [sp, #16]
20370	bl	__aeabi_uidiv
20371	ldr	r3, [sp, #16]
20372	ldr	r2, [sp, #20]
20373	uxtah	r0, r3, r0
20374	add	r3, r3, r0, asr #2
20375	strh	r3, [r2]	@ movhi
20376.L2964:
20377	ldr	r3, .L2980+76
20378	ldrh	r3, [r3]
20379	cbz	r3, .L2966
20380	ldr	r2, .L2980+60
20381	ldrh	r1, [r2]
20382	add	r1, r1, r3, lsr #1
20383	strh	r1, [r2]	@ movhi
20384	mul	r1, r5, r3
20385	cmp	r6, r1
20386	bge	.L2966
20387	ldr	r1, .L2980+64
20388	adds	r3, r3, #32
20389	str	fp, [r1]
20390	ldr	r1, [sp, #4]
20391	add	r1, r1, r3
20392	strh	r1, [r2]	@ movhi
20393.L2966:
20394	ldr	r3, [sp, #8]
20395	ldr	fp, .L2980+132
20396	ldrh	r2, [r3]
20397	ldr	r3, [r8]
20398	subs	r3, r3, r2
20399	muls	r5, r3, r5
20400	ldr	r3, .L2980+80
20401	ldrh	r3, [r3]
20402	str	r5, [fp]
20403	muls	r5, r3, r5
20404	ldr	r3, [sp, #12]
20405	ldrh	r3, [r3]
20406	str	r5, [r8]
20407	muls	r5, r3, r5
20408	ldr	r3, .L2980+84
20409	str	r5, [r3]
20410	bl	FtlBbmTblFlush
20411	ldr	r3, .L2980+88
20412	adds	r1, r4, r6
20413	ldr	r2, [r3]
20414	ldr	r3, .L2980+92
20415	ldrh	r3, [r3]
20416	add	r3, r3, r2, lsr #3
20417	cmp	r1, r3
20418	bls	.L2968
20419	lsrs	r2, r2, #5
20420	ldr	r0, .L2980+96
20421	bl	printf
20422.L2968:
20423	ldrh	r2, [r10]
20424	movs	r1, #0
20425	ldr	r5, .L2980+100
20426	movw	r6, #65535
20427	ldr	r4, .L2980+104
20428	lsls	r2, r2, #1
20429	ldr	r0, [r5]
20430	mov	r8, r4
20431	bl	ftl_memset
20432	ldr	r2, .L2980+108
20433	movs	r3, #0
20434	strh	r3, [r4, #2]	@ movhi
20435	movs	r1, #255
20436	strb	r3, [r4, #6]
20437	str	r3, [r2]
20438	ldr	r2, .L2980+112
20439	strh	r3, [r4]	@ movhi
20440	strh	r3, [r2, #2]	@ movhi
20441	strb	r3, [r2, #6]
20442	strb	r3, [r2, #8]
20443	movs	r3, #1
20444	strb	r3, [r4, #8]
20445	ldr	r3, [sp]
20446	strh	r6, [r2]	@ movhi
20447	ldrh	r2, [r3]
20448	ldr	r3, .L2980+116
20449	lsrs	r2, r2, #3
20450	ldr	r0, [r3]
20451	bl	ftl_memset
20452.L2969:
20453	mov	r0, r8
20454	bl	make_superblock
20455	ldrb	r3, [r4, #7]	@ zero_extendqisi2
20456	ldrh	r2, [r4]
20457	cbnz	r3, .L2970
20458	ldr	r3, [r5]
20459	strh	r6, [r3, r2, lsl #1]	@ movhi
20460	ldrh	r3, [r4]
20461	adds	r3, r3, #1
20462	strh	r3, [r4]	@ movhi
20463	b	.L2969
20464.L2954:
20465	mvns	r0, r3
20466	orr	r0, r3, r0, lsl #16
20467	str	r0, [r4, r3, lsl #2]
20468	str	ip, [r5, r3, lsl #2]
20469	b	.L2953
20470.L2956:
20471	mov	r0, r5
20472	movs	r1, #1
20473	bl	FtlLowFormatEraseBlock
20474	adds	r5, r5, #1
20475	add	r4, r4, r0
20476	uxth	r4, r4
20477	uxth	r5, r5
20478	b	.L2955
20479.L2959:
20480	mov	r0, r6
20481	movs	r1, #1
20482	bl	FtlLowFormatEraseBlock
20483	adds	r6, r6, #1
20484	add	r4, r4, r0
20485	uxth	r4, r4
20486	uxth	r6, r6
20487	b	.L2958
20488.L2961:
20489	movs	r1, #0
20490	bl	FtlLowFormatEraseBlock
20491	add	r6, r6, r0
20492	uxth	r6, r6
20493	b	.L2960
20494.L2970:
20495	ldr	r3, [r7]
20496	movw	r6, #65535
20497	ldrh	r1, [r4, #4]
20498	str	r3, [r4, #12]
20499	adds	r3, r3, #1
20500	str	r3, [r7]
20501	ldr	r3, [r5]
20502	strh	r1, [r3, r2, lsl #1]	@ movhi
20503	movs	r2, #0
20504	ldr	r3, .L2980+120
20505	strh	r2, [r3, #2]	@ movhi
20506	mov	r8, r3
20507	strb	r2, [r3, #6]
20508	ldrh	r2, [r4]
20509	mov	r4, r3
20510	adds	r2, r2, #1
20511	strh	r2, [r3]	@ movhi
20512	movs	r2, #1
20513	strb	r2, [r3, #8]
20514.L2971:
20515	mov	r0, r8
20516	bl	make_superblock
20517	ldrb	r3, [r4, #7]	@ zero_extendqisi2
20518	ldrh	r2, [r4]
20519	cmp	r3, #0
20520	bne	.L2972
20521	ldr	r3, [r5]
20522	strh	r6, [r3, r2, lsl #1]	@ movhi
20523	ldrh	r3, [r4]
20524	adds	r3, r3, #1
20525	strh	r3, [r4]	@ movhi
20526	b	.L2971
20527.L2981:
20528	.align	2
20529.L2980:
20530	.word	.LANCHOR78
20531	.word	.LANCHOR66
20532	.word	.LANCHOR203
20533	.word	.LANCHOR39
20534	.word	.LANCHOR164
20535	.word	.LANCHOR134
20536	.word	.LANCHOR165
20537	.word	.LANCHOR55
20538	.word	.LANCHOR193
20539	.word	.LANCHOR194
20540	.word	.LANCHOR40
20541	.word	.LANCHOR38
20542	.word	.LANCHOR65
20543	.word	.LANCHOR75
20544	.word	.LANCHOR42
20545	.word	.LANCHOR232
20546	.word	.LANCHOR74
20547	.word	.LANCHOR104
20548	.word	.LANCHOR16
20549	.word	.LANCHOR49
20550	.word	.LANCHOR52
20551	.word	.LANCHOR68
20552	.word	.LANCHOR43
20553	.word	.LANCHOR59
20554	.word	.LC75
20555	.word	.LANCHOR85
20556	.word	.LANCHOR93
20557	.word	.LANCHOR102
20558	.word	.LANCHOR213
20559	.word	.LANCHOR1
20560	.word	.LANCHOR94
20561	.word	168778952
20562	.word	.LANCHOR41
20563	.word	.LANCHOR231
20564.L2972:
20565	ldr	r3, [r7]
20566	ldrh	r1, [r4, #4]
20567	str	r3, [r4, #12]
20568	adds	r3, r3, #1
20569	str	r3, [r7]
20570	movw	r4, #65535
20571	ldr	r3, [r5]
20572	strh	r1, [r3, r2, lsl #1]	@ movhi
20573	ldr	r3, .L2982
20574	strh	r4, [r3]	@ movhi
20575	bl	FtlFreeSysBlkQueueOut
20576	ldr	r3, .L2982+4
20577	movs	r2, #0
20578	strh	r2, [r3, #2]	@ movhi
20579	ldr	r2, [fp]
20580	strh	r0, [r3]	@ movhi
20581	strh	r4, [r3, #4]	@ movhi
20582	strh	r2, [r3, #6]	@ movhi
20583	ldr	r2, [r7]
20584	str	r2, [r3, #8]
20585	adds	r2, r2, #1
20586	str	r2, [r7]
20587	bl	FtlVpcTblFlush
20588	bl	FtlSysBlkInit
20589	cbnz	r0, .L2951
20590	ldr	r3, .L2982+8
20591	movs	r2, #1
20592	str	r2, [r3]
20593.L2951:
20594	movs	r0, #0
20595	add	sp, sp, #24
20596	@ sp needed
20597	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
20598.L2983:
20599	.align	2
20600.L2982:
20601	.word	.LANCHOR95
20602	.word	.LANCHOR218
20603	.word	.LANCHOR247
20604	.size	FtlLowFormat, .-FtlLowFormat
20605	.section	.text.Ftl_gc_temp_data_write_back,"ax",%progbits
20606	.align	1
20607	.global	Ftl_gc_temp_data_write_back
20608	.syntax unified
20609	.thumb
20610	.thumb_func
20611	.fpu softvfp
20612	.type	Ftl_gc_temp_data_write_back, %function
20613Ftl_gc_temp_data_write_back:
20614	@ args = 0, pretend = 0, frame = 0
20615	@ frame_needed = 0, uses_anonymous_args = 0
20616	push	{r3, r4, r5, r6, r7, lr}
20617	ldr	r3, .L2999
20618	ldr	r3, [r3]
20619	cbz	r3, .L2985
20620.L2988:
20621	movs	r0, #0
20622	pop	{r3, r4, r5, r6, r7, pc}
20623.L2985:
20624	ldr	r3, .L2999+4
20625	ldr	r5, .L2999+8
20626	ldrb	r3, [r3]	@ zero_extendqisi2
20627	cbz	r3, .L2987
20628	ldr	r3, [r5]
20629	lsls	r2, r3, #31
20630	bpl	.L2987
20631	ldr	r3, .L2999+12
20632	ldrh	r3, [r3, #4]
20633	cmp	r3, #0
20634	bne	.L2988
20635.L2987:
20636	ldr	r4, .L2999+16
20637	movs	r3, #0
20638	movs	r6, #0
20639	movs	r7, #36
20640	mov	r2, r3
20641	ldr	r1, [r5]
20642	ldr	r0, [r4]
20643	bl	FlashProgPages
20644.L2989:
20645	ldr	r1, [r5]
20646	uxth	r3, r6
20647	cmp	r3, r1
20648	bcc	.L2991
20649	ldr	r0, [r4]
20650	bl	FtlGcBufFree
20651	movs	r3, #0
20652	str	r3, [r5]
20653	ldr	r3, .L2999+12
20654	ldrh	r3, [r3, #4]
20655	cmp	r3, #0
20656	bne	.L2988
20657	movs	r0, #1
20658	bl	FtlGcFreeTempBlock
20659	b	.L2998
20660.L2991:
20661	muls	r3, r7, r3
20662	ldr	r2, [r4]
20663	adds	r6, r6, #1
20664	adds	r1, r2, r3
20665	ldr	r2, [r2, r3]
20666	ldr	r0, [r1, #12]
20667	adds	r3, r2, #1
20668	bne	.L2990
20669	ldr	r3, .L2999+12
20670	movs	r5, #0
20671	ldr	r0, .L2999+20
20672	ldrh	r4, [r3]
20673	ldr	r0, [r0]
20674	strh	r5, [r0, r4, lsl #1]	@ movhi
20675	strh	r2, [r3]	@ movhi
20676	ldr	r2, .L2999+24
20677	ldr	r0, [r1, #4]
20678	ldr	r3, [r2, #96]
20679	ubfx	r0, r0, #10, #16
20680	adds	r3, r3, #1
20681	str	r3, [r2, #96]
20682	bl	FtlBbmMapBadBlock
20683	bl	FtlBbmTblFlush
20684	bl	FtlGcPageVarInit
20685.L2998:
20686	movs	r0, #1
20687	pop	{r3, r4, r5, r6, r7, pc}
20688.L2990:
20689	ldr	r2, [r0, #8]
20690	ldr	r1, [r1, #4]
20691	ldr	r0, [r0, #12]
20692	bl	FtlGcUpdatePage
20693	b	.L2989
20694.L3000:
20695	.align	2
20696.L2999:
20697	.word	.LANCHOR78
20698	.word	.LANCHOR16
20699	.word	.LANCHOR105
20700	.word	.LANCHOR95
20701	.word	.LANCHOR187
20702	.word	.LANCHOR85
20703	.word	.LANCHOR141
20704	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
20705	.section	.text.Ftl_get_new_temp_ppa,"ax",%progbits
20706	.align	1
20707	.global	Ftl_get_new_temp_ppa
20708	.syntax unified
20709	.thumb
20710	.thumb_func
20711	.fpu softvfp
20712	.type	Ftl_get_new_temp_ppa, %function
20713Ftl_get_new_temp_ppa:
20714	@ args = 0, pretend = 0, frame = 0
20715	@ frame_needed = 0, uses_anonymous_args = 0
20716	push	{r3, r4, r5, lr}
20717	movw	r3, #65535
20718	ldr	r4, .L3004
20719	ldrh	r2, [r4]
20720	cmp	r2, r3
20721	beq	.L3002
20722	ldrh	r3, [r4, #4]
20723	cbnz	r3, .L3003
20724.L3002:
20725	bl	FtlCacheWriteBack
20726	movs	r0, #0
20727	movs	r5, #0
20728	bl	FtlGcFreeTempBlock
20729	ldr	r0, .L3004
20730	strb	r5, [r4, #8]
20731	bl	allocate_data_superblock
20732	ldr	r3, .L3004+4
20733	strh	r5, [r3]	@ movhi
20734	ldr	r3, .L3004+8
20735	strh	r5, [r3]	@ movhi
20736	bl	l2p_flush
20737	mov	r0, r5
20738	bl	FtlEctTblFlush
20739	bl	FtlVpcTblFlush
20740.L3003:
20741	ldr	r0, .L3004
20742	pop	{r3, r4, r5, lr}
20743	b	get_new_active_ppa
20744.L3005:
20745	.align	2
20746.L3004:
20747	.word	.LANCHOR95
20748	.word	.LANCHOR112
20749	.word	.LANCHOR113
20750	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
20751	.section	.text.ftl_do_gc,"ax",%progbits
20752	.align	1
20753	.global	ftl_do_gc
20754	.syntax unified
20755	.thumb
20756	.thumb_func
20757	.fpu softvfp
20758	.type	ftl_do_gc, %function
20759ftl_do_gc:
20760	@ args = 0, pretend = 0, frame = 32
20761	@ frame_needed = 0, uses_anonymous_args = 0
20762	ldr	r3, .L3106
20763	push	{r4, r5, r6, r7, r8, r10, fp, lr}
20764	mov	lr, r0
20765	sub	sp, sp, #32
20766	ldr	r0, [r3]
20767	cmp	r0, #0
20768	bne	.L3065
20769	ldr	r3, .L3106+4
20770	ldr	r3, [r3]
20771	cmp	r3, #1
20772	bne	.L3006
20773	ldr	r3, .L3106+8
20774	ldr	r3, [r3]
20775	cmp	r3, #0
20776	bne	.L3006
20777	ldr	r2, .L3106+12
20778	ldrh	r2, [r2]
20779	cmp	r2, #47
20780	bls	.L3068
20781	ldr	r5, .L3106+16
20782	movw	r2, #65535
20783	ldrh	ip, [r5]
20784	cmp	ip, r2
20785	beq	.L3008
20786	ldr	r7, .L3106+20
20787	ldrh	r3, [r7]
20788	cmp	r3, r2
20789	bne	.L3008
20790	ldr	r1, .L3106+24
20791	ldrh	r6, [r1]
20792	cmp	r6, r3
20793	beq	.L3008
20794	ldr	r2, .L3106+28
20795	ldrh	r4, [r2]
20796	cmp	r4, r3
20797	itttt	ne
20798	strhne	ip, [r7]	@ movhi
20799	strhne	r6, [r5]	@ movhi
20800	strhne	r4, [r1]	@ movhi
20801	strhne	r3, [r2]	@ movhi
20802.L3008:
20803	cmp	lr, #0
20804	bne	.L3069
20805	ldr	r3, .L3106+32
20806	ldrh	r3, [r3]
20807	cmp	r3, #24
20808	bhi	.L3070
20809	ldr	r2, .L3106+36
20810	cmp	r3, #16
20811	ldrh	r4, [r2]
20812	bls	.L3011
20813	lsrs	r4, r4, #5
20814.L3010:
20815	ldr	r2, .L3106+40
20816	ldrh	r1, [r2]
20817	cmp	r1, r3
20818	mov	r1, r2
20819	bcs	.L3014
20820	ldr	r3, .L3106+44
20821	movw	r0, #65535
20822	ldrh	r3, [r3]
20823	cmp	r3, r0
20824	bne	.L3015
20825	ldr	r0, .L3106+20
20826	ldrh	r0, [r0]
20827	cmp	r0, r3
20828	bne	.L3015
20829	ldr	r3, .L3106+48
20830	ldrh	r0, [r3]
20831	cbnz	r0, .L3016
20832	ldr	r3, .L3106+52
20833	ldr	r4, .L3106+56
20834	ldr	r3, [r3]
20835	ldr	r4, [r4]
20836	add	r3, r3, r3, lsl #1
20837	cmp	r4, r3, lsr #2
20838	bcs	.L3017
20839.L3016:
20840	ldr	r3, .L3106+60
20841	ldrh	r3, [r3]
20842	add	r3, r3, r3, lsl #1
20843	asrs	r3, r3, #2
20844	strh	r3, [r1]	@ movhi
20845.L3018:
20846	ldr	r3, .L3106+64
20847	movs	r2, #0
20848	str	r2, [r3]
20849.L3006:
20850	add	sp, sp, #32
20851	@ sp needed
20852	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
20853.L3011:
20854	cmp	r3, #12
20855	bls	.L3012
20856	lsrs	r4, r4, #4
20857	b	.L3010
20858.L3012:
20859	cmp	r3, #8
20860	bls	.L3010
20861	lsrs	r4, r4, #2
20862	b	.L3010
20863.L3070:
20864	movs	r4, #1
20865	b	.L3010
20866.L3017:
20867	movs	r3, #18
20868	strh	r3, [r2]	@ movhi
20869	b	.L3018
20870.L3015:
20871	ldr	r3, .L3106+60
20872	ldrh	r3, [r3]
20873	add	r3, r3, r3, lsl #1
20874	asrs	r3, r3, #2
20875	strh	r3, [r1]	@ movhi
20876.L3014:
20877	ldr	r3, .L3106+68
20878	ldrh	r3, [r3]
20879	cbz	r3, .L3009
20880	adds	r4, r4, #32
20881	uxth	r4, r4
20882.L3009:
20883	ldr	r5, .L3106+72
20884	movw	r3, #65535
20885	ldrh	r2, [r5]
20886	cmp	r2, r3
20887	bne	.L3021
20888	ldr	r3, .L3106+20
20889	ldrh	r1, [r3]
20890	cmp	r1, r2
20891	beq	.L3022
20892	ldr	r0, .L3106+76
20893	ldr	r0, [r0]
20894	ldrh	r1, [r0, r1, lsl #1]
20895	cbnz	r1, .L3023
20896	strh	r2, [r3]	@ movhi
20897.L3023:
20898	ldrh	r2, [r3]
20899	strh	r2, [r5]	@ movhi
20900	movw	r2, #65535
20901	strh	r2, [r3]	@ movhi
20902.L3022:
20903	ldrh	r0, [r5]
20904	movw	r6, #65535
20905	movs	r3, #0
20906	strb	r3, [r5, #8]
20907	cmp	r0, r6
20908	beq	.L3021
20909	bl	IsBlkInGcList
20910	cbz	r0, .L3025
20911	strh	r6, [r5]	@ movhi
20912.L3025:
20913	ldr	r3, .L3106+80
20914	ldrb	r3, [r3]	@ zero_extendqisi2
20915	cbz	r3, .L3026
20916	ldrh	r0, [r5]
20917	bl	ftl_get_blk_mode
20918	strb	r0, [r5, #8]
20919.L3026:
20920	ldrh	r2, [r5]
20921	movw	r3, #65535
20922	cmp	r2, r3
20923	beq	.L3021
20924	ldr	r0, .L3106+72
20925	bl	make_superblock
20926	ldr	r2, .L3106+84
20927	movs	r3, #0
20928	strh	r3, [r5, #2]	@ movhi
20929	strb	r3, [r5, #6]
20930	strh	r3, [r2]	@ movhi
20931	ldr	r3, .L3106+76
20932	ldrh	r2, [r5]
20933	ldr	r3, [r3]
20934	ldrh	r2, [r3, r2, lsl #1]
20935	ldr	r3, .L3106+88
20936	strh	r2, [r3]	@ movhi
20937.L3021:
20938	ldr	r2, .L3106+92
20939	ldrh	r3, [r5]
20940	ldrh	r2, [r2]
20941	cmp	r2, r3
20942	beq	.L3027
20943	ldr	r2, .L3106+96
20944	ldrh	r2, [r2]
20945	cmp	r2, r3
20946	beq	.L3027
20947	ldr	r2, .L3106+44
20948	ldrh	r2, [r2]
20949	cmp	r2, r3
20950	bne	.L3028
20951.L3027:
20952	movw	r3, #65535
20953	strh	r3, [r5]	@ movhi
20954.L3028:
20955	ldr	r5, .L3106+72
20956	mov	r6, r5
20957.L3064:
20958	ldrh	r2, [r5]
20959	movw	r3, #65535
20960	cmp	r2, r3
20961	bne	.L3029
20962	ldr	r10, .L3106+104
20963	movs	r2, #0
20964	ldr	r3, .L3106+64
20965	mov	r7, r10
20966	str	r2, [r3]
20967.L3030:
20968	ldrh	r8, [r10]
20969	mov	r0, r8
20970	bl	List_get_gc_head_node
20971	uxth	fp, r0
20972	movw	r3, #65535
20973	cmp	fp, r3
20974	strh	fp, [r6]	@ movhi
20975	bne	.L3031
20976	movs	r3, #0
20977	movs	r0, #8
20978	strh	r3, [r10]	@ movhi
20979	b	.L3006
20980.L3069:
20981	movs	r4, #1
20982	b	.L3009
20983.L3031:
20984	str	r0, [sp]
20985	mov	r0, fp
20986	bl	IsBlkInGcList
20987	add	r3, r8, #1
20988	ldr	r2, [sp]
20989	cbz	r0, .L3032
20990	strh	r3, [r10]	@ movhi
20991	b	.L3030
20992.L3032:
20993	ldr	r1, .L3106+36
20994	uxth	r3, r3
20995	ldr	lr, .L3106+108
20996	uxth	r2, r2
20997	ldr	r8, .L3106+76
20998	ldrh	r1, [r1]
20999	ldrh	lr, [lr]
21000	ldr	r0, [r8]
21001	strh	r3, [r10]	@ movhi
21002	mul	r1, lr, r1
21003	ldrh	ip, [r0, r2, lsl #1]
21004	cmp	ip, r1, asr #1
21005	bgt	.L3034
21006	cmp	r3, #48
21007	bls	.L3035
21008	cmp	ip, #8
21009	bls	.L3035
21010	ldr	r3, .L3106+100
21011	ldrh	r3, [r3]
21012	cmp	r3, #35
21013	bhi	.L3035
21014.L3034:
21015	movs	r3, #0
21016	strh	r3, [r7]	@ movhi
21017.L3035:
21018	ldrh	r3, [r0, r2, lsl #1]
21019	cmp	r1, r3
21020	bgt	.L3036
21021	ldrh	r2, [r7]
21022	cmp	r2, #3
21023	bhi	.L3036
21024	movw	r3, #65535
21025	strh	r3, [r6]	@ movhi
21026	movs	r3, #0
21027	strh	r3, [r7]	@ movhi
21028.L3105:
21029	ldr	r3, .L3106+48
21030	ldrh	r0, [r3]
21031	b	.L3006
21032.L3036:
21033	cmp	r3, #0
21034	bne	.L3037
21035	movw	r0, #65535
21036	bl	decrement_vpc_count
21037	ldrh	r3, [r7]
21038	adds	r3, r3, #1
21039	strh	r3, [r7]	@ movhi
21040	b	.L3030
21041.L3107:
21042	.align	2
21043.L3106:
21044	.word	.LANCHOR78
21045	.word	.LANCHOR247
21046	.word	.LANCHOR176
21047	.word	.LANCHOR87
21048	.word	.LANCHOR116
21049	.word	.LANCHOR115
21050	.word	.LANCHOR117
21051	.word	.LANCHOR118
21052	.word	.LANCHOR90
21053	.word	.LANCHOR52
21054	.word	.LANCHOR181
21055	.word	.LANCHOR95
21056	.word	.LANCHOR248
21057	.word	.LANCHOR74
21058	.word	.LANCHOR102
21059	.word	.LANCHOR232
21060	.word	.LANCHOR177
21061	.word	.LANCHOR119
21062	.word	.LANCHOR213
21063	.word	.LANCHOR85
21064	.word	.LANCHOR16
21065	.word	.LANCHOR249
21066	.word	.LANCHOR250
21067	.word	.LANCHOR93
21068	.word	.LANCHOR94
21069	.word	.LANCHOR112
21070	.word	.LANCHOR183
21071	.word	.LANCHOR38
21072.L3037:
21073	movs	r3, #0
21074	strb	r3, [r6, #8]
21075	ldr	r3, .L3108
21076	ldrb	r3, [r3]	@ zero_extendqisi2
21077	cbz	r3, .L3038
21078	mov	r0, fp
21079	bl	ftl_get_blk_mode
21080	strb	r0, [r6, #8]
21081.L3038:
21082	ldr	r3, .L3108+4
21083	ldrh	r3, [r3]
21084	cmp	r3, fp
21085	bne	.L3039
21086	ldr	r1, .L3108+8
21087	movw	r2, #1069
21088	ldr	r0, .L3108+12
21089	bl	printf
21090	ldr	r1, .L3108+16
21091	ldr	r0, .L3108+20
21092	bl	printf
21093.L3039:
21094	ldr	r3, .L3108+24
21095	ldrh	r2, [r6]
21096	ldrh	r3, [r3]
21097	cmp	r2, r3
21098	bne	.L3040
21099	ldr	r1, .L3108+8
21100	movw	r2, #1070
21101	ldr	r0, .L3108+12
21102	bl	printf
21103	ldr	r1, .L3108+16
21104	ldr	r0, .L3108+20
21105	bl	printf
21106.L3040:
21107	ldr	r3, .L3108+28
21108	ldrh	r2, [r6]
21109	ldrh	r3, [r3]
21110	cmp	r2, r3
21111	bne	.L3041
21112	ldr	r1, .L3108+8
21113	movw	r2, #1071
21114	ldr	r0, .L3108+12
21115	bl	printf
21116	ldr	r1, .L3108+16
21117	ldr	r0, .L3108+20
21118	bl	printf
21119.L3041:
21120	mov	r0, r5
21121	bl	make_superblock
21122	ldr	r2, .L3108+32
21123	movs	r3, #0
21124	ldrh	r1, [r6]
21125	strh	r3, [r2]	@ movhi
21126	ldr	r2, [r8]
21127	ldrh	r1, [r2, r1, lsl #1]
21128	ldr	r2, .L3108+36
21129	strh	r3, [r6, #2]	@ movhi
21130	strb	r3, [r6, #6]
21131	strh	r1, [r2]	@ movhi
21132.L3029:
21133	ldr	r3, .L3108+40
21134	movs	r2, #1
21135	str	r2, [r3]
21136	ldr	r3, .L3108+44
21137	ldrh	r3, [r3]
21138	str	r3, [sp, #4]
21139	ldr	r3, .L3108
21140	ldrb	r3, [r3]	@ zero_extendqisi2
21141	cbz	r3, .L3042
21142	ldrb	r3, [r6, #8]	@ zero_extendqisi2
21143	cmp	r3, r2
21144	ittt	eq
21145	ldreq	r3, .L3108+48
21146	ldrheq	r3, [r3]
21147	streq	r3, [sp, #4]
21148.L3042:
21149	ldrh	r3, [r6, #2]
21150	ldr	r1, [sp, #4]
21151	ldr	fp, .L3108+76
21152	adds	r2, r3, r4
21153	cmp	r2, r1
21154	itt	gt
21155	movgt	r2, r1
21156	subgt	r4, r2, r3
21157	mov	r3, #0
21158	it	gt
21159	uxthgt	r4, r4
21160	str	r3, [sp, #12]
21161.L3044:
21162	ldrh	r3, [sp, #12]
21163	cmp	r4, r3
21164	bls	.L3052
21165	ldr	r3, .L3108+52
21166	movw	r8, #65535
21167	ldrh	lr, [r5, #2]
21168	mov	r10, #36
21169	ldr	r0, [fp]
21170	ldrh	r7, [r3]
21171	ldr	r3, [sp, #12]
21172	add	lr, lr, r3
21173	ldr	r3, .L3108+56
21174	str	r3, [sp, #8]
21175	movs	r3, #0
21176	str	r3, [sp]
21177	b	.L3053
21178.L3046:
21179	ldr	r1, [sp, #8]
21180	ldrh	r2, [r1, #2]!
21181	cmp	r2, r8
21182	str	r1, [sp, #8]
21183	beq	.L3045
21184	ldr	r1, [sp]
21185	orr	r2, lr, r2, lsl #10
21186	mla	ip, r10, r1, r0
21187	str	r2, [ip, #4]
21188	mov	r2, r1
21189	adds	r2, r2, #1
21190	uxth	r2, r2
21191	str	r2, [sp]
21192.L3045:
21193	adds	r3, r3, #1
21194.L3053:
21195	uxth	r2, r3
21196	cmp	r7, r2
21197	bhi	.L3046
21198	ldrb	r2, [r5, #8]	@ zero_extendqisi2
21199	ldr	r1, [sp]
21200	bl	FlashReadPages
21201	movs	r3, #0
21202.L3104:
21203	str	r3, [sp, #8]
21204	ldr	r2, [sp]
21205	ldrh	r3, [sp, #8]
21206	cmp	r2, r3
21207	bhi	.L3051
21208	ldr	r3, [sp, #12]
21209	adds	r3, r3, #1
21210	str	r3, [sp, #12]
21211	b	.L3044
21212.L3051:
21213	ldr	r3, [sp, #8]
21214	movs	r7, #36
21215	muls	r7, r3, r7
21216	ldr	r3, [fp]
21217	adds	r2, r3, r7
21218	ldr	r3, [r3, r7]
21219	adds	r3, r3, #1
21220	beq	.L3048
21221	ldr	r8, [r2, #12]
21222	movw	r3, #61589
21223	ldrh	r2, [r8]
21224	cmp	r2, r3
21225	bne	.L3048
21226	ldr	r10, [r8, #8]
21227	cmp	r10, #-1
21228	bne	.L3049
21229	ldr	r1, .L3108+8
21230	movw	r2, #1119
21231	ldr	r0, .L3108+12
21232	bl	printf
21233	ldr	r1, .L3108+16
21234	ldr	r0, .L3108+20
21235	bl	printf
21236.L3049:
21237	movs	r2, #0
21238	add	r1, sp, #24
21239	mov	r0, r10
21240	bl	log2phys
21241	ldr	r0, [fp]
21242	ldr	r3, [sp, #24]
21243	add	r0, r0, r7
21244	ldr	r2, [r0, #4]
21245	bic	r3, r3, #-2147483648
21246	cmp	r3, r2
21247	bne	.L3048
21248	ldr	r2, .L3108+32
21249	ldr	r1, .L3108+60
21250	ldr	r10, .L3108+72
21251	ldrh	r3, [r2]
21252	str	r1, [sp, #20]
21253	adds	r3, r3, #1
21254	strh	r3, [r2]	@ movhi
21255	ldr	r2, [r1]
21256	movs	r1, #36
21257	ldr	r3, [r10]
21258	mla	r3, r1, r3, r2
21259	ldr	r2, [r0, #16]
21260	str	r2, [r3, #16]
21261	str	r3, [sp, #16]
21262	bl	Ftl_get_new_temp_ppa
21263	ldr	r3, [sp, #16]
21264	ldr	r1, [sp, #20]
21265	str	r0, [r3, #4]
21266	ldr	r2, [r1]
21267	movs	r1, #36
21268	ldr	r3, [r10]
21269	ldr	r0, [fp]
21270	mla	r2, r1, r3, r2
21271	add	r0, r0, r7
21272	ldr	r7, .L3108+28
21273	ldr	r1, [r0, #8]
21274	adds	r3, r3, #1
21275	str	r1, [r2, #8]
21276	ldr	r1, [r0, #12]
21277	str	r1, [r2, #12]
21278	movs	r1, #1
21279	ldr	r2, [sp, #24]
21280	str	r2, [r8, #12]
21281	ldrh	r2, [r7]
21282	strh	r2, [r8, #2]	@ movhi
21283	ldr	r2, .L3108+64
21284	str	r3, [r10]
21285	ldr	r2, [r2]
21286	str	r2, [r8, #4]
21287	bl	FtlGcBufAlloc
21288	ldr	r3, .L3108
21289	ldrb	r3, [r3]	@ zero_extendqisi2
21290	cbnz	r3, .L3050
21291	ldrb	r2, [r7, #7]	@ zero_extendqisi2
21292	ldr	r3, [r10]
21293	cmp	r2, r3
21294	beq	.L3050
21295	ldrh	r3, [r7, #4]
21296	cbnz	r3, .L3048
21297.L3050:
21298	bl	Ftl_gc_temp_data_write_back
21299	cbz	r0, .L3048
21300	ldr	r3, .L3108+40
21301	movs	r2, #0
21302	movw	r1, #65535
21303	str	r2, [r3]
21304	ldr	r3, .L3108+68
21305	strh	r1, [r3]	@ movhi
21306	strh	r2, [r3, #2]	@ movhi
21307	b	.L3105
21308.L3048:
21309	ldr	r3, [sp, #8]
21310	adds	r3, r3, #1
21311	b	.L3104
21312.L3052:
21313	ldrh	r3, [r5, #2]
21314	add	r4, r4, r3
21315	ldr	r3, [sp, #4]
21316	uxth	r4, r4
21317	cmp	r3, r4
21318	strh	r4, [r5, #2]	@ movhi
21319	bhi	.L3054
21320	ldr	r3, .L3108+72
21321	ldr	r3, [r3]
21322	cbz	r3, .L3055
21323	bl	Ftl_gc_temp_data_write_back
21324	cbz	r0, .L3055
21325	ldr	r3, .L3108+40
21326	movs	r2, #0
21327	str	r2, [r3]
21328	b	.L3105
21329.L3109:
21330	.align	2
21331.L3108:
21332	.word	.LANCHOR16
21333	.word	.LANCHOR93
21334	.word	.LANCHOR251
21335	.word	.LC5
21336	.word	.LC6
21337	.word	.LC7
21338	.word	.LANCHOR94
21339	.word	.LANCHOR95
21340	.word	.LANCHOR249
21341	.word	.LANCHOR250
21342	.word	.LANCHOR176
21343	.word	.LANCHOR52
21344	.word	.LANCHOR53
21345	.word	.LANCHOR38
21346	.word	.LANCHOR213+14
21347	.word	.LANCHOR187
21348	.word	.LANCHOR165
21349	.word	.LANCHOR213
21350	.word	.LANCHOR105
21351	.word	.LANCHOR109
21352.L3055:
21353	ldr	r3, .L3110
21354	ldrh	r7, [r3]
21355	cbnz	r7, .L3056
21356	ldr	r8, .L3110+20
21357	ldrh	r2, [r5]
21358	ldr	r3, [r8]
21359	ldrh	r3, [r3, r2, lsl #1]
21360	cbz	r3, .L3056
21361	ldr	r4, .L3110+4
21362.L3057:
21363	ldr	r3, [r4]
21364	cmp	r7, r3
21365	bcs	.L3062
21366	movs	r2, #0
21367	add	r1, sp, #28
21368	mov	r0, r7
21369	bl	log2phys
21370	ldr	r0, [sp, #28]
21371	adds	r3, r0, #1
21372	beq	.L3058
21373	ubfx	r0, r0, #10, #16
21374	bl	P2V_block_in_plane
21375	ldrh	r3, [r5]
21376	cmp	r3, r0
21377	bne	.L3058
21378.L3062:
21379	ldr	r3, [r4]
21380	cmp	r7, r3
21381	bcc	.L3056
21382	ldrh	r2, [r5]
21383	movs	r1, #0
21384	ldr	r3, [r8]
21385	strh	r1, [r3, r2, lsl #1]	@ movhi
21386	ldrh	r0, [r5]
21387	bl	update_vpc_list
21388	bl	FtlCacheWriteBack
21389	bl	l2p_flush
21390	bl	FtlVpcTblFlush
21391.L3056:
21392	movw	r3, #65535
21393	strh	r3, [r5]	@ movhi
21394.L3054:
21395	ldr	r3, .L3110+8
21396	ldrh	r0, [r3]
21397	cmp	r0, #2
21398	bhi	.L3063
21399	ldr	r3, .L3110+12
21400	ldrh	r4, [r3]
21401	b	.L3064
21402.L3058:
21403	adds	r7, r7, #1
21404	b	.L3057
21405.L3063:
21406	ldr	r3, .L3110+16
21407	movs	r2, #0
21408	adds	r0, r0, #1
21409	str	r2, [r3]
21410	b	.L3006
21411.L3065:
21412	movs	r0, #0
21413	b	.L3006
21414.L3068:
21415	mov	r0, r3
21416	b	.L3006
21417.L3111:
21418	.align	2
21419.L3110:
21420	.word	.LANCHOR249
21421	.word	.LANCHOR74
21422	.word	.LANCHOR90
21423	.word	.LANCHOR52
21424	.word	.LANCHOR176
21425	.word	.LANCHOR85
21426	.size	ftl_do_gc, .-ftl_do_gc
21427	.section	.text.FtlCacheWriteBack,"ax",%progbits
21428	.align	1
21429	.global	FtlCacheWriteBack
21430	.syntax unified
21431	.thumb
21432	.thumb_func
21433	.fpu softvfp
21434	.type	FtlCacheWriteBack, %function
21435FtlCacheWriteBack:
21436	@ args = 0, pretend = 0, frame = 16
21437	@ frame_needed = 0, uses_anonymous_args = 0
21438	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
21439	ldr	r3, .L3154
21440	ldr	r10, [r3]
21441	str	r3, [sp]
21442	cmp	r10, #0
21443	bne	.L3114
21444	ldr	r3, .L3154+4
21445	ldr	r1, [r3]
21446	mov	r8, r3
21447	cbz	r1, .L3114
21448	ldr	r3, .L3154+8
21449	ldr	r4, [r3]
21450	ldr	r3, .L3154+12
21451	ldrb	r3, [r3]	@ zero_extendqisi2
21452	cbz	r3, .L3139
21453	ldrb	r7, [r4, #8]	@ zero_extendqisi2
21454	subs	r0, r7, #1
21455	rsbs	r7, r0, #0
21456	adcs	r7, r7, r0
21457.L3116:
21458	ldr	r5, .L3154+16
21459	movs	r6, #0
21460	ldr	fp, .L3154+36
21461	mov	r2, r7
21462	ldrb	r3, [r4, #9]	@ zero_extendqisi2
21463	ldr	r0, [r5]
21464	bl	FlashProgPages
21465.L3117:
21466	ldr	r3, [r8]
21467	cmp	r6, r3
21468	bcc	.L3124
21469.L3136:
21470	movs	r3, #0
21471	str	r3, [r8]
21472.L3114:
21473	movs	r0, #0
21474	add	sp, sp, #16
21475	@ sp needed
21476	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
21477.L3139:
21478	mov	r7, r10
21479	b	.L3116
21480.L3124:
21481	movs	r3, #36
21482	ldr	r2, [r5]
21483	muls	r3, r6, r3
21484	adds	r0, r2, r3
21485	ldr	r2, [r2, r3]
21486	adds	r2, r2, #1
21487	bne	.L3118
21488	ldr	fp, .L3154+36
21489.L3119:
21490	ldr	r3, [r8]
21491	cmp	r10, r3
21492	bcc	.L3134
21493	ldr	r5, .L3154+20
21494	movw	r4, #16386
21495.L3137:
21496	ldrh	r3, [r5]
21497	cmp	r3, #0
21498	beq	.L3136
21499	movs	r1, #1
21500	mov	r0, r1
21501	bl	ftl_do_gc
21502	subs	r4, r4, #1
21503	bne	.L3137
21504	b	.L3136
21505.L3118:
21506	ldr	r2, [r0, #4]
21507	cbnz	r7, .L3120
21508.L3152:
21509	str	r2, [sp, #12]
21510	add	r1, sp, #12
21511	movs	r2, #1
21512	ldr	r0, [r0, #16]
21513	str	r3, [sp, #4]
21514	bl	log2phys
21515	ldr	r2, [r5]
21516	ldr	r3, [sp, #4]
21517	add	r3, r3, r2
21518	ldr	r3, [r3, #12]
21519	ldr	r0, [r3, #12]
21520	adds	r2, r0, #1
21521	beq	.L3122
21522	ubfx	r0, r0, #10, #16
21523	bl	P2V_block_in_plane
21524	ldr	r2, [fp]
21525	mov	r3, r0
21526	ldrh	r2, [r2, r0, lsl #1]
21527	cbnz	r2, .L3123
21528	mov	r1, r0
21529	str	r0, [sp, #4]
21530	ldr	r0, .L3154+24
21531	bl	printf
21532	ldr	r3, [sp, #4]
21533.L3123:
21534	mov	r0, r3
21535	bl	decrement_vpc_count
21536.L3122:
21537	adds	r6, r6, #1
21538	b	.L3117
21539.L3120:
21540	orr	r2, r2, #-2147483648
21541	b	.L3152
21542.L3134:
21543	movs	r6, #36
21544	ldr	r3, [r5]
21545	mul	r6, r6, r10
21546	mov	r2, #-1
21547	str	r2, [r3, r6]
21548.L3125:
21549	ldr	r2, [r5]
21550	adds	r3, r2, r6
21551	ldr	r2, [r2, r6]
21552	ldr	r0, [r3, #4]
21553	adds	r2, r2, #1
21554	beq	.L3129
21555	cmp	r7, #0
21556	bne	.L3130
21557.L3153:
21558	str	r0, [sp, #12]
21559	movs	r2, #1
21560	ldr	r0, [r3, #16]
21561	add	r1, sp, #12
21562	bl	log2phys
21563	ldr	r3, [r5]
21564	add	r6, r6, r3
21565	ldr	r3, [r6, #12]
21566	ldr	r0, [r3, #12]
21567	adds	r3, r0, #1
21568	beq	.L3132
21569	ubfx	r0, r0, #10, #16
21570	bl	P2V_block_in_plane
21571	ldr	r3, [fp]
21572	mov	r6, r0
21573	ldrh	r2, [r3, r0, lsl #1]
21574	cbnz	r2, .L3133
21575	mov	r1, r0
21576	ldr	r0, .L3154+24
21577	bl	printf
21578.L3133:
21579	mov	r0, r6
21580	bl	decrement_vpc_count
21581.L3132:
21582	add	r10, r10, #1
21583	b	.L3119
21584.L3129:
21585	ubfx	r0, r0, #10, #16
21586	bl	P2V_block_in_plane
21587	ldrh	r3, [r4]
21588	cmp	r3, r0
21589	bne	.L3126
21590	ldr	r1, [fp]
21591	ldrh	r0, [r4, #4]
21592	ldrh	r2, [r1, r3, lsl #1]
21593	subs	r2, r2, r0
21594	strh	r2, [r1, r3, lsl #1]	@ movhi
21595	ldr	r3, .L3154+28
21596	ldrh	r3, [r3]
21597	strh	r3, [r4, #2]	@ movhi
21598	movs	r3, #0
21599	strb	r3, [r4, #6]
21600	strh	r3, [r4, #4]	@ movhi
21601.L3126:
21602	ldrh	r3, [r4, #4]
21603	cbnz	r3, .L3127
21604	mov	r0, r4
21605	bl	allocate_new_data_superblock
21606.L3127:
21607	ldr	r2, .L3154+32
21608	ldr	r3, [r2, #96]
21609	adds	r3, r3, #1
21610	str	r3, [r2, #96]
21611	ldr	r3, [r5]
21612	add	r3, r3, r6
21613	ldr	r0, [r3, #4]
21614	ubfx	r0, r0, #10, #16
21615	bl	FtlGcMarkBadPhyBlk
21616	mov	r0, r4
21617	bl	get_new_active_ppa
21618	ldr	r3, [r5]
21619	mov	r2, r0
21620	str	r0, [sp, #12]
21621	movs	r1, #1
21622	adds	r0, r3, r6
21623	str	r2, [r0, #4]
21624	mov	r2, r7
21625	ldrb	r3, [r4, #9]	@ zero_extendqisi2
21626	bl	FlashProgPages
21627	ldr	r3, [r5]
21628	ldr	r3, [r3, r6]
21629	adds	r3, r3, #1
21630	ittt	eq
21631	ldreq	r2, [sp]
21632	moveq	r3, #1
21633	streq	r3, [r2]
21634	ldr	r3, [sp]
21635	ldr	r3, [r3]
21636	cmp	r3, #0
21637	beq	.L3125
21638	b	.L3114
21639.L3130:
21640	orr	r0, r0, #-2147483648
21641	b	.L3153
21642.L3155:
21643	.align	2
21644.L3154:
21645	.word	.LANCHOR78
21646	.word	.LANCHOR72
21647	.word	.LANCHOR252
21648	.word	.LANCHOR16
21649	.word	.LANCHOR73
21650	.word	.LANCHOR119
21651	.word	.LC76
21652	.word	.LANCHOR52
21653	.word	.LANCHOR141
21654	.word	.LANCHOR85
21655	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
21656	.section	.text.FtlSysFlush,"ax",%progbits
21657	.align	1
21658	.global	FtlSysFlush
21659	.syntax unified
21660	.thumb
21661	.thumb_func
21662	.fpu softvfp
21663	.type	FtlSysFlush, %function
21664FtlSysFlush:
21665	@ args = 0, pretend = 0, frame = 0
21666	@ frame_needed = 0, uses_anonymous_args = 0
21667	ldr	r3, .L3158
21668	push	{r4, lr}
21669	ldr	r3, [r3]
21670	cbnz	r3, .L3157
21671	ldr	r3, .L3158+4
21672	ldr	r4, [r3]
21673	cmp	r4, #1
21674	bne	.L3157
21675	bl	FtlCacheWriteBack
21676	bl	l2p_flush
21677	mov	r0, r4
21678	bl	FtlEctTblFlush
21679	bl	FtlVpcTblFlush
21680.L3157:
21681	movs	r0, #0
21682	pop	{r4, pc}
21683.L3159:
21684	.align	2
21685.L3158:
21686	.word	.LANCHOR78
21687	.word	.LANCHOR247
21688	.size	FtlSysFlush, .-FtlSysFlush
21689	.section	.text.FtlDeInit,"ax",%progbits
21690	.align	1
21691	.global	FtlDeInit
21692	.syntax unified
21693	.thumb
21694	.thumb_func
21695	.fpu softvfp
21696	.type	FtlDeInit, %function
21697FtlDeInit:
21698	@ args = 0, pretend = 0, frame = 0
21699	@ frame_needed = 0, uses_anonymous_args = 0
21700	push	{r3, lr}
21701	ldr	r3, .L3162
21702	ldr	r3, [r3]
21703	cmp	r3, #1
21704	bne	.L3161
21705	bl	FtlSysFlush
21706.L3161:
21707	movs	r0, #0
21708	pop	{r3, pc}
21709.L3163:
21710	.align	2
21711.L3162:
21712	.word	.LANCHOR247
21713	.size	FtlDeInit, .-FtlDeInit
21714	.section	.text.ftl_deinit,"ax",%progbits
21715	.align	1
21716	.global	ftl_deinit
21717	.syntax unified
21718	.thumb
21719	.thumb_func
21720	.fpu softvfp
21721	.type	ftl_deinit, %function
21722ftl_deinit:
21723	@ args = 0, pretend = 0, frame = 0
21724	@ frame_needed = 0, uses_anonymous_args = 0
21725	push	{r3, lr}
21726	bl	ftl_flash_de_init
21727	bl	FtlDeInit
21728	pop	{r3, lr}
21729	b	ftl_flash_de_init
21730	.size	ftl_deinit, .-ftl_deinit
21731	.section	.text.rk_ftl_de_init,"ax",%progbits
21732	.align	1
21733	.global	rk_ftl_de_init
21734	.syntax unified
21735	.thumb
21736	.thumb_func
21737	.fpu softvfp
21738	.type	rk_ftl_de_init, %function
21739rk_ftl_de_init:
21740	@ args = 0, pretend = 0, frame = 0
21741	@ frame_needed = 0, uses_anonymous_args = 0
21742	push	{r3, lr}
21743	bl	FlashDeInit
21744	bl	FtlDeInit
21745	pop	{r3, lr}
21746	b	FlashDeInit
21747	.size	rk_ftl_de_init, .-rk_ftl_de_init
21748	.section	.text.ftl_cache_flush,"ax",%progbits
21749	.align	1
21750	.global	ftl_cache_flush
21751	.syntax unified
21752	.thumb
21753	.thumb_func
21754	.fpu softvfp
21755	.type	ftl_cache_flush, %function
21756ftl_cache_flush:
21757	@ args = 0, pretend = 0, frame = 0
21758	@ frame_needed = 0, uses_anonymous_args = 0
21759	@ link register save eliminated.
21760	b	FtlCacheWriteBack
21761	.size	ftl_cache_flush, .-ftl_cache_flush
21762	.section	.text.ftl_discard,"ax",%progbits
21763	.align	1
21764	.global	ftl_discard
21765	.syntax unified
21766	.thumb
21767	.thumb_func
21768	.fpu softvfp
21769	.type	ftl_discard, %function
21770ftl_discard:
21771	@ args = 0, pretend = 0, frame = 8
21772	@ frame_needed = 0, uses_anonymous_args = 0
21773	ldr	r3, .L3184
21774	push	{r0, r1, r4, r5, r6, r7, r8, lr}
21775	mov	r6, r1
21776	mov	r4, r2
21777	ldr	r3, [r3]
21778	cmp	r3, r1
21779	bls	.L3177
21780	cmp	r3, r2
21781	bcc	.L3177
21782	adds	r2, r1, r2
21783	cmp	r3, r2
21784	bcc	.L3177
21785	cmp	r4, #31
21786	bhi	.L3169
21787.L3170:
21788	movs	r0, #0
21789.L3167:
21790	add	sp, sp, #8
21791	@ sp needed
21792	pop	{r4, r5, r6, r7, r8, pc}
21793.L3169:
21794	ldr	r3, .L3184+4
21795	ldr	r3, [r3]
21796	cmp	r3, #0
21797	bne	.L3170
21798	ldr	r8, .L3184+16
21799	bl	FtlCacheWriteBack
21800	mov	r0, r6
21801	ldrh	r5, [r8]
21802	mov	r1, r5
21803	bl	__aeabi_uidiv
21804	smulbb	r3, r0, r5
21805	mov	r7, r0
21806	subs	r6, r6, r3
21807	uxth	r6, r6
21808	cbz	r6, .L3171
21809	subs	r5, r5, r6
21810	adds	r7, r7, #1
21811	cmp	r5, r4
21812	it	cs
21813	movcs	r5, r4
21814	uxth	r5, r5
21815	subs	r4, r4, r5
21816.L3171:
21817	ldr	r5, .L3184+8
21818	mov	r3, #-1
21819	ldr	r6, .L3184+12
21820	str	r3, [sp, #4]
21821.L3172:
21822	ldrh	r3, [r8]
21823	cmp	r4, r3
21824	bcs	.L3174
21825	ldr	r3, .L3184+8
21826	ldr	r2, [r3]
21827	cmp	r2, #32
21828	bls	.L3170
21829	movs	r4, #0
21830	str	r4, [r3]
21831	bl	l2p_flush
21832	bl	FtlVpcTblFlush
21833	b	.L3170
21834.L3174:
21835	movs	r2, #0
21836	mov	r1, sp
21837	mov	r0, r7
21838	bl	log2phys
21839	ldr	r3, [sp]
21840	adds	r3, r3, #1
21841	beq	.L3173
21842	ldr	r3, [r5]
21843	movs	r2, #1
21844	add	r1, sp, #4
21845	mov	r0, r7
21846	adds	r3, r3, #1
21847	str	r3, [r5]
21848	ldr	r3, [r6]
21849	adds	r3, r3, #1
21850	str	r3, [r6]
21851	bl	log2phys
21852	ldr	r0, [sp]
21853	ubfx	r0, r0, #10, #16
21854	bl	P2V_block_in_plane
21855	bl	decrement_vpc_count
21856.L3173:
21857	ldrh	r3, [r8]
21858	adds	r7, r7, #1
21859	subs	r4, r4, r3
21860	b	.L3172
21861.L3177:
21862	mov	r0, #-1
21863	b	.L3167
21864.L3185:
21865	.align	2
21866.L3184:
21867	.word	.LANCHOR68
21868	.word	.LANCHOR78
21869	.word	.LANCHOR253
21870	.word	.LANCHOR168
21871	.word	.LANCHOR55
21872	.size	ftl_discard, .-ftl_discard
21873	.section	.text.FtlRead,"ax",%progbits
21874	.align	1
21875	.global	FtlRead
21876	.syntax unified
21877	.thumb
21878	.thumb_func
21879	.fpu softvfp
21880	.type	FtlRead, %function
21881FtlRead:
21882	@ args = 0, pretend = 0, frame = 64
21883	@ frame_needed = 0, uses_anonymous_args = 0
21884	push	{r4, r5, r6, r7, r8, r10, fp, lr}
21885	sub	sp, sp, #88
21886	str	r3, [sp, #24]
21887	mov	r4, r1
21888	ldr	r3, .L3231
21889	str	r2, [sp, #44]
21890	ldr	r3, [r3]
21891	cmp	r3, #1
21892	bne	.L3213
21893	cmp	r0, #16
21894	bne	.L3188
21895	ldr	r2, [sp, #24]
21896	add	r0, r4, #256
21897	ldr	r1, [sp, #44]
21898	bl	FtlVendorPartRead
21899	mov	r7, r0
21900.L3186:
21901	mov	r0, r7
21902	add	sp, sp, #88
21903	@ sp needed
21904	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
21905.L3188:
21906	ldr	r3, .L3231+4
21907	ldr	r3, [r3]
21908	cmp	r1, r3
21909	bcs	.L3213
21910	ldr	r2, [sp, #44]
21911	cmp	r2, r3
21912	bhi	.L3213
21913	adds	r2, r1, r2
21914	cmp	r3, r2
21915	str	r2, [sp, #48]
21916	bcc	.L3213
21917	ldr	r3, .L3231+8
21918	mov	r0, r4
21919	ldrh	r5, [r3]
21920	mov	r1, r5
21921	bl	__aeabi_uidiv
21922	ldr	r3, [sp, #48]
21923	mov	r1, r5
21924	str	r0, [sp, #36]
21925	subs	r0, r3, #1
21926	bl	__aeabi_uidiv
21927	ldr	r3, [sp, #36]
21928	ldr	r2, .L3231+12
21929	ldr	r1, [sp, #44]
21930	rsb	r3, r3, #1
21931	str	r0, [sp, #40]
21932	add	r3, r3, r0
21933	str	r3, [sp, #32]
21934	ldr	r3, [r2]
21935	add	r3, r3, r1
21936	ldr	r1, [sp, #32]
21937	str	r3, [r2]
21938	ldr	r2, .L3231+16
21939	ldr	r3, [r2]
21940	add	r3, r3, r1
21941	mov	r1, r0
21942	ldr	r0, [sp, #36]
21943	str	r3, [r2]
21944	bl	FtlCacheMetchLpa
21945	cbz	r0, .L3189
21946	bl	FtlCacheWriteBack
21947.L3189:
21948	ldr	r5, [sp, #36]
21949	movs	r3, #0
21950	ldr	r10, .L3231+60
21951	mov	r6, r3
21952	mov	r7, r3
21953	str	r3, [sp, #28]
21954	str	r3, [sp, #52]
21955.L3190:
21956	ldr	r3, [sp, #32]
21957	cbnz	r3, .L3209
21958	ldr	r3, .L3231+20
21959	ldrh	r3, [r3]
21960	cmp	r3, #0
21961	beq	.L3186
21962	movs	r1, #1
21963	ldr	r0, [sp, #32]
21964	bl	ftl_do_gc
21965	b	.L3186
21966.L3209:
21967	movs	r2, #0
21968	add	r1, sp, #84
21969	mov	r0, r5
21970	bl	log2phys
21971	ldr	r3, [sp, #84]
21972	adds	r2, r3, #1
21973	bne	.L3191
21974	ldr	fp, .L3231+8
21975	mov	r8, #0
21976.L3192:
21977	ldrh	r0, [fp]
21978	cmp	r8, r0
21979	bcc	.L3194
21980.L3195:
21981	ldr	r3, [sp, #32]
21982	adds	r5, r5, #1
21983	subs	r3, r3, #1
21984	str	r3, [sp, #32]
21985	beq	.L3199
21986	ldr	r3, .L3231+24
21987	ldrh	r3, [r3]
21988	cmp	r6, r3, lsl #2
21989	bne	.L3190
21990.L3199:
21991	cmp	r6, #0
21992	beq	.L3190
21993	movs	r2, #0
21994	mov	r1, r6
21995	ldr	r0, [r10]
21996	mov	fp, #0
21997	bl	FlashReadPages
21998	ldr	r3, [sp, #28]
21999	lsls	r3, r3, #9
22000	str	r3, [sp, #68]
22001	ldr	r3, [sp, #56]
22002	lsls	r3, r3, #9
22003	str	r3, [sp, #60]
22004	ldr	r3, [sp, #52]
22005	lsls	r3, r3, #9
22006	str	r3, [sp, #64]
22007.L3208:
22008	mov	r8, #36
22009	ldr	r3, [r10]
22010	mul	r8, r8, fp
22011	ldr	r1, [sp, #36]
22012	add	r3, r3, r8
22013	ldr	r2, [r3, #16]
22014	cmp	r1, r2
22015	bne	.L3201
22016	ldr	r1, [r3, #8]
22017	ldr	r3, .L3231+28
22018	ldr	r3, [r3]
22019	cmp	r1, r3
22020	bne	.L3202
22021	ldr	r3, [sp, #60]
22022	ldr	r2, [sp, #64]
22023	ldr	r0, [sp, #24]
22024	add	r1, r1, r3
22025.L3230:
22026	bl	ftl_memcpy
22027.L3202:
22028	ldr	r3, [r10]
22029	ldr	r1, [r3, r8]
22030	add	r2, r3, r8
22031	adds	r3, r1, #1
22032	bne	.L3203
22033	ldr	r0, .L3231+32
22034	mov	r7, r1
22035	ldr	r3, [r0, #72]
22036	adds	r3, r3, #1
22037	str	r3, [r0, #72]
22038.L3203:
22039	ldr	r3, [r2, #12]
22040	ldr	lr, [r2, #16]
22041	ldr	r0, [r3, #8]
22042	cmp	lr, r0
22043	beq	.L3204
22044	ldr	ip, .L3231+32
22045	ldr	r0, [ip, #72]
22046	adds	r0, r0, #1
22047	str	r0, [ip, #72]
22048	ldr	r0, [r2, #8]
22049	ldr	r1, [r0, #4]
22050	str	r1, [sp, #16]
22051	mov	r1, lr
22052	ldr	r0, [r0]
22053	str	r0, [sp, #12]
22054	ldr	r0, [r3, #12]
22055	str	r0, [sp, #8]
22056	ldr	r0, [r3, #8]
22057	str	r0, [sp, #4]
22058	ldr	r0, [r3, #4]
22059	str	r0, [sp]
22060	ldr	r0, .L3231+36
22061	ldr	r3, [r3]
22062	ldr	r2, [r2, #4]
22063	bl	printf
22064.L3204:
22065	ldr	r3, [r10]
22066	add	r2, r3, r8
22067	ldr	r3, [r3, r8]
22068	cmp	r3, #256
22069	bne	.L3205
22070	ldr	r0, [r2, #4]
22071	ubfx	r0, r0, #10, #16
22072	bl	P2V_block_in_plane
22073	mov	r8, r0
22074	bl	FtlGcRefreshBlock
22075	ldr	r2, .L3231+40
22076	ldr	r3, .L3231+44
22077.L3207:
22078	movs	r1, #1
22079	str	r2, [sp, #72]
22080	mov	r0, r1
22081	str	r3, [sp, #76]
22082	bl	ftl_do_gc
22083	ldr	r2, [sp, #72]
22084	ldr	r1, [r2]
22085	cbnz	r1, .L3206
22086	ldr	r3, [sp, #76]
22087	ldrh	r1, [r3]
22088	cmp	r1, r8
22089	beq	.L3207
22090.L3206:
22091	bl	FtlSysFlush
22092.L3205:
22093	add	fp, fp, #1
22094	cmp	r6, fp
22095	bne	.L3208
22096	movs	r6, #0
22097	b	.L3190
22098.L3194:
22099	mla	r0, r0, r5, r8
22100	cmp	r4, r0
22101	bhi	.L3193
22102	ldr	r3, [sp, #48]
22103	cmp	r3, r0
22104	bls	.L3193
22105	ldr	r3, [sp, #24]
22106	subs	r0, r0, r4
22107	mov	r2, #512
22108	movs	r1, #0
22109	add	r0, r3, r0, lsl #9
22110	bl	ftl_memset
22111.L3193:
22112	add	r8, r8, #1
22113	b	.L3192
22114.L3191:
22115	ldr	r2, [r10]
22116	mov	r8, #36
22117	mla	r8, r8, r6, r2
22118	str	r3, [r8, #4]
22119	ldr	r3, [sp, #36]
22120	cmp	r5, r3
22121	ldr	r3, .L3231+8
22122	bne	.L3196
22123	ldr	r2, .L3231+28
22124	mov	r0, r4
22125	ldrh	fp, [r3]
22126	ldr	r2, [r2]
22127	mov	r1, fp
22128	str	r2, [r8, #8]
22129	bl	__aeabi_uidivmod
22130	ldr	r2, [sp, #44]
22131	sub	r3, fp, r1
22132	str	r1, [sp, #56]
22133	cmp	r3, r2
22134	it	cs
22135	movcs	r3, r2
22136	cmp	r3, fp
22137	str	r3, [sp, #52]
22138	bne	.L3197
22139	ldr	r3, [sp, #24]
22140.L3228:
22141	str	r3, [r8, #8]
22142.L3197:
22143	ldr	r3, .L3231+48
22144	ldr	r2, .L3231+52
22145	str	r5, [r8, #16]
22146	ldrh	r3, [r3]
22147	ldr	r2, [r2]
22148	muls	r3, r6, r3
22149	adds	r6, r6, #1
22150	bic	r3, r3, #3
22151	add	r3, r3, r2
22152	str	r3, [r8, #12]
22153	b	.L3195
22154.L3196:
22155	ldr	r2, [sp, #40]
22156	cmp	r5, r2
22157	bne	.L3198
22158	ldr	r2, .L3231+56
22159	ldr	r1, [sp, #48]
22160	ldr	r2, [r2]
22161	str	r2, [r8, #8]
22162	ldrh	r2, [r3]
22163	mul	r3, r2, r5
22164	subs	r1, r1, r3
22165	cmp	r2, r1
22166	str	r1, [sp, #28]
22167	bne	.L3197
22168.L3229:
22169	ldr	r2, [sp, #24]
22170	subs	r3, r3, r4
22171	add	r3, r2, r3, lsl #9
22172	b	.L3228
22173.L3198:
22174	ldrh	r3, [r3]
22175	muls	r3, r5, r3
22176	b	.L3229
22177.L3201:
22178	ldr	r1, [sp, #40]
22179	cmp	r1, r2
22180	bne	.L3202
22181	ldr	r1, [r3, #8]
22182	ldr	r3, .L3231+56
22183	ldr	r3, [r3]
22184	cmp	r1, r3
22185	bne	.L3202
22186	ldr	r3, .L3231+8
22187	ldr	r2, [sp, #68]
22188	ldrh	r0, [r3]
22189	ldr	r3, [sp, #40]
22190	muls	r0, r3, r0
22191	ldr	r3, [sp, #24]
22192	subs	r0, r0, r4
22193	add	r0, r3, r0, lsl #9
22194	b	.L3230
22195.L3213:
22196	mov	r7, #-1
22197	b	.L3186
22198.L3232:
22199	.align	2
22200.L3231:
22201	.word	.LANCHOR247
22202	.word	.LANCHOR68
22203	.word	.LANCHOR55
22204	.word	.LANCHOR226
22205	.word	.LANCHOR171
22206	.word	.LANCHOR119
22207	.word	.LANCHOR38
22208	.word	.LANCHOR193
22209	.word	.LANCHOR141
22210	.word	.LC68
22211	.word	.LANCHOR78
22212	.word	.LANCHOR213
22213	.word	.LANCHOR58
22214	.word	.LANCHOR196
22215	.word	.LANCHOR194
22216	.word	.LANCHOR186
22217	.size	FtlRead, .-FtlRead
22218	.section	.text.ftl_vendor_read,"ax",%progbits
22219	.align	1
22220	.global	ftl_vendor_read
22221	.syntax unified
22222	.thumb
22223	.thumb_func
22224	.fpu softvfp
22225	.type	ftl_vendor_read, %function
22226ftl_vendor_read:
22227	@ args = 0, pretend = 0, frame = 0
22228	@ frame_needed = 0, uses_anonymous_args = 0
22229	@ link register save eliminated.
22230	mov	r3, r2
22231	mov	r2, r1
22232	mov	r1, r0
22233	movs	r0, #16
22234	b	FtlRead
22235	.size	ftl_vendor_read, .-ftl_vendor_read
22236	.section	.text.ftl_sys_read,"ax",%progbits
22237	.align	1
22238	.global	ftl_sys_read
22239	.syntax unified
22240	.thumb
22241	.thumb_func
22242	.fpu softvfp
22243	.type	ftl_sys_read, %function
22244ftl_sys_read:
22245	@ args = 0, pretend = 0, frame = 0
22246	@ frame_needed = 0, uses_anonymous_args = 0
22247	@ link register save eliminated.
22248	mov	r3, r2
22249	mov	r2, r1
22250	add	r1, r0, #256
22251	movs	r0, #16
22252	b	FtlRead
22253	.size	ftl_sys_read, .-ftl_sys_read
22254	.section	.text.StorageSysDataLoad,"ax",%progbits
22255	.align	1
22256	.global	StorageSysDataLoad
22257	.syntax unified
22258	.thumb
22259	.thumb_func
22260	.fpu softvfp
22261	.type	StorageSysDataLoad, %function
22262StorageSysDataLoad:
22263	@ args = 0, pretend = 0, frame = 0
22264	@ frame_needed = 0, uses_anonymous_args = 0
22265	push	{r4, r5, r6, lr}
22266	mov	r4, r1
22267	mov	r5, r0
22268	mov	r2, #512
22269	movs	r1, #0
22270	mov	r0, r4
22271	bl	memset
22272	mov	r3, r4
22273	add	r1, r5, #256
22274	movs	r2, #1
22275	movs	r0, #16
22276	pop	{r4, r5, r6, lr}
22277	b	FtlRead
22278	.size	StorageSysDataLoad, .-StorageSysDataLoad
22279	.section	.text.FlashBootVendorRead,"ax",%progbits
22280	.align	1
22281	.global	FlashBootVendorRead
22282	.syntax unified
22283	.thumb
22284	.thumb_func
22285	.fpu softvfp
22286	.type	FlashBootVendorRead, %function
22287FlashBootVendorRead:
22288	@ args = 0, pretend = 0, frame = 0
22289	@ frame_needed = 0, uses_anonymous_args = 0
22290	@ link register save eliminated.
22291	mov	r3, r2
22292	mov	r1, r0
22293	movs	r2, #1
22294	movs	r0, #16
22295	b	FtlRead
22296	.size	FlashBootVendorRead, .-FlashBootVendorRead
22297	.section	.text.ftl_read,"ax",%progbits
22298	.align	1
22299	.global	ftl_read
22300	.syntax unified
22301	.thumb
22302	.thumb_func
22303	.fpu softvfp
22304	.type	ftl_read, %function
22305ftl_read:
22306	@ args = 0, pretend = 0, frame = 0
22307	@ frame_needed = 0, uses_anonymous_args = 0
22308	@ link register save eliminated.
22309	b	FtlRead
22310	.size	ftl_read, .-ftl_read
22311	.section	.text.FtlInit,"ax",%progbits
22312	.align	1
22313	.global	FtlInit
22314	.syntax unified
22315	.thumb
22316	.thumb_func
22317	.fpu softvfp
22318	.type	FtlInit, %function
22319FtlInit:
22320	@ args = 0, pretend = 0, frame = 0
22321	@ frame_needed = 0, uses_anonymous_args = 0
22322	push	{r4, r5, r6, r7, r8, lr}
22323	mov	r3, #-1
22324	ldr	r5, .L3248
22325	ldr	r2, .L3248+4
22326	str	r3, [r5]
22327	movs	r3, #0
22328	ldr	r1, .L3248+8
22329	str	r3, [r2]
22330	ldr	r2, .L3248+12
22331	ldr	r0, .L3248+16
22332	str	r3, [r2]
22333	bl	printf
22334	ldr	r0, .L3248+20
22335	bl	FtlConstantsInit
22336	bl	FtlMemInit
22337	bl	FtlVariablesInit
22338	ldr	r3, .L3248+24
22339	ldrh	r0, [r3]
22340	bl	FtlFreeSysBlkQueueInit
22341	bl	FtlLoadBbt
22342	cbz	r0, .L3239
22343	ldr	r1, .L3248+28
22344	ldr	r0, .L3248+32
22345.L3247:
22346	bl	printf
22347.L3240:
22348	movs	r0, #0
22349	pop	{r4, r5, r6, r7, r8, pc}
22350.L3239:
22351	bl	FtlSysBlkInit
22352	mov	r4, r0
22353	cbz	r0, .L3241
22354	ldr	r1, .L3248+28
22355	ldr	r0, .L3248+36
22356	b	.L3247
22357.L3241:
22358	movs	r1, #1
22359	str	r1, [r5]
22360	ldr	r5, .L3248+40
22361	bl	ftl_do_gc
22362	ldrh	r6, [r5]
22363	cmp	r6, #15
22364	bhi	.L3240
22365	ldr	r7, .L3248+44
22366	ldr	r8, .L3248+48
22367.L3245:
22368	ldrh	r3, [r7]
22369	movw	r2, #65535
22370	cmp	r3, r2
22371	bne	.L3243
22372	ldrh	r2, [r8]
22373	cmp	r2, r3
22374	bne	.L3243
22375	and	r0, r4, #63
22376	bl	List_get_gc_head_node
22377	uxth	r0, r0
22378	bl	FtlGcRefreshBlock
22379.L3243:
22380	movs	r1, #1
22381	mov	r0, r1
22382	bl	ftl_do_gc
22383	movs	r1, #1
22384	movs	r0, #0
22385	bl	ftl_do_gc
22386	ldrh	r2, [r5]
22387	adds	r3, r6, #2
22388	cmp	r2, r3
22389	bhi	.L3240
22390	adds	r4, r4, #1
22391	cmp	r4, #4096
22392	bne	.L3245
22393	b	.L3240
22394.L3249:
22395	.align	2
22396.L3248:
22397	.word	.LANCHOR247
22398	.word	.LANCHOR254
22399	.word	.LC77
22400	.word	.LANCHOR78
22401	.word	.LC7
22402	.word	.LANCHOR15
22403	.word	.LANCHOR39
22404	.word	.LANCHOR255
22405	.word	.LC78
22406	.word	.LC79
22407	.word	.LANCHOR90
22408	.word	.LANCHOR213
22409	.word	.LANCHOR115
22410	.size	FtlInit, .-FtlInit
22411	.section	.text.rk_ftl_init,"ax",%progbits
22412	.align	1
22413	.global	rk_ftl_init
22414	.syntax unified
22415	.thumb
22416	.thumb_func
22417	.fpu softvfp
22418	.type	rk_ftl_init, %function
22419rk_ftl_init:
22420	@ args = 0, pretend = 0, frame = 0
22421	@ frame_needed = 0, uses_anonymous_args = 0
22422	push	{r4, lr}
22423	bl	FlashInit
22424	mov	r4, r0
22425	cbnz	r0, .L3251
22426	bl	FtlInit
22427.L3251:
22428	bl	idb_init
22429	mov	r1, r4
22430	ldr	r0, .L3252
22431	bl	printf
22432	mov	r0, r4
22433	pop	{r4, pc}
22434.L3253:
22435	.align	2
22436.L3252:
22437	.word	.LC80
22438	.size	rk_ftl_init, .-rk_ftl_init
22439	.section	.text.ftl_fix_nand_power_lost_error,"ax",%progbits
22440	.align	1
22441	.global	ftl_fix_nand_power_lost_error
22442	.syntax unified
22443	.thumb
22444	.thumb_func
22445	.fpu softvfp
22446	.type	ftl_fix_nand_power_lost_error, %function
22447ftl_fix_nand_power_lost_error:
22448	@ args = 0, pretend = 0, frame = 56
22449	@ frame_needed = 0, uses_anonymous_args = 0
22450	ldr	r3, .L3268
22451	push	{r4, r5, r6, r7, r8, r10, fp, lr}
22452	sub	sp, sp, #56
22453	ldrb	r3, [r3]	@ zero_extendqisi2
22454	cmp	r3, #0
22455	beq	.L3254
22456	ldr	r7, .L3268+4
22457	ldr	r6, .L3268+8
22458	ldr	r10, .L3268+32
22459	ldrh	r5, [r7]
22460	ldr	r3, [r6]
22461	ldr	r4, .L3268+12
22462	mov	r1, r5
22463	ldr	r0, .L3268+16
22464	ldrh	r2, [r3, r5, lsl #1]
22465	lsl	r8, r5, #1
22466	bl	printf
22467	ldrh	r0, [r10]
22468	bl	FtlGcRefreshOpenBlock
22469	ldrh	r0, [r4]
22470	bl	FtlGcRefreshOpenBlock
22471	mov	r0, r10
22472	bl	allocate_new_data_superblock
22473	mov	r0, r4
22474	movw	r4, #4097
22475	bl	allocate_new_data_superblock
22476	str	r7, [sp, #4]
22477.L3256:
22478	subs	r4, r4, #1
22479	beq	.L3260
22480	movs	r1, #1
22481	mov	r0, r1
22482	bl	ftl_do_gc
22483	ldr	r3, [r6]
22484	ldrh	r3, [r3, r8]
22485	cmp	r3, #0
22486	bne	.L3256
22487.L3260:
22488	ldr	r3, [r6]
22489	mov	r1, r5
22490	ldr	r0, .L3268+16
22491	ldrh	r2, [r3, r5, lsl #1]
22492	bl	printf
22493	ldr	r3, [r6]
22494	ldrh	r4, [r3, r5, lsl #1]
22495	cbnz	r4, .L3258
22496	add	r0, sp, #56
22497	ldr	r7, .L3268+20
22498	strh	r5, [r0, #-48]!	@ movhi
22499	movw	r10, #65535
22500	bl	make_superblock
22501	ldr	r3, .L3268+24
22502	add	r0, sp, #22
22503	ldr	r8, [r7]
22504	mov	r2, r4
22505	mov	fp, #36
22506	mov	ip, r4
22507	ldrh	lr, [r3]
22508.L3261:
22509	uxth	r3, r2
22510	cmp	lr, r3
22511	bhi	.L3263
22512	ldr	r3, [r6]
22513	mov	r1, r5
22514	ldr	r0, .L3268+28
22515	ldrh	r2, [r3, r5, lsl #1]
22516	bl	printf
22517	mov	r2, r4
22518	movs	r1, #0
22519	ldr	r0, [r7]
22520	bl	FlashEraseBlocks
22521	mov	r2, r4
22522	movs	r1, #1
22523	ldr	r0, [r7]
22524	bl	FlashEraseBlocks
22525.L3258:
22526	ldr	r2, [sp, #4]
22527	movw	r3, #65535
22528	strh	r3, [r2]	@ movhi
22529.L3254:
22530	add	sp, sp, #56
22531	@ sp needed
22532	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
22533.L3263:
22534	ldrh	r3, [r0, #2]!
22535	cmp	r3, r10
22536	beq	.L3262
22537	mla	r1, fp, r4, r8
22538	adds	r4, r4, #1
22539	lsls	r3, r3, #10
22540	uxth	r4, r4
22541	str	r3, [r1, #4]
22542	str	ip, [r1, #8]
22543	str	ip, [r1, #12]
22544.L3262:
22545	adds	r2, r2, #1
22546	b	.L3261
22547.L3269:
22548	.align	2
22549.L3268:
22550	.word	.LANCHOR16
22551	.word	.LANCHOR241
22552	.word	.LANCHOR85
22553	.word	.LANCHOR94
22554	.word	.LC81
22555	.word	.LANCHOR79
22556	.word	.LANCHOR38
22557	.word	.LC82
22558	.word	.LANCHOR93
22559	.size	ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
22560	.section	.text.FtlWrite,"ax",%progbits
22561	.align	1
22562	.global	FtlWrite
22563	.syntax unified
22564	.thumb
22565	.thumb_func
22566	.fpu softvfp
22567	.type	FtlWrite, %function
22568FtlWrite:
22569	@ args = 0, pretend = 0, frame = 72
22570	@ frame_needed = 0, uses_anonymous_args = 0
22571	push	{r4, r5, r6, r7, r8, r10, fp, lr}
22572	mov	r8, r3
22573	ldr	r3, .L3342
22574	sub	sp, sp, #72
22575	mov	r5, r1
22576	mov	r7, r2
22577	ldr	r3, [r3]
22578	cmp	r3, #0
22579	bne	.L3313
22580	ldr	r2, .L3342+4
22581	ldr	r2, [r2]
22582	cmp	r2, #1
22583	bne	.L3314
22584	cmp	r0, #16
22585	bne	.L3272
22586	mov	r2, r8
22587	mov	r1, r7
22588	add	r0, r5, #256
22589	bl	FtlVendorPartWrite
22590.L3270:
22591	add	sp, sp, #72
22592	@ sp needed
22593	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
22594.L3272:
22595	ldr	r3, .L3342+8
22596	ldr	r3, [r3]
22597	cmp	r1, r3
22598	bcs	.L3317
22599	cmp	r7, r3
22600	bhi	.L3317
22601	adds	r6, r1, r7
22602	cmp	r3, r6
22603	bcc	.L3317
22604	ldr	r3, .L3342+12
22605	mov	r2, #2048
22606	mov	r0, r5
22607	str	r2, [r3]
22608	ldr	r3, .L3342+16
22609	ldrh	r4, [r3]
22610	mov	r1, r4
22611	bl	__aeabi_uidiv
22612	mov	r1, r4
22613	mov	fp, r0
22614	subs	r0, r6, #1
22615	bl	__aeabi_uidiv
22616	ldr	r2, .L3342+20
22617	sub	r10, r0, fp
22618	add	r6, r10, #1
22619	cmp	r7, r4, lsl #1
22620	str	r0, [sp, #4]
22621	ldr	r3, [r2]
22622	add	r3, r3, r6
22623	str	r3, [r2]
22624	ldr	r2, .L3342+24
22625	ldr	r3, [r2]
22626	add	r3, r3, r7
22627	str	r3, [r2]
22628	ite	cs
22629	movcs	r3, #1
22630	movcc	r3, #0
22631	str	r3, [sp, #12]
22632	ldr	r3, .L3342+28
22633	ldr	r2, [r3]
22634	cmp	r2, #0
22635	beq	.L3318
22636	movs	r3, #36
22637	muls	r3, r2, r3
22638	ldr	r2, .L3342+32
22639	ldr	r2, [r2]
22640	subs	r3, r3, #36
22641	add	r3, r3, r2
22642	ldr	r2, [r3, #16]
22643	cmp	fp, r2
22644	bne	.L3319
22645	ldr	r1, .L3342+36
22646	mov	r0, r5
22647	ldr	r6, .L3342+40
22648	str	r3, [sp, #8]
22649	ldr	r2, [r1]
22650	adds	r2, r2, #1
22651	str	r2, [r1]
22652	mov	r1, r4
22653	ldr	r2, [r6]
22654	adds	r2, r2, #1
22655	str	r2, [r6]
22656	bl	__aeabi_uidivmod
22657	subs	r4, r4, r1
22658	mov	r0, r1
22659	cmp	r4, r7
22660	mov	r1, r8
22661	it	cs
22662	movcs	r4, r7
22663	lsls	r3, r4, #9
22664	lsls	r2, r4, #9
22665	str	r3, [sp]
22666	ldr	r3, [sp, #8]
22667	ldr	r3, [r3, #8]
22668	add	r0, r3, r0, lsl #9
22669	bl	ftl_memcpy
22670	cmp	r10, #0
22671	bne	.L3276
22672	ldr	r3, [r6]
22673	cmp	r3, #2
22674	bgt	.L3276
22675.L3313:
22676	movs	r0, #0
22677	b	.L3270
22678.L3276:
22679	ldr	r3, [sp]
22680	subs	r7, r7, r4
22681	add	r5, r5, r4
22682	add	fp, fp, #1
22683	mov	r6, r10
22684	add	r3, r3, r8
22685	str	r3, [sp]
22686.L3275:
22687	ldr	r3, .L3342+40
22688	movs	r2, #0
22689	str	r2, [r3]
22690.L3274:
22691	ldr	r1, [sp, #4]
22692	mov	r0, fp
22693	bl	FtlCacheMetchLpa
22694	cbz	r0, .L3277
22695	bl	FtlCacheWriteBack
22696.L3277:
22697	ldr	r3, .L3342+44
22698	mov	r4, fp
22699	ldr	r2, .L3342+48
22700	str	r2, [r3]
22701.L3278:
22702	cmp	r6, #0
22703	bne	.L3308
22704	bl	FtlCacheWriteBack
22705	ldr	r3, [sp, #4]
22706	mov	r0, r6
22707	ldr	r4, .L3342+52
22708	sub	r1, r3, fp
22709	bl	ftl_do_gc
22710	ldrh	r3, [r4]
22711	cmp	r3, #5
22712	bls	.L3309
22713	cmp	r3, #31
22714	bhi	.L3313
22715	ldr	r3, .L3342+56
22716	ldrb	r3, [r3]	@ zero_extendqisi2
22717	cmp	r3, #0
22718	bne	.L3313
22719.L3309:
22720	ldr	r5, .L3342+60
22721	ldr	r7, .L3342+64
22722.L3312:
22723	ldrh	r2, [r5]
22724	movw	r3, #65535
22725	cmp	r2, r3
22726	bne	.L3311
22727	ldrh	r3, [r7]
22728	cmp	r3, r2
22729	bne	.L3311
22730	ldr	r2, .L3342+68
22731	ldrh	r2, [r2]
22732	cmp	r2, r3
22733	bne	.L3311
22734	and	r0, r6, #7
22735	bl	List_get_gc_head_node
22736	uxth	r0, r0
22737	bl	FtlGcRefreshBlock
22738.L3311:
22739	ldr	r2, .L3342+72
22740	movs	r3, #128
22741	movs	r1, #1
22742	mov	r0, r1
22743	strh	r3, [r2]	@ movhi
22744	ldr	r2, .L3342+76
22745	strh	r3, [r2]	@ movhi
22746	bl	ftl_do_gc
22747	movs	r1, #1
22748	movs	r0, #0
22749	bl	ftl_do_gc
22750	ldr	r3, .L3342
22751	ldr	r3, [r3]
22752	cmp	r3, #0
22753	bne	.L3313
22754	ldrh	r3, [r4]
22755	cmp	r3, #2
22756	bhi	.L3313
22757	adds	r6, r6, #1
22758	cmp	r6, #256
22759	bne	.L3312
22760	b	.L3313
22761.L3319:
22762	str	r8, [sp]
22763	b	.L3275
22764.L3318:
22765	str	r8, [sp]
22766	b	.L3274
22767.L3308:
22768	ldr	r3, .L3342+48
22769	ldr	r8, .L3342+100
22770	ldrb	r2, [r3, #6]	@ zero_extendqisi2
22771	ldrh	r3, [r8]
22772	cmp	r2, r3
22773	bcc	.L3279
22774	ldr	r1, .L3342+80
22775	mov	r2, #1472
22776	ldr	r0, .L3342+84
22777	bl	printf
22778	ldr	r1, .L3342+88
22779	ldr	r0, .L3342+92
22780	bl	printf
22781.L3279:
22782	ldr	r3, .L3342+48
22783	ldrh	r3, [r3, #4]
22784	cbnz	r3, .L3280
22785	ldr	r0, .L3342+48
22786	bl	allocate_new_data_superblock
22787	ldr	r3, .L3342+44
22788	ldr	r2, .L3342+48
22789	str	r2, [r3]
22790.L3280:
22791	ldr	r3, .L3342+96
22792	ldr	r2, .L3342+28
22793	ldr	r3, [r3]
22794	ldr	r2, [r2]
22795	subs	r3, r3, r2
22796	ldr	r2, .L3342+48
22797	ldrh	r2, [r2, #4]
22798	cmp	r3, r2
22799	it	cs
22800	movcs	r3, r2
22801	cmp	r3, r6
22802	it	cs
22803	movcs	r3, r6
22804	str	r3, [sp, #28]
22805	ldr	r3, .L3342+48
22806	ldrb	r2, [r3, #6]	@ zero_extendqisi2
22807	ldrh	r3, [r8]
22808	cmp	r2, r3
22809	bcc	.L3281
22810	ldr	r1, .L3342+80
22811	movw	r2, #1515
22812	ldr	r0, .L3342+84
22813	bl	printf
22814	ldr	r1, .L3342+88
22815	ldr	r0, .L3342+92
22816	bl	printf
22817.L3281:
22818	movs	r3, #0
22819.L3340:
22820	str	r3, [sp, #8]
22821	ldr	r3, [sp, #8]
22822	ldr	r2, [sp, #28]
22823	cmp	r3, r2
22824	bne	.L3303
22825.L3283:
22826	ldr	r3, [sp, #8]
22827	cmp	r6, r3
22828	bcs	.L3304
22829	ldr	r1, .L3342+80
22830	movw	r2, #1609
22831	ldr	r0, .L3342+84
22832	bl	printf
22833	ldr	r1, .L3342+88
22834	ldr	r0, .L3342+92
22835	bl	printf
22836.L3304:
22837	ldr	r3, [sp, #8]
22838	ldr	r8, .L3342+28
22839	subs	r6, r6, r3
22840	ldr	r3, .L3342+96
22841	ldr	r2, [r8]
22842	ldr	r3, [r3]
22843	cmp	r2, r3
22844	bcs	.L3305
22845	ldr	r3, [sp, #12]
22846	cmp	r3, #0
22847	bne	.L3305
22848	ldr	r3, .L3342+48
22849	ldrh	r3, [r3, #4]
22850	cmp	r3, #0
22851	beq	.L3305
22852.L3307:
22853	movs	r3, #0
22854	str	r3, [sp, #12]
22855	b	.L3278
22856.L3343:
22857	.align	2
22858.L3342:
22859	.word	.LANCHOR78
22860	.word	.LANCHOR247
22861	.word	.LANCHOR68
22862	.word	.LANCHOR256
22863	.word	.LANCHOR55
22864	.word	.LANCHOR167
22865	.word	.LANCHOR225
22866	.word	.LANCHOR72
22867	.word	.LANCHOR73
22868	.word	.LANCHOR169
22869	.word	.LANCHOR257
22870	.word	.LANCHOR252
22871	.word	.LANCHOR93
22872	.word	.LANCHOR90
22873	.word	.LANCHOR2
22874	.word	.LANCHOR213
22875	.word	.LANCHOR115
22876	.word	.LANCHOR116
22877	.word	.LANCHOR182
22878	.word	.LANCHOR181
22879	.word	.LANCHOR258
22880	.word	.LC5
22881	.word	.LC6
22882	.word	.LC7
22883	.word	.LANCHOR185
22884	.word	.LANCHOR38
22885.L3303:
22886	ldr	r3, .L3344
22887	ldrh	r3, [r3, #4]
22888	cmp	r3, #0
22889	beq	.L3283
22890	ldr	r3, [sp, #12]
22891	cbz	r3, .L3284
22892	ldr	r3, [sp, #4]
22893	cmp	r3, r4
22894	bne	.L3284
22895	ldr	r3, [sp, #8]
22896	cbz	r3, .L3284
22897	ldr	r3, .L3344+4
22898	ldr	r1, [sp, #4]
22899	ldrh	r2, [r3]
22900	adds	r3, r5, r7
22901	mls	r3, r2, r1, r3
22902	cmp	r2, r3
22903	bne	.L3283
22904.L3284:
22905	movs	r2, #0
22906	add	r1, sp, #32
22907	mov	r0, r4
22908	ldr	r8, .L3344+28
22909	bl	log2phys
22910	ldr	r0, .L3344
22911	bl	get_new_active_ppa
22912	ldr	r3, .L3344+8
22913	movs	r2, #36
22914	ldr	r1, [r3]
22915	ldr	r3, [r8]
22916	mla	ip, r2, r1, r3
22917	ldr	r3, .L3344+12
22918	ldrh	r2, [r3]
22919	str	r0, [ip, #4]
22920	str	r4, [ip, #16]
22921	mul	r3, r2, r1
22922	bic	r3, r3, #3
22923	str	r3, [sp, #20]
22924	ldr	r3, .L3344+16
22925	ldr	r0, [sp, #20]
22926	ldr	r3, [r3]
22927	add	r10, r3, r0
22928	str	r3, [sp, #24]
22929	ldr	r3, .L3344+20
22930	str	r10, [ip, #12]
22931	ldrh	r0, [r3]
22932	str	r3, [sp, #16]
22933	muls	r1, r0, r1
22934	ldr	r0, .L3344+24
22935	ldr	r0, [r0]
22936	bic	r1, r1, #3
22937	add	r1, r1, r0
22938	mov	r0, r10
22939	str	r1, [ip, #8]
22940	movs	r1, #0
22941	bl	ftl_memset
22942	cmp	fp, r4
22943	ldr	r2, .L3344+4
22944	beq	.L3285
22945	ldr	r3, [sp, #4]
22946	cmp	r3, r4
22947	ldr	r3, [sp, #16]
22948	bne	.L3337
22949	ldrh	r3, [sp, #4]
22950	add	r8, r5, r7
22951	ldrh	r2, [r2]
22952	smulbb	r2, r2, r3
22953	movs	r3, #0
22954	str	r3, [sp, #16]
22955	sub	r8, r8, r2
22956	uxth	r8, r8
22957	b	.L3288
22958.L3285:
22959	ldrh	r8, [r2]
22960	mov	r0, r5
22961	mov	r1, r8
22962	bl	__aeabi_uidivmod
22963	sub	r8, r8, r1
22964	str	r1, [sp, #16]
22965	cmp	r8, r7
22966	it	cs
22967	movcs	r8, r7
22968.L3288:
22969	ldr	r3, .L3344+4
22970	ldr	r0, .L3344+28
22971	ldrh	r3, [r3]
22972	cmp	r3, r8
22973	ldr	r3, .L3344+8
22974	bne	.L3289
22975	cmp	fp, r4
22976	ldr	r3, [r3]
22977	ittet	ne
22978	mulne	r1, r8, r4
22979	ldrne	r2, [sp]
22980	ldreq	r1, [sp]
22981	subne	r1, r1, r5
22982	it	ne
22983	addne	r1, r2, r1, lsl #9
22984	ldr	r2, [sp, #12]
22985	cmp	r2, #0
22986	beq	.L3291
22987	ldr	r2, [r0]
22988	movs	r0, #36
22989	mla	r3, r0, r3, r2
22990	str	r1, [r3, #8]
22991.L3292:
22992	ldr	r3, .L3344
22993	ldrb	r2, [r3, #6]	@ zero_extendqisi2
22994	ldr	r3, .L3344+32
22995	ldrh	r3, [r3]
22996	cmp	r2, r3
22997	bcc	.L3300
22998	ldr	r1, .L3344+36
22999	movw	r2, #1599
23000	ldr	r0, .L3344+40
23001	bl	printf
23002	ldr	r1, .L3344+44
23003	ldr	r0, .L3344+48
23004	bl	printf
23005.L3300:
23006	ldr	r2, [sp, #24]
23007	movw	r3, #61589
23008	ldr	r1, [sp, #20]
23009	strh	r3, [r2, r1]	@ movhi
23010	ldr	r2, .L3344+52
23011	str	r4, [r10, #8]
23012	adds	r4, r4, #1
23013	ldr	r3, [r2]
23014	str	r3, [r10, #4]
23015	adds	r3, r3, #1
23016	adds	r1, r3, #1
23017	it	eq
23018	moveq	r3, #0
23019	str	r3, [r2]
23020	ldr	r3, [sp, #32]
23021	ldr	r2, .L3344+8
23022	str	r3, [r10, #12]
23023	ldr	r3, .L3344
23024	ldrh	r3, [r3]
23025	strh	r3, [r10, #2]	@ movhi
23026	ldr	r3, [r2]
23027	adds	r3, r3, #1
23028	str	r3, [r2]
23029	ldr	r3, [sp, #8]
23030	adds	r3, r3, #1
23031	b	.L3340
23032.L3291:
23033	ldr	r2, .L3344+28
23034	movs	r0, #36
23035	ldr	r2, [r2]
23036	mla	r3, r0, r3, r2
23037	ldr	r2, .L3344+20
23038	ldrh	r2, [r2]
23039.L3341:
23040	ldr	r0, [r3, #8]
23041	b	.L3338
23042.L3289:
23043	ldr	r2, [sp, #32]
23044	adds	r1, r2, #1
23045	beq	.L3293
23046	str	r2, [sp, #40]
23047	movs	r1, #36
23048	ldr	r2, [r0]
23049	add	r0, sp, #36
23050	ldr	r3, [r3]
23051	str	r4, [sp, #52]
23052	mla	r3, r1, r3, r2
23053	movs	r1, #1
23054	ldr	r2, [r3, #8]
23055	ldr	r3, [r3, #12]
23056	str	r2, [sp, #44]
23057	movs	r2, #0
23058	str	r3, [sp, #48]
23059	bl	FlashReadPages
23060	ldr	r3, [sp, #36]
23061	adds	r3, r3, #1
23062	bne	.L3294
23063	ldr	r2, .L3344+56
23064	ldr	r3, [r2, #72]
23065	adds	r3, r3, #1
23066	str	r3, [r2, #72]
23067.L3297:
23068	cmp	fp, r4
23069	ldr	r0, .L3344+28
23070	lsl	r2, r8, #9
23071	bne	.L3298
23072	ldr	r3, .L3344+8
23073	ldr	r1, [r0]
23074	movs	r0, #36
23075	ldr	r3, [r3]
23076	mla	r3, r0, r3, r1
23077	ldr	r1, [sp]
23078	ldr	r0, [r3, #8]
23079	ldr	r3, [sp, #16]
23080	add	r0, r0, r3, lsl #9
23081.L3338:
23082	bl	ftl_memcpy
23083	b	.L3292
23084.L3294:
23085	ldr	r1, [r10, #8]
23086	cmp	r4, r1
23087	beq	.L3296
23088	ldr	r2, .L3344+56
23089	ldr	r0, .L3344+60
23090	ldr	r3, [r2, #72]
23091	adds	r3, r3, #1
23092	str	r3, [r2, #72]
23093	mov	r2, r4
23094	bl	printf
23095.L3296:
23096	ldr	r3, [r10, #8]
23097	cmp	r4, r3
23098	beq	.L3297
23099	movw	r2, #1581
23100	ldr	r1, .L3344+36
23101	ldr	r0, .L3344+40
23102	bl	printf
23103	ldr	r1, .L3344+44
23104	ldr	r0, .L3344+48
23105	bl	printf
23106	b	.L3297
23107.L3293:
23108	ldr	r2, [r0]
23109	movs	r1, #36
23110	ldr	r3, [r3]
23111	mla	r3, r1, r3, r2
23112	ldr	r2, .L3344+20
23113	movs	r1, #0
23114	ldrh	r2, [r2]
23115	ldr	r0, [r3, #8]
23116	bl	ftl_memset
23117	b	.L3297
23118.L3298:
23119	ldr	r3, .L3344+4
23120	mov	ip, #36
23121	ldr	r0, [r0]
23122	ldrh	r1, [r3]
23123	ldr	r3, .L3344+8
23124	ldr	r3, [r3]
23125	muls	r1, r4, r1
23126	mla	r3, ip, r3, r0
23127	ldr	r0, [sp]
23128	subs	r1, r1, r5
23129	add	r1, r0, r1, lsl #9
23130	b	.L3341
23131.L3337:
23132	ldr	r1, [sp, #12]
23133	cbz	r1, .L3299
23134	ldr	r3, .L3344+8
23135	movs	r0, #36
23136	ldr	r1, [r8]
23137	ldr	r3, [r3]
23138	mla	r8, r0, r3, r1
23139	ldrh	r3, [r2]
23140	ldr	r2, [sp]
23141	muls	r3, r4, r3
23142	subs	r3, r3, r5
23143	add	r3, r2, r3, lsl #9
23144	str	r3, [r8, #8]
23145	b	.L3292
23146.L3299:
23147	ldrh	r1, [r2]
23148	mov	ip, #36
23149	ldr	r2, .L3344+8
23150	ldr	r0, [r8]
23151	ldr	r2, [r2]
23152	muls	r1, r4, r1
23153	mla	r8, ip, r2, r0
23154	ldrh	r2, [r3]
23155	ldr	r3, [sp]
23156	subs	r1, r1, r5
23157	ldr	r0, [r8, #8]
23158	add	r1, r3, r1, lsl #9
23159	b	.L3338
23160.L3305:
23161	bl	FtlCacheWriteBack
23162	cmp	r6, #1
23163	mov	r3, #0
23164	str	r3, [r8]
23165	bhi	.L3278
23166	b	.L3307
23167.L3317:
23168	mov	r0, #-1
23169	b	.L3270
23170.L3314:
23171	mov	r0, r3
23172	b	.L3270
23173.L3345:
23174	.align	2
23175.L3344:
23176	.word	.LANCHOR93
23177	.word	.LANCHOR55
23178	.word	.LANCHOR72
23179	.word	.LANCHOR58
23180	.word	.LANCHOR197
23181	.word	.LANCHOR57
23182	.word	.LANCHOR192
23183	.word	.LANCHOR73
23184	.word	.LANCHOR38
23185	.word	.LANCHOR258
23186	.word	.LC5
23187	.word	.LC6
23188	.word	.LC7
23189	.word	.LANCHOR165
23190	.word	.LANCHOR141
23191	.word	.LC83
23192	.size	FtlWrite, .-FtlWrite
23193	.section	.text.ftl_vendor_write,"ax",%progbits
23194	.align	1
23195	.global	ftl_vendor_write
23196	.syntax unified
23197	.thumb
23198	.thumb_func
23199	.fpu softvfp
23200	.type	ftl_vendor_write, %function
23201ftl_vendor_write:
23202	@ args = 0, pretend = 0, frame = 0
23203	@ frame_needed = 0, uses_anonymous_args = 0
23204	@ link register save eliminated.
23205	mov	r3, r2
23206	mov	r2, r1
23207	mov	r1, r0
23208	movs	r0, #16
23209	b	FtlWrite
23210	.size	ftl_vendor_write, .-ftl_vendor_write
23211	.section	.text.ftl_sys_write,"ax",%progbits
23212	.align	1
23213	.global	ftl_sys_write
23214	.syntax unified
23215	.thumb
23216	.thumb_func
23217	.fpu softvfp
23218	.type	ftl_sys_write, %function
23219ftl_sys_write:
23220	@ args = 0, pretend = 0, frame = 0
23221	@ frame_needed = 0, uses_anonymous_args = 0
23222	@ link register save eliminated.
23223	mov	r3, r2
23224	mov	r2, r1
23225	add	r1, r0, #256
23226	movs	r0, #16
23227	b	FtlWrite
23228	.size	ftl_sys_write, .-ftl_sys_write
23229	.section	.text.StorageSysDataStore,"ax",%progbits
23230	.align	1
23231	.global	StorageSysDataStore
23232	.syntax unified
23233	.thumb
23234	.thumb_func
23235	.fpu softvfp
23236	.type	StorageSysDataStore, %function
23237StorageSysDataStore:
23238	@ args = 0, pretend = 0, frame = 0
23239	@ frame_needed = 0, uses_anonymous_args = 0
23240	@ link register save eliminated.
23241	mov	r3, r1
23242	movs	r2, #1
23243	add	r1, r0, #256
23244	movs	r0, #16
23245	b	FtlWrite
23246	.size	StorageSysDataStore, .-StorageSysDataStore
23247	.section	.text.FlashBootVendorWrite,"ax",%progbits
23248	.align	1
23249	.global	FlashBootVendorWrite
23250	.syntax unified
23251	.thumb
23252	.thumb_func
23253	.fpu softvfp
23254	.type	FlashBootVendorWrite, %function
23255FlashBootVendorWrite:
23256	@ args = 0, pretend = 0, frame = 0
23257	@ frame_needed = 0, uses_anonymous_args = 0
23258	@ link register save eliminated.
23259	mov	r3, r2
23260	mov	r1, r0
23261	movs	r2, #1
23262	movs	r0, #16
23263	b	FtlWrite
23264	.size	FlashBootVendorWrite, .-FlashBootVendorWrite
23265	.section	.text.ftl_write,"ax",%progbits
23266	.align	1
23267	.global	ftl_write
23268	.syntax unified
23269	.thumb
23270	.thumb_func
23271	.fpu softvfp
23272	.type	ftl_write, %function
23273ftl_write:
23274	@ args = 0, pretend = 0, frame = 0
23275	@ frame_needed = 0, uses_anonymous_args = 0
23276	push	{r4, r5, r6, r7, r8, lr}
23277	mov	r7, r1
23278	mov	r4, r2
23279	mov	r5, r3
23280	mov	r6, r0
23281	cbnz	r0, .L3351
23282	mov	r3, r2
23283	mov	r2, r5
23284	bl	idb_write_data
23285.L3351:
23286	mov	r3, r5
23287	mov	r2, r4
23288	mov	r1, r7
23289	mov	r0, r6
23290	pop	{r4, r5, r6, r7, r8, lr}
23291	b	FtlWrite
23292	.size	ftl_write, .-ftl_write
23293	.section	.text.FtlDumpSysBlock,"ax",%progbits
23294	.align	1
23295	.global	FtlDumpSysBlock
23296	.syntax unified
23297	.thumb
23298	.thumb_func
23299	.fpu softvfp
23300	.type	FtlDumpSysBlock, %function
23301FtlDumpSysBlock:
23302	@ args = 0, pretend = 0, frame = 0
23303	@ frame_needed = 0, uses_anonymous_args = 0
23304	push	{r4, r5, r6, r7, r8, r10, fp, lr}
23305	lsl	r10, r0, #10
23306	ldr	r5, .L3359
23307	sub	sp, sp, #24
23308	mov	r7, r0
23309	movs	r6, #0
23310	ldr	r4, .L3359+4
23311	ldr	r3, [r5]
23312	ldr	r8, .L3359+20
23313	mov	fp, r4
23314	str	r3, [r4, #8]
23315	ldr	r3, .L3359+8
23316	ldr	r3, [r3]
23317	str	r3, [r4, #12]
23318.L3353:
23319	ldrh	r2, [r8]
23320	sxth	r3, r6
23321	cmp	r3, r2
23322	blt	.L3355
23323	add	sp, sp, #24
23324	@ sp needed
23325	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
23326.L3355:
23327	movs	r2, #1
23328	orr	r3, r3, r10
23329	mov	r1, r2
23330	mov	r0, fp
23331	str	r3, [r4, #4]
23332	bl	FlashReadPages
23333	ldr	r2, [r4, #8]
23334	mov	r1, r7
23335	ldr	r3, [r4, #12]
23336	ldr	r0, .L3359+12
23337	ldr	r2, [r2]
23338	str	r2, [sp, #16]
23339	ldr	r2, [r3, #12]
23340	str	r2, [sp, #12]
23341	ldr	r2, [r3, #8]
23342	str	r2, [sp, #8]
23343	ldr	r2, [r3, #4]
23344	str	r2, [sp, #4]
23345	ldr	r3, [r3]
23346	str	r3, [sp]
23347	ldm	r4, {r2, r3}
23348	bl	printf
23349	ldr	r3, [r4, #12]
23350	ldr	r3, [r3]
23351	adds	r3, r3, #1
23352	beq	.L3354
23353	mov	r3, #768
23354	movs	r2, #4
23355	ldr	r1, [r5]
23356	ldr	r0, .L3359+16
23357	bl	rknand_print_hex
23358.L3354:
23359	adds	r6, r6, #1
23360	b	.L3353
23361.L3360:
23362	.align	2
23363.L3359:
23364	.word	.LANCHOR189
23365	.word	.LANCHOR211
23366	.word	.LANCHOR195
23367	.word	.LC84
23368	.word	.LC85
23369	.word	.LANCHOR53
23370	.size	FtlDumpSysBlock, .-FtlDumpSysBlock
23371	.section	.text.dump_map_info,"ax",%progbits
23372	.align	1
23373	.global	dump_map_info
23374	.syntax unified
23375	.thumb
23376	.thumb_func
23377	.fpu softvfp
23378	.type	dump_map_info, %function
23379dump_map_info:
23380	@ args = 0, pretend = 0, frame = 16
23381	@ frame_needed = 0, uses_anonymous_args = 0
23382	ldr	r3, .L3375
23383	push	{r4, r5, r6, r7, r8, r10, fp, lr}
23384	sub	sp, sp, #40
23385	ldr	r8, .L3375+72
23386	ldrh	r5, [r3]
23387.L3362:
23388	ldr	r3, .L3375+4
23389	ldrh	r3, [r3]
23390	cmp	r3, r5
23391	bhi	.L3369
23392	ldr	r4, .L3375+8
23393	movs	r7, #0
23394.L3370:
23395	ldr	r3, .L3375+12
23396	sxth	r5, r7
23397	ldrh	r3, [r3]
23398	cmp	r5, r3
23399	bge	.L3373
23400	lsls	r5, r5, #1
23401	movs	r6, #0
23402	ldr	r8, .L3375+76
23403	b	.L3374
23404.L3364:
23405	str	r3, [sp, #36]
23406	mov	r1, r5
23407	ldr	r3, .L3375+16
23408	str	r2, [sp, #32]
23409	ldrb	r0, [r3, r6]	@ zero_extendqisi2
23410	bl	V2P_block
23411	str	r0, [sp, #28]
23412	bl	FtlBbmIsBadBlock
23413	ldr	r2, [sp, #32]
23414	ldr	r3, [sp, #36]
23415	cbnz	r0, .L3363
23416	ldr	r1, [sp, #28]
23417	mla	r0, fp, r4, r7
23418	lsls	r1, r1, #10
23419	str	r3, [r0, #8]
23420	str	r1, [r0, #4]
23421	mul	r1, r10, r4
23422	adds	r4, r4, #1
23423	uxth	r4, r4
23424	bic	ip, r1, #3
23425	ldr	r1, [sp, #24]
23426	add	r1, r1, ip
23427	str	r1, [r0, #12]
23428.L3363:
23429	adds	r6, r6, #1
23430.L3371:
23431	uxth	r1, r6
23432	cmp	r2, r1
23433	bhi	.L3364
23434	cbnz	r4, .L3365
23435.L3368:
23436	adds	r5, r5, #1
23437	uxth	r5, r5
23438	b	.L3362
23439.L3365:
23440	ldr	r10, .L3375+80
23441	mov	r0, r7
23442	movs	r6, #0
23443	movs	r7, #36
23444	movs	r2, #1
23445	mov	r1, r4
23446	bl	FlashReadPages
23447.L3366:
23448	uxth	r3, r6
23449	cmp	r4, r3
23450	bls	.L3368
23451	ldr	r3, [r8]
23452	mla	r3, r7, r6, r3
23453	adds	r6, r6, #1
23454	ldr	r1, [r3, #12]
23455	ldr	r2, [r3, #4]
23456	ldr	r3, [r3, #8]
23457	ldr	r0, [r3, #4]
23458	str	r0, [sp, #16]
23459	mov	r0, r10
23460	ldr	r3, [r3]
23461	str	r3, [sp, #12]
23462	ldr	r3, [r1, #12]
23463	str	r3, [sp, #8]
23464	ldr	r3, [r1, #8]
23465	str	r3, [sp, #4]
23466	ldr	r3, [r1, #4]
23467	str	r3, [sp]
23468	ldr	r3, [r1]
23469	ubfx	r1, r2, #10, #16
23470	bl	printf
23471	b	.L3366
23472.L3369:
23473	ldr	r1, .L3375+20
23474	movs	r6, #0
23475	ldr	r3, .L3375+24
23476	mov	r4, r6
23477	ldr	r7, [r8]
23478	mov	fp, #36
23479	ldr	r1, [r1]
23480	ldrh	r2, [r3]
23481	ldr	r3, .L3375+28
23482	str	r1, [sp, #24]
23483	ldr	r1, .L3375+32
23484	ldr	r3, [r3]
23485	ldrh	r10, [r1]
23486	b	.L3371
23487.L3372:
23488	ldr	r10, .L3375+44
23489	mov	r0, r4
23490	ldr	r2, [r10]
23491	ldrh	r2, [r2, r5]
23492	orr	r3, r3, r2, lsl #10
23493	movs	r2, #1
23494	mov	r1, r2
23495	str	r3, [r4, #4]
23496	bl	FlashReadPages
23497	ldr	r2, [r4, #8]
23498	ldr	r1, [r10]
23499	ldr	r3, [r4, #12]
23500	ldr	r0, [r2, #4]
23501	ldrh	r1, [r1, r5]
23502	str	r0, [sp, #20]
23503	ldr	r2, [r2]
23504	ldr	r0, .L3375+36
23505	str	r2, [sp, #16]
23506	ldr	r2, [r3, #12]
23507	str	r2, [sp, #12]
23508	ldr	r2, [r3, #8]
23509	str	r2, [sp, #8]
23510	ldr	r2, [r3, #4]
23511	str	r2, [sp, #4]
23512	ldr	r3, [r3]
23513	str	r3, [sp]
23514	ldm	r4, {r2, r3}
23515	bl	printf
23516.L3374:
23517	ldrh	r2, [r8]
23518	sxth	r3, r6
23519	adds	r6, r6, #1
23520	cmp	r3, r2
23521	blt	.L3372
23522	adds	r7, r7, #1
23523	b	.L3370
23524.L3373:
23525	ldr	r3, .L3375+40
23526	movs	r2, #2
23527	ldr	r1, .L3375+44
23528	ldr	r0, .L3375+48
23529	ldr	r3, [r3]
23530	ldr	r1, [r1]
23531	bl	rknand_print_hex
23532	ldr	r4, .L3375+52
23533	movs	r2, #4
23534	ldr	r1, .L3375+56
23535	ldr	r0, .L3375+60
23536	ldrh	r3, [r4]
23537	ldr	r1, [r1]
23538	bl	rknand_print_hex
23539	ldr	r1, .L3375+64
23540	movs	r2, #4
23541	ldrh	r3, [r4]
23542	ldr	r0, .L3375+68
23543	ldr	r1, [r1]
23544	add	sp, sp, #40
23545	@ sp needed
23546	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
23547	b	rknand_print_hex
23548.L3376:
23549	.align	2
23550.L3375:
23551	.word	.LANCHOR40
23552	.word	.LANCHOR41
23553	.word	.LANCHOR211
23554	.word	.LANCHOR131
23555	.word	.LANCHOR47
23556	.word	.LANCHOR108
23557	.word	.LANCHOR38
23558	.word	.LANCHOR107
23559	.word	.LANCHOR58
23560	.word	.LC51
23561	.word	.LANCHOR64
23562	.word	.LANCHOR132
23563	.word	.LC87
23564	.word	.LANCHOR66
23565	.word	.LANCHOR134
23566	.word	.LC88
23567	.word	.LANCHOR203
23568	.word	.LC89
23569	.word	.LANCHOR186
23570	.word	.LANCHOR53
23571	.word	.LC86
23572	.size	dump_map_info, .-dump_map_info
23573	.global	FtlMallocOffset
23574	.global	FtlMallocBuffer
23575	.global	LastWritenPbaAddr
23576	.global	gc_ink_free_return_value
23577	.global	check_valid_page_count_table
23578	.global	FtlUpdateVaildLpnCount
23579	.global	g_ect_tbl_power_up_flush
23580	.global	last_cache_match_count
23581	.global	power_up_flag
23582	.global	g_LowFormat
23583	.global	gFtlInitStatus
23584	.global	DeviceCapacity
23585	.global	ToshibaRefValue
23586	.global	Toshiba15RefValue
23587	.global	ToshibaA19RefValue
23588	.global	SamsungRefValue
23589	.global	refValueDefault
23590	.global	random_seed
23591	.global	gSlcNandParaInfo
23592	.global	gNandParaInfo
23593	.global	g_page_map_check_enable
23594	.global	g_power_lost_ecc_error_blk
23595	.global	g_power_lost_recovery_flag
23596	.global	c_mlc_erase_count_value
23597	.global	g_recovery_ppa_tbl
23598	.global	g_recovery_page_min_ver
23599	.global	g_recovery_page_num
23600	.global	g_cur_erase_blk
23601	.global	g_gc_skip_write_count
23602	.global	g_gc_head_data_block_count
23603	.global	g_gc_head_data_block
23604	.global	g_ftl_nand_free_count
23605	.global	g_in_swl_replace
23606	.global	g_in_gc_progress
23607	.global	g_all_blk_used_slc_mode
23608	.global	g_max_erase_count
23609	.global	g_totle_sys_slc_erase_count
23610	.global	g_totle_slc_erase_count
23611	.global	g_min_erase_count
23612	.global	g_totle_avg_erase_count
23613	.global	g_totle_mlc_erase_count
23614	.global	g_totle_l2p_write_count
23615	.global	g_totle_cache_write_count
23616	.global	g_tmp_data_superblock_id
23617	.global	g_totle_read_page_count
23618	.global	g_totle_discard_page_count
23619	.global	g_totle_read_sector
23620	.global	g_totle_write_sector
23621	.global	g_totle_write_page_count
23622	.global	g_totle_gc_page_count
23623	.global	g_gc_blk_index
23624	.global	g_gc_merge_free_blk_threshold
23625	.global	g_gc_free_blk_threshold
23626	.global	g_gc_refresh_block_temp_tbl
23627	.global	g_free_slc_blk_num
23628	.global	g_gc_refresh_block_temp_num
23629	.global	g_gc_bad_block_temp_tbl
23630	.global	g_gc_bad_block_gc_index
23631	.global	g_gc_bad_block_temp_num
23632	.global	g_gc_next_blk_3
23633	.global	g_gc_next_blk_2
23634	.global	g_gc_next_blk_1
23635	.global	g_gc_next_blk
23636	.global	g_gc_cur_blk_max_valid_pages
23637	.global	g_gc_cur_blk_valid_pages
23638	.global	g_gc_page_offset
23639	.global	g_gc_blk_num
23640	.global	p_gc_blk_tbl
23641	.global	p_gc_page_info
23642	.global	g_sys_ext_data
23643	.global	g_sys_save_data
23644	.global	gp_last_act_superblock
23645	.global	g_gc_superblock
23646	.global	g_gc_temp_superblock
23647	.global	g_buffer_superblock
23648	.global	g_active_superblock
23649	.global	g_num_data_superblocks
23650	.global	g_num_free_superblocks
23651	.global	p_data_block_list_tail
23652	.global	p_data_block_list_head
23653	.global	p_free_data_block_list_head
23654	.global	p_data_block_list_table
23655	.global	g_l2p_last_update_region_id
23656	.global	p_l2p_map_buf
23657	.global	p_l2p_ram_map
23658	.global	g_totle_vendor_block
23659	.global	p_vendor_region_ppn_table
23660	.global	p_vendor_block_ver_table
23661	.global	p_vendor_block_valid_page_count
23662	.global	p_vendor_block_table
23663	.global	g_totle_map_block
23664	.global	p_map_region_ppn_check_table
23665	.global	p_map_region_ppn_table
23666	.global	p_map_block_ver_table
23667	.global	p_map_block_valid_page_count
23668	.global	p_map_block_table
23669	.global	p_blk_mode_table
23670	.global	p_valid_page_count_table
23671	.global	g_totle_swl_count
23672	.global	p_swl_mul_table
23673	.global	p_erase_count_table
23674	.global	g_ect_tbl_info_size
23675	.global	gp_ect_tbl_info
23676	.global	g_gc_num_req
23677	.global	c_gc_page_buf_num
23678	.global	gp_gc_page_buf_info
23679	.global	p_gc_data_buf
23680	.global	p_gc_spare_buf
23681	.global	p_io_spare_buf
23682	.global	p_io_data_buf_1
23683	.global	p_io_data_buf_0
23684	.global	p_sys_spare_buf
23685	.global	p_vendor_data_buf
23686	.global	p_sys_data_buf_1
23687	.global	p_sys_data_buf
23688	.global	g_wr_page_num
23689	.global	req_wr_io
23690	.global	c_wr_page_buf_num
23691	.global	p_wr_io_data_buf
23692	.global	p_wr_io_spare_buf
23693	.global	p_plane_order_table
23694	.global	g_req_cache
23695	.global	req_gc_dst
23696	.global	req_gc
23697	.global	req_erase
23698	.global	req_prgm
23699	.global	req_read
23700	.global	req_sys
23701	.global	gVendorBlkInfo
23702	.global	gL2pMapInfo
23703	.global	gSysFreeQueue
23704	.global	gSysInfo
23705	.global	gBbtInfo
23706	.global	g_flash_read_only_en
23707	.global	g_inkDie_check_enable
23708	.global	g_SlcPartLbaEndSector
23709	.global	g_MaxLbn
23710	.global	g_VaildLpn
23711	.global	g_MaxLpn
23712	.global	g_MaxLbaSector
23713	.global	g_GlobalDataVersion
23714	.global	g_GlobalSysVersion
23715	.global	ftl_gc_temp_power_lost_recovery_flag
23716	.global	c_ftl_nand_max_data_blks
23717	.global	c_ftl_nand_data_op_blks_per_plane
23718	.global	c_ftl_nand_data_blks_per_plane
23719	.global	c_ftl_nand_max_sys_blks
23720	.global	c_ftl_nand_init_sys_blks_per_plane
23721	.global	c_ftl_nand_sys_blks_per_plane
23722	.global	c_ftl_vendor_part_size
23723	.global	c_ftl_nand_max_vendor_blks
23724	.global	c_ftl_nand_max_map_blks
23725	.global	c_ftl_nand_map_blks_per_plane
23726	.global	c_ftl_nand_vendor_region_num
23727	.global	c_ftl_nand_l2pmap_ram_region_num
23728	.global	c_ftl_nand_map_region_num
23729	.global	c_ftl_nand_totle_phy_blks
23730	.global	c_ftl_nand_reserved_blks
23731	.global	c_ftl_nand_byte_pre_oob
23732	.global	c_ftl_nand_byte_pre_page
23733	.global	c_ftl_nand_sec_pre_page_shift
23734	.global	c_ftl_nand_sec_pre_page
23735	.global	c_ftl_nand_page_pre_super_blk
23736	.global	c_ftl_nand_page_pre_slc_blk
23737	.global	c_ftl_nand_page_pre_blk
23738	.global	c_ftl_nand_bbm_buf_size
23739	.global	c_ftl_nand_ext_blk_pre_plane
23740	.global	c_ftl_nand_blk_pre_plane
23741	.global	c_ftl_nand_planes_num
23742	.global	c_ftl_nand_blks_per_die
23743	.global	c_ftl_nand_planes_per_die
23744	.global	c_ftl_nand_die_num
23745	.global	c_ftl_nand_type
23746	.global	gMasterTempBuf
23747	.global	gMasterInfo
23748	.global	gNandcDumpWriteEn
23749	.global	gToggleModeClkDiv
23750	.global	gBootDdrMode
23751	.global	gNandcEccBits
23752	.global	gpNandc1
23753	.global	gpNandc
23754	.global	g_nandc_version_data
23755	.global	gNandcVer
23756	.global	gNandChipMap
23757	.global	gNandIDataBuf
23758	.global	idb_flash_slc_mode
23759	.global	FlashDdrTunningReadCount
23760	.global	FlashWaitBusyScheduleEn
23761	.global	gNandPhyInfo
23762	.global	gFlashProgCheckSpareBuffer
23763	.global	gFlashProgCheckBuffer
23764	.global	gFlashSpareBuffer
23765	.global	gFlashPageBuffer1
23766	.global	gFlashPageBuffer0
23767	.global	gpFlashSaveInfo
23768	.global	gReadRetryInfo
23769	.global	gpNandParaInfo
23770	.global	gNandOptPara
23771	.global	g_nand_ecc_en
23772	.global	g_slc2KBNand
23773	.global	g_maxRetryCount
23774	.global	g_maxRegNum
23775	.global	g_retryMode
23776	.global	gNandIDBResBlkNumSaveInFlash
23777	.global	gNandIDBResBlkNum
23778	.global	gNandFlashResEndPageAddr
23779	.global	gNandFlashInfoBlockAddr
23780	.global	gNandFlashIdbBlockAddr
23781	.global	gNandFlashInfoBlockEcc
23782	.global	gNandFlashIDBEccBits
23783	.global	gNandFlashEccBits
23784	.global	gNandRandomizer
23785	.global	gBlockPageAlignSize
23786	.global	gTotleBlock
23787	.global	gNandMaxChip
23788	.global	gNandMaxDie
23789	.global	gFlashInterfaceMode
23790	.global	gFlashCurMode
23791	.global	gFlashSlcMode
23792	.global	gFlashOnfiModeEn
23793	.global	gFlashToggleModeEn
23794	.global	gFlashSdrModeEn
23795	.global	gMultiPageProgEn
23796	.global	gMultiPageReadEn
23797	.global	gpReadRetrial
23798	.global	mlcPageToSlcPageTbl
23799	.global	slcPageToMlcPageTbl
23800	.global	DieAddrs
23801	.global	gDieOp
23802	.global	DieCsIndex
23803	.global	IDByte
23804	.global	read_retry_cur_offset
23805	.section	.bss.DeviceCapacity,"aw",%nobits
23806	.align	2
23807	.set	.LANCHOR60,. + 0
23808	.type	DeviceCapacity, %object
23809	.size	DeviceCapacity, 4
23810DeviceCapacity:
23811	.space	4
23812	.section	.bss.DieAddrs,"aw",%nobits
23813	.align	2
23814	.set	.LANCHOR18,. + 0
23815	.type	DieAddrs, %object
23816	.size	DieAddrs, 32
23817DieAddrs:
23818	.space	32
23819	.section	.bss.DieCsIndex,"aw",%nobits
23820	.align	2
23821	.set	.LANCHOR27,. + 0
23822	.type	DieCsIndex, %object
23823	.size	DieCsIndex, 8
23824DieCsIndex:
23825	.space	8
23826	.section	.bss.FlashDdrTunningReadCount,"aw",%nobits
23827	.align	2
23828	.set	.LANCHOR144,. + 0
23829	.type	FlashDdrTunningReadCount, %object
23830	.size	FlashDdrTunningReadCount, 4
23831FlashDdrTunningReadCount:
23832	.space	4
23833	.section	.bss.FlashWaitBusyScheduleEn,"aw",%nobits
23834	.align	2
23835	.type	FlashWaitBusyScheduleEn, %object
23836	.size	FlashWaitBusyScheduleEn, 4
23837FlashWaitBusyScheduleEn:
23838	.space	4
23839	.section	.bss.FtlMallocBuffer,"aw",%nobits
23840	.align	6
23841	.type	FtlMallocBuffer, %object
23842	.size	FtlMallocBuffer, 1310720
23843FtlMallocBuffer:
23844	.space	1310720
23845	.section	.bss.FtlUpdateVaildLpnCount,"aw",%nobits
23846	.align	1
23847	.set	.LANCHOR101,. + 0
23848	.type	FtlUpdateVaildLpnCount, %object
23849	.size	FtlUpdateVaildLpnCount, 2
23850FtlUpdateVaildLpnCount:
23851	.space	2
23852	.section	.bss.IDByte,"aw",%nobits
23853	.align	2
23854	.set	.LANCHOR22,. + 0
23855	.type	IDByte, %object
23856	.size	IDByte, 32
23857IDByte:
23858	.space	32
23859	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",%nobits
23860	.align	1
23861	.set	.LANCHOR126,. + 0
23862	.type	c_ftl_nand_bbm_buf_size, %object
23863	.size	c_ftl_nand_bbm_buf_size, 2
23864c_ftl_nand_bbm_buf_size:
23865	.space	2
23866	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",%nobits
23867	.align	1
23868	.set	.LANCHOR41,. + 0
23869	.type	c_ftl_nand_blk_pre_plane, %object
23870	.size	c_ftl_nand_blk_pre_plane, 2
23871c_ftl_nand_blk_pre_plane:
23872	.space	2
23873	.section	.bss.c_ftl_nand_blks_per_die,"aw",%nobits
23874	.align	1
23875	.set	.LANCHOR51,. + 0
23876	.type	c_ftl_nand_blks_per_die, %object
23877	.size	c_ftl_nand_blks_per_die, 2
23878c_ftl_nand_blks_per_die:
23879	.space	2
23880	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",%nobits
23881	.align	1
23882	.set	.LANCHOR58,. + 0
23883	.type	c_ftl_nand_byte_pre_oob, %object
23884	.size	c_ftl_nand_byte_pre_oob, 2
23885c_ftl_nand_byte_pre_oob:
23886	.space	2
23887	.section	.bss.c_ftl_nand_byte_pre_page,"aw",%nobits
23888	.align	1
23889	.set	.LANCHOR57,. + 0
23890	.type	c_ftl_nand_byte_pre_page, %object
23891	.size	c_ftl_nand_byte_pre_page, 2
23892c_ftl_nand_byte_pre_page:
23893	.space	2
23894	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits
23895	.align	1
23896	.set	.LANCHOR40,. + 0
23897	.type	c_ftl_nand_data_blks_per_plane, %object
23898	.size	c_ftl_nand_data_blks_per_plane, 2
23899c_ftl_nand_data_blks_per_plane:
23900	.space	2
23901	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits
23902	.align	1
23903	.set	.LANCHOR232,. + 0
23904	.type	c_ftl_nand_data_op_blks_per_plane, %object
23905	.size	c_ftl_nand_data_op_blks_per_plane, 2
23906c_ftl_nand_data_op_blks_per_plane:
23907	.space	2
23908	.section	.bss.c_ftl_nand_die_num,"aw",%nobits
23909	.align	1
23910	.set	.LANCHOR45,. + 0
23911	.type	c_ftl_nand_die_num, %object
23912	.size	c_ftl_nand_die_num, 2
23913c_ftl_nand_die_num:
23914	.space	2
23915	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits
23916	.align	1
23917	.set	.LANCHOR49,. + 0
23918	.type	c_ftl_nand_ext_blk_pre_plane, %object
23919	.size	c_ftl_nand_ext_blk_pre_plane, 2
23920c_ftl_nand_ext_blk_pre_plane:
23921	.space	2
23922	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits
23923	.align	2
23924	.set	.LANCHOR65,. + 0
23925	.type	c_ftl_nand_init_sys_blks_per_plane, %object
23926	.size	c_ftl_nand_init_sys_blks_per_plane, 4
23927c_ftl_nand_init_sys_blks_per_plane:
23928	.space	4
23929	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits
23930	.align	1
23931	.set	.LANCHOR67,. + 0
23932	.type	c_ftl_nand_l2pmap_ram_region_num, %object
23933	.size	c_ftl_nand_l2pmap_ram_region_num, 2
23934c_ftl_nand_l2pmap_ram_region_num:
23935	.space	2
23936	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits
23937	.align	1
23938	.set	.LANCHOR63,. + 0
23939	.type	c_ftl_nand_map_blks_per_plane, %object
23940	.size	c_ftl_nand_map_blks_per_plane, 2
23941c_ftl_nand_map_blks_per_plane:
23942	.space	2
23943	.section	.bss.c_ftl_nand_map_region_num,"aw",%nobits
23944	.align	1
23945	.set	.LANCHOR66,. + 0
23946	.type	c_ftl_nand_map_region_num, %object
23947	.size	c_ftl_nand_map_region_num, 2
23948c_ftl_nand_map_region_num:
23949	.space	2
23950	.section	.bss.c_ftl_nand_max_data_blks,"aw",%nobits
23951	.align	2
23952	.set	.LANCHOR42,. + 0
23953	.type	c_ftl_nand_max_data_blks, %object
23954	.size	c_ftl_nand_max_data_blks, 4
23955c_ftl_nand_max_data_blks:
23956	.space	4
23957	.section	.bss.c_ftl_nand_max_map_blks,"aw",%nobits
23958	.align	2
23959	.set	.LANCHOR64,. + 0
23960	.type	c_ftl_nand_max_map_blks, %object
23961	.size	c_ftl_nand_max_map_blks, 4
23962c_ftl_nand_max_map_blks:
23963	.space	4
23964	.section	.bss.c_ftl_nand_max_sys_blks,"aw",%nobits
23965	.align	2
23966	.set	.LANCHOR39,. + 0
23967	.type	c_ftl_nand_max_sys_blks, %object
23968	.size	c_ftl_nand_max_sys_blks, 4
23969c_ftl_nand_max_sys_blks:
23970	.space	4
23971	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",%nobits
23972	.align	1
23973	.set	.LANCHOR61,. + 0
23974	.type	c_ftl_nand_max_vendor_blks, %object
23975	.size	c_ftl_nand_max_vendor_blks, 2
23976c_ftl_nand_max_vendor_blks:
23977	.space	2
23978	.section	.bss.c_ftl_nand_page_pre_blk,"aw",%nobits
23979	.align	1
23980	.set	.LANCHOR52,. + 0
23981	.type	c_ftl_nand_page_pre_blk, %object
23982	.size	c_ftl_nand_page_pre_blk, 2
23983c_ftl_nand_page_pre_blk:
23984	.space	2
23985	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits
23986	.align	1
23987	.set	.LANCHOR53,. + 0
23988	.type	c_ftl_nand_page_pre_slc_blk, %object
23989	.size	c_ftl_nand_page_pre_slc_blk, 2
23990c_ftl_nand_page_pre_slc_blk:
23991	.space	2
23992	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits
23993	.align	1
23994	.set	.LANCHOR54,. + 0
23995	.type	c_ftl_nand_page_pre_super_blk, %object
23996	.size	c_ftl_nand_page_pre_super_blk, 2
23997c_ftl_nand_page_pre_super_blk:
23998	.space	2
23999	.section	.bss.c_ftl_nand_planes_num,"aw",%nobits
24000	.align	1
24001	.set	.LANCHOR38,. + 0
24002	.type	c_ftl_nand_planes_num, %object
24003	.size	c_ftl_nand_planes_num, 2
24004c_ftl_nand_planes_num:
24005	.space	2
24006	.section	.bss.c_ftl_nand_planes_per_die,"aw",%nobits
24007	.align	1
24008	.set	.LANCHOR46,. + 0
24009	.type	c_ftl_nand_planes_per_die, %object
24010	.size	c_ftl_nand_planes_per_die, 2
24011c_ftl_nand_planes_per_die:
24012	.space	2
24013	.section	.bss.c_ftl_nand_reserved_blks,"aw",%nobits
24014	.align	1
24015	.set	.LANCHOR59,. + 0
24016	.type	c_ftl_nand_reserved_blks, %object
24017	.size	c_ftl_nand_reserved_blks, 2
24018c_ftl_nand_reserved_blks:
24019	.space	2
24020	.section	.bss.c_ftl_nand_sec_pre_page,"aw",%nobits
24021	.align	1
24022	.set	.LANCHOR55,. + 0
24023	.type	c_ftl_nand_sec_pre_page, %object
24024	.size	c_ftl_nand_sec_pre_page, 2
24025c_ftl_nand_sec_pre_page:
24026	.space	2
24027	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits
24028	.align	1
24029	.set	.LANCHOR56,. + 0
24030	.type	c_ftl_nand_sec_pre_page_shift, %object
24031	.size	c_ftl_nand_sec_pre_page_shift, 2
24032c_ftl_nand_sec_pre_page_shift:
24033	.space	2
24034	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits
24035	.align	2
24036	.set	.LANCHOR37,. + 0
24037	.type	c_ftl_nand_sys_blks_per_plane, %object
24038	.size	c_ftl_nand_sys_blks_per_plane, 4
24039c_ftl_nand_sys_blks_per_plane:
24040	.space	4
24041	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",%nobits
24042	.align	2
24043	.set	.LANCHOR43,. + 0
24044	.type	c_ftl_nand_totle_phy_blks, %object
24045	.size	c_ftl_nand_totle_phy_blks, 4
24046c_ftl_nand_totle_phy_blks:
24047	.space	4
24048	.section	.bss.c_ftl_nand_type,"aw",%nobits
24049	.align	1
24050	.set	.LANCHOR44,. + 0
24051	.type	c_ftl_nand_type, %object
24052	.size	c_ftl_nand_type, 2
24053c_ftl_nand_type:
24054	.space	2
24055	.section	.bss.c_ftl_nand_vendor_region_num,"aw",%nobits
24056	.align	1
24057	.set	.LANCHOR62,. + 0
24058	.type	c_ftl_nand_vendor_region_num, %object
24059	.size	c_ftl_nand_vendor_region_num, 2
24060c_ftl_nand_vendor_region_num:
24061	.space	2
24062	.section	.bss.c_ftl_vendor_part_size,"aw",%nobits
24063	.align	1
24064	.set	.LANCHOR50,. + 0
24065	.type	c_ftl_vendor_part_size, %object
24066	.size	c_ftl_vendor_part_size, 2
24067c_ftl_vendor_part_size:
24068	.space	2
24069	.section	.bss.c_gc_page_buf_num,"aw",%nobits
24070	.align	2
24071	.set	.LANCHOR110,. + 0
24072	.type	c_gc_page_buf_num, %object
24073	.size	c_gc_page_buf_num, 4
24074c_gc_page_buf_num:
24075	.space	4
24076	.section	.bss.c_mlc_erase_count_value,"aw",%nobits
24077	.align	1
24078	.set	.LANCHOR48,. + 0
24079	.type	c_mlc_erase_count_value, %object
24080	.size	c_mlc_erase_count_value, 2
24081c_mlc_erase_count_value:
24082	.space	2
24083	.section	.bss.c_wr_page_buf_num,"aw",%nobits
24084	.align	2
24085	.set	.LANCHOR185,. + 0
24086	.type	c_wr_page_buf_num, %object
24087	.size	c_wr_page_buf_num, 4
24088c_wr_page_buf_num:
24089	.space	4
24090	.section	.bss.check_valid_page_count_table,"aw",%nobits
24091	.align	1
24092	.type	check_valid_page_count_table, %object
24093	.size	check_valid_page_count_table, 8192
24094check_valid_page_count_table:
24095	.space	8192
24096	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits
24097	.align	2
24098	.set	.LANCHOR138,. + 0
24099	.type	ftl_gc_temp_power_lost_recovery_flag, %object
24100	.size	ftl_gc_temp_power_lost_recovery_flag, 4
24101ftl_gc_temp_power_lost_recovery_flag:
24102	.space	4
24103	.section	.bss.gBbtInfo,"aw",%nobits
24104	.align	2
24105	.set	.LANCHOR76,. + 0
24106	.type	gBbtInfo, %object
24107	.size	gBbtInfo, 60
24108gBbtInfo:
24109	.space	60
24110	.section	.bss.gBlockPageAlignSize,"aw",%nobits
24111	.align	2
24112	.set	.LANCHOR4,. + 0
24113	.type	gBlockPageAlignSize, %object
24114	.size	gBlockPageAlignSize, 4
24115gBlockPageAlignSize:
24116	.space	4
24117	.section	.bss.gBootDdrMode,"aw",%nobits
24118	.align	2
24119	.set	.LANCHOR160,. + 0
24120	.type	gBootDdrMode, %object
24121	.size	gBootDdrMode, 4
24122gBootDdrMode:
24123	.space	4
24124	.section	.bss.gDieOp,"aw",%nobits
24125	.align	2
24126	.set	.LANCHOR23,. + 0
24127	.type	gDieOp, %object
24128	.size	gDieOp, 128
24129gDieOp:
24130	.space	128
24131	.section	.bss.gFlashCurMode,"aw",%nobits
24132	.set	.LANCHOR24,. + 0
24133	.type	gFlashCurMode, %object
24134	.size	gFlashCurMode, 1
24135gFlashCurMode:
24136	.space	1
24137	.section	.bss.gFlashInterfaceMode,"aw",%nobits
24138	.set	.LANCHOR25,. + 0
24139	.type	gFlashInterfaceMode, %object
24140	.size	gFlashInterfaceMode, 1
24141gFlashInterfaceMode:
24142	.space	1
24143	.section	.bss.gFlashOnfiModeEn,"aw",%nobits
24144	.type	gFlashOnfiModeEn, %object
24145	.size	gFlashOnfiModeEn, 1
24146gFlashOnfiModeEn:
24147	.space	1
24148	.section	.bss.gFlashPageBuffer0,"aw",%nobits
24149	.align	2
24150	.set	.LANCHOR154,. + 0
24151	.type	gFlashPageBuffer0, %object
24152	.size	gFlashPageBuffer0, 4
24153gFlashPageBuffer0:
24154	.space	4
24155	.section	.bss.gFlashPageBuffer1,"aw",%nobits
24156	.align	2
24157	.set	.LANCHOR149,. + 0
24158	.type	gFlashPageBuffer1, %object
24159	.size	gFlashPageBuffer1, 4
24160gFlashPageBuffer1:
24161	.space	4
24162	.section	.bss.gFlashProgCheckBuffer,"aw",%nobits
24163	.align	2
24164	.set	.LANCHOR206,. + 0
24165	.type	gFlashProgCheckBuffer, %object
24166	.size	gFlashProgCheckBuffer, 4
24167gFlashProgCheckBuffer:
24168	.space	4
24169	.section	.bss.gFlashProgCheckSpareBuffer,"aw",%nobits
24170	.align	2
24171	.set	.LANCHOR207,. + 0
24172	.type	gFlashProgCheckSpareBuffer, %object
24173	.size	gFlashProgCheckSpareBuffer, 4
24174gFlashProgCheckSpareBuffer:
24175	.space	4
24176	.section	.bss.gFlashSdrModeEn,"aw",%nobits
24177	.type	gFlashSdrModeEn, %object
24178	.size	gFlashSdrModeEn, 1
24179gFlashSdrModeEn:
24180	.space	1
24181	.section	.bss.gFlashSlcMode,"aw",%nobits
24182	.set	.LANCHOR16,. + 0
24183	.type	gFlashSlcMode, %object
24184	.size	gFlashSlcMode, 1
24185gFlashSlcMode:
24186	.space	1
24187	.section	.bss.gFlashSpareBuffer,"aw",%nobits
24188	.align	2
24189	.set	.LANCHOR205,. + 0
24190	.type	gFlashSpareBuffer, %object
24191	.size	gFlashSpareBuffer, 4
24192gFlashSpareBuffer:
24193	.space	4
24194	.section	.bss.gFlashToggleModeEn,"aw",%nobits
24195	.set	.LANCHOR30,. + 0
24196	.type	gFlashToggleModeEn, %object
24197	.size	gFlashToggleModeEn, 1
24198gFlashToggleModeEn:
24199	.space	1
24200	.section	.bss.gL2pMapInfo,"aw",%nobits
24201	.align	2
24202	.set	.LANCHOR130,. + 0
24203	.type	gL2pMapInfo, %object
24204	.size	gL2pMapInfo, 44
24205gL2pMapInfo:
24206	.space	44
24207	.section	.bss.gMasterInfo,"aw",%nobits
24208	.align	2
24209	.set	.LANCHOR35,. + 0
24210	.type	gMasterInfo, %object
24211	.size	gMasterInfo, 32
24212gMasterInfo:
24213	.space	32
24214	.section	.bss.gMasterTempBuf,"aw",%nobits
24215	.align	2
24216	.set	.LANCHOR161,. + 0
24217	.type	gMasterTempBuf, %object
24218	.size	gMasterTempBuf, 4
24219gMasterTempBuf:
24220	.space	4
24221	.section	.bss.gMultiPageProgEn,"aw",%nobits
24222	.set	.LANCHOR28,. + 0
24223	.type	gMultiPageProgEn, %object
24224	.size	gMultiPageProgEn, 1
24225gMultiPageProgEn:
24226	.space	1
24227	.section	.bss.gMultiPageReadEn,"aw",%nobits
24228	.set	.LANCHOR210,. + 0
24229	.type	gMultiPageReadEn, %object
24230	.size	gMultiPageReadEn, 1
24231gMultiPageReadEn:
24232	.space	1
24233	.section	.bss.gNandChipMap,"aw",%nobits
24234	.align	2
24235	.set	.LANCHOR0,. + 0
24236	.type	gNandChipMap, %object
24237	.size	gNandChipMap, 32
24238gNandChipMap:
24239	.space	32
24240	.section	.bss.gNandFlashEccBits,"aw",%nobits
24241	.set	.LANCHOR33,. + 0
24242	.type	gNandFlashEccBits, %object
24243	.size	gNandFlashEccBits, 1
24244gNandFlashEccBits:
24245	.space	1
24246	.section	.bss.gNandFlashIDBEccBits,"aw",%nobits
24247	.set	.LANCHOR158,. + 0
24248	.type	gNandFlashIDBEccBits, %object
24249	.size	gNandFlashIDBEccBits, 1
24250gNandFlashIDBEccBits:
24251	.space	1
24252	.section	.bss.gNandFlashIdbBlockAddr,"aw",%nobits
24253	.align	2
24254	.set	.LANCHOR156,. + 0
24255	.type	gNandFlashIdbBlockAddr, %object
24256	.size	gNandFlashIdbBlockAddr, 4
24257gNandFlashIdbBlockAddr:
24258	.space	4
24259	.section	.bss.gNandFlashInfoBlockAddr,"aw",%nobits
24260	.align	2
24261	.set	.LANCHOR155,. + 0
24262	.type	gNandFlashInfoBlockAddr, %object
24263	.size	gNandFlashInfoBlockAddr, 4
24264gNandFlashInfoBlockAddr:
24265	.space	4
24266	.section	.bss.gNandFlashInfoBlockEcc,"aw",%nobits
24267	.type	gNandFlashInfoBlockEcc, %object
24268	.size	gNandFlashInfoBlockEcc, 1
24269gNandFlashInfoBlockEcc:
24270	.space	1
24271	.section	.bss.gNandFlashResEndPageAddr,"aw",%nobits
24272	.align	2
24273	.type	gNandFlashResEndPageAddr, %object
24274	.size	gNandFlashResEndPageAddr, 4
24275gNandFlashResEndPageAddr:
24276	.space	4
24277	.section	.bss.gNandIDBResBlkNum,"aw",%nobits
24278	.set	.LANCHOR3,. + 0
24279	.type	gNandIDBResBlkNum, %object
24280	.size	gNandIDBResBlkNum, 1
24281gNandIDBResBlkNum:
24282	.space	1
24283	.section	.bss.gNandIDBResBlkNumSaveInFlash,"aw",%nobits
24284	.set	.LANCHOR157,. + 0
24285	.type	gNandIDBResBlkNumSaveInFlash, %object
24286	.size	gNandIDBResBlkNumSaveInFlash, 1
24287gNandIDBResBlkNumSaveInFlash:
24288	.space	1
24289	.section	.bss.gNandIDataBuf,"aw",%nobits
24290	.align	2
24291	.set	.LANCHOR150,. + 0
24292	.type	gNandIDataBuf, %object
24293	.size	gNandIDataBuf, 2048
24294gNandIDataBuf:
24295	.space	2048
24296	.section	.bss.gNandMaxChip,"aw",%nobits
24297	.set	.LANCHOR124,. + 0
24298	.type	gNandMaxChip, %object
24299	.size	gNandMaxChip, 1
24300gNandMaxChip:
24301	.space	1
24302	.section	.bss.gNandMaxDie,"aw",%nobits
24303	.set	.LANCHOR26,. + 0
24304	.type	gNandMaxDie, %object
24305	.size	gNandMaxDie, 1
24306gNandMaxDie:
24307	.space	1
24308	.section	.bss.gNandOptPara,"aw",%nobits
24309	.set	.LANCHOR8,. + 0
24310	.type	gNandOptPara, %object
24311	.size	gNandOptPara, 32
24312gNandOptPara:
24313	.space	32
24314	.section	.bss.gNandPhyInfo,"aw",%nobits
24315	.align	2
24316	.set	.LANCHOR15,. + 0
24317	.type	gNandPhyInfo, %object
24318	.size	gNandPhyInfo, 28
24319gNandPhyInfo:
24320	.space	28
24321	.section	.bss.gNandRandomizer,"aw",%nobits
24322	.set	.LANCHOR6,. + 0
24323	.type	gNandRandomizer, %object
24324	.size	gNandRandomizer, 1
24325gNandRandomizer:
24326	.space	1
24327	.section	.bss.gNandcDumpWriteEn,"aw",%nobits
24328	.align	2
24329	.set	.LANCHOR36,. + 0
24330	.type	gNandcDumpWriteEn, %object
24331	.size	gNandcDumpWriteEn, 4
24332gNandcDumpWriteEn:
24333	.space	4
24334	.section	.bss.gNandcEccBits,"aw",%nobits
24335	.align	2
24336	.set	.LANCHOR32,. + 0
24337	.type	gNandcEccBits, %object
24338	.size	gNandcEccBits, 4
24339gNandcEccBits:
24340	.space	4
24341	.section	.bss.gNandcVer,"aw",%nobits
24342	.align	2
24343	.set	.LANCHOR34,. + 0
24344	.type	gNandcVer, %object
24345	.size	gNandcVer, 4
24346gNandcVer:
24347	.space	4
24348	.section	.bss.gReadRetryInfo,"aw",%nobits
24349	.set	.LANCHOR20,. + 0
24350	.type	gReadRetryInfo, %object
24351	.size	gReadRetryInfo, 852
24352gReadRetryInfo:
24353	.space	852
24354	.section	.bss.gSysFreeQueue,"aw",%nobits
24355	.align	1
24356	.set	.LANCHOR77,. + 0
24357	.type	gSysFreeQueue, %object
24358	.size	gSysFreeQueue, 2056
24359gSysFreeQueue:
24360	.space	2056
24361	.section	.bss.gSysInfo,"aw",%nobits
24362	.align	2
24363	.set	.LANCHOR218,. + 0
24364	.type	gSysInfo, %object
24365	.size	gSysInfo, 16
24366gSysInfo:
24367	.space	16
24368	.section	.bss.gToggleModeClkDiv,"aw",%nobits
24369	.align	2
24370	.type	gToggleModeClkDiv, %object
24371	.size	gToggleModeClkDiv, 4
24372gToggleModeClkDiv:
24373	.space	4
24374	.section	.bss.gTotleBlock,"aw",%nobits
24375	.align	1
24376	.set	.LANCHOR125,. + 0
24377	.type	gTotleBlock, %object
24378	.size	gTotleBlock, 2
24379gTotleBlock:
24380	.space	2
24381	.section	.bss.gVendorBlkInfo,"aw",%nobits
24382	.align	2
24383	.set	.LANCHOR224,. + 0
24384	.type	gVendorBlkInfo, %object
24385	.size	gVendorBlkInfo, 44
24386gVendorBlkInfo:
24387	.space	44
24388	.section	.bss.g_GlobalDataVersion,"aw",%nobits
24389	.align	2
24390	.set	.LANCHOR165,. + 0
24391	.type	g_GlobalDataVersion, %object
24392	.size	g_GlobalDataVersion, 4
24393g_GlobalDataVersion:
24394	.space	4
24395	.section	.bss.g_GlobalSysVersion,"aw",%nobits
24396	.align	2
24397	.set	.LANCHOR164,. + 0
24398	.type	g_GlobalSysVersion, %object
24399	.size	g_GlobalSysVersion, 4
24400g_GlobalSysVersion:
24401	.space	4
24402	.section	.bss.g_LowFormat,"aw",%nobits
24403	.align	2
24404	.set	.LANCHOR254,. + 0
24405	.type	g_LowFormat, %object
24406	.size	g_LowFormat, 4
24407g_LowFormat:
24408	.space	4
24409	.section	.bss.g_MaxLbaSector,"aw",%nobits
24410	.align	2
24411	.set	.LANCHOR68,. + 0
24412	.type	g_MaxLbaSector, %object
24413	.size	g_MaxLbaSector, 4
24414g_MaxLbaSector:
24415	.space	4
24416	.section	.bss.g_MaxLbn,"aw",%nobits
24417	.align	2
24418	.set	.LANCHOR231,. + 0
24419	.type	g_MaxLbn, %object
24420	.size	g_MaxLbn, 4
24421g_MaxLbn:
24422	.space	4
24423	.section	.bss.g_MaxLpn,"aw",%nobits
24424	.align	2
24425	.set	.LANCHOR74,. + 0
24426	.type	g_MaxLpn, %object
24427	.size	g_MaxLpn, 4
24428g_MaxLpn:
24429	.space	4
24430	.section	.bss.g_SlcPartLbaEndSector,"aw",%nobits
24431	.align	2
24432	.set	.LANCHOR162,. + 0
24433	.type	g_SlcPartLbaEndSector, %object
24434	.size	g_SlcPartLbaEndSector, 4
24435g_SlcPartLbaEndSector:
24436	.space	4
24437	.section	.bss.g_VaildLpn,"aw",%nobits
24438	.align	2
24439	.set	.LANCHOR102,. + 0
24440	.type	g_VaildLpn, %object
24441	.size	g_VaildLpn, 4
24442g_VaildLpn:
24443	.space	4
24444	.section	.bss.g_active_superblock,"aw",%nobits
24445	.align	2
24446	.set	.LANCHOR93,. + 0
24447	.type	g_active_superblock, %object
24448	.size	g_active_superblock, 48
24449g_active_superblock:
24450	.space	48
24451	.section	.bss.g_all_blk_used_slc_mode,"aw",%nobits
24452	.align	2
24453	.set	.LANCHOR163,. + 0
24454	.type	g_all_blk_used_slc_mode, %object
24455	.size	g_all_blk_used_slc_mode, 4
24456g_all_blk_used_slc_mode:
24457	.space	4
24458	.section	.bss.g_buffer_superblock,"aw",%nobits
24459	.align	2
24460	.set	.LANCHOR94,. + 0
24461	.type	g_buffer_superblock, %object
24462	.size	g_buffer_superblock, 48
24463g_buffer_superblock:
24464	.space	48
24465	.section	.bss.g_cur_erase_blk,"aw",%nobits
24466	.align	2
24467	.set	.LANCHOR75,. + 0
24468	.type	g_cur_erase_blk, %object
24469	.size	g_cur_erase_blk, 4
24470g_cur_erase_blk:
24471	.space	4
24472	.section	.bss.g_ect_tbl_info_size,"aw",%nobits
24473	.align	1
24474	.set	.LANCHOR198,. + 0
24475	.type	g_ect_tbl_info_size, %object
24476	.size	g_ect_tbl_info_size, 2
24477g_ect_tbl_info_size:
24478	.space	2
24479	.section	.bss.g_ect_tbl_power_up_flush,"aw",%nobits
24480	.align	1
24481	.set	.LANCHOR227,. + 0
24482	.type	g_ect_tbl_power_up_flush, %object
24483	.size	g_ect_tbl_power_up_flush, 2
24484g_ect_tbl_power_up_flush:
24485	.space	2
24486	.section	.bss.g_flash_read_only_en,"aw",%nobits
24487	.align	2
24488	.set	.LANCHOR78,. + 0
24489	.type	g_flash_read_only_en, %object
24490	.size	g_flash_read_only_en, 4
24491g_flash_read_only_en:
24492	.space	4
24493	.section	.bss.g_free_slc_blk_num,"aw",%nobits
24494	.align	1
24495	.set	.LANCHOR142,. + 0
24496	.type	g_free_slc_blk_num, %object
24497	.size	g_free_slc_blk_num, 2
24498g_free_slc_blk_num:
24499	.space	2
24500	.section	.bss.g_ftl_nand_free_count,"aw",%nobits
24501	.align	2
24502	.set	.LANCHOR256,. + 0
24503	.type	g_ftl_nand_free_count, %object
24504	.size	g_ftl_nand_free_count, 4
24505g_ftl_nand_free_count:
24506	.space	4
24507	.section	.bss.g_gc_bad_block_gc_index,"aw",%nobits
24508	.align	1
24509	.set	.LANCHOR121,. + 0
24510	.type	g_gc_bad_block_gc_index, %object
24511	.size	g_gc_bad_block_gc_index, 2
24512g_gc_bad_block_gc_index:
24513	.space	2
24514	.section	.bss.g_gc_bad_block_temp_num,"aw",%nobits
24515	.align	1
24516	.set	.LANCHOR119,. + 0
24517	.type	g_gc_bad_block_temp_num, %object
24518	.size	g_gc_bad_block_temp_num, 2
24519g_gc_bad_block_temp_num:
24520	.space	2
24521	.section	.bss.g_gc_bad_block_temp_tbl,"aw",%nobits
24522	.align	1
24523	.set	.LANCHOR120,. + 0
24524	.type	g_gc_bad_block_temp_tbl, %object
24525	.size	g_gc_bad_block_temp_tbl, 34
24526g_gc_bad_block_temp_tbl:
24527	.space	34
24528	.section	.bss.g_gc_blk_index,"aw",%nobits
24529	.align	1
24530	.set	.LANCHOR183,. + 0
24531	.type	g_gc_blk_index, %object
24532	.size	g_gc_blk_index, 2
24533g_gc_blk_index:
24534	.space	2
24535	.section	.bss.g_gc_blk_num,"aw",%nobits
24536	.align	1
24537	.set	.LANCHOR112,. + 0
24538	.type	g_gc_blk_num, %object
24539	.size	g_gc_blk_num, 2
24540g_gc_blk_num:
24541	.space	2
24542	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits
24543	.align	1
24544	.set	.LANCHOR250,. + 0
24545	.type	g_gc_cur_blk_max_valid_pages, %object
24546	.size	g_gc_cur_blk_max_valid_pages, 2
24547g_gc_cur_blk_max_valid_pages:
24548	.space	2
24549	.section	.bss.g_gc_cur_blk_valid_pages,"aw",%nobits
24550	.align	1
24551	.set	.LANCHOR249,. + 0
24552	.type	g_gc_cur_blk_valid_pages, %object
24553	.size	g_gc_cur_blk_valid_pages, 2
24554g_gc_cur_blk_valid_pages:
24555	.space	2
24556	.section	.bss.g_gc_free_blk_threshold,"aw",%nobits
24557	.align	1
24558	.set	.LANCHOR181,. + 0
24559	.type	g_gc_free_blk_threshold, %object
24560	.size	g_gc_free_blk_threshold, 2
24561g_gc_free_blk_threshold:
24562	.space	2
24563	.section	.bss.g_gc_head_data_block,"aw",%nobits
24564	.align	2
24565	.set	.LANCHOR178,. + 0
24566	.type	g_gc_head_data_block, %object
24567	.size	g_gc_head_data_block, 4
24568g_gc_head_data_block:
24569	.space	4
24570	.section	.bss.g_gc_head_data_block_count,"aw",%nobits
24571	.align	2
24572	.set	.LANCHOR179,. + 0
24573	.type	g_gc_head_data_block_count, %object
24574	.size	g_gc_head_data_block_count, 4
24575g_gc_head_data_block_count:
24576	.space	4
24577	.section	.bss.g_gc_merge_free_blk_threshold,"aw",%nobits
24578	.align	1
24579	.set	.LANCHOR182,. + 0
24580	.type	g_gc_merge_free_blk_threshold, %object
24581	.size	g_gc_merge_free_blk_threshold, 2
24582g_gc_merge_free_blk_threshold:
24583	.space	2
24584	.section	.bss.g_gc_next_blk,"aw",%nobits
24585	.align	1
24586	.set	.LANCHOR115,. + 0
24587	.type	g_gc_next_blk, %object
24588	.size	g_gc_next_blk, 2
24589g_gc_next_blk:
24590	.space	2
24591	.section	.bss.g_gc_next_blk_1,"aw",%nobits
24592	.align	1
24593	.set	.LANCHOR116,. + 0
24594	.type	g_gc_next_blk_1, %object
24595	.size	g_gc_next_blk_1, 2
24596g_gc_next_blk_1:
24597	.space	2
24598	.section	.bss.g_gc_next_blk_2,"aw",%nobits
24599	.align	1
24600	.set	.LANCHOR117,. + 0
24601	.type	g_gc_next_blk_2, %object
24602	.size	g_gc_next_blk_2, 2
24603g_gc_next_blk_2:
24604	.space	2
24605	.section	.bss.g_gc_next_blk_3,"aw",%nobits
24606	.align	1
24607	.set	.LANCHOR118,. + 0
24608	.type	g_gc_next_blk_3, %object
24609	.size	g_gc_next_blk_3, 2
24610g_gc_next_blk_3:
24611	.space	2
24612	.section	.bss.g_gc_num_req,"aw",%nobits
24613	.align	2
24614	.set	.LANCHOR105,. + 0
24615	.type	g_gc_num_req, %object
24616	.size	g_gc_num_req, 4
24617g_gc_num_req:
24618	.space	4
24619	.section	.bss.g_gc_page_offset,"aw",%nobits
24620	.align	1
24621	.set	.LANCHOR113,. + 0
24622	.type	g_gc_page_offset, %object
24623	.size	g_gc_page_offset, 2
24624g_gc_page_offset:
24625	.space	2
24626	.section	.bss.g_gc_refresh_block_temp_num,"aw",%nobits
24627	.align	1
24628	.set	.LANCHOR184,. + 0
24629	.type	g_gc_refresh_block_temp_num, %object
24630	.size	g_gc_refresh_block_temp_num, 2
24631g_gc_refresh_block_temp_num:
24632	.space	2
24633	.section	.bss.g_gc_refresh_block_temp_tbl,"aw",%nobits
24634	.align	1
24635	.type	g_gc_refresh_block_temp_tbl, %object
24636	.size	g_gc_refresh_block_temp_tbl, 34
24637g_gc_refresh_block_temp_tbl:
24638	.space	34
24639	.section	.bss.g_gc_skip_write_count,"aw",%nobits
24640	.align	2
24641	.set	.LANCHOR180,. + 0
24642	.type	g_gc_skip_write_count, %object
24643	.size	g_gc_skip_write_count, 4
24644g_gc_skip_write_count:
24645	.space	4
24646	.section	.bss.g_gc_superblock,"aw",%nobits
24647	.align	2
24648	.set	.LANCHOR213,. + 0
24649	.type	g_gc_superblock, %object
24650	.size	g_gc_superblock, 48
24651g_gc_superblock:
24652	.space	48
24653	.section	.bss.g_gc_temp_superblock,"aw",%nobits
24654	.align	2
24655	.set	.LANCHOR95,. + 0
24656	.type	g_gc_temp_superblock, %object
24657	.size	g_gc_temp_superblock, 48
24658g_gc_temp_superblock:
24659	.space	48
24660	.section	.bss.g_in_gc_progress,"aw",%nobits
24661	.align	2
24662	.set	.LANCHOR176,. + 0
24663	.type	g_in_gc_progress, %object
24664	.size	g_in_gc_progress, 4
24665g_in_gc_progress:
24666	.space	4
24667	.section	.bss.g_in_swl_replace,"aw",%nobits
24668	.align	2
24669	.set	.LANCHOR177,. + 0
24670	.type	g_in_swl_replace, %object
24671	.size	g_in_swl_replace, 4
24672g_in_swl_replace:
24673	.space	4
24674	.section	.bss.g_inkDie_check_enable,"aw",%nobits
24675	.align	2
24676	.set	.LANCHOR104,. + 0
24677	.type	g_inkDie_check_enable, %object
24678	.size	g_inkDie_check_enable, 4
24679g_inkDie_check_enable:
24680	.space	4
24681	.section	.bss.g_l2p_last_update_region_id,"aw",%nobits
24682	.align	1
24683	.set	.LANCHOR99,. + 0
24684	.type	g_l2p_last_update_region_id, %object
24685	.size	g_l2p_last_update_region_id, 2
24686g_l2p_last_update_region_id:
24687	.space	2
24688	.section	.bss.g_maxRegNum,"aw",%nobits
24689	.set	.LANCHOR13,. + 0
24690	.type	g_maxRegNum, %object
24691	.size	g_maxRegNum, 1
24692g_maxRegNum:
24693	.space	1
24694	.section	.bss.g_maxRetryCount,"aw",%nobits
24695	.set	.LANCHOR146,. + 0
24696	.type	g_maxRetryCount, %object
24697	.size	g_maxRetryCount, 1
24698g_maxRetryCount:
24699	.space	1
24700	.section	.bss.g_max_erase_count,"aw",%nobits
24701	.align	2
24702	.set	.LANCHOR174,. + 0
24703	.type	g_max_erase_count, %object
24704	.size	g_max_erase_count, 4
24705g_max_erase_count:
24706	.space	4
24707	.section	.bss.g_min_erase_count,"aw",%nobits
24708	.align	2
24709	.set	.LANCHOR175,. + 0
24710	.type	g_min_erase_count, %object
24711	.size	g_min_erase_count, 4
24712g_min_erase_count:
24713	.space	4
24714	.section	.bss.g_nand_ecc_en,"aw",%nobits
24715	.set	.LANCHOR208,. + 0
24716	.type	g_nand_ecc_en, %object
24717	.size	g_nand_ecc_en, 1
24718g_nand_ecc_en:
24719	.space	1
24720	.section	.bss.g_nandc_version_data,"aw",%nobits
24721	.align	2
24722	.set	.LANCHOR122,. + 0
24723	.type	g_nandc_version_data, %object
24724	.size	g_nandc_version_data, 4
24725g_nandc_version_data:
24726	.space	4
24727	.section	.bss.g_num_data_superblocks,"aw",%nobits
24728	.align	1
24729	.set	.LANCHOR87,. + 0
24730	.type	g_num_data_superblocks, %object
24731	.size	g_num_data_superblocks, 2
24732g_num_data_superblocks:
24733	.space	2
24734	.section	.bss.g_num_free_superblocks,"aw",%nobits
24735	.align	1
24736	.set	.LANCHOR90,. + 0
24737	.type	g_num_free_superblocks, %object
24738	.size	g_num_free_superblocks, 2
24739g_num_free_superblocks:
24740	.space	2
24741	.section	.bss.g_page_map_check_enable,"aw",%nobits
24742	.align	1
24743	.set	.LANCHOR69,. + 0
24744	.type	g_page_map_check_enable, %object
24745	.size	g_page_map_check_enable, 2
24746g_page_map_check_enable:
24747	.space	2
24748	.section	.bss.g_power_lost_ecc_error_blk,"aw",%nobits
24749	.align	1
24750	.set	.LANCHOR241,. + 0
24751	.type	g_power_lost_ecc_error_blk, %object
24752	.size	g_power_lost_ecc_error_blk, 2
24753g_power_lost_ecc_error_blk:
24754	.space	2
24755	.section	.bss.g_power_lost_recovery_flag,"aw",%nobits
24756	.align	1
24757	.set	.LANCHOR242,. + 0
24758	.type	g_power_lost_recovery_flag, %object
24759	.size	g_power_lost_recovery_flag, 2
24760g_power_lost_recovery_flag:
24761	.space	2
24762	.section	.bss.g_recovery_page_min_ver,"aw",%nobits
24763	.align	2
24764	.set	.LANCHOR139,. + 0
24765	.type	g_recovery_page_min_ver, %object
24766	.size	g_recovery_page_min_ver, 4
24767g_recovery_page_min_ver:
24768	.space	4
24769	.section	.bss.g_recovery_page_num,"aw",%nobits
24770	.align	2
24771	.set	.LANCHOR243,. + 0
24772	.type	g_recovery_page_num, %object
24773	.size	g_recovery_page_num, 4
24774g_recovery_page_num:
24775	.space	4
24776	.section	.bss.g_recovery_ppa_tbl,"aw",%nobits
24777	.align	2
24778	.set	.LANCHOR244,. + 0
24779	.type	g_recovery_ppa_tbl, %object
24780	.size	g_recovery_ppa_tbl, 128
24781g_recovery_ppa_tbl:
24782	.space	128
24783	.section	.bss.g_req_cache,"aw",%nobits
24784	.align	2
24785	.set	.LANCHOR135,. + 0
24786	.type	g_req_cache, %object
24787	.size	g_req_cache, 4
24788g_req_cache:
24789	.space	4
24790	.section	.bss.g_retryMode,"aw",%nobits
24791	.set	.LANCHOR10,. + 0
24792	.type	g_retryMode, %object
24793	.size	g_retryMode, 1
24794g_retryMode:
24795	.space	1
24796	.section	.bss.g_slc2KBNand,"aw",%nobits
24797	.set	.LANCHOR2,. + 0
24798	.type	g_slc2KBNand, %object
24799	.size	g_slc2KBNand, 1
24800g_slc2KBNand:
24801	.space	1
24802	.section	.bss.g_sys_ext_data,"aw",%nobits
24803	.align	2
24804	.set	.LANCHOR141,. + 0
24805	.type	g_sys_ext_data, %object
24806	.size	g_sys_ext_data, 512
24807g_sys_ext_data:
24808	.space	512
24809	.section	.bss.g_sys_save_data,"aw",%nobits
24810	.align	2
24811	.set	.LANCHOR82,. + 0
24812	.type	g_sys_save_data, %object
24813	.size	g_sys_save_data, 48
24814g_sys_save_data:
24815	.space	48
24816	.section	.bss.g_tmp_data_superblock_id,"aw",%nobits
24817	.align	1
24818	.set	.LANCHOR136,. + 0
24819	.type	g_tmp_data_superblock_id, %object
24820	.size	g_tmp_data_superblock_id, 2
24821g_tmp_data_superblock_id:
24822	.space	2
24823	.section	.bss.g_totle_avg_erase_count,"aw",%nobits
24824	.align	2
24825	.set	.LANCHOR214,. + 0
24826	.type	g_totle_avg_erase_count, %object
24827	.size	g_totle_avg_erase_count, 4
24828g_totle_avg_erase_count:
24829	.space	4
24830	.section	.bss.g_totle_cache_write_count,"aw",%nobits
24831	.align	2
24832	.set	.LANCHOR169,. + 0
24833	.type	g_totle_cache_write_count, %object
24834	.size	g_totle_cache_write_count, 4
24835g_totle_cache_write_count:
24836	.space	4
24837	.section	.bss.g_totle_discard_page_count,"aw",%nobits
24838	.align	2
24839	.set	.LANCHOR168,. + 0
24840	.type	g_totle_discard_page_count, %object
24841	.size	g_totle_discard_page_count, 4
24842g_totle_discard_page_count:
24843	.space	4
24844	.section	.bss.g_totle_gc_page_count,"aw",%nobits
24845	.align	2
24846	.set	.LANCHOR166,. + 0
24847	.type	g_totle_gc_page_count, %object
24848	.size	g_totle_gc_page_count, 4
24849g_totle_gc_page_count:
24850	.space	4
24851	.section	.bss.g_totle_l2p_write_count,"aw",%nobits
24852	.align	2
24853	.set	.LANCHOR170,. + 0
24854	.type	g_totle_l2p_write_count, %object
24855	.size	g_totle_l2p_write_count, 4
24856g_totle_l2p_write_count:
24857	.space	4
24858	.section	.bss.g_totle_map_block,"aw",%nobits
24859	.align	1
24860	.set	.LANCHOR131,. + 0
24861	.type	g_totle_map_block, %object
24862	.size	g_totle_map_block, 2
24863g_totle_map_block:
24864	.space	2
24865	.section	.bss.g_totle_mlc_erase_count,"aw",%nobits
24866	.align	2
24867	.set	.LANCHOR172,. + 0
24868	.type	g_totle_mlc_erase_count, %object
24869	.size	g_totle_mlc_erase_count, 4
24870g_totle_mlc_erase_count:
24871	.space	4
24872	.section	.bss.g_totle_read_page_count,"aw",%nobits
24873	.align	2
24874	.set	.LANCHOR171,. + 0
24875	.type	g_totle_read_page_count, %object
24876	.size	g_totle_read_page_count, 4
24877g_totle_read_page_count:
24878	.space	4
24879	.section	.bss.g_totle_read_sector,"aw",%nobits
24880	.align	2
24881	.set	.LANCHOR226,. + 0
24882	.type	g_totle_read_sector, %object
24883	.size	g_totle_read_sector, 4
24884g_totle_read_sector:
24885	.space	4
24886	.section	.bss.g_totle_slc_erase_count,"aw",%nobits
24887	.align	2
24888	.set	.LANCHOR173,. + 0
24889	.type	g_totle_slc_erase_count, %object
24890	.size	g_totle_slc_erase_count, 4
24891g_totle_slc_erase_count:
24892	.space	4
24893	.section	.bss.g_totle_swl_count,"aw",%nobits
24894	.align	2
24895	.set	.LANCHOR137,. + 0
24896	.type	g_totle_swl_count, %object
24897	.size	g_totle_swl_count, 4
24898g_totle_swl_count:
24899	.space	4
24900	.section	.bss.g_totle_sys_slc_erase_count,"aw",%nobits
24901	.align	2
24902	.set	.LANCHOR81,. + 0
24903	.type	g_totle_sys_slc_erase_count, %object
24904	.size	g_totle_sys_slc_erase_count, 4
24905g_totle_sys_slc_erase_count:
24906	.space	4
24907	.section	.bss.g_totle_vendor_block,"aw",%nobits
24908	.align	1
24909	.set	.LANCHOR70,. + 0
24910	.type	g_totle_vendor_block, %object
24911	.size	g_totle_vendor_block, 2
24912g_totle_vendor_block:
24913	.space	2
24914	.section	.bss.g_totle_write_page_count,"aw",%nobits
24915	.align	2
24916	.set	.LANCHOR167,. + 0
24917	.type	g_totle_write_page_count, %object
24918	.size	g_totle_write_page_count, 4
24919g_totle_write_page_count:
24920	.space	4
24921	.section	.bss.g_totle_write_sector,"aw",%nobits
24922	.align	2
24923	.set	.LANCHOR225,. + 0
24924	.type	g_totle_write_sector, %object
24925	.size	g_totle_write_sector, 4
24926g_totle_write_sector:
24927	.space	4
24928	.section	.bss.g_wr_page_num,"aw",%nobits
24929	.align	2
24930	.set	.LANCHOR72,. + 0
24931	.type	g_wr_page_num, %object
24932	.size	g_wr_page_num, 4
24933g_wr_page_num:
24934	.space	4
24935	.section	.bss.gc_discard_updated,"aw",%nobits
24936	.align	2
24937	.set	.LANCHOR253,. + 0
24938	.type	gc_discard_updated, %object
24939	.size	gc_discard_updated, 4
24940gc_discard_updated:
24941	.space	4
24942	.section	.bss.gc_ink_free_return_value,"aw",%nobits
24943	.align	1
24944	.set	.LANCHOR248,. + 0
24945	.type	gc_ink_free_return_value, %object
24946	.size	gc_ink_free_return_value, 2
24947gc_ink_free_return_value:
24948	.space	2
24949	.section	.bss.gpFlashSaveInfo,"aw",%nobits
24950	.align	2
24951	.set	.LANCHOR153,. + 0
24952	.type	gpFlashSaveInfo, %object
24953	.size	gpFlashSaveInfo, 4
24954gpFlashSaveInfo:
24955	.space	4
24956	.section	.bss.gpNandParaInfo,"aw",%nobits
24957	.align	2
24958	.set	.LANCHOR7,. + 0
24959	.type	gpNandParaInfo, %object
24960	.size	gpNandParaInfo, 4
24961gpNandParaInfo:
24962	.space	4
24963	.section	.bss.gpNandc,"aw",%nobits
24964	.align	2
24965	.set	.LANCHOR19,. + 0
24966	.type	gpNandc, %object
24967	.size	gpNandc, 4
24968gpNandc:
24969	.space	4
24970	.section	.bss.gpNandc1,"aw",%nobits
24971	.align	2
24972	.type	gpNandc1, %object
24973	.size	gpNandc1, 4
24974gpNandc1:
24975	.space	4
24976	.section	.bss.gpReadRetrial,"aw",%nobits
24977	.align	2
24978	.set	.LANCHOR145,. + 0
24979	.type	gpReadRetrial, %object
24980	.size	gpReadRetrial, 4
24981gpReadRetrial:
24982	.space	4
24983	.section	.bss.gp_ect_tbl_info,"aw",%nobits
24984	.align	2
24985	.set	.LANCHOR199,. + 0
24986	.type	gp_ect_tbl_info, %object
24987	.size	gp_ect_tbl_info, 4
24988gp_ect_tbl_info:
24989	.space	4
24990	.section	.bss.gp_flash_check_buf,"aw",%nobits
24991	.align	2
24992	.type	gp_flash_check_buf, %object
24993	.size	gp_flash_check_buf, 262144
24994gp_flash_check_buf:
24995	.space	262144
24996	.section	.bss.gp_gc_page_buf_info,"aw",%nobits
24997	.align	2
24998	.set	.LANCHOR106,. + 0
24999	.type	gp_gc_page_buf_info, %object
25000	.size	gp_gc_page_buf_info, 4
25001gp_gc_page_buf_info:
25002	.space	4
25003	.section	.bss.gp_last_act_superblock,"aw",%nobits
25004	.align	2
25005	.set	.LANCHOR252,. + 0
25006	.type	gp_last_act_superblock, %object
25007	.size	gp_last_act_superblock, 4
25008gp_last_act_superblock:
25009	.space	4
25010	.section	.bss.idb_buf,"aw",%nobits
25011	.align	2
25012	.type	idb_buf, %object
25013	.size	idb_buf, 262144
25014idb_buf:
25015	.space	262144
25016	.section	.bss.idb_flash_slc_mode,"aw",%nobits
25017	.align	2
25018	.set	.LANCHOR29,. + 0
25019	.type	idb_flash_slc_mode, %object
25020	.size	idb_flash_slc_mode, 4
25021idb_flash_slc_mode:
25022	.space	4
25023	.section	.bss.idb_need_write_back,"aw",%nobits
25024	.align	2
25025	.set	.LANCHOR159,. + 0
25026	.type	idb_need_write_back, %object
25027	.size	idb_need_write_back, 4
25028idb_need_write_back:
25029	.space	4
25030	.section	.bss.last_cache_match_count,"aw",%nobits
25031	.align	2
25032	.set	.LANCHOR257,. + 0
25033	.type	last_cache_match_count, %object
25034	.size	last_cache_match_count, 4
25035last_cache_match_count:
25036	.space	4
25037	.section	.bss.mlcPageToSlcPageTbl,"aw",%nobits
25038	.align	2
25039	.set	.LANCHOR123,. + 0
25040	.type	mlcPageToSlcPageTbl, %object
25041	.size	mlcPageToSlcPageTbl, 2048
25042mlcPageToSlcPageTbl:
25043	.space	2048
25044	.section	.bss.p_blk_mode_table,"aw",%nobits
25045	.align	2
25046	.set	.LANCHOR1,. + 0
25047	.type	p_blk_mode_table, %object
25048	.size	p_blk_mode_table, 4
25049p_blk_mode_table:
25050	.space	4
25051	.section	.bss.p_data_block_list_head,"aw",%nobits
25052	.align	2
25053	.set	.LANCHOR84,. + 0
25054	.type	p_data_block_list_head, %object
25055	.size	p_data_block_list_head, 4
25056p_data_block_list_head:
25057	.space	4
25058	.section	.bss.p_data_block_list_table,"aw",%nobits
25059	.align	2
25060	.set	.LANCHOR83,. + 0
25061	.type	p_data_block_list_table, %object
25062	.size	p_data_block_list_table, 4
25063p_data_block_list_table:
25064	.space	4
25065	.section	.bss.p_data_block_list_tail,"aw",%nobits
25066	.align	2
25067	.set	.LANCHOR86,. + 0
25068	.type	p_data_block_list_tail, %object
25069	.size	p_data_block_list_tail, 4
25070p_data_block_list_tail:
25071	.space	4
25072	.section	.bss.p_erase_count_table,"aw",%nobits
25073	.align	2
25074	.set	.LANCHOR80,. + 0
25075	.type	p_erase_count_table, %object
25076	.size	p_erase_count_table, 4
25077p_erase_count_table:
25078	.space	4
25079	.section	.bss.p_free_data_block_list_head,"aw",%nobits
25080	.align	2
25081	.set	.LANCHOR89,. + 0
25082	.type	p_free_data_block_list_head, %object
25083	.size	p_free_data_block_list_head, 4
25084p_free_data_block_list_head:
25085	.space	4
25086	.section	.bss.p_gc_blk_tbl,"aw",%nobits
25087	.align	2
25088	.set	.LANCHOR111,. + 0
25089	.type	p_gc_blk_tbl, %object
25090	.size	p_gc_blk_tbl, 4
25091p_gc_blk_tbl:
25092	.space	4
25093	.section	.bss.p_gc_data_buf,"aw",%nobits
25094	.align	2
25095	.set	.LANCHOR107,. + 0
25096	.type	p_gc_data_buf, %object
25097	.size	p_gc_data_buf, 4
25098p_gc_data_buf:
25099	.space	4
25100	.section	.bss.p_gc_page_info,"aw",%nobits
25101	.align	2
25102	.set	.LANCHOR114,. + 0
25103	.type	p_gc_page_info, %object
25104	.size	p_gc_page_info, 4
25105p_gc_page_info:
25106	.space	4
25107	.section	.bss.p_gc_spare_buf,"aw",%nobits
25108	.align	2
25109	.set	.LANCHOR108,. + 0
25110	.type	p_gc_spare_buf, %object
25111	.size	p_gc_spare_buf, 4
25112p_gc_spare_buf:
25113	.space	4
25114	.section	.bss.p_io_data_buf_0,"aw",%nobits
25115	.align	2
25116	.set	.LANCHOR193,. + 0
25117	.type	p_io_data_buf_0, %object
25118	.size	p_io_data_buf_0, 4
25119p_io_data_buf_0:
25120	.space	4
25121	.section	.bss.p_io_data_buf_1,"aw",%nobits
25122	.align	2
25123	.set	.LANCHOR194,. + 0
25124	.type	p_io_data_buf_1, %object
25125	.size	p_io_data_buf_1, 4
25126p_io_data_buf_1:
25127	.space	4
25128	.section	.bss.p_io_spare_buf,"aw",%nobits
25129	.align	2
25130	.set	.LANCHOR196,. + 0
25131	.type	p_io_spare_buf, %object
25132	.size	p_io_spare_buf, 4
25133p_io_spare_buf:
25134	.space	4
25135	.section	.bss.p_l2p_map_buf,"aw",%nobits
25136	.align	2
25137	.set	.LANCHOR129,. + 0
25138	.type	p_l2p_map_buf, %object
25139	.size	p_l2p_map_buf, 4
25140p_l2p_map_buf:
25141	.space	4
25142	.section	.bss.p_l2p_ram_map,"aw",%nobits
25143	.align	2
25144	.set	.LANCHOR98,. + 0
25145	.type	p_l2p_ram_map, %object
25146	.size	p_l2p_ram_map, 4
25147p_l2p_ram_map:
25148	.space	4
25149	.section	.bss.p_map_block_table,"aw",%nobits
25150	.align	2
25151	.set	.LANCHOR132,. + 0
25152	.type	p_map_block_table, %object
25153	.size	p_map_block_table, 4
25154p_map_block_table:
25155	.space	4
25156	.section	.bss.p_map_block_valid_page_count,"aw",%nobits
25157	.align	2
25158	.set	.LANCHOR128,. + 0
25159	.type	p_map_block_valid_page_count, %object
25160	.size	p_map_block_valid_page_count, 4
25161p_map_block_valid_page_count:
25162	.space	4
25163	.section	.bss.p_map_block_ver_table,"aw",%nobits
25164	.align	2
25165	.set	.LANCHOR133,. + 0
25166	.type	p_map_block_ver_table, %object
25167	.size	p_map_block_ver_table, 4
25168p_map_block_ver_table:
25169	.space	4
25170	.section	.bss.p_map_region_ppn_check_table,"aw",%nobits
25171	.align	2
25172	.set	.LANCHOR203,. + 0
25173	.type	p_map_region_ppn_check_table, %object
25174	.size	p_map_region_ppn_check_table, 4
25175p_map_region_ppn_check_table:
25176	.space	4
25177	.section	.bss.p_map_region_ppn_table,"aw",%nobits
25178	.align	2
25179	.set	.LANCHOR134,. + 0
25180	.type	p_map_region_ppn_table, %object
25181	.size	p_map_region_ppn_table, 4
25182p_map_region_ppn_table:
25183	.space	4
25184	.section	.bss.p_plane_order_table,"aw",%nobits
25185	.set	.LANCHOR47,. + 0
25186	.type	p_plane_order_table, %object
25187	.size	p_plane_order_table, 32
25188p_plane_order_table:
25189	.space	32
25190	.section	.bss.p_swl_mul_table,"aw",%nobits
25191	.align	2
25192	.set	.LANCHOR140,. + 0
25193	.type	p_swl_mul_table, %object
25194	.size	p_swl_mul_table, 4
25195p_swl_mul_table:
25196	.space	4
25197	.section	.bss.p_sys_data_buf,"aw",%nobits
25198	.align	2
25199	.set	.LANCHOR189,. + 0
25200	.type	p_sys_data_buf, %object
25201	.size	p_sys_data_buf, 4
25202p_sys_data_buf:
25203	.space	4
25204	.section	.bss.p_sys_data_buf_1,"aw",%nobits
25205	.align	2
25206	.set	.LANCHOR190,. + 0
25207	.type	p_sys_data_buf_1, %object
25208	.size	p_sys_data_buf_1, 4
25209p_sys_data_buf_1:
25210	.space	4
25211	.section	.bss.p_sys_spare_buf,"aw",%nobits
25212	.align	2
25213	.set	.LANCHOR195,. + 0
25214	.type	p_sys_spare_buf, %object
25215	.size	p_sys_spare_buf, 4
25216p_sys_spare_buf:
25217	.space	4
25218	.section	.bss.p_valid_page_count_table,"aw",%nobits
25219	.align	2
25220	.set	.LANCHOR85,. + 0
25221	.type	p_valid_page_count_table, %object
25222	.size	p_valid_page_count_table, 4
25223p_valid_page_count_table:
25224	.space	4
25225	.section	.bss.p_vendor_block_table,"aw",%nobits
25226	.align	2
25227	.set	.LANCHOR71,. + 0
25228	.type	p_vendor_block_table, %object
25229	.size	p_vendor_block_table, 4
25230p_vendor_block_table:
25231	.space	4
25232	.section	.bss.p_vendor_block_valid_page_count,"aw",%nobits
25233	.align	2
25234	.set	.LANCHOR200,. + 0
25235	.type	p_vendor_block_valid_page_count, %object
25236	.size	p_vendor_block_valid_page_count, 4
25237p_vendor_block_valid_page_count:
25238	.space	4
25239	.section	.bss.p_vendor_block_ver_table,"aw",%nobits
25240	.align	2
25241	.set	.LANCHOR201,. + 0
25242	.type	p_vendor_block_ver_table, %object
25243	.size	p_vendor_block_ver_table, 4
25244p_vendor_block_ver_table:
25245	.space	4
25246	.section	.bss.p_vendor_data_buf,"aw",%nobits
25247	.align	2
25248	.set	.LANCHOR191,. + 0
25249	.type	p_vendor_data_buf, %object
25250	.size	p_vendor_data_buf, 4
25251p_vendor_data_buf:
25252	.space	4
25253	.section	.bss.p_vendor_region_ppn_table,"aw",%nobits
25254	.align	2
25255	.set	.LANCHOR202,. + 0
25256	.type	p_vendor_region_ppn_table, %object
25257	.size	p_vendor_region_ppn_table, 4
25258p_vendor_region_ppn_table:
25259	.space	4
25260	.section	.bss.p_wr_io_data_buf,"aw",%nobits
25261	.align	2
25262	.set	.LANCHOR192,. + 0
25263	.type	p_wr_io_data_buf, %object
25264	.size	p_wr_io_data_buf, 4
25265p_wr_io_data_buf:
25266	.space	4
25267	.section	.bss.p_wr_io_spare_buf,"aw",%nobits
25268	.align	2
25269	.set	.LANCHOR197,. + 0
25270	.type	p_wr_io_spare_buf, %object
25271	.size	p_wr_io_spare_buf, 4
25272p_wr_io_spare_buf:
25273	.space	4
25274	.section	.bss.read_retry_cur_offset,"aw",%nobits
25275	.set	.LANCHOR21,. + 0
25276	.type	read_retry_cur_offset, %object
25277	.size	read_retry_cur_offset, 4
25278read_retry_cur_offset:
25279	.space	4
25280	.section	.bss.req_erase,"aw",%nobits
25281	.align	2
25282	.set	.LANCHOR79,. + 0
25283	.type	req_erase, %object
25284	.size	req_erase, 4
25285req_erase:
25286	.space	4
25287	.section	.bss.req_gc,"aw",%nobits
25288	.align	2
25289	.set	.LANCHOR109,. + 0
25290	.type	req_gc, %object
25291	.size	req_gc, 4
25292req_gc:
25293	.space	4
25294	.section	.bss.req_gc_dst,"aw",%nobits
25295	.align	2
25296	.set	.LANCHOR187,. + 0
25297	.type	req_gc_dst, %object
25298	.size	req_gc_dst, 4
25299req_gc_dst:
25300	.space	4
25301	.section	.bss.req_prgm,"aw",%nobits
25302	.align	2
25303	.set	.LANCHOR188,. + 0
25304	.type	req_prgm, %object
25305	.size	req_prgm, 4
25306req_prgm:
25307	.space	4
25308	.section	.bss.req_read,"aw",%nobits
25309	.align	2
25310	.set	.LANCHOR186,. + 0
25311	.type	req_read, %object
25312	.size	req_read, 4
25313req_read:
25314	.space	4
25315	.section	.bss.req_sys,"aw",%nobits
25316	.align	2
25317	.set	.LANCHOR211,. + 0
25318	.type	req_sys, %object
25319	.size	req_sys, 36
25320req_sys:
25321	.space	36
25322	.section	.bss.req_wr_io,"aw",%nobits
25323	.align	2
25324	.set	.LANCHOR73,. + 0
25325	.type	req_wr_io, %object
25326	.size	req_wr_io, 4
25327req_wr_io:
25328	.space	4
25329	.section	.bss.slcPageToMlcPageTbl,"aw",%nobits
25330	.align	2
25331	.set	.LANCHOR17,. + 0
25332	.type	slcPageToMlcPageTbl, %object
25333	.size	slcPageToMlcPageTbl, 1024
25334slcPageToMlcPageTbl:
25335	.space	1024
25336	.section	.data.FtlMallocOffset,"aw",%progbits
25337	.align	2
25338	.type	FtlMallocOffset, %object
25339	.size	FtlMallocOffset, 4
25340FtlMallocOffset:
25341	.word	64
25342	.section	.data.LastWritenPbaAddr,"aw",%progbits
25343	.align	2
25344	.type	LastWritenPbaAddr, %object
25345	.size	LastWritenPbaAddr, 4
25346LastWritenPbaAddr:
25347	.word	-1
25348	.section	.data.NandFlashParaTbl,"aw",%progbits
25349	.align	1
25350	.set	.LANCHOR151,. + 0
25351	.type	NandFlashParaTbl, %object
25352	.size	NandFlashParaTbl, 2752
25353NandFlashParaTbl:
25354	.byte	6
25355	.byte	44
25356	.byte	100
25357	.byte	68
25358	.byte	75
25359	.byte	-87
25360	.byte	0
25361	.byte	4
25362	.byte	1
25363	.byte	16
25364	.short	256
25365	.byte	2
25366	.byte	2
25367	.short	2048
25368	.short	479
25369	.byte	3
25370	.byte	17
25371	.byte	40
25372	.byte	32
25373	.byte	1
25374	.byte	0
25375	.byte	1
25376	.byte	0
25377	.byte	0
25378	.byte	0
25379	.space	4
25380	.byte	6
25381	.byte	44
25382	.byte	68
25383	.byte	68
25384	.byte	75
25385	.byte	-87
25386	.byte	0
25387	.byte	4
25388	.byte	1
25389	.byte	16
25390	.short	256
25391	.byte	2
25392	.byte	2
25393	.short	1064
25394	.short	479
25395	.byte	3
25396	.byte	17
25397	.byte	40
25398	.byte	32
25399	.byte	1
25400	.byte	0
25401	.byte	1
25402	.byte	0
25403	.byte	0
25404	.byte	0
25405	.space	4
25406	.byte	6
25407	.byte	44
25408	.byte	104
25409	.byte	4
25410	.byte	74
25411	.byte	-87
25412	.byte	0
25413	.byte	4
25414	.byte	1
25415	.byte	8
25416	.short	256
25417	.byte	2
25418	.byte	2
25419	.short	2048
25420	.short	287
25421	.byte	1
25422	.byte	0
25423	.byte	24
25424	.byte	32
25425	.byte	1
25426	.byte	0
25427	.byte	1
25428	.byte	0
25429	.byte	0
25430	.byte	0
25431	.space	4
25432	.byte	5
25433	.byte	44
25434	.byte	-120
25435	.byte	4
25436	.byte	75
25437	.byte	-87
25438	.byte	0
25439	.byte	4
25440	.byte	1
25441	.byte	16
25442	.short	256
25443	.byte	2
25444	.byte	2
25445	.short	2048
25446	.short	287
25447	.byte	1
25448	.byte	0
25449	.byte	24
25450	.byte	32
25451	.byte	1
25452	.byte	0
25453	.byte	1
25454	.byte	0
25455	.byte	0
25456	.byte	0
25457	.space	4
25458	.byte	6
25459	.byte	44
25460	.byte	-88
25461	.byte	5
25462	.byte	-53
25463	.byte	-87
25464	.byte	0
25465	.byte	4
25466	.byte	2
25467	.byte	16
25468	.short	256
25469	.byte	2
25470	.byte	2
25471	.short	2048
25472	.short	287
25473	.byte	1
25474	.byte	0
25475	.byte	24
25476	.byte	32
25477	.byte	1
25478	.byte	0
25479	.byte	1
25480	.byte	0
25481	.byte	0
25482	.byte	0
25483	.space	4
25484	.byte	6
25485	.byte	44
25486	.byte	104
25487	.byte	4
25488	.byte	70
25489	.byte	-119
25490	.byte	0
25491	.byte	4
25492	.byte	1
25493	.byte	8
25494	.short	256
25495	.byte	2
25496	.byte	2
25497	.short	2048
25498	.short	287
25499	.byte	1
25500	.byte	0
25501	.byte	24
25502	.byte	32
25503	.byte	1
25504	.byte	0
25505	.byte	1
25506	.byte	0
25507	.byte	0
25508	.byte	0
25509	.space	4
25510	.byte	6
25511	.byte	44
25512	.byte	72
25513	.byte	4
25514	.byte	74
25515	.byte	-91
25516	.byte	0
25517	.byte	4
25518	.byte	1
25519	.byte	8
25520	.short	256
25521	.byte	2
25522	.byte	2
25523	.short	1024
25524	.short	287
25525	.byte	1
25526	.byte	0
25527	.byte	24
25528	.byte	32
25529	.byte	1
25530	.byte	0
25531	.byte	1
25532	.byte	0
25533	.byte	0
25534	.byte	0
25535	.space	4
25536	.byte	6
25537	.byte	44
25538	.byte	-124
25539	.byte	100
25540	.byte	60
25541	.byte	-91
25542	.byte	0
25543	.byte	4
25544	.byte	1
25545	.byte	32
25546	.short	512
25547	.byte	2
25548	.byte	2
25549	.short	1024
25550	.short	479
25551	.byte	3
25552	.byte	17
25553	.byte	40
25554	.byte	32
25555	.byte	1
25556	.byte	0
25557	.byte	1
25558	.byte	0
25559	.byte	0
25560	.byte	0
25561	.space	4
25562	.byte	5
25563	.byte	44
25564	.byte	-124
25565	.byte	100
25566	.byte	84
25567	.byte	-87
25568	.byte	0
25569	.byte	4
25570	.byte	1
25571	.byte	32
25572	.short	512
25573	.byte	2
25574	.byte	2
25575	.short	1024
25576	.short	479
25577	.byte	4
25578	.byte	18
25579	.byte	60
25580	.byte	32
25581	.byte	1
25582	.byte	0
25583	.byte	1
25584	.byte	0
25585	.byte	0
25586	.byte	0
25587	.space	4
25588	.byte	6
25589	.byte	44
25590	.byte	-41
25591	.byte	-108
25592	.byte	62
25593	.byte	-124
25594	.byte	0
25595	.byte	4
25596	.byte	1
25597	.byte	8
25598	.short	128
25599	.byte	2
25600	.byte	2
25601	.short	4096
25602	.short	279
25603	.byte	1
25604	.byte	0
25605	.byte	24
25606	.byte	32
25607	.byte	1
25608	.byte	0
25609	.byte	1
25610	.byte	0
25611	.byte	0
25612	.byte	0
25613	.space	4
25614	.byte	6
25615	.byte	44
25616	.byte	72
25617	.byte	4
25618	.byte	70
25619	.byte	-123
25620	.byte	0
25621	.byte	4
25622	.byte	1
25623	.byte	8
25624	.short	256
25625	.byte	2
25626	.byte	2
25627	.short	1024
25628	.short	287
25629	.byte	1
25630	.byte	0
25631	.byte	24
25632	.byte	32
25633	.byte	1
25634	.byte	0
25635	.byte	1
25636	.byte	0
25637	.byte	0
25638	.byte	0
25639	.space	4
25640	.byte	6
25641	.byte	44
25642	.byte	-120
25643	.byte	5
25644	.byte	-58
25645	.byte	-119
25646	.byte	0
25647	.byte	4
25648	.byte	2
25649	.byte	8
25650	.short	256
25651	.byte	2
25652	.byte	2
25653	.short	2048
25654	.short	287
25655	.byte	1
25656	.byte	0
25657	.byte	24
25658	.byte	32
25659	.byte	1
25660	.byte	0
25661	.byte	1
25662	.byte	0
25663	.byte	0
25664	.byte	0
25665	.space	4
25666	.byte	5
25667	.byte	44
25668	.byte	-120
25669	.byte	36
25670	.byte	75
25671	.byte	-87
25672	.byte	0
25673	.byte	4
25674	.byte	1
25675	.byte	16
25676	.short	256
25677	.byte	2
25678	.byte	2
25679	.short	2048
25680	.short	287
25681	.byte	1
25682	.byte	0
25683	.byte	24
25684	.byte	32
25685	.byte	1
25686	.byte	0
25687	.byte	1
25688	.byte	0
25689	.byte	0
25690	.byte	0
25691	.space	4
25692	.byte	6
25693	.byte	44
25694	.byte	104
25695	.byte	0
25696	.byte	39
25697	.byte	-87
25698	.byte	0
25699	.byte	4
25700	.byte	1
25701	.byte	16
25702	.short	128
25703	.byte	1
25704	.byte	2
25705	.short	2048
25706	.short	287
25707	.byte	0
25708	.byte	0
25709	.byte	24
25710	.byte	32
25711	.byte	1
25712	.byte	0
25713	.byte	1
25714	.byte	0
25715	.byte	0
25716	.byte	0
25717	.space	4
25718	.byte	5
25719	.byte	44
25720	.byte	100
25721	.byte	100
25722	.byte	86
25723	.byte	-91
25724	.byte	0
25725	.byte	4
25726	.byte	1
25727	.byte	24
25728	.short	512
25729	.byte	2
25730	.byte	2
25731	.short	700
25732	.short	479
25733	.byte	4
25734	.byte	18
25735	.byte	60
25736	.byte	32
25737	.byte	1
25738	.byte	0
25739	.byte	1
25740	.byte	0
25741	.byte	0
25742	.byte	0
25743	.space	4
25744	.byte	6
25745	.byte	44
25746	.byte	-124
25747	.byte	-59
25748	.byte	75
25749	.byte	-87
25750	.byte	0
25751	.byte	4
25752	.byte	2
25753	.byte	16
25754	.short	256
25755	.byte	2
25756	.byte	2
25757	.short	2048
25758	.short	479
25759	.byte	3
25760	.byte	17
25761	.byte	40
25762	.byte	32
25763	.byte	1
25764	.byte	0
25765	.byte	1
25766	.byte	0
25767	.byte	0
25768	.byte	0
25769	.space	4
25770	.byte	6
25771	.byte	44
25772	.byte	-43
25773	.byte	-47
25774	.byte	-90
25775	.byte	104
25776	.byte	0
25777	.byte	4
25778	.byte	2
25779	.byte	8
25780	.short	64
25781	.byte	1
25782	.byte	2
25783	.short	2048
25784	.short	279
25785	.byte	0
25786	.byte	0
25787	.byte	24
25788	.byte	32
25789	.byte	1
25790	.byte	0
25791	.byte	1
25792	.byte	0
25793	.byte	0
25794	.byte	0
25795	.space	4
25796	.byte	6
25797	.byte	44
25798	.byte	-36
25799	.byte	-112
25800	.byte	-90
25801	.byte	84
25802	.byte	0
25803	.byte	4
25804	.byte	1
25805	.byte	8
25806	.short	64
25807	.byte	1
25808	.byte	2
25809	.short	1024
25810	.short	279
25811	.byte	0
25812	.byte	0
25813	.byte	24
25814	.byte	32
25815	.byte	1
25816	.byte	0
25817	.byte	1
25818	.byte	0
25819	.byte	0
25820	.byte	0
25821	.space	4
25822	.byte	5
25823	.byte	44
25824	.byte	100
25825	.byte	100
25826	.byte	84
25827	.byte	-92
25828	.byte	0
25829	.byte	4
25830	.byte	1
25831	.byte	32
25832	.short	512
25833	.byte	2
25834	.byte	1
25835	.short	1024
25836	.short	479
25837	.byte	4
25838	.byte	18
25839	.byte	60
25840	.byte	32
25841	.byte	1
25842	.byte	0
25843	.byte	1
25844	.byte	0
25845	.byte	0
25846	.byte	0
25847	.space	4
25848	.byte	5
25849	.byte	44
25850	.byte	-124
25851	.byte	68
25852	.byte	50
25853	.byte	-86
25854	.byte	0
25855	.byte	4
25856	.byte	1
25857	.byte	32
25858	.short	512
25859	.byte	2
25860	.byte	1
25861	.short	2184
25862	.short	1479
25863	.byte	5
25864	.byte	19
25865	.byte	60
25866	.byte	32
25867	.byte	1
25868	.byte	0
25869	.byte	1
25870	.byte	0
25871	.byte	1
25872	.byte	0
25873	.space	4
25874	.byte	5
25875	.byte	44
25876	.byte	100
25877	.byte	68
25878	.byte	50
25879	.byte	-91
25880	.byte	0
25881	.byte	4
25882	.byte	1
25883	.byte	32
25884	.short	512
25885	.byte	2
25886	.byte	1
25887	.short	1048
25888	.short	1479
25889	.byte	5
25890	.byte	19
25891	.byte	60
25892	.byte	32
25893	.byte	1
25894	.byte	0
25895	.byte	1
25896	.byte	0
25897	.byte	1
25898	.byte	0
25899	.space	4
25900	.byte	5
25901	.byte	44
25902	.byte	100
25903	.byte	100
25904	.byte	60
25905	.byte	-91
25906	.byte	0
25907	.byte	4
25908	.byte	1
25909	.byte	32
25910	.short	512
25911	.byte	2
25912	.byte	1
25913	.short	1044
25914	.short	479
25915	.byte	3
25916	.byte	17
25917	.byte	40
25918	.byte	32
25919	.byte	1
25920	.byte	0
25921	.byte	1
25922	.byte	0
25923	.byte	0
25924	.byte	0
25925	.space	4
25926	.byte	5
25927	.byte	44
25928	.byte	-124
25929	.byte	68
25930	.byte	50
25931	.byte	-86
25932	.byte	0
25933	.byte	4
25934	.byte	1
25935	.byte	32
25936	.short	512
25937	.byte	2
25938	.byte	1
25939	.short	2184
25940	.short	1479
25941	.byte	5
25942	.byte	19
25943	.byte	60
25944	.byte	32
25945	.byte	1
25946	.byte	0
25947	.byte	4
25948	.byte	0
25949	.byte	1
25950	.byte	0
25951	.space	4
25952	.byte	5
25953	.byte	44
25954	.byte	-124
25955	.byte	68
25956	.byte	52
25957	.byte	-86
25958	.byte	0
25959	.byte	4
25960	.byte	1
25961	.byte	32
25962	.short	512
25963	.byte	2
25964	.byte	1
25965	.short	2184
25966	.short	1479
25967	.byte	5
25968	.byte	19
25969	.byte	60
25970	.byte	32
25971	.byte	1
25972	.byte	0
25973	.byte	4
25974	.byte	0
25975	.byte	1
25976	.byte	0
25977	.space	4
25978	.byte	5
25979	.byte	44
25980	.byte	-124
25981	.byte	-60
25982	.byte	52
25983	.byte	-86
25984	.byte	0
25985	.byte	4
25986	.byte	1
25987	.byte	32
25988	.short	512
25989	.byte	2
25990	.byte	1
25991	.short	2184
25992	.short	1479
25993	.byte	5
25994	.byte	19
25995	.byte	60
25996	.byte	32
25997	.byte	1
25998	.byte	0
25999	.byte	1
26000	.byte	0
26001	.byte	1
26002	.byte	0
26003	.space	4
26004	.byte	5
26005	.byte	44
26006	.byte	-124
26007	.byte	68
26008	.byte	52
26009	.byte	-92
26010	.byte	0
26011	.byte	4
26012	.byte	1
26013	.byte	32
26014	.short	512
26015	.byte	2
26016	.byte	1
26017	.short	2184
26018	.short	1479
26019	.byte	5
26020	.byte	19
26021	.byte	60
26022	.byte	32
26023	.byte	1
26024	.byte	0
26025	.byte	1
26026	.byte	0
26027	.byte	1
26028	.byte	0
26029	.space	4
26030	.byte	5
26031	.byte	44
26032	.byte	-124
26033	.byte	100
26034	.byte	60
26035	.byte	-87
26036	.byte	0
26037	.byte	4
26038	.byte	1
26039	.byte	32
26040	.short	512
26041	.byte	2
26042	.byte	2
26043	.short	1024
26044	.short	479
26045	.byte	3
26046	.byte	17
26047	.byte	40
26048	.byte	32
26049	.byte	1
26050	.byte	0
26051	.byte	1
26052	.byte	0
26053	.byte	0
26054	.byte	0
26055	.space	4
26056	.byte	6
26057	.byte	44
26058	.byte	-92
26059	.byte	100
26060	.byte	50
26061	.byte	-86
26062	.byte	4
26063	.byte	4
26064	.byte	1
26065	.byte	32
26066	.short	1024
26067	.byte	2
26068	.byte	1
26069	.short	2192
26070	.short	1479
26071	.byte	10
26072	.byte	19
26073	.byte	60
26074	.byte	32
26075	.byte	1
26076	.byte	0
26077	.byte	4
26078	.byte	0
26079	.byte	1
26080	.byte	0
26081	.space	4
26082	.byte	6
26083	.byte	-83
26084	.byte	-34
26085	.byte	-108
26086	.byte	-46
26087	.byte	4
26088	.byte	67
26089	.byte	2
26090	.byte	1
26091	.byte	16
26092	.short	256
26093	.byte	2
26094	.byte	2
26095	.short	2048
26096	.short	473
26097	.byte	1
26098	.byte	1
26099	.byte	24
26100	.byte	32
26101	.byte	4
26102	.byte	0
26103	.byte	3
26104	.byte	0
26105	.byte	0
26106	.byte	0
26107	.space	4
26108	.byte	6
26109	.byte	-83
26110	.byte	-41
26111	.byte	-108
26112	.byte	-38
26113	.byte	116
26114	.byte	-61
26115	.byte	2
26116	.byte	1
26117	.byte	16
26118	.short	256
26119	.byte	2
26120	.byte	2
26121	.short	1024
26122	.short	473
26123	.byte	1
26124	.byte	2
26125	.byte	40
26126	.byte	32
26127	.byte	4
26128	.byte	0
26129	.byte	3
26130	.byte	0
26131	.byte	0
26132	.byte	0
26133	.space	4
26134	.byte	6
26135	.byte	-83
26136	.byte	-41
26137	.byte	-108
26138	.byte	-111
26139	.byte	96
26140	.byte	68
26141	.byte	2
26142	.byte	1
26143	.byte	16
26144	.short	256
26145	.byte	2
26146	.byte	2
26147	.short	1046
26148	.short	473
26149	.byte	1
26150	.byte	3
26151	.byte	40
26152	.byte	32
26153	.byte	4
26154	.byte	1
26155	.byte	3
26156	.byte	0
26157	.byte	0
26158	.byte	0
26159	.space	4
26160	.byte	6
26161	.byte	-83
26162	.byte	-34
26163	.byte	-108
26164	.byte	-38
26165	.byte	116
26166	.byte	-60
26167	.byte	2
26168	.byte	1
26169	.byte	16
26170	.short	256
26171	.byte	2
26172	.byte	2
26173	.short	2090
26174	.short	473
26175	.byte	1
26176	.byte	4
26177	.byte	40
26178	.byte	32
26179	.byte	4
26180	.byte	1
26181	.byte	3
26182	.byte	0
26183	.byte	0
26184	.byte	0
26185	.space	4
26186	.byte	6
26187	.byte	-83
26188	.byte	-34
26189	.byte	-108
26190	.byte	-21
26191	.byte	116
26192	.byte	68
26193	.byte	2
26194	.byte	1
26195	.byte	32
26196	.short	256
26197	.byte	2
26198	.byte	2
26199	.short	1066
26200	.short	473
26201	.byte	1
26202	.byte	7
26203	.byte	40
26204	.byte	32
26205	.byte	4
26206	.byte	1
26207	.byte	3
26208	.byte	0
26209	.byte	0
26210	.byte	0
26211	.space	4
26212	.byte	6
26213	.byte	-83
26214	.byte	-43
26215	.byte	-108
26216	.byte	-38
26217	.byte	116
26218	.byte	-60
26219	.byte	2
26220	.byte	1
26221	.byte	16
26222	.short	256
26223	.byte	2
26224	.byte	2
26225	.short	530
26226	.short	473
26227	.byte	1
26228	.byte	3
26229	.byte	40
26230	.byte	32
26231	.byte	4
26232	.byte	1
26233	.byte	3
26234	.byte	0
26235	.byte	0
26236	.byte	0
26237	.space	4
26238	.byte	6
26239	.byte	-83
26240	.byte	-41
26241	.byte	-108
26242	.byte	-102
26243	.byte	116
26244	.byte	66
26245	.byte	2
26246	.byte	1
26247	.byte	16
26248	.short	256
26249	.byte	2
26250	.byte	2
26251	.short	1024
26252	.short	281
26253	.byte	1
26254	.byte	0
26255	.byte	24
26256	.byte	32
26257	.byte	4
26258	.byte	0
26259	.byte	3
26260	.byte	0
26261	.byte	0
26262	.byte	0
26263	.space	4
26264	.byte	6
26265	.byte	-83
26266	.byte	-34
26267	.byte	20
26268	.byte	-89
26269	.byte	66
26270	.byte	74
26271	.byte	2
26272	.byte	1
26273	.byte	32
26274	.short	256
26275	.byte	2
26276	.byte	2
26277	.short	1060
26278	.short	473
26279	.byte	2
26280	.byte	5
26281	.byte	40
26282	.byte	32
26283	.byte	4
26284	.byte	1
26285	.byte	3
26286	.byte	0
26287	.byte	0
26288	.byte	0
26289	.space	4
26290	.byte	6
26291	.byte	-83
26292	.byte	-41
26293	.byte	20
26294	.byte	-98
26295	.byte	52
26296	.byte	74
26297	.byte	2
26298	.byte	1
26299	.byte	16
26300	.short	256
26301	.byte	2
26302	.byte	2
26303	.short	1056
26304	.short	473
26305	.byte	2
26306	.byte	5
26307	.byte	40
26308	.byte	32
26309	.byte	4
26310	.byte	1
26311	.byte	3
26312	.byte	0
26313	.byte	0
26314	.byte	0
26315	.space	4
26316	.byte	6
26317	.byte	-83
26318	.byte	-34
26319	.byte	-108
26320	.byte	-89
26321	.byte	66
26322	.byte	72
26323	.byte	2
26324	.byte	1
26325	.byte	32
26326	.short	256
26327	.byte	2
26328	.byte	2
26329	.short	1060
26330	.short	473
26331	.byte	2
26332	.byte	5
26333	.byte	40
26334	.byte	32
26335	.byte	4
26336	.byte	1
26337	.byte	3
26338	.byte	0
26339	.byte	0
26340	.byte	0
26341	.space	4
26342	.byte	6
26343	.byte	-83
26344	.byte	-34
26345	.byte	20
26346	.byte	-85
26347	.byte	66
26348	.byte	74
26349	.byte	2
26350	.byte	1
26351	.byte	32
26352	.short	256
26353	.byte	2
26354	.byte	2
26355	.short	1056
26356	.short	473
26357	.byte	2
26358	.byte	6
26359	.byte	40
26360	.byte	32
26361	.byte	3
26362	.byte	1
26363	.byte	3
26364	.byte	0
26365	.byte	0
26366	.byte	0
26367	.space	4
26368	.byte	6
26369	.byte	-83
26370	.byte	58
26371	.byte	20
26372	.byte	-85
26373	.byte	66
26374	.byte	74
26375	.byte	2
26376	.byte	1
26377	.byte	32
26378	.short	256
26379	.byte	2
26380	.byte	2
26381	.short	2092
26382	.short	473
26383	.byte	2
26384	.byte	5
26385	.byte	40
26386	.byte	32
26387	.byte	3
26388	.byte	1
26389	.byte	3
26390	.byte	0
26391	.byte	0
26392	.byte	0
26393	.space	4
26394	.byte	6
26395	.byte	-83
26396	.byte	-43
26397	.byte	-108
26398	.byte	-102
26399	.byte	116
26400	.byte	66
26401	.byte	2
26402	.byte	1
26403	.byte	16
26404	.short	256
26405	.byte	2
26406	.byte	1
26407	.short	1024
26408	.short	273
26409	.byte	1
26410	.byte	0
26411	.byte	24
26412	.byte	32
26413	.byte	4
26414	.byte	1
26415	.byte	3
26416	.byte	0
26417	.byte	0
26418	.byte	0
26419	.space	4
26420	.byte	6
26421	.byte	-83
26422	.byte	58
26423	.byte	20
26424	.byte	3
26425	.byte	8
26426	.byte	80
26427	.byte	2
26428	.byte	1
26429	.byte	32
26430	.short	388
26431	.byte	2
26432	.byte	2
26433	.short	1362
26434	.short	473
26435	.byte	9
26436	.byte	8
26437	.byte	40
26438	.byte	32
26439	.byte	3
26440	.byte	1
26441	.byte	3
26442	.byte	0
26443	.byte	0
26444	.byte	0
26445	.space	4
26446	.byte	6
26447	.byte	-119
26448	.byte	100
26449	.byte	68
26450	.byte	75
26451	.byte	-87
26452	.byte	0
26453	.byte	7
26454	.byte	1
26455	.byte	16
26456	.short	256
26457	.byte	2
26458	.byte	2
26459	.short	2048
26460	.short	479
26461	.byte	3
26462	.byte	17
26463	.byte	40
26464	.byte	32
26465	.byte	1
26466	.byte	0
26467	.byte	1
26468	.byte	0
26469	.byte	0
26470	.byte	0
26471	.space	4
26472	.byte	6
26473	.byte	-119
26474	.byte	-120
26475	.byte	36
26476	.byte	75
26477	.byte	-87
26478	.byte	-124
26479	.byte	7
26480	.byte	1
26481	.byte	16
26482	.short	256
26483	.byte	2
26484	.byte	2
26485	.short	2048
26486	.short	479
26487	.byte	3
26488	.byte	17
26489	.byte	40
26490	.byte	32
26491	.byte	1
26492	.byte	0
26493	.byte	1
26494	.byte	0
26495	.byte	0
26496	.byte	0
26497	.space	4
26498	.byte	6
26499	.byte	-119
26500	.byte	-120
26501	.byte	36
26502	.byte	75
26503	.byte	-87
26504	.byte	0
26505	.byte	7
26506	.byte	1
26507	.byte	16
26508	.short	256
26509	.byte	2
26510	.byte	2
26511	.short	2048
26512	.short	279
26513	.byte	1
26514	.byte	0
26515	.byte	24
26516	.byte	32
26517	.byte	1
26518	.byte	0
26519	.byte	1
26520	.byte	0
26521	.byte	0
26522	.byte	0
26523	.space	4
26524	.byte	6
26525	.byte	-119
26526	.byte	104
26527	.byte	36
26528	.byte	74
26529	.byte	-87
26530	.byte	0
26531	.byte	7
26532	.byte	1
26533	.byte	8
26534	.short	256
26535	.byte	2
26536	.byte	2
26537	.short	2048
26538	.short	279
26539	.byte	1
26540	.byte	0
26541	.byte	24
26542	.byte	32
26543	.byte	1
26544	.byte	0
26545	.byte	1
26546	.byte	0
26547	.byte	0
26548	.byte	0
26549	.space	4
26550	.byte	6
26551	.byte	-119
26552	.byte	104
26553	.byte	4
26554	.byte	74
26555	.byte	-87
26556	.byte	0
26557	.byte	7
26558	.byte	1
26559	.byte	8
26560	.short	256
26561	.byte	2
26562	.byte	2
26563	.short	2048
26564	.short	279
26565	.byte	1
26566	.byte	0
26567	.byte	24
26568	.byte	32
26569	.byte	1
26570	.byte	0
26571	.byte	1
26572	.byte	0
26573	.byte	0
26574	.byte	0
26575	.space	4
26576	.byte	6
26577	.byte	-119
26578	.byte	-41
26579	.byte	-108
26580	.byte	62
26581	.byte	-124
26582	.byte	0
26583	.byte	7
26584	.byte	1
26585	.byte	8
26586	.short	256
26587	.byte	2
26588	.byte	2
26589	.short	2048
26590	.short	279
26591	.byte	1
26592	.byte	0
26593	.byte	24
26594	.byte	32
26595	.byte	1
26596	.byte	0
26597	.byte	1
26598	.byte	0
26599	.byte	0
26600	.byte	0
26601	.space	4
26602	.byte	6
26603	.byte	-119
26604	.byte	104
26605	.byte	4
26606	.byte	70
26607	.byte	-87
26608	.byte	0
26609	.byte	7
26610	.byte	1
26611	.byte	8
26612	.short	256
26613	.byte	2
26614	.byte	2
26615	.short	2048
26616	.short	279
26617	.byte	1
26618	.byte	0
26619	.byte	24
26620	.byte	32
26621	.byte	1
26622	.byte	0
26623	.byte	1
26624	.byte	0
26625	.byte	0
26626	.byte	0
26627	.space	4
26628	.byte	5
26629	.byte	-119
26630	.byte	100
26631	.byte	100
26632	.byte	60
26633	.byte	-95
26634	.byte	0
26635	.byte	7
26636	.byte	1
26637	.byte	32
26638	.short	512
26639	.byte	2
26640	.byte	1
26641	.short	1024
26642	.short	455
26643	.byte	4
26644	.byte	17
26645	.byte	40
26646	.byte	32
26647	.byte	1
26648	.byte	0
26649	.byte	1
26650	.byte	0
26651	.byte	0
26652	.byte	0
26653	.space	4
26654	.byte	5
26655	.byte	-119
26656	.byte	-124
26657	.byte	100
26658	.byte	60
26659	.byte	-91
26660	.byte	0
26661	.byte	7
26662	.byte	1
26663	.byte	32
26664	.short	512
26665	.byte	2
26666	.byte	2
26667	.short	1024
26668	.short	455
26669	.byte	4
26670	.byte	17
26671	.byte	40
26672	.byte	32
26673	.byte	1
26674	.byte	0
26675	.byte	1
26676	.byte	0
26677	.byte	0
26678	.byte	0
26679	.space	4
26680	.byte	6
26681	.byte	-119
26682	.byte	-120
26683	.byte	36
26684	.byte	59
26685	.byte	-87
26686	.byte	0
26687	.byte	7
26688	.byte	1
26689	.byte	16
26690	.short	192
26691	.byte	2
26692	.byte	2
26693	.short	2048
26694	.short	279
26695	.byte	12
26696	.byte	0
26697	.byte	24
26698	.byte	32
26699	.byte	1
26700	.byte	0
26701	.byte	1
26702	.byte	0
26703	.byte	0
26704	.byte	0
26705	.space	4
26706	.byte	6
26707	.byte	-104
26708	.byte	-41
26709	.byte	-124
26710	.byte	-109
26711	.byte	114
26712	.byte	87
26713	.byte	1
26714	.byte	1
26715	.byte	32
26716	.short	256
26717	.byte	2
26718	.byte	1
26719	.short	1060
26720	.short	1473
26721	.byte	2
26722	.byte	33
26723	.byte	40
26724	.byte	32
26725	.byte	2
26726	.byte	1
26727	.byte	1
26728	.byte	0
26729	.byte	0
26730	.byte	0
26731	.space	4
26732	.byte	6
26733	.byte	-104
26734	.byte	-34
26735	.byte	-124
26736	.byte	-109
26737	.byte	114
26738	.byte	87
26739	.byte	1
26740	.byte	1
26741	.byte	32
26742	.short	256
26743	.byte	2
26744	.byte	1
26745	.short	2092
26746	.short	1473
26747	.byte	2
26748	.byte	33
26749	.byte	40
26750	.byte	32
26751	.byte	2
26752	.byte	1
26753	.byte	1
26754	.byte	0
26755	.byte	0
26756	.byte	0
26757	.space	4
26758	.byte	6
26759	.byte	-104
26760	.byte	58
26761	.byte	-123
26762	.byte	-109
26763	.byte	118
26764	.byte	87
26765	.byte	1
26766	.byte	2
26767	.byte	32
26768	.short	256
26769	.byte	2
26770	.byte	1
26771	.short	2092
26772	.short	1505
26773	.byte	2
26774	.byte	33
26775	.byte	40
26776	.byte	32
26777	.byte	2
26778	.byte	1
26779	.byte	1
26780	.byte	0
26781	.byte	0
26782	.byte	0
26783	.space	4
26784	.byte	6
26785	.byte	-104
26786	.byte	-43
26787	.byte	-124
26788	.byte	50
26789	.byte	114
26790	.byte	86
26791	.byte	1
26792	.byte	1
26793	.byte	16
26794	.short	128
26795	.byte	2
26796	.byte	1
26797	.short	2056
26798	.short	1473
26799	.byte	2
26800	.byte	33
26801	.byte	40
26802	.byte	32
26803	.byte	2
26804	.byte	1
26805	.byte	1
26806	.byte	0
26807	.byte	0
26808	.byte	0
26809	.space	4
26810	.byte	6
26811	.byte	-104
26812	.byte	-41
26813	.byte	-108
26814	.byte	50
26815	.byte	118
26816	.byte	86
26817	.byte	1
26818	.byte	1
26819	.byte	16
26820	.short	128
26821	.byte	2
26822	.byte	2
26823	.short	2058
26824	.short	1489
26825	.byte	2
26826	.byte	33
26827	.byte	40
26828	.byte	32
26829	.byte	2
26830	.byte	1
26831	.byte	1
26832	.byte	0
26833	.byte	0
26834	.byte	0
26835	.space	4
26836	.byte	6
26837	.byte	-104
26838	.byte	-34
26839	.byte	-108
26840	.byte	-126
26841	.byte	118
26842	.byte	86
26843	.byte	1
26844	.byte	1
26845	.byte	16
26846	.short	256
26847	.byte	2
26848	.byte	2
26849	.short	2062
26850	.short	1489
26851	.byte	1
26852	.byte	33
26853	.byte	40
26854	.byte	32
26855	.byte	2
26856	.byte	1
26857	.byte	1
26858	.byte	0
26859	.byte	0
26860	.byte	0
26861	.space	4
26862	.byte	6
26863	.byte	-104
26864	.byte	-34
26865	.byte	-108
26866	.byte	-109
26867	.byte	118
26868	.byte	80
26869	.byte	1
26870	.byte	1
26871	.byte	32
26872	.short	256
26873	.byte	2
26874	.byte	2
26875	.short	1066
26876	.short	1497
26877	.byte	2
26878	.byte	34
26879	.byte	40
26880	.byte	32
26881	.byte	3
26882	.byte	1
26883	.byte	1
26884	.byte	0
26885	.byte	0
26886	.byte	0
26887	.space	4
26888	.byte	6
26889	.byte	-104
26890	.byte	58
26891	.byte	-107
26892	.byte	-109
26893	.byte	122
26894	.byte	80
26895	.byte	1
26896	.byte	2
26897	.byte	32
26898	.short	256
26899	.byte	2
26900	.byte	2
26901	.short	1066
26902	.short	1497
26903	.byte	2
26904	.byte	34
26905	.byte	40
26906	.byte	32
26907	.byte	3
26908	.byte	1
26909	.byte	1
26910	.byte	0
26911	.byte	0
26912	.byte	0
26913	.space	4
26914	.byte	6
26915	.byte	-104
26916	.byte	-41
26917	.byte	-108
26918	.byte	50
26919	.byte	118
26920	.byte	85
26921	.byte	1
26922	.byte	1
26923	.byte	16
26924	.short	128
26925	.byte	2
26926	.byte	2
26927	.short	2050
26928	.short	401
26929	.byte	2
26930	.byte	0
26931	.byte	24
26932	.byte	32
26933	.byte	1
26934	.byte	1
26935	.byte	1
26936	.byte	0
26937	.byte	0
26938	.byte	0
26939	.space	4
26940	.byte	6
26941	.byte	-104
26942	.byte	-34
26943	.byte	-108
26944	.byte	-109
26945	.byte	118
26946	.byte	87
26947	.byte	1
26948	.byte	1
26949	.byte	32
26950	.short	256
26951	.byte	2
26952	.byte	2
26953	.short	1058
26954	.short	1497
26955	.byte	2
26956	.byte	33
26957	.byte	40
26958	.byte	32
26959	.byte	3
26960	.byte	1
26961	.byte	1
26962	.byte	0
26963	.byte	0
26964	.byte	0
26965	.space	4
26966	.byte	6
26967	.byte	-104
26968	.byte	-41
26969	.byte	-124
26970	.byte	-109
26971	.byte	114
26972	.byte	80
26973	.byte	1
26974	.byte	1
26975	.byte	32
26976	.short	256
26977	.byte	2
26978	.byte	1
26979	.short	1060
26980	.short	1473
26981	.byte	2
26982	.byte	34
26983	.byte	40
26984	.byte	32
26985	.byte	3
26986	.byte	1
26987	.byte	1
26988	.byte	0
26989	.byte	0
26990	.byte	0
26991	.space	4
26992	.byte	6
26993	.byte	-104
26994	.byte	-34
26995	.byte	-108
26996	.byte	-109
26997	.byte	118
26998	.byte	81
26999	.byte	1
27000	.byte	1
27001	.byte	32
27002	.short	256
27003	.byte	2
27004	.byte	2
27005	.short	1074
27006	.short	1497
27007	.byte	2
27008	.byte	35
27009	.byte	40
27010	.byte	32
27011	.byte	3
27012	.byte	1
27013	.byte	4
27014	.byte	0
27015	.byte	0
27016	.byte	0
27017	.space	4
27018	.byte	6
27019	.byte	-104
27020	.byte	58
27021	.byte	-108
27022	.byte	-109
27023	.byte	118
27024	.byte	81
27025	.byte	1
27026	.byte	1
27027	.byte	32
27028	.short	256
27029	.byte	2
27030	.byte	2
27031	.short	2106
27032	.short	1497
27033	.byte	2
27034	.byte	35
27035	.byte	40
27036	.byte	32
27037	.byte	3
27038	.byte	1
27039	.byte	4
27040	.byte	0
27041	.byte	0
27042	.byte	0
27043	.space	4
27044	.byte	6
27045	.byte	-104
27046	.byte	-41
27047	.byte	-124
27048	.byte	-109
27049	.byte	114
27050	.byte	81
27051	.byte	1
27052	.byte	1
27053	.byte	32
27054	.short	256
27055	.byte	2
27056	.byte	1
27057	.short	1056
27058	.short	1497
27059	.byte	2
27060	.byte	35
27061	.byte	40
27062	.byte	32
27063	.byte	3
27064	.byte	1
27065	.byte	4
27066	.byte	0
27067	.byte	0
27068	.byte	0
27069	.space	4
27070	.byte	6
27071	.byte	-104
27072	.byte	-34
27073	.byte	-108
27074	.byte	-109
27075	.byte	118
27076	.byte	-47
27077	.byte	1
27078	.byte	1
27079	.byte	32
27080	.short	256
27081	.byte	2
27082	.byte	2
27083	.short	1074
27084	.short	1497
27085	.byte	2
27086	.byte	35
27087	.byte	40
27088	.byte	32
27089	.byte	3
27090	.byte	1
27091	.byte	4
27092	.byte	0
27093	.byte	0
27094	.byte	0
27095	.space	4
27096	.byte	6
27097	.byte	69
27098	.byte	-34
27099	.byte	-108
27100	.byte	-109
27101	.byte	118
27102	.byte	87
27103	.byte	8
27104	.byte	1
27105	.byte	32
27106	.short	256
27107	.byte	2
27108	.byte	2
27109	.short	1058
27110	.short	1497
27111	.byte	2
27112	.byte	66
27113	.byte	40
27114	.byte	32
27115	.byte	3
27116	.byte	1
27117	.byte	1
27118	.byte	0
27119	.byte	0
27120	.byte	0
27121	.space	4
27122	.byte	6
27123	.byte	69
27124	.byte	-41
27125	.byte	-124
27126	.byte	-109
27127	.byte	114
27128	.byte	87
27129	.byte	8
27130	.byte	1
27131	.byte	32
27132	.short	256
27133	.byte	2
27134	.byte	1
27135	.short	1060
27136	.short	1473
27137	.byte	2
27138	.byte	66
27139	.byte	40
27140	.byte	32
27141	.byte	2
27142	.byte	1
27143	.byte	1
27144	.byte	0
27145	.byte	0
27146	.byte	0
27147	.space	4
27148	.byte	6
27149	.byte	69
27150	.byte	-34
27151	.byte	-92
27152	.byte	-126
27153	.byte	118
27154	.byte	86
27155	.byte	8
27156	.byte	1
27157	.byte	16
27158	.short	256
27159	.byte	2
27160	.byte	2
27161	.short	2082
27162	.short	473
27163	.byte	1
27164	.byte	65
27165	.byte	40
27166	.byte	32
27167	.byte	3
27168	.byte	1
27169	.byte	1
27170	.byte	0
27171	.byte	0
27172	.byte	0
27173	.space	4
27174	.byte	6
27175	.byte	69
27176	.byte	-34
27177	.byte	-108
27178	.byte	-109
27179	.byte	118
27180	.byte	80
27181	.byte	8
27182	.byte	1
27183	.byte	32
27184	.short	256
27185	.byte	2
27186	.byte	2
27187	.short	1066
27188	.short	1497
27189	.byte	2
27190	.byte	67
27191	.byte	40
27192	.byte	32
27193	.byte	3
27194	.byte	1
27195	.byte	1
27196	.byte	0
27197	.byte	0
27198	.byte	0
27199	.space	4
27200	.byte	6
27201	.byte	69
27202	.byte	-41
27203	.byte	-124
27204	.byte	-109
27205	.byte	114
27206	.byte	80
27207	.byte	8
27208	.byte	1
27209	.byte	32
27210	.short	256
27211	.byte	2
27212	.byte	1
27213	.short	1060
27214	.short	1473
27215	.byte	2
27216	.byte	67
27217	.byte	40
27218	.byte	32
27219	.byte	3
27220	.byte	1
27221	.byte	1
27222	.byte	0
27223	.byte	0
27224	.byte	0
27225	.space	4
27226	.byte	6
27227	.byte	69
27228	.byte	-34
27229	.byte	-92
27230	.byte	-126
27231	.byte	118
27232	.byte	-41
27233	.byte	8
27234	.byte	1
27235	.byte	16
27236	.short	256
27237	.byte	2
27238	.byte	2
27239	.short	2090
27240	.short	1241
27241	.byte	1
27242	.byte	66
27243	.byte	40
27244	.byte	32
27245	.byte	3
27246	.byte	1
27247	.byte	1
27248	.byte	0
27249	.byte	0
27250	.byte	0
27251	.space	4
27252	.byte	6
27253	.byte	69
27254	.byte	-34
27255	.byte	-124
27256	.byte	-109
27257	.byte	114
27258	.byte	87
27259	.byte	8
27260	.byte	1
27261	.byte	32
27262	.short	256
27263	.byte	2
27264	.byte	1
27265	.short	2092
27266	.short	1473
27267	.byte	2
27268	.byte	66
27269	.byte	40
27270	.byte	32
27271	.byte	3
27272	.byte	1
27273	.byte	1
27274	.byte	0
27275	.byte	0
27276	.byte	0
27277	.space	4
27278	.byte	6
27279	.byte	69
27280	.byte	58
27281	.byte	-108
27282	.byte	-109
27283	.byte	118
27284	.byte	81
27285	.byte	8
27286	.byte	1
27287	.byte	32
27288	.short	256
27289	.byte	2
27290	.byte	2
27291	.short	2106
27292	.short	473
27293	.byte	2
27294	.byte	68
27295	.byte	40
27296	.byte	32
27297	.byte	3
27298	.byte	1
27299	.byte	4
27300	.byte	0
27301	.byte	0
27302	.byte	0
27303	.space	4
27304	.byte	6
27305	.byte	69
27306	.byte	-34
27307	.byte	-108
27308	.byte	-109
27309	.byte	118
27310	.byte	81
27311	.byte	8
27312	.byte	1
27313	.byte	32
27314	.short	256
27315	.byte	2
27316	.byte	2
27317	.short	1074
27318	.short	473
27319	.byte	2
27320	.byte	68
27321	.byte	40
27322	.byte	32
27323	.byte	3
27324	.byte	1
27325	.byte	4
27326	.byte	0
27327	.byte	0
27328	.byte	0
27329	.space	4
27330	.byte	6
27331	.byte	69
27332	.byte	58
27333	.byte	-92
27334	.byte	-109
27335	.byte	122
27336	.byte	80
27337	.byte	8
27338	.byte	1
27339	.byte	32
27340	.short	256
27341	.byte	2
27342	.byte	2
27343	.short	2138
27344	.short	1497
27345	.byte	2
27346	.byte	0
27347	.byte	40
27348	.byte	32
27349	.byte	3
27350	.byte	1
27351	.byte	1
27352	.byte	0
27353	.byte	0
27354	.byte	0
27355	.space	4
27356	.byte	6
27357	.byte	69
27358	.byte	-34
27359	.byte	-108
27360	.byte	-126
27361	.byte	118
27362	.byte	86
27363	.byte	8
27364	.byte	1
27365	.byte	16
27366	.short	256
27367	.byte	2
27368	.byte	2
27369	.short	2062
27370	.short	473
27371	.byte	1
27372	.byte	0
27373	.byte	40
27374	.byte	32
27375	.byte	3
27376	.byte	1
27377	.byte	1
27378	.byte	0
27379	.byte	0
27380	.byte	0
27381	.space	4
27382	.byte	6
27383	.byte	69
27384	.byte	-34
27385	.byte	-108
27386	.byte	-109
27387	.byte	118
27388	.byte	-41
27389	.byte	8
27390	.byte	1
27391	.byte	32
27392	.short	256
27393	.byte	2
27394	.byte	2
27395	.short	1058
27396	.short	1497
27397	.byte	2
27398	.byte	66
27399	.byte	40
27400	.byte	32
27401	.byte	3
27402	.byte	1
27403	.byte	1
27404	.byte	0
27405	.byte	0
27406	.byte	0
27407	.space	4
27408	.byte	5
27409	.byte	-20
27410	.byte	-41
27411	.byte	-108
27412	.byte	126
27413	.byte	100
27414	.byte	68
27415	.byte	0
27416	.byte	1
27417	.byte	16
27418	.short	128
27419	.byte	2
27420	.byte	2
27421	.short	2048
27422	.short	473
27423	.byte	2
27424	.byte	49
27425	.byte	60
27426	.byte	36
27427	.byte	3
27428	.byte	0
27429	.byte	3
27430	.byte	0
27431	.byte	0
27432	.byte	0
27433	.space	4
27434	.byte	6
27435	.byte	-20
27436	.byte	-34
27437	.byte	-43
27438	.byte	126
27439	.byte	104
27440	.byte	68
27441	.byte	0
27442	.byte	2
27443	.byte	16
27444	.short	128
27445	.byte	2
27446	.byte	2
27447	.short	2048
27448	.short	505
27449	.byte	2
27450	.byte	49
27451	.byte	60
27452	.byte	36
27453	.byte	3
27454	.byte	0
27455	.byte	3
27456	.byte	0
27457	.byte	0
27458	.byte	0
27459	.space	4
27460	.byte	6
27461	.byte	-20
27462	.byte	-41
27463	.byte	-108
27464	.byte	122
27465	.byte	84
27466	.byte	67
27467	.byte	0
27468	.byte	1
27469	.byte	16
27470	.short	128
27471	.byte	2
27472	.byte	2
27473	.short	2076
27474	.short	409
27475	.byte	2
27476	.byte	0
27477	.byte	40
27478	.byte	36
27479	.byte	3
27480	.byte	1
27481	.byte	3
27482	.byte	0
27483	.byte	0
27484	.byte	0
27485	.space	4
27486	.byte	6
27487	.byte	-20
27488	.byte	-34
27489	.byte	-43
27490	.byte	122
27491	.byte	88
27492	.byte	67
27493	.byte	0
27494	.byte	2
27495	.byte	16
27496	.short	128
27497	.byte	2
27498	.byte	2
27499	.short	2076
27500	.short	441
27501	.byte	2
27502	.byte	0
27503	.byte	40
27504	.byte	36
27505	.byte	3
27506	.byte	1
27507	.byte	3
27508	.byte	0
27509	.byte	0
27510	.byte	0
27511	.space	4
27512	.byte	6
27513	.byte	-20
27514	.byte	-43
27515	.byte	-108
27516	.byte	118
27517	.byte	84
27518	.byte	67
27519	.byte	0
27520	.byte	1
27521	.byte	16
27522	.short	128
27523	.byte	2
27524	.byte	2
27525	.short	1038
27526	.short	281
27527	.byte	2
27528	.byte	0
27529	.byte	24
27530	.byte	36
27531	.byte	3
27532	.byte	1
27533	.byte	3
27534	.byte	0
27535	.byte	0
27536	.byte	0
27537	.space	4
27538	.byte	6
27539	.byte	-20
27540	.byte	-41
27541	.byte	20
27542	.byte	118
27543	.byte	84
27544	.byte	-62
27545	.byte	0
27546	.byte	1
27547	.byte	16
27548	.short	128
27549	.byte	2
27550	.byte	2
27551	.short	2076
27552	.short	1169
27553	.byte	2
27554	.byte	0
27555	.byte	24
27556	.byte	40
27557	.byte	3
27558	.byte	1
27559	.byte	3
27560	.byte	0
27561	.byte	0
27562	.byte	0
27563	.space	4
27564	.byte	6
27565	.byte	-20
27566	.byte	-34
27567	.byte	-108
27568	.byte	-61
27569	.byte	-92
27570	.byte	-54
27571	.byte	0
27572	.byte	1
27573	.byte	32
27574	.short	792
27575	.byte	2
27576	.byte	1
27577	.short	688
27578	.short	1217
27579	.byte	11
27580	.byte	50
27581	.byte	40
27582	.byte	32
27583	.byte	3
27584	.byte	1
27585	.byte	1
27586	.byte	0
27587	.byte	1
27588	.byte	0
27589	.space	4
27590	.section	.data.NandOptPara,"aw",%progbits
27591	.set	.LANCHOR152,. + 0
27592	.type	NandOptPara, %object
27593	.size	NandOptPara, 128
27594NandOptPara:
27595	.byte	1
27596	.byte	0
27597	.byte	49
27598	.byte	63
27599	.byte	0
27600	.byte	49
27601	.byte	-128
27602	.byte	21
27603	.byte	0
27604	.byte	50
27605	.byte	17
27606	.byte	-128
27607	.byte	112
27608	.byte	120
27609	.byte	120
27610	.byte	3
27611	.byte	1
27612	.byte	0
27613	.space	14
27614	.byte	2
27615	.byte	0
27616	.byte	49
27617	.byte	63
27618	.byte	0
27619	.byte	49
27620	.byte	-128
27621	.byte	21
27622	.byte	0
27623	.byte	0
27624	.byte	17
27625	.byte	-127
27626	.byte	112
27627	.byte	-15
27628	.byte	-14
27629	.byte	0
27630	.byte	0
27631	.byte	0
27632	.space	14
27633	.byte	3
27634	.byte	0
27635	.byte	49
27636	.byte	63
27637	.byte	0
27638	.byte	49
27639	.byte	-128
27640	.byte	21
27641	.byte	96
27642	.byte	96
27643	.byte	17
27644	.byte	-127
27645	.byte	112
27646	.byte	-15
27647	.byte	-14
27648	.byte	0
27649	.byte	0
27650	.byte	0
27651	.space	14
27652	.byte	4
27653	.byte	0
27654	.byte	49
27655	.byte	63
27656	.byte	0
27657	.byte	49
27658	.byte	-128
27659	.byte	21
27660	.byte	96
27661	.byte	96
27662	.byte	17
27663	.byte	-127
27664	.byte	112
27665	.byte	112
27666	.byte	112
27667	.byte	0
27668	.byte	0
27669	.byte	0
27670	.space	14
27671	.section	.data.SamsungRefValue,"aw",%progbits
27672	.set	.LANCHOR14,. + 0
27673	.type	SamsungRefValue, %object
27674	.size	SamsungRefValue, 64
27675SamsungRefValue:
27676	.byte	-89
27677	.byte	-92
27678	.byte	-91
27679	.byte	-90
27680	.byte	0
27681	.byte	0
27682	.byte	0
27683	.byte	0
27684	.byte	5
27685	.byte	10
27686	.byte	0
27687	.byte	0
27688	.byte	40
27689	.byte	0
27690	.byte	-20
27691	.byte	-40
27692	.byte	-19
27693	.byte	-11
27694	.byte	-19
27695	.byte	-26
27696	.byte	10
27697	.byte	15
27698	.byte	5
27699	.byte	0
27700	.byte	15
27701	.byte	10
27702	.byte	-5
27703	.byte	-20
27704	.byte	-24
27705	.byte	-17
27706	.byte	-24
27707	.byte	-36
27708	.byte	-15
27709	.byte	-5
27710	.byte	-2
27711	.byte	-16
27712	.byte	10
27713	.byte	0
27714	.byte	-5
27715	.byte	-20
27716	.byte	-48
27717	.byte	-30
27718	.byte	-48
27719	.byte	-62
27720	.byte	20
27721	.byte	15
27722	.byte	-5
27723	.byte	-20
27724	.byte	-24
27725	.byte	-5
27726	.byte	-24
27727	.byte	-36
27728	.byte	30
27729	.byte	20
27730	.byte	-5
27731	.byte	-20
27732	.byte	-5
27733	.byte	-1
27734	.byte	-5
27735	.byte	-8
27736	.byte	7
27737	.byte	12
27738	.byte	2
27739	.byte	0
27740	.section	.data.Toshiba15RefValue,"aw",%progbits
27741	.set	.LANCHOR11,. + 0
27742	.type	Toshiba15RefValue, %object
27743	.size	Toshiba15RefValue, 95
27744Toshiba15RefValue:
27745	.byte	4
27746	.byte	5
27747	.byte	6
27748	.byte	7
27749	.byte	13
27750	.byte	0
27751	.byte	0
27752	.byte	0
27753	.byte	0
27754	.byte	0
27755	.byte	0
27756	.byte	0
27757	.byte	0
27758	.byte	0
27759	.byte	0
27760	.byte	2
27761	.byte	4
27762	.byte	2
27763	.byte	0
27764	.byte	0
27765	.byte	8
27766	.byte	8
27767	.byte	0
27768	.byte	0
27769	.byte	0
27770	.byte	124
27771	.byte	0
27772	.byte	124
27773	.byte	124
27774	.byte	0
27775	.byte	122
27776	.byte	0
27777	.byte	122
27778	.byte	122
27779	.byte	0
27780	.byte	11
27781	.byte	126
27782	.byte	118
27783	.byte	116
27784	.byte	0
27785	.byte	120
27786	.byte	2
27787	.byte	120
27788	.byte	122
27789	.byte	0
27790	.byte	126
27791	.byte	4
27792	.byte	126
27793	.byte	122
27794	.byte	0
27795	.byte	16
27796	.byte	118
27797	.byte	114
27798	.byte	112
27799	.byte	0
27800	.byte	118
27801	.byte	4
27802	.byte	118
27803	.byte	120
27804	.byte	0
27805	.byte	4
27806	.byte	4
27807	.byte	4
27808	.byte	118
27809	.byte	0
27810	.byte	2
27811	.byte	0
27812	.byte	126
27813	.byte	124
27814	.byte	0
27815	.byte	6
27816	.byte	10
27817	.byte	6
27818	.byte	2
27819	.byte	0
27820	.byte	116
27821	.byte	124
27822	.byte	116
27823	.byte	118
27824	.byte	0
27825	.byte	4
27826	.byte	4
27827	.byte	124
27828	.byte	126
27829	.byte	0
27830	.byte	0
27831	.byte	124
27832	.byte	120
27833	.byte	120
27834	.byte	0
27835	.byte	124
27836	.byte	118
27837	.byte	116
27838	.byte	114
27839	.byte	0
27840	.section	.data.ToshibaA19RefValue,"aw",%progbits
27841	.set	.LANCHOR9,. + 0
27842	.type	ToshibaA19RefValue, %object
27843	.size	ToshibaA19RefValue, 45
27844ToshibaA19RefValue:
27845	.byte	4
27846	.byte	5
27847	.byte	6
27848	.byte	7
27849	.byte	13
27850	.byte	0
27851	.byte	0
27852	.byte	0
27853	.byte	0
27854	.byte	0
27855	.byte	4
27856	.byte	4
27857	.byte	124
27858	.byte	126
27859	.byte	0
27860	.byte	0
27861	.byte	124
27862	.byte	120
27863	.byte	120
27864	.byte	0
27865	.byte	124
27866	.byte	118
27867	.byte	116
27868	.byte	114
27869	.byte	0
27870	.byte	8
27871	.byte	8
27872	.byte	0
27873	.byte	0
27874	.byte	0
27875	.byte	11
27876	.byte	126
27877	.byte	118
27878	.byte	116
27879	.byte	0
27880	.byte	16
27881	.byte	118
27882	.byte	114
27883	.byte	112
27884	.byte	0
27885	.byte	2
27886	.byte	0
27887	.byte	126
27888	.byte	124
27889	.byte	0
27890	.section	.data.ToshibaRefValue,"aw",%progbits
27891	.set	.LANCHOR12,. + 0
27892	.type	ToshibaRefValue, %object
27893	.size	ToshibaRefValue, 8
27894ToshibaRefValue:
27895	.byte	0
27896	.byte	4
27897	.byte	124
27898	.byte	120
27899	.byte	116
27900	.byte	8
27901	.byte	12
27902	.byte	112
27903	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits
27904	.align	1
27905	.set	.LANCHOR245,. + 0
27906	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
27907	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
27908ftl_gc_temp_block_bops_scan_page_addr:
27909	.short	-1
27910	.section	.data.gFtlInitStatus,"aw",%progbits
27911	.align	2
27912	.set	.LANCHOR247,. + 0
27913	.type	gFtlInitStatus, %object
27914	.size	gFtlInitStatus, 4
27915gFtlInitStatus:
27916	.word	-1
27917	.section	.data.gNandParaInfo,"aw",%progbits
27918	.align	1
27919	.set	.LANCHOR31,. + 0
27920	.type	gNandParaInfo, %object
27921	.size	gNandParaInfo, 32
27922gNandParaInfo:
27923	.byte	0
27924	.byte	0
27925	.space	5
27926	.byte	0
27927	.byte	1
27928	.byte	8
27929	.short	128
27930	.byte	2
27931	.byte	1
27932	.short	2048
27933	.short	0
27934	.byte	1
27935	.byte	0
27936	.byte	24
27937	.byte	32
27938	.byte	1
27939	.byte	0
27940	.byte	1
27941	.byte	0
27942	.byte	0
27943	.byte	0
27944	.space	4
27945	.section	.data.gSlcNandParaInfo,"aw",%progbits
27946	.align	1
27947	.set	.LANCHOR209,. + 0
27948	.type	gSlcNandParaInfo, %object
27949	.size	gSlcNandParaInfo, 32
27950gSlcNandParaInfo:
27951	.byte	2
27952	.byte	-104
27953	.byte	-15
27954	.byte	0
27955	.byte	0
27956	.byte	0
27957	.byte	0
27958	.byte	1
27959	.byte	1
27960	.byte	4
27961	.short	64
27962	.byte	1
27963	.byte	1
27964	.short	1024
27965	.short	256
27966	.byte	0
27967	.byte	0
27968	.byte	16
27969	.byte	40
27970	.byte	1
27971	.byte	0
27972	.byte	1
27973	.byte	0
27974	.byte	0
27975	.byte	0
27976	.space	4
27977	.section	.data.power_up_flag,"aw",%progbits
27978	.align	2
27979	.type	power_up_flag, %object
27980	.size	power_up_flag, 4
27981power_up_flag:
27982	.word	1
27983	.section	.data.random_seed,"aw",%progbits
27984	.align	1
27985	.set	.LANCHOR5,. + 0
27986	.type	random_seed, %object
27987	.size	random_seed, 256
27988random_seed:
27989	.short	22378
27990	.short	1512
27991	.short	25245
27992	.short	17827
27993	.short	25756
27994	.short	19440
27995	.short	9026
27996	.short	10030
27997	.short	29528
27998	.short	20467
27999	.short	29676
28000	.short	24432
28001	.short	31328
28002	.short	6872
28003	.short	13426
28004	.short	13842
28005	.short	8783
28006	.short	1108
28007	.short	782
28008	.short	28837
28009	.short	30729
28010	.short	9505
28011	.short	18676
28012	.short	23085
28013	.short	18730
28014	.short	1085
28015	.short	32609
28016	.short	14697
28017	.short	20858
28018	.short	15170
28019	.short	30365
28020	.short	1607
28021	.short	32298
28022	.short	4995
28023	.short	18905
28024	.short	1976
28025	.short	9592
28026	.short	20204
28027	.short	17443
28028	.short	13615
28029	.short	23330
28030	.short	29369
28031	.short	13947
28032	.short	9398
28033	.short	32398
28034	.short	8984
28035	.short	27600
28036	.short	21785
28037	.short	6019
28038	.short	6311
28039	.short	31598
28040	.short	30210
28041	.short	19327
28042	.short	13896
28043	.short	11347
28044	.short	27545
28045	.short	3107
28046	.short	26575
28047	.short	32270
28048	.short	19852
28049	.short	20601
28050	.short	8349
28051	.short	9290
28052	.short	29819
28053	.short	13579
28054	.short	3661
28055	.short	28676
28056	.short	27331
28057	.short	32574
28058	.short	8693
28059	.short	31253
28060	.short	9081
28061	.short	5399
28062	.short	6842
28063	.short	20087
28064	.short	5537
28065	.short	1274
28066	.short	11617
28067	.short	9530
28068	.short	4866
28069	.short	8035
28070	.short	23219
28071	.short	1178
28072	.short	23272
28073	.short	7383
28074	.short	18944
28075	.short	12488
28076	.short	12871
28077	.short	29340
28078	.short	20532
28079	.short	11022
28080	.short	22514
28081	.short	228
28082	.short	22363
28083	.short	24978
28084	.short	14584
28085	.short	12138
28086	.short	3092
28087	.short	17916
28088	.short	16863
28089	.short	14554
28090	.short	31457
28091	.short	29474
28092	.short	25311
28093	.short	24121
28094	.short	3684
28095	.short	28037
28096	.short	22865
28097	.short	22839
28098	.short	25217
28099	.short	13217
28100	.short	27186
28101	.short	14938
28102	.short	11180
28103	.short	29754
28104	.short	24180
28105	.short	15150
28106	.short	32455
28107	.short	20434
28108	.short	23848
28109	.short	29983
28110	.short	16120
28111	.short	14769
28112	.short	20041
28113	.short	29803
28114	.short	28406
28115	.short	17598
28116	.short	28087
28117	.section	.data.refValueDefault,"aw",%progbits
28118	.set	.LANCHOR204,. + 0
28119	.type	refValueDefault, %object
28120	.size	refValueDefault, 28
28121refValueDefault:
28122	.byte	0
28123	.byte	0
28124	.byte	0
28125	.byte	0
28126	.byte	0
28127	.byte	6
28128	.byte	10
28129	.byte	6
28130	.byte	0
28131	.byte	-3
28132	.byte	-7
28133	.byte	-8
28134	.byte	0
28135	.byte	-6
28136	.byte	-13
28137	.byte	-15
28138	.byte	0
28139	.byte	-11
28140	.byte	-20
28141	.byte	-23
28142	.byte	0
28143	.byte	0
28144	.byte	-26
28145	.byte	-30
28146	.byte	0
28147	.byte	0
28148	.byte	-32
28149	.byte	-37
28150	.section	.rodata.FlashDdrTunningRead.str1.1,"aMS",%progbits,1
28151.LC9:
28152	.ascii	"sdr read ok %x ecc=%d\012\000"
28153.LC10:
28154	.ascii	"sync para %d\012\000"
28155.LC11:
28156	.ascii	"TOG mode Read error %x %x\012\000"
28157	.section	.rodata.FlashEraseSLc2KBlocks.str1.1,"aMS",%progbits,1
28158.LC1:
28159	.ascii	"FlashEraseBlocks pageAddr error %x\012\000"
28160	.section	.rodata.FlashInit.str1.1,"aMS",%progbits,1
28161.LC24:
28162	.ascii	"No.%d FLASH ID:%x %x %x %x %x %x\012\000"
28163.LC25:
28164	.ascii	"FlashLoadPhyInfo fail %x!!\012\000"
28165	.section	.rodata.FlashProgSlc2KPages.str1.1,"aMS",%progbits,1
28166.LC30:
28167	.ascii	"prog error: = %x\012\000"
28168.LC31:
28169	.ascii	"prog read error: = %x\012\000"
28170.LC32:
28171	.ascii	"prog read REFRESH: = %x\012\000"
28172.LC33:
28173	.ascii	"prog read s error: = %x %x %x\012\000"
28174.LC34:
28175	.ascii	"prog read d error: = %x %x %x\012\000"
28176	.section	.rodata.FlashReadFacBbtData.str1.1,"aMS",%progbits,1
28177.LC59:
28178	.ascii	"BBT:\000"
28179	.section	.rodata.FlashReadIdbDataRaw.str1.1,"aMS",%progbits,1
28180.LC15:
28181	.ascii	"ECC:%d\012\000"
28182	.section	.rodata.FlashReadPage.str1.1,"aMS",%progbits,1
28183.LC12:
28184	.ascii	"read retry status %x %x %x\012\000"
28185	.section	.rodata.FlashReadPages.str1.1,"aMS",%progbits,1
28186.LC29:
28187	.ascii	"ReadRetry pageadd=%x ecc=%x err=%x\012\000"
28188	.section	.rodata.FlashReadSlc2KPages.str1.1,"aMS",%progbits,1
28189.LC26:
28190	.ascii	"Read pageadd=%x  ecc=%x err=%x\012\000"
28191.LC27:
28192	.ascii	"data:\000"
28193.LC28:
28194	.ascii	"spare:\000"
28195	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1
28196.LC2:
28197	.ascii	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
28198	.ascii	"\000"
28199	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1
28200.LC35:
28201	.ascii	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
28202.LC36:
28203	.ascii	"FtlBbmTblFlush error:%x\012\000"
28204.LC37:
28205	.ascii	"FtlBbmTblFlush error = %x error count = %d\012\000"
28206	.section	.rodata.FtlCacheWriteBack.str1.1,"aMS",%progbits,1
28207.LC76:
28208	.ascii	"Ftlwrite decrement_vpc_count %x = %d\012\000"
28209	.section	.rodata.FtlCheckVpc.str1.1,"aMS",%progbits,1
28210.LC63:
28211	.ascii	"FtlCheckVpc2 %x = %x  %x\012\000"
28212.LC64:
28213	.ascii	"free blk vpc error %x = %x  %x\012\000"
28214.LC65:
28215	.ascii	"error_flag %x\012\000"
28216	.section	.rodata.FtlDumpBlockInfo.str1.1,"aMS",%progbits,1
28217.LC48:
28218	.ascii	"...%s enter...\012\000"
28219.LC49:
28220	.ascii	"superBlkID = %x vpc=%x\012\000"
28221.LC50:
28222	.ascii	"flashmode = %x pagenum = %x %x\012\000"
28223.LC51:
28224	.ascii	"id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
28225	.ascii	"\000"
28226	.section	.rodata.FtlDumpSysBlock.str1.1,"aMS",%progbits,1
28227.LC84:
28228	.ascii	"id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
28229	.ascii	"\000"
28230.LC85:
28231	.ascii	":\000"
28232	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1
28233.LC3:
28234	.ascii	"FtlFreeSysBlkQueueOut free count = %d\012\000"
28235.LC4:
28236	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
28237	.ascii	"\000"
28238	.section	.rodata.FtlGcFreeTempBlock.str1.1,"aMS",%progbits,1
28239.LC74:
28240	.ascii	"GC des block %x done\012\000"
28241	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1
28242.LC72:
28243	.ascii	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
28244.LC73:
28245	.ascii	"FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
28246	.section	.rodata.FtlInit.str1.1,"aMS",%progbits,1
28247.LC77:
28248	.ascii	"FTL version: 5.0.63 20210318\000"
28249.LC78:
28250	.ascii	"...%s: no bad block mapping table, format device\012"
28251	.ascii	"\000"
28252.LC79:
28253	.ascii	"...%s FtlSysBlkInit error ,format device!\012\000"
28254	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1
28255.LC45:
28256	.ascii	"no ect\000"
28257	.section	.rodata.FtlLoadSysInfo.str1.1,"aMS",%progbits,1
28258.LC47:
28259	.ascii	"id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
28260	.ascii	"\000"
28261	.section	.rodata.FtlLowFormat.str1.1,"aMS",%progbits,1
28262.LC75:
28263	.ascii	"too many bad block  = %d %d\012\000"
28264	.section	.rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1
28265.LC42:
28266	.ascii	"FtlMapWritePage error = %x\012\000"
28267.LC43:
28268	.ascii	"FtlMapWritePage error = %x error count = %d\012\000"
28269	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1
28270.LC69:
28271	.ascii	"RSB refresh addr %x\012\000"
28272.LC70:
28273	.ascii	"spuer block %x vpn is 0\012 \000"
28274.LC71:
28275	.ascii	"g_recovery_ppa %x ver %x\012 \000"
28276	.section	.rodata.FtlScanAllBlock.str1.1,"aMS",%progbits,1
28277.LC52:
28278	.ascii	"blk = %x vpc=%x mode = %x\012\000"
28279.LC53:
28280	.ascii	"mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
28281	.ascii	"%x\012\000"
28282.LC54:
28283	.ascii	"slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
28284	.ascii	"%x\012\000"
28285	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1
28286.LC44:
28287	.ascii	"FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
28288	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1
28289.LC40:
28290	.ascii	"FtlVpcTblFlush error = %x error count = %d\012\000"
28291	.section	.rodata.FtlWrite.str1.1,"aMS",%progbits,1
28292.LC83:
28293	.ascii	"FtlWrite: lpa error:%x %x\012\000"
28294	.section	.rodata.Ftl_load_ext_data.str1.1,"aMS",%progbits,1
28295.LC46:
28296	.ascii	"slc mode\000"
28297	.section	.rodata.Ftlscanalldata.str1.1,"aMS",%progbits,1
28298.LC66:
28299	.ascii	"Ftlscanalldata = %x\012\000"
28300.LC67:
28301	.ascii	"scan lpa = %x ppa= %x\012\000"
28302.LC68:
28303	.ascii	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
28304	.ascii	"\000"
28305	.section	.rodata.HynixGetReadRetryDefault.str1.1,"aMS",%progbits,1
28306.LC22:
28307	.ascii	"otp error! %d\000"
28308.LC23:
28309	.ascii	"rr\000"
28310	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1
28311.LC5:
28312	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
28313.LC6:
28314	.ascii	"!!!!! FTL sys Error !!!!!\000"
28315.LC7:
28316	.ascii	"%s\012\000"
28317	.section	.rodata.MicronReadRetrial.str1.1,"aMS",%progbits,1
28318.LC13:
28319	.ascii	"micron RR %d row=%x,count %d,status=%d\012\000"
28320	.section	.rodata.__func__.10661,"a",%progbits
28321	.set	.LANCHOR255,. + 0
28322	.type	__func__.10661, %object
28323	.size	__func__.10661, 8
28324__func__.10661:
28325	.ascii	"FtlInit\000"
28326	.section	.rodata.__func__.10765,"a",%progbits
28327	.set	.LANCHOR258,. + 0
28328	.type	__func__.10765, %object
28329	.size	__func__.10765, 9
28330__func__.10765:
28331	.ascii	"FtlWrite\000"
28332	.section	.rodata.__func__.10855,"a",%progbits
28333	.set	.LANCHOR127,. + 0
28334	.type	__func__.10855, %object
28335	.size	__func__.10855, 14
28336__func__.10855:
28337	.ascii	"FtlBbt2Bitmap\000"
28338	.section	.rodata.__func__.10901,"a",%progbits
28339	.set	.LANCHOR220,. + 0
28340	.type	__func__.10901, %object
28341	.size	__func__.10901, 11
28342__func__.10901:
28343	.ascii	"FtlLoadBbt\000"
28344	.section	.rodata.__func__.10994,"a",%progbits
28345	.set	.LANCHOR91,. + 0
28346	.type	__func__.10994, %object
28347	.size	__func__.10994, 17
28348__func__.10994:
28349	.ascii	"INSERT_FREE_LIST\000"
28350	.section	.rodata.__func__.10998,"a",%progbits
28351	.set	.LANCHOR88,. + 0
28352	.type	__func__.10998, %object
28353	.size	__func__.10998, 17
28354__func__.10998:
28355	.ascii	"INSERT_DATA_LIST\000"
28356	.section	.rodata.__func__.11036,"a",%progbits
28357	.set	.LANCHOR92,. + 0
28358	.type	__func__.11036, %object
28359	.size	__func__.11036, 17
28360__func__.11036:
28361	.ascii	"List_remove_node\000"
28362	.section	.rodata.__func__.11066,"a",%progbits
28363	.set	.LANCHOR96,. + 0
28364	.type	__func__.11066, %object
28365	.size	__func__.11066, 22
28366__func__.11066:
28367	.ascii	"List_update_data_list\000"
28368	.section	.rodata.__func__.11073,"a",%progbits
28369	.set	.LANCHOR237,. + 0
28370	.type	__func__.11073, %object
28371	.size	__func__.11073, 20
28372__func__.11073:
28373	.ascii	"ftl_load_l2p_region\000"
28374	.section	.rodata.__func__.11104,"a",%progbits
28375	.set	.LANCHOR97,. + 0
28376	.type	__func__.11104, %object
28377	.size	__func__.11104, 26
28378__func__.11104:
28379	.ascii	"ftl_map_blk_alloc_new_blk\000"
28380	.section	.rodata.__func__.11114,"a",%progbits
28381	.set	.LANCHOR221,. + 0
28382	.type	__func__.11114, %object
28383	.size	__func__.11114, 15
28384__func__.11114:
28385	.ascii	"ftl_map_blk_gc\000"
28386	.section	.rodata.__func__.11127,"a",%progbits
28387	.set	.LANCHOR222,. + 0
28388	.type	__func__.11127, %object
28389	.size	__func__.11127, 31
28390__func__.11127:
28391	.ascii	"Ftl_write_map_blk_to_last_page\000"
28392	.section	.rodata.__func__.11140,"a",%progbits
28393	.set	.LANCHOR223,. + 0
28394	.type	__func__.11140, %object
28395	.size	__func__.11140, 16
28396__func__.11140:
28397	.ascii	"FtlMapWritePage\000"
28398	.section	.rodata.__func__.11160,"a",%progbits
28399	.set	.LANCHOR100,. + 0
28400	.type	__func__.11160, %object
28401	.size	__func__.11160, 22
28402__func__.11160:
28403	.ascii	"select_l2p_ram_region\000"
28404	.section	.rodata.__func__.11176,"a",%progbits
28405	.set	.LANCHOR236,. + 0
28406	.type	__func__.11176, %object
28407	.size	__func__.11176, 9
28408__func__.11176:
28409	.ascii	"log2phys\000"
28410	.section	.rodata.__func__.11238,"a",%progbits
28411	.set	.LANCHOR219,. + 0
28412	.type	__func__.11238, %object
28413	.size	__func__.11238, 15
28414__func__.11238:
28415	.ascii	"FtlVpcTblFlush\000"
28416	.section	.rodata.__func__.11257,"a",%progbits
28417	.set	.LANCHOR229,. + 0
28418	.type	__func__.11257, %object
28419	.size	__func__.11257, 14
28420__func__.11257:
28421	.ascii	"FtlScanSysBlk\000"
28422	.section	.rodata.__func__.11312,"a",%progbits
28423	.set	.LANCHOR230,. + 0
28424	.type	__func__.11312, %object
28425	.size	__func__.11312, 15
28426__func__.11312:
28427	.ascii	"FtlLoadSysInfo\000"
28428	.section	.rodata.__func__.11323,"a",%progbits
28429	.set	.LANCHOR238,. + 0
28430	.type	__func__.11323, %object
28431	.size	__func__.11323, 12
28432__func__.11323:
28433	.ascii	"FtlCheckVpc\000"
28434	.section	.rodata.__func__.11355,"a",%progbits
28435	.set	.LANCHOR233,. + 0
28436	.type	__func__.11355, %object
28437	.size	__func__.11355, 17
28438__func__.11355:
28439	.ascii	"FtlDumpBlockInfo\000"
28440	.section	.rodata.__func__.11374,"a",%progbits
28441	.set	.LANCHOR234,. + 0
28442	.type	__func__.11374, %object
28443	.size	__func__.11374, 16
28444__func__.11374:
28445	.ascii	"FtlScanAllBlock\000"
28446	.section	.rodata.__func__.11479,"a",%progbits
28447	.set	.LANCHOR239,. + 0
28448	.type	__func__.11479, %object
28449	.size	__func__.11479, 16
28450__func__.11479:
28451	.ascii	"FtlReUsePrevPpa\000"
28452	.section	.rodata.__func__.11512,"a",%progbits
28453	.set	.LANCHOR240,. + 0
28454	.type	__func__.11512, %object
28455	.size	__func__.11512, 22
28456__func__.11512:
28457	.ascii	"FtlRecoverySuperblock\000"
28458	.section	.rodata.__func__.11566,"a",%progbits
28459	.set	.LANCHOR103,. + 0
28460	.type	__func__.11566, %object
28461	.size	__func__.11566, 16
28462__func__.11566:
28463	.ascii	"make_superblock\000"
28464	.section	.rodata.__func__.11586,"a",%progbits
28465	.set	.LANCHOR143,. + 0
28466	.type	__func__.11586, %object
28467	.size	__func__.11586, 18
28468__func__.11586:
28469	.ascii	"SupperBlkListInit\000"
28470	.section	.rodata.__func__.11632,"a",%progbits
28471	.set	.LANCHOR235,. + 0
28472	.type	__func__.11632, %object
28473	.size	__func__.11632, 17
28474__func__.11632:
28475	.ascii	"ftl_scan_all_ppa\000"
28476	.section	.rodata.__func__.11677,"a",%progbits
28477	.set	.LANCHOR212,. + 0
28478	.type	__func__.11677, %object
28479	.size	__func__.11677, 25
28480__func__.11677:
28481	.ascii	"allocate_data_superblock\000"
28482	.section	.rodata.__func__.11691,"a",%progbits
28483	.set	.LANCHOR228,. + 0
28484	.type	__func__.11691, %object
28485	.size	__func__.11691, 29
28486__func__.11691:
28487	.ascii	"allocate_new_data_superblock\000"
28488	.section	.rodata.__func__.11697,"a",%progbits
28489	.set	.LANCHOR217,. + 0
28490	.type	__func__.11697, %object
28491	.size	__func__.11697, 19
28492__func__.11697:
28493	.ascii	"get_new_active_ppa\000"
28494	.section	.rodata.__func__.11708,"a",%progbits
28495	.set	.LANCHOR215,. + 0
28496	.type	__func__.11708, %object
28497	.size	__func__.11708, 16
28498__func__.11708:
28499	.ascii	"update_vpc_list\000"
28500	.section	.rodata.__func__.11713,"a",%progbits
28501	.set	.LANCHOR216,. + 0
28502	.type	__func__.11713, %object
28503	.size	__func__.11713, 20
28504__func__.11713:
28505	.ascii	"decrement_vpc_count\000"
28506	.section	.rodata.__func__.11781,"a",%progbits
28507	.set	.LANCHOR246,. + 0
28508	.type	__func__.11781, %object
28509	.size	__func__.11781, 19
28510__func__.11781:
28511	.ascii	"FtlGcFreeTempBlock\000"
28512	.section	.rodata.__func__.11882,"a",%progbits
28513	.set	.LANCHOR251,. + 0
28514	.type	__func__.11882, %object
28515	.size	__func__.11882, 10
28516__func__.11882:
28517	.ascii	"ftl_do_gc\000"
28518	.section	.rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1
28519.LC38:
28520	.ascii	"decrement_vpc_count %x = %d\012\000"
28521.LC39:
28522	.ascii	"decrement_vpc_count %x = %d in free list\012\000"
28523	.section	.rodata.dump_map_info.str1.1,"aMS",%progbits,1
28524.LC86:
28525	.ascii	"phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
28526	.ascii	"\000"
28527.LC87:
28528	.ascii	"Mblk:\000"
28529.LC88:
28530	.ascii	"L2P:\000"
28531.LC89:
28532	.ascii	"L2PC:\000"
28533	.section	.rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",%progbits,1
28534.LC81:
28535	.ascii	"fix power lost blk = %x vpc=%x\012\000"
28536.LC82:
28537	.ascii	"erase power lost blk = %x vpc=%x\012\000"
28538	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1
28539.LC8:
28540	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
28541	.section	.rodata.ftl_map_blk_gc.str1.1,"aMS",%progbits,1
28542.LC41:
28543	.ascii	"page map lost: %x %x\012\000"
28544	.section	.rodata.ftl_scan_all_ppa.str1.1,"aMS",%progbits,1
28545.LC55:
28546	.ascii	"ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
28547.LC56:
28548	.ascii	"ftl_scan_all_ppa blk %x page %x flag: %x .........."
28549	.ascii	"..... is bad block\012\000"
28550.LC57:
28551	.ascii	"addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
28552	.ascii	"\000"
28553.LC58:
28554	.ascii	"%s finished\012\000"
28555	.section	.rodata.idb_write_data.str1.1,"aMS",%progbits,1
28556.LC16:
28557	.ascii	"1 write_idblock fix data %x %x %x\012\000"
28558.LC17:
28559	.ascii	"write_idblock fail! %x %x %x %x\012\000"
28560.LC18:
28561	.ascii	"write_idblock fail! %x\012\000"
28562	.section	.rodata.log2phys.str1.1,"aMS",%progbits,1
28563.LC60:
28564	.ascii	"region_id = %x phyAddr = %x\012\000"
28565.LC61:
28566	.ascii	"map_ppn:\000"
28567.LC62:
28568	.ascii	"load_l2p_region refresh = %x phyAddr = %x\012\000"
28569	.section	.rodata.rk_ftl_init.str1.1,"aMS",%progbits,1
28570.LC80:
28571	.ascii	"FtlInit %x\012\000"
28572	.section	.rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
28573.LC19:
28574	.ascii	"%s 0x%x:\000"
28575.LC20:
28576	.ascii	"%x \000"
28577.LC21:
28578	.ascii	"\000"
28579	.section	.rodata.samsung_14nm_mlc_rr,"a",%progbits
28580	.set	.LANCHOR148,. + 0
28581	.type	samsung_14nm_mlc_rr, %object
28582	.size	samsung_14nm_mlc_rr, 104
28583samsung_14nm_mlc_rr:
28584	.byte	0
28585	.byte	0
28586	.byte	0
28587	.byte	0
28588	.byte	-4
28589	.byte	3
28590	.byte	-4
28591	.byte	-6
28592	.byte	6
28593	.byte	0
28594	.byte	6
28595	.byte	-10
28596	.byte	-10
28597	.byte	4
28598	.byte	-10
28599	.byte	16
28600	.byte	12
28601	.byte	-4
28602	.byte	12
28603	.byte	8
28604	.byte	-16
28605	.byte	10
28606	.byte	-16
28607	.byte	24
28608	.byte	18
28609	.byte	-14
28610	.byte	18
28611	.byte	-4
28612	.byte	-22
28613	.byte	-16
28614	.byte	-22
28615	.byte	-8
28616	.byte	24
28617	.byte	-9
28618	.byte	24
28619	.byte	8
28620	.byte	-28
28621	.byte	-4
28622	.byte	-28
28623	.byte	16
28624	.byte	30
28625	.byte	10
28626	.byte	30
28627	.byte	10
28628	.byte	-34
28629	.byte	6
28630	.byte	-34
28631	.byte	0
28632	.byte	36
28633	.byte	-8
28634	.byte	36
28635	.byte	-8
28636	.byte	-40
28637	.byte	-2
28638	.byte	-40
28639	.byte	-20
28640	.byte	-46
28641	.byte	-4
28642	.byte	-46
28643	.byte	-30
28644	.byte	3
28645	.byte	0
28646	.byte	3
28647	.byte	-3
28648	.byte	-2
28649	.byte	-4
28650	.byte	-2
28651	.byte	-6
28652	.byte	-4
28653	.byte	-4
28654	.byte	-4
28655	.byte	-10
28656	.byte	-6
28657	.byte	-8
28658	.byte	-6
28659	.byte	-14
28660	.byte	-9
28661	.byte	-8
28662	.byte	-9
28663	.byte	-18
28664	.byte	-52
28665	.byte	22
28666	.byte	-52
28667	.byte	10
28668	.byte	42
28669	.byte	4
28670	.byte	42
28671	.byte	4
28672	.byte	48
28673	.byte	-9
28674	.byte	48
28675	.byte	4
28676	.byte	-58
28677	.byte	12
28678	.byte	-58
28679	.byte	0
28680	.byte	-64
28681	.byte	-24
28682	.byte	-64
28683	.byte	-6
28684	.byte	9
28685	.byte	18
28686	.byte	9
28687	.byte	8
28688	.section	.rodata.samsung_14nm_slc_rr,"a",%progbits
28689	.set	.LANCHOR147,. + 0
28690	.type	samsung_14nm_slc_rr, %object
28691	.size	samsung_14nm_slc_rr, 26
28692samsung_14nm_slc_rr:
28693	.byte	0
28694	.byte	10
28695	.byte	-10
28696	.byte	20
28697	.byte	-20
28698	.byte	30
28699	.byte	-30
28700	.byte	40
28701	.byte	-40
28702	.byte	50
28703	.byte	-50
28704	.byte	60
28705	.byte	-60
28706	.byte	-70
28707	.byte	-80
28708	.byte	-90
28709	.byte	-100
28710	.byte	-110
28711	.byte	-120
28712	.byte	-9
28713	.byte	70
28714	.byte	80
28715	.byte	90
28716	.byte	-125
28717	.byte	-115
28718	.byte	100
28719	.section	.rodata.samsung_read_retrial.str1.1,"aMS",%progbits,1
28720.LC14:
28721	.ascii	"samsung RR %d row=%x,count %d,status=%d\012\000"
28722	.hidden	free
28723