xref: /rk3399_rockchip-uboot/drivers/rkflash/rk_sftl_arm_v7.S (revision f05ce84792cbd2e5573a414010d421eb8fbb7689)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:    GPL-2.0
5 * date: 2018-11-29
6 */
7	.arch armv7-a
8	.eabi_attribute 20, 1
9	.eabi_attribute 21, 1
10	.eabi_attribute 23, 3
11	.eabi_attribute 24, 1
12	.eabi_attribute 25, 1
13	.eabi_attribute 26, 2
14	.eabi_attribute 30, 4
15	.eabi_attribute 34, 0
16	.eabi_attribute 18, 2
17	.file	"rk_sftl.c"
18	.global	__aeabi_uidiv
19	.section	.text.l2p_addr_tran.isra.0,"ax",%progbits
20	.align	1
21	.syntax unified
22	.thumb
23	.thumb_func
24	.fpu softvfp
25	.type	l2p_addr_tran.isra.0, %function
26l2p_addr_tran.isra.0:
27	@ args = 0, pretend = 0, frame = 0
28	@ frame_needed = 0, uses_anonymous_args = 0
29	push	{r3, r4, r5, r6, r7, r8, r10, lr}
30	lsrs	r7, r0, #10
31	ldr	r3, .L3
32	mov	r8, r1
33	mov	r6, r0
34	uxth	r0, r7
35	mov	r10, r2
36	uxth	r7, r7
37	ldrh	r4, [r3, #8]
38	ubfx	r6, r6, #0, #10
39	ldrh	r5, [r3, #10]
40	ldrh	r3, [r3, #14]
41	cmp	r3, #4
42	itt	eq
43	lsreq	r4, r4, #1
44	lsleq	r5, r5, #1
45	mov	r1, r4
46	it	eq
47	uxtheq	r5, r5
48	bl	__aeabi_uidiv
49	uxth	r0, r0
50	mls	r4, r0, r4, r7
51	mla	r4, r5, r4, r6
52	str	r4, [r8]
53	str	r0, [r10]
54	movs	r0, #0
55	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
56.L4:
57	.align	2
58.L3:
59	.word	.LANCHOR0
60	.size	l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0
61	.section	.text.ftl_set_blk_mode.part.6,"ax",%progbits
62	.align	1
63	.syntax unified
64	.thumb
65	.thumb_func
66	.fpu softvfp
67	.type	ftl_set_blk_mode.part.6, %function
68ftl_set_blk_mode.part.6:
69	@ args = 0, pretend = 0, frame = 0
70	@ frame_needed = 0, uses_anonymous_args = 0
71	@ link register save eliminated.
72	ldr	r3, .L6
73	lsrs	r1, r0, #5
74	and	r0, r0, #31
75	ldr	r2, [r3]
76	movs	r3, #1
77	lsl	r0, r3, r0
78	ldr	r3, [r2, r1, lsl #2]
79	orrs	r3, r3, r0
80	str	r3, [r2, r1, lsl #2]
81	bx	lr
82.L7:
83	.align	2
84.L6:
85	.word	.LANCHOR1
86	.size	ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6
87	.section	.text.Ftl_log2,"ax",%progbits
88	.align	1
89	.global	Ftl_log2
90	.syntax unified
91	.thumb
92	.thumb_func
93	.fpu softvfp
94	.type	Ftl_log2, %function
95Ftl_log2:
96	@ args = 0, pretend = 0, frame = 0
97	@ frame_needed = 0, uses_anonymous_args = 0
98	@ link register save eliminated.
99	movs	r1, #0
100	movs	r2, #1
101.L9:
102	cmp	r2, r0
103	uxth	r3, r1
104	add	r1, r1, #1
105	bls	.L10
106	subs	r0, r3, #1
107	uxth	r0, r0
108	bx	lr
109.L10:
110	lsls	r2, r2, #1
111	b	.L9
112	.size	Ftl_log2, .-Ftl_log2
113	.section	.text.FtlPrintInfo,"ax",%progbits
114	.align	1
115	.global	FtlPrintInfo
116	.syntax unified
117	.thumb
118	.thumb_func
119	.fpu softvfp
120	.type	FtlPrintInfo, %function
121FtlPrintInfo:
122	@ args = 0, pretend = 0, frame = 0
123	@ frame_needed = 0, uses_anonymous_args = 0
124	@ link register save eliminated.
125	bx	lr
126	.size	FtlPrintInfo, .-FtlPrintInfo
127	.section	.text.FtlSysBlkNumInit,"ax",%progbits
128	.align	1
129	.global	FtlSysBlkNumInit
130	.syntax unified
131	.thumb
132	.thumb_func
133	.fpu softvfp
134	.type	FtlSysBlkNumInit, %function
135FtlSysBlkNumInit:
136	@ args = 0, pretend = 0, frame = 0
137	@ frame_needed = 0, uses_anonymous_args = 0
138	@ link register save eliminated.
139	ldr	r3, .L13
140	cmp	r0, #24
141	it	cc
142	movcc	r0, #24
143	ldr	r2, .L13+4
144	str	r0, [r3]
145	ldr	r3, .L13+8
146	ldrh	r3, [r3]
147	muls	r3, r0, r3
148	str	r3, [r2]
149	ldr	r2, .L13+12
150	ldrh	r2, [r2]
151	subs	r0, r2, r0
152	ldr	r2, .L13+16
153	strh	r0, [r2]	@ movhi
154	movs	r0, #0
155	ldr	r2, .L13+20
156	ldr	r2, [r2]
157	subs	r3, r2, r3
158	ldr	r2, .L13+24
159	str	r3, [r2]
160	bx	lr
161.L14:
162	.align	2
163.L13:
164	.word	.LANCHOR2
165	.word	.LANCHOR4
166	.word	.LANCHOR3
167	.word	.LANCHOR6
168	.word	.LANCHOR5
169	.word	.LANCHOR8
170	.word	.LANCHOR7
171	.size	FtlSysBlkNumInit, .-FtlSysBlkNumInit
172	.global	__aeabi_idiv
173	.section	.text.FtlConstantsInit,"ax",%progbits
174	.align	1
175	.global	FtlConstantsInit
176	.syntax unified
177	.thumb
178	.thumb_func
179	.fpu softvfp
180	.type	FtlConstantsInit, %function
181FtlConstantsInit:
182	@ args = 0, pretend = 0, frame = 8
183	@ frame_needed = 0, uses_anonymous_args = 0
184	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
185	mov	r3, r0
186	ldrh	r4, [r0]
187	ldr	r2, .L25
188	ldrh	r5, [r0, #2]
189	ldrh	r0, [r0, #4]
190	strh	r4, [r2]	@ movhi
191	ldr	r2, .L25+4
192	ldrh	r1, [r3, #6]
193	ldrh	r7, [r3, #14]
194	strh	r5, [r2]	@ movhi
195	ldr	r2, .L25+8
196	ldr	r6, .L25+12
197	cmp	r7, #4
198	strh	r0, [r2]	@ movhi
199	ldr	r2, .L25+16
200	strh	r7, [r6]	@ movhi
201	ldr	r7, .L25+20
202	strh	r1, [r2]	@ movhi
203	itttt	eq
204	lsreq	r1, r1, #1
205	strheq	r1, [r2]	@ movhi
206	moveq	r1, #8
207	strheq	r1, [r6]	@ movhi
208	movs	r1, #0
209.L17:
210	strb	r1, [r1, r7]
211	adds	r1, r1, #1
212	cmp	r1, #32
213	bne	.L17
214	ldr	r1, .L25+24
215	cmp	r4, #1
216	mov	r7, #5
217	smulbb	r5, r5, r0
218	mov	ip, #0
219	str	r3, [sp, #4]
220	strh	r7, [r1]	@ movhi
221	it	eq
222	strheq	r4, [r1]	@ movhi
223	mov	r4, #640
224	ldr	r1, .L25+28
225	uxth	r5, r5
226	ldr	r7, .L25+32
227	strh	r4, [r1]	@ movhi
228	ldrh	r4, [r2]
229	ldr	r1, .L25+36
230	ldr	r2, .L25+40
231	strh	ip, [r7]	@ movhi
232	smulbb	r0, r0, r4
233	strh	r5, [r1]	@ movhi
234	ldr	r7, .L25+44
235	uxth	r0, r0
236	strh	r0, [r2]	@ movhi
237	bl	Ftl_log2
238	ldr	r3, [sp, #4]
239	ldr	r2, .L25+48
240	ldrh	fp, [r6]
241	ldrh	r8, [r3, #12]
242	strh	r0, [r2]	@ movhi
243	ldr	r2, .L25+52
244	mov	r0, fp
245	strh	r8, [r7]	@ movhi
246	smulbb	r1, r5, r8
247	ldr	r6, .L25+56
248	strh	r8, [r2]	@ movhi
249	ldr	r2, .L25+60
250	strh	r1, [r2]	@ movhi
251	bl	Ftl_log2
252	lsl	r2, fp, #9
253	ldr	r1, .L25+64
254	ldr	r3, [sp, #4]
255	mov	r10, r0
256	uxth	r2, r2
257	strh	r0, [r6]	@ movhi
258	mov	r0, #5120
259	strh	r2, [r1]	@ movhi
260	lsrs	r2, r2, #8
261	ldr	r1, .L25+68
262	strh	r2, [r1]	@ movhi
263	mul	r1, r8, fp
264	ldrh	r2, [r3, #20]
265	ldr	r3, .L25+72
266	strh	r2, [r3]	@ movhi
267	mul	r3, r4, r5
268	ldr	r2, .L25+76
269	lsls	r4, r4, #6
270	str	r3, [r2]
271	mul	r3, fp, r3
272	ldr	r2, .L25+80
273	mul	r3, r8, r3
274	ldr	r8, .L25+116
275	asrs	r3, r3, #11
276	str	r3, [r2]
277	bl	__aeabi_idiv
278	uxth	r0, r0
279	ldr	r2, .L25+84
280	mov	r1, r5
281	cmp	r0, #4
282	itet	ls
283	movls	r3, #4
284	strhhi	r0, [r8]	@ movhi
285	strhls	r3, [r8]	@ movhi
286	mov	r3, #640
287	asr	r3, r3, r10
288	add	r10, r10, #9
289	asr	r4, r4, r10
290	ldr	r10, .L25+120
291	adds	r3, r3, #2
292	ldrh	r0, [r8]
293	strh	r3, [r2]	@ movhi
294	ldr	r3, .L25+88
295	strh	r4, [r3]	@ movhi
296	uxth	r4, r4
297	mul	r3, r5, r4
298	adds	r4, r4, #8
299	str	r3, [r10]
300	bl	__aeabi_uidiv
301	uxtah	r0, r4, r0
302	ldr	r4, .L25+92
303	cmp	r5, #1
304	it	eq
305	addeq	r0, r0, #4
306	str	r0, [r4]
307	ldrh	r0, [r4]
308	bl	FtlSysBlkNumInit
309	ldr	r2, [r4]
310	movs	r0, #0
311	ldr	r3, .L25+96
312	str	r2, [r3]
313	ldr	r3, .L25+100
314	ldr	r2, [r3]
315	ldrh	r3, [r7]
316	lsls	r2, r2, #2
317	muls	r3, r2, r3
318	ldrh	r2, [r6]
319	adds	r2, r2, #9
320	lsrs	r3, r3, r2
321	ldr	r2, .L25+104
322	adds	r3, r3, #2
323	strh	r3, [r2]	@ movhi
324	movs	r2, #32
325	ldr	r3, .L25+108
326	strh	r2, [r3]	@ movhi
327	ldr	r3, .L25+112
328	str	r0, [r3]
329	ldrh	r3, [r8]
330	adds	r3, r3, #3
331	strh	r3, [r8]	@ movhi
332	ldr	r3, [r10]
333	adds	r3, r3, #3
334	str	r3, [r10]
335	add	sp, sp, #8
336	@ sp needed
337	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
338.L26:
339	.align	2
340.L25:
341	.word	.LANCHOR9
342	.word	.LANCHOR10
343	.word	.LANCHOR11
344	.word	.LANCHOR12
345	.word	.LANCHOR6
346	.word	.LANCHOR13
347	.word	.LANCHOR14
348	.word	.LANCHOR16
349	.word	.LANCHOR15
350	.word	.LANCHOR3
351	.word	.LANCHOR17
352	.word	.LANCHOR19
353	.word	.LANCHOR18
354	.word	.LANCHOR20
355	.word	.LANCHOR22
356	.word	.LANCHOR21
357	.word	.LANCHOR23
358	.word	.LANCHOR24
359	.word	.LANCHOR25
360	.word	.LANCHOR8
361	.word	.LANCHOR26
362	.word	.LANCHOR28
363	.word	.LANCHOR29
364	.word	.LANCHOR2
365	.word	.LANCHOR31
366	.word	.LANCHOR7
367	.word	.LANCHOR32
368	.word	.LANCHOR33
369	.word	.LANCHOR34
370	.word	.LANCHOR27
371	.word	.LANCHOR30
372	.size	FtlConstantsInit, .-FtlConstantsInit
373	.section	.text.IsBlkInVendorPart,"ax",%progbits
374	.align	1
375	.global	IsBlkInVendorPart
376	.syntax unified
377	.thumb
378	.thumb_func
379	.fpu softvfp
380	.type	IsBlkInVendorPart, %function
381IsBlkInVendorPart:
382	@ args = 0, pretend = 0, frame = 0
383	@ frame_needed = 0, uses_anonymous_args = 0
384	@ link register save eliminated.
385	ldr	r3, .L34
386	ldrh	r3, [r3]
387	cbz	r3, .L33
388	ldr	r3, .L34+4
389	ldr	r2, .L34+8
390	ldr	r3, [r3]
391	ldrh	r2, [r2]
392	add	r2, r3, r2, lsl #1
393.L29:
394	cmp	r3, r2
395	bne	.L30
396.L33:
397	movs	r0, #0
398	bx	lr
399.L30:
400	ldrh	r1, [r3], #2
401	cmp	r0, r1
402	bne	.L29
403	movs	r0, #1
404	bx	lr
405.L35:
406	.align	2
407.L34:
408	.word	.LANCHOR35
409	.word	.LANCHOR36
410	.word	.LANCHOR27
411	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
412	.section	.text.FtlCacheWriteBack,"ax",%progbits
413	.align	1
414	.global	FtlCacheWriteBack
415	.syntax unified
416	.thumb
417	.thumb_func
418	.fpu softvfp
419	.type	FtlCacheWriteBack, %function
420FtlCacheWriteBack:
421	@ args = 0, pretend = 0, frame = 0
422	@ frame_needed = 0, uses_anonymous_args = 0
423	@ link register save eliminated.
424	movs	r0, #0
425	bx	lr
426	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
427	.section	.text.sftl_get_density,"ax",%progbits
428	.align	1
429	.global	sftl_get_density
430	.syntax unified
431	.thumb
432	.thumb_func
433	.fpu softvfp
434	.type	sftl_get_density, %function
435sftl_get_density:
436	@ args = 0, pretend = 0, frame = 0
437	@ frame_needed = 0, uses_anonymous_args = 0
438	@ link register save eliminated.
439	ldr	r3, .L38
440	ldr	r0, [r3]
441	bx	lr
442.L39:
443	.align	2
444.L38:
445	.word	.LANCHOR34
446	.size	sftl_get_density, .-sftl_get_density
447	.global	__aeabi_uidivmod
448	.section	.text.FtlBbmMapBadBlock,"ax",%progbits
449	.align	1
450	.global	FtlBbmMapBadBlock
451	.syntax unified
452	.thumb
453	.thumb_func
454	.fpu softvfp
455	.type	FtlBbmMapBadBlock, %function
456FtlBbmMapBadBlock:
457	@ args = 0, pretend = 0, frame = 0
458	@ frame_needed = 0, uses_anonymous_args = 0
459	ldr	r3, .L41
460	push	{r0, r1, r2, r4, r5, r6, r7, lr}
461	mov	r5, r0
462	ldrh	r4, [r3]
463	mov	r1, r4
464	bl	__aeabi_uidiv
465	mov	r1, r4
466	ldr	r4, .L41+4
467	uxth	r6, r0
468	mov	r0, r5
469	bl	__aeabi_uidivmod
470	add	r2, r4, r6, lsl #2
471	uxth	r3, r1
472	ldr	r2, [r2, #28]
473	lsrs	r1, r3, #5
474	and	r7, r3, #31
475	movs	r0, #1
476	lsls	r0, r0, r7
477	ldr	r7, [r2, r1, lsl #2]
478	orrs	r0, r0, r7
479	str	r0, [r2, r1, lsl #2]
480	mov	r2, r6
481	str	r0, [sp]
482	mov	r1, r5
483	ldr	r0, .L41+8
484	bl	printf
485	ldrh	r3, [r4, #6]
486	movs	r0, #0
487	adds	r3, r3, #1
488	strh	r3, [r4, #6]	@ movhi
489	add	sp, sp, #12
490	@ sp needed
491	pop	{r4, r5, r6, r7, pc}
492.L42:
493	.align	2
494.L41:
495	.word	.LANCHOR17
496	.word	.LANCHOR37
497	.word	.LC0
498	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
499	.section	.text.FtlBbmIsBadBlock,"ax",%progbits
500	.align	1
501	.global	FtlBbmIsBadBlock
502	.syntax unified
503	.thumb
504	.thumb_func
505	.fpu softvfp
506	.type	FtlBbmIsBadBlock, %function
507FtlBbmIsBadBlock:
508	@ args = 0, pretend = 0, frame = 0
509	@ frame_needed = 0, uses_anonymous_args = 0
510	ldr	r3, .L44
511	push	{r4, r5, r6, lr}
512	mov	r6, r0
513	ldrh	r5, [r3]
514	mov	r1, r5
515	bl	__aeabi_uidivmod
516	mov	r0, r6
517	uxth	r4, r1
518	mov	r1, r5
519	bl	__aeabi_uidiv
520	ldr	r3, .L44+4
521	uxth	r0, r0
522	lsrs	r2, r4, #5
523	and	r4, r4, #31
524	add	r0, r3, r0, lsl #2
525	ldr	r3, [r0, #28]
526	ldr	r0, [r3, r2, lsl #2]
527	lsrs	r0, r0, r4
528	and	r0, r0, #1
529	pop	{r4, r5, r6, pc}
530.L45:
531	.align	2
532.L44:
533	.word	.LANCHOR17
534	.word	.LANCHOR37
535	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
536	.section	.text.FtlBbtInfoPrint,"ax",%progbits
537	.align	1
538	.global	FtlBbtInfoPrint
539	.syntax unified
540	.thumb
541	.thumb_func
542	.fpu softvfp
543	.type	FtlBbtInfoPrint, %function
544FtlBbtInfoPrint:
545	@ args = 0, pretend = 0, frame = 0
546	@ frame_needed = 0, uses_anonymous_args = 0
547	@ link register save eliminated.
548	bx	lr
549	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
550	.section	.text.FtlBbtCalcTotleCnt,"ax",%progbits
551	.align	1
552	.global	FtlBbtCalcTotleCnt
553	.syntax unified
554	.thumb
555	.thumb_func
556	.fpu softvfp
557	.type	FtlBbtCalcTotleCnt, %function
558FtlBbtCalcTotleCnt:
559	@ args = 0, pretend = 0, frame = 0
560	@ frame_needed = 0, uses_anonymous_args = 0
561	ldr	r3, .L54
562	ldr	r2, .L54+4
563	push	{r4, r5, r6, lr}
564	movs	r5, #0
565	ldrh	r3, [r3]
566	mov	r4, r5
567	ldrh	r6, [r2]
568	muls	r6, r3, r6
569.L48:
570	uxth	r0, r5
571	cmp	r0, r6
572	blt	.L50
573	mov	r0, r4
574	pop	{r4, r5, r6, pc}
575.L50:
576	bl	FtlBbmIsBadBlock
577	cbz	r0, .L49
578	adds	r4, r4, #1
579	uxth	r4, r4
580.L49:
581	adds	r5, r5, #1
582	b	.L48
583.L55:
584	.align	2
585.L54:
586	.word	.LANCHOR17
587	.word	.LANCHOR10
588	.size	FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
589	.section	.text.V2P_block,"ax",%progbits
590	.align	1
591	.global	V2P_block
592	.syntax unified
593	.thumb
594	.thumb_func
595	.fpu softvfp
596	.type	V2P_block, %function
597V2P_block:
598	@ args = 0, pretend = 0, frame = 0
599	@ frame_needed = 0, uses_anonymous_args = 0
600	push	{r3, r4, r5, r6, r7, lr}
601	mov	r5, r1
602	ldr	r3, .L57
603	mov	r7, r0
604	ldrh	r6, [r3]
605	mov	r1, r6
606	bl	__aeabi_uidiv
607	ldr	r3, .L57+4
608	smulbb	r5, r6, r5
609	mov	r1, r6
610	ldrh	r4, [r3]
611	smulbb	r4, r4, r0
612	mov	r0, r7
613	bl	__aeabi_uidivmod
614	adds	r0, r5, r1
615	add	r0, r0, r4
616	uxth	r0, r0
617	pop	{r3, r4, r5, r6, r7, pc}
618.L58:
619	.align	2
620.L57:
621	.word	.LANCHOR11
622	.word	.LANCHOR17
623	.size	V2P_block, .-V2P_block
624	.section	.text.P2V_plane,"ax",%progbits
625	.align	1
626	.global	P2V_plane
627	.syntax unified
628	.thumb
629	.thumb_func
630	.fpu softvfp
631	.type	P2V_plane, %function
632P2V_plane:
633	@ args = 0, pretend = 0, frame = 0
634	@ frame_needed = 0, uses_anonymous_args = 0
635	ldr	r3, .L60
636	push	{r4, r5, r6, lr}
637	mov	r6, r0
638	ldrh	r5, [r3]
639	ldr	r3, .L60+4
640	ldrh	r1, [r3]
641	bl	__aeabi_uidiv
642	smulbb	r4, r0, r5
643	mov	r1, r5
644	mov	r0, r6
645	bl	__aeabi_uidivmod
646	add	r1, r1, r4
647	uxth	r0, r1
648	pop	{r4, r5, r6, pc}
649.L61:
650	.align	2
651.L60:
652	.word	.LANCHOR11
653	.word	.LANCHOR17
654	.size	P2V_plane, .-P2V_plane
655	.section	.text.P2V_block_in_plane,"ax",%progbits
656	.align	1
657	.global	P2V_block_in_plane
658	.syntax unified
659	.thumb
660	.thumb_func
661	.fpu softvfp
662	.type	P2V_block_in_plane, %function
663P2V_block_in_plane:
664	@ args = 0, pretend = 0, frame = 0
665	@ frame_needed = 0, uses_anonymous_args = 0
666	push	{r3, lr}
667	ldr	r3, .L63
668	ldrh	r1, [r3]
669	bl	__aeabi_uidivmod
670	ldr	r3, .L63+4
671	uxth	r0, r1
672	ldrh	r1, [r3]
673	bl	__aeabi_uidiv
674	uxth	r0, r0
675	pop	{r3, pc}
676.L64:
677	.align	2
678.L63:
679	.word	.LANCHOR17
680	.word	.LANCHOR11
681	.size	P2V_block_in_plane, .-P2V_block_in_plane
682	.section	.text.ftl_cmp_data_ver,"ax",%progbits
683	.align	1
684	.global	ftl_cmp_data_ver
685	.syntax unified
686	.thumb
687	.thumb_func
688	.fpu softvfp
689	.type	ftl_cmp_data_ver, %function
690ftl_cmp_data_ver:
691	@ args = 0, pretend = 0, frame = 0
692	@ frame_needed = 0, uses_anonymous_args = 0
693	@ link register save eliminated.
694	cmp	r0, r1
695	bls	.L66
696	subs	r0, r0, r1
697	cmp	r0, #-2147483648
698	ite	hi
699	movhi	r0, #0
700	movls	r0, #1
701	bx	lr
702.L66:
703	subs	r0, r1, r0
704	cmp	r0, #-2147483648
705	ite	ls
706	movls	r0, #0
707	movhi	r0, #1
708	bx	lr
709	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
710	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",%progbits
711	.align	1
712	.global	FtlFreeSysBlkQueueEmpty
713	.syntax unified
714	.thumb
715	.thumb_func
716	.fpu softvfp
717	.type	FtlFreeSysBlkQueueEmpty, %function
718FtlFreeSysBlkQueueEmpty:
719	@ args = 0, pretend = 0, frame = 0
720	@ frame_needed = 0, uses_anonymous_args = 0
721	@ link register save eliminated.
722	ldr	r3, .L69
723	ldrh	r0, [r3, #6]
724	clz	r0, r0
725	lsrs	r0, r0, #5
726	bx	lr
727.L70:
728	.align	2
729.L69:
730	.word	.LANCHOR38
731	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
732	.section	.text.FtlFreeSysBlkQueueFull,"ax",%progbits
733	.align	1
734	.global	FtlFreeSysBlkQueueFull
735	.syntax unified
736	.thumb
737	.thumb_func
738	.fpu softvfp
739	.type	FtlFreeSysBlkQueueFull, %function
740FtlFreeSysBlkQueueFull:
741	@ args = 0, pretend = 0, frame = 0
742	@ frame_needed = 0, uses_anonymous_args = 0
743	@ link register save eliminated.
744	ldr	r3, .L72
745	ldrh	r0, [r3, #6]
746	sub	r3, r0, #1024
747	rsbs	r0, r3, #0
748	adcs	r0, r0, r3
749	bx	lr
750.L73:
751	.align	2
752.L72:
753	.word	.LANCHOR38
754	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
755	.section	.text.FtlFreeSysBLkSort,"ax",%progbits
756	.align	1
757	.global	FtlFreeSysBLkSort
758	.syntax unified
759	.thumb
760	.thumb_func
761	.fpu softvfp
762	.type	FtlFreeSysBLkSort, %function
763FtlFreeSysBLkSort:
764	@ args = 0, pretend = 0, frame = 0
765	@ frame_needed = 0, uses_anonymous_args = 0
766	ldr	r3, .L83
767	push	{r4, r5, r6, lr}
768	ldrh	r2, [r3, #6]
769	cbz	r2, .L74
770	ldr	r2, .L83+4
771	movs	r6, #0
772	ldrh	r1, [r3, #2]
773	mov	r5, r6
774	ldrh	r4, [r2, #28]
775	ldrh	r2, [r3, #4]
776	and	r4, r4, #31
777.L76:
778	uxth	r0, r6
779	adds	r6, r6, #1
780	cmp	r4, r0
781	bgt	.L77
782	cbz	r5, .L74
783	strh	r1, [r3, #2]	@ movhi
784	strh	r2, [r3, #4]	@ movhi
785.L74:
786	pop	{r4, r5, r6, pc}
787.L77:
788	adds	r0, r1, #4
789	adds	r1, r1, #1
790	ldrh	r5, [r3, r0, lsl #1]
791	adds	r0, r2, #4
792	ubfx	r1, r1, #0, #10
793	strh	r5, [r3, r0, lsl #1]	@ movhi
794	movs	r5, #1
795	add	r2, r2, r5
796	ubfx	r2, r2, #0, #10
797	b	.L76
798.L84:
799	.align	2
800.L83:
801	.word	.LANCHOR38
802	.word	.LANCHOR39
803	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
804	.section	.text.IsInFreeQueue,"ax",%progbits
805	.align	1
806	.global	IsInFreeQueue
807	.syntax unified
808	.thumb
809	.thumb_func
810	.fpu softvfp
811	.type	IsInFreeQueue, %function
812IsInFreeQueue:
813	@ args = 0, pretend = 0, frame = 0
814	@ frame_needed = 0, uses_anonymous_args = 0
815	ldr	r3, .L91
816	push	{r4, r5, lr}
817	ldrh	r4, [r3, #6]
818	cmp	r4, #1024
819	beq	.L89
820	ldrh	r5, [r3, #2]
821	movs	r1, #0
822.L87:
823	cmp	r1, r4
824	bcc	.L88
825.L89:
826	movs	r0, #0
827	pop	{r4, r5, pc}
828.L88:
829	adds	r2, r1, r5
830	ubfx	r2, r2, #0, #10
831	adds	r2, r2, #4
832	ldrh	r2, [r3, r2, lsl #1]
833	cmp	r2, r0
834	beq	.L90
835	adds	r1, r1, #1
836	b	.L87
837.L90:
838	movs	r0, #1
839	pop	{r4, r5, pc}
840.L92:
841	.align	2
842.L91:
843	.word	.LANCHOR38
844	.size	IsInFreeQueue, .-IsInFreeQueue
845	.section	.text.insert_data_list,"ax",%progbits
846	.align	1
847	.global	insert_data_list
848	.syntax unified
849	.thumb
850	.thumb_func
851	.fpu softvfp
852	.type	insert_data_list, %function
853insert_data_list:
854	@ args = 0, pretend = 0, frame = 16
855	@ frame_needed = 0, uses_anonymous_args = 0
856	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
857	ldr	r3, .L109
858	ldrh	lr, [r3]
859	cmp	lr, r0
860	bls	.L95
861	ldr	r3, .L109+4
862	movs	r5, #6
863	ldr	r4, [r3]
864	mul	r3, r5, r0
865	str	r3, [sp, #4]
866	adds	r1, r4, r3
867	ldr	r2, [sp, #4]
868	movw	r3, #65535
869	strh	r3, [r1, #2]	@ movhi
870	strh	r3, [r4, r2]	@ movhi
871	ldr	r3, .L109+8
872	ldr	ip, [r3]
873	cmp	ip, #0
874	bne	.L96
875.L108:
876	str	r1, [r3]
877.L95:
878	movs	r0, #0
879	add	sp, sp, #16
880	@ sp needed
881	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
882.L96:
883	ldr	r3, .L109+12
884	lsls	r2, r0, #1
885	ldr	r3, [r3]
886	str	r3, [sp, #8]
887	ldrh	r6, [r3, r0, lsl #1]
888	ldrh	r3, [r1, #4]
889	cbz	r3, .L106
890	mul	fp, r3, r6
891.L97:
892	sub	r3, ip, r4
893	asrs	r6, r3, #1
894	ldr	r3, .L109+16
895	muls	r3, r6, r3
896	ldr	r6, .L109+20
897	ldr	r8, [r6]
898	movs	r6, #0
899	uxth	r3, r3
900	add	r2, r8, r2
901	str	r2, [sp, #12]
902	mov	r2, ip
903.L104:
904	adds	r6, r6, #1
905	uxth	r6, r6
906	cmp	lr, r6
907	bcc	.L95
908	cmp	r3, r0
909	beq	.L95
910	ldr	r7, [sp, #8]
911	lsl	r10, r3, #1
912	ldrh	r7, [r7, r3, lsl #1]
913	mov	r5, r7
914	ldrh	r7, [r2, #4]
915	cbz	r7, .L107
916	muls	r7, r5, r7
917.L99:
918	cmp	fp, r7
919	bne	.L100
920	ldr	r5, [sp, #12]
921	ldrh	r10, [r8, r10]
922	ldrh	r7, [r5]
923	cmp	r10, r7
924	bcc	.L102
925.L101:
926	ldr	r5, [sp, #4]
927	cmp	r2, ip
928	strh	r3, [r4, r5]	@ movhi
929	ldrh	r3, [r2, #2]
930	strh	r3, [r1, #2]	@ movhi
931	bne	.L105
932	strh	r0, [r2, #2]	@ movhi
933	ldr	r3, .L109+8
934	b	.L108
935.L106:
936	mov	fp, #-1
937	b	.L97
938.L107:
939	mov	r7, #-1
940	b	.L99
941.L100:
942	bcc	.L101
943.L102:
944	ldrh	r7, [r2]
945	movw	r5, #65535
946	cmp	r7, r5
947	bne	.L103
948	strh	r3, [r1, #2]	@ movhi
949	strh	r0, [r2]	@ movhi
950	ldr	r3, .L109+24
951	b	.L108
952.L103:
953	movs	r3, #6
954	mla	r2, r3, r7, r4
955	mov	r3, r7
956	b	.L104
957.L105:
958	ldrh	r1, [r2, #2]
959	movs	r3, #6
960	muls	r3, r1, r3
961	strh	r0, [r4, r3]	@ movhi
962	strh	r0, [r2, #2]	@ movhi
963	b	.L95
964.L110:
965	.align	2
966.L109:
967	.word	.LANCHOR5
968	.word	.LANCHOR40
969	.word	.LANCHOR41
970	.word	.LANCHOR42
971	.word	-1431655765
972	.word	.LANCHOR43
973	.word	.LANCHOR44
974	.size	insert_data_list, .-insert_data_list
975	.section	.text.INSERT_DATA_LIST,"ax",%progbits
976	.align	1
977	.global	INSERT_DATA_LIST
978	.syntax unified
979	.thumb
980	.thumb_func
981	.fpu softvfp
982	.type	INSERT_DATA_LIST, %function
983INSERT_DATA_LIST:
984	@ args = 0, pretend = 0, frame = 0
985	@ frame_needed = 0, uses_anonymous_args = 0
986	push	{r3, lr}
987	bl	insert_data_list
988	ldr	r2, .L113
989	ldrh	r3, [r2]
990	adds	r3, r3, #1
991	uxth	r3, r3
992	strh	r3, [r2]	@ movhi
993	ldr	r2, .L113+4
994	ldrh	r2, [r2]
995	cmp	r2, r3
996	bcs	.L111
997	movs	r2, #214
998	ldr	r1, .L113+8
999	ldr	r0, .L113+12
1000	pop	{r3, lr}
1001	b	printf
1002.L111:
1003	pop	{r3, pc}
1004.L114:
1005	.align	2
1006.L113:
1007	.word	.LANCHOR45
1008	.word	.LANCHOR5
1009	.word	.LANCHOR46
1010	.word	.LC1
1011	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
1012	.section	.text.insert_free_list,"ax",%progbits
1013	.align	1
1014	.global	insert_free_list
1015	.syntax unified
1016	.thumb
1017	.thumb_func
1018	.fpu softvfp
1019	.type	insert_free_list, %function
1020insert_free_list:
1021	@ args = 0, pretend = 0, frame = 0
1022	@ frame_needed = 0, uses_anonymous_args = 0
1023	movw	r1, #65535
1024	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1025	cmp	r0, r1
1026	beq	.L116
1027	ldr	r3, .L122
1028	mov	r10, #6
1029	mul	r7, r10, r0
1030	ldr	r4, [r3]
1031	ldr	r3, .L122+4
1032	adds	r5, r4, r7
1033	ldr	r6, [r3]
1034	mov	lr, r3
1035	strh	r1, [r5, #2]	@ movhi
1036	strh	r1, [r4, r7]	@ movhi
1037	cbnz	r6, .L117
1038	str	r5, [r3]
1039.L116:
1040	movs	r0, #0
1041	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1042.L117:
1043	ldr	r3, .L122+8
1044	subs	r2, r6, r4
1045	mov	fp, r1
1046	ldr	ip, [r3]
1047	asrs	r3, r2, #1
1048	ldr	r2, .L122+12
1049	ldrh	r8, [ip, r0, lsl #1]
1050	muls	r2, r3, r2
1051	mov	r3, r6
1052	uxth	r2, r2
1053.L120:
1054	ldrh	r1, [ip, r2, lsl #1]
1055	cmp	r1, r8
1056	bcs	.L118
1057	ldrh	r1, [r3]
1058	cmp	r1, fp
1059	bne	.L119
1060	strh	r2, [r5, #2]	@ movhi
1061	strh	r0, [r3]	@ movhi
1062	b	.L116
1063.L119:
1064	mla	r3, r10, r1, r4
1065	mov	r2, r1
1066	b	.L120
1067.L118:
1068	ldrh	r1, [r3, #2]
1069	cmp	r3, r6
1070	strh	r1, [r5, #2]	@ movhi
1071	it	ne
1072	ldrhne	r1, [r3, #2]
1073	strh	r2, [r4, r7]	@ movhi
1074	iteet	ne
1075	movne	r2, #6
1076	strheq	r0, [r3, #2]	@ movhi
1077	streq	r5, [lr]
1078	mulne	r2, r2, r1
1079	itt	ne
1080	strhne	r0, [r4, r2]	@ movhi
1081	strhne	r0, [r3, #2]	@ movhi
1082	b	.L116
1083.L123:
1084	.align	2
1085.L122:
1086	.word	.LANCHOR40
1087	.word	.LANCHOR47
1088	.word	.LANCHOR43
1089	.word	-1431655765
1090	.size	insert_free_list, .-insert_free_list
1091	.section	.text.INSERT_FREE_LIST,"ax",%progbits
1092	.align	1
1093	.global	INSERT_FREE_LIST
1094	.syntax unified
1095	.thumb
1096	.thumb_func
1097	.fpu softvfp
1098	.type	INSERT_FREE_LIST, %function
1099INSERT_FREE_LIST:
1100	@ args = 0, pretend = 0, frame = 0
1101	@ frame_needed = 0, uses_anonymous_args = 0
1102	push	{r3, lr}
1103	bl	insert_free_list
1104	ldr	r2, .L126
1105	ldrh	r3, [r2]
1106	adds	r3, r3, #1
1107	uxth	r3, r3
1108	strh	r3, [r2]	@ movhi
1109	ldr	r2, .L126+4
1110	ldrh	r2, [r2]
1111	cmp	r2, r3
1112	bcs	.L124
1113	movs	r2, #207
1114	ldr	r1, .L126+8
1115	ldr	r0, .L126+12
1116	pop	{r3, lr}
1117	b	printf
1118.L124:
1119	pop	{r3, pc}
1120.L127:
1121	.align	2
1122.L126:
1123	.word	.LANCHOR48
1124	.word	.LANCHOR5
1125	.word	.LANCHOR49
1126	.word	.LC1
1127	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
1128	.section	.text.List_remove_node,"ax",%progbits
1129	.align	1
1130	.global	List_remove_node
1131	.syntax unified
1132	.thumb
1133	.thumb_func
1134	.fpu softvfp
1135	.type	List_remove_node, %function
1136List_remove_node:
1137	@ args = 0, pretend = 0, frame = 0
1138	@ frame_needed = 0, uses_anonymous_args = 0
1139	push	{r4, r5, r6, r7, r8, lr}
1140	movs	r6, #6
1141	ldr	r5, .L134
1142	muls	r6, r1, r6
1143	movw	r3, #65535
1144	mov	r8, r0
1145	ldr	r7, [r5]
1146	adds	r4, r7, r6
1147	ldrh	r2, [r4, #2]
1148	cmp	r2, r3
1149	bne	.L129
1150	ldr	r3, [r0]
1151	cmp	r4, r3
1152	beq	.L129
1153	mov	r2, #372
1154	ldr	r1, .L134+4
1155	ldr	r0, .L134+8
1156	bl	printf
1157.L129:
1158	ldr	r3, [r8]
1159	movw	r1, #65535
1160	cmp	r4, r3
1161	ldrh	r3, [r7, r6]
1162	bne	.L130
1163	cmp	r3, r1
1164	ittee	ne
1165	ldrne	r0, [r5]
1166	movne	r2, #6
1167	moveq	r3, #0
1168	streq	r3, [r8]
1169	ittt	ne
1170	mlane	r3, r2, r3, r0
1171	strne	r3, [r8]
1172	strhne	r1, [r3, #2]	@ movhi
1173.L132:
1174	movw	r3, #65535
1175	movs	r0, #0
1176	strh	r3, [r7, r6]	@ movhi
1177	strh	r3, [r4, #2]	@ movhi
1178	pop	{r4, r5, r6, r7, r8, pc}
1179.L130:
1180	cmp	r3, r1
1181	ldrh	r1, [r4, #2]
1182	bne	.L133
1183	cmp	r1, r3
1184	beq	.L132
1185	movs	r2, #6
1186	ldr	r0, [r5]
1187	muls	r1, r2, r1
1188	strh	r3, [r0, r1]	@ movhi
1189	b	.L132
1190.L133:
1191	ldr	r0, [r5]
1192	movs	r2, #6
1193	mla	r5, r2, r3, r0
1194	strh	r1, [r5, #2]	@ movhi
1195	ldrh	r1, [r4, #2]
1196	muls	r2, r1, r2
1197	strh	r3, [r0, r2]	@ movhi
1198	b	.L132
1199.L135:
1200	.align	2
1201.L134:
1202	.word	.LANCHOR40
1203	.word	.LANCHOR50
1204	.word	.LC1
1205	.size	List_remove_node, .-List_remove_node
1206	.section	.text.List_pop_index_node,"ax",%progbits
1207	.align	1
1208	.global	List_pop_index_node
1209	.syntax unified
1210	.thumb
1211	.thumb_func
1212	.fpu softvfp
1213	.type	List_pop_index_node, %function
1214List_pop_index_node:
1215	@ args = 0, pretend = 0, frame = 0
1216	@ frame_needed = 0, uses_anonymous_args = 0
1217	ldr	r3, [r0]
1218	push	{r4, r5, r6, lr}
1219	cbz	r3, .L142
1220	ldr	r2, .L143
1221	movw	r5, #65535
1222	movs	r6, #6
1223	ldr	r2, [r2]
1224.L138:
1225	cbnz	r1, .L139
1226.L141:
1227	ldr	r4, .L143+4
1228	subs	r3, r3, r2
1229	asrs	r3, r3, #1
1230	muls	r4, r3, r4
1231	uxth	r1, r4
1232	bl	List_remove_node
1233	uxth	r0, r4
1234	pop	{r4, r5, r6, pc}
1235.L139:
1236	ldrh	r4, [r3]
1237	cmp	r4, r5
1238	beq	.L141
1239	subs	r1, r1, #1
1240	mla	r3, r6, r4, r2
1241	uxth	r1, r1
1242	b	.L138
1243.L142:
1244	movw	r0, #65535
1245	pop	{r4, r5, r6, pc}
1246.L144:
1247	.align	2
1248.L143:
1249	.word	.LANCHOR40
1250	.word	-1431655765
1251	.size	List_pop_index_node, .-List_pop_index_node
1252	.section	.text.List_pop_head_node,"ax",%progbits
1253	.align	1
1254	.global	List_pop_head_node
1255	.syntax unified
1256	.thumb
1257	.thumb_func
1258	.fpu softvfp
1259	.type	List_pop_head_node, %function
1260List_pop_head_node:
1261	@ args = 0, pretend = 0, frame = 0
1262	@ frame_needed = 0, uses_anonymous_args = 0
1263	@ link register save eliminated.
1264	movs	r1, #0
1265	b	List_pop_index_node
1266	.size	List_pop_head_node, .-List_pop_head_node
1267	.section	.text.List_get_gc_head_node,"ax",%progbits
1268	.align	1
1269	.global	List_get_gc_head_node
1270	.syntax unified
1271	.thumb
1272	.thumb_func
1273	.fpu softvfp
1274	.type	List_get_gc_head_node, %function
1275List_get_gc_head_node:
1276	@ args = 0, pretend = 0, frame = 0
1277	@ frame_needed = 0, uses_anonymous_args = 0
1278	ldr	r3, .L152
1279	push	{r4, lr}
1280	ldr	r3, [r3]
1281	cbz	r3, .L151
1282	ldr	r2, .L152+4
1283	movs	r4, #6
1284	ldr	r1, [r2]
1285	movw	r2, #65535
1286.L148:
1287	cbz	r0, .L149
1288	ldrh	r3, [r3]
1289	cmp	r3, r2
1290	bne	.L150
1291.L151:
1292	movw	r0, #65535
1293	pop	{r4, pc}
1294.L150:
1295	subs	r0, r0, #1
1296	mla	r3, r4, r3, r1
1297	uxth	r0, r0
1298	b	.L148
1299.L149:
1300	ldr	r0, .L152+8
1301	subs	r3, r3, r1
1302	asrs	r3, r3, #1
1303	muls	r3, r0, r3
1304	uxth	r0, r3
1305	pop	{r4, pc}
1306.L153:
1307	.align	2
1308.L152:
1309	.word	.LANCHOR41
1310	.word	.LANCHOR40
1311	.word	-1431655765
1312	.size	List_get_gc_head_node, .-List_get_gc_head_node
1313	.section	.text.List_update_data_list,"ax",%progbits
1314	.align	1
1315	.global	List_update_data_list
1316	.syntax unified
1317	.thumb
1318	.thumb_func
1319	.fpu softvfp
1320	.type	List_update_data_list, %function
1321List_update_data_list:
1322	@ args = 0, pretend = 0, frame = 0
1323	@ frame_needed = 0, uses_anonymous_args = 0
1324	ldr	r3, .L165
1325	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1326	mov	r4, r0
1327	ldrh	r3, [r3]
1328	cmp	r3, r0
1329	beq	.L156
1330	ldr	r3, .L165+4
1331	ldrh	r3, [r3]
1332	cmp	r3, r0
1333	beq	.L156
1334	ldr	r3, .L165+8
1335	ldrh	r3, [r3]
1336	cmp	r3, r0
1337	beq	.L156
1338	ldr	r7, .L165+12
1339	movs	r6, #6
1340	ldr	r3, .L165+16
1341	muls	r6, r0, r6
1342	ldr	fp, [r7]
1343	ldr	r3, [r3]
1344	add	r10, fp, r6
1345	cmp	r10, r3
1346	beq	.L156
1347	ldr	r3, .L165+20
1348	ldrh	r5, [r10, #4]
1349	ldr	r2, [r3]
1350	mov	r8, r3
1351	ldrh	r2, [r2, r0, lsl #1]
1352	cmp	r5, #0
1353	beq	.L163
1354	muls	r5, r2, r5
1355.L158:
1356	ldrh	r3, [r10, #2]
1357	movw	r2, #65535
1358	cmp	r3, r2
1359	bne	.L159
1360	ldrh	r2, [fp, r6]
1361	cmp	r2, r3
1362	bne	.L159
1363	movw	r2, #463
1364	ldr	r1, .L165+24
1365	ldr	r0, .L165+28
1366	bl	printf
1367.L159:
1368	ldrh	r3, [r10, #2]
1369	movw	r2, #65535
1370	cmp	r3, r2
1371	bne	.L160
1372	ldrh	r2, [fp, r6]
1373	cmp	r2, r3
1374	beq	.L156
1375.L160:
1376	movs	r2, #6
1377	muls	r2, r3, r2
1378	ldr	r3, .L165+32
1379	asrs	r1, r2, #1
1380	muls	r3, r1, r3
1381	ldr	r1, [r8]
1382	ldrh	r0, [r1, r3, lsl #1]
1383	ldr	r1, [r7]
1384	add	r2, r2, r1
1385	ldrh	r3, [r2, #4]
1386	cbz	r3, .L164
1387	muls	r3, r0, r3
1388.L161:
1389	cmp	r5, r3
1390	bcs	.L156
1391	ldr	r5, .L165+36
1392	mov	r1, r4
1393	ldr	r0, .L165+16
1394	bl	List_remove_node
1395	ldrh	r3, [r5]
1396	cbnz	r3, .L162
1397	mov	r2, #474
1398	ldr	r1, .L165+24
1399	ldr	r0, .L165+28
1400	bl	printf
1401.L162:
1402	ldrh	r3, [r5]
1403	mov	r0, r4
1404	subs	r3, r3, #1
1405	strh	r3, [r5]	@ movhi
1406	bl	INSERT_DATA_LIST
1407.L156:
1408	movs	r0, #0
1409	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1410.L163:
1411	mov	r5, #-1
1412	b	.L158
1413.L164:
1414	mov	r3, #-1
1415	b	.L161
1416.L166:
1417	.align	2
1418.L165:
1419	.word	.LANCHOR51
1420	.word	.LANCHOR52
1421	.word	.LANCHOR53
1422	.word	.LANCHOR40
1423	.word	.LANCHOR41
1424	.word	.LANCHOR42
1425	.word	.LANCHOR54
1426	.word	.LC1
1427	.word	-1431655765
1428	.word	.LANCHOR45
1429	.size	List_update_data_list, .-List_update_data_list
1430	.section	.text.select_l2p_ram_region,"ax",%progbits
1431	.align	1
1432	.global	select_l2p_ram_region
1433	.syntax unified
1434	.thumb
1435	.thumb_func
1436	.fpu softvfp
1437	.type	select_l2p_ram_region, %function
1438select_l2p_ram_region:
1439	@ args = 0, pretend = 0, frame = 0
1440	@ frame_needed = 0, uses_anonymous_args = 0
1441	push	{r3, r4, r5, r6, r7, lr}
1442	movs	r1, #0
1443	ldr	r3, .L177
1444	movs	r0, #12
1445	movw	r5, #65535
1446	ldrh	r2, [r3]
1447	ldr	r3, .L177+4
1448	ldr	r3, [r3]
1449.L168:
1450	uxth	r4, r1
1451	cmp	r4, r2
1452	bcc	.L170
1453	mov	r4, r2
1454	movs	r1, #0
1455	mov	r6, #-2147483648
1456	movs	r7, #12
1457.L171:
1458	uxth	r5, r1
1459	cmp	r5, r2
1460	bcc	.L173
1461	cmp	r4, r2
1462	bcc	.L169
1463	ldr	r1, .L177+8
1464	mov	r4, r2
1465	mov	r0, #-1
1466	ldrh	r7, [r1]
1467	movs	r1, #0
1468.L174:
1469	uxth	r5, r1
1470	cmp	r5, r2
1471	bcc	.L176
1472	cmp	r4, r2
1473	bcc	.L169
1474	movw	r2, #787
1475	ldr	r1, .L177+12
1476	ldr	r0, .L177+16
1477	bl	printf
1478	b	.L169
1479.L170:
1480	adds	r1, r1, #1
1481	mla	r6, r0, r1, r3
1482	ldrh	r6, [r6, #-12]
1483	cmp	r6, r5
1484	bne	.L168
1485.L169:
1486	mov	r0, r4
1487	pop	{r3, r4, r5, r6, r7, pc}
1488.L173:
1489	mla	r0, r7, r1, r3
1490	ldr	r0, [r0, #4]
1491	cmp	r0, #0
1492	blt	.L172
1493	cmp	r6, r0
1494	itt	hi
1495	movhi	r6, r0
1496	movhi	r4, r5
1497.L172:
1498	adds	r1, r1, #1
1499	b	.L171
1500.L176:
1501	ldr	r6, [r3, #4]
1502	cmp	r0, r6
1503	bls	.L175
1504	ldrh	ip, [r3]
1505	cmp	ip, r7
1506	itt	ne
1507	movne	r0, r6
1508	movne	r4, r5
1509.L175:
1510	adds	r1, r1, #1
1511	adds	r3, r3, #12
1512	b	.L174
1513.L178:
1514	.align	2
1515.L177:
1516	.word	.LANCHOR33
1517	.word	.LANCHOR55
1518	.word	.LANCHOR56
1519	.word	.LANCHOR57
1520	.word	.LC1
1521	.size	select_l2p_ram_region, .-select_l2p_ram_region
1522	.section	.text.FtlUpdateVaildLpn,"ax",%progbits
1523	.align	1
1524	.global	FtlUpdateVaildLpn
1525	.syntax unified
1526	.thumb
1527	.thumb_func
1528	.fpu softvfp
1529	.type	FtlUpdateVaildLpn, %function
1530FtlUpdateVaildLpn:
1531	@ args = 0, pretend = 0, frame = 0
1532	@ frame_needed = 0, uses_anonymous_args = 0
1533	ldr	r2, .L189
1534	push	{r4, r5, r6, lr}
1535	mov	r1, r2
1536	ldrh	r3, [r2]
1537	cmp	r3, #4
1538	bhi	.L180
1539	cbnz	r0, .L180
1540	adds	r3, r3, #1
1541	strh	r3, [r2]	@ movhi
1542	pop	{r4, r5, r6, pc}
1543.L180:
1544	movs	r3, #0
1545	ldr	r0, .L189+4
1546	strh	r3, [r1]	@ movhi
1547	movw	r6, #65535
1548	ldr	r1, .L189+8
1549	ldrh	r4, [r0]
1550	mov	r0, r3
1551	ldr	r2, .L189+12
1552	ldr	r1, [r1]
1553	str	r3, [r2]
1554	add	r4, r1, r4, lsl #1
1555.L181:
1556	cmp	r1, r4
1557	bne	.L183
1558	cbz	r3, .L179
1559	str	r0, [r2]
1560.L179:
1561	pop	{r4, r5, r6, pc}
1562.L183:
1563	ldrh	r5, [r1], #2
1564	cmp	r5, r6
1565	itt	ne
1566	addne	r0, r0, r5
1567	movne	r3, #1
1568	b	.L181
1569.L190:
1570	.align	2
1571.L189:
1572	.word	.LANCHOR58
1573	.word	.LANCHOR5
1574	.word	.LANCHOR42
1575	.word	.LANCHOR59
1576	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
1577	.section	.text.ftl_set_blk_mode,"ax",%progbits
1578	.align	1
1579	.global	ftl_set_blk_mode
1580	.syntax unified
1581	.thumb
1582	.thumb_func
1583	.fpu softvfp
1584	.type	ftl_set_blk_mode, %function
1585ftl_set_blk_mode:
1586	@ args = 0, pretend = 0, frame = 0
1587	@ frame_needed = 0, uses_anonymous_args = 0
1588	@ link register save eliminated.
1589	mov	r3, r0
1590	cbz	r1, .L192
1591	b	ftl_set_blk_mode.part.6
1592.L192:
1593	ldr	r2, .L193
1594	lsrs	r0, r0, #5
1595	and	r3, r3, #31
1596	ldr	r1, [r2]
1597	movs	r2, #1
1598	lsl	r3, r2, r3
1599	ldr	r2, [r1, r0, lsl #2]
1600	bic	r2, r2, r3
1601	str	r2, [r1, r0, lsl #2]
1602	bx	lr
1603.L194:
1604	.align	2
1605.L193:
1606	.word	.LANCHOR1
1607	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
1608	.section	.text.ftl_get_blk_mode,"ax",%progbits
1609	.align	1
1610	.global	ftl_get_blk_mode
1611	.syntax unified
1612	.thumb
1613	.thumb_func
1614	.fpu softvfp
1615	.type	ftl_get_blk_mode, %function
1616ftl_get_blk_mode:
1617	@ args = 0, pretend = 0, frame = 0
1618	@ frame_needed = 0, uses_anonymous_args = 0
1619	@ link register save eliminated.
1620	ldr	r3, .L196
1621	lsrs	r2, r0, #5
1622	and	r0, r0, #31
1623	ldr	r3, [r3]
1624	ldr	r3, [r3, r2, lsl #2]
1625	lsr	r0, r3, r0
1626	and	r0, r0, #1
1627	bx	lr
1628.L197:
1629	.align	2
1630.L196:
1631	.word	.LANCHOR1
1632	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
1633	.section	.text.ftl_sb_update_avl_pages,"ax",%progbits
1634	.align	1
1635	.global	ftl_sb_update_avl_pages
1636	.syntax unified
1637	.thumb
1638	.thumb_func
1639	.fpu softvfp
1640	.type	ftl_sb_update_avl_pages, %function
1641ftl_sb_update_avl_pages:
1642	@ args = 0, pretend = 0, frame = 0
1643	@ frame_needed = 0, uses_anonymous_args = 0
1644	movs	r3, #0
1645	push	{r4, r5, r6, lr}
1646	strh	r3, [r0, #4]	@ movhi
1647	movw	r6, #65535
1648	ldr	r3, .L205
1649	ldrh	r4, [r3]
1650	add	r3, r0, r2, lsl #1
1651	adds	r3, r3, #14
1652.L199:
1653	cmp	r2, r4
1654	bcc	.L201
1655	ldr	r3, .L205+4
1656	add	r5, r0, #16
1657	movw	r6, #65535
1658	ldrh	r3, [r3]
1659	subs	r3, r3, #1
1660	subs	r1, r3, r1
1661	movs	r3, #0
1662	uxth	r1, r1
1663.L202:
1664	uxth	r2, r3
1665	cmp	r4, r2
1666	bhi	.L204
1667	pop	{r4, r5, r6, pc}
1668.L201:
1669	ldrh	r5, [r3, #2]!
1670	adds	r2, r2, #1
1671	uxth	r2, r2
1672	cmp	r5, r6
1673	ittt	ne
1674	ldrhne	r5, [r0, #4]
1675	addne	r5, r5, #1
1676	strhne	r5, [r0, #4]	@ movhi
1677	b	.L199
1678.L204:
1679	ldrh	r2, [r5], #2
1680	adds	r3, r3, #1
1681	cmp	r2, r6
1682	ittt	ne
1683	ldrhne	r2, [r0, #4]
1684	addne	r2, r2, r1
1685	strhne	r2, [r0, #4]	@ movhi
1686	b	.L202
1687.L206:
1688	.align	2
1689.L205:
1690	.word	.LANCHOR3
1691	.word	.LANCHOR19
1692	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
1693	.section	.text.FtlSlcSuperblockCheck,"ax",%progbits
1694	.align	1
1695	.global	FtlSlcSuperblockCheck
1696	.syntax unified
1697	.thumb
1698	.thumb_func
1699	.fpu softvfp
1700	.type	FtlSlcSuperblockCheck, %function
1701FtlSlcSuperblockCheck:
1702	@ args = 0, pretend = 0, frame = 0
1703	@ frame_needed = 0, uses_anonymous_args = 0
1704	ldrh	r3, [r0, #4]
1705	push	{r4, r5, lr}
1706	cbz	r3, .L207
1707	ldrh	r2, [r0]
1708	movw	r3, #65535
1709	cmp	r2, r3
1710	beq	.L207
1711	ldrb	r2, [r0, #6]	@ zero_extendqisi2
1712	movs	r5, #0
1713	adds	r2, r2, #8
1714	ldrh	r1, [r0, r2, lsl #1]
1715	ldr	r2, .L213
1716	ldrh	r4, [r2]
1717	mov	r2, r3
1718.L210:
1719	cmp	r1, r2
1720	beq	.L212
1721.L207:
1722	pop	{r4, r5, pc}
1723.L212:
1724	ldrb	r3, [r0, #6]	@ zero_extendqisi2
1725	adds	r3, r3, #1
1726	uxtb	r3, r3
1727	cmp	r3, r4
1728	strb	r3, [r0, #6]
1729	itttt	eq
1730	ldrheq	r3, [r0, #2]
1731	strbeq	r5, [r0, #6]
1732	addeq	r3, r3, #1
1733	strheq	r3, [r0, #2]	@ movhi
1734	ldrb	r3, [r0, #6]	@ zero_extendqisi2
1735	adds	r3, r3, #8
1736	ldrh	r1, [r0, r3, lsl #1]
1737	b	.L210
1738.L214:
1739	.align	2
1740.L213:
1741	.word	.LANCHOR3
1742	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1743	.section	.text.make_superblock,"ax",%progbits
1744	.align	1
1745	.global	make_superblock
1746	.syntax unified
1747	.thumb
1748	.thumb_func
1749	.fpu softvfp
1750	.type	make_superblock, %function
1751make_superblock:
1752	@ args = 0, pretend = 0, frame = 0
1753	@ frame_needed = 0, uses_anonymous_args = 0
1754	ldr	r3, .L220
1755	ldrh	r2, [r0]
1756	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1757	mov	r4, r0
1758	ldrh	r3, [r3]
1759	cmp	r2, r3
1760	bcc	.L216
1761	movw	r2, #2110
1762	ldr	r1, .L220+4
1763	ldr	r0, .L220+8
1764	bl	printf
1765.L216:
1766	ldr	r3, .L220+12
1767	add	r6, r4, #16
1768	ldr	r10, .L220+20
1769	movw	r7, #65535
1770	movs	r5, #0
1771	ldrh	r8, [r3]
1772	strh	r5, [r4, #4]	@ movhi
1773	strb	r5, [r4, #7]
1774.L217:
1775	uxth	r3, r5
1776	cmp	r8, r3
1777	bhi	.L219
1778	ldr	r2, .L220+16
1779	movs	r0, #0
1780	ldrb	r3, [r4, #7]	@ zero_extendqisi2
1781	strb	r0, [r4, #9]
1782	ldrh	r2, [r2]
1783	smulbb	r3, r3, r2
1784	strh	r3, [r4, #4]	@ movhi
1785	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1786.L219:
1787	ldrh	r1, [r4]
1788	ldrb	r0, [r10, r5]	@ zero_extendqisi2
1789	bl	V2P_block
1790	strh	r7, [r6]	@ movhi
1791	mov	fp, r0
1792	bl	FtlBbmIsBadBlock
1793	cbnz	r0, .L218
1794	strh	fp, [r6]	@ movhi
1795	ldrb	r3, [r4, #7]	@ zero_extendqisi2
1796	adds	r3, r3, #1
1797	strb	r3, [r4, #7]
1798.L218:
1799	adds	r5, r5, #1
1800	adds	r6, r6, #2
1801	b	.L217
1802.L221:
1803	.align	2
1804.L220:
1805	.word	.LANCHOR5
1806	.word	.LANCHOR60
1807	.word	.LC1
1808	.word	.LANCHOR3
1809	.word	.LANCHOR19
1810	.word	.LANCHOR13
1811	.size	make_superblock, .-make_superblock
1812	.section	.text.update_multiplier_value,"ax",%progbits
1813	.align	1
1814	.global	update_multiplier_value
1815	.syntax unified
1816	.thumb
1817	.thumb_func
1818	.fpu softvfp
1819	.type	update_multiplier_value, %function
1820update_multiplier_value:
1821	@ args = 0, pretend = 0, frame = 0
1822	@ frame_needed = 0, uses_anonymous_args = 0
1823	push	{r3, r4, r5, r6, r7, r8, r10, lr}
1824	movs	r5, #0
1825	ldr	r3, .L228
1826	mov	r6, r0
1827	mov	r4, r5
1828	ldr	r10, .L228+12
1829	ldrh	r7, [r3]
1830	ldr	r3, .L228+4
1831	ldrh	r8, [r3]
1832.L223:
1833	uxth	r3, r5
1834	cmp	r7, r3
1835	bhi	.L225
1836	cbz	r4, .L227
1837	mov	r1, r4
1838	mov	r0, #32768
1839	bl	__aeabi_idiv
1840.L226:
1841	ldr	r3, .L228+8
1842	movs	r2, #6
1843	ldr	r3, [r3]
1844	mla	r6, r2, r6, r3
1845	strh	r0, [r6, #4]	@ movhi
1846	movs	r0, #0
1847	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
1848.L225:
1849	mov	r1, r6
1850	ldrb	r0, [r10, r5]	@ zero_extendqisi2
1851	bl	V2P_block
1852	bl	FtlBbmIsBadBlock
1853	cbnz	r0, .L224
1854	add	r4, r4, r8
1855	uxth	r4, r4
1856.L224:
1857	adds	r5, r5, #1
1858	b	.L223
1859.L227:
1860	mov	r0, r4
1861	b	.L226
1862.L229:
1863	.align	2
1864.L228:
1865	.word	.LANCHOR3
1866	.word	.LANCHOR19
1867	.word	.LANCHOR40
1868	.word	.LANCHOR13
1869	.size	update_multiplier_value, .-update_multiplier_value
1870	.section	.text.GetFreeBlockMinEraseCount,"ax",%progbits
1871	.align	1
1872	.global	GetFreeBlockMinEraseCount
1873	.syntax unified
1874	.thumb
1875	.thumb_func
1876	.fpu softvfp
1877	.type	GetFreeBlockMinEraseCount, %function
1878GetFreeBlockMinEraseCount:
1879	@ args = 0, pretend = 0, frame = 0
1880	@ frame_needed = 0, uses_anonymous_args = 0
1881	@ link register save eliminated.
1882	ldr	r3, .L233
1883	ldr	r0, [r3]
1884	cbz	r0, .L231
1885	ldr	r3, .L233+4
1886	ldr	r3, [r3]
1887	subs	r0, r0, r3
1888	ldr	r3, .L233+8
1889	asrs	r0, r0, #1
1890	muls	r0, r3, r0
1891	ldr	r3, .L233+12
1892	ldr	r3, [r3]
1893	uxth	r0, r0
1894	ldrh	r0, [r3, r0, lsl #1]
1895.L231:
1896	bx	lr
1897.L234:
1898	.align	2
1899.L233:
1900	.word	.LANCHOR47
1901	.word	.LANCHOR40
1902	.word	-1431655765
1903	.word	.LANCHOR43
1904	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
1905	.section	.text.GetFreeBlockMaxEraseCount,"ax",%progbits
1906	.align	1
1907	.global	GetFreeBlockMaxEraseCount
1908	.syntax unified
1909	.thumb
1910	.thumb_func
1911	.fpu softvfp
1912	.type	GetFreeBlockMaxEraseCount, %function
1913GetFreeBlockMaxEraseCount:
1914	@ args = 0, pretend = 0, frame = 0
1915	@ frame_needed = 0, uses_anonymous_args = 0
1916	ldr	r3, .L243
1917	push	{r4, r5, r6, lr}
1918	ldr	r3, [r3]
1919	cbz	r3, .L241
1920	ldr	r2, .L243+4
1921	movs	r5, #6
1922	movw	r6, #65535
1923	ldrh	r2, [r2]
1924	rsb	r2, r2, r2, lsl #3
1925	asrs	r2, r2, #3
1926	cmp	r0, r2
1927	it	gt
1928	uxthgt	r0, r2
1929	ldr	r2, .L243+8
1930	ldr	r1, [r2]
1931	ldr	r2, .L243+12
1932	subs	r3, r3, r1
1933	asrs	r3, r3, #1
1934	muls	r3, r2, r3
1935	movs	r2, #0
1936	uxth	r3, r3
1937.L238:
1938	uxth	r4, r2
1939	cmp	r0, r4
1940	bls	.L240
1941	mul	r4, r5, r3
1942	adds	r2, r2, #1
1943	ldrh	r4, [r1, r4]
1944	cmp	r4, r6
1945	bne	.L242
1946.L240:
1947	ldr	r2, .L243+16
1948	ldr	r2, [r2]
1949	ldrh	r0, [r2, r3, lsl #1]
1950	pop	{r4, r5, r6, pc}
1951.L242:
1952	mov	r3, r4
1953	b	.L238
1954.L241:
1955	mov	r0, r3
1956	pop	{r4, r5, r6, pc}
1957.L244:
1958	.align	2
1959.L243:
1960	.word	.LANCHOR47
1961	.word	.LANCHOR48
1962	.word	.LANCHOR40
1963	.word	-1431655765
1964	.word	.LANCHOR43
1965	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
1966	.section	.text.FtlPrintInfo2buf,"ax",%progbits
1967	.align	1
1968	.global	FtlPrintInfo2buf
1969	.syntax unified
1970	.thumb
1971	.thumb_func
1972	.fpu softvfp
1973	.type	FtlPrintInfo2buf, %function
1974FtlPrintInfo2buf:
1975	@ args = 0, pretend = 0, frame = 0
1976	@ frame_needed = 0, uses_anonymous_args = 0
1977	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
1978	movs	r1, #64
1979	ldr	r2, .L257
1980	mov	r8, r0
1981	bl	snprintf
1982	ldr	r3, .L257+4
1983	add	r5, r8, r0
1984	ldr	r2, .L257+8
1985	movs	r1, #64
1986	mov	r0, r5
1987	ldr	r6, .L257+12
1988	ldr	r3, [r3]
1989	bl	snprintf
1990	add	r5, r5, r0
1991	ldr	r2, .L257+16
1992	movs	r1, #64
1993	mov	r0, r5
1994	bl	snprintf
1995	ldr	r3, .L257+20
1996	add	r5, r5, r0
1997	ldr	r2, .L257+24
1998	movs	r1, #64
1999	mov	r0, r5
2000	ldr	r4, .L257+28
2001	ldr	r3, [r3]
2002	bl	snprintf
2003	ldr	r3, .L257+32
2004	add	r5, r5, r0
2005	ldr	r2, .L257+36
2006	movs	r1, #64
2007	mov	r0, r5
2008	ldr	r7, .L257+40
2009	ldr	r3, [r3]
2010	bl	snprintf
2011	ldr	r3, .L257+44
2012	add	r5, r5, r0
2013	ldr	r2, .L257+48
2014	movs	r1, #64
2015	mov	r0, r5
2016	ldr	r10, .L257+328
2017	ldr	r3, [r3]
2018	bl	snprintf
2019	ldr	r3, .L257+52
2020	add	r5, r5, r0
2021	ldr	r2, .L257+56
2022	movs	r1, #64
2023	mov	r0, r5
2024	ldr	r3, [r3]
2025	bl	snprintf
2026	ldr	r3, .L257+60
2027	add	r5, r5, r0
2028	ldr	r2, .L257+64
2029	movs	r1, #64
2030	mov	r0, r5
2031	ldr	r3, [r3]
2032	bl	snprintf
2033	ldr	r3, .L257+68
2034	add	r5, r5, r0
2035	ldr	r2, .L257+72
2036	movs	r1, #64
2037	mov	r0, r5
2038	ldr	r3, [r3]
2039	bl	snprintf
2040	ldr	r3, .L257+76
2041	add	r5, r5, r0
2042	ldr	r2, .L257+80
2043	movs	r1, #64
2044	mov	r0, r5
2045	ldr	r3, [r3]
2046	bl	snprintf
2047	ldr	r3, .L257+84
2048	add	r5, r5, r0
2049	ldr	r2, .L257+88
2050	movs	r1, #64
2051	mov	r0, r5
2052	ldr	r3, [r3]
2053	bl	snprintf
2054	ldr	r3, .L257+92
2055	add	r5, r5, r0
2056	ldr	r2, .L257+96
2057	movs	r1, #64
2058	mov	r0, r5
2059	ldr	r3, [r3]
2060	lsrs	r3, r3, #11
2061	bl	snprintf
2062	ldr	r3, .L257+100
2063	add	r5, r5, r0
2064	ldr	r2, .L257+104
2065	movs	r1, #64
2066	mov	r0, r5
2067	ldr	r3, [r3]
2068	lsrs	r3, r3, #11
2069	bl	snprintf
2070	ldr	r3, .L257+108
2071	add	r5, r5, r0
2072	ldr	r2, .L257+112
2073	movs	r1, #64
2074	mov	r0, r5
2075	ldr	r3, [r3]
2076	bl	snprintf
2077	ldr	r3, .L257+116
2078	add	r5, r5, r0
2079	ldr	r2, .L257+120
2080	movs	r1, #64
2081	mov	r0, r5
2082	ldr	r3, [r3]
2083	bl	snprintf
2084	add	r5, r5, r0
2085	ldrh	r3, [r6, #6]
2086	ldr	r2, .L257+124
2087	movs	r1, #64
2088	mov	r0, r5
2089	bl	snprintf
2090	add	r5, r5, r0
2091	ldrh	r3, [r4]
2092	ldr	r2, .L257+128
2093	movs	r1, #64
2094	mov	r0, r5
2095	bl	snprintf
2096	ldr	r3, .L257+132
2097	add	r5, r5, r0
2098	ldr	r2, .L257+136
2099	movs	r1, #64
2100	mov	r0, r5
2101	ldr	r3, [r3]
2102	bl	snprintf
2103	ldr	r3, .L257+140
2104	add	r5, r5, r0
2105	ldr	r2, .L257+144
2106	movs	r1, #64
2107	mov	r0, r5
2108	ldr	r3, [r3]
2109	bl	snprintf
2110	ldr	r3, .L257+148
2111	add	r5, r5, r0
2112	ldr	r2, .L257+152
2113	movs	r1, #64
2114	mov	r0, r5
2115	ldr	r3, [r3]
2116	bl	snprintf
2117	ldr	r3, .L257+156
2118	add	r5, r5, r0
2119	ldr	r2, .L257+160
2120	movs	r1, #64
2121	mov	r0, r5
2122	ldr	r3, [r3]
2123	bl	snprintf
2124	ldr	r3, .L257+164
2125	add	r5, r5, r0
2126	ldr	r2, .L257+168
2127	movs	r1, #64
2128	mov	r0, r5
2129	ldr	r3, [r3]
2130	bl	snprintf
2131	ldr	r3, .L257+172
2132	add	r5, r5, r0
2133	ldr	r2, .L257+176
2134	movs	r1, #64
2135	mov	r0, r5
2136	ldr	r3, [r3]
2137	bl	snprintf
2138	add	r5, r5, r0
2139	ldrh	r3, [r7, #30]
2140	ldr	r2, .L257+180
2141	movs	r1, #64
2142	mov	r0, r5
2143	bl	snprintf
2144	add	r5, r5, r0
2145	ldrh	r3, [r7, #28]
2146	ldr	r2, .L257+184
2147	movs	r1, #64
2148	mov	r0, r5
2149	ldr	r7, .L257+188
2150	bl	snprintf
2151	ldr	r3, .L257+192
2152	add	r5, r5, r0
2153	ldr	r2, .L257+196
2154	movs	r1, #64
2155	mov	r0, r5
2156	ldr	r3, [r3]
2157	bl	snprintf
2158	ldr	r3, .L257+200
2159	add	r5, r5, r0
2160	ldr	r2, .L257+204
2161	movs	r1, #64
2162	mov	r0, r5
2163	ldr	r3, [r3]
2164	bl	snprintf
2165	ldr	r3, .L257+208
2166	add	r5, r5, r0
2167	ldr	r2, .L257+212
2168	movs	r1, #64
2169	mov	r0, r5
2170	ldr	r3, [r3]
2171	bl	snprintf
2172	ldr	r3, .L257+216
2173	add	r5, r5, r0
2174	ldr	r2, .L257+220
2175	movs	r1, #64
2176	mov	r0, r5
2177	ldrh	r3, [r3, #6]
2178	bl	snprintf
2179	ldr	r3, .L257+224
2180	add	r5, r5, r0
2181	ldr	r2, .L257+228
2182	movs	r1, #64
2183	mov	r0, r5
2184	ldrh	r3, [r3]
2185	bl	snprintf
2186	ldr	r3, .L257+232
2187	add	r5, r5, r0
2188	ldr	r2, .L257+236
2189	movs	r1, #64
2190	mov	r0, r5
2191	ldrh	r3, [r3]
2192	bl	snprintf
2193	ldr	r3, .L257+240
2194	add	r5, r5, r0
2195	ldr	r2, .L257+244
2196	movs	r1, #64
2197	mov	r0, r5
2198	ldr	r3, [r3]
2199	bl	snprintf
2200	ldr	r3, .L257+248
2201	add	r5, r5, r0
2202	ldr	r2, .L257+252
2203	movs	r1, #64
2204	mov	r0, r5
2205	ldrh	r3, [r3]
2206	bl	snprintf
2207	add	r5, r5, r0
2208	ldrh	r3, [r6]
2209	ldr	r2, .L257+256
2210	movs	r1, #64
2211	mov	r0, r5
2212	ldr	r6, .L257+260
2213	bl	snprintf
2214	add	r5, r5, r0
2215	ldrh	r3, [r7, #2]
2216	ldr	r2, .L257+264
2217	movs	r1, #64
2218	mov	r0, r5
2219	bl	snprintf
2220	add	r5, r5, r0
2221	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2222	ldr	r2, .L257+268
2223	movs	r1, #64
2224	mov	r0, r5
2225	bl	snprintf
2226	add	r5, r5, r0
2227	ldrh	r3, [r7]
2228	ldr	r2, .L257+272
2229	movs	r1, #64
2230	mov	r0, r5
2231	bl	snprintf
2232	add	r5, r5, r0
2233	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2234	ldr	r2, .L257+276
2235	movs	r1, #64
2236	mov	r0, r5
2237	bl	snprintf
2238	add	r5, r5, r0
2239	ldrh	r3, [r7, #4]
2240	ldr	r2, .L257+280
2241	movs	r1, #64
2242	mov	r0, r5
2243	bl	snprintf
2244	ldrh	r2, [r7]
2245	add	r5, r5, r0
2246	ldr	r3, [r6]
2247	movs	r1, #64
2248	ldr	r7, .L257+284
2249	mov	r0, r5
2250	ldrh	r3, [r3, r2, lsl #1]
2251	ldr	r2, .L257+288
2252	bl	snprintf
2253	add	r5, r5, r0
2254	ldrh	r3, [r7, #2]
2255	ldr	r2, .L257+292
2256	movs	r1, #64
2257	mov	r0, r5
2258	bl	snprintf
2259	add	r5, r5, r0
2260	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2261	ldr	r2, .L257+296
2262	movs	r1, #64
2263	mov	r0, r5
2264	bl	snprintf
2265	add	r5, r5, r0
2266	ldrh	r3, [r7]
2267	ldr	r2, .L257+300
2268	movs	r1, #64
2269	mov	r0, r5
2270	bl	snprintf
2271	add	r5, r5, r0
2272	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2273	ldr	r2, .L257+304
2274	movs	r1, #64
2275	mov	r0, r5
2276	bl	snprintf
2277	add	r5, r5, r0
2278	ldrh	r3, [r7, #4]
2279	ldr	r2, .L257+308
2280	movs	r1, #64
2281	mov	r0, r5
2282	bl	snprintf
2283	ldrh	r2, [r7]
2284	add	r5, r5, r0
2285	ldr	r3, [r6]
2286	movs	r1, #64
2287	ldr	r7, .L257+312
2288	mov	r0, r5
2289	ldrh	r3, [r3, r2, lsl #1]
2290	ldr	r2, .L257+316
2291	bl	snprintf
2292	add	r5, r5, r0
2293	ldrh	r3, [r7, #2]
2294	ldr	r2, .L257+320
2295	movs	r1, #64
2296	mov	r0, r5
2297	bl	snprintf
2298	add	r5, r5, r0
2299	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2300	ldr	r2, .L257+324
2301	movs	r1, #64
2302	mov	r0, r5
2303	bl	snprintf
2304	add	r5, r5, r0
2305	b	.L258
2306.L259:
2307	.align	2
2308.L257:
2309	.word	.LC2
2310	.word	.LANCHOR26
2311	.word	.LC3
2312	.word	.LANCHOR37
2313	.word	.LC4
2314	.word	.LANCHOR61
2315	.word	.LC5
2316	.word	.LANCHOR48
2317	.word	.LANCHOR59
2318	.word	.LC6
2319	.word	.LANCHOR39
2320	.word	.LANCHOR62
2321	.word	.LC7
2322	.word	.LANCHOR63
2323	.word	.LC8
2324	.word	.LANCHOR64
2325	.word	.LC9
2326	.word	.LANCHOR65
2327	.word	.LC10
2328	.word	.LANCHOR66
2329	.word	.LC11
2330	.word	.LANCHOR67
2331	.word	.LC12
2332	.word	.LANCHOR68
2333	.word	.LC13
2334	.word	.LANCHOR69
2335	.word	.LC14
2336	.word	.LANCHOR70
2337	.word	.LC15
2338	.word	.LANCHOR71
2339	.word	.LC16
2340	.word	.LC17
2341	.word	.LC18
2342	.word	.LANCHOR72
2343	.word	.LC19
2344	.word	.LANCHOR73
2345	.word	.LC20
2346	.word	.LANCHOR74
2347	.word	.LC21
2348	.word	.LANCHOR75
2349	.word	.LC22
2350	.word	.LANCHOR76
2351	.word	.LC23
2352	.word	.LANCHOR77
2353	.word	.LC24
2354	.word	.LC25
2355	.word	.LC26
2356	.word	.LANCHOR51
2357	.word	.LANCHOR34
2358	.word	.LC27
2359	.word	.LANCHOR31
2360	.word	.LC28
2361	.word	.LANCHOR2
2362	.word	.LC29
2363	.word	.LANCHOR38
2364	.word	.LC30
2365	.word	.LANCHOR5
2366	.word	.LC31
2367	.word	.LANCHOR78
2368	.word	.LC32
2369	.word	.LANCHOR7
2370	.word	.LC33
2371	.word	.LANCHOR79
2372	.word	.LC34
2373	.word	.LC35
2374	.word	.LANCHOR42
2375	.word	.LC36
2376	.word	.LC37
2377	.word	.LC38
2378	.word	.LC39
2379	.word	.LC40
2380	.word	.LANCHOR52
2381	.word	.LC41
2382	.word	.LC42
2383	.word	.LC43
2384	.word	.LC44
2385	.word	.LC45
2386	.word	.LC46
2387	.word	.LANCHOR53
2388	.word	.LC47
2389	.word	.LC48
2390	.word	.LC49
2391	.word	.LANCHOR81
2392.L258:
2393	ldrh	r3, [r7]
2394	ldr	r2, .L260
2395	movs	r1, #64
2396	mov	r0, r5
2397	bl	snprintf
2398	add	r5, r5, r0
2399	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2400	ldr	r2, .L260+4
2401	movs	r1, #64
2402	mov	r0, r5
2403	bl	snprintf
2404	ldrh	r3, [r7, #4]
2405	add	r5, r5, r0
2406	ldr	r7, .L260+8
2407	movs	r1, #64
2408	ldr	r2, .L260+12
2409	mov	r0, r5
2410	bl	snprintf
2411	add	r5, r5, r0
2412	ldrh	r3, [r7, #2]
2413	ldr	r2, .L260+16
2414	movs	r1, #64
2415	mov	r0, r5
2416	bl	snprintf
2417	add	r5, r5, r0
2418	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2419	ldr	r2, .L260+20
2420	movs	r1, #64
2421	mov	r0, r5
2422	bl	snprintf
2423	add	r5, r5, r0
2424	ldrh	r3, [r7]
2425	ldr	r2, .L260+24
2426	movs	r1, #64
2427	mov	r0, r5
2428	bl	snprintf
2429	add	r5, r5, r0
2430	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2431	ldr	r2, .L260+28
2432	movs	r1, #64
2433	mov	r0, r5
2434	bl	snprintf
2435	add	r5, r5, r0
2436	ldrh	r3, [r7, #4]
2437	ldr	r2, .L260+32
2438	movs	r1, #64
2439	mov	r0, r5
2440	bl	snprintf
2441	ldr	r3, [r10, #76]
2442	add	r5, r5, r0
2443	ldr	r2, .L260+36
2444	movs	r1, #64
2445	mov	r0, r5
2446	str	r3, [sp, #4]
2447	ldr	r3, [r10, #84]
2448	str	r3, [sp]
2449	ldr	r3, [r10, #80]
2450	bl	snprintf
2451	add	r5, r5, r0
2452	ldr	r3, [r10, #72]
2453	ldr	r2, .L260+40
2454	movs	r1, #64
2455	mov	r0, r5
2456	bl	snprintf
2457	add	r5, r5, r0
2458	ldr	r3, [r10, #96]
2459	ldr	r2, .L260+44
2460	movs	r1, #64
2461	mov	r0, r5
2462	bl	snprintf
2463	ldr	r3, .L260+48
2464	add	r5, r5, r0
2465	ldr	r2, .L260+52
2466	movs	r1, #64
2467	mov	r0, r5
2468	ldrh	r3, [r3]
2469	bl	snprintf
2470	ldr	r3, .L260+56
2471	add	r5, r5, r0
2472	ldr	r2, .L260+60
2473	movs	r1, #64
2474	mov	r0, r5
2475	ldrh	r3, [r3]
2476	bl	snprintf
2477	ldr	r3, .L260+64
2478	add	r5, r5, r0
2479	ldr	r2, .L260+68
2480	movs	r1, #64
2481	mov	r0, r5
2482	ldr	r3, [r3]
2483	bl	snprintf
2484	ldr	r3, .L260+72
2485	add	r5, r5, r0
2486	ldr	r2, .L260+76
2487	movs	r1, #64
2488	mov	r0, r5
2489	ldrh	r3, [r3]
2490	bl	snprintf
2491	add	r5, r5, r0
2492	bl	GetFreeBlockMinEraseCount
2493	ldr	r2, .L260+80
2494	mov	r3, r0
2495	movs	r1, #64
2496	mov	r0, r5
2497	bl	snprintf
2498	add	r5, r5, r0
2499	ldrh	r0, [r4]
2500	bl	GetFreeBlockMaxEraseCount
2501	ldr	r2, .L260+84
2502	mov	r3, r0
2503	movs	r1, #64
2504	mov	r0, r5
2505	bl	snprintf
2506	ldr	r3, .L260+88
2507	adds	r4, r5, r0
2508	ldr	r3, [r3]
2509	cmp	r3, #1
2510	beq	.L246
2511.L251:
2512	sub	r0, r4, r8
2513	add	sp, sp, #16
2514	@ sp needed
2515	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2516.L246:
2517	ldrh	r3, [r7]
2518	movw	r2, #65535
2519	cmp	r3, r2
2520	beq	.L248
2521	ldr	r2, [r6]
2522	mov	r0, r4
2523	movs	r1, #64
2524	ldrh	r3, [r2, r3, lsl #1]
2525	ldr	r2, .L260+92
2526	bl	snprintf
2527	add	r4, r4, r0
2528.L248:
2529	movs	r0, #0
2530	ldr	r5, .L260+96
2531	ldr	fp, .L260+112
2532	movs	r7, #0
2533	bl	List_get_gc_head_node
2534	uxth	r0, r0
2535.L250:
2536	movw	r3, #65535
2537	cmp	r0, r3
2538	beq	.L249
2539	ldr	r3, [fp]
2540	mov	r10, #6
2541	mul	r10, r10, r0
2542	ldr	r2, .L260+100
2543	movs	r1, #64
2544	ldrh	r3, [r3, r0, lsl #1]
2545	str	r3, [sp, #12]
2546	ldr	r3, [r5]
2547	add	r3, r3, r10
2548	ldrh	r3, [r3, #4]
2549	str	r3, [sp, #8]
2550	ldr	r3, [r6]
2551	ldrh	r3, [r3, r0, lsl #1]
2552	stm	sp, {r0, r3}
2553	mov	r3, r7
2554	mov	r0, r4
2555	adds	r7, r7, #1
2556	bl	snprintf
2557	ldr	r3, [r5]
2558	cmp	r7, #16
2559	add	r4, r4, r0
2560	ldrh	r0, [r3, r10]
2561	bne	.L250
2562.L249:
2563	ldr	r3, .L260+104
2564	movs	r7, #0
2565	ldr	r2, [r5]
2566	ldr	r10, .L260+112
2567	ldr	r3, [r3]
2568	ldr	fp, .L260+116
2569	subs	r3, r3, r2
2570	ldr	r2, .L260+108
2571	asrs	r3, r3, #1
2572	muls	r3, r2, r3
2573	uxth	r3, r3
2574.L252:
2575	movw	r2, #65535
2576	cmp	r3, r2
2577	beq	.L251
2578	ldr	r2, [r10]
2579	movs	r6, #6
2580	muls	r6, r3, r6
2581	mov	r0, r4
2582	movs	r1, #64
2583	ldrh	r2, [r2, r3, lsl #1]
2584	str	r2, [sp, #8]
2585	ldr	r2, [r5]
2586	add	r2, r2, r6
2587	ldrh	r2, [r2, #4]
2588	str	r3, [sp]
2589	mov	r3, r7
2590	adds	r7, r7, #1
2591	str	r2, [sp, #4]
2592	mov	r2, fp
2593	bl	snprintf
2594	cmp	r7, #4
2595	add	r4, r4, r0
2596	beq	.L251
2597	ldr	r3, [r5]
2598	ldrh	r3, [r3, r6]
2599	b	.L252
2600.L261:
2601	.align	2
2602.L260:
2603	.word	.LC50
2604	.word	.LC51
2605	.word	.LANCHOR80
2606	.word	.LC52
2607	.word	.LC53
2608	.word	.LC54
2609	.word	.LC55
2610	.word	.LC56
2611	.word	.LC57
2612	.word	.LC58
2613	.word	.LC59
2614	.word	.LC60
2615	.word	.LANCHOR82
2616	.word	.LC61
2617	.word	.LANCHOR83
2618	.word	.LC62
2619	.word	.LANCHOR84
2620	.word	.LC63
2621	.word	.LANCHOR85
2622	.word	.LC64
2623	.word	.LC65
2624	.word	.LC66
2625	.word	.LANCHOR86
2626	.word	.LC67
2627	.word	.LANCHOR40
2628	.word	.LC68
2629	.word	.LANCHOR47
2630	.word	-1431655765
2631	.word	.LANCHOR43
2632	.word	.LC69
2633	.size	FtlPrintInfo2buf, .-FtlPrintInfo2buf
2634	.section	.text.rknand_proc_ftlread,"ax",%progbits
2635	.align	1
2636	.global	rknand_proc_ftlread
2637	.syntax unified
2638	.thumb
2639	.thumb_func
2640	.fpu softvfp
2641	.type	rknand_proc_ftlread, %function
2642rknand_proc_ftlread:
2643	@ args = 0, pretend = 0, frame = 0
2644	@ frame_needed = 0, uses_anonymous_args = 0
2645	cmp	r0, #2048
2646	push	{r3, r4, r5, lr}
2647	mov	r5, r1
2648	blt	.L264
2649	ldr	r3, .L265
2650	movs	r1, #64
2651	ldr	r2, .L265+4
2652	mov	r0, r5
2653	bl	snprintf
2654	adds	r4, r5, r0
2655	mov	r0, r4
2656	bl	FtlPrintInfo2buf
2657	add	r0, r0, r4
2658	subs	r0, r0, r5
2659	pop	{r3, r4, r5, pc}
2660.L264:
2661	movs	r0, #0
2662	pop	{r3, r4, r5, pc}
2663.L266:
2664	.align	2
2665.L265:
2666	.word	.LC70
2667	.word	.LC71
2668	.size	rknand_proc_ftlread, .-rknand_proc_ftlread
2669	.section	.text.GetSwlReplaceBlock,"ax",%progbits
2670	.align	1
2671	.global	GetSwlReplaceBlock
2672	.syntax unified
2673	.thumb
2674	.thumb_func
2675	.fpu softvfp
2676	.type	GetSwlReplaceBlock, %function
2677GetSwlReplaceBlock:
2678	@ args = 0, pretend = 0, frame = 8
2679	@ frame_needed = 0, uses_anonymous_args = 0
2680	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2681	sub	sp, sp, #24
2682	ldr	r3, .L295
2683	ldr	r6, .L295+4
2684	ldr	r5, [r3]
2685	mov	r10, r3
2686	ldr	r1, [r6]
2687	cmp	r1, r5
2688	bcs	.L268
2689	ldr	r2, .L295+8
2690	movs	r3, #0
2691	ldr	r4, .L295+12
2692	mov	r0, r3
2693	ldrh	r1, [r2]
2694	ldr	r2, .L295+16
2695	str	r3, [r4]
2696	ldr	r7, [r2]
2697	mov	r2, r3
2698.L269:
2699	cmp	r2, r1
2700	bcc	.L270
2701	cbz	r3, .L271
2702	str	r0, [r4]
2703.L271:
2704	ldr	r7, [r4]
2705	mov	r0, r7
2706	bl	__aeabi_uidiv
2707	ldr	r3, .L295+20
2708	str	r0, [r6]
2709	ldr	r0, [r3]
2710	ldr	r3, .L295+24
2711	subs	r0, r7, r0
2712	ldrh	r1, [r3]
2713	bl	__aeabi_uidiv
2714	str	r0, [r4]
2715.L272:
2716	ldr	r6, [r6]
2717	add	r3, r5, #256
2718	cmp	r3, r6
2719	bls	.L277
2720	ldr	r2, .L295+28
2721	add	r3, r5, #768
2722	ldr	r2, [r2]
2723	cmp	r3, r2
2724	bls	.L277
2725.L279:
2726	movw	r4, #65535
2727.L278:
2728	mov	r0, r4
2729	add	sp, sp, #24
2730	@ sp needed
2731	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2732.L270:
2733	ldrh	r3, [r7, r2, lsl #1]
2734	adds	r2, r2, #1
2735	add	r0, r0, r3
2736	movs	r3, #1
2737	b	.L269
2738.L268:
2739	ldr	r2, .L295+28
2740	ldr	r3, [r2]
2741	cmp	r1, r3
2742	bls	.L272
2743	adds	r3, r3, #1
2744	ldr	r0, .L295+8
2745	str	r3, [r2]
2746	movs	r2, #0
2747	ldr	r3, .L295+16
2748	ldr	r3, [r3]
2749	subs	r3, r3, #2
2750.L274:
2751	ldrh	r1, [r0]
2752	cmp	r2, r1
2753	bcs	.L272
2754	ldrh	r1, [r3, #2]
2755	adds	r2, r2, #1
2756	adds	r1, r1, #1
2757	strh	r1, [r3, #2]!	@ movhi
2758	b	.L274
2759.L277:
2760	ldr	r3, .L295+32
2761	ldrh	r0, [r3]
2762	add	r0, r0, r0, lsl #1
2763	ubfx	r0, r0, #2, #16
2764	bl	GetFreeBlockMaxEraseCount
2765	add	r3, r5, #64
2766	mov	r2, r0
2767	cmp	r0, r3
2768	bcc	.L279
2769	ldr	r3, .L295+36
2770	ldr	r3, [r3]
2771	cmp	r3, #0
2772	beq	.L279
2773	ldr	r1, .L295+8
2774	movs	r0, #0
2775	mov	fp, #6
2776	ldrh	r1, [r1]
2777	str	r1, [sp, #20]
2778	ldr	r1, .L295+40
2779	ldr	r8, [r1]
2780	ldr	r1, .L295+16
2781	ldr	r7, [r1]
2782	movw	r1, #65535
2783	mov	ip, r1
2784.L280:
2785	ldrh	lr, [r3]
2786	movw	r4, #65535
2787	cmp	lr, r4
2788	bne	.L283
2789	mov	r4, ip
2790.L282:
2791	movw	r3, #65535
2792	cmp	r4, r3
2793	beq	.L279
2794	ldrh	r7, [r7, r4, lsl #1]
2795	lsl	r8, r4, #1
2796	cmp	r5, r7
2797	bcs	.L284
2798	bl	GetFreeBlockMinEraseCount
2799	cmp	r5, r0
2800	it	cc
2801	strcc	r1, [r10]
2802.L284:
2803	cmp	r6, r7
2804	bls	.L279
2805	add	r3, r7, #128
2806	cmp	r2, r3
2807	ble	.L279
2808	add	r3, r7, #256
2809	ldr	r0, .L295+28
2810	cmp	r6, r3
2811	bhi	.L285
2812	ldr	r1, [r0]
2813	add	r3, r7, #768
2814	cmp	r3, r1
2815	bcs	.L279
2816.L285:
2817	ldr	r3, .L295+44
2818	mov	r1, r4
2819	str	r2, [sp, #8]
2820	mov	r2, r6
2821	str	r7, [sp, #4]
2822	ldr	r3, [r3]
2823	ldrh	r3, [r3, r8]
2824	str	r3, [sp]
2825	ldr	r3, [r0]
2826	ldr	r0, .L295+48
2827	bl	printf
2828	ldr	r3, .L295+52
2829	movs	r2, #1
2830	str	r2, [r3]
2831	b	.L278
2832.L283:
2833	adds	r0, r0, #1
2834	ldr	r4, [sp, #20]
2835	uxth	r0, r0
2836	cmp	r0, r4
2837	bhi	.L279
2838	ldrh	r4, [r3, #4]
2839	cbz	r4, .L281
2840	ldr	r4, .L295+56
2841	sub	r3, r3, r8
2842	asrs	r3, r3, #1
2843	muls	r3, r4, r3
2844	uxth	r4, r3
2845	ldrh	r3, [r7, r4, lsl #1]
2846	cmp	r5, r3
2847	bcs	.L282
2848	cmp	r1, r3
2849	itt	hi
2850	movhi	r1, r3
2851	movhi	ip, r4
2852.L281:
2853	mla	r3, fp, lr, r8
2854	b	.L280
2855.L296:
2856	.align	2
2857.L295:
2858	.word	.LANCHOR77
2859	.word	.LANCHOR74
2860	.word	.LANCHOR5
2861	.word	.LANCHOR72
2862	.word	.LANCHOR43
2863	.word	.LANCHOR73
2864	.word	.LANCHOR14
2865	.word	.LANCHOR76
2866	.word	.LANCHOR48
2867	.word	.LANCHOR41
2868	.word	.LANCHOR40
2869	.word	.LANCHOR42
2870	.word	.LC72
2871	.word	.LANCHOR87
2872	.word	-1431655765
2873	.size	GetSwlReplaceBlock, .-GetSwlReplaceBlock
2874	.section	.text.free_data_superblock,"ax",%progbits
2875	.align	1
2876	.global	free_data_superblock
2877	.syntax unified
2878	.thumb
2879	.thumb_func
2880	.fpu softvfp
2881	.type	free_data_superblock, %function
2882free_data_superblock:
2883	@ args = 0, pretend = 0, frame = 0
2884	@ frame_needed = 0, uses_anonymous_args = 0
2885	movw	r2, #65535
2886	push	{r3, lr}
2887	cmp	r0, r2
2888	beq	.L298
2889	ldr	r2, .L299
2890	movs	r1, #0
2891	ldr	r2, [r2]
2892	strh	r1, [r2, r0, lsl #1]	@ movhi
2893	bl	INSERT_FREE_LIST
2894.L298:
2895	movs	r0, #0
2896	pop	{r3, pc}
2897.L300:
2898	.align	2
2899.L299:
2900	.word	.LANCHOR42
2901	.size	free_data_superblock, .-free_data_superblock
2902	.section	.text.get_new_active_ppa,"ax",%progbits
2903	.align	1
2904	.global	get_new_active_ppa
2905	.syntax unified
2906	.thumb
2907	.thumb_func
2908	.fpu softvfp
2909	.type	get_new_active_ppa, %function
2910get_new_active_ppa:
2911	@ args = 0, pretend = 0, frame = 0
2912	@ frame_needed = 0, uses_anonymous_args = 0
2913	ldrh	r2, [r0]
2914	push	{r3, r4, r5, r6, r7, lr}
2915	movw	r3, #65535
2916	mov	r4, r0
2917	cmp	r2, r3
2918	bne	.L302
2919	movw	r2, #2740
2920	ldr	r1, .L315
2921	ldr	r0, .L315+4
2922	bl	printf
2923.L302:
2924	ldr	r5, .L315+8
2925	ldrh	r2, [r4, #2]
2926	ldrh	r3, [r5]
2927	cmp	r2, r3
2928	bne	.L303
2929	movw	r2, #2741
2930	ldr	r1, .L315
2931	ldr	r0, .L315+4
2932	bl	printf
2933.L303:
2934	ldrh	r3, [r4, #4]
2935	cbnz	r3, .L304
2936	movw	r2, #2742
2937	ldr	r1, .L315
2938	ldr	r0, .L315+4
2939	bl	printf
2940.L304:
2941	ldrb	r2, [r4, #6]	@ zero_extendqisi2
2942	movs	r3, #0
2943	strb	r3, [r4, #10]
2944	movw	r6, #65535
2945	adds	r2, r2, #8
2946	ldrh	r0, [r4, r2, lsl #1]
2947	ldr	r2, .L315+12
2948	ldrh	r1, [r2]
2949	mov	r2, r3
2950.L305:
2951	cmp	r0, r6
2952	ldrb	r3, [r4, #6]	@ zero_extendqisi2
2953	beq	.L307
2954	ldrh	r2, [r4, #4]
2955	ldrh	r6, [r4, #2]
2956	subs	r2, r2, #1
2957	uxth	r2, r2
2958	orr	r6, r6, r0, lsl #10
2959	movw	r0, #65535
2960	strh	r2, [r4, #4]	@ movhi
2961.L309:
2962	adds	r3, r3, #1
2963	uxtb	r3, r3
2964	cmp	r1, r3
2965	itttt	eq
2966	ldrheq	r3, [r4, #2]
2967	addeq	r3, r3, #1
2968	strheq	r3, [r4, #2]	@ movhi
2969	moveq	r3, #0
2970	add	r7, r3, #8
2971	ldrh	r7, [r4, r7, lsl #1]
2972	cmp	r7, r0
2973	beq	.L309
2974	strb	r3, [r4, #6]
2975	ldrh	r1, [r4, #2]
2976	ldrh	r3, [r5]
2977	cmp	r1, r3
2978	bne	.L301
2979	cbz	r2, .L301
2980	movw	r2, #2763
2981	ldr	r1, .L315
2982	ldr	r0, .L315+4
2983	bl	printf
2984.L301:
2985	mov	r0, r6
2986	pop	{r3, r4, r5, r6, r7, pc}
2987.L307:
2988	adds	r3, r3, #1
2989	uxtb	r3, r3
2990	cmp	r3, r1
2991	strb	r3, [r4, #6]
2992	itttt	eq
2993	ldrheq	r3, [r4, #2]
2994	strbeq	r2, [r4, #6]
2995	addeq	r3, r3, #1
2996	strheq	r3, [r4, #2]	@ movhi
2997	ldrb	r3, [r4, #6]	@ zero_extendqisi2
2998	adds	r3, r3, #8
2999	ldrh	r0, [r4, r3, lsl #1]
3000	b	.L305
3001.L316:
3002	.align	2
3003.L315:
3004	.word	.LANCHOR88
3005	.word	.LC1
3006	.word	.LANCHOR19
3007	.word	.LANCHOR3
3008	.size	get_new_active_ppa, .-get_new_active_ppa
3009	.section	.text.FtlGcBufInit,"ax",%progbits
3010	.align	1
3011	.global	FtlGcBufInit
3012	.syntax unified
3013	.thumb
3014	.thumb_func
3015	.fpu softvfp
3016	.type	FtlGcBufInit, %function
3017FtlGcBufInit:
3018	@ args = 0, pretend = 0, frame = 8
3019	@ frame_needed = 0, uses_anonymous_args = 0
3020	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
3021	movs	r3, #0
3022	ldr	r1, .L322
3023	mov	fp, #1
3024	ldr	r2, .L322+4
3025	ldr	r5, [r1]
3026	ldr	r1, .L322+8
3027	str	r3, [r2]
3028	ldr	r2, .L322+12
3029	mov	r0, r5
3030	ldr	r1, [r1]
3031	ldrh	r2, [r2]
3032	str	r1, [sp, #4]
3033	ldr	r1, .L322+16
3034	ldrh	r1, [r1]
3035	str	r1, [sp]
3036	ldr	r1, .L322+20
3037	ldr	r10, [r1]
3038	ldr	r1, .L322+24
3039	ldrh	r7, [r1]
3040	ldr	r1, .L322+28
3041	ldr	r4, [r1]
3042	movs	r1, #12
3043	mla	r1, r2, r1, r1
3044	adds	r4, r4, #8
3045	add	r8, r5, r1
3046	mov	r1, r3
3047.L318:
3048	adds	r0, r0, #12
3049	ldr	r6, [sp]
3050	cmp	r0, r8
3051	add	ip, r3, r7
3052	add	r4, r4, #20
3053	add	lr, r1, r6
3054	bne	.L319
3055	ldr	r3, .L322+32
3056	mov	lr, #12
3057	mov	r8, #0
3058	ldr	r0, [r3]
3059	ldr	r3, .L322+8
3060	ldr	r4, [r3]
3061	ldr	r3, .L322+20
3062	ldr	ip, [r3]
3063.L320:
3064	cmp	r2, r0
3065	bcc	.L321
3066	add	sp, sp, #8
3067	@ sp needed
3068	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3069.L319:
3070	bic	r1, r1, #3
3071	bic	r3, r3, #3
3072	mov	r6, r1
3073	ldr	r1, [sp, #4]
3074	add	r3, r3, r10
3075	str	fp, [r0, #-4]
3076	str	r3, [r0, #-8]
3077	add	r6, r6, r1
3078	mov	r1, lr
3079	str	r6, [r0, #-12]
3080	str	r3, [r4, #-16]
3081	mov	r3, ip
3082	str	r6, [r4, #-20]
3083	b	.L318
3084.L321:
3085	ldr	r3, [sp]
3086	mul	r10, lr, r2
3087	muls	r3, r2, r3
3088	add	r1, r5, r10
3089	str	r8, [r1, #8]
3090	bic	r3, r3, #3
3091	add	r3, r3, r4
3092	str	r3, [r5, r10]
3093	mul	r3, r2, r7
3094	adds	r2, r2, #1
3095	uxth	r2, r2
3096	bic	r3, r3, #3
3097	add	r3, r3, ip
3098	str	r3, [r1, #4]
3099	b	.L320
3100.L323:
3101	.align	2
3102.L322:
3103	.word	.LANCHOR90
3104	.word	.LANCHOR89
3105	.word	.LANCHOR91
3106	.word	.LANCHOR3
3107	.word	.LANCHOR23
3108	.word	.LANCHOR92
3109	.word	.LANCHOR24
3110	.word	.LANCHOR93
3111	.word	.LANCHOR94
3112	.size	FtlGcBufInit, .-FtlGcBufInit
3113	.section	.text.FtlGcBufFree,"ax",%progbits
3114	.align	1
3115	.global	FtlGcBufFree
3116	.syntax unified
3117	.thumb
3118	.thumb_func
3119	.fpu softvfp
3120	.type	FtlGcBufFree, %function
3121FtlGcBufFree:
3122	@ args = 0, pretend = 0, frame = 0
3123	@ frame_needed = 0, uses_anonymous_args = 0
3124	ldr	r3, .L331
3125	mov	ip, #12
3126	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3127	movs	r4, #0
3128	mov	fp, #20
3129	mov	lr, r4
3130	ldr	r7, [r3]
3131	ldr	r3, .L331+4
3132	ldr	r5, [r3]
3133.L325:
3134	uxth	r3, r4
3135	cmp	r1, r3
3136	bls	.L324
3137	mla	r8, fp, r3, r0
3138	movs	r2, #0
3139.L326:
3140	uxth	r3, r2
3141	cmp	r7, r3
3142	bls	.L327
3143	mul	r3, ip, r3
3144	ldr	r6, [r8, #8]
3145	adds	r2, r2, #1
3146	add	r10, r5, r3
3147	ldr	r3, [r5, r3]
3148	cmp	r3, r6
3149	bne	.L326
3150	str	lr, [r10, #8]
3151.L327:
3152	adds	r4, r4, #1
3153	b	.L325
3154.L324:
3155	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3156.L332:
3157	.align	2
3158.L331:
3159	.word	.LANCHOR94
3160	.word	.LANCHOR90
3161	.size	FtlGcBufFree, .-FtlGcBufFree
3162	.section	.text.FtlGcBufAlloc,"ax",%progbits
3163	.align	1
3164	.global	FtlGcBufAlloc
3165	.syntax unified
3166	.thumb
3167	.thumb_func
3168	.fpu softvfp
3169	.type	FtlGcBufAlloc, %function
3170FtlGcBufAlloc:
3171	@ args = 0, pretend = 0, frame = 0
3172	@ frame_needed = 0, uses_anonymous_args = 0
3173	ldr	r3, .L340
3174	movs	r2, #0
3175	push	{r4, r5, r6, r7, r8, r10, lr}
3176	mov	ip, #12
3177	movs	r7, #1
3178	mov	lr, #20
3179	ldr	r4, [r3]
3180	ldr	r3, .L340+4
3181	ldr	r5, [r3]
3182.L334:
3183	uxth	r8, r2
3184	cmp	r1, r8
3185	bhi	.L338
3186	pop	{r4, r5, r6, r7, r8, r10, pc}
3187.L338:
3188	mov	r10, #0
3189.L335:
3190	uxth	r3, r10
3191	cmp	r4, r3
3192	bls	.L336
3193	mla	r3, ip, r3, r5
3194	add	r10, r10, #1
3195	ldr	r6, [r3, #8]
3196	cmp	r6, #0
3197	bne	.L335
3198	mla	r8, lr, r8, r0
3199	str	r7, [r3, #8]
3200	ldr	r6, [r3]
3201	ldr	r3, [r3, #4]
3202	str	r6, [r8, #8]
3203	str	r3, [r8, #12]
3204.L336:
3205	adds	r2, r2, #1
3206	b	.L334
3207.L341:
3208	.align	2
3209.L340:
3210	.word	.LANCHOR94
3211	.word	.LANCHOR90
3212	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
3213	.section	.text.IsBlkInGcList,"ax",%progbits
3214	.align	1
3215	.global	IsBlkInGcList
3216	.syntax unified
3217	.thumb
3218	.thumb_func
3219	.fpu softvfp
3220	.type	IsBlkInGcList, %function
3221IsBlkInGcList:
3222	@ args = 0, pretend = 0, frame = 0
3223	@ frame_needed = 0, uses_anonymous_args = 0
3224	@ link register save eliminated.
3225	ldr	r3, .L347
3226	ldr	r2, .L347+4
3227	ldr	r3, [r3]
3228	ldrh	r2, [r2]
3229	add	r2, r3, r2, lsl #1
3230.L343:
3231	cmp	r3, r2
3232	bne	.L345
3233	movs	r0, #0
3234	bx	lr
3235.L345:
3236	ldrh	r1, [r3], #2
3237	cmp	r1, r0
3238	bne	.L343
3239	movs	r0, #1
3240	bx	lr
3241.L348:
3242	.align	2
3243.L347:
3244	.word	.LANCHOR95
3245	.word	.LANCHOR96
3246	.size	IsBlkInGcList, .-IsBlkInGcList
3247	.section	.text.FtlGcUpdatePage,"ax",%progbits
3248	.align	1
3249	.global	FtlGcUpdatePage
3250	.syntax unified
3251	.thumb
3252	.thumb_func
3253	.fpu softvfp
3254	.type	FtlGcUpdatePage, %function
3255FtlGcUpdatePage:
3256	@ args = 0, pretend = 0, frame = 0
3257	@ frame_needed = 0, uses_anonymous_args = 0
3258	push	{r3, r4, r5, r6, r7, lr}
3259	mov	r5, r0
3260	ldr	r4, .L353
3261	ubfx	r0, r0, #10, #16
3262	mov	r6, r1
3263	mov	r7, r2
3264	bl	P2V_block_in_plane
3265	ldr	r3, .L353+4
3266	ldrh	r1, [r4]
3267	ldr	r2, [r3]
3268	movs	r3, #0
3269.L350:
3270	uxth	ip, r3
3271	cmp	ip, r1
3272	bcc	.L352
3273	bne	.L351
3274	strh	r0, [r2, ip, lsl #1]	@ movhi
3275	ldrh	r3, [r4]
3276	adds	r3, r3, #1
3277	strh	r3, [r4]	@ movhi
3278	b	.L351
3279.L352:
3280	adds	r3, r3, #1
3281	add	ip, r2, r3, lsl #1
3282	ldrh	ip, [ip, #-2]
3283	cmp	ip, r0
3284	bne	.L350
3285.L351:
3286	ldr	r2, .L353+8
3287	movs	r0, #12
3288	ldr	r1, .L353+12
3289	ldrh	r3, [r2]
3290	ldr	r1, [r1]
3291	muls	r0, r3, r0
3292	adds	r3, r3, #1
3293	adds	r4, r1, r0
3294	str	r6, [r4, #4]
3295	str	r7, [r4, #8]
3296	str	r5, [r1, r0]
3297	strh	r3, [r2]	@ movhi
3298	pop	{r3, r4, r5, r6, r7, pc}
3299.L354:
3300	.align	2
3301.L353:
3302	.word	.LANCHOR96
3303	.word	.LANCHOR95
3304	.word	.LANCHOR97
3305	.word	.LANCHOR98
3306	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
3307	.section	.text.FtlGcRefreshBlock,"ax",%progbits
3308	.align	1
3309	.global	FtlGcRefreshBlock
3310	.syntax unified
3311	.thumb
3312	.thumb_func
3313	.fpu softvfp
3314	.type	FtlGcRefreshBlock, %function
3315FtlGcRefreshBlock:
3316	@ args = 0, pretend = 0, frame = 0
3317	@ frame_needed = 0, uses_anonymous_args = 0
3318	push	{r3, r4, r5, lr}
3319	mov	r1, r0
3320	mov	r4, r0
3321	ldr	r0, .L358
3322	bl	printf
3323	ldr	r0, .L358+4
3324	ldrh	r5, [r0]
3325	cmp	r4, r5
3326	beq	.L356
3327	ldr	r3, .L358+8
3328	ldrh	r1, [r3]
3329	cmp	r4, r1
3330	beq	.L356
3331	movw	r2, #65535
3332	cmp	r5, r2
3333	bne	.L357
3334	strh	r4, [r0]	@ movhi
3335.L356:
3336	movs	r0, #0
3337	pop	{r3, r4, r5, pc}
3338.L357:
3339	cmp	r1, r2
3340	it	eq
3341	strheq	r4, [r3]	@ movhi
3342	b	.L356
3343.L359:
3344	.align	2
3345.L358:
3346	.word	.LC73
3347	.word	.LANCHOR99
3348	.word	.LANCHOR100
3349	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
3350	.section	.text.FtlGcMarkBadPhyBlk,"ax",%progbits
3351	.align	1
3352	.global	FtlGcMarkBadPhyBlk
3353	.syntax unified
3354	.thumb
3355	.thumb_func
3356	.fpu softvfp
3357	.type	FtlGcMarkBadPhyBlk, %function
3358FtlGcMarkBadPhyBlk:
3359	@ args = 0, pretend = 0, frame = 0
3360	@ frame_needed = 0, uses_anonymous_args = 0
3361	push	{r4, r5, r6, lr}
3362	mov	r5, r0
3363	ldr	r4, .L364
3364	bl	P2V_block_in_plane
3365	mov	r2, r5
3366	mov	r6, r0
3367	ldrh	r1, [r4]
3368	ldr	r0, .L364+4
3369	bl	printf
3370	mov	r0, r6
3371	bl	FtlGcRefreshBlock
3372	ldrh	r3, [r4]
3373	movs	r2, #0
3374	ldr	r0, .L364+8
3375.L361:
3376	uxth	r1, r2
3377	cmp	r3, r1
3378	bhi	.L363
3379	cmp	r3, #15
3380	itttt	ls
3381	addls	r2, r3, #1
3382	strhls	r2, [r4]	@ movhi
3383	ldrls	r2, .L364+8
3384	strhls	r5, [r2, r3, lsl #1]	@ movhi
3385	b	.L362
3386.L363:
3387	adds	r2, r2, #1
3388	add	r1, r0, r2, lsl #1
3389	ldrh	r1, [r1, #-2]
3390	cmp	r1, r5
3391	bne	.L361
3392.L362:
3393	movs	r0, #0
3394	pop	{r4, r5, r6, pc}
3395.L365:
3396	.align	2
3397.L364:
3398	.word	.LANCHOR101
3399	.word	.LC74
3400	.word	.LANCHOR102
3401	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
3402	.section	.text.FtlGcReFreshBadBlk,"ax",%progbits
3403	.align	1
3404	.global	FtlGcReFreshBadBlk
3405	.syntax unified
3406	.thumb
3407	.thumb_func
3408	.fpu softvfp
3409	.type	FtlGcReFreshBadBlk, %function
3410FtlGcReFreshBadBlk:
3411	@ args = 0, pretend = 0, frame = 0
3412	@ frame_needed = 0, uses_anonymous_args = 0
3413	ldr	r3, .L372
3414	push	{r4, lr}
3415	ldrh	r3, [r3]
3416	cbz	r3, .L367
3417	ldr	r2, .L372+4
3418	ldrh	r1, [r2]
3419	movw	r2, #65535
3420	cmp	r1, r2
3421	bne	.L367
3422	ldr	r4, .L372+8
3423	ldrh	r2, [r4]
3424	cmp	r2, r3
3425	itt	cs
3426	movcs	r3, #0
3427	strhcs	r3, [r4]	@ movhi
3428	ldr	r3, .L372+12
3429	ldrh	r2, [r4]
3430	ldrh	r0, [r3, r2, lsl #1]
3431	bl	P2V_block_in_plane
3432	bl	FtlGcRefreshBlock
3433	ldrh	r3, [r4]
3434	adds	r3, r3, #1
3435	strh	r3, [r4]	@ movhi
3436.L367:
3437	movs	r0, #0
3438	pop	{r4, pc}
3439.L373:
3440	.align	2
3441.L372:
3442	.word	.LANCHOR101
3443	.word	.LANCHOR99
3444	.word	.LANCHOR103
3445	.word	.LANCHOR102
3446	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
3447	.section	.text.ftl_malloc,"ax",%progbits
3448	.align	1
3449	.global	ftl_malloc
3450	.syntax unified
3451	.thumb
3452	.thumb_func
3453	.fpu softvfp
3454	.type	ftl_malloc, %function
3455ftl_malloc:
3456	@ args = 0, pretend = 0, frame = 0
3457	@ frame_needed = 0, uses_anonymous_args = 0
3458	@ link register save eliminated.
3459	movs	r1, #0
3460	b	kmalloc
3461	.size	ftl_malloc, .-ftl_malloc
3462	.section	.text.ftl_free,"ax",%progbits
3463	.align	1
3464	.global	ftl_free
3465	.syntax unified
3466	.thumb
3467	.thumb_func
3468	.fpu softvfp
3469	.type	ftl_free, %function
3470ftl_free:
3471	@ args = 0, pretend = 0, frame = 0
3472	@ frame_needed = 0, uses_anonymous_args = 0
3473	@ link register save eliminated.
3474	b	free
3475	.size	ftl_free, .-ftl_free
3476	.section	.text.rknand_print_hex,"ax",%progbits
3477	.align	1
3478	.global	rknand_print_hex
3479	.syntax unified
3480	.thumb
3481	.thumb_func
3482	.fpu softvfp
3483	.type	rknand_print_hex, %function
3484rknand_print_hex:
3485	@ args = 0, pretend = 0, frame = 0
3486	@ frame_needed = 0, uses_anonymous_args = 0
3487	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3488	movs	r6, #0
3489	mov	fp, r0
3490	mov	r7, r1
3491	mov	r8, r2
3492	mov	r10, r3
3493	mov	r5, r6
3494	mov	r4, r6
3495.L377:
3496	cmp	r4, r10
3497	bcc	.L383
3498	ldr	r0, .L386
3499	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
3500	b	printf
3501.L383:
3502	cbnz	r5, .L378
3503	mov	r2, r6
3504	mov	r1, fp
3505	ldr	r0, .L386+4
3506	bl	printf
3507.L378:
3508	cmp	r8, #4
3509	bne	.L379
3510	ldr	r1, [r7, r4, lsl #2]
3511.L385:
3512	ldr	r0, .L386+8
3513.L384:
3514	adds	r5, r5, #1
3515	bl	printf
3516	cmp	r5, #15
3517	bls	.L382
3518	movs	r5, #0
3519	ldr	r0, .L386
3520	bl	printf
3521.L382:
3522	adds	r4, r4, #1
3523	add	r6, r6, r8
3524	b	.L377
3525.L379:
3526	cmp	r8, #2
3527	bne	.L381
3528	ldrh	r1, [r7, r4, lsl #1]
3529	b	.L385
3530.L381:
3531	ldrb	r1, [r7, r4]	@ zero_extendqisi2
3532	ldr	r0, .L386+12
3533	b	.L384
3534.L387:
3535	.align	2
3536.L386:
3537	.word	.LC78
3538	.word	.LC75
3539	.word	.LC76
3540	.word	.LC77
3541	.size	rknand_print_hex, .-rknand_print_hex
3542	.section	.text.FlashEraseBlocks,"ax",%progbits
3543	.align	1
3544	.global	FlashEraseBlocks
3545	.syntax unified
3546	.thumb
3547	.thumb_func
3548	.fpu softvfp
3549	.type	FlashEraseBlocks, %function
3550FlashEraseBlocks:
3551	@ args = 0, pretend = 0, frame = 16
3552	@ frame_needed = 0, uses_anonymous_args = 0
3553	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
3554	mov	r4, r0
3555	ldr	r6, .L404
3556	add	r8, r0, #4
3557	movs	r7, #0
3558	ldr	fp, .L404+20
3559	ldrh	r10, [r6, #12]
3560	str	r2, [sp]
3561	lsl	r3, r10, #3
3562	str	r3, [sp, #4]
3563.L389:
3564	ldr	r3, [sp]
3565	cmp	r7, r3
3566	beq	.L403
3567	add	r2, sp, #8
3568	add	r1, sp, #12
3569	ldr	r0, [r8]
3570	bl	l2p_addr_tran.isra.0
3571	ldr	r5, [sp, #8]
3572	cbnz	r5, .L390
3573	ldr	r2, [sp, #12]
3574	ldr	r3, [sp, #4]
3575	cmp	r3, r2
3576	bls	.L390
3577	ldr	r6, .L404+4
3578	ldr	r7, .L404+8
3579.L391:
3580	ldr	r3, [sp]
3581	adds	r4, r4, #20
3582	cmp	r5, r3
3583	bne	.L392
3584.L403:
3585	movs	r0, #0
3586	add	sp, sp, #16
3587	@ sp needed
3588	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3589.L392:
3590	mov	r3, #-1
3591	ldr	r2, [sp, #12]
3592	str	r3, [r4, #-20]
3593	mov	r1, r6
3594	mov	r0, r7
3595	adds	r5, r5, #1
3596	bl	printf
3597	movs	r3, #16
3598	movs	r2, #4
3599	ldr	r1, [r4, #-12]
3600	ldr	r0, .L404+12
3601	bl	rknand_print_hex
3602	movs	r3, #4
3603	ldr	r1, [r4, #-8]
3604	mov	r2, r3
3605	ldr	r0, .L404+16
3606	bl	rknand_print_hex
3607	b	.L391
3608.L390:
3609	ldr	r2, [fp, #4]
3610	uxtb	r0, r5
3611	ldr	r1, [sp, #12]
3612	blx	r2
3613	cbnz	r0, .L393
3614	str	r0, [r8, #-4]
3615.L394:
3616	ldrh	r2, [r6, #14]
3617	cmp	r2, #4
3618	bne	.L396
3619	ldr	r1, [sp, #12]
3620	ldr	r2, [fp, #4]
3621	ldrb	r0, [sp, #8]	@ zero_extendqisi2
3622	add	r1, r1, r10
3623	blx	r2
3624	cbz	r0, .L396
3625	mov	r2, #-1
3626	str	r2, [r8, #-4]
3627.L396:
3628	adds	r7, r7, #1
3629	add	r8, r8, #20
3630	b	.L389
3631.L393:
3632	mov	r2, #-1
3633	str	r2, [r8, #-4]
3634	b	.L394
3635.L405:
3636	.align	2
3637.L404:
3638	.word	.LANCHOR0
3639	.word	.LANCHOR104
3640	.word	.LC79
3641	.word	.LC80
3642	.word	.LC81
3643	.word	.LANCHOR105
3644	.size	FlashEraseBlocks, .-FlashEraseBlocks
3645	.section	.text.FtlFreeSysBlkQueueIn,"ax",%progbits
3646	.align	1
3647	.global	FtlFreeSysBlkQueueIn
3648	.syntax unified
3649	.thumb
3650	.thumb_func
3651	.fpu softvfp
3652	.type	FtlFreeSysBlkQueueIn, %function
3653FtlFreeSysBlkQueueIn:
3654	@ args = 0, pretend = 0, frame = 0
3655	@ frame_needed = 0, uses_anonymous_args = 0
3656	subs	r3, r0, #1
3657	movw	r2, #65533
3658	uxth	r3, r3
3659	push	{r4, r5, r6, lr}
3660	mov	r5, r0
3661	cmp	r3, r2
3662	bhi	.L406
3663	ldr	r4, .L415
3664	ldrh	r3, [r4, #6]
3665	cmp	r3, #1024
3666	beq	.L406
3667	cbz	r1, .L408
3668	bl	P2V_block_in_plane
3669	ldr	r3, .L415+4
3670	mov	r6, r0
3671	movs	r2, #1
3672	mov	r1, r2
3673	ldr	r0, [r3]
3674	lsls	r3, r5, #10
3675	str	r3, [r0, #4]
3676	bl	FlashEraseBlocks
3677	ldr	r3, .L415+8
3678	ldr	r2, [r3]
3679	ldrh	r3, [r2, r6, lsl #1]
3680	adds	r3, r3, #1
3681	strh	r3, [r2, r6, lsl #1]	@ movhi
3682	ldr	r2, .L415+12
3683	ldr	r3, [r2]
3684	adds	r3, r3, #1
3685	str	r3, [r2]
3686.L408:
3687	ldrh	r3, [r4, #6]
3688	adds	r3, r3, #1
3689	strh	r3, [r4, #6]	@ movhi
3690	ldrh	r3, [r4, #4]
3691	adds	r2, r3, #4
3692	adds	r3, r3, #1
3693	ubfx	r3, r3, #0, #10
3694	strh	r5, [r4, r2, lsl #1]	@ movhi
3695	strh	r3, [r4, #4]	@ movhi
3696.L406:
3697	pop	{r4, r5, r6, pc}
3698.L416:
3699	.align	2
3700.L415:
3701	.word	.LANCHOR38
3702	.word	.LANCHOR106
3703	.word	.LANCHOR43
3704	.word	.LANCHOR75
3705	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3706	.section	.text.FtlFreeSysBlkQueueOut,"ax",%progbits
3707	.align	1
3708	.global	FtlFreeSysBlkQueueOut
3709	.syntax unified
3710	.thumb
3711	.thumb_func
3712	.fpu softvfp
3713	.type	FtlFreeSysBlkQueueOut, %function
3714FtlFreeSysBlkQueueOut:
3715	@ args = 0, pretend = 0, frame = 0
3716	@ frame_needed = 0, uses_anonymous_args = 0
3717	push	{r3, r4, r5, lr}
3718	ldr	r4, .L422
3719	ldrh	r2, [r4, #6]
3720	cbz	r2, .L421
3721	ldrh	r3, [r4, #2]
3722	subs	r2, r2, #1
3723	strh	r2, [r4, #6]	@ movhi
3724	movs	r2, #1
3725	adds	r1, r3, #4
3726	adds	r3, r3, #1
3727	ubfx	r3, r3, #0, #10
3728	ldrh	r5, [r4, r1, lsl #1]
3729	strh	r3, [r4, #2]	@ movhi
3730	mov	r1, r2
3731	ldr	r3, .L422+4
3732	ldr	r0, [r3]
3733	lsls	r3, r5, #10
3734	str	r3, [r0, #4]
3735	bl	FlashEraseBlocks
3736	ldr	r2, .L422+8
3737	ldr	r3, [r2]
3738	adds	r3, r3, #1
3739	str	r3, [r2]
3740.L418:
3741	subs	r3, r5, #1
3742	movw	r2, #65533
3743	uxth	r3, r3
3744	cmp	r3, r2
3745	bls	.L419
3746	ldrh	r2, [r4, #6]
3747	mov	r1, r5
3748	ldr	r0, .L422+12
3749	bl	printf
3750.L420:
3751	b	.L420
3752.L421:
3753	movw	r5, #65535
3754	b	.L418
3755.L419:
3756	mov	r0, r5
3757	pop	{r3, r4, r5, pc}
3758.L423:
3759	.align	2
3760.L422:
3761	.word	.LANCHOR38
3762	.word	.LANCHOR106
3763	.word	.LANCHOR75
3764	.word	.LC82
3765	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3766	.section	.text.ftl_map_blk_alloc_new_blk,"ax",%progbits
3767	.align	1
3768	.global	ftl_map_blk_alloc_new_blk
3769	.syntax unified
3770	.thumb
3771	.thumb_func
3772	.fpu softvfp
3773	.type	ftl_map_blk_alloc_new_blk, %function
3774ftl_map_blk_alloc_new_blk:
3775	@ args = 0, pretend = 0, frame = 0
3776	@ frame_needed = 0, uses_anonymous_args = 0
3777	ldrh	r1, [r0, #10]
3778	ldr	r2, [r0, #12]
3779	push	{r3, r4, r5, r6, r7, lr}
3780	mov	r4, r0
3781	movs	r3, #0
3782.L425:
3783	uxth	r5, r3
3784	cmp	r5, r1
3785	bcs	.L428
3786	mov	r7, r2
3787	adds	r3, r3, #1
3788	ldrh	r6, [r7]
3789	adds	r2, r2, #2
3790	cmp	r6, #0
3791	bne	.L425
3792	bl	FtlFreeSysBlkQueueOut
3793	subs	r3, r0, #1
3794	movw	r2, #65533
3795	uxth	r3, r3
3796	mov	r1, r0
3797	strh	r0, [r7]	@ movhi
3798	cmp	r3, r2
3799	bls	.L426
3800	ldr	r3, .L432
3801	ldr	r0, .L432+4
3802	ldrh	r2, [r3, #6]
3803	bl	printf
3804.L427:
3805	b	.L427
3806.L426:
3807	ldr	r3, [r4, #28]
3808	strh	r6, [r4, #2]	@ movhi
3809	strh	r5, [r4]	@ movhi
3810	adds	r3, r3, #1
3811	str	r3, [r4, #28]
3812	ldrh	r3, [r4, #8]
3813	adds	r3, r3, #1
3814	strh	r3, [r4, #8]	@ movhi
3815.L428:
3816	ldrh	r3, [r4, #10]
3817	cmp	r3, r5
3818	bhi	.L430
3819	movw	r2, #578
3820	ldr	r1, .L432+8
3821	ldr	r0, .L432+12
3822	bl	printf
3823.L430:
3824	movs	r0, #0
3825	pop	{r3, r4, r5, r6, r7, pc}
3826.L433:
3827	.align	2
3828.L432:
3829	.word	.LANCHOR38
3830	.word	.LC83
3831	.word	.LANCHOR107
3832	.word	.LC1
3833	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
3834	.section	.text.ftl_memset,"ax",%progbits
3835	.align	1
3836	.global	ftl_memset
3837	.syntax unified
3838	.thumb
3839	.thumb_func
3840	.fpu softvfp
3841	.type	ftl_memset, %function
3842ftl_memset:
3843	@ args = 0, pretend = 0, frame = 0
3844	@ frame_needed = 0, uses_anonymous_args = 0
3845	@ link register save eliminated.
3846	b	memset
3847	.size	ftl_memset, .-ftl_memset
3848	.section	.text.FtlMemInit,"ax",%progbits
3849	.align	1
3850	.global	FtlMemInit
3851	.syntax unified
3852	.thumb
3853	.thumb_func
3854	.fpu softvfp
3855	.type	FtlMemInit, %function
3856FtlMemInit:
3857	@ args = 0, pretend = 0, frame = 24
3858	@ frame_needed = 0, uses_anonymous_args = 0
3859	ldr	r3, .L536
3860	movs	r1, #0
3861	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3862	sub	sp, sp, #24
3863	ldr	r2, .L536+4
3864	mov	r10, #12
3865	str	r1, [r3]
3866	ldr	r3, .L536+8
3867	ldr	r4, .L536+12
3868	ldr	r8, .L536+292
3869	str	r1, [r3]
3870	ldr	r3, .L536+16
3871	ldrh	r0, [r4]
3872	str	r1, [sp, #12]
3873	str	r1, [r3]
3874	ldr	r3, .L536+20
3875	lsls	r0, r0, #1
3876	ldr	r6, .L536+24
3877	ldr	fp, .L536+296
3878	str	r1, [r3]
3879	ldr	r3, .L536+28
3880	ldr	r7, .L536+32
3881	str	r1, [r3]
3882	ldr	r3, .L536+36
3883	str	r1, [r3]
3884	ldr	r3, .L536+40
3885	str	r1, [r3]
3886	ldr	r3, .L536+44
3887	str	r1, [r3]
3888	ldr	r3, .L536+48
3889	str	r1, [r3]
3890	ldr	r3, .L536+52
3891	str	r1, [r3]
3892	ldr	r3, .L536+56
3893	str	r1, [r3]
3894	ldr	r3, .L536+60
3895	str	r1, [r3]
3896	ldr	r3, .L536+64
3897	str	r1, [r3]
3898	ldr	r3, .L536+68
3899	str	r1, [r3]
3900	ldr	r3, .L536+72
3901	str	r1, [r3]
3902	movw	r3, #65535
3903	str	r3, [r2]
3904	ldr	r2, .L536+76
3905	str	r1, [r2]
3906	ldr	r2, .L536+80
3907	str	r1, [r2]
3908	ldr	r2, .L536+84
3909	str	r1, [r2]
3910	ldr	r2, .L536+88
3911	strh	r3, [r2]	@ movhi
3912	ldr	r2, .L536+92
3913	strh	r3, [r2]	@ movhi
3914	movs	r2, #32
3915	ldr	r3, .L536+96
3916	strh	r2, [r3]	@ movhi
3917	movs	r2, #128
3918	ldr	r3, .L536+100
3919	strh	r2, [r3]	@ movhi
3920	ldr	r3, .L536+104
3921	strh	r1, [r3]	@ movhi
3922	ldr	r3, .L536+108
3923	strh	r1, [r3]	@ movhi
3924	ldr	r3, .L536+112
3925	strh	r1, [r3]	@ movhi
3926	bl	ftl_malloc
3927	str	r0, [r8]
3928	ldrh	r0, [r4]
3929	movs	r4, #20
3930	mul	r0, r10, r0
3931	bl	ftl_malloc
3932	ldr	r3, .L536+116
3933	str	r0, [r3]
3934	ldrh	r3, [r6]
3935	muls	r4, r3, r4
3936	lsls	r5, r4, #2
3937	mov	r0, r5
3938	bl	ftl_malloc
3939	ldr	r3, .L536+120
3940	str	r0, [r3]
3941	mov	r0, r4
3942	bl	ftl_malloc
3943	ldr	r3, .L536+124
3944	str	r0, [r3]
3945	mov	r0, r5
3946	bl	ftl_malloc
3947	str	r0, [fp]
3948	mov	r0, r4
3949	bl	ftl_malloc
3950	ldr	r3, .L536+128
3951	ldr	r5, .L536+132
3952	str	r0, [r3]
3953	mov	r0, r4
3954	bl	ftl_malloc
3955	ldr	r3, .L536+136
3956	str	r0, [r3]
3957	ldrh	r0, [r6]
3958	ldr	r3, .L536+140
3959	lsls	r0, r0, #1
3960	ldrh	r4, [r3]
3961	adds	r0, r0, #1
3962	str	r0, [r5]
3963	mov	r0, r4
3964	bl	ftl_malloc
3965	ldr	r3, .L536+144
3966	str	r0, [r3]
3967	mov	r0, r4
3968	bl	ftl_malloc
3969	ldr	r3, .L536+148
3970	str	r0, [r3]
3971	mov	r0, r4
3972	bl	ftl_malloc
3973	str	r0, [r7]
3974	ldr	r0, [r5]
3975	muls	r0, r4, r0
3976	bl	ftl_malloc
3977	ldr	r3, .L536+152
3978	str	r0, [r3]
3979	mov	r0, r4
3980	bl	ftl_malloc
3981	ldr	r3, .L536+156
3982	str	r0, [r3]
3983	mov	r0, r4
3984	bl	ftl_malloc
3985	ldr	r3, .L536+160
3986	str	r0, [r3]
3987	ldr	r0, [r5]
3988	mul	r0, r10, r0
3989	bl	ftl_malloc
3990	ldr	r3, .L536+164
3991	str	r0, [r3]
3992	mov	r0, r4
3993	bl	ftl_malloc
3994	ldr	r3, .L536+168
3995	str	r0, [r3]
3996	mov	r0, r4
3997	ldr	r4, .L536+172
3998	bl	ftl_malloc
3999	str	r0, [r4]
4000	ldr	r0, .L536+176
4001	ldr	r4, .L536+180
4002	ldrh	r0, [r0]
4003	lsls	r0, r0, #2
4004	bl	ftl_malloc
4005	str	r0, [r4]
4006	ldr	r4, .L536+184
4007	ldrh	r2, [r6]
4008	ldr	r6, .L536+152
4009	ldrh	r0, [r4]
4010	muls	r2, r0, r2
4011	mov	r0, r2
4012	str	r2, [sp, #4]
4013	bl	ftl_malloc
4014	ldr	r2, [sp, #4]
4015	ldr	r3, .L536+188
4016	str	r0, [r3]
4017	lsls	r0, r2, #2
4018	bl	ftl_malloc
4019	ldr	r2, .L536+192
4020	str	r0, [r2]
4021	ldrh	r2, [r4]
4022	ldr	r0, [r5]
4023	ldr	r4, .L536+196
4024	ldr	r5, .L536+200
4025	muls	r0, r2, r0
4026	bl	ftl_malloc
4027	ldr	r3, .L536+204
4028	str	r0, [r3]
4029	ldrh	r0, [r4]
4030	lsls	r0, r0, #1
4031	uxth	r0, r0
4032	strh	r0, [r5]	@ movhi
4033	bl	ftl_malloc
4034	ldr	r2, .L536+208
4035	str	r0, [r2]
4036	ldrh	r2, [r5]
4037	ldr	r0, .L536+212
4038	addw	r2, r2, #547
4039	lsrs	r2, r2, #9
4040	and	r0, r0, r2, lsl #9
4041	strh	r2, [r5]	@ movhi
4042	bl	ftl_malloc
4043	ldr	r3, .L536+216
4044	str	r0, [r3]
4045	adds	r0, r0, #32
4046	ldr	r3, .L536+220
4047	str	r0, [r3]
4048	ldrh	r3, [r4]
4049	lsls	r5, r3, #1
4050	mov	r0, r5
4051	bl	ftl_malloc
4052	ldr	r2, .L536+224
4053	str	r0, [r2]
4054	mov	r0, r5
4055	bl	ftl_malloc
4056	ldr	r3, .L536+228
4057	str	r0, [r3]
4058	ldr	r3, .L536+232
4059	ldr	r2, [r3]
4060	str	r3, [sp, #8]
4061	lsls	r5, r2, #1
4062	mov	r0, r5
4063	bl	ftl_malloc
4064	ldr	r2, .L536+236
4065	str	r0, [r2]
4066	mov	r0, r5
4067	bl	ftl_malloc
4068	ldr	r2, .L536+240
4069	ldr	r5, .L536+244
4070	str	r0, [r2]
4071	ldrh	r0, [r4]
4072	lsrs	r0, r0, #3
4073	adds	r0, r0, #4
4074	bl	ftl_malloc
4075	ldr	r2, .L536+248
4076	str	r0, [r2]
4077	ldrh	r0, [r5]
4078	lsls	r0, r0, #1
4079	bl	ftl_malloc
4080	ldr	r2, .L536+252
4081	str	r0, [r2]
4082	ldrh	r0, [r5]
4083	lsls	r0, r0, #1
4084	bl	ftl_malloc
4085	ldr	r2, .L536+256
4086	str	r0, [r2]
4087	ldrh	r0, [r5]
4088	ldr	r5, .L536+116
4089	lsls	r0, r0, #2
4090	bl	ftl_malloc
4091	ldr	r2, .L536+260
4092	str	r0, [r2]
4093	ldr	r2, .L536+264
4094	ldrh	r0, [r2]
4095	str	r2, [sp, #4]
4096	lsls	r0, r0, #2
4097	bl	ftl_malloc
4098	ldr	r2, [sp, #4]
4099	ldr	ip, .L536+300
4100	ldr	r1, [sp, #12]
4101	ldrh	r2, [r2]
4102	str	r0, [ip]
4103	lsls	r2, r2, #2
4104	bl	ftl_memset
4105	ldr	r2, .L536+268
4106	ldrh	r0, [r2]
4107	lsls	r0, r0, #2
4108	bl	ftl_malloc
4109	ldr	r2, .L536+272
4110	ldr	r3, [sp, #8]
4111	str	r0, [r2]
4112	ldr	r0, [r3]
4113	lsls	r0, r0, #2
4114	bl	ftl_malloc
4115	ldr	r3, .L536+276
4116	str	r0, [r3]
4117	ldr	r3, .L536+280
4118	ldrh	r0, [r3]
4119	str	r3, [sp, #4]
4120	mul	r0, r10, r0
4121	ldr	r10, .L536+304
4122	bl	ftl_malloc
4123	ldr	r2, .L536+284
4124	ldr	r3, [sp, #4]
4125	str	r0, [r2]
4126	ldr	r2, .L536+140
4127	ldrh	r3, [r3]
4128	ldrh	r0, [r2]
4129	muls	r0, r3, r0
4130	bl	ftl_malloc
4131	ldr	r3, .L536+288
4132	str	r0, [r3]
4133	movs	r0, #6
4134	ldrh	r3, [r4]
4135	b	.L537
4136.L538:
4137	.align	2
4138.L536:
4139	.word	.LANCHOR70
4140	.word	.LANCHOR109
4141	.word	.LANCHOR71
4142	.word	.LANCHOR21
4143	.word	.LANCHOR67
4144	.word	.LANCHOR64
4145	.word	.LANCHOR3
4146	.word	.LANCHOR63
4147	.word	.LANCHOR117
4148	.word	.LANCHOR65
4149	.word	.LANCHOR66
4150	.word	.LANCHOR62
4151	.word	.LANCHOR72
4152	.word	.LANCHOR73
4153	.word	.LANCHOR75
4154	.word	.LANCHOR76
4155	.word	.LANCHOR77
4156	.word	.LANCHOR108
4157	.word	.LANCHOR87
4158	.word	.LANCHOR110
4159	.word	.LANCHOR84
4160	.word	.LANCHOR111
4161	.word	.LANCHOR99
4162	.word	.LANCHOR100
4163	.word	.LANCHOR82
4164	.word	.LANCHOR83
4165	.word	.LANCHOR85
4166	.word	.LANCHOR101
4167	.word	.LANCHOR103
4168	.word	.LANCHOR98
4169	.word	.LANCHOR112
4170	.word	.LANCHOR113
4171	.word	.LANCHOR106
4172	.word	.LANCHOR94
4173	.word	.LANCHOR93
4174	.word	.LANCHOR23
4175	.word	.LANCHOR115
4176	.word	.LANCHOR116
4177	.word	.LANCHOR91
4178	.word	.LANCHOR118
4179	.word	.LANCHOR119
4180	.word	.LANCHOR90
4181	.word	.LANCHOR120
4182	.word	.LANCHOR121
4183	.word	.LANCHOR12
4184	.word	.LANCHOR122
4185	.word	.LANCHOR24
4186	.word	.LANCHOR123
4187	.word	.LANCHOR124
4188	.word	.LANCHOR6
4189	.word	.LANCHOR125
4190	.word	.LANCHOR92
4191	.word	.LANCHOR126
4192	.word	33553920
4193	.word	.LANCHOR127
4194	.word	.LANCHOR43
4195	.word	.LANCHOR128
4196	.word	.LANCHOR42
4197	.word	.LANCHOR30
4198	.word	.LANCHOR129
4199	.word	.LANCHOR130
4200	.word	.LANCHOR27
4201	.word	.LANCHOR1
4202	.word	.LANCHOR36
4203	.word	.LANCHOR131
4204	.word	.LANCHOR132
4205	.word	.LANCHOR28
4206	.word	.LANCHOR32
4207	.word	.LANCHOR134
4208	.word	.LANCHOR135
4209	.word	.LANCHOR33
4210	.word	.LANCHOR55
4211	.word	.LANCHOR136
4212	.word	.LANCHOR95
4213	.word	.LANCHOR114
4214	.word	.LANCHOR133
4215	.word	.LANCHOR10
4216.L537:
4217	ldr	r4, .L539
4218	muls	r0, r3, r0
4219	bl	ftl_malloc
4220	ldr	r3, .L539+4
4221	str	r0, [r3]
4222	ldr	r3, .L539+8
4223	ldrh	r0, [r3]
4224	ldrh	r3, [r10]
4225	adds	r0, r0, #31
4226	asrs	r0, r0, #5
4227	strh	r0, [r4]	@ movhi
4228	muls	r0, r3, r0
4229	lsls	r0, r0, #2
4230	bl	ftl_malloc
4231	ldr	r2, .L539+12
4232	str	r5, [sp, #8]
4233	ldr	r5, .L539+16
4234	mov	r1, r2
4235	ldrh	r3, [r10]
4236	str	r0, [r1, #28]!
4237	ldrh	r0, [r4]
4238	str	r5, [sp, #12]
4239	ldr	r5, .L539+20
4240	ldr	r10, .L539+116
4241	lsls	r0, r0, #2
4242	ldr	lr, .L539+120
4243	ldr	ip, .L539+124
4244	str	r5, [sp, #16]
4245	mov	r4, r0
4246	ldr	r5, .L539+24
4247	str	r3, [sp, #4]
4248	movs	r3, #1
4249	str	r5, [sp, #20]
4250.L436:
4251	ldr	r5, [sp, #4]
4252	cmp	r3, r5
4253	bcc	.L437
4254	add	r3, r2, r3, lsl #2
4255	ldr	r1, .L539+28
4256	movs	r0, #0
4257	adds	r3, r3, #24
4258.L438:
4259	cmp	r1, r3
4260	bne	.L439
4261	ldr	r3, .L539+32
4262	ldr	r3, [r3]
4263	cbnz	r3, .L440
4264.L442:
4265	ldr	r1, .L539+36
4266	ldr	r0, .L539+40
4267	bl	printf
4268	mov	r0, #-1
4269.L435:
4270	add	sp, sp, #24
4271	@ sp needed
4272	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4273.L437:
4274	ldr	r5, [r2, #28]
4275	adds	r3, r3, #1
4276	add	r5, r5, r4
4277	add	r4, r4, r0
4278	str	r5, [r1, #4]!
4279	b	.L436
4280.L439:
4281	str	r0, [r3, #4]!
4282	b	.L438
4283.L440:
4284	ldr	r3, .L539+44
4285	ldr	r3, [r3]
4286	cmp	r3, #0
4287	beq	.L442
4288	ldr	r3, .L539+48
4289	ldr	r3, [r3]
4290	cmp	r3, #0
4291	beq	.L442
4292	ldr	r3, .L539+52
4293	ldr	r3, [r3]
4294	cmp	r3, #0
4295	beq	.L442
4296	ldr	r3, .L539+56
4297	ldr	r3, [r3]
4298	cmp	r3, #0
4299	beq	.L442
4300	ldr	r3, .L539+60
4301	ldr	r3, [r3]
4302	cmp	r3, #0
4303	beq	.L442
4304	ldr	r3, .L539+4
4305	ldr	r3, [r3]
4306	cmp	r3, #0
4307	beq	.L442
4308	ldr	r3, [r2, #28]
4309	cmp	r3, #0
4310	beq	.L442
4311	ldr	r3, .L539+64
4312	ldr	r3, [r3]
4313	cmp	r3, #0
4314	beq	.L442
4315	ldr	r3, [r8]
4316	cmp	r3, #0
4317	beq	.L442
4318	ldr	r3, [sp, #8]
4319	ldr	r3, [r3]
4320	cmp	r3, #0
4321	beq	.L442
4322	ldr	r3, [sp, #12]
4323	ldr	r3, [r3]
4324	cmp	r3, #0
4325	beq	.L442
4326	ldr	r3, [fp]
4327	cmp	r3, #0
4328	beq	.L442
4329	ldr	r3, [r10]
4330	cmp	r3, #0
4331	beq	.L442
4332	ldr	r3, [sp, #20]
4333	ldr	r3, [r3]
4334	cmp	r3, #0
4335	beq	.L442
4336	ldr	r3, [sp, #16]
4337	ldr	r3, [r3]
4338	cmp	r3, #0
4339	beq	.L442
4340	ldr	r3, [lr]
4341	cmp	r3, #0
4342	beq	.L442
4343	ldr	r3, [ip]
4344	cmp	r3, #0
4345	beq	.L442
4346	ldr	r3, [r7]
4347	cmp	r3, #0
4348	beq	.L442
4349	ldr	r3, [r6]
4350	cmp	r3, #0
4351	beq	.L442
4352	ldr	r3, .L539+68
4353	ldr	r3, [r3]
4354	cmp	r3, #0
4355	beq	.L442
4356	ldr	r3, .L539+72
4357	ldr	r3, [r3]
4358	cmp	r3, #0
4359	beq	.L442
4360	ldr	r3, .L539+76
4361	ldr	r3, [r3]
4362	cmp	r3, #0
4363	beq	.L442
4364	ldr	r3, .L539+80
4365	ldr	r3, [r3]
4366	cmp	r3, #0
4367	beq	.L442
4368	ldr	r3, .L539+84
4369	ldr	r3, [r3]
4370	cmp	r3, #0
4371	beq	.L442
4372	ldr	r3, .L539+88
4373	ldr	r3, [r3]
4374	cmp	r3, #0
4375	beq	.L442
4376	ldr	r3, .L539+92
4377	ldr	r3, [r3]
4378	cmp	r3, #0
4379	beq	.L442
4380	ldr	r3, .L539+96
4381	ldr	r3, [r3]
4382	cmp	r3, #0
4383	beq	.L442
4384	ldr	r3, .L539+100
4385	ldr	r3, [r3]
4386	cmp	r3, #0
4387	beq	.L442
4388	ldr	r3, .L539+104
4389	ldr	r3, [r3]
4390	cmp	r3, #0
4391	beq	.L442
4392	ldr	r3, .L539+108
4393	ldr	r3, [r3]
4394	cmp	r3, #0
4395	beq	.L442
4396	ldr	r3, .L539+112
4397	ldr	r3, [r3]
4398	cmp	r3, #0
4399	beq	.L442
4400	movs	r0, #0
4401	b	.L435
4402.L540:
4403	.align	2
4404.L539:
4405	.word	.LANCHOR137
4406	.word	.LANCHOR40
4407	.word	.LANCHOR17
4408	.word	.LANCHOR37
4409	.word	.LANCHOR112
4410	.word	.LANCHOR113
4411	.word	.LANCHOR93
4412	.word	.LANCHOR37+56
4413	.word	.LANCHOR129
4414	.word	.LANCHOR138
4415	.word	.LC84
4416	.word	.LANCHOR130
4417	.word	.LANCHOR134
4418	.word	.LANCHOR135
4419	.word	.LANCHOR55
4420	.word	.LANCHOR136
4421	.word	.LANCHOR42
4422	.word	.LANCHOR118
4423	.word	.LANCHOR119
4424	.word	.LANCHOR90
4425	.word	.LANCHOR123
4426	.word	.LANCHOR124
4427	.word	.LANCHOR92
4428	.word	.LANCHOR43
4429	.word	.LANCHOR126
4430	.word	.LANCHOR36
4431	.word	.LANCHOR131
4432	.word	.LANCHOR132
4433	.word	.LANCHOR133
4434	.word	.LANCHOR106
4435	.word	.LANCHOR115
4436	.word	.LANCHOR116
4437	.size	FtlMemInit, .-FtlMemInit
4438	.section	.text.FtlBbt2Bitmap,"ax",%progbits
4439	.align	1
4440	.global	FtlBbt2Bitmap
4441	.syntax unified
4442	.thumb
4443	.thumb_func
4444	.fpu softvfp
4445	.type	FtlBbt2Bitmap, %function
4446FtlBbt2Bitmap:
4447	@ args = 0, pretend = 0, frame = 0
4448	@ frame_needed = 0, uses_anonymous_args = 0
4449	ldr	r3, .L547
4450	push	{r4, r5, r6, r7, r8, lr}
4451	mov	r5, r0
4452	ldr	r7, .L547+4
4453	mov	r6, r1
4454	subs	r4, r5, #2
4455	addw	r5, r5, #1022
4456	ldrh	r2, [r3]
4457	movs	r1, #0
4458	ldr	r8, .L547+12
4459	mov	r0, r6
4460	lsls	r2, r2, #2
4461	bl	ftl_memset
4462.L544:
4463	ldrh	r3, [r4, #2]
4464	movw	r2, #65535
4465	cmp	r3, r2
4466	beq	.L541
4467	ldrh	r2, [r7]
4468	cmp	r2, r3
4469	bhi	.L543
4470	movs	r2, #74
4471	mov	r1, r8
4472	ldr	r0, .L547+8
4473	bl	printf
4474.L543:
4475	ldrh	r3, [r4, #2]!
4476	movs	r2, #1
4477	cmp	r5, r4
4478	lsr	r1, r3, #5
4479	and	r3, r3, #31
4480	lsl	r3, r2, r3
4481	ldr	r2, [r6, r1, lsl #2]
4482	orr	r2, r2, r3
4483	str	r2, [r6, r1, lsl #2]
4484	bne	.L544
4485.L541:
4486	pop	{r4, r5, r6, r7, r8, pc}
4487.L548:
4488	.align	2
4489.L547:
4490	.word	.LANCHOR137
4491	.word	.LANCHOR17
4492	.word	.LC1
4493	.word	.LANCHOR139
4494	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
4495	.section	.text.FtlBbtMemInit,"ax",%progbits
4496	.align	1
4497	.global	FtlBbtMemInit
4498	.syntax unified
4499	.thumb
4500	.thumb_func
4501	.fpu softvfp
4502	.type	FtlBbtMemInit, %function
4503FtlBbtMemInit:
4504	@ args = 0, pretend = 0, frame = 0
4505	@ frame_needed = 0, uses_anonymous_args = 0
4506	@ link register save eliminated.
4507	ldr	r0, .L550
4508	movw	r3, #65535
4509	movs	r2, #16
4510	movs	r1, #255
4511	strh	r3, [r0]	@ movhi
4512	movs	r3, #0
4513	strh	r3, [r0, #6]	@ movhi
4514	adds	r0, r0, #12
4515	b	ftl_memset
4516.L551:
4517	.align	2
4518.L550:
4519	.word	.LANCHOR37
4520	.size	FtlBbtMemInit, .-FtlBbtMemInit
4521	.section	.text.FtlFreeSysBlkQueueInit,"ax",%progbits
4522	.align	1
4523	.global	FtlFreeSysBlkQueueInit
4524	.syntax unified
4525	.thumb
4526	.thumb_func
4527	.fpu softvfp
4528	.type	FtlFreeSysBlkQueueInit, %function
4529FtlFreeSysBlkQueueInit:
4530	@ args = 0, pretend = 0, frame = 0
4531	@ frame_needed = 0, uses_anonymous_args = 0
4532	ldr	r3, .L553
4533	mov	r2, #2048
4534	push	{r4, lr}
4535	movs	r4, #0
4536	mov	r1, r4
4537	strh	r4, [r3, #2]	@ movhi
4538	strh	r4, [r3, #4]	@ movhi
4539	strh	r4, [r3, #6]	@ movhi
4540	strh	r0, [r3], #8	@ movhi
4541	mov	r0, r3
4542	bl	ftl_memset
4543	mov	r0, r4
4544	pop	{r4, pc}
4545.L554:
4546	.align	2
4547.L553:
4548	.word	.LANCHOR38
4549	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
4550	.section	.text.ftl_free_no_use_map_blk,"ax",%progbits
4551	.align	1
4552	.global	ftl_free_no_use_map_blk
4553	.syntax unified
4554	.thumb
4555	.thumb_func
4556	.fpu softvfp
4557	.type	ftl_free_no_use_map_blk, %function
4558ftl_free_no_use_map_blk:
4559	@ args = 0, pretend = 0, frame = 8
4560	@ frame_needed = 0, uses_anonymous_args = 0
4561	ldrh	r2, [r0, #10]
4562	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
4563	mov	r4, r0
4564	ldr	r5, [r0, #20]
4565	movs	r1, #0
4566	ldr	r7, [r0, #12]
4567	lsls	r2, r2, #1
4568	ldr	r6, [r0, #24]
4569	mov	r0, r5
4570	bl	ftl_memset
4571	movs	r3, #0
4572.L556:
4573	ldrh	r1, [r4, #6]
4574	uxth	r2, r3
4575	cmp	r1, r2
4576	bhi	.L560
4577	ldr	r3, .L575
4578	movs	r6, #0
4579	mov	r10, r6
4580	ldrh	r2, [r3]
4581	ldrh	r3, [r4]
4582	strh	r2, [r5, r3, lsl #1]	@ movhi
4583	mov	r2, r6
4584	ldrh	fp, [r5]
4585.L561:
4586	ldrh	r3, [r4, #10]
4587	uxth	ip, r6
4588	cmp	r3, ip
4589	bhi	.L565
4590	mov	r0, r10
4591	add	sp, sp, #8
4592	@ sp needed
4593	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4594.L560:
4595	uxth	r2, r3
4596	ldr	r1, [r6, r2, lsl #2]
4597	movs	r2, #0
4598	ubfx	r1, r1, #10, #16
4599.L557:
4600	ldrh	ip, [r4, #10]
4601	uxth	r0, r2
4602	cmp	ip, r0
4603	bhi	.L559
4604	adds	r3, r3, #1
4605	b	.L556
4606.L559:
4607	uxth	r0, r2
4608	ldrh	ip, [r7, r0, lsl #1]
4609	cmp	ip, r1
4610	bne	.L558
4611	cbz	r1, .L558
4612	ldrh	ip, [r5, r0, lsl #1]
4613	add	ip, ip, #1
4614	strh	ip, [r5, r0, lsl #1]	@ movhi
4615.L558:
4616	adds	r2, r2, #1
4617	b	.L557
4618.L565:
4619	uxth	r1, r6
4620	ldrh	r3, [r5, r1, lsl #1]
4621	lsl	r8, r1, #1
4622	cmp	fp, r3
4623	bls	.L562
4624	ldrh	r0, [r7, r1, lsl #1]
4625	add	r8, r8, r7
4626	cbnz	r0, .L563
4627.L564:
4628	adds	r6, r6, #1
4629	b	.L561
4630.L562:
4631	cmp	r3, #0
4632	bne	.L564
4633	ldrh	r0, [r7, r1, lsl #1]
4634	add	r8, r8, r7
4635	cmp	r0, #0
4636	beq	.L564
4637.L566:
4638	movs	r1, #1
4639	str	r2, [sp, #4]
4640	bl	FtlFreeSysBlkQueueIn
4641	ldr	r2, [sp, #4]
4642	strh	r2, [r8]	@ movhi
4643	ldrh	r3, [r4, #8]
4644	subs	r3, r3, #1
4645	strh	r3, [r4, #8]	@ movhi
4646	b	.L564
4647.L563:
4648	mov	r10, ip
4649	mov	fp, r3
4650	cmp	r3, #0
4651	beq	.L566
4652	b	.L564
4653.L576:
4654	.align	2
4655.L575:
4656	.word	.LANCHOR20
4657	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
4658	.section	.text.FtlL2PDataInit,"ax",%progbits
4659	.align	1
4660	.global	FtlL2PDataInit
4661	.syntax unified
4662	.thumb
4663	.thumb_func
4664	.fpu softvfp
4665	.type	FtlL2PDataInit, %function
4666FtlL2PDataInit:
4667	@ args = 0, pretend = 0, frame = 0
4668	@ frame_needed = 0, uses_anonymous_args = 0
4669	push	{r4, r5, r6, r7, r8, lr}
4670	movs	r1, #0
4671	ldr	r5, .L580
4672	ldr	r4, .L580+4
4673	ldr	r2, [r5]
4674	ldr	r7, .L580+8
4675	ldr	r6, .L580+12
4676	ldr	r0, [r4]
4677	lsls	r2, r2, #1
4678	ldr	r8, .L580+44
4679	bl	ftl_memset
4680	ldrh	r3, [r7]
4681	movs	r1, #255
4682	ldrh	r2, [r6]
4683	ldr	r0, [r8]
4684	muls	r2, r3, r2
4685	bl	ftl_memset
4686	ldr	r3, .L580+16
4687	movw	r0, #65535
4688	ldrh	r1, [r6]
4689	ldr	ip, [r8]
4690	ldr	r2, [r3]
4691	movs	r3, #12
4692	ldrh	r7, [r7]
4693	mla	r3, r1, r3, r3
4694	adds	r1, r2, r3
4695	movs	r3, #0
4696	mov	lr, r3
4697.L578:
4698	adds	r2, r2, #12
4699	adds	r6, r3, r7
4700	cmp	r2, r1
4701	bne	.L579
4702	ldr	r3, .L580+20
4703	ldr	r2, [r5]
4704	strh	r0, [r3, #2]	@ movhi
4705	strh	r2, [r3, #10]	@ movhi
4706	movw	r2, #61634
4707	strh	r2, [r3, #4]	@ movhi
4708	ldr	r2, .L580+24
4709	strh	r0, [r3]	@ movhi
4710	ldrh	r2, [r2]
4711	strh	r2, [r3, #8]	@ movhi
4712	ldr	r2, .L580+28
4713	ldrh	r2, [r2]
4714	strh	r2, [r3, #6]	@ movhi
4715	ldr	r2, .L580+32
4716	ldr	r2, [r2]
4717	str	r2, [r3, #12]
4718	ldr	r2, .L580+36
4719	ldr	r2, [r2]
4720	str	r2, [r3, #16]
4721	ldr	r2, [r4]
4722	str	r2, [r3, #20]
4723	ldr	r2, .L580+40
4724	ldr	r2, [r2]
4725	str	r2, [r3, #24]
4726	pop	{r4, r5, r6, r7, r8, pc}
4727.L579:
4728	bic	r3, r3, #3
4729	str	lr, [r2, #-8]
4730	add	r3, r3, ip
4731	strh	r0, [r2, #-12]	@ movhi
4732	str	r3, [r2, #-4]
4733	mov	r3, r6
4734	b	.L578
4735.L581:
4736	.align	2
4737.L580:
4738	.word	.LANCHOR30
4739	.word	.LANCHOR130
4740	.word	.LANCHOR23
4741	.word	.LANCHOR33
4742	.word	.LANCHOR55
4743	.word	.LANCHOR140
4744	.word	.LANCHOR141
4745	.word	.LANCHOR32
4746	.word	.LANCHOR129
4747	.word	.LANCHOR135
4748	.word	.LANCHOR134
4749	.word	.LANCHOR136
4750	.size	FtlL2PDataInit, .-FtlL2PDataInit
4751	.section	.text.FtlVariablesInit,"ax",%progbits
4752	.align	1
4753	.global	FtlVariablesInit
4754	.syntax unified
4755	.thumb
4756	.thumb_func
4757	.fpu softvfp
4758	.type	FtlVariablesInit, %function
4759FtlVariablesInit:
4760	@ args = 0, pretend = 0, frame = 0
4761	@ frame_needed = 0, uses_anonymous_args = 0
4762	push	{r3, r4, r5, lr}
4763	movw	r2, #65535
4764	ldr	r3, .L583
4765	movs	r4, #0
4766	mov	r1, r4
4767	ldr	r5, .L583+4
4768	strh	r2, [r3]	@ movhi
4769	mov	r2, #-1
4770	ldr	r3, .L583+8
4771	str	r4, [r3]
4772	ldr	r3, .L583+12
4773	str	r4, [r3]
4774	ldr	r3, .L583+16
4775	str	r2, [r3]
4776	ldr	r3, .L583+20
4777	strh	r4, [r3]	@ movhi
4778	ldr	r3, .L583+24
4779	ldrh	r2, [r3]
4780	ldr	r3, .L583+28
4781	lsls	r2, r2, #1
4782	ldr	r0, [r3]
4783	bl	ftl_memset
4784	ldrh	r2, [r5]
4785	mov	r1, r4
4786	ldr	r3, .L583+32
4787	lsls	r2, r2, #1
4788	ldr	r0, [r3]
4789	bl	ftl_memset
4790	ldrh	r2, [r5]
4791	mov	r1, r4
4792	ldr	r3, .L583+36
4793	lsls	r2, r2, #1
4794	ldr	r0, [r3]
4795	bl	ftl_memset
4796	mov	r1, r4
4797	movs	r2, #48
4798	ldr	r0, .L583+40
4799	bl	ftl_memset
4800	mov	r2, #512
4801	mov	r1, r4
4802	ldr	r0, .L583+44
4803	bl	ftl_memset
4804	bl	FtlGcBufInit
4805	bl	FtlL2PDataInit
4806	mov	r0, r4
4807	pop	{r3, r4, r5, pc}
4808.L584:
4809	.align	2
4810.L583:
4811	.word	.LANCHOR142
4812	.word	.LANCHOR6
4813	.word	.LANCHOR143
4814	.word	.LANCHOR144
4815	.word	.LANCHOR145
4816	.word	.LANCHOR35
4817	.word	.LANCHOR27
4818	.word	.LANCHOR36
4819	.word	.LANCHOR43
4820	.word	.LANCHOR126
4821	.word	.LANCHOR39
4822	.word	.LANCHOR81
4823	.size	FtlVariablesInit, .-FtlVariablesInit
4824	.section	.text.SupperBlkListInit,"ax",%progbits
4825	.align	1
4826	.global	SupperBlkListInit
4827	.syntax unified
4828	.thumb
4829	.thumb_func
4830	.fpu softvfp
4831	.type	SupperBlkListInit, %function
4832SupperBlkListInit:
4833	@ args = 0, pretend = 0, frame = 16
4834	@ frame_needed = 0, uses_anonymous_args = 0
4835	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
4836	movs	r2, #6
4837	ldr	r3, .L596
4838	movs	r1, #0
4839	movs	r4, #0
4840	ldr	r6, .L596+4
4841	mov	r8, r4
4842	ldrh	r3, [r3]
4843	mov	r5, r4
4844	ldr	r0, [r6]
4845	mov	r10, r6
4846	muls	r2, r3, r2
4847	bl	ftl_memset
4848	ldr	r3, .L596+8
4849	ldr	r2, .L596+12
4850	str	r4, [r3]
4851	ldr	r3, .L596+16
4852	strh	r4, [r2]	@ movhi
4853	str	r2, [sp, #4]
4854	str	r4, [r3]
4855	ldr	r3, .L596+20
4856	str	r4, [r3]
4857	ldr	r3, .L596+24
4858	mov	fp, r3
4859	strh	r4, [r3]	@ movhi
4860.L586:
4861	ldr	r3, .L596+28
4862	uxth	r7, r4
4863	ldrh	r3, [r3]
4864	cmp	r7, r3
4865	bcs	.L593
4866	ldr	r3, .L596+32
4867	ldrh	r2, [r3]
4868	ldr	r3, .L596+36
4869	ldrh	r3, [r3]
4870	str	r3, [sp]
4871	movs	r3, #0
4872	mov	r6, r3
4873	b	.L594
4874.L588:
4875	str	r2, [sp, #12]
4876	mov	r1, r7
4877	ldr	r2, .L596+40
4878	str	r3, [sp, #8]
4879	ldrb	r0, [r2, r3]	@ zero_extendqisi2
4880	bl	V2P_block
4881	bl	FtlBbmIsBadBlock
4882	ldr	r3, [sp, #8]
4883	ldr	r2, [sp, #12]
4884	cbnz	r0, .L587
4885	ldr	r1, [sp]
4886	add	r6, r6, r1
4887	uxth	r6, r6
4888.L587:
4889	adds	r3, r3, #1
4890.L594:
4891	uxth	r1, r3
4892	cmp	r2, r1
4893	bhi	.L588
4894	uxth	r3, r4
4895	cbz	r6, .L589
4896	mov	r1, r6
4897	str	r3, [sp]
4898	mov	r0, #32768
4899	bl	__aeabi_idiv
4900	ldr	r3, [sp]
4901	uxth	r6, r0
4902.L590:
4903	ldr	r1, [r10]
4904	movs	r2, #6
4905	mla	r2, r2, r3, r1
4906	strh	r6, [r2, #4]	@ movhi
4907	ldr	r2, .L596+44
4908	ldrh	r2, [r2]
4909	cmp	r2, r7
4910	beq	.L591
4911	ldr	r2, .L596+48
4912	ldrh	r2, [r2]
4913	cmp	r2, r7
4914	beq	.L591
4915	ldr	r2, .L596+52
4916	ldrh	r2, [r2]
4917	cmp	r2, r7
4918	beq	.L591
4919	ldr	r2, .L596+56
4920	ldr	r2, [r2]
4921	ldrh	r3, [r2, r3, lsl #1]
4922	cbnz	r3, .L592
4923	add	r8, r8, #1
4924	mov	r0, r7
4925	uxth	r8, r8
4926	bl	INSERT_FREE_LIST
4927.L591:
4928	adds	r4, r4, #1
4929	b	.L586
4930.L589:
4931	ldr	r2, .L596+56
4932	movw	r1, #65535
4933	ldr	r2, [r2]
4934	strh	r1, [r2, r3, lsl #1]	@ movhi
4935	b	.L590
4936.L592:
4937	adds	r5, r5, #1
4938	mov	r0, r7
4939	uxth	r5, r5
4940	bl	INSERT_DATA_LIST
4941	b	.L591
4942.L593:
4943	ldr	r2, [sp, #4]
4944	strh	r8, [fp]	@ movhi
4945	strh	r5, [r2]	@ movhi
4946	add	r5, r5, r8
4947	cmp	r5, r3
4948	ble	.L595
4949	movw	r2, #2170
4950	ldr	r1, .L596+60
4951	ldr	r0, .L596+64
4952	bl	printf
4953.L595:
4954	movs	r0, #0
4955	add	sp, sp, #16
4956	@ sp needed
4957	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4958.L597:
4959	.align	2
4960.L596:
4961	.word	.LANCHOR6
4962	.word	.LANCHOR40
4963	.word	.LANCHOR47
4964	.word	.LANCHOR45
4965	.word	.LANCHOR41
4966	.word	.LANCHOR44
4967	.word	.LANCHOR48
4968	.word	.LANCHOR5
4969	.word	.LANCHOR3
4970	.word	.LANCHOR19
4971	.word	.LANCHOR13
4972	.word	.LANCHOR51
4973	.word	.LANCHOR52
4974	.word	.LANCHOR53
4975	.word	.LANCHOR42
4976	.word	.LANCHOR146
4977	.word	.LC1
4978	.size	SupperBlkListInit, .-SupperBlkListInit
4979	.section	.text.FtlGcPageVarInit,"ax",%progbits
4980	.align	1
4981	.global	FtlGcPageVarInit
4982	.syntax unified
4983	.thumb
4984	.thumb_func
4985	.fpu softvfp
4986	.type	FtlGcPageVarInit, %function
4987FtlGcPageVarInit:
4988	@ args = 0, pretend = 0, frame = 0
4989	@ frame_needed = 0, uses_anonymous_args = 0
4990	ldr	r2, .L599
4991	movs	r3, #0
4992	push	{r4, lr}
4993	movs	r1, #255
4994	ldr	r4, .L599+4
4995	strh	r3, [r2]	@ movhi
4996	ldr	r2, .L599+8
4997	strh	r3, [r2]	@ movhi
4998	ldrh	r2, [r4]
4999	ldr	r3, .L599+12
5000	lsls	r2, r2, #1
5001	ldr	r0, [r3]
5002	bl	ftl_memset
5003	ldrh	r3, [r4]
5004	movs	r2, #12
5005	movs	r1, #255
5006	muls	r2, r3, r2
5007	ldr	r3, .L599+16
5008	ldr	r0, [r3]
5009	bl	ftl_memset
5010	pop	{r4, lr}
5011	b	FtlGcBufInit
5012.L600:
5013	.align	2
5014.L599:
5015	.word	.LANCHOR96
5016	.word	.LANCHOR21
5017	.word	.LANCHOR97
5018	.word	.LANCHOR95
5019	.word	.LANCHOR98
5020	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
5021	.section	.text.FlashGetBadBlockList,"ax",%progbits
5022	.align	1
5023	.global	FlashGetBadBlockList
5024	.syntax unified
5025	.thumb
5026	.thumb_func
5027	.fpu softvfp
5028	.type	FlashGetBadBlockList, %function
5029FlashGetBadBlockList:
5030	@ args = 0, pretend = 0, frame = 0
5031	@ frame_needed = 0, uses_anonymous_args = 0
5032	push	{r3, r4, r5, lr}
5033	mov	r2, #256
5034	mov	r5, r1
5035	movs	r1, #255
5036	mov	r4, r0
5037	bl	ftl_memset
5038	ldr	r3, .L608
5039	mov	r1, r5
5040	mov	r0, r4
5041	ldr	r3, [r3]
5042	blx	r3
5043	uxth	r0, r0
5044	cmp	r0, #50
5045	bls	.L602
5046	mov	r2, #256
5047	movs	r1, #255
5048	mov	r0, r4
5049	bl	ftl_memset
5050	movs	r0, #0
5051.L602:
5052	ldr	r3, .L608+4
5053	ldrh	r3, [r3, #14]
5054	cmp	r3, #4
5055	bne	.L607
5056	add	r1, r4, r0, lsl #1
5057	mov	r3, r4
5058.L604:
5059	cmp	r3, r1
5060	bne	.L605
5061.L607:
5062	pop	{r3, r4, r5, pc}
5063.L605:
5064	ldrh	r2, [r3]
5065	lsrs	r2, r2, #1
5066	strh	r2, [r3], #2	@ movhi
5067	b	.L604
5068.L609:
5069	.align	2
5070.L608:
5071	.word	.LANCHOR105
5072	.word	.LANCHOR0
5073	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
5074	.section	.text.ftl_memcpy,"ax",%progbits
5075	.align	1
5076	.global	ftl_memcpy
5077	.syntax unified
5078	.thumb
5079	.thumb_func
5080	.fpu softvfp
5081	.type	ftl_memcpy, %function
5082ftl_memcpy:
5083	@ args = 0, pretend = 0, frame = 0
5084	@ frame_needed = 0, uses_anonymous_args = 0
5085	@ link register save eliminated.
5086	b	memcpy
5087	.size	ftl_memcpy, .-ftl_memcpy
5088	.section	.text.FlashReadPages,"ax",%progbits
5089	.align	1
5090	.global	FlashReadPages
5091	.syntax unified
5092	.thumb
5093	.thumb_func
5094	.fpu softvfp
5095	.type	FlashReadPages, %function
5096FlashReadPages:
5097	@ args = 0, pretend = 0, frame = 16
5098	@ frame_needed = 0, uses_anonymous_args = 0
5099	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
5100	mov	fp, r1
5101	ldr	r3, .L639
5102	mov	r4, r0
5103	mov	r10, #0
5104	ldrh	r2, [r3, #12]
5105	str	r3, [sp, #4]
5106	str	r2, [sp]
5107.L612:
5108	cmp	r10, fp
5109	bne	.L623
5110	movs	r0, #0
5111	add	sp, sp, #16
5112	@ sp needed
5113	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5114.L623:
5115	ldr	r3, [r4, #8]
5116	cbz	r3, .L613
5117	ldr	r3, [r4, #12]
5118	cbnz	r3, .L614
5119.L613:
5120	movs	r2, #90
5121	ldr	r1, .L639+4
5122	ldr	r0, .L639+8
5123	bl	printf
5124.L614:
5125	add	r2, sp, #8
5126	add	r1, sp, #12
5127	ldr	r0, [r4, #4]
5128	bl	l2p_addr_tran.isra.0
5129	ldr	r0, [sp, #8]
5130	cmp	r0, #3
5131	bls	.L615
5132	mov	r3, #-1
5133	str	r3, [r4]
5134.L616:
5135	add	r10, r10, #1
5136	adds	r4, r4, #20
5137	b	.L612
5138.L615:
5139	ldr	r5, [r4, #8]
5140	uxtb	r0, r0
5141	ldr	r8, .L639+20
5142	ldr	r7, .L639+12
5143	tst	r5, #63
5144	ldr	r3, [r4, #12]
5145	it	ne
5146	ldrne	r5, [r8]
5147	ldr	r1, [sp, #12]
5148	ldr	r6, [r7, #12]
5149	mov	r2, r5
5150	blx	r6
5151	ldr	r3, [sp, #4]
5152	str	r0, [r4]
5153	ldrh	r3, [r3, #14]
5154	cmp	r3, #4
5155	bne	.L619
5156	ldr	r0, [sp]
5157	add	r2, r5, #2048
5158	ldr	r3, [r4, #12]
5159	ldr	r1, [sp, #12]
5160	ldr	r7, [r7, #12]
5161	adds	r3, r3, #8
5162	add	r1, r1, r0
5163	ldrb	r0, [sp, #8]	@ zero_extendqisi2
5164	blx	r7
5165	adds	r3, r0, #1
5166	beq	.L620
5167	ldr	r3, [r4, #12]
5168	ldr	r2, [r3, #12]
5169	adds	r2, r2, #1
5170	bne	.L621
5171	ldr	r2, [r3, #8]
5172	adds	r2, r2, #1
5173	bne	.L621
5174	ldr	r3, [r3]
5175	adds	r3, r3, #1
5176	beq	.L621
5177.L620:
5178	mov	r3, #-1
5179	str	r3, [r4]
5180.L621:
5181	ldr	r3, [r4]
5182	adds	r3, r3, #1
5183	beq	.L619
5184	cmp	r0, #256
5185	it	eq
5186	streq	r0, [r4]
5187.L619:
5188	ldr	r3, [r8]
5189	cmp	r5, r3
5190	bne	.L616
5191	ldr	r0, [r4, #8]
5192	cmp	r5, r0
5193	beq	.L616
5194	ldr	r3, .L639+16
5195	mov	r1, r5
5196	ldrh	r2, [r3]
5197	lsls	r2, r2, #9
5198	bl	ftl_memcpy
5199	b	.L616
5200.L640:
5201	.align	2
5202.L639:
5203	.word	.LANCHOR0
5204	.word	.LANCHOR147
5205	.word	.LC1
5206	.word	.LANCHOR105
5207	.word	.LANCHOR12
5208	.word	.LANCHOR120
5209	.size	FlashReadPages, .-FlashReadPages
5210	.section	.text.FtlLoadFactoryBbt,"ax",%progbits
5211	.align	1
5212	.global	FtlLoadFactoryBbt
5213	.syntax unified
5214	.thumb
5215	.thumb_func
5216	.fpu softvfp
5217	.type	FtlLoadFactoryBbt, %function
5218FtlLoadFactoryBbt:
5219	@ args = 0, pretend = 0, frame = 0
5220	@ frame_needed = 0, uses_anonymous_args = 0
5221	ldr	r3, .L651
5222	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5223	movs	r6, #0
5224	ldr	r5, .L651+4
5225	ldr	r3, [r3]
5226	ldr	r7, .L651+8
5227	ldr	r10, .L651+20
5228	str	r3, [r5, #8]
5229	ldr	r3, .L651+12
5230	ldr	r8, [r3]
5231	str	r8, [r5, #12]
5232.L642:
5233	ldr	r3, .L651+16
5234	ldrh	r3, [r3]
5235	cmp	r6, r3
5236	bcc	.L647
5237	movs	r0, #0
5238	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5239.L647:
5240	ldrh	r4, [r10]
5241	movw	r3, #65535
5242	ldr	fp, .L651+4
5243	strh	r3, [r7, #2]!	@ movhi
5244	subs	r4, r4, #1
5245	uxth	r4, r4
5246.L643:
5247	ldrh	r3, [r10]
5248	sub	r2, r3, #15
5249	cmp	r2, r4
5250	bgt	.L645
5251	mla	r3, r6, r3, r4
5252	movs	r2, #1
5253	mov	r1, r2
5254	mov	r0, fp
5255	lsls	r3, r3, #10
5256	str	r3, [r5, #4]
5257	bl	FlashReadPages
5258	ldr	r3, [r5]
5259	adds	r3, r3, #1
5260	beq	.L644
5261	ldrh	r2, [r8]
5262	movw	r3, #61664
5263	cmp	r2, r3
5264	bne	.L644
5265	strh	r4, [r7]	@ movhi
5266.L645:
5267	adds	r6, r6, #1
5268	b	.L642
5269.L644:
5270	subs	r4, r4, #1
5271	uxth	r4, r4
5272	b	.L643
5273.L652:
5274	.align	2
5275.L651:
5276	.word	.LANCHOR115
5277	.word	.LANCHOR148
5278	.word	.LANCHOR37+10
5279	.word	.LANCHOR123
5280	.word	.LANCHOR10
5281	.word	.LANCHOR17
5282	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
5283	.section	.text.FtlGetLastWrittenPage,"ax",%progbits
5284	.align	1
5285	.global	FtlGetLastWrittenPage
5286	.syntax unified
5287	.thumb
5288	.thumb_func
5289	.fpu softvfp
5290	.type	FtlGetLastWrittenPage, %function
5291FtlGetLastWrittenPage:
5292	@ args = 0, pretend = 0, frame = 88
5293	@ frame_needed = 0, uses_anonymous_args = 0
5294	cmp	r1, #1
5295	push	{r4, r5, r6, r7, r8, lr}
5296	it	eq
5297	ldreq	r3, .L665
5298	sub	sp, sp, #88
5299	lsl	r7, r0, #10
5300	mov	r2, r1
5301	it	ne
5302	ldrne	r3, .L665+4
5303	mov	r6, r1
5304	add	r0, sp, #4
5305	movs	r1, #1
5306	ldrh	r5, [r3]
5307	ldr	r3, .L665+8
5308	subs	r5, r5, #1
5309	ldr	r3, [r3]
5310	sxth	r5, r5
5311	str	r3, [sp, #12]
5312	add	r3, sp, #24
5313	str	r3, [sp, #16]
5314	orr	r3, r5, r7
5315	str	r3, [sp, #8]
5316	bl	FlashReadPages
5317	ldr	r3, [sp, #24]
5318	adds	r3, r3, #1
5319	bne	.L656
5320	mov	r8, #0
5321.L657:
5322	cmp	r8, r5
5323	ble	.L660
5324.L656:
5325	mov	r0, r5
5326	add	sp, sp, #88
5327	@ sp needed
5328	pop	{r4, r5, r6, r7, r8, pc}
5329.L660:
5330	add	r3, r8, r5
5331	mov	r2, r6
5332	add	r3, r3, r3, lsr #31
5333	movs	r1, #1
5334	add	r0, sp, #4
5335	asrs	r4, r3, #1
5336	sxth	r3, r4
5337	orrs	r3, r3, r7
5338	str	r3, [sp, #8]
5339	bl	FlashReadPages
5340	ldr	r3, [sp, #24]
5341	adds	r3, r3, #1
5342	bne	.L658
5343	ldr	r3, [sp, #28]
5344	adds	r3, r3, #1
5345	bne	.L658
5346	ldr	r3, [sp, #4]
5347	adds	r3, r3, #1
5348	beq	.L658
5349	subs	r4, r4, #1
5350	sxth	r5, r4
5351	b	.L657
5352.L658:
5353	adds	r4, r4, #1
5354	sxth	r8, r4
5355	b	.L657
5356.L666:
5357	.align	2
5358.L665:
5359	.word	.LANCHOR20
5360	.word	.LANCHOR19
5361	.word	.LANCHOR121
5362	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
5363	.section	.text.FtlScanSysBlk,"ax",%progbits
5364	.align	1
5365	.global	FtlScanSysBlk
5366	.syntax unified
5367	.thumb
5368	.thumb_func
5369	.fpu softvfp
5370	.type	FtlScanSysBlk, %function
5371FtlScanSysBlk:
5372	@ args = 0, pretend = 0, frame = 32
5373	@ frame_needed = 0, uses_anonymous_args = 0
5374	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5375	movs	r4, #0
5376	ldr	r5, .L748
5377	sub	sp, sp, #32
5378	mov	r1, r4
5379	ldr	r3, .L748+4
5380	ldr	r2, [r5]
5381	ldr	r6, .L748+8
5382	strh	r4, [r3]	@ movhi
5383	ldr	r3, .L748+12
5384	lsls	r2, r2, #2
5385	strh	r4, [r6]	@ movhi
5386	ldr	r7, .L748+16
5387	ldr	r0, [r3]
5388	bl	ftl_memset
5389	ldr	r2, [r5]
5390	mov	r1, r4
5391	ldr	r3, .L748+20
5392	lsls	r2, r2, #1
5393	ldr	r0, [r3]
5394	bl	ftl_memset
5395	ldrh	r2, [r7]
5396	mov	r1, r4
5397	ldr	r3, .L748+24
5398	lsls	r2, r2, #2
5399	ldr	r0, [r3]
5400	bl	ftl_memset
5401	ldrh	r2, [r7]
5402	mov	r1, r4
5403	ldr	r3, .L748+28
5404	lsls	r2, r2, #1
5405	ldr	r0, [r3]
5406	bl	ftl_memset
5407	movs	r2, #12
5408	movs	r1, #255
5409	ldr	r0, .L748+32
5410	bl	ftl_memset
5411	ldr	r3, .L748+36
5412	str	r6, [sp, #12]
5413	str	r5, [sp, #16]
5414	ldrh	r3, [r3]
5415	str	r3, [sp, #4]
5416.L668:
5417	ldr	r3, .L748+40
5418	ldr	r2, [sp, #4]
5419	ldrh	r3, [r3]
5420	cmp	r3, r2
5421	bls	.L709
5422	ldr	r3, .L748+44
5423	movs	r5, #0
5424	ldr	r1, .L748+48
5425	mov	fp, r5
5426	movs	r7, #20
5427	ldrh	r8, [r3]
5428	ldr	r3, .L748+52
5429	ldr	r2, [r1]
5430	ldr	r1, .L748+56
5431	ldr	r6, [r3]
5432	ldr	r3, .L748+60
5433	str	r2, [sp, #8]
5434	ldrh	r10, [r1]
5435	ldr	r3, [r3]
5436	ldr	r2, .L748+64
5437	b	.L710
5438.L670:
5439	ldrb	r0, [r2, r5]	@ zero_extendqisi2
5440	ldr	r1, [sp, #4]
5441	str	r3, [sp, #28]
5442	str	r2, [sp, #24]
5443	bl	V2P_block
5444	str	r0, [sp, #20]
5445	bl	FtlBbmIsBadBlock
5446	ldr	r2, [sp, #24]
5447	ldr	r3, [sp, #28]
5448	cbnz	r0, .L669
5449	ldr	r1, [sp, #20]
5450	mla	r0, r7, fp, r6
5451	ldr	r4, [sp, #8]
5452	lsls	r1, r1, #10
5453	str	r3, [r0, #8]
5454	str	r1, [r0, #4]
5455	mul	r1, r10, fp
5456	bic	r1, r1, #3
5457	add	r1, r1, r4
5458	str	r1, [r0, #12]
5459	add	r1, fp, #1
5460	uxth	fp, r1
5461.L669:
5462	adds	r5, r5, #1
5463.L710:
5464	uxth	r1, r5
5465	cmp	r8, r1
5466	bhi	.L670
5467	cmp	fp, #0
5468	bne	.L671
5469.L708:
5470	ldr	r3, [sp, #4]
5471	adds	r3, r3, #1
5472	uxth	r3, r3
5473	str	r3, [sp, #4]
5474	b	.L668
5475.L671:
5476	movs	r7, #0
5477	movs	r2, #1
5478	mov	r1, fp
5479	mov	r0, r6
5480	bl	FlashReadPages
5481.L672:
5482	uxth	r3, r7
5483	cmp	fp, r3
5484	bls	.L708
5485	ldr	r3, .L748+52
5486	mov	r8, #20
5487	mul	r8, r8, r7
5488	ldr	r3, [r3]
5489	add	r2, r3, r8
5490	ldr	r3, [r3, r8]
5491	ldr	r5, [r2, #4]
5492	ldr	r6, [r2, #12]
5493	adds	r3, r3, #1
5494	ubfx	r5, r5, #10, #16
5495	bne	.L675
5496	mov	r10, #16
5497.L677:
5498	ldr	r3, .L748+52
5499	movs	r2, #1
5500	mov	r1, r2
5501	ldr	r0, [r3]
5502	add	r0, r0, r8
5503	ldr	r3, [r0, #4]
5504	adds	r3, r3, #1
5505	str	r3, [r0, #4]
5506	bl	FlashReadPages
5507	ldrh	r2, [r6]
5508	movw	r3, #65535
5509	cmp	r2, r3
5510	ldr	r3, .L748+52
5511	ldr	r3, [r3]
5512	bne	.L674
5513	mov	r2, #-1
5514	str	r2, [r3, r8]
5515	ldr	r3, .L748+52
5516	ldr	r3, [r3]
5517	ldr	r3, [r3, r8]
5518	cmp	r3, r2
5519	bne	.L675
5520.L676:
5521	movs	r1, #1
5522	b	.L747
5523.L674:
5524	ldr	r3, [r3, r8]
5525	adds	r3, r3, #1
5526	bne	.L675
5527	add	r10, r10, #-1
5528	uxth	r10, r10
5529	cmp	r10, #0
5530	bne	.L677
5531	b	.L676
5532.L675:
5533	ldr	r3, .L748+68
5534	ldr	r2, [r3]
5535	ldr	r3, [r6, #4]
5536	adds	r1, r2, #1
5537	beq	.L678
5538	cmp	r2, r3
5539	bhi	.L679
5540.L678:
5541	adds	r2, r3, #1
5542	ittt	ne
5543	ldrne	r1, .L748+68
5544	addne	r2, r3, #1
5545	strne	r2, [r1]
5546.L679:
5547	ldrh	r2, [r6]
5548	movw	r1, #61604
5549	cmp	r2, r1
5550	beq	.L681
5551	bhi	.L682
5552	movw	r3, #61574
5553	cmp	r2, r3
5554	beq	.L683
5555.L680:
5556	adds	r7, r7, #1
5557	b	.L672
5558.L682:
5559	movw	r3, #61634
5560	cmp	r2, r3
5561	beq	.L684
5562	movw	r3, #65535
5563	cmp	r2, r3
5564	bne	.L680
5565	movs	r1, #0
5566.L747:
5567	mov	r0, r5
5568	bl	FtlFreeSysBlkQueueIn
5569	b	.L680
5570.L684:
5571	ldr	r3, .L748+8
5572	ldrh	r2, [r3]
5573	ldr	r3, .L748
5574	ldr	r3, [r3]
5575	cmp	r2, r3
5576	bls	.L686
5577	movw	r2, #1222
5578	ldr	r1, .L748+72
5579	ldr	r0, .L748+76
5580	bl	printf
5581.L686:
5582	ldr	r3, [sp, #16]
5583	ldr	r2, [sp, #12]
5584	ldr	r1, [r3]
5585	ldrh	r0, [r2]
5586	ldr	r2, .L748+12
5587	uxth	r10, r1
5588	ldr	ip, [r2]
5589	add	r3, r10, #-1
5590	sub	r10, r10, r0
5591	add	r10, r10, #-1
5592	sxth	r3, r3
5593	sxth	r10, r10
5594.L687:
5595	cmp	r3, r10
5596	bgt	.L693
5597	cmp	r3, #0
5598	bge	.L725
5599	b	.L680
5600.L693:
5601	ldr	r2, [ip, r3, lsl #2]
5602	add	r8, ip, r3, lsl #2
5603	ldr	r4, [r6, #4]
5604	cmp	r4, r2
5605	bls	.L688
5606	ldr	r2, [ip]
5607	cbnz	r2, .L689
5608	cmp	r1, r0
5609	ittt	ne
5610	ldrne	r2, .L748+8
5611	addne	r0, r0, #1
5612	strhne	r0, [r2]	@ movhi
5613.L689:
5614	ldr	r2, .L748+20
5615	uxth	r10, r3
5616	ldr	r0, [r2]
5617	movs	r2, #0
5618.L690:
5619	uxth	lr, r2
5620	sxth	r1, r2
5621	cmp	r10, lr
5622	bhi	.L691
5623	ldr	r2, [r6, #4]
5624	cmp	r3, #0
5625	str	r2, [r8]
5626	strh	r5, [r0, r3, lsl #1]	@ movhi
5627	blt	.L680
5628	ldr	r2, .L748+8
5629	ldrh	r0, [r2]
5630	ldr	r2, .L748
5631	ldr	r2, [r2]
5632	subs	r2, r2, r0
5633	subs	r2, r2, #1
5634	sxth	r2, r2
5635	cmp	r3, r2
5636	bgt	.L680
5637.L725:
5638	ldr	r2, .L748+8
5639	adds	r0, r0, #1
5640	strh	r0, [r2]	@ movhi
5641	ldr	r2, [r6, #4]
5642	str	r2, [ip, r3, lsl #2]
5643	ldr	r2, .L748+20
5644.L745:
5645	ldr	r2, [r2]
5646	strh	r5, [r2, r3, lsl #1]	@ movhi
5647	b	.L680
5648.L691:
5649	add	lr, ip, r1, lsl #2
5650	adds	r2, r2, #1
5651	ldr	r4, [lr, #4]
5652	add	lr, r0, r1, lsl #1
5653	ldrh	lr, [lr, #2]
5654	str	r4, [ip, r1, lsl #2]
5655	strh	lr, [r0, r1, lsl #1]	@ movhi
5656	b	.L690
5657.L688:
5658	subs	r3, r3, #1
5659	sxth	r3, r3
5660	b	.L687
5661.L749:
5662	.align	2
5663.L748:
5664	.word	.LANCHOR30
5665	.word	.LANCHOR35
5666	.word	.LANCHOR141
5667	.word	.LANCHOR135
5668	.word	.LANCHOR27
5669	.word	.LANCHOR129
5670	.word	.LANCHOR132
5671	.word	.LANCHOR36
5672	.word	.LANCHOR79
5673	.word	.LANCHOR5
5674	.word	.LANCHOR6
5675	.word	.LANCHOR3
5676	.word	.LANCHOR92
5677	.word	.LANCHOR112
5678	.word	.LANCHOR24
5679	.word	.LANCHOR91
5680	.word	.LANCHOR13
5681	.word	.LANCHOR70
5682	.word	.LANCHOR149
5683	.word	.LC1
5684.L683:
5685	ldr	r8, .L750+12
5686	ldr	r10, .L750+20
5687	ldrh	r2, [r8]
5688	ldrh	r3, [r10]
5689	cmp	r2, r3
5690	bls	.L696
5691	movw	r2, #1263
5692	ldr	r1, .L750
5693	ldr	r0, .L750+4
5694	bl	printf
5695.L696:
5696	ldr	r2, .L750+8
5697	ldrh	lr, [r10]
5698	ldrh	ip, [r8]
5699	ldr	r0, [r2]
5700	add	r10, lr, #-1
5701	sxth	r3, r10
5702	sub	r10, r10, ip
5703.L697:
5704	cmp	r3, r10
5705	ble	.L702
5706	ldr	r1, [r6, #4]
5707	add	r8, r0, r3, lsl #2
5708	ldr	r2, [r0, r3, lsl #2]
5709	cmp	r1, r2
5710	bls	.L698
5711	ldr	r2, [r0]
5712	cbnz	r2, .L699
5713	cmp	lr, ip
5714	ittt	ne
5715	ldrne	r2, .L750+12
5716	addne	ip, ip, #1
5717	strhne	ip, [r2]	@ movhi
5718.L699:
5719	ldr	r2, .L750+16
5720	uxth	r10, r3
5721	ldr	ip, [r2]
5722	movs	r2, #0
5723.L700:
5724	uxth	lr, r2
5725	sxth	r1, r2
5726	cmp	r10, lr
5727	bhi	.L701
5728	ldr	r2, [r6, #4]
5729	str	r2, [r8]
5730	strh	r5, [ip, r3, lsl #1]	@ movhi
5731.L702:
5732	cmp	r3, #0
5733	blt	.L680
5734	ldr	r2, .L750+20
5735	ldr	ip, .L750+12
5736	ldrh	r2, [r2]
5737	ldrh	r1, [ip]
5738	subs	r2, r2, #1
5739	subs	r2, r2, r1
5740	sxth	r2, r2
5741	cmp	r3, r2
5742	bgt	.L680
5743	ldr	r2, [r6, #4]
5744	adds	r1, r1, #1
5745	strh	r1, [ip]	@ movhi
5746	str	r2, [r0, r3, lsl #2]
5747	ldr	r2, .L750+16
5748	b	.L745
5749.L701:
5750	add	lr, r0, r1, lsl #2
5751	adds	r2, r2, #1
5752	ldr	r4, [lr, #4]
5753	add	lr, ip, r1, lsl #1
5754	ldrh	lr, [lr, #2]
5755	str	r4, [r0, r1, lsl #2]
5756	strh	lr, [ip, r1, lsl #1]	@ movhi
5757	b	.L700
5758.L698:
5759	subs	r3, r3, #1
5760	sxth	r3, r3
5761	b	.L697
5762.L681:
5763	ldr	r8, .L750+40
5764	movw	r2, #65535
5765	ldrh	r1, [r8]
5766	cmp	r1, r2
5767	bne	.L704
5768.L746:
5769	strh	r5, [r8]	@ movhi
5770	str	r3, [r8, #8]
5771	b	.L680
5772.L704:
5773	ldrh	r0, [r8, #4]
5774	cmp	r0, r2
5775	beq	.L705
5776	movs	r1, #1
5777	bl	FtlFreeSysBlkQueueIn
5778.L705:
5779	ldr	r3, [r6, #4]
5780	ldr	r2, [r8, #8]
5781	cmp	r2, r3
5782	bcs	.L706
5783	ldrh	r2, [r8]
5784	strh	r2, [r8, #4]	@ movhi
5785	b	.L746
5786.L706:
5787	strh	r5, [r8, #4]	@ movhi
5788	b	.L680
5789.L709:
5790	ldr	r3, .L750+24
5791	ldr	r2, [r3]
5792	ldrh	r3, [r2]
5793	cbz	r3, .L711
5794.L714:
5795	ldr	r3, .L750+16
5796	ldr	r4, [r3]
5797	ldrh	r2, [r4]
5798	cmp	r2, #0
5799	beq	.L712
5800.L713:
5801	ldr	r3, .L750+28
5802	ldrh	r2, [r3]
5803	ldr	r3, .L750+32
5804	ldr	r3, [r3]
5805	cmp	r2, r3
5806	bls	.L744
5807	movw	r2, #1388
5808	ldr	r1, .L750
5809	ldr	r0, .L750+4
5810	bl	printf
5811.L744:
5812	movs	r0, #0
5813	add	sp, sp, #32
5814	@ sp needed
5815	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5816.L711:
5817	ldr	r1, .L750+28
5818	ldrh	r1, [r1]
5819	cmp	r1, #0
5820	beq	.L714
5821	ldr	r5, .L750+32
5822	ldr	r0, [r5]
5823.L715:
5824	sxth	r1, r3
5825	cmp	r1, r0
5826	bcs	.L714
5827	ldrh	r4, [r2, r1, lsl #1]
5828	adds	r3, r3, #1
5829	cmp	r4, #0
5830	beq	.L715
5831	ldr	r3, .L750+36
5832	movs	r6, #0
5833	ldr	r0, [r3]
5834	mov	r3, r1
5835.L716:
5836	ldr	r4, [r5]
5837	cmp	r3, r4
5838	bcs	.L714
5839	ldrh	r7, [r2, r3, lsl #1]
5840	subs	r4, r3, r1
5841	strh	r7, [r2, r4, lsl #1]	@ movhi
5842	ldr	r7, [r0, r3, lsl #2]
5843	str	r7, [r0, r4, lsl #2]
5844	strh	r6, [r2, r3, lsl #1]	@ movhi
5845	adds	r3, r3, #1
5846	sxth	r3, r3
5847	b	.L716
5848.L712:
5849	ldr	r3, .L750+12
5850	ldrh	r3, [r3]
5851	cmp	r3, #0
5852	beq	.L713
5853	ldr	r5, .L750+20
5854	ldrh	r1, [r5]
5855.L721:
5856	sxth	r3, r2
5857	cmp	r3, r1
5858	mov	r6, r3
5859	bge	.L713
5860	ldrh	r0, [r4, r3, lsl #1]
5861	adds	r2, r2, #1
5862	cmp	r0, #0
5863	beq	.L721
5864	ldr	r2, .L750+8
5865	movs	r0, #0
5866	ldr	r2, [r2]
5867.L722:
5868	ldrh	r1, [r5]
5869	cmp	r3, r1
5870	bge	.L713
5871	ldrh	r7, [r4, r3, lsl #1]
5872	subs	r1, r3, r6
5873	strh	r7, [r4, r1, lsl #1]	@ movhi
5874	ldr	r7, [r2, r3, lsl #2]
5875	str	r7, [r2, r1, lsl #2]
5876	adds	r1, r3, #1
5877	strh	r0, [r4, r3, lsl #1]	@ movhi
5878	sxth	r3, r1
5879	b	.L722
5880.L751:
5881	.align	2
5882.L750:
5883	.word	.LANCHOR149
5884	.word	.LC1
5885	.word	.LANCHOR132
5886	.word	.LANCHOR35
5887	.word	.LANCHOR36
5888	.word	.LANCHOR27
5889	.word	.LANCHOR129
5890	.word	.LANCHOR141
5891	.word	.LANCHOR30
5892	.word	.LANCHOR135
5893	.word	.LANCHOR79
5894	.size	FtlScanSysBlk, .-FtlScanSysBlk
5895	.section	.text.FtlLoadBbt,"ax",%progbits
5896	.align	1
5897	.global	FtlLoadBbt
5898	.syntax unified
5899	.thumb
5900	.thumb_func
5901	.fpu softvfp
5902	.type	FtlLoadBbt, %function
5903FtlLoadBbt:
5904	@ args = 0, pretend = 0, frame = 0
5905	@ frame_needed = 0, uses_anonymous_args = 0
5906	push	{r3, r4, r5, r6, r7, r8, r10, lr}
5907	ldr	r8, .L781+40
5908	ldr	r4, .L781
5909	ldr	r3, [r8]
5910	ldr	r7, .L781+4
5911	mov	r10, r4
5912	str	r3, [r4, #8]
5913	ldr	r3, .L781+8
5914	ldr	r6, [r3]
5915	str	r6, [r4, #12]
5916	bl	FtlBbtMemInit
5917	ldrh	r5, [r7]
5918	subs	r5, r5, #1
5919	uxth	r5, r5
5920.L753:
5921	ldrh	r3, [r7]
5922	subs	r3, r3, #15
5923	cmp	r3, r5
5924	bgt	.L756
5925	lsls	r3, r5, #10
5926	movs	r2, #1
5927	mov	r1, r2
5928	mov	r0, r10
5929	str	r3, [r4, #4]
5930	bl	FlashReadPages
5931	ldr	r3, [r4]
5932	adds	r3, r3, #1
5933	bne	.L754
5934	ldr	r3, [r4, #4]
5935	movs	r2, #1
5936	mov	r1, r2
5937	mov	r0, r10
5938	adds	r3, r3, #1
5939	str	r3, [r4, #4]
5940	bl	FlashReadPages
5941.L754:
5942	ldr	r3, [r4]
5943	adds	r3, r3, #1
5944	beq	.L755
5945	ldrh	r2, [r6]
5946	movw	r3, #61649
5947	cmp	r2, r3
5948	bne	.L755
5949	ldr	r3, .L781+12
5950	ldr	r2, [r6, #4]
5951	strh	r5, [r3]	@ movhi
5952	str	r2, [r3, #8]
5953	ldrh	r2, [r6, #8]
5954	strh	r2, [r3, #4]	@ movhi
5955.L756:
5956	ldr	r5, .L781+12
5957	movw	r2, #65535
5958	ldrh	r3, [r5]
5959	cmp	r3, r2
5960	beq	.L770
5961	ldrh	r3, [r5, #4]
5962	cmp	r3, r2
5963	beq	.L760
5964	lsls	r3, r3, #10
5965	movs	r2, #1
5966	mov	r1, r2
5967	ldr	r0, .L781
5968	str	r3, [r4, #4]
5969	bl	FlashReadPages
5970	ldr	r3, [r4]
5971	adds	r3, r3, #1
5972	beq	.L760
5973	ldrh	r2, [r6]
5974	movw	r3, #61649
5975	cmp	r2, r3
5976	bne	.L760
5977	ldr	r3, [r6, #4]
5978	ldr	r2, [r5, #8]
5979	cmp	r3, r2
5980	bls	.L760
5981	ldrh	r2, [r5, #4]
5982	str	r3, [r5, #8]
5983	ldrh	r3, [r6, #8]
5984	strh	r2, [r5]	@ movhi
5985	strh	r3, [r5, #4]	@ movhi
5986.L760:
5987	ldr	r10, .L781
5988	movs	r1, #1
5989	ldrh	r0, [r5]
5990	bl	FtlGetLastWrittenPage
5991	sxth	r7, r0
5992	adds	r0, r0, #1
5993	strh	r0, [r5, #2]	@ movhi
5994.L762:
5995	cmp	r7, #0
5996	bge	.L765
5997	movs	r2, #253
5998	ldr	r1, .L781+16
5999	ldr	r0, .L781+20
6000	bl	printf
6001.L764:
6002	ldrh	r3, [r6, #10]
6003	ldrh	r0, [r6, #12]
6004	strh	r3, [r5, #6]	@ movhi
6005	movw	r3, #65535
6006	cmp	r0, r3
6007	beq	.L767
6008	ldr	r3, .L781+24
6009	ldr	r2, [r3]
6010	cmp	r0, r2
6011	beq	.L767
6012	ldr	r3, .L781+28
6013	ldrh	r3, [r3]
6014	lsrs	r3, r3, #2
6015	cmp	r2, r3
6016	bcs	.L767
6017	cmp	r0, r3
6018	bcs	.L767
6019	bl	FtlSysBlkNumInit
6020.L767:
6021	ldr	r6, .L781+32
6022	movs	r5, #0
6023	ldr	r7, .L781+36
6024	ldr	r8, .L781+44
6025.L768:
6026	ldrh	r3, [r7]
6027	cmp	r5, r3
6028	bcc	.L769
6029	movs	r0, #0
6030	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
6031.L755:
6032	subs	r5, r5, #1
6033	uxth	r5, r5
6034	b	.L753
6035.L765:
6036	ldrh	r3, [r5]
6037	movs	r2, #1
6038	mov	r1, r2
6039	mov	r0, r10
6040	orr	r3, r7, r3, lsl #10
6041	str	r3, [r4, #4]
6042	ldr	r3, [r8]
6043	str	r3, [r4, #8]
6044	bl	FlashReadPages
6045	ldr	r3, [r4]
6046	adds	r3, r3, #1
6047	beq	.L763
6048	ldrh	r2, [r6]
6049	movw	r3, #61649
6050	cmp	r2, r3
6051	beq	.L764
6052.L763:
6053	subs	r7, r7, #1
6054	sxth	r7, r7
6055	b	.L762
6056.L769:
6057	ldrh	r2, [r8]
6058	ldr	r1, [r4, #8]
6059	ldr	r0, [r6, #4]!
6060	lsls	r2, r2, #2
6061	mla	r1, r5, r2, r1
6062	adds	r5, r5, #1
6063	bl	ftl_memcpy
6064	b	.L768
6065.L770:
6066	mov	r0, #-1
6067	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
6068.L782:
6069	.align	2
6070.L781:
6071	.word	.LANCHOR148
6072	.word	.LANCHOR17
6073	.word	.LANCHOR123
6074	.word	.LANCHOR37
6075	.word	.LANCHOR150
6076	.word	.LC1
6077	.word	.LANCHOR2
6078	.word	.LANCHOR6
6079	.word	.LANCHOR37+24
6080	.word	.LANCHOR10
6081	.word	.LANCHOR115
6082	.word	.LANCHOR137
6083	.size	FtlLoadBbt, .-FtlLoadBbt
6084	.section	.text.FtlLoadSysInfo,"ax",%progbits
6085	.align	1
6086	.global	FtlLoadSysInfo
6087	.syntax unified
6088	.thumb
6089	.thumb_func
6090	.fpu softvfp
6091	.type	FtlLoadSysInfo, %function
6092FtlLoadSysInfo:
6093	@ args = 0, pretend = 0, frame = 8
6094	@ frame_needed = 0, uses_anonymous_args = 0
6095	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6096	movs	r1, #0
6097	ldr	r8, .L804+136
6098	ldr	r5, .L804
6099	ldr	r3, [r8]
6100	ldr	r4, .L804+4
6101	ldr	r10, .L804+140
6102	ldrh	r2, [r5]
6103	ldr	r7, .L804+8
6104	str	r3, [r4, #8]
6105	ldr	r6, .L804+12
6106	ldr	r3, [r10]
6107	lsls	r2, r2, #1
6108	ldr	r0, [r7]
6109	str	r3, [r4, #12]
6110	bl	ftl_memset
6111	ldrh	r0, [r6]
6112	movw	r3, #65535
6113	str	r7, [sp]
6114	cmp	r0, r3
6115	bne	.L784
6116.L792:
6117	mov	r0, #-1
6118.L783:
6119	add	sp, sp, #8
6120	@ sp needed
6121	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6122.L784:
6123	movs	r1, #1
6124	mov	fp, r4
6125	bl	FtlGetLastWrittenPage
6126	ldr	r3, .L804+16
6127	sxth	r7, r0
6128	adds	r0, r0, #1
6129	strh	r0, [r6, #2]	@ movhi
6130.L786:
6131	cmp	r7, #0
6132	bge	.L789
6133	mov	r2, #1448
6134	ldr	r1, .L804+20
6135	ldr	r0, .L804+24
6136	bl	printf
6137.L788:
6138	ldr	r2, .L804+28
6139	ldrh	r3, [r5]
6140	ldrh	r2, [r2]
6141	adds	r3, r3, #24
6142	cmp	r2, r3, lsl #1
6143	bcs	.L791
6144	movw	r2, #1450
6145	ldr	r1, .L804+20
6146	ldr	r0, .L804+24
6147	bl	printf
6148.L791:
6149	ldr	r7, .L804+32
6150	movs	r2, #48
6151	ldr	r1, [r4, #8]
6152	mov	r0, r7
6153	bl	ftl_memcpy
6154	ldrh	r2, [r5]
6155	ldr	r1, [r4, #8]
6156	ldr	r3, [sp]
6157	lsls	r2, r2, #1
6158	adds	r1, r1, #48
6159	ldr	r0, [r3]
6160	bl	ftl_memcpy
6161	ldrh	r1, [r5]
6162	ldr	r3, [r4, #8]
6163	mov	r4, r7
6164	lsrs	r2, r1, #3
6165	adds	r1, r1, #24
6166	lsls	r1, r1, #1
6167	adds	r2, r2, #4
6168	bic	r1, r1, #3
6169	add	r1, r1, r3
6170	ldr	r3, .L804+36
6171	ldr	r0, [r3]
6172	bl	ftl_memcpy
6173	ldr	r2, [r7]
6174	ldr	r3, .L804+16
6175	cmp	r2, r3
6176	bne	.L792
6177	ldr	r3, .L804+40
6178	ldrb	r2, [r7, #10]	@ zero_extendqisi2
6179	ldrh	r5, [r7, #8]
6180	ldrh	r3, [r3]
6181	strh	r5, [r6, #6]	@ movhi
6182	cmp	r2, r3
6183	bne	.L792
6184	ldr	r3, .L804+44
6185	ldr	r2, .L804+48
6186	str	r5, [r3]
6187	ldr	r3, .L804+52
6188	ldrh	r3, [r3]
6189	muls	r3, r5, r3
6190	str	r3, [r2]
6191	ldr	r2, .L804+56
6192	ldrh	r2, [r2]
6193	muls	r3, r2, r3
6194	ldr	r2, .L804+60
6195	str	r3, [r2]
6196	ldr	r3, .L804+64
6197	ldr	r6, [r3]
6198	ldr	r3, .L804+68
6199	ldrh	r0, [r3, #6]
6200	ldr	r3, .L804+72
6201	subs	r0, r6, r0
6202	ldrh	r1, [r3]
6203	subs	r0, r0, r5
6204	bl	__aeabi_uidiv
6205	ldr	r3, .L804+76
6206	cmp	r5, r6
6207	strh	r0, [r3]	@ movhi
6208	bls	.L793
6209	mov	r2, #1472
6210	ldr	r1, .L804+20
6211	ldr	r0, .L804+24
6212	bl	printf
6213.L793:
6214	ldrh	r2, [r4, #16]
6215	ldr	r3, .L804+80
6216	ldrh	ip, [r4, #14]
6217	ldr	r7, .L804+84
6218	lsrs	r1, r2, #6
6219	and	r2, r2, #63
6220	strb	r2, [r3, #6]
6221	ldrb	r2, [r4, #11]	@ zero_extendqisi2
6222	strh	r1, [r3, #2]	@ movhi
6223	ldr	r1, .L804+88
6224	strb	r2, [r3, #8]
6225	ldrh	r2, [r4, #18]
6226	strh	ip, [r3]	@ movhi
6227	movw	r3, #65535
6228	strh	r3, [r7]	@ movhi
6229	movs	r3, #0
6230	strh	r2, [r1]	@ movhi
6231	ldrh	r2, [r4, #20]
6232	strh	r3, [r7, #2]	@ movhi
6233	strb	r3, [r7, #6]
6234	strb	r3, [r7, #8]
6235	lsrs	r5, r2, #6
6236	and	r2, r2, #63
6237	strb	r2, [r1, #6]
6238	ldrb	r2, [r4, #12]	@ zero_extendqisi2
6239	strh	r5, [r1, #2]	@ movhi
6240	ldrh	r5, [r4, #22]
6241	strb	r2, [r1, #8]
6242	ldr	r2, .L804+92
6243	strh	r5, [r2]	@ movhi
6244	ldrh	r5, [r4, #24]
6245	lsrs	r6, r5, #6
6246	and	r5, r5, #63
6247	strb	r5, [r2, #6]
6248	ldrb	r5, [r4, #13]	@ zero_extendqisi2
6249	strh	r6, [r2, #2]	@ movhi
6250	ldr	r6, [r4, #32]
6251	strb	r5, [r2, #8]
6252	ldr	r5, .L804+96
6253	str	r3, [r5]
6254	ldr	r5, .L804+100
6255	str	r3, [r5]
6256	ldr	r5, .L804+104
6257	str	r3, [r5]
6258	ldr	r5, .L804+108
6259	str	r3, [r5]
6260	ldr	r5, .L804+112
6261	str	r6, [r5]
6262	mov	r6, r1
6263	ldr	r5, .L804+116
6264	str	r3, [r5]
6265	ldr	r5, .L804+120
6266	str	r3, [r5]
6267	ldr	r5, .L804+124
6268	ldr	lr, [r4, #40]
6269	str	r3, [r5]
6270	ldr	r3, .L804+128
6271	ldr	r5, [r3]
6272	cmp	lr, r5
6273	mov	r5, r2
6274	it	hi
6275	strhi	lr, [r3]
6276	ldr	r3, .L804+132
6277	ldr	r2, [r4, #36]
6278	ldr	r1, [r3]
6279	cmp	r2, r1
6280	it	hi
6281	strhi	r2, [r3]
6282	movw	r3, #65535
6283	cmp	ip, r3
6284	beq	.L796
6285	ldr	r0, .L804+80
6286	bl	make_superblock
6287.L796:
6288	ldrh	r2, [r6]
6289	movw	r3, #65535
6290	cmp	r2, r3
6291	beq	.L797
6292	ldr	r0, .L804+88
6293	bl	make_superblock
6294.L797:
6295	ldrh	r2, [r5]
6296	movw	r3, #65535
6297	cmp	r2, r3
6298	beq	.L798
6299	ldr	r0, .L804+92
6300	bl	make_superblock
6301.L798:
6302	ldrh	r2, [r7]
6303	movw	r3, #65535
6304	cmp	r2, r3
6305	beq	.L799
6306	ldr	r0, .L804+84
6307	bl	make_superblock
6308.L799:
6309	movs	r0, #0
6310	b	.L783
6311.L789:
6312	ldrh	r2, [r6]
6313	mov	r0, fp
6314	str	r3, [sp, #4]
6315	orr	r2, r7, r2, lsl #10
6316	str	r2, [r4, #4]
6317	ldr	r2, [r8]
6318	str	r2, [r4, #8]
6319	movs	r2, #1
6320	mov	r1, r2
6321	bl	FlashReadPages
6322	ldr	r2, [r4]
6323	ldr	r3, [sp, #4]
6324	adds	r2, r2, #1
6325	beq	.L787
6326	ldr	r2, [r8]
6327	ldr	r2, [r2]
6328	cmp	r2, r3
6329	bne	.L787
6330	ldr	r2, [r10]
6331	ldrh	r1, [r2]
6332	movw	r2, #61604
6333	cmp	r1, r2
6334	beq	.L788
6335.L787:
6336	subs	r7, r7, #1
6337	sxth	r7, r7
6338	b	.L786
6339.L805:
6340	.align	2
6341.L804:
6342	.word	.LANCHOR5
6343	.word	.LANCHOR148
6344	.word	.LANCHOR42
6345	.word	.LANCHOR79
6346	.word	1179929683
6347	.word	.LANCHOR151
6348	.word	.LC1
6349	.word	.LANCHOR23
6350	.word	.LANCHOR39
6351	.word	.LANCHOR1
6352	.word	.LANCHOR10
6353	.word	.LANCHOR152
6354	.word	.LANCHOR61
6355	.word	.LANCHOR19
6356	.word	.LANCHOR12
6357	.word	.LANCHOR34
6358	.word	.LANCHOR7
6359	.word	.LANCHOR37
6360	.word	.LANCHOR3
6361	.word	.LANCHOR78
6362	.word	.LANCHOR51
6363	.word	.LANCHOR80
6364	.word	.LANCHOR52
6365	.word	.LANCHOR53
6366	.word	.LANCHOR67
6367	.word	.LANCHOR64
6368	.word	.LANCHOR62
6369	.word	.LANCHOR66
6370	.word	.LANCHOR72
6371	.word	.LANCHOR73
6372	.word	.LANCHOR76
6373	.word	.LANCHOR65
6374	.word	.LANCHOR70
6375	.word	.LANCHOR71
6376	.word	.LANCHOR115
6377	.word	.LANCHOR123
6378	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
6379	.section	.text.FlashProgPages,"ax",%progbits
6380	.align	1
6381	.global	FlashProgPages
6382	.syntax unified
6383	.thumb
6384	.thumb_func
6385	.fpu softvfp
6386	.type	FlashProgPages, %function
6387FlashProgPages:
6388	@ args = 0, pretend = 0, frame = 48
6389	@ frame_needed = 0, uses_anonymous_args = 0
6390	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6391	sub	sp, sp, #48
6392	str	r3, [sp, #12]
6393	mov	r10, r1
6394	mov	r4, r0
6395	mov	r5, r0
6396	ldr	r3, .L846
6397	mov	r8, #0
6398	ldr	fp, .L846+48
6399	str	r2, [sp, #8]
6400	ldrh	r3, [r3, #12]
6401	str	r3, [sp]
6402	lsls	r3, r3, #3
6403	str	r3, [sp, #4]
6404.L807:
6405	cmp	r8, r10
6406	bne	.L820
6407	ldr	r3, [sp, #12]
6408	cmp	r3, #0
6409	beq	.L838
6410	ldr	r6, .L846+4
6411	movs	r5, #0
6412.L822:
6413	cmp	r8, r5
6414	beq	.L838
6415	ldr	r7, .L846+8
6416	movs	r1, #0
6417	ldr	r2, [r6]
6418	add	r0, sp, #28
6419	ldr	r3, [r7]
6420	str	r1, [r2]
6421	str	r1, [r3]
6422	ldr	r1, [r4, #4]
6423	str	r2, [sp, #36]
6424	ldr	r2, [sp, #8]
6425	str	r1, [sp, #32]
6426	movs	r1, #1
6427	str	r3, [sp, #40]
6428	bl	FlashReadPages
6429	ldr	r10, [sp, #28]
6430	cmp	r10, #-1
6431	bne	.L823
6432	ldr	r1, [r4, #4]
6433	ldr	r0, .L846+12
6434	bl	printf
6435	str	r10, [r4]
6436.L823:
6437	ldr	r3, [r4, #12]
6438	cbz	r3, .L824
6439	ldr	r2, [r3]
6440	ldr	r3, [r7]
6441	ldr	r3, [r3]
6442	cmp	r2, r3
6443	beq	.L824
6444	ldr	r1, [r4, #4]
6445	ldr	r0, .L846+16
6446	bl	printf
6447	mov	r3, #-1
6448	str	r3, [r4]
6449.L824:
6450	ldr	r3, [r4, #8]
6451	cbz	r3, .L825
6452	ldr	r2, [r3]
6453	ldr	r3, [r6]
6454	ldr	r3, [r3]
6455	cmp	r2, r3
6456	beq	.L825
6457	ldr	r1, [r4, #4]
6458	ldr	r0, .L846+20
6459	bl	printf
6460	mov	r3, #-1
6461	str	r3, [r4]
6462.L825:
6463	adds	r5, r5, #1
6464	adds	r4, r4, #20
6465	b	.L822
6466.L820:
6467	ldr	r3, [r5, #8]
6468	cbz	r3, .L808
6469	ldr	r3, [r5, #12]
6470	cbnz	r3, .L809
6471.L808:
6472	movs	r2, #134
6473	ldr	r1, .L846+24
6474	ldr	r0, .L846+28
6475	bl	printf
6476.L809:
6477	add	r2, sp, #20
6478	add	r1, sp, #24
6479	ldr	r0, [r5, #4]
6480	bl	l2p_addr_tran.isra.0
6481	ldr	r6, [sp, #20]
6482	cmp	r6, #3
6483	bls	.L810
6484.L845:
6485	mov	r3, #-1
6486	str	r3, [r5]
6487	b	.L811
6488.L810:
6489	cbnz	r6, .L812
6490	ldr	r3, [sp, #24]
6491	ldr	r2, [sp, #4]
6492	cmp	r2, r3
6493	bls	.L812
6494	ldr	r5, .L846+24
6495	ldr	r7, .L846+32
6496	b	.L844
6497.L814:
6498	mov	r3, #-1
6499	ldr	r2, [r4, #-16]
6500	str	r3, [r4, #-20]
6501	mov	r1, r5
6502	mov	r0, r7
6503	adds	r6, r6, #1
6504	bl	printf
6505	movs	r3, #16
6506	movs	r2, #4
6507	ldr	r1, [r4, #-12]
6508	ldr	r0, .L846+36
6509	bl	rknand_print_hex
6510	movs	r3, #4
6511	ldr	r1, [r4, #-8]
6512	mov	r2, r3
6513	ldr	r0, .L846+40
6514	bl	rknand_print_hex
6515.L844:
6516	cmp	r6, r10
6517	add	r4, r4, #20
6518	bne	.L814
6519.L838:
6520	movs	r0, #0
6521	add	sp, sp, #48
6522	@ sp needed
6523	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6524.L812:
6525	ldr	r1, [r5, #8]
6526	lsls	r3, r1, #26
6527	beq	.L827
6528	ldr	r3, .L846+4
6529	ldr	r6, [r3]
6530	cmp	r1, r6
6531	beq	.L815
6532	ldr	r3, .L846+44
6533	mov	r0, r6
6534	ldrh	r2, [r3]
6535	lsls	r2, r2, #9
6536	bl	ftl_memcpy
6537.L815:
6538	ldr	r3, [r5, #12]
6539	mov	r2, r6
6540	ldr	r1, [sp, #24]
6541	ldrb	r0, [sp, #20]	@ zero_extendqisi2
6542	ldr	r7, [fp, #8]
6543	blx	r7
6544	cbnz	r0, .L816
6545	str	r0, [r5]
6546.L817:
6547	ldr	r3, .L846
6548	ldrh	r3, [r3, #14]
6549	cmp	r3, #4
6550	bne	.L811
6551	ldr	r0, [sp]
6552	add	r2, r6, #2048
6553	ldr	r3, [r5, #12]
6554	ldr	r1, [sp, #24]
6555	ldr	r6, [fp, #8]
6556	adds	r3, r3, #8
6557	add	r1, r1, r0
6558	ldrb	r0, [sp, #20]	@ zero_extendqisi2
6559	blx	r6
6560	cmp	r0, #0
6561	bne	.L845
6562.L811:
6563	add	r8, r8, #1
6564	adds	r5, r5, #20
6565	b	.L807
6566.L827:
6567	mov	r6, r1
6568	b	.L815
6569.L816:
6570	mov	r3, #-1
6571	str	r3, [r5]
6572	b	.L817
6573.L847:
6574	.align	2
6575.L846:
6576	.word	.LANCHOR0
6577	.word	.LANCHOR120
6578	.word	.LANCHOR122
6579	.word	.LC85
6580	.word	.LC86
6581	.word	.LC87
6582	.word	.LANCHOR153
6583	.word	.LC1
6584	.word	.LC79
6585	.word	.LC80
6586	.word	.LC81
6587	.word	.LANCHOR12
6588	.word	.LANCHOR105
6589	.size	FlashProgPages, .-FlashProgPages
6590	.section	.text.FtlLowFormatEraseBlock,"ax",%progbits
6591	.align	1
6592	.global	FtlLowFormatEraseBlock
6593	.syntax unified
6594	.thumb
6595	.thumb_func
6596	.fpu softvfp
6597	.type	FtlLowFormatEraseBlock, %function
6598FtlLowFormatEraseBlock:
6599	@ args = 0, pretend = 0, frame = 32
6600	@ frame_needed = 0, uses_anonymous_args = 0
6601	ldr	r3, .L891
6602	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6603	sub	sp, sp, #32
6604	ldr	r7, .L891+4
6605	mov	r8, #0
6606	mov	r6, r1
6607	mov	r5, r8
6608	str	r0, [r3]
6609	mov	r4, r8
6610	ldr	r3, .L891+8
6611	mov	fp, #20
6612	ldr	r10, [r7]
6613	str	r0, [sp, #4]
6614	ldrh	r3, [r3]
6615	str	r3, [sp, #12]
6616	ldr	r3, .L891+12
6617	ldr	r3, [r3]
6618	str	r3, [sp, #16]
6619	ldr	r3, .L891+16
6620	ldr	r3, [r3]
6621	str	r3, [sp, #20]
6622	ldr	r3, .L891+20
6623	ldrh	r3, [r3]
6624	str	r3, [sp, #24]
6625.L849:
6626	ldr	r3, [sp, #12]
6627	uxth	r2, r8
6628	cmp	r3, r2
6629	bhi	.L853
6630	cmp	r5, #0
6631	beq	.L848
6632	mov	r0, r10
6633	mov	r8, #0
6634	mov	r10, #20
6635	mov	r2, r5
6636	movs	r1, #0
6637	bl	FlashEraseBlocks
6638.L856:
6639	uxth	r3, r8
6640	cmp	r5, r3
6641	bhi	.L858
6642	cmp	r6, #0
6643	beq	.L874
6644	ldr	r3, .L891+24
6645	mov	r10, #1
6646	ldrh	r3, [r3]
6647	str	r3, [sp, #8]
6648.L859:
6649	movs	r7, #0
6650.L868:
6651	ldr	r3, .L891+8
6652	mov	r8, #0
6653	mov	r5, r8
6654	ldrh	r3, [r3]
6655	str	r3, [sp, #16]
6656	ldr	r3, .L891+4
6657	ldr	fp, [r3]
6658	ldr	r3, .L891+28
6659	ldr	r3, [r3]
6660	str	r3, [sp, #20]
6661	ldr	r3, .L891+12
6662	ldr	r3, [r3]
6663	str	r3, [sp, #24]
6664	ldr	r3, .L891+20
6665	ldrh	r3, [r3]
6666	str	r3, [sp, #28]
6667.L860:
6668	ldr	r3, [sp, #16]
6669	uxth	r2, r8
6670	cmp	r3, r2
6671	bhi	.L863
6672	cbz	r5, .L848
6673	mov	r0, fp
6674	ldr	fp, .L891+4
6675	movs	r3, #1
6676	mov	r2, r10
6677	mov	r1, r5
6678	mov	r8, #0
6679	bl	FlashProgPages
6680	movs	r3, #20
6681.L865:
6682	uxth	r2, r8
6683	cmp	r5, r2
6684	bhi	.L867
6685	adds	r7, r7, #1
6686	ldr	r2, [sp, #8]
6687	uxth	r3, r7
6688	cmp	r2, r3
6689	bhi	.L868
6690	ldr	r8, .L891+4
6691	movs	r7, #0
6692	mov	fp, #20
6693.L869:
6694	uxth	r3, r7
6695	cmp	r5, r3
6696	bhi	.L871
6697	ldr	r3, [sp, #4]
6698	cmp	r3, #63
6699	bls	.L872
6700	cbz	r6, .L848
6701.L872:
6702	ldr	r3, .L891+4
6703	mov	r2, r5
6704	mov	r1, r10
6705	ldr	r0, [r3]
6706	bl	FlashEraseBlocks
6707.L848:
6708	mov	r0, r4
6709	add	sp, sp, #32
6710	@ sp needed
6711	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6712.L853:
6713	mul	r2, fp, r8
6714	movs	r3, #0
6715	ldr	r1, [sp, #4]
6716	str	r3, [r10, r2]
6717	ldr	r3, .L891+32
6718	ldrb	r0, [r3, r8]	@ zero_extendqisi2
6719	bl	V2P_block
6720	str	r0, [sp, #8]
6721	cbz	r6, .L850
6722	bl	IsBlkInVendorPart
6723	cbnz	r0, .L851
6724.L850:
6725	ldr	r0, [sp, #8]
6726	bl	FtlBbmIsBadBlock
6727	cbnz	r0, .L852
6728	ldr	r3, [sp, #8]
6729	mla	r1, fp, r5, r10
6730	lsls	r2, r3, #10
6731	ldr	r3, [sp, #16]
6732	str	r2, [r1, #4]
6733	str	r3, [r1, #8]
6734	ldr	r3, [sp, #24]
6735	mul	r2, r3, r5
6736	ldr	r3, [sp, #20]
6737	adds	r5, r5, #1
6738	uxth	r5, r5
6739	bic	r2, r2, #3
6740	add	r2, r2, r3
6741	str	r2, [r1, #12]
6742.L851:
6743	add	r8, r8, #1
6744	b	.L849
6745.L852:
6746	adds	r4, r4, #1
6747	uxth	r4, r4
6748	b	.L851
6749.L858:
6750	mul	r3, r10, r8
6751	ldr	r2, [r7]
6752	adds	r1, r2, r3
6753	ldr	r3, [r2, r3]
6754	adds	r3, r3, #1
6755	bne	.L857
6756	ldr	r0, [r1, #4]
6757	adds	r4, r4, #1
6758	uxth	r4, r4
6759	ubfx	r0, r0, #10, #16
6760	bl	FtlBbmMapBadBlock
6761.L857:
6762	add	r8, r8, #1
6763	b	.L856
6764.L874:
6765	movs	r3, #2
6766	mov	r10, r6
6767	str	r3, [sp, #8]
6768	b	.L859
6769.L863:
6770	movs	r3, #20
6771	ldr	r1, [sp, #4]
6772	mul	r2, r3, r8
6773	movs	r3, #0
6774	str	r3, [fp, r2]
6775	ldr	r3, .L891+32
6776	ldrb	r0, [r3, r8]	@ zero_extendqisi2
6777	bl	V2P_block
6778	str	r0, [sp, #12]
6779	cbz	r6, .L861
6780	bl	IsBlkInVendorPart
6781	cbnz	r0, .L862
6782.L861:
6783	ldr	r0, [sp, #12]
6784	bl	FtlBbmIsBadBlock
6785	cbnz	r0, .L862
6786	movs	r3, #20
6787	mla	r1, r3, r5, fp
6788	ldr	r3, [sp, #12]
6789	add	r2, r7, r3, lsl #10
6790	ldr	r3, [sp, #20]
6791	str	r2, [r1, #4]
6792	str	r3, [r1, #8]
6793	ldr	r3, [sp, #28]
6794	mul	r2, r3, r5
6795	ldr	r3, [sp, #24]
6796	adds	r5, r5, #1
6797	uxth	r5, r5
6798	bic	r2, r2, #3
6799	add	r2, r2, r3
6800	str	r2, [r1, #12]
6801.L862:
6802	add	r8, r8, #1
6803	b	.L860
6804.L867:
6805	mul	r2, r3, r8
6806	ldr	r1, [fp]
6807	adds	r0, r1, r2
6808	ldr	r2, [r1, r2]
6809	cbz	r2, .L866
6810	ldr	r0, [r0, #4]
6811	adds	r4, r4, #1
6812	str	r3, [sp, #12]
6813	uxth	r4, r4
6814	ubfx	r0, r0, #10, #16
6815	bl	FtlBbmMapBadBlock
6816	ldr	r3, [sp, #12]
6817.L866:
6818	add	r8, r8, #1
6819	b	.L865
6820.L871:
6821	cbz	r6, .L870
6822	mul	r3, fp, r7
6823	ldr	r2, [r8]
6824	adds	r1, r2, r3
6825	ldr	r3, [r2, r3]
6826	cbnz	r3, .L870
6827	ldr	r0, [r1, #4]
6828	movs	r1, #1
6829	ubfx	r0, r0, #10, #16
6830	bl	FtlFreeSysBlkQueueIn
6831.L870:
6832	adds	r7, r7, #1
6833	b	.L869
6834.L892:
6835	.align	2
6836.L891:
6837	.word	.LANCHOR111
6838	.word	.LANCHOR106
6839	.word	.LANCHOR3
6840	.word	.LANCHOR119
6841	.word	.LANCHOR124
6842	.word	.LANCHOR24
6843	.word	.LANCHOR20
6844	.word	.LANCHOR118
6845	.word	.LANCHOR13
6846	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
6847	.section	.text.Ftl_write_map_blk_to_last_page,"ax",%progbits
6848	.align	1
6849	.global	Ftl_write_map_blk_to_last_page
6850	.syntax unified
6851	.thumb
6852	.thumb_func
6853	.fpu softvfp
6854	.type	Ftl_write_map_blk_to_last_page, %function
6855Ftl_write_map_blk_to_last_page:
6856	@ args = 0, pretend = 0, frame = 0
6857	@ frame_needed = 0, uses_anonymous_args = 0
6858	push	{r3, r4, r5, r6, r7, lr}
6859	movw	r2, #65535
6860	ldrh	r3, [r0]
6861	mov	r4, r0
6862	ldr	r5, [r0, #12]
6863	cmp	r3, r2
6864	bne	.L894
6865	ldrh	r3, [r0, #8]
6866	cbz	r3, .L895
6867	movw	r2, #641
6868	ldr	r1, .L903
6869	ldr	r0, .L903+4
6870	bl	printf
6871.L895:
6872	ldrh	r3, [r4, #8]
6873	adds	r3, r3, #1
6874	strh	r3, [r4, #8]	@ movhi
6875	bl	FtlFreeSysBlkQueueOut
6876	movs	r3, #0
6877	strh	r0, [r5]	@ movhi
6878	strh	r3, [r4, #2]	@ movhi
6879	strh	r3, [r4]	@ movhi
6880	ldr	r3, [r4, #28]
6881	adds	r3, r3, #1
6882	str	r3, [r4, #28]
6883.L896:
6884	movs	r0, #0
6885	pop	{r3, r4, r5, r6, r7, pc}
6886.L894:
6887	ldrh	r5, [r5, r3, lsl #1]
6888	movs	r1, #255
6889	ldrh	r3, [r0, #2]
6890	ldr	r2, .L903+8
6891	ldr	r7, .L903+12
6892	ldr	r6, [r0, #24]
6893	orr	r3, r3, r5, lsl #10
6894	ldr	r0, [r7]
6895	str	r3, [r2, #4]
6896	ldr	r3, .L903+16
6897	str	r0, [r2, #8]
6898	ldr	r3, [r3]
6899	str	r3, [r2, #12]
6900	ldr	r2, [r4, #28]
6901	str	r2, [r3, #4]
6902	movw	r2, #64245
6903	strh	r2, [r3, #8]	@ movhi
6904	ldrh	r2, [r4, #4]
6905	strh	r5, [r3, #2]	@ movhi
6906	strh	r2, [r3]	@ movhi
6907	ldr	r3, .L903+20
6908	ldrh	r2, [r3]
6909	lsls	r2, r2, #3
6910	bl	ftl_memset
6911	ldrh	ip, [r4, #6]
6912	movs	r3, #0
6913	ldr	r1, [r7]
6914	mov	r2, r3
6915.L897:
6916	uxth	r0, r3
6917	cmp	ip, r0
6918	bhi	.L899
6919	movs	r2, #1
6920	movs	r3, #0
6921	mov	r1, r2
6922	ldr	r0, .L903+8
6923	bl	FlashProgPages
6924	ldrh	r3, [r4, #2]
6925	mov	r0, r4
6926	adds	r3, r3, #1
6927	strh	r3, [r4, #2]	@ movhi
6928	bl	ftl_map_blk_gc
6929	b	.L896
6930.L899:
6931	ldr	r0, [r6, r3, lsl #2]
6932	cmp	r5, r0, lsr #10
6933	bne	.L898
6934	adds	r2, r2, #1
6935	uxth	r2, r2
6936	str	r3, [r1, r2, lsl #3]
6937	add	r7, r1, r2, lsl #3
6938	ldr	r0, [r6, r3, lsl #2]
6939	str	r0, [r7, #4]
6940.L898:
6941	adds	r3, r3, #1
6942	b	.L897
6943.L904:
6944	.align	2
6945.L903:
6946	.word	.LANCHOR154
6947	.word	.LC1
6948	.word	.LANCHOR148
6949	.word	.LANCHOR115
6950	.word	.LANCHOR123
6951	.word	.LANCHOR20
6952	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
6953	.section	.text.FtlMapWritePage,"ax",%progbits
6954	.align	1
6955	.global	FtlMapWritePage
6956	.syntax unified
6957	.thumb
6958	.thumb_func
6959	.fpu softvfp
6960	.type	FtlMapWritePage, %function
6961FtlMapWritePage:
6962	@ args = 0, pretend = 0, frame = 8
6963	@ frame_needed = 0, uses_anonymous_args = 0
6964	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6965	mov	r4, r0
6966	ldr	r8, .L929+28
6967	mov	r7, r1
6968	movs	r6, #0
6969	str	r2, [sp, #4]
6970	mov	fp, r8
6971.L906:
6972	ldr	r2, .L929
6973	ldr	r3, [r2]
6974	adds	r3, r3, #1
6975	str	r3, [r2]
6976	ldrh	r3, [r8]
6977	ldrh	r2, [r4, #2]
6978	subs	r3, r3, #1
6979	cmp	r2, r3
6980	bge	.L907
6981	ldrh	r2, [r4]
6982	movw	r3, #65535
6983	cmp	r2, r3
6984	bne	.L908
6985.L907:
6986	mov	r0, r4
6987	bl	Ftl_write_map_blk_to_last_page
6988.L908:
6989	ldrh	r2, [r4]
6990	ldr	r3, [r4, #12]
6991	ldrh	r3, [r3, r2, lsl #1]
6992	cbnz	r3, .L909
6993	movw	r2, #699
6994	ldr	r1, .L929+4
6995	ldr	r0, .L929+8
6996	bl	printf
6997.L909:
6998	ldrh	r2, [r4]
6999	ldrh	r3, [r4, #10]
7000	cmp	r2, r3
7001	bcc	.L910
7002	mov	r2, #700
7003	ldr	r1, .L929+4
7004	ldr	r0, .L929+8
7005	bl	printf
7006.L910:
7007	ldrh	r2, [r4]
7008	movs	r1, #0
7009	ldr	r3, [r4, #12]
7010	ldr	r5, .L929+12
7011	ldrh	r10, [r3, r2, lsl #1]
7012	ldrh	r2, [r4, #2]
7013	ldr	r3, [sp, #4]
7014	orr	r2, r2, r10, lsl #10
7015	str	r3, [r5, #8]
7016	str	r2, [r5, #4]
7017	ldr	r2, .L929+16
7018	ldr	r0, [r2]
7019	movs	r2, #16
7020	str	r0, [r5, #12]
7021	bl	ftl_memset
7022	ldr	r2, [r5, #12]
7023	movs	r3, #1
7024	ldr	r1, [r4, #28]
7025	mov	r0, r5
7026	strh	r7, [r2, #8]	@ movhi
7027	str	r1, [r2, #4]
7028	ldrh	r1, [r4, #4]
7029	strh	r10, [r2, #2]	@ movhi
7030	strh	r1, [r2]	@ movhi
7031	mov	r2, r3
7032	mov	r1, r3
7033	bl	FlashProgPages
7034	ldrh	r2, [r4, #2]
7035	ldr	r1, [r5]
7036	adds	r2, r2, #1
7037	uxth	r2, r2
7038	adds	r3, r1, #1
7039	strh	r2, [r4, #2]	@ movhi
7040	bne	.L911
7041	ldr	r1, [r5, #4]
7042	adds	r6, r6, #1
7043	ldr	r0, .L929+20
7044	uxth	r6, r6
7045	bl	printf
7046	ldrh	r2, [r4, #2]
7047	cmp	r2, #2
7048	ittt	ls
7049	ldrhls	r2, [fp]
7050	addls	r2, r2, #-1
7051	strhls	r2, [r4, #2]	@ movhi
7052	cmp	r6, #3
7053	bls	.L913
7054	mov	r2, r6
7055	ldr	r1, [r5, #4]
7056	ldr	r0, .L929+24
7057	bl	printf
7058.L914:
7059	b	.L914
7060.L913:
7061	ldr	r3, [r4, #32]
7062	cmp	r3, #0
7063	beq	.L906
7064.L928:
7065	b	.L928
7066.L911:
7067	cmp	r2, #1
7068	beq	.L917
7069	cmp	r1, #256
7070	beq	.L917
7071	ldr	r0, [r4, #36]
7072	cbz	r0, .L918
7073.L917:
7074	movs	r3, #0
7075	str	r3, [r4, #36]
7076	b	.L906
7077.L918:
7078	ldr	r2, [r5, #4]
7079	ldr	r3, [r4, #24]
7080	str	r2, [r3, r7, lsl #2]
7081	add	sp, sp, #8
7082	@ sp needed
7083	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7084.L930:
7085	.align	2
7086.L929:
7087	.word	.LANCHOR66
7088	.word	.LANCHOR155
7089	.word	.LC1
7090	.word	.LANCHOR148
7091	.word	.LANCHOR123
7092	.word	.LC88
7093	.word	.LC89
7094	.word	.LANCHOR20
7095	.size	FtlMapWritePage, .-FtlMapWritePage
7096	.section	.text.load_l2p_region,"ax",%progbits
7097	.align	1
7098	.global	load_l2p_region
7099	.syntax unified
7100	.thumb
7101	.thumb_func
7102	.fpu softvfp
7103	.type	load_l2p_region, %function
7104load_l2p_region:
7105	@ args = 0, pretend = 0, frame = 8
7106	@ frame_needed = 0, uses_anonymous_args = 0
7107	ldr	r3, .L938
7108	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7109	mov	r5, r0
7110	mov	r10, r1
7111	ldrh	r2, [r3]
7112	str	r3, [sp, #4]
7113	cmp	r2, r0
7114	bcs	.L932
7115	movw	r2, #485
7116	ldr	r1, .L938+4
7117	ldr	r0, .L938+8
7118	bl	printf
7119.L932:
7120	ldr	fp, .L938+48
7121	movs	r4, #12
7122	ldr	r7, .L938+12
7123	ldr	r3, [fp]
7124	ldr	r8, [r3, r5, lsl #2]
7125	cmp	r8, #0
7126	bne	.L933
7127	mul	r4, r4, r10
7128	ldr	r2, [r7]
7129	movs	r1, #255
7130	adds	r0, r2, r4
7131	ldr	r2, .L938+16
7132	ldr	r0, [r0, #8]
7133	ldrh	r2, [r2]
7134	bl	ftl_memset
7135	ldr	r2, [r7]
7136	adds	r1, r2, r4
7137	strh	r5, [r2, r4]	@ movhi
7138	str	r8, [r1, #4]
7139.L934:
7140	movs	r0, #0
7141	add	sp, sp, #8
7142	@ sp needed
7143	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7144.L933:
7145	mul	r4, r4, r10
7146	ldr	r2, [r7]
7147	ldr	r6, .L938+20
7148	add	r2, r2, r4
7149	mov	r0, r6
7150	ldr	r2, [r2, #8]
7151	str	r8, [r6, #4]
7152	str	r2, [r6, #8]
7153	ldr	r2, .L938+24
7154	ldr	r2, [r2]
7155	str	r2, [r6, #12]
7156	movs	r2, #1
7157	mov	r1, r2
7158	bl	FlashReadPages
7159	ldr	r10, [r6, #12]
7160	ldrh	r2, [r10, #8]
7161	cmp	r2, r5
7162	beq	.L935
7163	mov	r2, r8
7164	mov	r1, r5
7165	ldr	r0, .L938+28
7166	bl	printf
7167	movs	r3, #4
7168	ldr	r1, [r6, #12]
7169	mov	r2, r3
7170	ldr	r0, .L938+32
7171	bl	rknand_print_hex
7172	ldr	r3, [sp, #4]
7173	movs	r2, #4
7174	ldr	r1, [fp]
7175	ldr	r0, .L938+36
7176	ldrh	r3, [r3]
7177	bl	rknand_print_hex
7178.L936:
7179	ldrh	r3, [r10, #8]
7180	cmp	r3, r5
7181	beq	.L937
7182	mov	r2, #508
7183	ldr	r1, .L938+4
7184	ldr	r0, .L938+8
7185	bl	printf
7186.L937:
7187	ldr	r3, [r7]
7188	movs	r1, #0
7189	adds	r2, r3, r4
7190	str	r1, [r2, #4]
7191	strh	r5, [r3, r4]	@ movhi
7192	b	.L934
7193.L935:
7194	ldr	r2, [r6]
7195	cmp	r2, #256
7196	bne	.L936
7197	mov	r2, r8
7198	mov	r1, r5
7199	ldr	r0, .L938+40
7200	bl	printf
7201	ldr	r3, [r7]
7202	mov	r1, r5
7203	ldr	r0, .L938+44
7204	add	r3, r3, r4
7205	ldr	r2, [r3, #8]
7206	bl	FtlMapWritePage
7207	b	.L936
7208.L939:
7209	.align	2
7210.L938:
7211	.word	.LANCHOR32
7212	.word	.LANCHOR156
7213	.word	.LC1
7214	.word	.LANCHOR55
7215	.word	.LANCHOR23
7216	.word	.LANCHOR148
7217	.word	.LANCHOR123
7218	.word	.LC90
7219	.word	.LC91
7220	.word	.LC92
7221	.word	.LC93
7222	.word	.LANCHOR140
7223	.word	.LANCHOR134
7224	.size	load_l2p_region, .-load_l2p_region
7225	.section	.text.ftl_map_blk_gc,"ax",%progbits
7226	.align	1
7227	.global	ftl_map_blk_gc
7228	.syntax unified
7229	.thumb
7230	.thumb_func
7231	.fpu softvfp
7232	.type	ftl_map_blk_gc, %function
7233ftl_map_blk_gc:
7234	@ args = 0, pretend = 0, frame = 8
7235	@ frame_needed = 0, uses_anonymous_args = 0
7236	ldr	r3, [r0, #24]
7237	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7238	mov	r4, r0
7239	ldr	r5, [r0, #12]
7240	str	r3, [sp]
7241	bl	ftl_free_no_use_map_blk
7242	ldrh	r3, [r4, #10]
7243	ldrh	r2, [r4, #8]
7244	subs	r3, r3, #5
7245	cmp	r2, r3
7246	blt	.L941
7247	uxth	r0, r0
7248	ldrh	r8, [r5, r0, lsl #1]
7249	cmp	r8, #0
7250	beq	.L941
7251	ldr	r3, [r4, #32]
7252	cbnz	r3, .L941
7253	movs	r2, #1
7254	str	r2, [r4, #32]
7255	strh	r3, [r5, r0, lsl #1]	@ movhi
7256	ldrh	r3, [r4, #8]
7257	ldrh	r2, [r4, #2]
7258	subs	r3, r3, #1
7259	strh	r3, [r4, #8]	@ movhi
7260	ldr	r3, .L956
7261	ldrh	r3, [r3]
7262	cmp	r2, r3
7263	bcc	.L942
7264	mov	r0, r4
7265	bl	ftl_map_blk_alloc_new_blk
7266.L942:
7267	ldr	r5, .L956+4
7268	movs	r6, #0
7269.L943:
7270	ldrh	r3, [r4, #6]
7271	uxth	r10, r6
7272	cmp	r3, r10
7273	bhi	.L950
7274	movs	r1, #1
7275	mov	r0, r8
7276	bl	FtlFreeSysBlkQueueIn
7277	movs	r3, #0
7278	str	r3, [r4, #32]
7279.L941:
7280	ldr	r3, .L956
7281	ldrh	r2, [r4, #2]
7282	ldrh	r3, [r3]
7283	cmp	r2, r3
7284	bcc	.L951
7285	mov	r0, r4
7286	bl	ftl_map_blk_alloc_new_blk
7287.L951:
7288	movs	r0, #0
7289	add	sp, sp, #8
7290	@ sp needed
7291	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7292.L950:
7293	ldr	r3, [sp]
7294	uxth	fp, r6
7295	add	r3, r3, fp, lsl #2
7296	str	r3, [sp, #4]
7297	ldr	r3, [sp]
7298	ldr	r2, [r3, fp, lsl #2]
7299	cmp	r8, r2, lsr #10
7300	bne	.L944
7301	ldr	r3, .L956+8
7302	str	r2, [r5, #4]
7303	movs	r2, #1
7304	ldr	r0, .L956+4
7305	ldr	r1, [r3]
7306	str	r1, [r5, #8]
7307	ldr	r1, .L956+12
7308	ldr	r7, [r1]
7309	mov	r1, r2
7310	str	r7, [r5, #12]
7311	bl	FlashReadPages
7312	ldrh	r2, [r7, #8]
7313	cmp	r2, r10
7314	beq	.L945
7315	movw	r2, #611
7316	ldr	r1, .L956+16
7317	ldr	r0, .L956+20
7318	bl	printf
7319.L945:
7320	ldr	r2, [r5]
7321	adds	r2, r2, #1
7322	bne	.L946
7323.L948:
7324	ldr	r2, [sp, #4]
7325	movs	r3, #0
7326	str	r3, [r2]
7327.L947:
7328	b	.L947
7329.L946:
7330	ldrh	r2, [r7, #8]
7331	cmp	r2, r10
7332	bne	.L948
7333	ldrh	r1, [r7]
7334	ldrh	r2, [r4, #4]
7335	cmp	r1, r2
7336	bne	.L948
7337	ldr	r2, [r5, #8]
7338	mov	r1, fp
7339	mov	r0, r4
7340	bl	FtlMapWritePage
7341.L944:
7342	adds	r6, r6, #1
7343	b	.L943
7344.L957:
7345	.align	2
7346.L956:
7347	.word	.LANCHOR20
7348	.word	.LANCHOR148
7349	.word	.LANCHOR116
7350	.word	.LANCHOR123
7351	.word	.LANCHOR157
7352	.word	.LC1
7353	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
7354	.section	.text.FtlMapTblRecovery,"ax",%progbits
7355	.align	1
7356	.global	FtlMapTblRecovery
7357	.syntax unified
7358	.thumb
7359	.thumb_func
7360	.fpu softvfp
7361	.type	FtlMapTblRecovery, %function
7362FtlMapTblRecovery:
7363	@ args = 0, pretend = 0, frame = 24
7364	@ frame_needed = 0, uses_anonymous_args = 0
7365	ldr	r3, [r0, #16]
7366	movs	r1, #0
7367	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7368	sub	sp, sp, #24
7369	ldrh	fp, [r0, #6]
7370	mov	r4, r0
7371	movs	r6, #0
7372	ldr	r8, [r0, #24]
7373	str	r3, [sp, #12]
7374	ldrh	r3, [r0, #8]
7375	lsl	r2, fp, #2
7376	ldr	r10, [r0, #12]
7377	mov	r0, r8
7378	ldr	r5, .L985
7379	str	r3, [sp, #4]
7380	bl	ftl_memset
7381	ldr	r3, .L985+4
7382	str	r6, [r4, #32]
7383	str	r6, [r4, #28]
7384	ldr	r2, [r3]
7385	str	r3, [sp, #8]
7386	str	r2, [r5, #8]
7387	ldr	r2, .L985+8
7388	ldr	r7, [r2]
7389	movw	r2, #65535
7390	str	r7, [r5, #12]
7391	strh	r2, [r4]	@ movhi
7392	strh	r2, [r4, #2]	@ movhi
7393	movs	r2, #1
7394	str	r2, [r4, #36]
7395.L959:
7396	ldr	r2, [sp, #4]
7397	sxth	r3, r6
7398	cmp	r3, r2
7399	bge	.L976
7400	ldr	r2, [sp, #4]
7401	subs	r2, r2, #1
7402	cmp	r3, r2
7403	lsl	r2, r3, #1
7404	bne	.L960
7405	ldrh	r0, [r10, r3, lsl #1]
7406	movs	r1, #1
7407	add	r5, r10, r2
7408	str	r3, [sp, #4]
7409	bl	FtlGetLastWrittenPage
7410	ldr	r3, [sp, #12]
7411	sxth	r10, r0
7412	strh	r6, [r4]	@ movhi
7413	movs	r6, #0
7414	adds	r0, r0, #1
7415	mov	r2, r3
7416	ldr	r3, [sp, #4]
7417	strh	r0, [r4, #2]	@ movhi
7418	ldr	r3, [r2, r3, lsl #2]
7419	str	r3, [r4, #28]
7420	ldr	r3, .L985
7421.L961:
7422	sxth	r2, r6
7423	cmp	r2, r10
7424	ble	.L963
7425.L976:
7426	mov	r0, r4
7427	bl	ftl_free_no_use_map_blk
7428	ldr	r3, .L985+12
7429	ldrh	r2, [r4, #2]
7430	ldrh	r3, [r3]
7431	cmp	r2, r3
7432	bne	.L965
7433	mov	r0, r4
7434	bl	ftl_map_blk_alloc_new_blk
7435.L965:
7436	mov	r0, r4
7437	bl	ftl_map_blk_gc
7438	mov	r0, r4
7439	bl	ftl_map_blk_gc
7440	movs	r0, #0
7441	add	sp, sp, #24
7442	@ sp needed
7443	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7444.L963:
7445	ldrh	r1, [r5]
7446	ldr	r0, .L985
7447	str	r3, [sp, #4]
7448	orr	r2, r2, r1, lsl #10
7449	str	r2, [r3, #4]
7450	movs	r2, #1
7451	mov	r1, r2
7452	bl	FlashReadPages
7453	ldr	r3, [sp, #4]
7454	ldr	r2, [r3]
7455	adds	r2, r2, #1
7456	beq	.L962
7457	ldrh	r2, [r7, #8]
7458	cmp	fp, r2
7459	bls	.L962
7460	ldrh	r1, [r4, #4]
7461	ldrh	r0, [r7]
7462	cmp	r0, r1
7463	itt	eq
7464	ldreq	r1, [r3, #4]
7465	streq	r1, [r8, r2, lsl #2]
7466.L962:
7467	adds	r6, r6, #1
7468	b	.L961
7469.L960:
7470	ldr	r1, [sp, #8]
7471	add	r2, r10, r2
7472	str	r2, [sp, #16]
7473	ldr	r0, .L985
7474	ldr	r1, [r1]
7475	str	r1, [r5, #8]
7476	ldrh	r1, [r10, r3, lsl #1]
7477	ldr	r3, .L985+12
7478	ldrh	r2, [r3]
7479	str	r3, [sp, #20]
7480	subs	r2, r2, #1
7481	orr	r2, r2, r1, lsl #10
7482	str	r2, [r5, #4]
7483	movs	r2, #1
7484	mov	r1, r2
7485	bl	FlashReadPages
7486	ldr	r2, [r5]
7487	adds	r2, r2, #1
7488	beq	.L978
7489	ldrh	r1, [r7]
7490	ldrh	r2, [r4, #4]
7491	ldr	r3, [sp, #20]
7492	cmp	r1, r2
7493	bne	.L978
7494	ldrh	r1, [r7, #8]
7495	movw	r2, #64245
7496	cmp	r1, r2
7497	beq	.L967
7498.L978:
7499	movs	r3, #0
7500.L968:
7501	ldr	r1, .L985+12
7502	sxth	r2, r3
7503	ldrh	r1, [r1]
7504	cmp	r2, r1
7505	bge	.L974
7506	str	r3, [sp, #20]
7507	ldr	r3, [sp, #16]
7508	ldr	r0, .L985
7509	ldrh	r1, [r3]
7510	orr	r2, r2, r1, lsl #10
7511	str	r2, [r5, #4]
7512	movs	r2, #1
7513	mov	r1, r2
7514	bl	FlashReadPages
7515	ldr	r2, [r5]
7516	ldr	r3, [sp, #20]
7517	adds	r2, r2, #1
7518	beq	.L972
7519	ldrh	r2, [r7, #8]
7520	cmp	fp, r2
7521	bls	.L972
7522	ldrh	r1, [r4, #4]
7523	ldrh	r0, [r7]
7524	cmp	r0, r1
7525	itt	eq
7526	ldreq	r1, [r5, #4]
7527	streq	r1, [r8, r2, lsl #2]
7528.L972:
7529	adds	r3, r3, #1
7530	b	.L968
7531.L967:
7532	ldrh	r2, [r3]
7533	movs	r1, #0
7534	ldr	r3, [sp, #8]
7535	subs	r2, r2, #1
7536	ldr	ip, [r3]
7537.L969:
7538	sxth	r3, r1
7539	cmp	r3, r2
7540	blt	.L971
7541.L974:
7542	adds	r6, r6, #1
7543	b	.L959
7544.L971:
7545	lsls	r0, r3, #3
7546	ldr	r3, [ip, r3, lsl #3]
7547	adds	r1, r1, #1
7548	uxth	lr, r3
7549	cmp	fp, lr
7550	itttt	hi
7551	addhi	r0, r0, ip
7552	movhi	r3, lr
7553	ldrhi	r0, [r0, #4]
7554	strhi	r0, [r8, r3, lsl #2]
7555	b	.L969
7556.L986:
7557	.align	2
7558.L985:
7559	.word	.LANCHOR148
7560	.word	.LANCHOR115
7561	.word	.LANCHOR123
7562	.word	.LANCHOR20
7563	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
7564	.section	.text.FtlLoadVonderInfo,"ax",%progbits
7565	.align	1
7566	.global	FtlLoadVonderInfo
7567	.syntax unified
7568	.thumb
7569	.thumb_func
7570	.fpu softvfp
7571	.type	FtlLoadVonderInfo, %function
7572FtlLoadVonderInfo:
7573	@ args = 0, pretend = 0, frame = 0
7574	@ frame_needed = 0, uses_anonymous_args = 0
7575	push	{r3, lr}
7576	ldr	r3, .L988
7577	ldr	r0, .L988+4
7578	ldrh	r3, [r3]
7579	strh	r3, [r0, #10]	@ movhi
7580	movw	r3, #61574
7581	strh	r3, [r0, #4]	@ movhi
7582	ldr	r3, .L988+8
7583	ldrh	r3, [r3]
7584	strh	r3, [r0, #8]	@ movhi
7585	ldr	r3, .L988+12
7586	ldrh	r3, [r3]
7587	strh	r3, [r0, #6]	@ movhi
7588	ldr	r3, .L988+16
7589	ldr	r3, [r3]
7590	str	r3, [r0, #12]
7591	ldr	r3, .L988+20
7592	ldr	r3, [r3]
7593	str	r3, [r0, #16]
7594	ldr	r3, .L988+24
7595	ldr	r3, [r3]
7596	str	r3, [r0, #20]
7597	ldr	r3, .L988+28
7598	ldr	r3, [r3]
7599	str	r3, [r0, #24]
7600	bl	FtlMapTblRecovery
7601	movs	r0, #0
7602	pop	{r3, pc}
7603.L989:
7604	.align	2
7605.L988:
7606	.word	.LANCHOR27
7607	.word	.LANCHOR158
7608	.word	.LANCHOR35
7609	.word	.LANCHOR28
7610	.word	.LANCHOR36
7611	.word	.LANCHOR132
7612	.word	.LANCHOR131
7613	.word	.LANCHOR133
7614	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
7615	.section	.text.FtlLoadMapInfo,"ax",%progbits
7616	.align	1
7617	.global	FtlLoadMapInfo
7618	.syntax unified
7619	.thumb
7620	.thumb_func
7621	.fpu softvfp
7622	.type	FtlLoadMapInfo, %function
7623FtlLoadMapInfo:
7624	@ args = 0, pretend = 0, frame = 0
7625	@ frame_needed = 0, uses_anonymous_args = 0
7626	push	{r3, lr}
7627	bl	FtlL2PDataInit
7628	ldr	r0, .L991
7629	bl	FtlMapTblRecovery
7630	movs	r0, #0
7631	pop	{r3, pc}
7632.L992:
7633	.align	2
7634.L991:
7635	.word	.LANCHOR140
7636	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
7637	.section	.text.flush_l2p_region,"ax",%progbits
7638	.align	1
7639	.global	flush_l2p_region
7640	.syntax unified
7641	.thumb
7642	.thumb_func
7643	.fpu softvfp
7644	.type	flush_l2p_region, %function
7645flush_l2p_region:
7646	@ args = 0, pretend = 0, frame = 0
7647	@ frame_needed = 0, uses_anonymous_args = 0
7648	push	{r3, r4, r5, lr}
7649	movs	r4, #12
7650	ldr	r5, .L994
7651	muls	r4, r0, r4
7652	ldr	r0, .L994+4
7653	ldr	r3, [r5]
7654	adds	r2, r3, r4
7655	ldrh	r1, [r3, r4]
7656	ldr	r2, [r2, #8]
7657	bl	FtlMapWritePage
7658	ldr	r3, [r5]
7659	movs	r0, #0
7660	add	r4, r4, r3
7661	ldr	r3, [r4, #4]
7662	bic	r3, r3, #-2147483648
7663	str	r3, [r4, #4]
7664	pop	{r3, r4, r5, pc}
7665.L995:
7666	.align	2
7667.L994:
7668	.word	.LANCHOR55
7669	.word	.LANCHOR140
7670	.size	flush_l2p_region, .-flush_l2p_region
7671	.section	.text.log2phys,"ax",%progbits
7672	.align	1
7673	.global	log2phys
7674	.syntax unified
7675	.thumb
7676	.thumb_func
7677	.fpu softvfp
7678	.type	log2phys, %function
7679log2phys:
7680	@ args = 0, pretend = 0, frame = 8
7681	@ frame_needed = 0, uses_anonymous_args = 0
7682	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7683	mov	r7, r2
7684	ldr	r4, .L1009
7685	mov	r10, r0
7686	mov	r5, r1
7687	ldr	r3, .L1009+4
7688	ldr	r2, [r4]
7689	ldrh	fp, [r3]
7690	cmp	r0, r2
7691	bcc	.L997
7692	movw	r2, #811
7693	ldr	r1, .L1009+8
7694	ldr	r0, .L1009+12
7695	bl	printf
7696.L997:
7697	ldr	r3, [r4]
7698	cmp	r10, r3
7699	bcs	.L998
7700	ldr	r3, .L1009+16
7701	add	fp, fp, #7
7702	lsr	r6, r10, fp
7703	movs	r2, #0
7704	ldrh	r1, [r3]
7705	uxth	r6, r6
7706	ldr	r3, .L1009+20
7707	ldr	r0, [r3]
7708	mov	r8, r3
7709	movs	r3, #12
7710.L999:
7711	uxth	r4, r2
7712	cmp	r4, r1
7713	bcc	.L1004
7714	str	r3, [sp, #4]
7715	bl	select_l2p_ram_region
7716	ldr	r3, [sp, #4]
7717	mov	r4, r0
7718	ldr	r2, [r8]
7719	muls	r3, r0, r3
7720	adds	r1, r2, r3
7721	ldrh	r2, [r2, r3]
7722	movw	r3, #65535
7723	cmp	r2, r3
7724	beq	.L1005
7725	ldr	r3, [r1, #4]
7726	cmp	r3, #0
7727	bge	.L1005
7728	bl	flush_l2p_region
7729.L1005:
7730	mov	r1, r4
7731	mov	r0, r6
7732	bl	load_l2p_region
7733	b	.L1001
7734.L998:
7735	mov	r0, #-1
7736	cbnz	r7, .L996
7737	str	r0, [r5]
7738.L996:
7739	add	sp, sp, #8
7740	@ sp needed
7741	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7742.L1004:
7743	adds	r2, r2, #1
7744	mla	ip, r3, r2, r0
7745	ldrh	ip, [ip, #-12]
7746	cmp	ip, r6
7747	bne	.L999
7748.L1001:
7749	movs	r0, #1
7750	ldr	r2, [r8]
7751	lsl	r0, r0, fp
7752	movs	r3, #12
7753	subs	r0, r0, #1
7754	and	r0, r0, r10
7755	uxth	r0, r0
7756	mla	r3, r3, r4, r2
7757	cbnz	r7, .L1002
7758	ldr	r3, [r3, #8]
7759	ldr	r3, [r3, r0, lsl #2]
7760	str	r3, [r5]
7761.L1003:
7762	ldr	r2, [r8]
7763	movs	r3, #12
7764	mla	r4, r3, r4, r2
7765	ldr	r3, [r4, #4]
7766	adds	r2, r3, #1
7767	beq	.L1007
7768	adds	r3, r3, #1
7769	str	r3, [r4, #4]
7770.L1007:
7771	movs	r0, #0
7772	b	.L996
7773.L1002:
7774	ldr	r1, [r5]
7775	ldr	r2, [r3, #8]
7776	str	r1, [r2, r0, lsl #2]
7777	ldr	r2, [r3, #4]
7778	orr	r2, r2, #-2147483648
7779	str	r2, [r3, #4]
7780	ldr	r3, .L1009+24
7781	strh	r6, [r3]	@ movhi
7782	b	.L1003
7783.L1010:
7784	.align	2
7785.L1009:
7786	.word	.LANCHOR61
7787	.word	.LANCHOR22
7788	.word	.LANCHOR159
7789	.word	.LC1
7790	.word	.LANCHOR33
7791	.word	.LANCHOR55
7792	.word	.LANCHOR56
7793	.size	log2phys, .-log2phys
7794	.section	.text.FtlReUsePrevPpa,"ax",%progbits
7795	.align	1
7796	.global	FtlReUsePrevPpa
7797	.syntax unified
7798	.thumb
7799	.thumb_func
7800	.fpu softvfp
7801	.type	FtlReUsePrevPpa, %function
7802FtlReUsePrevPpa:
7803	@ args = 0, pretend = 0, frame = 8
7804	@ frame_needed = 0, uses_anonymous_args = 0
7805	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7806	mov	r6, r0
7807	ldr	r5, .L1021
7808	ubfx	r0, r1, #10, #16
7809	str	r1, [sp, #4]
7810	bl	P2V_block_in_plane
7811	ldr	r2, [r5]
7812	mov	r7, r0
7813	ldrh	r3, [r2, r0, lsl #1]
7814	cbnz	r3, .L1012
7815	ldr	r2, .L1021+4
7816	ldr	r4, [r2]
7817	cmp	r4, #0
7818	beq	.L1013
7819	ldr	r2, .L1021+8
7820	movw	lr, #65535
7821	ldr	ip, .L1021+24
7822	ldr	r0, .L1021+12
7823	ldr	r2, [r2]
7824	ldrh	r1, [r0]
7825	mov	r8, r0
7826	subs	r4, r4, r2
7827	asrs	r4, r4, #1
7828	mul	r4, ip, r4
7829	mov	ip, #6
7830	uxth	r4, r4
7831.L1014:
7832	uxth	r0, r3
7833	cmp	r1, r0
7834	bls	.L1013
7835	cmp	r4, r7
7836	bne	.L1015
7837	mov	r1, r4
7838	ldr	r0, .L1021+4
7839	bl	List_remove_node
7840	ldrh	r3, [r8]
7841	cbnz	r3, .L1016
7842	movw	r2, #1699
7843	ldr	r1, .L1021+16
7844	ldr	r0, .L1021+20
7845	bl	printf
7846.L1016:
7847	ldrh	r3, [r8]
7848	mov	r0, r4
7849	subs	r3, r3, #1
7850	strh	r3, [r8]	@ movhi
7851	bl	INSERT_DATA_LIST
7852	ldr	r2, [r5]
7853	ldrh	r3, [r2, r7, lsl #1]
7854.L1012:
7855	adds	r3, r3, #1
7856	strh	r3, [r2, r7, lsl #1]	@ movhi
7857	b	.L1013
7858.L1015:
7859	mul	r4, ip, r4
7860	adds	r3, r3, #1
7861	ldrh	r4, [r2, r4]
7862	cmp	r4, lr
7863	bne	.L1014
7864.L1013:
7865	movs	r2, #1
7866	add	r1, sp, #4
7867	mov	r0, r6
7868	bl	log2phys
7869	add	sp, sp, #8
7870	@ sp needed
7871	pop	{r4, r5, r6, r7, r8, pc}
7872.L1022:
7873	.align	2
7874.L1021:
7875	.word	.LANCHOR42
7876	.word	.LANCHOR47
7877	.word	.LANCHOR40
7878	.word	.LANCHOR48
7879	.word	.LANCHOR160
7880	.word	.LC1
7881	.word	-1431655765
7882	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
7883	.section	.text.ftl_check_vpc,"ax",%progbits
7884	.align	1
7885	.global	ftl_check_vpc
7886	.syntax unified
7887	.thumb
7888	.thumb_func
7889	.fpu softvfp
7890	.type	ftl_check_vpc, %function
7891ftl_check_vpc:
7892	@ args = 0, pretend = 0, frame = 8
7893	@ frame_needed = 0, uses_anonymous_args = 0
7894	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7895	movs	r4, #0
7896	ldr	r6, .L1047
7897	ldr	r5, .L1047+4
7898	ldr	r1, .L1047+8
7899	ldr	r0, .L1047+12
7900	bl	printf
7901	mov	r2, #8192
7902	movs	r1, #0
7903	ldr	r0, .L1047+4
7904	bl	ftl_memset
7905.L1024:
7906	ldr	r3, [r6]
7907	cmp	r4, r3
7908	bcc	.L1026
7909	ldr	r10, .L1047+48
7910	movs	r4, #0
7911	ldr	r7, .L1047+16
7912	mov	r6, r4
7913.L1027:
7914	ldrh	r2, [r10]
7915	uxth	r3, r4
7916	cmp	r2, r3
7917	bhi	.L1029
7918	ldr	r3, .L1047+20
7919	ldr	r4, [r3]
7920	cbz	r4, .L1030
7921	ldr	r3, .L1047+24
7922	mov	r8, #0
7923	ldr	r5, .L1047+28
7924	ldr	r10, .L1047+16
7925	ldrh	r7, [r3]
7926	ldr	r3, [r5]
7927	ldr	fp, .L1047+4
7928	subs	r4, r4, r3
7929	ldr	r3, .L1047+32
7930	asrs	r4, r4, #1
7931	muls	r4, r3, r4
7932	uxth	r4, r4
7933.L1031:
7934	uxth	r3, r8
7935	cmp	r7, r3
7936	bls	.L1030
7937	ldr	r3, [r10]
7938	ldrh	r2, [r3, r4, lsl #1]
7939	cbz	r2, .L1032
7940	movs	r6, #1
7941	ldrh	r3, [fp, r4, lsl #1]
7942	mov	r1, r4
7943	ldr	r0, .L1047+36
7944	bl	printf
7945.L1032:
7946	movs	r3, #6
7947	ldr	r2, [r5]
7948	muls	r4, r3, r4
7949	movw	r3, #65535
7950	add	r8, r8, #1
7951	ldrh	r4, [r2, r4]
7952	cmp	r4, r3
7953	bne	.L1031
7954.L1030:
7955	cbz	r6, .L1023
7956	movw	r2, #2343
7957	ldr	r1, .L1047+8
7958	ldr	r0, .L1047+40
7959	bl	printf
7960.L1023:
7961	add	sp, sp, #8
7962	@ sp needed
7963	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7964.L1026:
7965	movs	r2, #0
7966	add	r1, sp, #4
7967	mov	r0, r4
7968	bl	log2phys
7969	ldr	r0, [sp, #4]
7970	adds	r3, r0, #1
7971	beq	.L1025
7972	ubfx	r0, r0, #10, #16
7973	bl	P2V_block_in_plane
7974	ldrh	r3, [r5, r0, lsl #1]
7975	adds	r3, r3, #1
7976	strh	r3, [r5, r0, lsl #1]	@ movhi
7977.L1025:
7978	adds	r4, r4, #1
7979	b	.L1024
7980.L1029:
7981	ldr	r3, [r7]
7982	uxth	r5, r4
7983	ldr	r8, .L1047+4
7984	ldrh	r2, [r3, r5, lsl #1]
7985	ldrh	r3, [r8, r5, lsl #1]
7986	cmp	r2, r3
7987	beq	.L1028
7988	mov	r1, r5
7989	ldr	r0, .L1047+44
7990	bl	printf
7991	ldr	r3, [r7]
7992	movw	r2, #65535
7993	ldrh	r3, [r3, r5, lsl #1]
7994	cmp	r3, r2
7995	beq	.L1028
7996	ldrh	r2, [r8, r5, lsl #1]
7997	cmp	r2, r3
7998	it	hi
7999	movhi	r6, #1
8000.L1028:
8001	adds	r4, r4, #1
8002	b	.L1027
8003.L1048:
8004	.align	2
8005.L1047:
8006	.word	.LANCHOR61
8007	.word	check_vpc_table
8008	.word	.LANCHOR161
8009	.word	.LC94
8010	.word	.LANCHOR42
8011	.word	.LANCHOR47
8012	.word	.LANCHOR48
8013	.word	.LANCHOR40
8014	.word	-1431655765
8015	.word	.LC96
8016	.word	.LC1
8017	.word	.LC95
8018	.word	.LANCHOR5
8019	.size	ftl_check_vpc, .-ftl_check_vpc
8020	.section	.text.ftl_scan_all_data,"ax",%progbits
8021	.align	1
8022	.global	ftl_scan_all_data
8023	.syntax unified
8024	.thumb
8025	.thumb_func
8026	.fpu softvfp
8027	.type	ftl_scan_all_data, %function
8028ftl_scan_all_data:
8029	@ args = 0, pretend = 0, frame = 8
8030	@ frame_needed = 0, uses_anonymous_args = 0
8031	push	{r4, r5, r6, r7, r8, lr}
8032	movs	r5, #0
8033	ldr	r7, .L1063
8034	sub	sp, sp, #32
8035	movs	r1, #0
8036	ldr	r8, .L1063+24
8037	ldr	r0, .L1063+4
8038	bl	printf
8039.L1050:
8040	ldr	r3, [r7]
8041	cmp	r5, r3
8042	bcc	.L1056
8043	add	sp, sp, #32
8044	@ sp needed
8045	pop	{r4, r5, r6, r7, r8, pc}
8046.L1056:
8047	movs	r2, #0
8048	add	r1, sp, #28
8049	mov	r0, r5
8050	bl	log2phys
8051	ubfx	r3, r5, #0, #11
8052	cbnz	r3, .L1051
8053	ldr	r2, [sp, #28]
8054	mov	r1, r5
8055	mov	r0, r8
8056	bl	printf
8057.L1051:
8058	ldr	r3, [sp, #28]
8059	adds	r2, r3, #1
8060	beq	.L1053
8061	ldr	r4, .L1063+8
8062	movs	r2, #0
8063	movs	r1, #1
8064	str	r3, [r4, #4]
8065	mov	r0, r4
8066	ldr	r3, .L1063+12
8067	str	r5, [r4, #16]
8068	str	r2, [r4]
8069	ldr	r3, [r3]
8070	str	r3, [r4, #8]
8071	ldr	r3, .L1063+16
8072	ldr	r6, [r3]
8073	str	r6, [r4, #12]
8074	bl	FlashReadPages
8075	ldr	r3, [r4]
8076	cmp	r3, #256
8077	beq	.L1054
8078	adds	r3, r3, #1
8079	beq	.L1054
8080	ldr	r3, [r6, #8]
8081	cmp	r5, r3
8082	beq	.L1053
8083.L1054:
8084	ldr	r2, [r4, #8]
8085	ldr	r3, [r4, #12]
8086	ldr	r0, .L1063+20
8087	ldr	r1, [r2, #4]
8088	str	r1, [sp, #16]
8089	mov	r1, r5
8090	ldr	r2, [r2]
8091	str	r2, [sp, #12]
8092	ldr	r2, [r3, #12]
8093	str	r2, [sp, #8]
8094	ldr	r2, [r3, #8]
8095	str	r2, [sp, #4]
8096	ldr	r2, [r3, #4]
8097	str	r2, [sp]
8098	ldr	r2, [r4, #4]
8099	ldr	r3, [r3]
8100	bl	printf
8101.L1053:
8102	adds	r5, r5, #1
8103	b	.L1050
8104.L1064:
8105	.align	2
8106.L1063:
8107	.word	.LANCHOR61
8108	.word	.LC97
8109	.word	.LANCHOR148
8110	.word	.LANCHOR115
8111	.word	.LANCHOR123
8112	.word	.LC99
8113	.word	.LC98
8114	.size	ftl_scan_all_data, .-ftl_scan_all_data
8115	.section	.text.FtlGcScanTempBlk,"ax",%progbits
8116	.align	1
8117	.global	FtlGcScanTempBlk
8118	.syntax unified
8119	.thumb
8120	.thumb_func
8121	.fpu softvfp
8122	.type	FtlGcScanTempBlk, %function
8123FtlGcScanTempBlk:
8124	@ args = 0, pretend = 0, frame = 48
8125	@ frame_needed = 0, uses_anonymous_args = 0
8126	ldr	r3, .L1098
8127	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8128	sub	sp, sp, #48
8129	mov	r4, r0
8130	str	r1, [sp, #8]
8131	ldrh	r5, [r3]
8132	movw	r3, #65535
8133	cmp	r5, r3
8134	beq	.L1090
8135	cbnz	r5, .L1066
8136.L1067:
8137	bl	FtlGcPageVarInit
8138	b	.L1068
8139.L1090:
8140	movs	r5, #0
8141.L1066:
8142	ldr	r3, .L1098+4
8143	ldr	r2, [sp, #8]
8144	ldrh	r3, [r3]
8145	cmp	r3, r2
8146	beq	.L1067
8147.L1068:
8148	ldr	fp, .L1098+52
8149	movs	r3, #0
8150	str	r3, [sp]
8151.L1069:
8152	ldrh	r2, [r4]
8153	movs	r3, #0
8154	strb	r3, [r4, #8]
8155	movw	r3, #65535
8156	cmp	r2, r3
8157	beq	.L1070
8158.L1087:
8159	ldr	r3, .L1098+8
8160	movs	r2, #0
8161	ldr	r0, [fp]
8162	mov	r7, r2
8163	movw	lr, #65535
8164	mov	r8, #20
8165	ldrh	r10, [r3]
8166	ldr	r3, .L1098+12
8167	ldr	r3, [r3]
8168	str	r3, [sp, #12]
8169	ldr	r3, .L1098+16
8170	ldrh	r3, [r3]
8171	str	r3, [sp, #16]
8172	ldr	r3, .L1098+20
8173	ldr	r3, [r3]
8174	str	r3, [sp, #20]
8175	ldr	r3, .L1098+24
8176	ldrh	ip, [r3]
8177	add	r3, r4, #16
8178	str	r3, [sp, #4]
8179.L1071:
8180	uxth	r3, r2
8181	cmp	r10, r3
8182	bhi	.L1073
8183	mov	r10, #0
8184	movs	r2, #0
8185	mov	r1, r7
8186	bl	FlashReadPages
8187.L1074:
8188	uxth	r3, r10
8189	cmp	r7, r3
8190	bhi	.L1085
8191	ldr	r3, [sp]
8192	adds	r5, r5, #1
8193	uxth	r5, r5
8194	adds	r3, r3, #1
8195	str	r3, [sp]
8196	ldr	r2, [sp]
8197	ldr	r3, [sp, #8]
8198	cmp	r3, r2
8199	ldr	r2, .L1098+4
8200	bls	.L1086
8201.L1088:
8202	ldrh	r3, [r2]
8203	cmp	r3, r5
8204	bhi	.L1087
8205.L1070:
8206	ldr	r3, .L1098
8207	movw	r2, #65535
8208	strh	r5, [r4, #2]	@ movhi
8209	mov	r1, r5
8210	mov	r0, r4
8211	strh	r2, [r3]	@ movhi
8212	movs	r2, #0
8213	strb	r2, [r4, #6]
8214	bl	ftl_sb_update_avl_pages
8215	b	.L1089
8216.L1073:
8217	ldr	r1, [sp, #4]
8218	ldrh	r3, [r1], #2
8219	cmp	r3, lr
8220	str	r1, [sp, #4]
8221	beq	.L1072
8222	mla	r1, r8, r7, r0
8223	ldr	r6, [sp, #12]
8224	orr	r3, r5, r3, lsl #10
8225	str	r3, [r1, #4]
8226	ldr	r3, [sp, #16]
8227	muls	r3, r7, r3
8228	bic	r3, r3, #3
8229	add	r3, r3, r6
8230	ldr	r6, [sp, #20]
8231	str	r3, [r1, #8]
8232	mul	r3, ip, r7
8233	adds	r7, r7, #1
8234	uxth	r7, r7
8235	bic	r3, r3, #3
8236	add	r3, r3, r6
8237	str	r3, [r1, #12]
8238.L1072:
8239	adds	r2, r2, #1
8240	b	.L1071
8241.L1085:
8242	movs	r3, #20
8243	ldr	r1, [fp]
8244	mul	r3, r3, r10
8245	adds	r2, r1, r3
8246	ldr	r6, [r1, r3]
8247	ldr	r0, [r2, #4]
8248	str	r0, [sp, #4]
8249	cbnz	r6, .L1075
8250	ldr	r8, [r2, #12]
8251	movw	r2, #65535
8252	ldrh	r1, [r8]
8253	cmp	r1, r2
8254	bne	.L1076
8255.L1075:
8256	ldr	r3, .L1098+28
8257	movs	r1, #0
8258	ldrh	r2, [r4]
8259	movs	r5, #0
8260	ldr	r3, [r3]
8261	strh	r1, [r3, r2, lsl #1]	@ movhi
8262	ldrh	r0, [r4]
8263	bl	INSERT_FREE_LIST
8264	movw	r3, #65535
8265	strh	r3, [r4]	@ movhi
8266	bl	FtlGcPageVarInit
8267	b	.L1069
8268.L1076:
8269	str	r3, [sp, #12]
8270	ldr	r3, .L1098+32
8271	ldr	r0, [r8, #8]
8272	ldr	r2, [r3]
8273	cmp	r0, r2
8274	bhi	.L1075
8275	mov	r2, r6
8276	add	r1, sp, #24
8277	bl	log2phys
8278	ldr	r2, [r8, #12]
8279	ldr	r1, [sp, #24]
8280	ldr	r3, [sp, #12]
8281	cmp	r2, r1
8282	beq	.L1079
8283.L1080:
8284	ldr	r2, [r8, #8]
8285	add	r10, r10, #1
8286	ldr	r1, [sp, #4]
8287	ldr	r0, [r8, #12]
8288	bl	FtlGcUpdatePage
8289	b	.L1074
8290.L1079:
8291	str	r3, [sp, #12]
8292	adds	r3, r2, #1
8293	beq	.L1080
8294	str	r2, [sp, #32]
8295	movs	r1, #1
8296	ldr	r2, .L1098+36
8297	add	r0, sp, #28
8298	ldr	r2, [r2]
8299	str	r2, [sp, #36]
8300	ldr	r2, .L1098+40
8301	ldr	r2, [r2]
8302	str	r2, [sp, #40]
8303	mov	r2, r6
8304	bl	FlashReadPages
8305	ldr	r2, .L1098+44
8306	ldr	r1, [fp]
8307	ldr	r3, [sp, #12]
8308	ldrh	r2, [r2]
8309	ldr	r0, [sp, #36]
8310	add	ip, r3, r1
8311	lsls	r2, r2, #7
8312.L1081:
8313	cmp	r6, r2
8314	beq	.L1080
8315	ldr	r1, [ip, #8]
8316	ldr	r3, [r0, r6, lsl #2]
8317	ldr	r1, [r1, r6, lsl #2]
8318	cmp	r1, r3
8319	beq	.L1082
8320	ldr	r2, [sp, #32]
8321	ldrh	r1, [r4]
8322	ldr	r0, .L1098+48
8323	bl	printf
8324	b	.L1075
8325.L1082:
8326	adds	r6, r6, #1
8327	b	.L1081
8328.L1086:
8329	ldr	r1, .L1098
8330	movw	r0, #65535
8331	ldrh	r3, [r1]
8332	cmp	r3, r0
8333	beq	.L1088
8334	ldr	r0, [sp]
8335	add	r3, r3, r0
8336	strh	r3, [r1]	@ movhi
8337	ldrh	r3, [r2]
8338	cmp	r3, r5
8339	bls	.L1088
8340.L1089:
8341	mov	r0, #-1
8342	add	sp, sp, #48
8343	@ sp needed
8344	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8345.L1099:
8346	.align	2
8347.L1098:
8348	.word	.LANCHOR162
8349	.word	.LANCHOR19
8350	.word	.LANCHOR3
8351	.word	.LANCHOR91
8352	.word	.LANCHOR23
8353	.word	.LANCHOR92
8354	.word	.LANCHOR24
8355	.word	.LANCHOR42
8356	.word	.LANCHOR61
8357	.word	.LANCHOR119
8358	.word	.LANCHOR124
8359	.word	.LANCHOR12
8360	.word	.LC100
8361	.word	.LANCHOR112
8362	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
8363	.section	.text.FtlReadRefresh,"ax",%progbits
8364	.align	1
8365	.global	FtlReadRefresh
8366	.syntax unified
8367	.thumb
8368	.thumb_func
8369	.fpu softvfp
8370	.type	FtlReadRefresh, %function
8371FtlReadRefresh:
8372	@ args = 0, pretend = 0, frame = 88
8373	@ frame_needed = 0, uses_anonymous_args = 0
8374	ldr	r3, .L1113
8375	push	{r4, r5, r6, lr}
8376	sub	sp, sp, #88
8377	mov	r4, r3
8378	ldr	r0, [r3, #80]
8379	cmp	r0, #0
8380	beq	.L1101
8381	ldr	r6, .L1113+4
8382	ldr	r0, [r3, #84]
8383	ldr	r1, [r6]
8384	cmp	r0, r1
8385	bcs	.L1102
8386	mov	r5, #2048
8387.L1107:
8388	ldr	r0, [r4, #84]
8389	ldr	r3, [r6]
8390	cmp	r0, r3
8391	bcs	.L1104
8392	movs	r2, #0
8393	mov	r1, sp
8394	bl	log2phys
8395	ldr	r2, [sp]
8396	ldr	r3, [r4, #84]
8397	adds	r1, r2, #1
8398	add	r3, r3, #1
8399	str	r3, [r4, #84]
8400	beq	.L1105
8401	str	r3, [sp, #20]
8402	add	r0, sp, #88
8403	ldr	r3, .L1113+8
8404	movs	r1, #1
8405	str	r2, [sp, #8]
8406	movs	r2, #0
8407	str	r2, [r0, #-84]!
8408	ldr	r3, [r3]
8409	str	r3, [sp, #12]
8410	add	r3, sp, #24
8411	str	r3, [sp, #16]
8412	bl	FlashReadPages
8413	ldr	r3, [sp, #4]
8414	cmp	r3, #256
8415	bne	.L1104
8416	ldr	r0, [sp]
8417	ubfx	r0, r0, #10, #16
8418	bl	P2V_block_in_plane
8419	bl	FtlGcRefreshBlock
8420.L1104:
8421	mov	r0, #-1
8422.L1100:
8423	add	sp, sp, #88
8424	@ sp needed
8425	pop	{r4, r5, r6, pc}
8426.L1105:
8427	subs	r5, r5, #1
8428	bne	.L1107
8429	b	.L1104
8430.L1102:
8431	ldr	r2, .L1113+12
8432	movs	r0, #0
8433	str	r0, [r3, #80]
8434	str	r0, [r3, #84]
8435	ldr	r2, [r2]
8436	str	r2, [r3, #76]
8437	b	.L1100
8438.L1101:
8439	ldr	r1, [r3, #76]
8440	ldr	r3, .L1113+12
8441	ldr	r5, [r3]
8442	add	r3, r5, #1048576
8443	cmp	r1, r3
8444	bhi	.L1110
8445	ldr	r3, .L1113+16
8446	ldr	r2, [r3]
8447	mov	r3, #33554432
8448	lsrs	r2, r2, #10
8449	asrs	r3, r3, r2
8450	add	r3, r3, r1
8451	cmp	r5, r3
8452	bhi	.L1110
8453	ldr	r3, .L1113+20
8454	ldrb	r3, [r3, #28]	@ zero_extendqisi2
8455	cmp	r3, #0
8456	bne	.L1100
8457.L1110:
8458	movs	r3, #1
8459	movs	r0, #0
8460	str	r3, [r4, #80]
8461	str	r0, [r4, #84]
8462	str	r5, [r4, #76]
8463	b	.L1100
8464.L1114:
8465	.align	2
8466.L1113:
8467	.word	.LANCHOR81
8468	.word	.LANCHOR61
8469	.word	.LANCHOR121
8470	.word	.LANCHOR62
8471	.word	.LANCHOR76
8472	.word	.LANCHOR39
8473	.size	FtlReadRefresh, .-FtlReadRefresh
8474	.section	.text.FtlMapBlkWriteDump_data,"ax",%progbits
8475	.align	1
8476	.global	FtlMapBlkWriteDump_data
8477	.syntax unified
8478	.thumb
8479	.thumb_func
8480	.fpu softvfp
8481	.type	FtlMapBlkWriteDump_data, %function
8482FtlMapBlkWriteDump_data:
8483	@ args = 0, pretend = 0, frame = 0
8484	@ frame_needed = 0, uses_anonymous_args = 0
8485	ldr	r3, [r0, #36]
8486	push	{r4, r5, r6, lr}
8487	mov	r6, r0
8488	cbz	r3, .L1115
8489	ldrh	r5, [r0, #6]
8490	movs	r3, #0
8491	ldr	r2, [r0, #24]
8492	str	r3, [r0, #36]
8493	subs	r5, r5, #1
8494	ldr	r3, .L1119
8495	ldr	r1, .L1119+4
8496	uxth	r5, r5
8497	ldr	r4, .L1119+8
8498	ldr	r2, [r2, r5, lsl #2]
8499	ldr	r0, [r3]
8500	ldr	r1, [r1]
8501	str	r2, [r4, #4]
8502	str	r0, [r4, #8]
8503	str	r1, [r4, #12]
8504	cbz	r2, .L1117
8505	movs	r2, #1
8506	mov	r0, r4
8507	mov	r1, r2
8508	bl	FlashReadPages
8509.L1118:
8510	ldr	r2, [r4, #8]
8511	mov	r1, r5
8512	mov	r0, r6
8513	pop	{r4, r5, r6, lr}
8514	b	FtlMapWritePage
8515.L1117:
8516	ldr	r3, .L1119+12
8517	movs	r1, #255
8518	ldrh	r2, [r3]
8519	bl	ftl_memset
8520	b	.L1118
8521.L1115:
8522	pop	{r4, r5, r6, pc}
8523.L1120:
8524	.align	2
8525.L1119:
8526	.word	.LANCHOR116
8527	.word	.LANCHOR123
8528	.word	.LANCHOR148
8529	.word	.LANCHOR23
8530	.size	FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
8531	.section	.text.FlashTestBlk,"ax",%progbits
8532	.align	1
8533	.global	FlashTestBlk
8534	.syntax unified
8535	.thumb
8536	.thumb_func
8537	.fpu softvfp
8538	.type	FlashTestBlk, %function
8539FlashTestBlk:
8540	@ args = 0, pretend = 0, frame = 88
8541	@ frame_needed = 0, uses_anonymous_args = 0
8542	cmp	r0, #11
8543	push	{r4, r5, lr}
8544	mov	r4, r0
8545	sub	sp, sp, #92
8546	bls	.L1123
8547	ldr	r5, .L1124
8548	add	r0, sp, #24
8549	movs	r2, #32
8550	movs	r1, #165
8551	str	r0, [sp, #16]
8552	lsls	r4, r4, #10
8553	ldr	r3, [r5]
8554	str	r3, [sp, #12]
8555	bl	ftl_memset
8556	movs	r2, #8
8557	movs	r1, #90
8558	ldr	r0, [r5]
8559	bl	ftl_memset
8560	movs	r2, #1
8561	add	r0, sp, #4
8562	mov	r1, r2
8563	str	r4, [sp, #8]
8564	bl	FlashEraseBlocks
8565	movs	r3, #1
8566	add	r0, sp, #4
8567	mov	r2, r3
8568	mov	r1, r3
8569	bl	FlashProgPages
8570	ldr	r4, [sp, #4]
8571	movs	r2, #1
8572	movs	r1, #0
8573	add	r0, sp, #4
8574	adds	r4, r4, #0
8575	it	ne
8576	movne	r4, #1
8577	negs	r4, r4
8578	bl	FlashEraseBlocks
8579.L1121:
8580	mov	r0, r4
8581	add	sp, sp, #92
8582	@ sp needed
8583	pop	{r4, r5, pc}
8584.L1123:
8585	movs	r4, #0
8586	b	.L1121
8587.L1125:
8588	.align	2
8589.L1124:
8590	.word	.LANCHOR121
8591	.size	FlashTestBlk, .-FlashTestBlk
8592	.section	.text.FtlBbmTblFlush,"ax",%progbits
8593	.align	1
8594	.global	FtlBbmTblFlush
8595	.syntax unified
8596	.thumb
8597	.thumb_func
8598	.fpu softvfp
8599	.type	FtlBbmTblFlush, %function
8600FtlBbmTblFlush:
8601	@ args = 0, pretend = 0, frame = 8
8602	@ frame_needed = 0, uses_anonymous_args = 0
8603	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
8604	movs	r4, #0
8605	ldr	r7, .L1135
8606	movs	r1, #0
8607	ldr	r5, .L1135+4
8608	ldr	r3, [r7]
8609	mov	fp, r7
8610	ldr	r8, .L1135+48
8611	ldr	r6, .L1135+8
8612	str	r3, [r5, #12]
8613	ldr	r7, .L1135+12
8614	ldr	r3, .L1135+16
8615	ldr	r10, .L1135+52
8616	ldr	r0, [r8]
8617	ldrh	r2, [r3]
8618	str	r0, [r5, #8]
8619	bl	ftl_memset
8620.L1127:
8621	ldrh	r3, [r7]
8622	cmp	r4, r3
8623	blt	.L1128
8624	ldr	r6, [r5, #12]
8625	movs	r2, #16
8626	ldr	r4, .L1135+20
8627	movs	r1, #255
8628	movs	r7, #0
8629	mov	r0, r6
8630	bl	ftl_memset
8631	movw	r3, #61649
8632	mov	r10, r4
8633	strh	r3, [r6]	@ movhi
8634	ldr	r3, [r4, #8]
8635	str	r7, [sp, #12]
8636	str	r3, [r6, #4]
8637	ldrh	r3, [r4]
8638	strh	r3, [r6, #2]	@ movhi
8639	ldrh	r3, [r4, #4]
8640	strh	r3, [r6, #8]	@ movhi
8641	ldrh	r3, [r4, #6]
8642	strh	r3, [r6, #10]	@ movhi
8643	ldr	r3, .L1135+24
8644	ldr	r3, [r3]
8645	strh	r3, [r6, #12]	@ movhi
8646.L1129:
8647	ldr	r3, [r8]
8648	ldrh	r2, [r4, #2]
8649	ldrh	r1, [r4]
8650	str	r3, [r5, #8]
8651	ldr	r3, [fp]
8652	ldrh	r0, [r6, #10]
8653	str	r3, [r5, #12]
8654	movs	r3, #0
8655	str	r3, [r5]
8656	orr	r3, r2, r1, lsl #10
8657	str	r3, [r5, #4]
8658	ldrh	r3, [r4, #4]
8659	str	r0, [sp]
8660	ldr	r0, .L1135+28
8661	bl	printf
8662	ldr	r3, .L1135+32
8663	ldrh	r2, [r4, #2]
8664	ldrh	r3, [r3]
8665	subs	r3, r3, #1
8666	cmp	r2, r3
8667	blt	.L1130
8668	ldr	r3, [r4, #8]
8669	mov	r1, #0	@ movhi
8670	ldrh	r2, [r4]
8671	strh	r1, [r4, #2]	@ movhi
8672	adds	r3, r3, #1
8673	str	r3, [r4, #8]
8674	str	r3, [r6, #4]
8675	strh	r2, [r6, #8]	@ movhi
8676	ldrh	r3, [r4, #4]
8677	strh	r2, [r4, #4]	@ movhi
8678	ldr	r2, .L1135+36
8679	strh	r3, [r4]	@ movhi
8680	lsls	r3, r3, #10
8681	ldr	r0, [r2]
8682	movs	r2, #1
8683	str	r3, [r5, #4]
8684	mov	r1, r2
8685	str	r3, [r0, #4]
8686	bl	FlashEraseBlocks
8687.L1130:
8688	movs	r3, #1
8689	ldr	r0, .L1135+4
8690	mov	r2, r3
8691	mov	r1, r3
8692	bl	FlashProgPages
8693	ldrh	r3, [r10, #2]
8694	adds	r3, r3, #1
8695	strh	r3, [r10, #2]	@ movhi
8696	ldr	r3, [r5]
8697	adds	r3, r3, #1
8698	bne	.L1131
8699	adds	r7, r7, #1
8700	ldr	r1, [r5, #4]
8701	uxth	r7, r7
8702	ldr	r0, .L1135+40
8703	bl	printf
8704	cmp	r7, #3
8705	bls	.L1129
8706	mov	r2, r7
8707	ldr	r1, [r5, #4]
8708	ldr	r0, .L1135+44
8709	bl	printf
8710.L1133:
8711	b	.L1133
8712.L1128:
8713	ldrh	r2, [r10]
8714	ldr	r3, [r5, #8]
8715	ldr	r1, [r6, #4]!
8716	mul	r0, r2, r4
8717	lsls	r2, r2, #2
8718	adds	r4, r4, #1
8719	add	r0, r3, r0, lsl #2
8720	bl	ftl_memcpy
8721	b	.L1127
8722.L1134:
8723	movs	r3, #1
8724	str	r3, [sp, #12]
8725	b	.L1129
8726.L1131:
8727	ldr	r3, [sp, #12]
8728	cmp	r3, #0
8729	beq	.L1134
8730	movs	r0, #0
8731	add	sp, sp, #16
8732	@ sp needed
8733	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8734.L1136:
8735	.align	2
8736.L1135:
8737	.word	.LANCHOR123
8738	.word	.LANCHOR148
8739	.word	.LANCHOR37+24
8740	.word	.LANCHOR10
8741	.word	.LANCHOR23
8742	.word	.LANCHOR37
8743	.word	.LANCHOR2
8744	.word	.LC101
8745	.word	.LANCHOR20
8746	.word	.LANCHOR106
8747	.word	.LC102
8748	.word	.LC103
8749	.word	.LANCHOR115
8750	.word	.LANCHOR137
8751	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
8752	.section	.text.allocate_data_superblock,"ax",%progbits
8753	.align	1
8754	.global	allocate_data_superblock
8755	.syntax unified
8756	.thumb
8757	.thumb_func
8758	.fpu softvfp
8759	.type	allocate_data_superblock, %function
8760allocate_data_superblock:
8761	@ args = 0, pretend = 0, frame = 8
8762	@ frame_needed = 0, uses_anonymous_args = 0
8763	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
8764	mov	r4, r0
8765.L1138:
8766	ldr	r3, .L1177
8767	ldr	r8, .L1177+68
8768	ldrh	r3, [r3]
8769	ldr	r10, .L1177+72
8770	ldrh	r2, [r8]
8771	add	r3, r3, r2
8772	ldrh	r2, [r10]
8773	cmp	r3, r2
8774	ble	.L1139
8775	movw	r2, #2615
8776	ldr	r1, .L1177+4
8777	ldr	r0, .L1177+8
8778	bl	printf
8779.L1139:
8780	ldr	r3, .L1177+12
8781	cmp	r4, r3
8782	bne	.L1165
8783	ldr	r3, .L1177
8784	ldr	r2, .L1177+16
8785	ldrh	r3, [r3]
8786	ldr	r2, [r2]
8787	lsrs	r1, r3, #1
8788	muls	r2, r3, r2
8789	adds	r1, r1, #1
8790	add	r1, r1, r2, lsr #2
8791	uxth	r1, r1
8792	cbz	r1, .L1140
8793	subs	r1, r1, #1
8794	uxth	r1, r1
8795.L1140:
8796	ldr	r0, .L1177+20
8797	bl	List_pop_index_node
8798	ldr	r3, .L1177
8799	mov	r5, r0
8800	uxth	r7, r0
8801	ldrh	r3, [r3]
8802	cbnz	r3, .L1141
8803	mov	r2, #2624
8804	ldr	r1, .L1177+4
8805	ldr	r0, .L1177+8
8806	bl	printf
8807.L1141:
8808	ldr	r3, .L1177
8809	ldr	r2, .L1177
8810	ldrh	r3, [r3]
8811	subs	r3, r3, #1
8812	strh	r3, [r2]	@ movhi
8813	ldrh	r3, [r10]
8814	cmp	r3, r7
8815	bls	.L1138
8816	uxth	r5, r5
8817	lsls	r3, r5, #1
8818	str	r3, [sp]
8819	ldr	r3, .L1177+24
8820	ldr	r3, [r3]
8821	ldrh	r6, [r3, r5, lsl #1]
8822	cmp	r6, #0
8823	bne	.L1138
8824	strh	r7, [r4]	@ movhi
8825	mov	r0, r4
8826	bl	make_superblock
8827	ldrb	r3, [r4, #7]	@ zero_extendqisi2
8828	cbnz	r3, .L1143
8829	ldr	r3, .L1177+24
8830	movw	r2, #65535
8831	mov	r0, r7
8832	ldr	r3, [r3]
8833	strh	r2, [r3, r5, lsl #1]	@ movhi
8834	bl	INSERT_DATA_LIST
8835	ldr	r3, .L1177
8836	ldrh	r2, [r8]
8837	ldrh	r3, [r3]
8838	add	r3, r3, r2
8839	ldrh	r2, [r10]
8840	cmp	r3, r2
8841	ble	.L1138
8842	movw	r2, #2638
8843	ldr	r1, .L1177+4
8844	ldr	r0, .L1177+8
8845	bl	printf
8846	b	.L1138
8847.L1165:
8848	movs	r1, #0
8849	b	.L1140
8850.L1143:
8851	ldr	r3, .L1177
8852	ldrh	r2, [r8]
8853	ldrh	r3, [r3]
8854	add	r3, r3, r2
8855	ldrh	r2, [r10]
8856	cmp	r3, r2
8857	ble	.L1145
8858	movw	r2, #2641
8859	ldr	r1, .L1177+4
8860	ldr	r0, .L1177+8
8861	bl	printf
8862.L1145:
8863	ldr	r3, .L1177+28
8864	add	lr, r4, #16
8865	ldr	r2, .L1177+32
8866	mov	r8, #0
8867	ldr	ip, [r3]
8868	ldrh	r0, [r2]
8869	movs	r2, #20
8870	mov	r3, ip
8871	mla	r0, r2, r0, ip
8872.L1146:
8873	cmp	r0, r3
8874	bne	.L1148
8875	cbnz	r6, .L1149
8876	movw	r2, #2652
8877	ldr	r1, .L1177+4
8878	ldr	r0, .L1177+8
8879	bl	printf
8880.L1149:
8881	ldr	r3, .L1177+36
8882	ldrh	r3, [r3]
8883	cmp	r3, r7
8884	bne	.L1150
8885	movw	r2, #2654
8886	ldr	r1, .L1177+4
8887	ldr	r0, .L1177+8
8888	bl	printf
8889.L1150:
8890	ldrb	r2, [r4, #8]	@ zero_extendqisi2
8891	ldr	r3, .L1177+40
8892	ldr	fp, .L1177+76
8893	ldr	r8, .L1177+80
8894	ldr	r1, [r3]
8895	cmp	r2, #0
8896	bne	.L1151
8897	ldrh	r2, [r1, r5, lsl #1]
8898	cmp	r2, #0
8899	beq	.L1152
8900	ldr	r0, .L1177+44
8901	ldrh	r0, [r0]
8902	add	r2, r2, r0
8903.L1175:
8904	strh	r2, [r1, r5, lsl #1]	@ movhi
8905	mov	r0, r7
8906	ldr	r2, [fp]
8907	movs	r1, #0
8908	str	r3, [sp, #4]
8909	adds	r2, r2, #1
8910	str	r2, [fp]
8911	bl	ftl_set_blk_mode
8912.L1176:
8913	ldr	r3, [sp, #4]
8914	ldr	r0, [fp]
8915	ldr	r3, [r3]
8916	ldrh	r1, [r3, r5, lsl #1]
8917	ldr	r3, .L1177+48
8918	ldr	r2, [r3]
8919	cmp	r1, r2
8920	it	hi
8921	strhi	r1, [r3]
8922	ldr	r3, .L1177+44
8923	ldrh	r1, [r10]
8924	ldrh	r2, [r3]
8925	ldr	r3, [r8]
8926	mla	r0, r0, r2, r3
8927	bl	__aeabi_uidiv
8928	ldr	r3, .L1177+52
8929	ldr	ip, .L1177+84
8930	str	r0, [r3]
8931	ldr	r3, .L1177+56
8932	ldr	r2, [r3]
8933	ldr	r3, [r2, #16]
8934	adds	r3, r3, #1
8935	str	r3, [r2, #16]
8936	movs	r2, #20
8937	ldr	r3, .L1177+28
8938	ldr	r0, [r3]
8939	adds	r3, r0, #4
8940	mla	r2, r2, r6, r0
8941	adds	r2, r2, #24
8942.L1156:
8943	adds	r3, r3, #20
8944	cmp	r2, r3
8945	bne	.L1157
8946	mov	r2, r6
8947	ldrb	r1, [r4, #8]	@ zero_extendqisi2
8948	mov	r8, #0
8949	bl	FlashEraseBlocks
8950	mov	r10, r8
8951	movs	r3, #20
8952.L1158:
8953	uxth	r2, r8
8954	cmp	r6, r2
8955	bhi	.L1160
8956	cmp	r10, #0
8957	beq	.L1161
8958	mov	r0, r7
8959	bl	update_multiplier_value
8960	bl	FtlBbmTblFlush
8961.L1161:
8962	ldrb	r2, [r4, #7]	@ zero_extendqisi2
8963	cmp	r2, #0
8964	bne	.L1162
8965	ldr	r3, .L1177+24
8966	movw	r2, #65535
8967	ldr	r3, [r3]
8968	strh	r2, [r3, r5, lsl #1]	@ movhi
8969	b	.L1138
8970.L1148:
8971	ldrh	r1, [lr], #2
8972	movw	fp, #65535
8973	str	r8, [r3, #8]
8974	str	r8, [r3, #12]
8975	cmp	r1, fp
8976	beq	.L1147
8977	mla	fp, r2, r6, ip
8978	adds	r6, r6, #1
8979	lsls	r1, r1, #10
8980	uxth	r6, r6
8981	str	r1, [fp, #4]
8982.L1147:
8983	adds	r3, r3, #20
8984	b	.L1146
8985.L1152:
8986	movs	r2, #2
8987	b	.L1175
8988.L1151:
8989	ldrh	r2, [r1, r5, lsl #1]
8990	mov	r0, r7
8991	str	r3, [sp, #4]
8992	adds	r2, r2, #1
8993	strh	r2, [r1, r5, lsl #1]	@ movhi
8994	ldr	r2, [r8]
8995	adds	r2, r2, #1
8996	str	r2, [r8]
8997	bl	ftl_set_blk_mode.part.6
8998	b	.L1176
8999.L1157:
9000	ldr	r1, [r3, #-20]
9001	and	r1, r1, ip
9002	str	r1, [r3, #-20]
9003	b	.L1156
9004.L1160:
9005	ldr	r1, .L1177+28
9006	mul	r2, r3, r8
9007	ldr	r1, [r1]
9008	ldr	fp, [r1, r2]
9009	adds	r0, r1, r2
9010	cmp	fp, #-1
9011	bne	.L1159
9012	ldr	r0, [r0, #4]
9013	add	r10, r10, #1
9014	str	r3, [sp, #4]
9015	ubfx	r0, r0, #10, #16
9016	bl	FtlBbmMapBadBlock
9017	add	r2, r4, r8, lsl #1
9018	ldr	r3, [sp, #4]
9019	strh	fp, [r2, #16]	@ movhi
9020	ldrb	r2, [r4, #7]	@ zero_extendqisi2
9021	subs	r2, r2, #1
9022	strb	r2, [r4, #7]
9023.L1159:
9024	add	r8, r8, #1
9025	b	.L1158
9026.L1162:
9027	ldr	r3, .L1177+60
9028	ldr	r1, .L1177+64
9029	ldrh	r3, [r3]
9030	strh	r7, [r4]	@ movhi
9031	smulbb	r3, r3, r2
9032	movs	r2, #0
9033	strh	r2, [r4, #2]	@ movhi
9034	strb	r2, [r4, #6]
9035	ldr	r2, [r1]
9036	uxth	r3, r3
9037	strh	r3, [r4, #4]	@ movhi
9038	str	r2, [r4, #12]
9039	adds	r2, r2, #1
9040	str	r2, [r1]
9041	ldr	r2, .L1177+24
9042	ldr	r1, [sp]
9043	ldr	r2, [r2]
9044	strh	r3, [r2, r1]	@ movhi
9045	ldrh	r3, [r4, #4]
9046	cbz	r3, .L1163
9047	ldrb	r3, [r4, #7]	@ zero_extendqisi2
9048	cbnz	r3, .L1164
9049.L1163:
9050	movw	r2, #2707
9051	ldr	r1, .L1177+4
9052	ldr	r0, .L1177+8
9053	bl	printf
9054.L1164:
9055	movs	r0, #0
9056	add	sp, sp, #8
9057	@ sp needed
9058	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9059.L1178:
9060	.align	2
9061.L1177:
9062	.word	.LANCHOR48
9063	.word	.LANCHOR163
9064	.word	.LC1
9065	.word	.LANCHOR53
9066	.word	.LANCHOR87
9067	.word	.LANCHOR47
9068	.word	.LANCHOR42
9069	.word	.LANCHOR106
9070	.word	.LANCHOR3
9071	.word	.LANCHOR80
9072	.word	.LANCHOR43
9073	.word	.LANCHOR14
9074	.word	.LANCHOR76
9075	.word	.LANCHOR74
9076	.word	.LANCHOR127
9077	.word	.LANCHOR19
9078	.word	.LANCHOR70
9079	.word	.LANCHOR45
9080	.word	.LANCHOR5
9081	.word	.LANCHOR72
9082	.word	.LANCHOR73
9083	.word	-1024
9084	.size	allocate_data_superblock, .-allocate_data_superblock
9085	.section	.text.FtlGcFreeBadSuperBlk,"ax",%progbits
9086	.align	1
9087	.global	FtlGcFreeBadSuperBlk
9088	.syntax unified
9089	.thumb
9090	.thumb_func
9091	.fpu softvfp
9092	.type	FtlGcFreeBadSuperBlk, %function
9093FtlGcFreeBadSuperBlk:
9094	@ args = 0, pretend = 0, frame = 8
9095	@ frame_needed = 0, uses_anonymous_args = 0
9096	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
9097	mov	r10, r0
9098	ldr	r4, .L1191
9099	ldrh	r3, [r4]
9100	cbz	r3, .L1180
9101	ldr	r8, .L1191+16
9102	movs	r6, #0
9103.L1181:
9104	ldr	r3, .L1191+4
9105	ldrh	r2, [r3]
9106	uxth	r3, r6
9107	cmp	r2, r3
9108	bhi	.L1187
9109	bl	FtlGcReFreshBadBlk
9110.L1180:
9111	movs	r0, #0
9112	add	sp, sp, #8
9113	@ sp needed
9114	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9115.L1187:
9116	ldr	r2, .L1191+8
9117	uxth	r3, r6
9118	mov	r1, r10
9119	movs	r7, #0
9120	ldrb	r0, [r2, r3]	@ zero_extendqisi2
9121	bl	V2P_block
9122	ldr	r2, .L1191+12
9123	mov	fp, r0
9124.L1182:
9125	ldrh	r3, [r4]
9126	uxth	r5, r7
9127	cmp	r3, r5
9128	bhi	.L1186
9129	adds	r6, r6, #1
9130	b	.L1181
9131.L1186:
9132	uxth	r3, r7
9133	ldrh	r1, [r8, r3, lsl #1]
9134	cmp	r1, fp
9135	bne	.L1183
9136	mov	r1, fp
9137	mov	r0, r2
9138	str	r3, [sp, #4]
9139	str	r2, [sp]
9140	bl	printf
9141	mov	r0, fp
9142	bl	FtlBbmMapBadBlock
9143	bl	FtlBbmTblFlush
9144	ldr	r3, [sp, #4]
9145	ldrh	r1, [r4]
9146	ldr	r2, [sp]
9147	add	r3, r8, r3, lsl #1
9148.L1184:
9149	cmp	r5, r1
9150	bcc	.L1185
9151	subs	r1, r1, #1
9152	strh	r1, [r4]	@ movhi
9153.L1183:
9154	adds	r7, r7, #1
9155	b	.L1182
9156.L1185:
9157	ldrh	r0, [r3, #2]!
9158	adds	r5, r5, #1
9159	uxth	r5, r5
9160	strh	r0, [r3, #-2]	@ movhi
9161	b	.L1184
9162.L1192:
9163	.align	2
9164.L1191:
9165	.word	.LANCHOR101
9166	.word	.LANCHOR3
9167	.word	.LANCHOR13
9168	.word	.LC104
9169	.word	.LANCHOR102
9170	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
9171	.section	.text.update_vpc_list,"ax",%progbits
9172	.align	1
9173	.global	update_vpc_list
9174	.syntax unified
9175	.thumb
9176	.thumb_func
9177	.fpu softvfp
9178	.type	update_vpc_list, %function
9179update_vpc_list:
9180	@ args = 0, pretend = 0, frame = 0
9181	@ frame_needed = 0, uses_anonymous_args = 0
9182	push	{r3, r4, r5, lr}
9183	mov	r4, r0
9184	ldr	r3, .L1203
9185	ldr	r3, [r3]
9186	ldrh	r3, [r3, r0, lsl #1]
9187	cmp	r3, #0
9188	bne	.L1194
9189	ldr	r2, .L1203+4
9190	ldrh	r1, [r2]
9191	cmp	r1, r0
9192	bne	.L1195
9193	movw	r3, #65535
9194	strh	r3, [r2]	@ movhi
9195.L1196:
9196	ldr	r5, .L1203+8
9197	mov	r1, r4
9198	ldr	r0, .L1203+12
9199	bl	List_remove_node
9200	ldrh	r3, [r5]
9201	cbnz	r3, .L1198
9202	movw	r2, #2777
9203	ldr	r1, .L1203+16
9204	ldr	r0, .L1203+20
9205	bl	printf
9206.L1198:
9207	ldrh	r3, [r5]
9208	mov	r0, r4
9209	subs	r3, r3, #1
9210	strh	r3, [r5]	@ movhi
9211	bl	free_data_superblock
9212	mov	r0, r4
9213	bl	FtlGcFreeBadSuperBlk
9214	ldr	r3, .L1203+24
9215	ldrh	r2, [r5]
9216	ldrh	r3, [r3]
9217	add	r3, r3, r2
9218	ldr	r2, .L1203+28
9219	ldrh	r2, [r2]
9220	cmp	r3, r2
9221	ble	.L1202
9222	movw	r2, #2780
9223	ldr	r1, .L1203+16
9224	ldr	r0, .L1203+20
9225	bl	printf
9226.L1202:
9227	movs	r3, #1
9228	b	.L1193
9229.L1195:
9230	ldr	r2, .L1203+32
9231	ldrh	r2, [r2]
9232	cmp	r2, r0
9233	beq	.L1193
9234	ldr	r2, .L1203+36
9235	ldrh	r2, [r2]
9236	cmp	r2, r0
9237	beq	.L1193
9238	ldr	r2, .L1203+40
9239	ldrh	r2, [r2]
9240	cmp	r2, r0
9241	bne	.L1196
9242.L1193:
9243	mov	r0, r3
9244	pop	{r3, r4, r5, pc}
9245.L1194:
9246	bl	List_update_data_list
9247	movs	r3, #0
9248	b	.L1193
9249.L1204:
9250	.align	2
9251.L1203:
9252	.word	.LANCHOR42
9253	.word	.LANCHOR80
9254	.word	.LANCHOR45
9255	.word	.LANCHOR41
9256	.word	.LANCHOR164
9257	.word	.LC1
9258	.word	.LANCHOR48
9259	.word	.LANCHOR5
9260	.word	.LANCHOR51
9261	.word	.LANCHOR52
9262	.word	.LANCHOR53
9263	.size	update_vpc_list, .-update_vpc_list
9264	.section	.text.decrement_vpc_count,"ax",%progbits
9265	.align	1
9266	.global	decrement_vpc_count
9267	.syntax unified
9268	.thumb
9269	.thumb_func
9270	.fpu softvfp
9271	.type	decrement_vpc_count, %function
9272decrement_vpc_count:
9273	@ args = 0, pretend = 0, frame = 0
9274	@ frame_needed = 0, uses_anonymous_args = 0
9275	movw	r3, #65535
9276	push	{r4, r5, r6, lr}
9277	cmp	r0, r3
9278	mov	r4, r0
9279	beq	.L1206
9280	ldr	r5, .L1214
9281	ldr	r3, [r5]
9282	ldrh	r2, [r3, r0, lsl #1]
9283	cbnz	r2, .L1207
9284	mov	r1, r0
9285	ldr	r0, .L1214+4
9286	bl	printf
9287	ldr	r3, [r5]
9288	ldrh	r5, [r3, r4, lsl #1]
9289	cbz	r5, .L1208
9290.L1212:
9291	movs	r5, #0
9292.L1205:
9293	mov	r0, r5
9294	pop	{r4, r5, r6, pc}
9295.L1208:
9296	movw	r2, #2795
9297.L1213:
9298	ldr	r1, .L1214+8
9299	ldr	r0, .L1214+12
9300	bl	printf
9301	b	.L1205
9302.L1207:
9303	subs	r2, r2, #1
9304	strh	r2, [r3, r0, lsl #1]	@ movhi
9305.L1206:
9306	ldr	r6, .L1214+16
9307	movw	r3, #65535
9308	ldrh	r0, [r6]
9309	cmp	r0, r3
9310	bne	.L1210
9311	strh	r4, [r6]	@ movhi
9312	b	.L1212
9313.L1210:
9314	cmp	r4, r0
9315	beq	.L1212
9316	bl	update_vpc_list
9317	ldr	r3, .L1214+20
9318	adds	r5, r0, #0
9319	ldr	r2, .L1214+24
9320	it	ne
9321	movne	r5, #1
9322	strh	r4, [r6]	@ movhi
9323	ldr	r3, [r3]
9324	ldr	r2, [r2]
9325	subs	r3, r3, r2
9326	asrs	r2, r3, #1
9327	ldr	r3, .L1214+28
9328	muls	r3, r2, r3
9329	ldr	r2, .L1214
9330	ldr	r2, [r2]
9331	uxth	r1, r3
9332	ldrh	r2, [r2, r1, lsl #1]
9333	cmp	r2, #0
9334	bne	.L1205
9335	cmp	r4, r1
9336	beq	.L1205
9337	movw	r2, #2811
9338	b	.L1213
9339.L1215:
9340	.align	2
9341.L1214:
9342	.word	.LANCHOR42
9343	.word	.LC105
9344	.word	.LANCHOR165
9345	.word	.LC1
9346	.word	.LANCHOR142
9347	.word	.LANCHOR41
9348	.word	.LANCHOR40
9349	.word	-1431655765
9350	.size	decrement_vpc_count, .-decrement_vpc_count
9351	.section	.text.FtlRecoverySuperblock,"ax",%progbits
9352	.align	1
9353	.global	FtlRecoverySuperblock
9354	.syntax unified
9355	.thumb
9356	.thumb_func
9357	.fpu softvfp
9358	.type	FtlRecoverySuperblock, %function
9359FtlRecoverySuperblock:
9360	@ args = 0, pretend = 0, frame = 48
9361	@ frame_needed = 0, uses_anonymous_args = 0
9362	ldrh	r3, [r0]
9363	movw	r2, #65535
9364	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9365	mov	r8, r0
9366	sub	sp, sp, #48
9367	cmp	r3, r2
9368	beq	.L1344
9369	ldrh	r3, [r0, #2]
9370	str	r3, [sp, #4]
9371	ldrb	r3, [r0, #6]	@ zero_extendqisi2
9372	ldr	r1, [sp, #4]
9373	str	r3, [sp, #20]
9374	ldr	r3, .L1352
9375	ldrh	r3, [r3]
9376	cmp	r3, r1
9377	mov	r3, #0
9378	bne	.L1219
9379	strh	r3, [r0, #4]	@ movhi
9380.L1350:
9381	strb	r3, [r8, #6]
9382.L1344:
9383	movs	r0, #0
9384	add	sp, sp, #48
9385	@ sp needed
9386	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9387.L1219:
9388	ldrh	r0, [r0, #16]
9389.L1220:
9390	cmp	r0, r2
9391	uxth	r5, r3
9392	add	r3, r3, #1
9393	beq	.L1221
9394	movs	r1, #1
9395	bl	FtlGetLastWrittenPage
9396	mov	r4, r0
9397	adds	r0, r0, #1
9398	beq	.L1222
9399	ldr	r3, .L1352+4
9400	movs	r2, #0
9401	mov	r5, r2
9402	movw	fp, #65535
9403	mov	r10, #20
9404	ldrh	ip, [r3]
9405	ldr	r3, .L1352+8
9406	ldr	r0, [r3]
9407	ldr	r3, .L1352+12
9408	ldr	r3, [r3]
9409	str	r3, [sp, #8]
9410	ldr	r3, .L1352+16
9411	ldrh	r7, [r3]
9412	ldr	r3, .L1352+20
9413	ldr	r3, [r3]
9414	str	r3, [sp, #12]
9415	ldr	r3, .L1352+24
9416	ldrh	lr, [r3]
9417	add	r3, r8, #16
9418	str	r3, [sp, #16]
9419	str	r3, [sp]
9420.L1223:
9421	uxth	r3, r2
9422	cmp	ip, r3
9423	bhi	.L1227
9424	movs	r2, #0
9425	mov	r1, r5
9426	bl	FlashReadPages
9427	ldr	r2, .L1352+28
9428	uxth	r1, r4
9429	movw	fp, #65535
9430	str	r1, [sp, #12]
9431	ldr	r3, [r2]
9432	subs	r3, r3, #1
9433	str	r3, [sp]
9434	ldr	r3, .L1352+8
9435	ldr	r10, [r3]
9436	movs	r3, #0
9437	mov	r7, r10
9438.L1228:
9439	uxth	r1, r3
9440	cmp	r5, r1
9441	bhi	.L1233
9442	bne	.L1231
9443	adds	r3, r4, #1
9444	uxth	r3, r3
9445	str	r3, [sp, #8]
9446.L1345:
9447	ldr	r0, [r10, #4]
9448	ubfx	r0, r0, #10, #16
9449	bl	P2V_plane
9450	ldr	r3, .L1352
9451	mov	r10, r0
9452	ldr	r2, [sp, #8]
9453	ldrh	r3, [r3]
9454	cmp	r3, r2
9455	bne	.L1235
9456	ldrh	r3, [sp, #8]
9457	strh	r3, [r8, #2]	@ movhi
9458	movs	r3, #0
9459	strb	r3, [r8, #6]
9460	strh	r3, [r8, #4]	@ movhi
9461.L1235:
9462	ldr	r3, [sp, #8]
9463	ldr	r2, [sp, #4]
9464	cmp	r3, r2
9465	bne	.L1236
9466	ldr	r3, [sp, #20]
9467	cmp	r10, r3
9468	bne	.L1236
9469	ldr	r1, [sp, #8]
9470	mov	r2, r10
9471.L1351:
9472	mov	r0, r8
9473	bl	ftl_sb_update_avl_pages
9474	b	.L1344
9475.L1221:
9476	uxth	r1, r3
9477	adds	r1, r1, #8
9478	ldrh	r0, [r8, r1, lsl #1]
9479	b	.L1220
9480.L1222:
9481	ldr	r3, [sp, #4]
9482	cbz	r3, .L1224
9483	movw	r2, #1766
9484	ldr	r1, .L1352+32
9485	ldr	r0, .L1352+36
9486	bl	printf
9487.L1224:
9488	ldr	r3, [sp, #20]
9489	cbz	r3, .L1225
9490	cmp	r5, r3
9491	beq	.L1225
9492	movw	r2, #1767
9493	ldr	r1, .L1352+32
9494	ldr	r0, .L1352+36
9495	bl	printf
9496.L1225:
9497	movs	r3, #0
9498	strh	r3, [r8, #2]	@ movhi
9499	b	.L1350
9500.L1227:
9501	ldr	r1, [sp]
9502	ldrh	r3, [r1], #2
9503	cmp	r3, fp
9504	str	r1, [sp]
9505	beq	.L1226
9506	mla	r1, r10, r5, r0
9507	ldr	r6, [sp, #8]
9508	orr	r3, r4, r3, lsl #10
9509	str	r3, [r1, #4]
9510	mul	r3, r7, r5
9511	bic	r3, r3, #3
9512	add	r3, r3, r6
9513	ldr	r6, [sp, #12]
9514	str	r3, [r1, #8]
9515	mul	r3, lr, r5
9516	adds	r5, r5, #1
9517	uxth	r5, r5
9518	bic	r3, r3, #3
9519	add	r3, r3, r6
9520	str	r3, [r1, #12]
9521.L1226:
9522	adds	r2, r2, #1
9523	b	.L1223
9524.L1233:
9525	ldr	r1, [r7]
9526	cbnz	r1, .L1229
9527	ldr	r1, [r7, #12]
9528	ldr	r6, [r1, #4]
9529	str	r1, [sp, #8]
9530	adds	r1, r6, #1
9531	beq	.L1230
9532	ldr	r1, [r2]
9533	mov	r0, r6
9534	bl	ftl_cmp_data_ver
9535	cbz	r0, .L1230
9536	adds	r6, r6, #1
9537	str	r6, [r2]
9538.L1230:
9539	ldr	r1, [sp, #8]
9540	ldr	r1, [r1]
9541	adds	r1, r1, #1
9542	bne	.L1232
9543.L1231:
9544	uxth	r2, r4
9545	uxth	r3, r3
9546	str	r2, [sp, #8]
9547	movs	r2, #20
9548	mla	r10, r2, r3, r10
9549	b	.L1345
9550.L1229:
9551	ldr	fp, [sp, #12]
9552.L1232:
9553	adds	r3, r3, #1
9554	adds	r7, r7, #20
9555	b	.L1228
9556.L1236:
9557	movw	r3, #65535
9558	cmp	fp, r3
9559	bne	.L1237
9560	ldrb	r3, [r8, #8]	@ zero_extendqisi2
9561	cmp	r3, #0
9562	bne	.L1238
9563.L1237:
9564	ldr	r3, .L1352+40
9565	uxth	r6, r4
9566	uxth	r4, r4
9567	ldr	r7, .L1352+8
9568	ldr	r2, [r3]
9569	adds	r2, r2, #1
9570	itt	eq
9571	ldreq	r2, [sp]
9572	streq	r2, [r3]
9573	ldr	r3, [sp, #4]
9574	adds	r3, r3, #7
9575	cmp	r4, r3
9576	itet	gt
9577	subgt	r4, r6, #7
9578	ldrle	r4, [sp, #4]
9579	uxthgt	r4, r4
9580.L1241:
9581	cmp	r4, r6
9582	bhi	.L1251
9583	ldr	r3, .L1352+4
9584	movw	lr, #65535
9585	ldr	r0, [r7]
9586	mov	ip, #20
9587	ldrh	fp, [r3]
9588	ldr	r3, [sp, #16]
9589	str	r3, [sp, #12]
9590	movs	r3, #0
9591	mov	r5, r3
9592	b	.L1252
9593.L1243:
9594	ldr	r1, [sp, #12]
9595	ldrh	r2, [r1], #2
9596	cmp	r2, lr
9597	str	r1, [sp, #12]
9598	beq	.L1242
9599	mla	r1, ip, r5, r0
9600	adds	r5, r5, #1
9601	orr	r2, r4, r2, lsl #10
9602	uxth	r5, r5
9603	str	r2, [r1, #4]
9604.L1242:
9605	adds	r3, r3, #1
9606.L1252:
9607	uxth	r2, r3
9608	cmp	fp, r2
9609	bhi	.L1243
9610	mov	r1, r5
9611	movs	r2, #0
9612	bl	FlashReadPages
9613	ldr	r3, .L1352+40
9614	movs	r1, #20
9615	movs	r0, #0
9616	movw	ip, #65535
9617	ldr	r2, [r3]
9618	ldr	r3, [r7]
9619	mla	r5, r1, r5, r3
9620.L1244:
9621	cmp	r5, r3
9622	bne	.L1249
9623	cbz	r0, .L1250
9624	ldr	r3, .L1352+40
9625	str	r2, [r3]
9626.L1250:
9627	adds	r4, r4, #1
9628	uxth	r4, r4
9629	b	.L1241
9630.L1353:
9631	.align	2
9632.L1352:
9633	.word	.LANCHOR19
9634	.word	.LANCHOR3
9635	.word	.LANCHOR112
9636	.word	.LANCHOR91
9637	.word	.LANCHOR23
9638	.word	.LANCHOR92
9639	.word	.LANCHOR24
9640	.word	.LANCHOR71
9641	.word	.LANCHOR166
9642	.word	.LC1
9643	.word	.LANCHOR145
9644.L1249:
9645	ldr	r1, [r3]
9646	cmp	r1, #0
9647	beq	.L1245
9648	cbz	r0, .L1238
9649.L1346:
9650	ldr	r3, .L1354
9651	str	r2, [r3]
9652.L1238:
9653	ldr	fp, [sp, #4]
9654	movs	r2, #1
9655	ldr	r6, .L1354+4
9656	ldr	r3, .L1354+8
9657	strh	r2, [r3]	@ movhi
9658.L1253:
9659	ldr	r3, .L1354+12
9660	movw	lr, #65535
9661	ldr	r0, [r6]
9662	movs	r7, #20
9663	ldr	r1, [sp, #16]
9664	ldrh	r4, [r3]
9665	movs	r3, #0
9666	str	r3, [sp, #12]
9667.L1254:
9668	uxth	r2, r3
9669	cmp	r4, r2
9670	bhi	.L1256
9671	movs	r2, #0
9672	ldr	r1, [sp, #12]
9673	bl	FlashReadPages
9674	movs	r3, #0
9675.L1349:
9676	str	r3, [sp, #24]
9677	ldr	r2, [sp, #12]
9678	ldrh	r3, [sp, #24]
9679	cmp	r2, r3
9680	bhi	.L1284
9681	ldr	r3, .L1354+16
9682	add	fp, fp, #1
9683	uxth	fp, fp
9684	ldrh	r3, [r3]
9685	cmp	r3, fp
9686	bne	.L1253
9687	ldr	r2, .L1354+12
9688	movw	r0, #65535
9689	movs	r3, #0
9690	strh	fp, [r8, #2]	@ movhi
9691	strh	r3, [r8, #4]	@ movhi
9692	ldrh	r2, [r2]
9693.L1285:
9694	uxth	r1, r3
9695	cmp	r1, r2
9696	bcs	.L1344
9697	ldr	r1, [sp, #16]
9698	ldrh	r4, [r1], #2
9699	cmp	r4, r0
9700	str	r1, [sp, #16]
9701	add	r1, r3, #1
9702	bne	.L1350
9703	mov	r3, r1
9704	b	.L1285
9705.L1245:
9706	ldr	r1, [r3, #12]
9707	ldrh	lr, [r1]
9708	cmp	lr, ip
9709	beq	.L1248
9710	ldr	r1, [r1, #4]
9711	cmp	r1, #-1
9712	itt	ne
9713	movne	r2, r1
9714	movne	r0, #1
9715.L1248:
9716	adds	r3, r3, #20
9717	b	.L1244
9718.L1251:
9719	mov	r2, #-1
9720	b	.L1346
9721.L1256:
9722	ldrh	r2, [r1], #2
9723	cmp	r2, lr
9724	beq	.L1255
9725	ldr	r5, [sp, #12]
9726	orr	r2, fp, r2, lsl #10
9727	mla	ip, r7, r5, r0
9728	str	r2, [ip, #4]
9729	mov	r2, r5
9730	adds	r2, r2, #1
9731	uxth	r2, r2
9732	str	r2, [sp, #12]
9733.L1255:
9734	adds	r3, r3, #1
9735	b	.L1254
9736.L1284:
9737	ldr	r3, [sp, #24]
9738	movs	r5, #20
9739	muls	r5, r3, r5
9740	ldr	r3, [r6]
9741	str	r3, [sp, #28]
9742	adds	r7, r3, r5
9743	ldr	r4, [r7, #4]
9744	ubfx	r0, r4, #10, #16
9745	str	r4, [sp, #44]
9746	bl	P2V_plane
9747	ldr	r3, [sp, #4]
9748	cmp	fp, r3
9749	bcc	.L1258
9750	ldr	r3, [sp, #28]
9751	bne	.L1259
9752	ldr	r2, [sp, #20]
9753	cmp	r2, r0
9754	bhi	.L1258
9755.L1259:
9756	ldr	r2, [sp, #8]
9757	cmp	fp, r2
9758	bne	.L1260
9759	cmp	r10, r0
9760	beq	.L1261
9761.L1260:
9762	ldr	r3, [r3, r5]
9763	adds	r3, r3, #1
9764	beq	.L1262
9765	ldr	r3, [r7, #12]
9766	movw	r2, #61589
9767	ldrh	r1, [r3]
9768	cmp	r1, r2
9769	beq	.L1263
9770	ldrh	r0, [r8]
9771.L1347:
9772	bl	decrement_vpc_count
9773	b	.L1258
9774.L1263:
9775	ldr	r2, [r3, #4]
9776	str	r2, [sp]
9777	adds	r2, r2, #1
9778	beq	.L1264
9779	ldr	r2, .L1354+20
9780	ldr	r0, [sp]
9781	ldr	r1, [r2]
9782	bl	ftl_cmp_data_ver
9783	cbz	r0, .L1264
9784	ldr	r1, [sp]
9785	adds	r1, r1, #1
9786	str	r1, [r2]
9787.L1264:
9788	ldr	r4, [r3, #8]
9789	add	r1, sp, #40
9790	ldr	r3, [r3, #12]
9791	movs	r2, #0
9792	mov	r0, r4
9793	str	r3, [sp, #36]
9794	bl	log2phys
9795	ldr	r3, .L1354
9796	ldr	r1, [r3]
9797	adds	r3, r1, #1
9798	beq	.L1265
9799	ldr	r0, [sp]
9800	bl	ftl_cmp_data_ver
9801	cmp	r0, #0
9802	beq	.L1265
9803	ldr	r3, [sp, #36]
9804	adds	r7, r3, #1
9805	beq	.L1266
9806	ldr	r0, [r6]
9807	movs	r2, #0
9808	movs	r1, #1
9809	add	r0, r0, r5
9810	str	r3, [r0, #4]
9811	ldr	r7, [r0, #12]
9812	bl	FlashReadPages
9813	ldr	r2, [r6]
9814	ldr	r1, [r2, r5]
9815	adds	r3, r2, r5
9816	adds	r1, r1, #1
9817	bne	.L1267
9818.L1268:
9819	mov	r3, #-1
9820	str	r3, [sp, #36]
9821.L1275:
9822	ldr	r7, [sp, #36]
9823	adds	r0, r7, #1
9824	beq	.L1258
9825.L1288:
9826	ubfx	r0, r7, #10, #16
9827	bl	P2V_block_in_plane
9828	ldr	r3, .L1354+24
9829	mov	r4, r0
9830	ldrh	r3, [r3]
9831	cmp	r3, r0
9832	bhi	.L1280
9833	movw	r2, #2019
9834	ldr	r1, .L1354+28
9835	ldr	r0, .L1354+32
9836	bl	printf
9837.L1280:
9838	ldr	r3, .L1354+36
9839	ldr	r3, [r3]
9840	ldrh	r3, [r3, r4, lsl #1]
9841	cmp	r3, #0
9842	beq	.L1281
9843	mov	r0, r4
9844	b	.L1347
9845.L1266:
9846	ldr	r3, [sp, #44]
9847	ldr	r2, [sp, #40]
9848	cmp	r2, r3
9849	bne	.L1258
9850	movs	r2, #1
9851	add	r1, sp, #36
9852	mov	r0, r4
9853	bl	log2phys
9854.L1258:
9855	ldr	r3, [sp, #24]
9856	adds	r3, r3, #1
9857	b	.L1349
9858.L1267:
9859	ldr	r1, [r7, #8]
9860	cmp	r4, r1
9861	bne	.L1268
9862	ldr	r0, .L1354
9863	ldr	r1, [r7, #4]
9864	ldr	r0, [r0]
9865	str	r1, [sp, #28]
9866	bl	ftl_cmp_data_ver
9867	cmp	r0, #0
9868	beq	.L1268
9869	ldr	r1, [sp, #40]
9870	ldr	r0, [sp, #44]
9871	cmp	r1, r0
9872	bne	.L1270
9873.L1273:
9874	ldr	r1, [sp, #36]
9875	mov	r0, r4
9876	bl	FtlReUsePrevPpa
9877	b	.L1268
9878.L1270:
9879	ldr	r0, [sp, #36]
9880	cmp	r1, r0
9881	beq	.L1268
9882	adds	r0, r1, #1
9883	beq	.L1271
9884	str	r1, [r3, #4]
9885	movs	r2, #0
9886	movs	r1, #1
9887	mov	r0, r3
9888	ldr	r7, [r3, #12]
9889	bl	FlashReadPages
9890.L1272:
9891	ldr	r3, [r6]
9892	ldr	r3, [r3, r5]
9893	adds	r3, r3, #1
9894	beq	.L1273
9895	ldr	r3, [r7, #4]
9896	ldr	r2, .L1354
9897	mov	r1, r3
9898	ldr	r0, [r2]
9899	bl	ftl_cmp_data_ver
9900	cmp	r0, #0
9901	beq	.L1273
9902	mov	r1, r3
9903	ldr	r0, [sp, #28]
9904	bl	ftl_cmp_data_ver
9905	cmp	r0, #0
9906	beq	.L1268
9907	b	.L1273
9908.L1271:
9909	str	r1, [r2, r5]
9910	b	.L1272
9911.L1265:
9912	ldr	r3, [sp, #44]
9913	ldr	r2, [sp, #40]
9914	cmp	r2, r3
9915	beq	.L1275
9916	movs	r2, #1
9917	add	r1, sp, #44
9918	mov	r0, r4
9919	bl	log2phys
9920	ldr	r7, [sp, #40]
9921	adds	r5, r7, #1
9922	beq	.L1275
9923	ldr	r3, [sp, #36]
9924	cmp	r7, r3
9925	beq	.L1288
9926	ubfx	r0, r7, #10, #16
9927	bl	P2V_block_in_plane
9928	ldr	r3, .L1354+40
9929	ldrh	r3, [r3]
9930	cmp	r3, r0
9931	beq	.L1279
9932	ldr	r3, .L1354+44
9933	ldrh	r3, [r3]
9934	cmp	r3, r0
9935	beq	.L1279
9936	ldr	r3, .L1354+48
9937	ldrh	r3, [r3]
9938	cmp	r3, r0
9939	bne	.L1275
9940.L1279:
9941	ldr	r0, [r6]
9942	movs	r2, #0
9943	movs	r1, #1
9944	str	r7, [r0, #4]
9945	ldr	r5, [r0, #12]
9946	bl	FlashReadPages
9947	ldr	r3, [r6]
9948	ldr	r3, [r3]
9949	adds	r3, r3, #1
9950	beq	.L1275
9951	ldr	r1, [r5, #4]
9952	ldr	r0, [sp]
9953	bl	ftl_cmp_data_ver
9954	cmp	r0, #0
9955	bne	.L1275
9956	movs	r2, #1
9957	add	r1, sp, #40
9958	mov	r0, r4
9959	bl	log2phys
9960	b	.L1275
9961.L1355:
9962	.align	2
9963.L1354:
9964	.word	.LANCHOR145
9965	.word	.LANCHOR112
9966	.word	.LANCHOR167
9967	.word	.LANCHOR3
9968	.word	.LANCHOR19
9969	.word	.LANCHOR71
9970	.word	.LANCHOR5
9971	.word	.LANCHOR166
9972	.word	.LC1
9973	.word	.LANCHOR42
9974	.word	.LANCHOR51
9975	.word	.LANCHOR52
9976	.word	.LANCHOR53
9977.L1281:
9978	mov	r1, r4
9979	ldr	r0, .L1356
9980	bl	printf
9981	b	.L1258
9982.L1262:
9983	ldr	r3, .L1356+4
9984	ldr	r3, [r3]
9985	cmp	r3, #31
9986	bhi	.L1282
9987	ldr	r2, .L1356+8
9988	str	r4, [r2, r3, lsl #2]
9989	adds	r3, r3, #1
9990	ldr	r2, .L1356+4
9991	str	r3, [r2]
9992.L1282:
9993	ldrh	r0, [r8]
9994	bl	decrement_vpc_count
9995	ldr	r3, .L1356+12
9996	ldr	r2, [r3]
9997	adds	r1, r2, #1
9998	bne	.L1283
9999	ldr	r2, [sp]
10000.L1348:
10001	str	r2, [r3]
10002	b	.L1258
10003.L1283:
10004	ldr	r1, [sp]
10005	cmp	r1, r2
10006	bcs	.L1258
10007	mov	r2, r1
10008	b	.L1348
10009.L1261:
10010	strb	r10, [r8, #6]
10011	mov	r2, r10
10012	strh	fp, [r8, #2]	@ movhi
10013	mov	r1, fp
10014	b	.L1351
10015.L1357:
10016	.align	2
10017.L1356:
10018	.word	.LC106
10019	.word	.LANCHOR168
10020	.word	.LANCHOR169
10021	.word	.LANCHOR145
10022	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
10023	.section	.text.FtlWriteDump_data,"ax",%progbits
10024	.align	1
10025	.global	FtlWriteDump_data
10026	.syntax unified
10027	.thumb
10028	.thumb_func
10029	.fpu softvfp
10030	.type	FtlWriteDump_data, %function
10031FtlWriteDump_data:
10032	@ args = 0, pretend = 0, frame = 24
10033	@ frame_needed = 0, uses_anonymous_args = 0
10034	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10035	sub	sp, sp, #24
10036	ldr	r4, .L1377
10037	ldrh	r2, [r4, #4]
10038	cmp	r2, #0
10039	beq	.L1359
10040	ldrb	r3, [r4, #8]	@ zero_extendqisi2
10041	cmp	r3, #0
10042	bne	.L1359
10043	ldr	r3, .L1377+4
10044	ldrb	r1, [r4, #7]	@ zero_extendqisi2
10045	ldrh	r3, [r3]
10046	muls	r3, r1, r3
10047	cmp	r2, r3
10048	beq	.L1359
10049	ldrb	r7, [r4, #10]	@ zero_extendqisi2
10050	cbnz	r7, .L1358
10051	ldr	r3, .L1377+8
10052	mov	r2, r7
10053	mov	r1, sp
10054	ldr	r6, [r3]
10055	ldr	r3, .L1377+12
10056	subs	r6, r6, #1
10057	mov	r0, r6
10058	ldrh	r8, [r3]
10059	bl	log2phys
10060	ldr	r2, .L1377+16
10061	ldr	r3, [sp]
10062	str	r6, [sp, #20]
10063	ldr	r0, [r2]
10064	ldr	r2, .L1377+20
10065	str	r3, [sp, #8]
10066	adds	r3, r3, #1
10067	str	r0, [sp, #12]
10068	ldr	r5, [r2]
10069	str	r5, [sp, #16]
10070	str	r7, [r5, #4]
10071	beq	.L1361
10072	mov	r2, r7
10073	movs	r1, #1
10074	add	r0, sp, #4
10075	bl	FlashReadPages
10076.L1362:
10077	ldr	fp, .L1377
10078	lsl	r8, r8, #2
10079	ldr	r10, .L1377+28
10080	movs	r7, #0
10081	movw	r3, #61589
10082	strh	r3, [r5]	@ movhi
10083.L1363:
10084	cmp	r8, r7
10085	bne	.L1367
10086.L1364:
10087	movs	r3, #1
10088.L1376:
10089	strb	r3, [r4, #10]
10090.L1358:
10091	add	sp, sp, #24
10092	@ sp needed
10093	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10094.L1361:
10095	ldr	r3, .L1377+24
10096	movs	r1, #255
10097	ldrh	r2, [r3]
10098	bl	ftl_memset
10099	b	.L1362
10100.L1367:
10101	ldrh	r3, [r4, #4]
10102	cmp	r3, #0
10103	beq	.L1364
10104	ldr	r3, [sp, #8]
10105	mov	r0, fp
10106	str	r6, [r5, #8]
10107	adds	r7, r7, #1
10108	str	r3, [r5, #12]
10109	ldrh	r3, [r4]
10110	strh	r3, [r5, #2]	@ movhi
10111	bl	get_new_active_ppa
10112	ldr	r3, [r10]
10113	movs	r1, #1
10114	str	r0, [sp, #8]
10115	add	r0, sp, #4
10116	str	r3, [r5, #4]
10117	adds	r3, r3, #1
10118	adds	r2, r3, #1
10119	it	eq
10120	moveq	r3, #0
10121	str	r3, [r10]
10122	movs	r3, #0
10123	mov	r2, r3
10124	bl	FlashProgPages
10125	ldrh	r0, [r4]
10126	bl	decrement_vpc_count
10127	b	.L1363
10128.L1359:
10129	movs	r3, #0
10130	b	.L1376
10131.L1378:
10132	.align	2
10133.L1377:
10134	.word	.LANCHOR51
10135	.word	.LANCHOR19
10136	.word	.LANCHOR61
10137	.word	.LANCHOR3
10138	.word	.LANCHOR115
10139	.word	.LANCHOR123
10140	.word	.LANCHOR23
10141	.word	.LANCHOR71
10142	.size	FtlWriteDump_data, .-FtlWriteDump_data
10143	.section	.text.l2p_flush,"ax",%progbits
10144	.align	1
10145	.global	l2p_flush
10146	.syntax unified
10147	.thumb
10148	.thumb_func
10149	.fpu softvfp
10150	.type	l2p_flush, %function
10151l2p_flush:
10152	@ args = 0, pretend = 0, frame = 0
10153	@ frame_needed = 0, uses_anonymous_args = 0
10154	push	{r4, r5, r6, lr}
10155	movs	r4, #0
10156	ldr	r5, .L1383
10157	ldr	r6, .L1383+4
10158	bl	FtlWriteDump_data
10159.L1380:
10160	ldrh	r3, [r5]
10161	uxth	r0, r4
10162	cmp	r3, r0
10163	bhi	.L1382
10164	movs	r0, #0
10165	pop	{r4, r5, r6, pc}
10166.L1382:
10167	ldr	r2, [r6]
10168	uxth	r3, r4
10169	movs	r1, #12
10170	mla	r3, r1, r3, r2
10171	ldr	r3, [r3, #4]
10172	cmp	r3, #0
10173	bge	.L1381
10174	bl	flush_l2p_region
10175.L1381:
10176	adds	r4, r4, #1
10177	b	.L1380
10178.L1384:
10179	.align	2
10180.L1383:
10181	.word	.LANCHOR33
10182	.word	.LANCHOR55
10183	.size	l2p_flush, .-l2p_flush
10184	.section	.text.FtlSuperblockPowerLostFix,"ax",%progbits
10185	.align	1
10186	.global	FtlSuperblockPowerLostFix
10187	.syntax unified
10188	.thumb
10189	.thumb_func
10190	.fpu softvfp
10191	.type	FtlSuperblockPowerLostFix, %function
10192FtlSuperblockPowerLostFix:
10193	@ args = 0, pretend = 0, frame = 24
10194	@ frame_needed = 0, uses_anonymous_args = 0
10195	push	{r4, r5, r6, r7, r8, lr}
10196	mov	r3, #-1
10197	sub	sp, sp, #24
10198	ldr	r2, .L1398
10199	movs	r6, #0
10200	mov	r4, r0
10201	str	r3, [sp, #20]
10202	ldr	r3, .L1398+4
10203	ldr	r5, [r2]
10204	mvn	r2, #2
10205	ldr	r8, .L1398+16
10206	ldr	r3, [r3]
10207	str	r5, [sp, #16]
10208	str	r3, [sp, #12]
10209	str	r2, [r5, #8]
10210	mvn	r2, #1
10211	str	r2, [r5, #12]
10212	ldrh	r2, [r0]
10213	strh	r6, [r5]	@ movhi
10214	strh	r2, [r5, #2]	@ movhi
10215	movw	r2, #61589
10216	str	r2, [r3]
10217	add	r2, r2, #304087040
10218	add	r2, r2, #1269760
10219	addw	r2, r2, #1507
10220	str	r2, [r3, #4]
10221	ldrh	r3, [r0, #4]
10222	tst	r3, #1
10223	ite	eq
10224	moveq	r7, #6
10225	movne	r7, #7
10226.L1391:
10227	ldrh	r3, [r4, #4]
10228	cbnz	r3, .L1387
10229.L1388:
10230	ldr	r3, .L1398+8
10231	ldrh	r1, [r4]
10232	ldrh	r0, [r4, #4]
10233	ldr	r2, [r3]
10234	ldrh	r3, [r2, r1, lsl #1]
10235	subs	r3, r3, r0
10236	strh	r3, [r2, r1, lsl #1]	@ movhi
10237	ldr	r3, .L1398+12
10238	ldrh	r3, [r3]
10239	strh	r3, [r4, #2]	@ movhi
10240	movs	r3, #0
10241	strb	r3, [r4, #6]
10242	strh	r3, [r4, #4]	@ movhi
10243	add	sp, sp, #24
10244	@ sp needed
10245	pop	{r4, r5, r6, r7, r8, pc}
10246.L1387:
10247	mov	r0, r4
10248	bl	get_new_active_ppa
10249	str	r0, [sp, #8]
10250	adds	r0, r0, #1
10251	beq	.L1388
10252	ldr	r3, [r8]
10253	movs	r1, #1
10254	add	r0, sp, #4
10255	str	r3, [r5, #4]
10256	adds	r3, r3, #1
10257	adds	r2, r3, #1
10258	it	eq
10259	moveq	r3, r6
10260	str	r3, [r8]
10261	movs	r3, #0
10262	mov	r2, r3
10263	bl	FlashProgPages
10264	ldrh	r0, [r4]
10265	bl	decrement_vpc_count
10266	subs	r7, r7, #1
10267	bne	.L1391
10268	b	.L1388
10269.L1399:
10270	.align	2
10271.L1398:
10272	.word	.LANCHOR123
10273	.word	.LANCHOR115
10274	.word	.LANCHOR42
10275	.word	.LANCHOR19
10276	.word	.LANCHOR71
10277	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
10278	.section	.text.FtlVendorPartWrite,"ax",%progbits
10279	.align	1
10280	.global	FtlVendorPartWrite
10281	.syntax unified
10282	.thumb
10283	.thumb_func
10284	.fpu softvfp
10285	.type	FtlVendorPartWrite, %function
10286FtlVendorPartWrite:
10287	@ args = 0, pretend = 0, frame = 104
10288	@ frame_needed = 0, uses_anonymous_args = 0
10289	ldr	r3, .L1412
10290	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10291	sub	sp, sp, #104
10292	str	r2, [sp]
10293	adds	r2, r0, r1
10294	mov	r7, r0
10295	mov	r5, r1
10296	ldrh	r3, [r3]
10297	cmp	r2, r3
10298	bhi	.L1408
10299	ldr	r3, .L1412+4
10300	mov	r8, #0
10301	ldrh	r6, [r3]
10302	lsr	r6, r0, r6
10303	lsl	fp, r6, #2
10304.L1402:
10305	cbnz	r5, .L1407
10306.L1400:
10307	mov	r0, r8
10308	add	sp, sp, #104
10309	@ sp needed
10310	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10311.L1407:
10312	ldr	r3, .L1412+8
10313	mov	r0, r7
10314	ldr	r10, .L1412+24
10315	ldr	r3, [r3]
10316	ldr	r2, [r3, fp]
10317	ldr	r3, .L1412+12
10318	str	r2, [sp, #12]
10319	ldrh	r3, [r3]
10320	mov	r1, r3
10321	str	r3, [sp, #8]
10322	bl	__aeabi_uidivmod
10323	ldr	r3, [sp, #8]
10324	ldr	r2, [sp, #12]
10325	str	r1, [sp, #4]
10326	subs	r4, r3, r1
10327	uxth	r4, r4
10328	cmp	r5, r4
10329	it	cc
10330	uxthcc	r4, r5
10331	cbz	r2, .L1404
10332	cmp	r4, r3
10333	beq	.L1404
10334	ldr	r3, [r10]
10335	add	r0, sp, #20
10336	str	r2, [sp, #24]
10337	movs	r2, #1
10338	mov	r1, r2
10339	str	r3, [sp, #28]
10340	add	r3, sp, #40
10341	str	r3, [sp, #32]
10342	bl	FlashReadPages
10343.L1405:
10344	lsls	r3, r4, #9
10345	ldr	r0, [r10]
10346	subs	r5, r5, r4
10347	mov	r2, r3
10348	str	r3, [sp, #8]
10349	ldm	sp, {r1, r3}
10350	add	r7, r7, r4
10351	add	fp, fp, #4
10352	add	r0, r0, r3, lsl #9
10353	bl	ftl_memcpy
10354	ldr	r2, [r10]
10355	mov	r1, r6
10356	ldr	r0, .L1412+16
10357	adds	r6, r6, #1
10358	bl	FtlMapWritePage
10359	ldr	r3, [sp]
10360	adds	r0, r0, #1
10361	it	eq
10362	moveq	r8, #-1
10363	mov	r2, r3
10364	ldr	r3, [sp, #8]
10365	add	r2, r2, r3
10366	str	r2, [sp]
10367	b	.L1402
10368.L1404:
10369	ldr	r3, .L1412+20
10370	movs	r1, #0
10371	ldr	r0, [r10]
10372	ldrh	r2, [r3]
10373	bl	ftl_memset
10374	b	.L1405
10375.L1408:
10376	mov	r8, #-1
10377	b	.L1400
10378.L1413:
10379	.align	2
10380.L1412:
10381	.word	.LANCHOR16
10382	.word	.LANCHOR22
10383	.word	.LANCHOR133
10384	.word	.LANCHOR12
10385	.word	.LANCHOR158
10386	.word	.LANCHOR23
10387	.word	.LANCHOR117
10388	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
10389	.section	.text.Ftl_save_ext_data,"ax",%progbits
10390	.align	1
10391	.global	Ftl_save_ext_data
10392	.syntax unified
10393	.thumb
10394	.thumb_func
10395	.fpu softvfp
10396	.type	Ftl_save_ext_data, %function
10397Ftl_save_ext_data:
10398	@ args = 0, pretend = 0, frame = 0
10399	@ frame_needed = 0, uses_anonymous_args = 0
10400	@ link register save eliminated.
10401	ldr	r2, .L1416
10402	ldr	r3, .L1416+4
10403	ldr	r1, [r2]
10404	cmp	r1, r3
10405	bne	.L1414
10406	ldr	r3, .L1416+8
10407	movs	r1, #1
10408	movs	r0, #0
10409	str	r3, [r2, #4]
10410	ldr	r3, .L1416+12
10411	ldr	r3, [r3]
10412	str	r3, [r2, #88]
10413	ldr	r3, .L1416+16
10414	ldr	r3, [r3]
10415	str	r3, [r2, #92]
10416	ldr	r3, .L1416+20
10417	ldr	r3, [r3]
10418	str	r3, [r2, #8]
10419	ldr	r3, .L1416+24
10420	ldr	r3, [r3]
10421	str	r3, [r2, #12]
10422	ldr	r3, .L1416+28
10423	ldr	r3, [r3]
10424	str	r3, [r2, #16]
10425	ldr	r3, .L1416+32
10426	ldr	r3, [r3]
10427	str	r3, [r2, #20]
10428	ldr	r3, .L1416+36
10429	ldr	r3, [r3]
10430	str	r3, [r2, #28]
10431	ldr	r3, .L1416+40
10432	ldr	r3, [r3]
10433	str	r3, [r2, #32]
10434	ldr	r3, .L1416+44
10435	ldr	r3, [r3]
10436	str	r3, [r2, #36]
10437	ldr	r3, .L1416+48
10438	ldr	r3, [r3]
10439	str	r3, [r2, #40]
10440	ldr	r3, .L1416+52
10441	ldr	r3, [r3]
10442	str	r3, [r2, #44]
10443	ldr	r3, .L1416+56
10444	ldr	r3, [r3]
10445	str	r3, [r2, #48]
10446	b	FtlVendorPartWrite
10447.L1414:
10448	bx	lr
10449.L1417:
10450	.align	2
10451.L1416:
10452	.word	.LANCHOR81
10453	.word	1179929683
10454	.word	1342177352
10455	.word	.LANCHOR68
10456	.word	.LANCHOR69
10457	.word	.LANCHOR67
10458	.word	.LANCHOR64
10459	.word	.LANCHOR62
10460	.word	.LANCHOR66
10461	.word	.LANCHOR73
10462	.word	.LANCHOR75
10463	.word	.LANCHOR63
10464	.word	.LANCHOR65
10465	.word	.LANCHOR76
10466	.word	.LANCHOR77
10467	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
10468	.section	.text.FtlEctTblFlush,"ax",%progbits
10469	.align	1
10470	.global	FtlEctTblFlush
10471	.syntax unified
10472	.thumb
10473	.thumb_func
10474	.fpu softvfp
10475	.type	FtlEctTblFlush, %function
10476FtlEctTblFlush:
10477	@ args = 0, pretend = 0, frame = 0
10478	@ frame_needed = 0, uses_anonymous_args = 0
10479	ldr	r2, .L1423
10480	push	{r3, lr}
10481	ldrh	r3, [r2]
10482	cmp	r3, #31
10483	itett	ls
10484	addls	r3, r3, #1
10485	movhi	r3, #32
10486	strhls	r3, [r2]	@ movhi
10487	movls	r3, #1
10488	ldr	r2, .L1423+4
10489	cbnz	r0, .L1420
10490	ldr	r1, [r2]
10491	ldr	r0, [r1, #20]
10492	ldr	r1, [r1, #16]
10493	add	r3, r3, r0
10494	cmp	r1, r3
10495	bcc	.L1421
10496.L1420:
10497	ldr	r2, [r2]
10498	movs	r0, #64
10499	ldr	r3, [r2, #16]
10500	str	r3, [r2, #20]
10501	ldr	r3, .L1423+8
10502	str	r3, [r2]
10503	ldr	r3, .L1423+12
10504	ldrh	r1, [r3]
10505	lsls	r3, r1, #9
10506	str	r3, [r2, #12]
10507	ldr	r3, [r2, #8]
10508	adds	r3, r3, #1
10509	str	r3, [r2, #8]
10510	movs	r3, #0
10511	str	r3, [r2, #4]
10512	bl	FtlVendorPartWrite
10513	bl	Ftl_save_ext_data
10514.L1421:
10515	movs	r0, #0
10516	pop	{r3, pc}
10517.L1424:
10518	.align	2
10519.L1423:
10520	.word	.LANCHOR170
10521	.word	.LANCHOR127
10522	.word	1112818501
10523	.word	.LANCHOR125
10524	.size	FtlEctTblFlush, .-FtlEctTblFlush
10525	.section	.text.sftl_vendor_write,"ax",%progbits
10526	.align	1
10527	.global	sftl_vendor_write
10528	.syntax unified
10529	.thumb
10530	.thumb_func
10531	.fpu softvfp
10532	.type	sftl_vendor_write, %function
10533sftl_vendor_write:
10534	@ args = 0, pretend = 0, frame = 0
10535	@ frame_needed = 0, uses_anonymous_args = 0
10536	@ link register save eliminated.
10537	add	r0, r0, #256
10538	b	FtlVendorPartWrite
10539	.size	sftl_vendor_write, .-sftl_vendor_write
10540	.section	.text.FtlVendorPartRead,"ax",%progbits
10541	.align	1
10542	.global	FtlVendorPartRead
10543	.syntax unified
10544	.thumb
10545	.thumb_func
10546	.fpu softvfp
10547	.type	FtlVendorPartRead, %function
10548FtlVendorPartRead:
10549	@ args = 0, pretend = 0, frame = 104
10550	@ frame_needed = 0, uses_anonymous_args = 0
10551	ldr	r3, .L1436
10552	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10553	mov	r10, r2
10554	adds	r2, r0, r1
10555	sub	sp, sp, #104
10556	mov	r7, r0
10557	mov	r6, r1
10558	ldrh	r3, [r3]
10559	cmp	r2, r3
10560	bhi	.L1435
10561	ldr	r3, .L1436+4
10562	mov	r8, #0
10563	ldr	fp, .L1436+28
10564	ldrh	r5, [r3]
10565	lsr	r5, r0, r5
10566	lsls	r3, r5, #2
10567	str	r3, [sp]
10568.L1428:
10569	cbnz	r6, .L1434
10570.L1426:
10571	mov	r0, r8
10572	add	sp, sp, #104
10573	@ sp needed
10574	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10575.L1434:
10576	ldr	r3, .L1436+8
10577	mov	r0, r7
10578	ldr	r2, [sp]
10579	ldr	r3, [r3]
10580	ldr	r3, [r3, r2]
10581	ldr	r2, .L1436+12
10582	str	r3, [sp, #8]
10583	ldrh	r4, [r2]
10584	mov	r1, r4
10585	bl	__aeabi_uidivmod
10586	subs	r4, r4, r1
10587	ldr	r3, [sp, #8]
10588	uxth	r4, r4
10589	str	r1, [sp, #4]
10590	cmp	r6, r4
10591	it	cc
10592	uxthcc	r4, r6
10593	lsls	r2, r4, #9
10594	str	r2, [sp, #8]
10595	cmp	r3, #0
10596	beq	.L1430
10597	ldr	r2, [fp]
10598	add	r0, sp, #20
10599	str	r3, [sp, #24]
10600	str	r3, [sp, #12]
10601	str	r2, [sp, #28]
10602	add	r2, sp, #40
10603	str	r2, [sp, #32]
10604	movs	r2, #1
10605	mov	r1, r2
10606	bl	FlashReadPages
10607	ldr	r2, [sp, #20]
10608	ldr	r3, [sp, #12]
10609	adds	r2, r2, #1
10610	ldr	r2, .L1436+16
10611	it	eq
10612	moveq	r8, #-1
10613	ldr	r2, [r2]
10614	cmp	r2, #256
10615	bne	.L1432
10616	mov	r2, r3
10617	mov	r1, r5
10618	ldr	r0, .L1436+20
10619	bl	printf
10620	ldr	r2, [fp]
10621	mov	r1, r5
10622	ldr	r0, .L1436+24
10623	bl	FtlMapWritePage
10624.L1432:
10625	ldr	r1, [fp]
10626	lsls	r2, r4, #9
10627	ldr	r3, [sp, #4]
10628	mov	r0, r10
10629	add	r1, r1, r3, lsl #9
10630	bl	ftl_memcpy
10631.L1433:
10632	ldr	r3, [sp, #8]
10633	adds	r5, r5, #1
10634	subs	r6, r6, r4
10635	add	r7, r7, r4
10636	add	r10, r10, r3
10637	ldr	r3, [sp]
10638	adds	r3, r3, #4
10639	str	r3, [sp]
10640	b	.L1428
10641.L1430:
10642	lsls	r2, r4, #9
10643	mov	r1, r3
10644	mov	r0, r10
10645	bl	ftl_memset
10646	b	.L1433
10647.L1435:
10648	mov	r8, #-1
10649	b	.L1426
10650.L1437:
10651	.align	2
10652.L1436:
10653	.word	.LANCHOR16
10654	.word	.LANCHOR22
10655	.word	.LANCHOR133
10656	.word	.LANCHOR12
10657	.word	.LANCHOR148
10658	.word	.LC107
10659	.word	.LANCHOR158
10660	.word	.LANCHOR117
10661	.size	FtlVendorPartRead, .-FtlVendorPartRead
10662	.section	.text.FtlLoadEctTbl,"ax",%progbits
10663	.align	1
10664	.global	FtlLoadEctTbl
10665	.syntax unified
10666	.thumb
10667	.thumb_func
10668	.fpu softvfp
10669	.type	FtlLoadEctTbl, %function
10670FtlLoadEctTbl:
10671	@ args = 0, pretend = 0, frame = 0
10672	@ frame_needed = 0, uses_anonymous_args = 0
10673	push	{r3, r4, r5, lr}
10674	movs	r0, #64
10675	ldr	r4, .L1440
10676	ldr	r5, .L1440+4
10677	ldr	r2, [r4]
10678	ldrh	r1, [r5]
10679	bl	FtlVendorPartRead
10680	ldr	r3, [r4]
10681	ldr	r2, [r3]
10682	ldr	r3, .L1440+8
10683	cmp	r2, r3
10684	beq	.L1439
10685	ldr	r1, .L1440+12
10686	ldr	r0, .L1440+16
10687	bl	printf
10688	ldrh	r2, [r5]
10689	movs	r1, #0
10690	ldr	r0, [r4]
10691	lsls	r2, r2, #9
10692	bl	ftl_memset
10693.L1439:
10694	movs	r0, #0
10695	pop	{r3, r4, r5, pc}
10696.L1441:
10697	.align	2
10698.L1440:
10699	.word	.LANCHOR127
10700	.word	.LANCHOR125
10701	.word	1112818501
10702	.word	.LC108
10703	.word	.LC71
10704	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
10705	.section	.text.Ftl_load_ext_data,"ax",%progbits
10706	.align	1
10707	.global	Ftl_load_ext_data
10708	.syntax unified
10709	.thumb
10710	.thumb_func
10711	.fpu softvfp
10712	.type	Ftl_load_ext_data, %function
10713Ftl_load_ext_data:
10714	@ args = 0, pretend = 0, frame = 0
10715	@ frame_needed = 0, uses_anonymous_args = 0
10716	push	{r3, r4, r5, lr}
10717	movs	r1, #1
10718	ldr	r4, .L1445
10719	movs	r0, #0
10720	ldr	r5, .L1445+4
10721	mov	r2, r4
10722	bl	FtlVendorPartRead
10723	ldr	r3, [r4]
10724	cmp	r3, r5
10725	beq	.L1443
10726	mov	r2, #512
10727	movs	r1, #0
10728	mov	r0, r4
10729	bl	ftl_memset
10730	str	r5, [r4]
10731.L1443:
10732	ldr	r3, [r4]
10733	cmp	r3, r5
10734	ldr	r3, .L1445+8
10735	bne	.L1444
10736	ldr	r1, [r4, #88]
10737	ldr	r2, .L1445+12
10738	str	r1, [r2]
10739	ldr	r1, [r4, #92]
10740	ldr	r2, .L1445+16
10741	str	r1, [r2]
10742	ldr	r1, [r4, #8]
10743	ldr	r2, .L1445+20
10744	str	r1, [r2]
10745	ldr	r1, [r4, #12]
10746	ldr	r2, .L1445+24
10747	str	r1, [r2]
10748	ldr	r1, [r4, #16]
10749	ldr	r2, .L1445+28
10750	str	r1, [r2]
10751	ldr	r1, [r4, #20]
10752	ldr	r2, .L1445+32
10753	str	r1, [r2]
10754	ldr	r2, [r4, #28]
10755	ldr	r1, [r4, #32]
10756	str	r2, [r3]
10757	ldr	r2, .L1445+36
10758	str	r1, [r2]
10759	ldr	r1, [r4, #36]
10760	ldr	r2, .L1445+40
10761	str	r1, [r2]
10762	ldr	r1, [r4, #40]
10763	ldr	r2, .L1445+44
10764	str	r1, [r2]
10765	ldr	r1, [r4, #44]
10766	ldr	r2, .L1445+48
10767	str	r1, [r2]
10768	ldr	r1, [r4, #48]
10769	ldr	r2, .L1445+52
10770	str	r1, [r2]
10771.L1444:
10772	ldr	r1, .L1445+56
10773	ldr	r2, .L1445+60
10774	ldr	r3, [r3]
10775	ldr	r0, [r1]
10776	ldrh	r2, [r2]
10777	ldr	r1, .L1445+64
10778	mla	r0, r0, r2, r3
10779	ldrh	r1, [r1]
10780	bl	__aeabi_uidiv
10781	ldr	r3, .L1445+68
10782	str	r0, [r3]
10783	pop	{r3, r4, r5, pc}
10784.L1446:
10785	.align	2
10786.L1445:
10787	.word	.LANCHOR81
10788	.word	1179929683
10789	.word	.LANCHOR73
10790	.word	.LANCHOR68
10791	.word	.LANCHOR69
10792	.word	.LANCHOR67
10793	.word	.LANCHOR64
10794	.word	.LANCHOR62
10795	.word	.LANCHOR66
10796	.word	.LANCHOR75
10797	.word	.LANCHOR63
10798	.word	.LANCHOR65
10799	.word	.LANCHOR76
10800	.word	.LANCHOR77
10801	.word	.LANCHOR72
10802	.word	.LANCHOR14
10803	.word	.LANCHOR5
10804	.word	.LANCHOR74
10805	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
10806	.section	.text.sftl_vendor_read,"ax",%progbits
10807	.align	1
10808	.global	sftl_vendor_read
10809	.syntax unified
10810	.thumb
10811	.thumb_func
10812	.fpu softvfp
10813	.type	sftl_vendor_read, %function
10814sftl_vendor_read:
10815	@ args = 0, pretend = 0, frame = 0
10816	@ frame_needed = 0, uses_anonymous_args = 0
10817	@ link register save eliminated.
10818	add	r0, r0, #256
10819	b	FtlVendorPartRead
10820	.size	sftl_vendor_read, .-sftl_vendor_read
10821	.section	.text.FtlVpcTblFlush,"ax",%progbits
10822	.align	1
10823	.global	FtlVpcTblFlush
10824	.syntax unified
10825	.thumb
10826	.thumb_func
10827	.fpu softvfp
10828	.type	FtlVpcTblFlush, %function
10829FtlVpcTblFlush:
10830	@ args = 0, pretend = 0, frame = 8
10831	@ frame_needed = 0, uses_anonymous_args = 0
10832	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
10833	mov	fp, #0
10834	ldr	r3, .L1463
10835	ldr	r4, .L1463+4
10836	ldr	r10, .L1463+76
10837	ldr	r0, [r3]
10838	ldr	r5, .L1463+8
10839	ldr	r7, [r10]
10840	ldrh	r2, [r4]
10841	str	r0, [r5, #8]
10842	str	r7, [r5, #12]
10843	strh	r2, [r7, #2]	@ movhi
10844	movw	r2, #61604
10845	strh	r2, [r7]	@ movhi
10846	ldr	r2, [r4, #8]
10847	ldr	r6, .L1463+12
10848	ldr	ip, .L1463+80
10849	str	r2, [r7, #4]
10850	ldr	r2, .L1463+16
10851	str	fp, [r7, #8]
10852	str	fp, [r7, #12]
10853	stm	r6, {r2, ip}
10854	ldrh	r2, [r4, #6]
10855	str	r3, [sp, #4]
10856	ldr	r8, .L1463+84
10857	strh	r2, [r6, #8]	@ movhi
10858	ldr	r2, .L1463+20
10859	ldrh	r2, [r2]
10860	strb	r2, [r6, #10]
10861	ldr	r2, .L1463+24
10862	ldrh	r1, [r2]
10863	ldrh	ip, [r2, #2]
10864	strh	r1, [r6, #14]	@ movhi
10865	ldrb	r1, [r2, #6]	@ zero_extendqisi2
10866	ldrb	r2, [r2, #8]	@ zero_extendqisi2
10867	strb	r2, [r6, #11]
10868	orr	r1, r1, ip, lsl #6
10869	ldr	r2, .L1463+28
10870	strh	r1, [r6, #16]	@ movhi
10871	ldrh	r1, [r2]
10872	ldrh	ip, [r2, #2]
10873	strh	r1, [r6, #18]	@ movhi
10874	ldrb	r1, [r2, #6]	@ zero_extendqisi2
10875	ldrb	r2, [r2, #8]	@ zero_extendqisi2
10876	orr	r1, r1, ip, lsl #6
10877	strh	r1, [r6, #20]	@ movhi
10878	strb	r2, [r6, #12]
10879	ldr	r2, .L1463+32
10880	ldrh	r1, [r2]
10881	ldrh	ip, [r2, #2]
10882	strh	r1, [r6, #22]	@ movhi
10883	ldrb	r1, [r2, #6]	@ zero_extendqisi2
10884	ldrb	r2, [r2, #8]	@ zero_extendqisi2
10885	strb	r2, [r6, #13]
10886	orr	r1, r1, ip, lsl #6
10887	ldr	r2, .L1463+36
10888	strh	r1, [r6, #24]	@ movhi
10889	movs	r1, #255
10890	ldr	r2, [r2]
10891	str	r2, [r6, #32]
10892	ldr	r2, [r8]
10893	str	r2, [r6, #40]
10894	ldr	r2, .L1463+40
10895	ldr	r2, [r2]
10896	str	r2, [r6, #36]
10897	ldr	r2, .L1463+44
10898	ldrh	r2, [r2]
10899	bl	ftl_memset
10900	mov	r1, r6
10901	ldr	r6, .L1463+48
10902	movs	r2, #48
10903	ldr	r0, [r5, #8]
10904	bl	ftl_memcpy
10905	ldrh	r2, [r6]
10906	ldr	r0, [r5, #8]
10907	ldr	r1, .L1463+52
10908	lsls	r2, r2, #1
10909	adds	r0, r0, #48
10910	ldr	r1, [r1]
10911	bl	ftl_memcpy
10912	ldrh	r0, [r6]
10913	ldr	r1, .L1463+56
10914	ldr	r6, [r5, #8]
10915	lsrs	r2, r0, #3
10916	adds	r0, r0, #24
10917	lsls	r0, r0, #1
10918	ldr	r1, [r1]
10919	adds	r2, r2, #4
10920	bic	r0, r0, #3
10921	add	r0, r0, r6
10922	mov	r6, fp
10923	bl	ftl_memcpy
10924	mov	r0, fp
10925	movw	fp, #65535
10926	bl	FtlUpdateVaildLpn
10927.L1449:
10928	ldr	r3, [sp, #4]
10929	ldrh	r1, [r4, #2]
10930	ldrh	r2, [r4]
10931	ldr	r3, [r3]
10932	str	r3, [r5, #8]
10933	ldr	r3, [r10]
10934	str	r3, [r5, #12]
10935	orr	r3, r1, r2, lsl #10
10936	str	r3, [r5, #4]
10937	ldr	r3, .L1463+60
10938	ldrh	r3, [r3]
10939	subs	r3, r3, #1
10940	cmp	r1, r3
10941	blt	.L1450
10942	movs	r3, #0
10943	ldrh	fp, [r4, #4]
10944	strh	r3, [r4, #2]	@ movhi
10945	strh	r2, [r4, #4]	@ movhi
10946	bl	FtlFreeSysBlkQueueOut
10947	ldr	r3, [r8]
10948	strh	r0, [r4]	@ movhi
10949	adds	r2, r3, #1
10950	str	r3, [r4, #8]
10951	str	r2, [r8]
10952	lsls	r2, r0, #10
10953	str	r2, [r5, #4]
10954	str	r3, [r7, #4]
10955	strh	r0, [r7, #2]	@ movhi
10956.L1450:
10957	movs	r3, #1
10958	ldr	r0, .L1463+8
10959	mov	r2, r3
10960	mov	r1, r3
10961	bl	FlashProgPages
10962	ldrh	r3, [r4, #2]
10963	ldr	r2, [r5]
10964	adds	r3, r3, #1
10965	uxth	r3, r3
10966	adds	r1, r2, #1
10967	strh	r3, [r4, #2]	@ movhi
10968	bne	.L1451
10969	cmp	r3, #1
10970	bne	.L1452
10971	movw	r2, #1135
10972	ldr	r1, .L1463+64
10973	ldr	r0, .L1463+68
10974	bl	printf
10975.L1452:
10976	ldrh	r3, [r4, #2]
10977	adds	r6, r6, #1
10978	uxth	r6, r6
10979	cmp	r3, #1
10980	itttt	eq
10981	ldreq	r3, .L1463+60
10982	ldrheq	r3, [r3]
10983	addeq	r3, r3, #-1
10984	strheq	r3, [r4, #2]	@ movhi
10985	cmp	r6, #3
10986	bls	.L1449
10987	mov	r2, r6
10988	ldr	r1, [r5, #4]
10989	ldr	r0, .L1463+72
10990	bl	printf
10991.L1455:
10992	b	.L1455
10993.L1451:
10994	cmp	r3, #1
10995	beq	.L1449
10996	cmp	r2, #256
10997	beq	.L1449
10998	movw	r3, #65535
10999	cmp	fp, r3
11000	beq	.L1456
11001	movs	r1, #1
11002	mov	r0, fp
11003	bl	FtlFreeSysBlkQueueIn
11004.L1456:
11005	movs	r0, #0
11006	add	sp, sp, #8
11007	@ sp needed
11008	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11009.L1464:
11010	.align	2
11011.L1463:
11012	.word	.LANCHOR115
11013	.word	.LANCHOR79
11014	.word	.LANCHOR148
11015	.word	.LANCHOR39
11016	.word	1179929683
11017	.word	.LANCHOR10
11018	.word	.LANCHOR51
11019	.word	.LANCHOR52
11020	.word	.LANCHOR53
11021	.word	.LANCHOR72
11022	.word	.LANCHOR71
11023	.word	.LANCHOR23
11024	.word	.LANCHOR5
11025	.word	.LANCHOR42
11026	.word	.LANCHOR1
11027	.word	.LANCHOR20
11028	.word	.LANCHOR171
11029	.word	.LC1
11030	.word	.LC109
11031	.word	.LANCHOR123
11032	.word	1342177352
11033	.word	.LANCHOR70
11034	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
11035	.section	.text.FtlSysFlush,"ax",%progbits
11036	.align	1
11037	.global	FtlSysFlush
11038	.syntax unified
11039	.thumb
11040	.thumb_func
11041	.fpu softvfp
11042	.type	FtlSysFlush, %function
11043FtlSysFlush:
11044	@ args = 0, pretend = 0, frame = 0
11045	@ frame_needed = 0, uses_anonymous_args = 0
11046	push	{r3, lr}
11047	bl	l2p_flush
11048	movs	r0, #1
11049	bl	FtlEctTblFlush
11050	bl	FtlVpcTblFlush
11051	movs	r0, #0
11052	pop	{r3, pc}
11053	.size	FtlSysFlush, .-FtlSysFlush
11054	.section	.text.sftl_deinit,"ax",%progbits
11055	.align	1
11056	.global	sftl_deinit
11057	.syntax unified
11058	.thumb
11059	.thumb_func
11060	.fpu softvfp
11061	.type	sftl_deinit, %function
11062sftl_deinit:
11063	@ args = 0, pretend = 0, frame = 0
11064	@ frame_needed = 0, uses_anonymous_args = 0
11065	push	{r3, lr}
11066	ldr	r3, .L1468
11067	ldr	r3, [r3]
11068	cmp	r3, #1
11069	bne	.L1467
11070	bl	FtlSysFlush
11071.L1467:
11072	movs	r0, #0
11073	pop	{r3, pc}
11074.L1469:
11075	.align	2
11076.L1468:
11077	.word	.LANCHOR86
11078	.size	sftl_deinit, .-sftl_deinit
11079	.section	.text.sftl_discard,"ax",%progbits
11080	.align	1
11081	.global	sftl_discard
11082	.syntax unified
11083	.thumb
11084	.thumb_func
11085	.fpu softvfp
11086	.type	sftl_discard, %function
11087sftl_discard:
11088	@ args = 0, pretend = 0, frame = 8
11089	@ frame_needed = 0, uses_anonymous_args = 0
11090	ldr	r3, .L1485
11091	adds	r2, r0, r1
11092	push	{r0, r1, r4, r5, r6, r7, r8, lr}
11093	mov	r7, r0
11094	mov	r5, r1
11095	ldr	r3, [r3]
11096	cmp	r2, r3
11097	bhi	.L1478
11098	cmp	r1, #31
11099	bhi	.L1472
11100.L1477:
11101	movs	r0, #0
11102.L1470:
11103	add	sp, sp, #8
11104	@ sp needed
11105	pop	{r4, r5, r6, r7, r8, pc}
11106.L1472:
11107	ldr	r8, .L1485+12
11108	ldrh	r4, [r8]
11109	mov	r1, r4
11110	bl	__aeabi_uidiv
11111	smulbb	r3, r0, r4
11112	mov	r6, r0
11113	subs	r7, r7, r3
11114	uxth	r7, r7
11115	cbz	r7, .L1473
11116	subs	r4, r4, r7
11117	adds	r6, r6, #1
11118	cmp	r4, r5
11119	it	cs
11120	movcs	r4, r5
11121	uxth	r4, r4
11122	subs	r5, r5, r4
11123.L1473:
11124	ldr	r4, .L1485+4
11125	mov	r3, #-1
11126	ldr	r7, .L1485+8
11127	str	r3, [sp, #4]
11128.L1474:
11129	ldrh	r3, [r8]
11130	cmp	r5, r3
11131	bcs	.L1476
11132	ldr	r3, .L1485+4
11133	ldr	r2, [r3]
11134	cmp	r2, #32
11135	bls	.L1477
11136	movs	r4, #0
11137	str	r4, [r3]
11138	bl	l2p_flush
11139	bl	FtlVpcTblFlush
11140	b	.L1477
11141.L1476:
11142	movs	r2, #0
11143	mov	r1, sp
11144	mov	r0, r6
11145	bl	log2phys
11146	ldr	r3, [sp]
11147	adds	r3, r3, #1
11148	beq	.L1475
11149	ldr	r3, [r4]
11150	movs	r2, #1
11151	add	r1, sp, #4
11152	mov	r0, r6
11153	adds	r3, r3, #1
11154	str	r3, [r4]
11155	ldr	r3, [r7]
11156	adds	r3, r3, #1
11157	str	r3, [r7]
11158	bl	log2phys
11159	ldr	r0, [sp]
11160	ubfx	r0, r0, #10, #16
11161	bl	P2V_block_in_plane
11162	bl	decrement_vpc_count
11163.L1475:
11164	ldrh	r3, [r8]
11165	adds	r6, r6, #1
11166	subs	r5, r5, r3
11167	b	.L1474
11168.L1478:
11169	mov	r0, #-1
11170	b	.L1470
11171.L1486:
11172	.align	2
11173.L1485:
11174	.word	.LANCHOR34
11175	.word	.LANCHOR172
11176	.word	.LANCHOR63
11177	.word	.LANCHOR12
11178	.size	sftl_discard, .-sftl_discard
11179	.section	.text.FtlVpcCheckAndModify,"ax",%progbits
11180	.align	1
11181	.global	FtlVpcCheckAndModify
11182	.syntax unified
11183	.thumb
11184	.thumb_func
11185	.fpu softvfp
11186	.type	FtlVpcCheckAndModify, %function
11187FtlVpcCheckAndModify:
11188	@ args = 0, pretend = 0, frame = 8
11189	@ frame_needed = 0, uses_anonymous_args = 0
11190	push	{r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
11191	movs	r4, #0
11192	ldr	r1, .L1500
11193	ldr	r0, .L1500+4
11194	bl	printf
11195	ldr	r3, .L1500+8
11196	movs	r1, #0
11197	ldr	r5, .L1500+12
11198	ldr	r6, .L1500+16
11199	ldrh	r2, [r3]
11200	ldr	r0, [r5]
11201	lsls	r2, r2, #1
11202	bl	ftl_memset
11203.L1488:
11204	ldr	r3, [r6]
11205	cmp	r4, r3
11206	bcc	.L1490
11207	ldr	r10, .L1500+36
11208	movs	r7, #0
11209	ldr	r8, .L1500+40
11210.L1491:
11211	ldrh	r3, [r10]
11212	uxth	r6, r7
11213	cmp	r3, r6
11214	bhi	.L1496
11215	bl	l2p_flush
11216	bl	FtlVpcTblFlush
11217	add	sp, sp, #12
11218	@ sp needed
11219	pop	{r4, r5, r6, r7, r8, r10, pc}
11220.L1490:
11221	movs	r2, #0
11222	add	r1, sp, #4
11223	mov	r0, r4
11224	bl	log2phys
11225	ldr	r0, [sp, #4]
11226	adds	r3, r0, #1
11227	beq	.L1489
11228	ubfx	r0, r0, #10, #16
11229	bl	P2V_block_in_plane
11230	ldr	r2, [r5]
11231	ldrh	r3, [r2, r0, lsl #1]
11232	adds	r3, r3, #1
11233	strh	r3, [r2, r0, lsl #1]	@ movhi
11234.L1489:
11235	adds	r4, r4, #1
11236	b	.L1488
11237.L1496:
11238	ldr	r3, [r8]
11239	uxth	r4, r7
11240	ldrh	r2, [r3, r4, lsl #1]
11241	ldr	r3, [r5]
11242	ldrh	r3, [r3, r4, lsl #1]
11243	cmp	r2, r3
11244	beq	.L1493
11245	movw	r1, #65535
11246	cmp	r2, r1
11247	beq	.L1493
11248	mov	r1, r4
11249	ldr	r0, .L1500+20
11250	bl	printf
11251	ldr	r3, .L1500+24
11252	ldrh	r3, [r3]
11253	cmp	r3, r6
11254	beq	.L1493
11255	ldr	r3, .L1500+28
11256	ldrh	r3, [r3]
11257	cmp	r3, r6
11258	beq	.L1493
11259	ldr	r3, .L1500+32
11260	ldrh	r3, [r3]
11261	cmp	r3, r6
11262	beq	.L1493
11263	ldr	r3, [r8]
11264	ldrh	r2, [r3, r4, lsl #1]
11265	cbnz	r2, .L1495
11266	ldr	r2, [r5]
11267	ldrh	r2, [r2, r4, lsl #1]
11268	strh	r2, [r3, r4, lsl #1]	@ movhi
11269.L1493:
11270	adds	r7, r7, #1
11271	b	.L1491
11272.L1495:
11273	ldr	r2, [r5]
11274	mov	r0, r6
11275	ldrh	r2, [r2, r4, lsl #1]
11276	strh	r2, [r3, r4, lsl #1]	@ movhi
11277	bl	update_vpc_list
11278	b	.L1493
11279.L1501:
11280	.align	2
11281.L1500:
11282	.word	.LANCHOR173
11283	.word	.LC94
11284	.word	.LANCHOR6
11285	.word	.LANCHOR128
11286	.word	.LANCHOR61
11287	.word	.LC110
11288	.word	.LANCHOR51
11289	.word	.LANCHOR53
11290	.word	.LANCHOR52
11291	.word	.LANCHOR5
11292	.word	.LANCHOR42
11293	.size	FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
11294	.section	.text.allocate_new_data_superblock,"ax",%progbits
11295	.align	1
11296	.global	allocate_new_data_superblock
11297	.syntax unified
11298	.thumb
11299	.thumb_func
11300	.fpu softvfp
11301	.type	allocate_new_data_superblock, %function
11302allocate_new_data_superblock:
11303	@ args = 0, pretend = 0, frame = 0
11304	@ frame_needed = 0, uses_anonymous_args = 0
11305	ldr	r3, .L1512
11306	push	{r4, r5, r6, lr}
11307	mov	r6, r0
11308	ldrh	r4, [r0]
11309	ldrh	r3, [r3]
11310	cmp	r3, r4
11311	bcs	.L1503
11312	movw	r2, #2714
11313	ldr	r1, .L1512+4
11314	ldr	r0, .L1512+8
11315	bl	printf
11316.L1503:
11317	movw	r3, #65535
11318	cmp	r4, r3
11319	beq	.L1504
11320	ldr	r3, .L1512+12
11321	mov	r0, r4
11322	ldr	r3, [r3]
11323	ldrh	r3, [r3, r4, lsl #1]
11324	cbz	r3, .L1505
11325	bl	INSERT_DATA_LIST
11326.L1504:
11327	ldr	r5, .L1512+16
11328	movw	r2, #65535
11329	movs	r3, #1
11330	strb	r3, [r6, #8]
11331	ldrh	r0, [r5]
11332	cmp	r0, r2
11333	beq	.L1506
11334	cmp	r4, r0
11335	bne	.L1507
11336	ldr	r3, .L1512+12
11337	ldr	r3, [r3]
11338	ldrh	r3, [r3, r0, lsl #1]
11339	cbz	r3, .L1508
11340.L1507:
11341	bl	update_vpc_list
11342.L1508:
11343	movw	r3, #65535
11344	strh	r3, [r5]	@ movhi
11345.L1506:
11346	mov	r0, r6
11347	bl	allocate_data_superblock
11348	bl	l2p_flush
11349	movs	r0, #0
11350	bl	FtlEctTblFlush
11351	bl	FtlVpcTblFlush
11352	movs	r0, #0
11353	pop	{r4, r5, r6, pc}
11354.L1505:
11355	bl	INSERT_FREE_LIST
11356	b	.L1504
11357.L1513:
11358	.align	2
11359.L1512:
11360	.word	.LANCHOR5
11361	.word	.LANCHOR174
11362	.word	.LC1
11363	.word	.LANCHOR42
11364	.word	.LANCHOR142
11365	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
11366	.section	.text.FtlProgPages,"ax",%progbits
11367	.align	1
11368	.global	FtlProgPages
11369	.syntax unified
11370	.thumb
11371	.thumb_func
11372	.fpu softvfp
11373	.type	FtlProgPages, %function
11374FtlProgPages:
11375	@ args = 0, pretend = 0, frame = 8
11376	@ frame_needed = 0, uses_anonymous_args = 0
11377	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
11378	movs	r6, #0
11379	ldr	r8, .L1528+24
11380	mov	r4, r3
11381	movs	r2, #0
11382	mov	r5, r0
11383	ldrb	r3, [r3, #9]	@ zero_extendqisi2
11384	mov	r10, r1
11385	bl	FlashProgPages
11386.L1515:
11387	cmp	r6, r10
11388	beq	.L1522
11389	ldr	r7, .L1528
11390	b	.L1523
11391.L1518:
11392	ldr	r0, [r5, #4]
11393	ubfx	r0, r0, #10, #16
11394	bl	P2V_block_in_plane
11395	ldrh	r3, [r4]
11396	cmp	r3, r0
11397	bne	.L1516
11398	ldr	r1, [r8]
11399	ldrh	r0, [r4, #4]
11400	ldrh	r2, [r1, r3, lsl #1]
11401	subs	r2, r2, r0
11402	strh	r2, [r1, r3, lsl #1]	@ movhi
11403	ldrh	r3, [r7]
11404	strh	r3, [r4, #2]	@ movhi
11405	movs	r3, #0
11406	strb	r3, [r4, #6]
11407	strh	r3, [r4, #4]	@ movhi
11408.L1516:
11409	ldrh	r3, [r4, #4]
11410	cbnz	r3, .L1517
11411	mov	r0, r4
11412	bl	allocate_new_data_superblock
11413.L1517:
11414	ldr	r2, .L1528+4
11415	ldr	r3, [r2, #96]
11416	adds	r3, r3, #1
11417	str	r3, [r2, #96]
11418	ldr	r0, [r5, #4]
11419	ubfx	r0, r0, #10, #16
11420	bl	FtlGcMarkBadPhyBlk
11421	mov	r0, r4
11422	bl	get_new_active_ppa
11423	movs	r2, #0
11424	str	r0, [r5, #4]
11425	str	r0, [sp, #4]
11426	movs	r1, #1
11427	ldrb	r3, [r4, #9]	@ zero_extendqisi2
11428	mov	r0, r5
11429	bl	FlashProgPages
11430.L1523:
11431	ldr	r3, [r5]
11432	adds	r3, r3, #1
11433	beq	.L1518
11434	ldr	r3, .L1528+8
11435	ldrb	r2, [r4, #6]	@ zero_extendqisi2
11436	ldrh	r3, [r3]
11437	cmp	r2, r3
11438	bcc	.L1519
11439	movw	r2, #957
11440	ldr	r1, .L1528+12
11441	ldr	r0, .L1528+16
11442	bl	printf
11443.L1519:
11444	ldr	r3, [r5, #4]
11445	add	r1, sp, #8
11446	movs	r2, #1
11447	ldr	r0, [r5, #16]
11448	str	r3, [r1, #-4]!
11449	bl	log2phys
11450	ldr	r3, [r5, #12]
11451	ldr	fp, [r3, #12]
11452	ubfx	r0, fp, #10, #16
11453	bl	P2V_block_in_plane
11454	cmp	fp, #-1
11455	mov	r7, r0
11456	beq	.L1520
11457	ldr	r3, [r8]
11458	ldrh	r2, [r3, r0, lsl #1]
11459	cbnz	r2, .L1521
11460	mov	r1, r0
11461	ldr	r0, .L1528+20
11462	bl	printf
11463.L1521:
11464	mov	r0, r7
11465	bl	decrement_vpc_count
11466.L1520:
11467	adds	r6, r6, #1
11468	adds	r5, r5, #20
11469	b	.L1515
11470.L1522:
11471	ldr	r3, .L1528+8
11472	ldrb	r2, [r4, #6]	@ zero_extendqisi2
11473	ldrh	r3, [r3]
11474	cmp	r2, r3
11475	bcc	.L1514
11476	mov	r2, #972
11477	ldr	r1, .L1528+12
11478	ldr	r0, .L1528+16
11479	bl	printf
11480.L1514:
11481	add	sp, sp, #8
11482	@ sp needed
11483	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11484.L1529:
11485	.align	2
11486.L1528:
11487	.word	.LANCHOR19
11488	.word	.LANCHOR81
11489	.word	.LANCHOR3
11490	.word	.LANCHOR175
11491	.word	.LC1
11492	.word	.LC111
11493	.word	.LANCHOR42
11494	.size	FtlProgPages, .-FtlProgPages
11495	.section	.text.FtlGcFreeTempBlock,"ax",%progbits
11496	.align	1
11497	.global	FtlGcFreeTempBlock
11498	.syntax unified
11499	.thumb
11500	.thumb_func
11501	.fpu softvfp
11502	.type	FtlGcFreeTempBlock, %function
11503FtlGcFreeTempBlock:
11504	@ args = 0, pretend = 0, frame = 16
11505	@ frame_needed = 0, uses_anonymous_args = 0
11506	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
11507	movw	r2, #65535
11508	ldr	r4, .L1556
11509	ldr	r6, .L1556+4
11510	ldrh	r5, [r4]
11511	ldrh	r1, [r6]
11512	cmp	r5, r2
11513	bne	.L1531
11514.L1541:
11515	ldr	r3, .L1556+8
11516	movs	r2, #0
11517	str	r2, [r3]
11518	movw	r3, #65535
11519	ldrh	r2, [r4]
11520	cmp	r2, r3
11521	bne	.L1554
11522.L1532:
11523	movs	r0, #0
11524.L1530:
11525	add	sp, sp, #16
11526	@ sp needed
11527	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11528.L1531:
11529	cbz	r0, .L1534
11530	ldr	r3, .L1556+12
11531	ldrh	r0, [r3]
11532	cmp	r0, r2
11533	beq	.L1535
11534.L1536:
11535	movs	r1, #2
11536.L1534:
11537	ldr	r0, .L1556
11538	bl	FtlGcScanTempBlk
11539	str	r0, [sp, #12]
11540	adds	r0, r0, #1
11541	beq	.L1537
11542	ldr	r3, .L1556+16
11543	ldr	r2, [r3]
11544	ldrh	r3, [r2, r5, lsl #1]
11545	cmp	r3, #4
11546	bls	.L1538
11547	subs	r3, r3, #5
11548	movs	r0, #1
11549	strh	r3, [r2, r5, lsl #1]	@ movhi
11550	bl	FtlEctTblFlush
11551.L1538:
11552	ldr	r4, .L1556+8
11553	ldr	r2, [r4]
11554	cbnz	r2, .L1539
11555	ldr	r2, .L1556+20
11556	ldr	r0, [sp, #12]
11557	ldr	r3, [r2, #96]
11558	ubfx	r0, r0, #10, #16
11559	adds	r3, r3, #1
11560	str	r3, [r2, #96]
11561	bl	FtlBbmMapBadBlock
11562	bl	FtlBbmTblFlush
11563.L1539:
11564	movs	r3, #0
11565	str	r3, [r4]
11566.L1550:
11567	movs	r0, #1
11568	b	.L1530
11569.L1535:
11570	movs	r2, #0
11571	strh	r2, [r3]	@ movhi
11572	ldr	r3, .L1556+24
11573	ldrh	r3, [r3]
11574	cmp	r3, #17
11575	bhi	.L1536
11576	b	.L1534
11577.L1537:
11578	ldr	r3, .L1556+12
11579	ldrh	r2, [r3]
11580	movw	r3, #65535
11581	cmp	r2, r3
11582	bne	.L1550
11583	b	.L1541
11584.L1554:
11585	ldrb	r1, [r4, #7]	@ zero_extendqisi2
11586	ldrh	r3, [r6]
11587	ldr	r5, .L1556+28
11588	muls	r3, r1, r3
11589	ldrh	r2, [r5]
11590	cmp	r2, r3
11591	beq	.L1542
11592	movs	r2, #162
11593	ldr	r1, .L1556+32
11594	ldr	r0, .L1556+36
11595	bl	printf
11596.L1542:
11597	ldrh	r6, [r6]
11598	ldrb	r3, [r4, #7]	@ zero_extendqisi2
11599	ldr	r2, .L1556+40
11600	ldrh	r0, [r4]
11601	ldr	fp, .L1556+68
11602	smulbb	r3, r3, r6
11603	ldr	r1, [r2]
11604	movs	r6, #0
11605	str	r2, [sp, #4]
11606	strh	r3, [r1, r0, lsl #1]	@ movhi
11607	ldr	r1, .L1556+44
11608	ldrh	r3, [r5]
11609	ldr	r0, [r1]
11610	add	r3, r3, r0
11611	str	r3, [r1]
11612.L1543:
11613	ldrh	r2, [r5]
11614	uxth	r3, r6
11615	cmp	r2, r3
11616	bhi	.L1547
11617	movw	r0, #65535
11618	bl	decrement_vpc_count
11619	ldr	r3, [sp, #4]
11620	ldrh	r0, [r4]
11621	ldr	r3, [r3]
11622	ldrh	r3, [r3, r0, lsl #1]
11623	cmp	r3, #0
11624	beq	.L1548
11625	bl	INSERT_DATA_LIST
11626.L1549:
11627	ldr	r3, .L1556+48
11628	movw	r6, #65535
11629	strh	r6, [r4]	@ movhi
11630	movs	r4, #0
11631	strh	r4, [r5]	@ movhi
11632	strh	r4, [r3]	@ movhi
11633	bl	l2p_flush
11634	bl	FtlVpcTblFlush
11635	ldr	r3, .L1556+52
11636	strh	r6, [r3]	@ movhi
11637	ldr	r3, .L1556+24
11638	ldrh	r2, [r3]
11639	ldr	r3, .L1556+56
11640	ldrh	r3, [r3]
11641	add	r3, r3, r3, lsl #1
11642	cmp	r2, r3, asr #2
11643	ble	.L1532
11644	ldr	r3, .L1556+60
11645	movs	r2, #20
11646	strh	r2, [r3]	@ movhi
11647	b	.L1532
11648.L1547:
11649	uxth	r3, r6
11650	movs	r7, #12
11651	ldr	r2, [fp]
11652	muls	r7, r3, r7
11653	ldr	r3, .L1556+64
11654	ldr	r8, [r3]
11655	add	r10, r8, r7
11656	ldr	r1, [r10, #8]
11657	cmp	r1, r2
11658	bcc	.L1544
11659	movs	r2, #168
11660	ldr	r1, .L1556+32
11661	ldr	r0, .L1556+36
11662	bl	printf
11663.L1544:
11664	movs	r2, #0
11665	add	r1, sp, #12
11666	ldr	r0, [r10, #8]
11667	bl	log2phys
11668	ldr	r2, [sp, #12]
11669	ldr	r0, [r8, r7]
11670	cmp	r0, r2
11671	bne	.L1545
11672	ubfx	r0, r0, #10, #16
11673	bl	P2V_block_in_plane
11674	movs	r2, #1
11675	mov	r7, r0
11676	add	r1, r10, #4
11677	ldr	r0, [r10, #8]
11678	bl	log2phys
11679	mov	r0, r7
11680.L1555:
11681	bl	decrement_vpc_count
11682.L1546:
11683	adds	r6, r6, #1
11684	b	.L1543
11685.L1545:
11686	ldr	r3, [r10, #4]
11687	cmp	r2, r3
11688	beq	.L1546
11689	ldrh	r0, [r4]
11690	b	.L1555
11691.L1548:
11692	bl	INSERT_FREE_LIST
11693	b	.L1549
11694.L1557:
11695	.align	2
11696.L1556:
11697	.word	.LANCHOR53
11698	.word	.LANCHOR19
11699	.word	.LANCHOR144
11700	.word	.LANCHOR162
11701	.word	.LANCHOR43
11702	.word	.LANCHOR81
11703	.word	.LANCHOR48
11704	.word	.LANCHOR97
11705	.word	.LANCHOR176
11706	.word	.LC1
11707	.word	.LANCHOR42
11708	.word	.LANCHOR67
11709	.word	.LANCHOR96
11710	.word	.LANCHOR80
11711	.word	.LANCHOR78
11712	.word	.LANCHOR82
11713	.word	.LANCHOR98
11714	.word	.LANCHOR61
11715	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
11716	.section	.text.FtlGcPageRecovery,"ax",%progbits
11717	.align	1
11718	.global	FtlGcPageRecovery
11719	.syntax unified
11720	.thumb
11721	.thumb_func
11722	.fpu softvfp
11723	.type	FtlGcPageRecovery, %function
11724FtlGcPageRecovery:
11725	@ args = 0, pretend = 0, frame = 0
11726	@ frame_needed = 0, uses_anonymous_args = 0
11727	push	{r3, r4, r5, lr}
11728	ldr	r4, .L1560
11729	ldr	r5, .L1560+4
11730	ldrh	r1, [r4]
11731	mov	r0, r5
11732	bl	FtlGcScanTempBlk
11733	ldrh	r2, [r5, #2]
11734	ldrh	r3, [r4]
11735	cmp	r2, r3
11736	bcc	.L1558
11737	ldr	r0, .L1560+8
11738	bl	FtlMapBlkWriteDump_data
11739	movs	r0, #0
11740	bl	FtlGcFreeTempBlock
11741	ldr	r3, .L1560+12
11742	movs	r2, #0
11743	str	r2, [r3]
11744.L1558:
11745	pop	{r3, r4, r5, pc}
11746.L1561:
11747	.align	2
11748.L1560:
11749	.word	.LANCHOR19
11750	.word	.LANCHOR53
11751	.word	.LANCHOR140
11752	.word	.LANCHOR144
11753	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
11754	.section	.text.FtlPowerLostRecovery,"ax",%progbits
11755	.align	1
11756	.global	FtlPowerLostRecovery
11757	.syntax unified
11758	.thumb
11759	.thumb_func
11760	.fpu softvfp
11761	.type	FtlPowerLostRecovery, %function
11762FtlPowerLostRecovery:
11763	@ args = 0, pretend = 0, frame = 0
11764	@ frame_needed = 0, uses_anonymous_args = 0
11765	push	{r3, r4, r5, lr}
11766	movs	r4, #0
11767	ldr	r5, .L1563
11768	ldr	r3, .L1563+4
11769	mov	r0, r5
11770	str	r4, [r3]
11771	bl	FtlRecoverySuperblock
11772	mov	r0, r5
11773	ldr	r5, .L1563+8
11774	bl	FtlSlcSuperblockCheck
11775	mov	r0, r5
11776	bl	FtlRecoverySuperblock
11777	mov	r0, r5
11778	bl	FtlSlcSuperblockCheck
11779	bl	FtlGcPageRecovery
11780	movw	r0, #65535
11781	bl	decrement_vpc_count
11782	mov	r0, r4
11783	pop	{r3, r4, r5, pc}
11784.L1564:
11785	.align	2
11786.L1563:
11787	.word	.LANCHOR51
11788	.word	.LANCHOR168
11789	.word	.LANCHOR52
11790	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
11791	.section	.text.Ftl_gc_temp_data_write_back,"ax",%progbits
11792	.align	1
11793	.global	Ftl_gc_temp_data_write_back
11794	.syntax unified
11795	.thumb
11796	.thumb_func
11797	.fpu softvfp
11798	.type	Ftl_gc_temp_data_write_back, %function
11799Ftl_gc_temp_data_write_back:
11800	@ args = 0, pretend = 0, frame = 0
11801	@ frame_needed = 0, uses_anonymous_args = 0
11802	push	{r3, r4, r5, r6, r7, lr}
11803	movs	r3, #0
11804	ldr	r4, .L1572
11805	movs	r6, #0
11806	movs	r7, #20
11807	mov	r2, r3
11808	ldr	r5, .L1572+4
11809	ldr	r1, [r4]
11810	ldr	r0, [r5]
11811	bl	FlashProgPages
11812.L1566:
11813	ldr	r1, [r4]
11814	uxth	r3, r6
11815	cmp	r1, r3
11816	bhi	.L1569
11817	ldr	r0, [r5]
11818	bl	FtlGcBufFree
11819	ldr	r3, .L1572+8
11820	movs	r0, #0
11821	str	r0, [r4]
11822	ldrh	r3, [r3, #4]
11823	cbnz	r3, .L1565
11824	movs	r0, #1
11825	bl	FtlGcFreeTempBlock
11826	b	.L1571
11827.L1569:
11828	muls	r3, r7, r3
11829	ldr	r2, [r5]
11830	adds	r6, r6, #1
11831	adds	r1, r2, r3
11832	ldr	r2, [r2, r3]
11833	adds	r3, r2, #1
11834	bne	.L1567
11835	ldr	r3, .L1572+8
11836	movs	r5, #0
11837	ldr	r0, .L1572+12
11838	ldrh	r4, [r3]
11839	ldr	r0, [r0]
11840	strh	r5, [r0, r4, lsl #1]	@ movhi
11841	strh	r2, [r3]	@ movhi
11842	ldr	r2, .L1572+16
11843	ldr	r0, [r1, #4]
11844	ldr	r3, [r2, #96]
11845	ubfx	r0, r0, #10, #16
11846	adds	r3, r3, #1
11847	str	r3, [r2, #96]
11848	bl	FtlBbmMapBadBlock
11849	bl	FtlBbmTblFlush
11850	bl	FtlGcPageVarInit
11851.L1571:
11852	movs	r0, #1
11853.L1565:
11854	pop	{r3, r4, r5, r6, r7, pc}
11855.L1567:
11856	ldr	r3, [r1, #12]
11857	ldr	r1, [r1, #4]
11858	ldr	r2, [r3, #8]
11859	ldr	r0, [r3, #12]
11860	bl	FtlGcUpdatePage
11861	b	.L1566
11862.L1573:
11863	.align	2
11864.L1572:
11865	.word	.LANCHOR89
11866	.word	.LANCHOR113
11867	.word	.LANCHOR53
11868	.word	.LANCHOR42
11869	.word	.LANCHOR81
11870	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
11871	.section	.text.Ftl_get_new_temp_ppa,"ax",%progbits
11872	.align	1
11873	.global	Ftl_get_new_temp_ppa
11874	.syntax unified
11875	.thumb
11876	.thumb_func
11877	.fpu softvfp
11878	.type	Ftl_get_new_temp_ppa, %function
11879Ftl_get_new_temp_ppa:
11880	@ args = 0, pretend = 0, frame = 0
11881	@ frame_needed = 0, uses_anonymous_args = 0
11882	push	{r3, r4, r5, lr}
11883	movw	r3, #65535
11884	ldr	r4, .L1577
11885	ldrh	r2, [r4]
11886	cmp	r2, r3
11887	beq	.L1575
11888	ldrh	r3, [r4, #4]
11889	cbnz	r3, .L1576
11890.L1575:
11891	movs	r0, #0
11892	movs	r5, #0
11893	bl	FtlGcFreeTempBlock
11894	ldr	r0, .L1577
11895	strb	r5, [r4, #8]
11896	bl	allocate_data_superblock
11897	ldr	r3, .L1577+4
11898	strh	r5, [r3]	@ movhi
11899	ldr	r3, .L1577+8
11900	strh	r5, [r3]	@ movhi
11901	bl	l2p_flush
11902	mov	r0, r5
11903	bl	FtlEctTblFlush
11904	bl	FtlVpcTblFlush
11905.L1576:
11906	ldr	r0, .L1577
11907	pop	{r3, r4, r5, lr}
11908	b	get_new_active_ppa
11909.L1578:
11910	.align	2
11911.L1577:
11912	.word	.LANCHOR53
11913	.word	.LANCHOR96
11914	.word	.LANCHOR97
11915	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
11916	.section	.text.FtlSysBlkInit,"ax",%progbits
11917	.align	1
11918	.global	FtlSysBlkInit
11919	.syntax unified
11920	.thumb
11921	.thumb_func
11922	.fpu softvfp
11923	.type	FtlSysBlkInit, %function
11924FtlSysBlkInit:
11925	@ args = 0, pretend = 0, frame = 0
11926	@ frame_needed = 0, uses_anonymous_args = 0
11927	push	{r3, r4, r5, r6, r7, lr}
11928	movs	r3, #0
11929	ldr	r6, .L1594
11930	strh	r3, [r6]	@ movhi
11931	ldr	r3, .L1594+4
11932	ldrh	r0, [r3]
11933	bl	FtlFreeSysBlkQueueInit
11934	bl	FtlScanSysBlk
11935	ldr	r3, .L1594+8
11936	ldrh	r2, [r3]
11937	movw	r3, #65535
11938	cmp	r2, r3
11939	bne	.L1580
11940.L1582:
11941	mov	r7, #-1
11942.L1579:
11943	mov	r0, r7
11944	pop	{r3, r4, r5, r6, r7, pc}
11945.L1580:
11946	bl	FtlLoadSysInfo
11947	mov	r7, r0
11948	cmp	r0, #0
11949	bne	.L1582
11950	bl	FtlLoadMapInfo
11951	bl	FtlLoadVonderInfo
11952	bl	Ftl_load_ext_data
11953	bl	FtlLoadEctTbl
11954	bl	FtlFreeSysBLkSort
11955	bl	SupperBlkListInit
11956	bl	FtlPowerLostRecovery
11957	movs	r0, #1
11958	bl	FtlUpdateVaildLpn
11959	ldr	r3, .L1594+12
11960	movs	r0, #12
11961	ldrh	r1, [r3]
11962	ldr	r3, .L1594+16
11963	ldr	r2, [r3]
11964	mov	r3, r7
11965.L1583:
11966	cmp	r3, r1
11967	bge	.L1588
11968	mla	r4, r0, r3, r2
11969	ldr	r4, [r4, #4]
11970	cmp	r4, #0
11971	bge	.L1584
11972.L1588:
11973	ldr	r5, .L1594+20
11974	cmp	r3, r1
11975	ldr	r4, .L1594+24
11976	ldrh	r2, [r5, #28]
11977	add	r2, r2, #1
11978	strh	r2, [r5, #28]	@ movhi
11979	bge	.L1593
11980.L1585:
11981	ldr	r6, .L1594+28
11982	ldr	r0, .L1594+24
11983	bl	FtlSuperblockPowerLostFix
11984	mov	r0, r6
11985	bl	FtlSuperblockPowerLostFix
11986	ldr	r3, .L1594+32
11987	ldrh	r1, [r4]
11988	ldrh	r0, [r4, #4]
11989	ldr	r2, [r3]
11990	ldrh	r3, [r2, r1, lsl #1]
11991	subs	r3, r3, r0
11992	ldr	r0, .L1594+36
11993	strh	r3, [r2, r1, lsl #1]	@ movhi
11994	ldrh	ip, [r6]
11995	ldrh	r3, [r0]
11996	ldrh	lr, [r6, #4]
11997	strh	r3, [r4, #2]	@ movhi
11998	movs	r3, #0
11999	strb	r3, [r4, #6]
12000	strh	r3, [r4, #4]	@ movhi
12001	ldrh	r1, [r2, ip, lsl #1]
12002	sub	r1, r1, lr
12003	strh	r1, [r2, ip, lsl #1]	@ movhi
12004	strb	r3, [r6, #6]
12005	strh	r3, [r6, #4]	@ movhi
12006	ldrh	r3, [r5, #30]
12007	ldrh	r2, [r0]
12008	adds	r3, r3, #1
12009	strh	r2, [r6, #2]	@ movhi
12010	strh	r3, [r5, #30]	@ movhi
12011	bl	l2p_flush
12012	bl	FtlVpcTblFlush
12013	bl	FtlVpcTblFlush
12014	b	.L1589
12015.L1584:
12016	adds	r3, r3, #1
12017	b	.L1583
12018.L1593:
12019	ldrh	r3, [r6]
12020	cmp	r3, #0
12021	bne	.L1585
12022.L1589:
12023	bl	FtlVpcCheckAndModify
12024	ldrh	r0, [r4]
12025	movw	r3, #65535
12026	cmp	r0, r3
12027	beq	.L1579
12028	ldrh	r3, [r4, #4]
12029	cmp	r3, #0
12030	bne	.L1579
12031	ldr	r4, .L1594+28
12032	ldrh	r3, [r4, #4]
12033	cmp	r3, #0
12034	bne	.L1579
12035	bl	FtlGcRefreshBlock
12036	ldrh	r0, [r4]
12037	bl	FtlGcRefreshBlock
12038	bl	FtlVpcTblFlush
12039	ldr	r0, .L1594+24
12040	bl	allocate_new_data_superblock
12041	mov	r0, r4
12042	bl	allocate_new_data_superblock
12043	b	.L1579
12044.L1595:
12045	.align	2
12046.L1594:
12047	.word	.LANCHOR167
12048	.word	.LANCHOR4
12049	.word	.LANCHOR79
12050	.word	.LANCHOR33
12051	.word	.LANCHOR55
12052	.word	.LANCHOR39
12053	.word	.LANCHOR51
12054	.word	.LANCHOR52
12055	.word	.LANCHOR42
12056	.word	.LANCHOR19
12057	.size	FtlSysBlkInit, .-FtlSysBlkInit
12058	.section	.text.rk_ftl_garbage_collect,"ax",%progbits
12059	.align	1
12060	.global	rk_ftl_garbage_collect
12061	.syntax unified
12062	.thumb
12063	.thumb_func
12064	.fpu softvfp
12065	.type	rk_ftl_garbage_collect, %function
12066rk_ftl_garbage_collect:
12067	@ args = 0, pretend = 0, frame = 40
12068	@ frame_needed = 0, uses_anonymous_args = 0
12069	ldr	r3, .L1719
12070	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12071	sub	sp, sp, #48
12072	str	r0, [sp, #8]
12073	ldr	r0, [r3]
12074	cmp	r0, #0
12075	bne	.L1673
12076	ldr	r3, .L1719+4
12077	ldrh	r3, [r3]
12078	cmp	r3, #47
12079	bls	.L1596
12080	ldr	r3, .L1719+8
12081	ldrh	r2, [r3]
12082	movw	r3, #65535
12083	cmp	r2, r3
12084	bne	.L1598
12085.L1601:
12086	ldr	r3, .L1719+12
12087	movw	r4, #65535
12088	ldrh	r0, [r3]
12089	cmp	r0, r4
12090	bne	.L1599
12091.L1600:
12092	bl	FtlReadRefresh
12093	ldr	r2, .L1719+16
12094	movw	r5, #65535
12095	ldr	r6, .L1719+20
12096	ldr	r1, [sp, #8]
12097	ldr	r3, [r2]
12098	ldrh	r0, [r6]
12099	adds	r3, r3, #1
12100	add	r3, r3, r1, lsl #7
12101	cmp	r0, r5
12102	str	r3, [r2]
12103	bne	.L1602
12104	ldr	r1, .L1719+24
12105	ldrh	r1, [r1]
12106	cmp	r1, r0
12107	bne	.L1603
12108	ldr	r0, .L1719+28
12109	ldrh	r8, [r0]
12110	cmp	r8, r1
12111	bne	.L1604
12112	ldr	r7, .L1719+32
12113	ldrh	r1, [r7]
12114	cmp	r1, #24
12115	ite	cc
12116	movcc	r1, #5120
12117	movcs	r1, #1024
12118	cmp	r3, r1
12119	bls	.L1604
12120	ldr	r3, .L1719+36
12121	movs	r4, #0
12122	str	r4, [r2]
12123	strh	r4, [r3]	@ movhi
12124	bl	GetSwlReplaceBlock
12125	cmp	r0, r8
12126	mov	r5, r0
12127	bne	.L1677
12128	ldr	r8, .L1719+96
12129	ldrh	r2, [r7]
12130	ldrh	r3, [r8]
12131	cmp	r2, r3
12132	bcs	.L1607
12133	movs	r0, #64
12134	bl	List_get_gc_head_node
12135	uxth	r3, r0
12136	cmp	r3, r5
12137	beq	.L1609
12138	mov	r0, r3
12139	ldr	r3, .L1719+40
12140	ldr	r3, [r3]
12141	ldrh	r3, [r3, r0, lsl #1]
12142	cmp	r3, #7
12143	bhi	.L1610
12144	mov	r0, r4
12145	bl	List_get_gc_head_node
12146	uxth	r4, r0
12147	movs	r3, #128
12148	strh	r3, [r8]	@ movhi
12149	cmp	r4, r5
12150	bne	.L1606
12151.L1609:
12152	bl	FtlGcReFreshBadBlk
12153	ldr	r3, [sp, #8]
12154	cmp	r3, #0
12155	bne	.L1612
12156	movw	r3, #65535
12157	cmp	r5, r3
12158	bne	.L1612
12159.L1671:
12160	ldr	r3, .L1719+32
12161	ldrh	r3, [r3]
12162	cmp	r3, #24
12163	bhi	.L1678
12164	ldr	r2, .L1719+44
12165	cmp	r3, #16
12166	ldrh	r4, [r2]
12167	bls	.L1614
12168	lsrs	r4, r4, #5
12169.L1613:
12170	ldr	r1, .L1719+48
12171	ldrh	r2, [r1]
12172	cmp	r2, r3
12173	mov	r2, r1
12174	bcs	.L1617
12175	ldr	r3, .L1719+24
12176	movw	r0, #65535
12177	ldrh	r3, [r3]
12178	cmp	r3, r0
12179	bne	.L1618
12180	ldr	r0, .L1719+28
12181	ldrh	r0, [r0]
12182	cmp	r0, r3
12183	bne	.L1618
12184	ldr	r3, .L1719+36
12185	ldrh	r0, [r3]
12186	cbnz	r0, .L1619
12187	ldr	r3, .L1719+52
12188	ldr	r4, .L1719+56
12189	ldr	r3, [r3]
12190	ldr	r4, [r4]
12191	add	r3, r3, r3, lsl #1
12192	cmp	r4, r3, lsr #2
12193	bcs	.L1620
12194.L1619:
12195	ldr	r3, .L1719+60
12196	ldrh	r3, [r3]
12197	add	r3, r3, r3, lsl #1
12198	asrs	r3, r3, #2
12199	strh	r3, [r2]	@ movhi
12200.L1621:
12201	ldr	r3, .L1719+64
12202	movs	r2, #0
12203	str	r2, [r3]
12204.L1596:
12205	add	sp, sp, #48
12206	@ sp needed
12207	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12208.L1598:
12209	ldr	r2, .L1719+24
12210	ldrh	r2, [r2]
12211	cmp	r2, r3
12212	beq	.L1601
12213	movs	r0, #1
12214	bl	FtlGcFreeTempBlock
12215	cmp	r0, #0
12216	beq	.L1601
12217	movs	r0, #1
12218	b	.L1596
12219.L1599:
12220	ldr	r1, .L1719+28
12221	ldrh	r2, [r1]
12222	cmp	r2, r4
12223	itt	eq
12224	strheq	r0, [r1]	@ movhi
12225	strheq	r2, [r3]	@ movhi
12226	b	.L1600
12227.L1610:
12228	movs	r3, #64
12229.L1713:
12230	strh	r3, [r8]	@ movhi
12231	b	.L1609
12232.L1607:
12233	movs	r3, #80
12234	b	.L1713
12235.L1677:
12236	mov	r4, r0
12237.L1606:
12238	ldr	r3, .L1719+40
12239	mov	r5, r4
12240	ldr	r1, .L1719+48
12241	ldrh	r2, [r7]
12242	ldr	r3, [r3]
12243	ldrh	r1, [r1]
12244	ldr	r0, .L1719+68
12245	ldrh	r3, [r3, r4, lsl #1]
12246	str	r1, [sp, #4]
12247	ldr	r1, .L1719+72
12248	ldr	r1, [r1]
12249	ldrh	r1, [r1, r4, lsl #1]
12250	str	r1, [sp]
12251	mov	r1, r4
12252	bl	printf
12253	b	.L1609
12254.L1614:
12255	cmp	r3, #12
12256	bls	.L1615
12257	lsrs	r4, r4, #4
12258	b	.L1613
12259.L1615:
12260	cmp	r3, #8
12261	bls	.L1613
12262	lsrs	r4, r4, #2
12263	b	.L1613
12264.L1678:
12265	movs	r4, #1
12266	b	.L1613
12267.L1620:
12268	movs	r3, #18
12269	strh	r3, [r1]	@ movhi
12270	b	.L1621
12271.L1618:
12272	ldr	r3, .L1719+60
12273	ldrh	r3, [r3]
12274	add	r3, r3, r3, lsl #1
12275	asrs	r3, r3, #2
12276	strh	r3, [r2]	@ movhi
12277.L1617:
12278	ldr	r3, .L1719+76
12279	ldrh	r3, [r3]
12280	cbz	r3, .L1679
12281	adds	r4, r4, #32
12282	uxth	r4, r4
12283.L1679:
12284	movw	r5, #65535
12285.L1623:
12286	ldrh	r3, [r6]
12287	movw	r2, #65535
12288	cmp	r3, r2
12289	bne	.L1632
12290	cmp	r5, r3
12291	beq	.L1633
12292	strh	r5, [r6]	@ movhi
12293.L1634:
12294	ldrh	r0, [r6]
12295	movw	r7, #65535
12296	movs	r3, #0
12297	strb	r3, [r6, #8]
12298	cmp	r0, r7
12299	beq	.L1632
12300	bl	IsBlkInGcList
12301	cbz	r0, .L1637
12302	strh	r7, [r6]	@ movhi
12303.L1637:
12304	ldrh	r2, [r6]
12305	movw	r3, #65535
12306	cmp	r2, r3
12307	beq	.L1632
12308	ldr	r0, .L1719+20
12309	bl	make_superblock
12310	ldr	r2, .L1719+80
12311	movs	r3, #0
12312	strh	r3, [r6, #2]	@ movhi
12313	strb	r3, [r6, #6]
12314	strh	r3, [r2]	@ movhi
12315	ldr	r3, .L1719+40
12316	ldrh	r2, [r6]
12317	ldr	r3, [r3]
12318	ldrh	r2, [r3, r2, lsl #1]
12319	ldr	r3, .L1719+84
12320	strh	r2, [r3]	@ movhi
12321.L1632:
12322	ldr	r2, .L1719+88
12323	ldrh	r3, [r6]
12324	ldrh	r2, [r2]
12325	cmp	r2, r3
12326	beq	.L1638
12327	ldr	r2, .L1719+92
12328	ldrh	r2, [r2]
12329	cmp	r2, r3
12330	bne	.L1639
12331.L1638:
12332	movw	r3, #65535
12333	strh	r3, [r6]	@ movhi
12334.L1639:
12335	ldr	fp, .L1719+20
12336	mov	r6, fp
12337.L1669:
12338	ldrh	r2, [fp]
12339	movw	r3, #65535
12340	cmp	r2, r3
12341	bne	.L1640
12342	ldr	r10, .L1719+100
12343	movs	r2, #0
12344	ldr	r3, .L1719+64
12345	mov	r8, r10
12346	str	r2, [r3]
12347.L1641:
12348	ldrh	r7, [r10]
12349	mov	r0, r7
12350	bl	List_get_gc_head_node
12351	uxth	r3, r0
12352	movw	r1, #65535
12353	cmp	r3, r1
12354	strh	r3, [r6]	@ movhi
12355	bne	.L1642
12356	movs	r3, #0
12357	movs	r0, #8
12358	strh	r3, [r10]	@ movhi
12359	b	.L1596
12360.L1720:
12361	.align	2
12362.L1719:
12363	.word	.LANCHOR108
12364	.word	.LANCHOR45
12365	.word	.LANCHOR162
12366	.word	.LANCHOR100
12367	.word	.LANCHOR84
12368	.word	.LANCHOR80
12369	.word	.LANCHOR53
12370	.word	.LANCHOR99
12371	.word	.LANCHOR48
12372	.word	.LANCHOR177
12373	.word	.LANCHOR42
12374	.word	.LANCHOR19
12375	.word	.LANCHOR82
12376	.word	.LANCHOR61
12377	.word	.LANCHOR59
12378	.word	.LANCHOR78
12379	.word	.LANCHOR87
12380	.word	.LC112
12381	.word	.LANCHOR43
12382	.word	.LANCHOR101
12383	.word	.LANCHOR178
12384	.word	.LANCHOR179
12385	.word	.LANCHOR51
12386	.word	.LANCHOR52
12387	.word	.LANCHOR83
12388	.word	.LANCHOR85
12389.L1624:
12390	ldr	r3, .L1721
12391	movs	r2, #0
12392	ldr	r5, .L1721+4
12393	ldr	r4, .L1721+8
12394	str	r2, [r3]
12395	ldrh	r2, [r5]
12396	ldrh	r3, [r4]
12397	ldr	r7, .L1721+12
12398	cmp	r2, r3
12399	bls	.L1625
12400	ldrh	r3, [r7]
12401	cbnz	r3, .L1626
12402	ldr	r3, .L1721+16
12403	ldr	r2, .L1721+20
12404	ldr	r3, [r3]
12405	ldr	r2, [r2]
12406	add	r3, r3, r3, lsl #1
12407	cmp	r2, r3, lsr #2
12408	bcs	.L1627
12409.L1626:
12410	ldr	r3, .L1721+24
12411	ldrh	r3, [r3]
12412	add	r3, r3, r3, lsl #1
12413	asrs	r3, r3, #2
12414.L1714:
12415	strh	r3, [r4]	@ movhi
12416	bl	FtlReadRefresh
12417	movs	r0, #0
12418	bl	List_get_gc_head_node
12419	ldr	r3, .L1721+28
12420	uxth	r0, r0
12421	ldr	r3, [r3]
12422	ldrh	r3, [r3, r0, lsl #1]
12423	cmp	r3, #4
12424	bls	.L1625
12425.L1717:
12426	ldrh	r0, [r7]
12427	b	.L1596
12428.L1627:
12429	movs	r3, #18
12430	b	.L1714
12431.L1625:
12432	ldrh	r0, [r7]
12433	cmp	r0, #0
12434	bne	.L1629
12435	ldr	r3, .L1721+24
12436	ldrh	r8, [r3]
12437	add	r2, r8, r8, lsl #1
12438	asrs	r2, r2, #2
12439	strh	r2, [r4]	@ movhi
12440	bl	List_get_gc_head_node
12441	ldr	r3, .L1721+28
12442	uxth	r0, r0
12443	ldr	r2, .L1721+32
12444	ldr	r3, [r3]
12445	ldrh	r2, [r2]
12446	ldrh	r1, [r3, r0, lsl #1]
12447	ldr	r3, .L1721+36
12448	ldrh	r3, [r3]
12449	muls	r2, r3, r2
12450	cmp	r1, r2, asr #1
12451	ble	.L1630
12452	ldrh	r2, [r5]
12453	add	r3, r8, #-1
12454	cmp	r2, r3
12455	blt	.L1630
12456	bl	FtlReadRefresh
12457	b	.L1717
12458.L1630:
12459	cmp	r1, #0
12460	bne	.L1629
12461	movw	r0, #65535
12462	bl	decrement_vpc_count
12463	ldrh	r0, [r5]
12464	adds	r0, r0, #1
12465	b	.L1596
12466.L1633:
12467	ldr	r3, .L1721+40
12468	ldrh	r2, [r3]
12469	cmp	r2, r5
12470	beq	.L1634
12471	ldr	r1, .L1721+28
12472	ldr	r1, [r1]
12473	ldrh	r2, [r1, r2, lsl #1]
12474	cbnz	r2, .L1635
12475	strh	r5, [r3]	@ movhi
12476.L1635:
12477	ldrh	r2, [r3]
12478	strh	r2, [r6]	@ movhi
12479	movw	r2, #65535
12480	strh	r2, [r3]	@ movhi
12481	b	.L1634
12482.L1642:
12483	str	r0, [sp, #16]
12484	mov	r0, r3
12485	str	r3, [sp, #12]
12486	adds	r7, r7, #1
12487	bl	IsBlkInGcList
12488	ldr	r3, [sp, #12]
12489	ldr	r2, [sp, #16]
12490	cbz	r0, .L1643
12491	strh	r7, [r10]	@ movhi
12492	b	.L1641
12493.L1643:
12494	ldr	lr, .L1721+28
12495	uxth	r0, r2
12496	uxth	r7, r7
12497	ldr	r2, [lr]
12498	strh	r7, [r10]	@ movhi
12499	str	lr, [sp, #16]
12500	ldrh	ip, [r2, r0, lsl #1]
12501	str	r2, [sp, #12]
12502	ldr	r2, .L1721+44
12503	ldrh	r2, [r2]
12504	mov	r1, r2
12505	ldr	r2, .L1721+32
12506	ldrh	r2, [r2]
12507	muls	r2, r1, r2
12508	cmp	ip, r2, asr #1
12509	bgt	.L1645
12510	cmp	r7, #48
12511	bls	.L1646
12512	cmp	ip, #8
12513	bls	.L1646
12514	ldr	r7, .L1721+48
12515	ldrh	r7, [r7]
12516	cmp	r7, #35
12517	bhi	.L1646
12518.L1645:
12519	movs	r7, #0
12520	strh	r7, [r8]	@ movhi
12521.L1646:
12522	ldr	r1, [sp, #12]
12523	ldrh	r1, [r1, r0, lsl #1]
12524	cmp	r2, r1
12525	bgt	.L1647
12526	movw	r2, #65535
12527	cmp	r5, r2
12528	bne	.L1647
12529	ldrh	r2, [r8]
12530	cmp	r2, #3
12531	bhi	.L1647
12532	movs	r3, #0
12533	strh	r5, [r6]	@ movhi
12534	strh	r3, [r8]	@ movhi
12535.L1718:
12536	ldr	r3, .L1721+12
12537	ldrh	r0, [r3]
12538	b	.L1596
12539.L1647:
12540	cbnz	r1, .L1648
12541	movw	r0, #65535
12542	bl	decrement_vpc_count
12543	ldrh	r3, [r8]
12544	adds	r3, r3, #1
12545	strh	r3, [r8]	@ movhi
12546	b	.L1641
12547.L1648:
12548	movs	r2, #0
12549	strb	r2, [r6, #8]
12550	ldr	r2, .L1721+52
12551	ldrh	r2, [r2]
12552	cmp	r2, r3
12553	bne	.L1649
12554	mov	r2, #700
12555	ldr	r1, .L1721+56
12556	ldr	r0, .L1721+60
12557	bl	printf
12558.L1649:
12559	ldr	r3, .L1721+64
12560	ldrh	r2, [r6]
12561	ldrh	r3, [r3]
12562	cmp	r2, r3
12563	bne	.L1650
12564	movw	r2, #701
12565	ldr	r1, .L1721+56
12566	ldr	r0, .L1721+60
12567	bl	printf
12568.L1650:
12569	ldr	r3, .L1721+68
12570	ldrh	r2, [r6]
12571	ldrh	r3, [r3]
12572	cmp	r2, r3
12573	bne	.L1651
12574	movw	r2, #702
12575	ldr	r1, .L1721+56
12576	ldr	r0, .L1721+60
12577	bl	printf
12578.L1651:
12579	mov	r0, fp
12580	bl	make_superblock
12581	ldr	r2, .L1721+72
12582	movs	r3, #0
12583	ldrh	r1, [r6]
12584	strh	r3, [r2]	@ movhi
12585	ldr	r2, [sp, #16]
12586	ldr	r2, [r2]
12587	ldrh	r1, [r2, r1, lsl #1]
12588	ldr	r2, .L1721+76
12589	strh	r3, [r6, #2]	@ movhi
12590	strb	r3, [r6, #6]
12591	strh	r1, [r2]	@ movhi
12592.L1640:
12593	ldr	r3, .L1721+80
12594	movs	r2, #1
12595	str	r2, [r3]
12596	ldr	r3, .L1721+44
12597	ldrh	r3, [r3]
12598	str	r3, [sp, #20]
12599	ldr	r3, [sp, #8]
12600	cbz	r3, .L1652
12601	ldr	r3, .L1721+32
12602	ldr	r2, [sp, #20]
12603	ldrh	r1, [r6]
12604	ldrh	r3, [r3]
12605	muls	r3, r2, r3
12606	ldr	r2, .L1721+28
12607	ldr	r2, [r2]
12608	ldrh	r2, [r2, r1, lsl #1]
12609	subs	r3, r3, r2
12610	it	mi
12611	addmi	r3, r3, #3
12612	add	r4, r4, r3, asr #2
12613	uxth	r4, r4
12614.L1652:
12615	ldrh	r3, [r6, #2]
12616	ldr	r1, [sp, #20]
12617	adds	r2, r3, r4
12618	cmp	r2, r1
12619	itt	gt
12620	movgt	r2, r1
12621	subgt	r4, r2, r3
12622	mov	r3, #0
12623	it	gt
12624	uxthgt	r4, r4
12625.L1716:
12626	str	r3, [sp, #28]
12627	ldrh	r3, [sp, #28]
12628	cmp	r4, r3
12629	bls	.L1663
12630	ldr	r3, .L1721+32
12631	movw	lr, #65535
12632	ldrh	r1, [fp, #2]
12633	mov	ip, #20
12634	ldr	r7, .L1721+84
12635	ldrh	r8, [r3]
12636	ldr	r3, .L1721+88
12637	ldr	r0, [r3]
12638	ldr	r3, [sp, #28]
12639	adds	r3, r1, r3
12640	str	r3, [sp, #16]
12641	movs	r3, #0
12642	str	r3, [sp, #12]
12643	b	.L1664
12644.L1657:
12645	ldrh	r2, [r7, #2]!
12646	cmp	r2, lr
12647	beq	.L1656
12648	ldr	r1, [sp, #12]
12649	mla	r10, ip, r1, r0
12650	ldr	r1, [sp, #16]
12651	orr	r2, r1, r2, lsl #10
12652	str	r2, [r10, #4]
12653	ldr	r2, [sp, #12]
12654	adds	r2, r2, #1
12655	uxth	r2, r2
12656	str	r2, [sp, #12]
12657.L1656:
12658	adds	r3, r3, #1
12659.L1664:
12660	uxth	r2, r3
12661	cmp	r8, r2
12662	bhi	.L1657
12663	ldrb	r2, [fp, #8]	@ zero_extendqisi2
12664	ldr	r1, [sp, #12]
12665	bl	FlashReadPages
12666	movs	r3, #0
12667.L1715:
12668	str	r3, [sp, #24]
12669	ldr	r2, [sp, #12]
12670	ldrh	r3, [sp, #24]
12671	cmp	r2, r3
12672	bhi	.L1662
12673	ldr	r3, [sp, #28]
12674	adds	r3, r3, #1
12675	b	.L1716
12676.L1722:
12677	.align	2
12678.L1721:
12679	.word	.LANCHOR87
12680	.word	.LANCHOR48
12681	.word	.LANCHOR82
12682	.word	.LANCHOR177
12683	.word	.LANCHOR61
12684	.word	.LANCHOR59
12685	.word	.LANCHOR78
12686	.word	.LANCHOR42
12687	.word	.LANCHOR3
12688	.word	.LANCHOR20
12689	.word	.LANCHOR99
12690	.word	.LANCHOR19
12691	.word	.LANCHOR96
12692	.word	.LANCHOR51
12693	.word	.LANCHOR180
12694	.word	.LC1
12695	.word	.LANCHOR52
12696	.word	.LANCHOR53
12697	.word	.LANCHOR178
12698	.word	.LANCHOR179
12699	.word	.LANCHOR108
12700	.word	.LANCHOR80+14
12701	.word	.LANCHOR93
12702.L1662:
12703	ldr	r3, [sp, #24]
12704	movs	r7, #20
12705	muls	r7, r3, r7
12706	ldr	r3, .L1723
12707	ldr	r3, [r3]
12708	adds	r2, r3, r7
12709	ldr	r3, [r3, r7]
12710	adds	r3, r3, #1
12711	beq	.L1659
12712	ldr	r3, [r2, #12]
12713	ldrh	r2, [r3]
12714	str	r3, [sp, #16]
12715	movw	r3, #61589
12716	cmp	r2, r3
12717	bne	.L1659
12718	ldr	r3, [sp, #16]
12719	ldr	r8, [r3, #8]
12720	cmp	r8, #-1
12721	bne	.L1660
12722	mov	r2, #736
12723	ldr	r1, .L1723+4
12724	ldr	r0, .L1723+8
12725	bl	printf
12726.L1660:
12727	movs	r2, #0
12728	add	r1, sp, #44
12729	mov	r0, r8
12730	bl	log2phys
12731	ldr	r3, .L1723
12732	ldr	r1, [r3]
12733	ldr	r3, [sp, #44]
12734	add	r1, r1, r7
12735	ldr	r2, [r1, #4]
12736	cmp	r2, r3
12737	bne	.L1659
12738	ldr	r3, .L1723+12
12739	mov	r10, #20
12740	ldr	r2, .L1723+12
12741	ldr	r8, .L1723+32
12742	ldrh	r3, [r3]
12743	ldr	r1, [r1, #16]
12744	adds	r3, r3, #1
12745	strh	r3, [r2]	@ movhi
12746	ldr	r2, .L1723+16
12747	ldr	r3, [r8]
12748	ldr	r0, [r2]
12749	str	r2, [sp, #36]
12750	mla	r3, r10, r3, r0
12751	str	r1, [r3, #16]
12752	str	r3, [sp, #32]
12753	bl	Ftl_get_new_temp_ppa
12754	ldr	r3, [sp, #32]
12755	ldr	r2, [sp, #36]
12756	ldr	r1, [sp, #16]
12757	str	r0, [r3, #4]
12758	ldr	r2, [r2]
12759	ldr	r3, [r8]
12760	mla	r10, r10, r3, r2
12761	ldr	r2, .L1723
12762	adds	r3, r3, #1
12763	ldr	r0, [r2]
12764	add	r0, r0, r7
12765	ldr	r7, .L1723+20
12766	ldr	r2, [r0, #8]
12767	str	r2, [r10, #8]
12768	ldr	r2, [r0, #12]
12769	str	r2, [r10, #12]
12770	ldr	r2, [sp, #44]
12771	str	r2, [r1, #12]
12772	ldrh	r2, [r7]
12773	strh	r2, [r1, #2]	@ movhi
12774	ldr	r2, .L1723+24
12775	str	r3, [r8]
12776	ldr	r2, [r2]
12777	str	r2, [r1, #4]
12778	movs	r1, #1
12779	bl	FtlGcBufAlloc
12780	ldrb	r2, [r7, #7]	@ zero_extendqisi2
12781	ldr	r3, [r8]
12782	cmp	r2, r3
12783	beq	.L1661
12784	ldrh	r3, [r7, #4]
12785	cbnz	r3, .L1659
12786.L1661:
12787	bl	Ftl_gc_temp_data_write_back
12788	cbz	r0, .L1659
12789	ldr	r3, .L1723+28
12790	movs	r2, #0
12791	str	r2, [r3]
12792	b	.L1718
12793.L1659:
12794	ldr	r3, [sp, #24]
12795	adds	r3, r3, #1
12796	b	.L1715
12797.L1663:
12798	ldrh	r3, [fp, #2]
12799	add	r4, r4, r3
12800	ldr	r3, [sp, #20]
12801	uxth	r4, r4
12802	cmp	r3, r4
12803	strh	r4, [fp, #2]	@ movhi
12804	ldr	r4, .L1723+28
12805	bhi	.L1665
12806	ldr	r3, .L1723+32
12807	ldr	r3, [r3]
12808	cbz	r3, .L1666
12809	bl	Ftl_gc_temp_data_write_back
12810	cbz	r0, .L1666
12811	movs	r3, #0
12812	str	r3, [r4]
12813	b	.L1718
12814.L1666:
12815	ldr	r3, .L1723+12
12816	ldrh	r1, [r3]
12817	cbnz	r1, .L1667
12818	ldr	r3, .L1723+36
12819	ldrh	r2, [fp]
12820	ldr	r3, [r3]
12821	ldrh	r0, [r3, r2, lsl #1]
12822	cbz	r0, .L1667
12823	strh	r1, [r3, r2, lsl #1]	@ movhi
12824	ldrh	r0, [fp]
12825	bl	update_vpc_list
12826	bl	l2p_flush
12827	bl	FtlVpcTblFlush
12828.L1667:
12829	movw	r3, #65535
12830	strh	r3, [fp]	@ movhi
12831.L1665:
12832	movs	r3, #0
12833	str	r3, [r4]
12834	ldr	r3, .L1723+40
12835	ldrh	r3, [r3]
12836	cmp	r3, #2
12837	bhi	.L1668
12838	ldr	r3, .L1723+44
12839	ldrh	r4, [r3]
12840	b	.L1669
12841.L1668:
12842	ldr	r2, .L1723+48
12843	ldrh	r0, [r2]
12844	cmp	r0, #0
12845	bne	.L1596
12846	adds	r0, r3, #1
12847	b	.L1596
12848.L1673:
12849	movs	r0, #0
12850	b	.L1596
12851.L1602:
12852	ldr	r3, [sp, #8]
12853	cmp	r3, #0
12854	beq	.L1671
12855.L1612:
12856	ldr	r3, .L1723+20
12857	ldrh	r2, [r3]
12858	movw	r3, #65535
12859	cmp	r2, r3
12860	bne	.L1682
12861.L1672:
12862	ldr	r3, .L1723+52
12863	movw	r2, #65535
12864	ldrh	r3, [r3]
12865	cmp	r3, r2
12866	bne	.L1682
12867	cmp	r5, r3
12868	bne	.L1682
12869	ldrh	r3, [r6]
12870	cmp	r3, r5
12871	beq	.L1624
12872.L1629:
12873	movw	r5, #65535
12874.L1682:
12875	movs	r4, #1
12876	b	.L1623
12877.L1604:
12878	ldr	r3, [sp, #8]
12879	cmp	r3, #0
12880	beq	.L1671
12881	movw	r5, #65535
12882	b	.L1672
12883.L1603:
12884	ldr	r3, [sp, #8]
12885	cmp	r3, #0
12886	bne	.L1629
12887	b	.L1671
12888.L1724:
12889	.align	2
12890.L1723:
12891	.word	.LANCHOR93
12892	.word	.LANCHOR180
12893	.word	.LC1
12894	.word	.LANCHOR178
12895	.word	.LANCHOR113
12896	.word	.LANCHOR53
12897	.word	.LANCHOR71
12898	.word	.LANCHOR108
12899	.word	.LANCHOR89
12900	.word	.LANCHOR42
12901	.word	.LANCHOR48
12902	.word	.LANCHOR19
12903	.word	.LANCHOR177
12904	.word	.LANCHOR99
12905	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
12906	.section	.text.sftl_init,"ax",%progbits
12907	.align	1
12908	.global	sftl_init
12909	.syntax unified
12910	.thumb
12911	.thumb_func
12912	.fpu softvfp
12913	.type	sftl_init, %function
12914sftl_init:
12915	@ args = 0, pretend = 0, frame = 0
12916	@ frame_needed = 0, uses_anonymous_args = 0
12917	push	{r4, lr}
12918	mov	r3, #-1
12919	ldr	r4, .L1731
12920	ldr	r1, .L1731+4
12921	ldr	r0, .L1731+8
12922	str	r3, [r4]
12923	bl	printf
12924	ldr	r0, .L1731+12
12925	bl	FtlConstantsInit
12926	bl	FtlMemInit
12927	bl	FtlVariablesInit
12928	ldr	r3, .L1731+16
12929	ldrh	r0, [r3]
12930	bl	FtlFreeSysBlkQueueInit
12931	bl	FtlLoadBbt
12932	cbnz	r0, .L1729
12933	bl	FtlSysBlkInit
12934	cbnz	r0, .L1729
12935	movs	r3, #1
12936	str	r3, [r4]
12937	ldr	r3, .L1731+20
12938	ldrh	r3, [r3]
12939	cmp	r3, #15
12940	bhi	.L1729
12941	movw	r4, #8129
12942.L1728:
12943	movs	r1, #1
12944	movs	r0, #0
12945	bl	rk_ftl_garbage_collect
12946	subs	r4, r4, #1
12947	bne	.L1728
12948.L1729:
12949	movs	r0, #0
12950	pop	{r4, pc}
12951.L1732:
12952	.align	2
12953.L1731:
12954	.word	.LANCHOR86
12955	.word	.LC70
12956	.word	.LC71
12957	.word	.LANCHOR0
12958	.word	.LANCHOR4
12959	.word	.LANCHOR48
12960	.size	sftl_init, .-sftl_init
12961	.section	.text.sftl_gc,"ax",%progbits
12962	.align	1
12963	.global	sftl_gc
12964	.syntax unified
12965	.thumb
12966	.thumb_func
12967	.fpu softvfp
12968	.type	sftl_gc, %function
12969sftl_gc:
12970	@ args = 0, pretend = 0, frame = 0
12971	@ frame_needed = 0, uses_anonymous_args = 0
12972	@ link register save eliminated.
12973	movs	r1, #1
12974	mov	r0, r1
12975	b	rk_ftl_garbage_collect
12976	.size	sftl_gc, .-sftl_gc
12977	.section	.text.FtlRead,"ax",%progbits
12978	.align	1
12979	.global	FtlRead
12980	.syntax unified
12981	.thumb
12982	.thumb_func
12983	.fpu softvfp
12984	.type	FtlRead, %function
12985FtlRead:
12986	@ args = 0, pretend = 0, frame = 56
12987	@ frame_needed = 0, uses_anonymous_args = 0
12988	cmp	r0, #16
12989	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12990	sub	sp, sp, #56
12991	mov	r6, r1
12992	mov	r8, r3
12993	str	r2, [sp, #24]
12994	bne	.L1735
12995	mov	r2, r3
12996	ldr	r1, [sp, #24]
12997	add	r0, r6, #256
12998	bl	FtlVendorPartRead
12999	str	r0, [sp, #4]
13000.L1734:
13001	ldr	r0, [sp, #4]
13002	add	sp, sp, #56
13003	@ sp needed
13004	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13005.L1735:
13006	ldr	r3, [sp, #24]
13007	adds	r3, r1, r3
13008	str	r3, [sp, #12]
13009	ldr	r3, .L1767
13010	ldr	r2, [sp, #12]
13011	ldr	r3, [r3]
13012	cmp	r2, r3
13013	bhi	.L1756
13014	ldr	r3, .L1767+4
13015	ldr	r3, [r3]
13016	adds	r4, r3, #1
13017	beq	.L1757
13018	ldr	r3, .L1767+8
13019	mov	r0, r6
13020	movs	r7, #0
13021	mov	r5, r7
13022	ldrh	r4, [r3]
13023	mov	r1, r4
13024	bl	__aeabi_uidiv
13025	ldr	r3, [sp, #12]
13026	mov	r1, r4
13027	str	r0, [sp, #16]
13028	subs	r0, r3, #1
13029	bl	__aeabi_uidiv
13030	ldr	r3, [sp, #16]
13031	ldr	r2, .L1767+12
13032	ldr	r1, [sp, #24]
13033	rsb	r3, r3, #1
13034	ldr	r4, [sp, #16]
13035	add	r3, r3, r0
13036	str	r0, [sp, #20]
13037	str	r3, [sp, #8]
13038	ldr	r3, [r2]
13039	str	r7, [sp, #32]
13040	str	r7, [sp, #28]
13041	add	r3, r3, r1
13042	ldr	r1, [sp, #8]
13043	str	r3, [r2]
13044	ldr	r2, .L1767+16
13045	str	r7, [sp, #4]
13046	ldr	r3, [r2]
13047	add	r3, r3, r1
13048	str	r3, [r2]
13049.L1737:
13050	ldr	r3, [sp, #8]
13051	cbnz	r3, .L1754
13052	ldr	r3, .L1767+20
13053	ldrh	r3, [r3]
13054	cbnz	r3, .L1755
13055	ldr	r3, .L1767+24
13056	ldrh	r3, [r3]
13057	cmp	r3, #31
13058	bhi	.L1734
13059.L1755:
13060	movs	r1, #1
13061	movs	r0, #0
13062	bl	rk_ftl_garbage_collect
13063	b	.L1734
13064.L1754:
13065	movs	r2, #0
13066	add	r1, sp, #52
13067	mov	r0, r4
13068	bl	log2phys
13069	ldr	r3, [sp, #52]
13070	adds	r0, r3, #1
13071	bne	.L1738
13072	ldr	fp, .L1767+8
13073	mov	r10, #0
13074.L1739:
13075	ldrh	r0, [fp]
13076	cmp	r10, r0
13077	bcc	.L1741
13078.L1742:
13079	ldr	r3, [sp, #8]
13080	adds	r4, r4, #1
13081	subs	r3, r3, #1
13082	str	r3, [sp, #8]
13083	beq	.L1746
13084	ldr	r3, .L1767+28
13085	ldrh	r3, [r3]
13086	cmp	r5, r3, lsl #2
13087	bne	.L1737
13088.L1746:
13089	cmp	r5, #0
13090	beq	.L1737
13091	ldr	r3, .L1767+32
13092	movs	r2, #0
13093	mov	r1, r5
13094	mov	r10, #0
13095	ldr	r0, [r3]
13096	bl	FlashReadPages
13097	lsls	r3, r7, #9
13098	str	r3, [sp, #44]
13099	ldr	r3, [sp, #28]
13100	lsls	r3, r3, #9
13101	str	r3, [sp, #36]
13102	ldr	r3, [sp, #32]
13103	lsls	r3, r3, #9
13104	str	r3, [sp, #40]
13105.L1753:
13106	movs	r3, #20
13107	mul	fp, r3, r10
13108	ldr	r3, .L1767+32
13109	ldr	r2, [r3]
13110	ldr	r3, [sp, #16]
13111	add	r2, r2, fp
13112	ldr	r1, [r2, #16]
13113	cmp	r3, r1
13114	bne	.L1748
13115	ldr	r1, [r2, #8]
13116	ldr	r2, .L1767+36
13117	ldr	r2, [r2]
13118	cmp	r1, r2
13119	bne	.L1749
13120	ldr	r3, [sp, #36]
13121	mov	r0, r8
13122	ldr	r2, [sp, #40]
13123	add	r1, r1, r3
13124.L1766:
13125	bl	ftl_memcpy
13126.L1749:
13127	ldr	r3, .L1767+32
13128	ldr	r3, [r3]
13129	add	r2, r3, fp
13130	ldr	r3, [r3, fp]
13131	ldr	r0, [r2, #12]
13132	ldr	r1, [r2, #16]
13133	ldr	r0, [r0, #8]
13134	cmp	r1, r0
13135	itttt	ne
13136	ldrne	r0, .L1767+40
13137	ldrne	r1, [r0, #72]
13138	addne	r1, r1, #1
13139	strne	r1, [r0, #72]
13140	adds	r1, r3, #1
13141	bne	.L1751
13142	ldr	r1, .L1767+40
13143	str	r3, [sp, #4]
13144	ldr	r2, [r1, #72]
13145	adds	r2, r2, #1
13146	str	r2, [r1, #72]
13147.L1752:
13148	add	r10, r10, #1
13149	cmp	r5, r10
13150	bne	.L1753
13151	movs	r5, #0
13152	b	.L1737
13153.L1741:
13154	mla	r0, r0, r4, r10
13155	cmp	r6, r0
13156	bhi	.L1740
13157	ldr	r3, [sp, #12]
13158	cmp	r3, r0
13159	bls	.L1740
13160	subs	r0, r0, r6
13161	mov	r2, #512
13162	movs	r1, #0
13163	add	r0, r8, r0, lsl #9
13164	bl	ftl_memset
13165.L1740:
13166	add	r10, r10, #1
13167	b	.L1739
13168.L1738:
13169	ldr	r2, .L1767+32
13170	mov	r10, #20
13171	ldr	r2, [r2]
13172	mla	r10, r10, r5, r2
13173	str	r3, [r10, #4]
13174	ldr	r3, [sp, #16]
13175	cmp	r4, r3
13176	ldr	r3, .L1767+8
13177	bne	.L1743
13178	ldr	r2, .L1767+36
13179	mov	r0, r6
13180	ldrh	fp, [r3]
13181	ldr	r2, [r2]
13182	mov	r1, fp
13183	str	r2, [r10, #8]
13184	bl	__aeabi_uidivmod
13185	ldr	r2, [sp, #24]
13186	sub	r3, fp, r1
13187	str	r1, [sp, #28]
13188	cmp	r3, r2
13189	it	cs
13190	movcs	r3, r2
13191	cmp	fp, r3
13192	str	r3, [sp, #32]
13193	bne	.L1744
13194	str	r8, [r10, #8]
13195.L1744:
13196	ldr	r3, .L1767+44
13197	ldr	r2, .L1767+48
13198	str	r4, [r10, #16]
13199	ldrh	r3, [r3]
13200	ldr	r2, [r2]
13201	muls	r3, r5, r3
13202	adds	r5, r5, #1
13203	bic	r3, r3, #3
13204	add	r3, r3, r2
13205	str	r3, [r10, #12]
13206	b	.L1742
13207.L1743:
13208	ldr	r2, [sp, #20]
13209	cmp	r4, r2
13210	bne	.L1745
13211	ldr	r2, .L1767+52
13212	ldr	r1, [sp, #12]
13213	ldr	r2, [r2]
13214	str	r2, [r10, #8]
13215	ldrh	r2, [r3]
13216	mul	r3, r2, r4
13217	subs	r7, r1, r3
13218	cmp	r2, r7
13219	bne	.L1744
13220.L1765:
13221	subs	r3, r3, r6
13222	add	r3, r8, r3, lsl #9
13223	str	r3, [r10, #8]
13224	b	.L1744
13225.L1745:
13226	ldrh	r3, [r3]
13227	muls	r3, r4, r3
13228	b	.L1765
13229.L1748:
13230	ldr	r3, [sp, #20]
13231	cmp	r3, r1
13232	bne	.L1749
13233	ldr	r3, .L1767+52
13234	ldr	r1, [r2, #8]
13235	ldr	r2, [r3]
13236	cmp	r1, r2
13237	bne	.L1749
13238	ldr	r2, .L1767+8
13239	ldr	r3, [sp, #20]
13240	ldrh	r0, [r2]
13241	ldr	r2, [sp, #44]
13242	muls	r0, r3, r0
13243	subs	r0, r0, r6
13244	add	r0, r8, r0, lsl #9
13245	b	.L1766
13246.L1751:
13247	cmp	r3, #256
13248	bne	.L1752
13249	ldr	r0, [r2, #4]
13250	ubfx	r0, r0, #10, #16
13251	bl	P2V_block_in_plane
13252	bl	FtlGcRefreshBlock
13253	b	.L1752
13254.L1756:
13255	mov	r3, #-1
13256.L1757:
13257	str	r3, [sp, #4]
13258	b	.L1734
13259.L1768:
13260	.align	2
13261.L1767:
13262	.word	.LANCHOR34
13263	.word	.LANCHOR86
13264	.word	.LANCHOR12
13265	.word	.LANCHOR69
13266	.word	.LANCHOR62
13267	.word	.LANCHOR101
13268	.word	.LANCHOR48
13269	.word	.LANCHOR3
13270	.word	.LANCHOR112
13271	.word	.LANCHOR118
13272	.word	.LANCHOR81
13273	.word	.LANCHOR24
13274	.word	.LANCHOR124
13275	.word	.LANCHOR119
13276	.size	FtlRead, .-FtlRead
13277	.section	.text.sftl_read,"ax",%progbits
13278	.align	1
13279	.global	sftl_read
13280	.syntax unified
13281	.thumb
13282	.thumb_func
13283	.fpu softvfp
13284	.type	sftl_read, %function
13285sftl_read:
13286	@ args = 0, pretend = 0, frame = 0
13287	@ frame_needed = 0, uses_anonymous_args = 0
13288	@ link register save eliminated.
13289	mov	r3, r2
13290	mov	r2, r1
13291	mov	r1, r0
13292	movs	r0, #0
13293	b	FtlRead
13294	.size	sftl_read, .-sftl_read
13295	.section	.text.FtlWrite,"ax",%progbits
13296	.align	1
13297	.global	FtlWrite
13298	.syntax unified
13299	.thumb
13300	.thumb_func
13301	.fpu softvfp
13302	.type	FtlWrite, %function
13303FtlWrite:
13304	@ args = 0, pretend = 0, frame = 72
13305	@ frame_needed = 0, uses_anonymous_args = 0
13306	cmp	r0, #16
13307	push	{r4, r5, r6, r7, r8, r10, fp, lr}
13308	sub	sp, sp, #72
13309	str	r1, [sp, #4]
13310	str	r2, [sp, #20]
13311	str	r3, [sp, #16]
13312	bne	.L1771
13313	mov	r2, r3
13314	ldr	r3, [sp, #4]
13315	ldr	r1, [sp, #20]
13316	add	r0, r3, #256
13317	bl	FtlVendorPartWrite
13318.L1770:
13319	add	sp, sp, #72
13320	@ sp needed
13321	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13322.L1771:
13323	ldr	r3, [sp, #4]
13324	ldr	r2, [sp, #20]
13325	adds	r4, r3, r2
13326	ldr	r3, .L1822
13327	ldr	r3, [r3]
13328	cmp	r4, r3
13329	bhi	.L1808
13330	ldr	r3, .L1822+4
13331	ldr	r0, [r3]
13332	adds	r5, r0, #1
13333	beq	.L1770
13334	ldr	r3, .L1822+8
13335	mov	r2, #2048
13336	ldr	r0, [sp, #4]
13337	str	r2, [r3]
13338	ldr	r3, .L1822+12
13339	ldrh	r5, [r3]
13340	mov	r1, r5
13341	bl	__aeabi_uidiv
13342	mov	r1, r5
13343	str	r0, [sp, #12]
13344	subs	r0, r4, #1
13345	ldr	r5, .L1822+16
13346	bl	__aeabi_uidiv
13347	ldr	r2, [sp, #12]
13348	ldr	r1, [sp, #20]
13349	str	r0, [sp, #28]
13350	subs	r3, r0, r2
13351	ldr	r2, .L1822+20
13352	str	r3, [sp, #32]
13353	adds	r3, r3, #1
13354	str	r3, [sp, #8]
13355	ldr	r3, [r2]
13356	add	r3, r3, r1
13357	ldr	r1, [sp, #8]
13358	str	r3, [r2]
13359	ldr	r2, .L1822+24
13360	ldr	r3, [r2]
13361	add	r3, r3, r1
13362	str	r3, [r2]
13363	ldr	r3, .L1822+28
13364	ldr	r3, [r3]
13365	cbz	r3, .L1773
13366	ldrh	r2, [r5, #4]
13367	ldr	r3, .L1822+32
13368	cmp	r2, #0
13369	it	eq
13370	moveq	r5, r3
13371.L1773:
13372	ldr	r6, [sp, #12]
13373.L1774:
13374	ldr	r3, [sp, #8]
13375	cbnz	r3, .L1803
13376	ldr	r5, .L1822+36
13377	mov	r0, r3
13378	ldr	r1, [sp, #32]
13379	bl	rk_ftl_garbage_collect
13380	ldrh	r2, [r5]
13381	cmp	r2, #5
13382	bls	.L1804
13383.L1806:
13384	movs	r0, #0
13385	b	.L1770
13386.L1803:
13387	ldr	r3, .L1822+40
13388	ldrb	r2, [r5, #6]	@ zero_extendqisi2
13389	ldrh	r3, [r3]
13390	cmp	r2, r3
13391	bcc	.L1775
13392	movw	r2, #1013
13393	ldr	r1, .L1822+44
13394	ldr	r0, .L1822+48
13395	bl	printf
13396.L1775:
13397	ldrh	r2, [r5, #4]
13398	cbnz	r2, .L1776
13399	ldr	r3, .L1822+16
13400	ldr	r4, .L1822+28
13401	cmp	r5, r3
13402	bne	.L1777
13403	ldr	r0, .L1822+32
13404	ldrh	r5, [r0, #4]
13405	cbnz	r5, .L1778
13406	bl	allocate_new_data_superblock
13407	str	r5, [r4]
13408.L1778:
13409	ldr	r0, .L1822+16
13410	bl	allocate_new_data_superblock
13411	ldr	r5, .L1822+16
13412	ldr	r2, [r4]
13413	ldr	r3, .L1822+32
13414	cmp	r2, #0
13415	it	ne
13416	movne	r5, r3
13417.L1779:
13418	ldrh	r3, [r5, #4]
13419	cbnz	r3, .L1776
13420	mov	r0, r5
13421	bl	allocate_new_data_superblock
13422.L1776:
13423	ldrh	r2, [r5, #4]
13424	ldr	r3, [sp, #8]
13425	cmp	r2, r3
13426	it	cs
13427	movcs	r2, r3
13428	ldrb	r3, [r5, #7]	@ zero_extendqisi2
13429	lsls	r3, r3, #2
13430	cmp	r2, r3
13431	it	cs
13432	movcs	r2, r3
13433	ldr	r3, .L1822+40
13434	str	r2, [sp, #44]
13435	ldrb	r2, [r5, #6]	@ zero_extendqisi2
13436	ldrh	r3, [r3]
13437	cmp	r2, r3
13438	bcc	.L1780
13439	movw	r2, #1046
13440	ldr	r1, .L1822+44
13441	ldr	r0, .L1822+48
13442	bl	printf
13443.L1780:
13444	ldr	r8, .L1822+52
13445	mov	fp, #0
13446.L1781:
13447	ldr	r3, [sp, #44]
13448	cmp	fp, r3
13449	bne	.L1801
13450.L1782:
13451	ldr	r0, .L1822+52
13452	mov	r3, r5
13453	movs	r2, #0
13454	mov	r1, fp
13455	ldr	r0, [r0]
13456	bl	FtlProgPages
13457	ldr	r3, [sp, #8]
13458	cmp	fp, r3
13459	bls	.L1802
13460	movw	r2, #1123
13461	ldr	r1, .L1822+44
13462	ldr	r0, .L1822+48
13463	bl	printf
13464.L1802:
13465	ldr	r3, [sp, #8]
13466	sub	r3, r3, fp
13467	str	r3, [sp, #8]
13468	b	.L1774
13469.L1777:
13470	str	r2, [r4]
13471	ldrh	r2, [r3, #4]
13472	cbnz	r2, .L1813
13473	mov	r0, r5
13474	bl	allocate_new_data_superblock
13475	b	.L1779
13476.L1813:
13477	mov	r5, r3
13478	b	.L1776
13479.L1801:
13480	ldrh	r2, [r5, #4]
13481	cmp	r2, #0
13482	beq	.L1782
13483	movs	r2, #0
13484	add	r1, sp, #48
13485	mov	r0, r6
13486	movs	r7, #20
13487	bl	log2phys
13488	mov	r0, r5
13489	mul	r7, r7, fp
13490	bl	get_new_active_ppa
13491	ldr	r3, .L1822+56
13492	ldr	r1, [r8]
13493	ldrh	r2, [r3]
13494	add	r1, r1, r7
13495	str	r0, [r1, #4]
13496	str	r6, [r1, #16]
13497	mul	r0, r2, fp
13498	bic	r3, r0, #3
13499	ldr	r0, .L1822+60
13500	str	r3, [sp, #36]
13501	ldr	r3, [r0]
13502	ldr	r0, [sp, #36]
13503	str	r3, [sp, #40]
13504	add	r10, r3, r0
13505	str	r10, [r1, #12]
13506	mov	r0, r10
13507	movs	r1, #0
13508	bl	ftl_memset
13509	ldr	r3, [sp, #12]
13510	ldr	r2, .L1822+12
13511	cmp	r6, r3
13512	beq	.L1783
13513	ldr	r3, [sp, #28]
13514	cmp	r6, r3
13515	bne	.L1818
13516	ldrh	r2, [r2]
13517	ldr	r3, [sp, #4]
13518	ldr	r1, [sp, #20]
13519	smulbb	r2, r2, r6
13520	adds	r4, r3, r1
13521	movs	r3, #0
13522	subs	r4, r4, r2
13523	str	r3, [sp, #24]
13524	uxth	r4, r4
13525	b	.L1786
13526.L1783:
13527	ldrh	r4, [r2]
13528	ldr	r0, [sp, #4]
13529	mov	r1, r4
13530	bl	__aeabi_uidivmod
13531	ldr	r3, [sp, #20]
13532	subs	r4, r4, r1
13533	str	r1, [sp, #24]
13534	cmp	r4, r3
13535	it	cs
13536	movcs	r4, r3
13537.L1786:
13538	ldr	r2, .L1822+12
13539	ldr	r3, [sp, #12]
13540	ldrh	r2, [r2]
13541	cmp	r4, r2
13542	ldr	r2, [r8]
13543	bne	.L1787
13544	cmp	r6, r3
13545	add	r7, r7, r2
13546	ittet	ne
13547	mulne	r4, r4, r6
13548	ldrne	r3, [sp, #4]
13549	ldreq	r3, [sp, #16]
13550	subne	r4, r4, r3
13551	itett	ne
13552	ldrne	r3, [sp, #16]
13553	streq	r3, [r7, #8]
13554	addne	r4, r3, r4, lsl #9
13555	strne	r4, [r7, #8]
13556.L1789:
13557	ldr	r3, .L1822+40
13558	ldrb	r1, [r5, #6]	@ zero_extendqisi2
13559	ldrh	r2, [r3]
13560	cmp	r1, r2
13561	bcc	.L1798
13562	movw	r2, #1114
13563	ldr	r1, .L1822+44
13564	ldr	r0, .L1822+48
13565	bl	printf
13566.L1798:
13567	ldr	r3, [sp, #40]
13568	movw	r2, #61589
13569	ldr	r1, [sp, #36]
13570	add	fp, fp, #1
13571	strh	r2, [r3, r1]	@ movhi
13572	ldr	r1, .L1822+64
13573	str	r6, [r10, #8]
13574	adds	r6, r6, #1
13575	ldr	r2, [r1]
13576	str	r2, [r10, #4]
13577	adds	r2, r2, #1
13578	adds	r3, r2, #1
13579	it	eq
13580	moveq	r2, #0
13581	str	r2, [r1]
13582	ldr	r2, [sp, #48]
13583	str	r2, [r10, #12]
13584	ldrh	r2, [r5]
13585	strh	r2, [r10, #2]	@ movhi
13586	b	.L1781
13587.L1823:
13588	.align	2
13589.L1822:
13590	.word	.LANCHOR34
13591	.word	.LANCHOR86
13592	.word	.LANCHOR181
13593	.word	.LANCHOR12
13594	.word	.LANCHOR51
13595	.word	.LANCHOR68
13596	.word	.LANCHOR64
13597	.word	.LANCHOR182
13598	.word	.LANCHOR52
13599	.word	.LANCHOR48
13600	.word	.LANCHOR3
13601	.word	.LANCHOR183
13602	.word	.LC1
13603	.word	.LANCHOR114
13604	.word	.LANCHOR24
13605	.word	.LANCHOR124
13606	.word	.LANCHOR71
13607.L1787:
13608	cmp	r6, r3
13609	add	r2, r2, r7
13610	ite	eq
13611	ldreq	r1, .L1824
13612	ldrne	r1, .L1824+4
13613	ldr	r1, [r1]
13614	str	r1, [r2, #8]
13615	ldr	r2, [sp, #48]
13616	adds	r1, r2, #1
13617	beq	.L1792
13618	str	r2, [sp, #56]
13619	add	r0, sp, #52
13620	ldr	r2, [r8]
13621	str	r6, [sp, #68]
13622	add	r2, r2, r7
13623	ldr	r1, [r2, #8]
13624	ldr	r2, [r2, #12]
13625	str	r1, [sp, #60]
13626	movs	r1, #1
13627	str	r2, [sp, #64]
13628	movs	r2, #0
13629	bl	FlashReadPages
13630	ldr	r2, [sp, #52]
13631	adds	r2, r2, #1
13632	bne	.L1793
13633	ldr	r1, .L1824+8
13634	ldr	r2, [r1, #72]
13635	adds	r2, r2, #1
13636	str	r2, [r1, #72]
13637.L1796:
13638	ldr	r3, [sp, #12]
13639	lsls	r2, r4, #9
13640	cmp	r6, r3
13641	bne	.L1797
13642	ldr	r1, [r8]
13643	ldr	r3, [sp, #24]
13644	add	r7, r7, r1
13645	ldr	r1, [sp, #16]
13646	ldr	r0, [r7, #8]
13647	add	r0, r0, r3, lsl #9
13648.L1820:
13649	bl	ftl_memcpy
13650	b	.L1789
13651.L1793:
13652	ldr	r1, [r10, #8]
13653	cmp	r6, r1
13654	beq	.L1795
13655	ldr	r0, .L1824+8
13656	ldr	r2, [r0, #72]
13657	adds	r2, r2, #1
13658	str	r2, [r0, #72]
13659	mov	r2, r6
13660	ldr	r0, .L1824+12
13661	bl	printf
13662.L1795:
13663	ldr	r2, [r10, #8]
13664	cmp	r6, r2
13665	beq	.L1796
13666	movw	r2, #1099
13667	ldr	r1, .L1824+16
13668	ldr	r0, .L1824+20
13669	bl	printf
13670	b	.L1796
13671.L1792:
13672	ldr	r2, [r8]
13673	movs	r1, #0
13674	adds	r0, r2, r7
13675	ldr	r2, .L1824+24
13676	ldr	r0, [r0, #8]
13677	ldrh	r2, [r2]
13678	bl	ftl_memset
13679	b	.L1796
13680.L1797:
13681	ldr	r1, .L1824+28
13682	ldr	r3, [sp, #4]
13683	ldr	r0, [r8]
13684	ldrh	r1, [r1]
13685	add	r7, r7, r0
13686	ldr	r0, [r7, #8]
13687	muls	r1, r6, r1
13688	subs	r1, r1, r3
13689	ldr	r3, [sp, #16]
13690	add	r1, r3, r1, lsl #9
13691	b	.L1820
13692.L1818:
13693	ldrh	r2, [r2]
13694	ldr	r3, [sp, #4]
13695	ldr	r1, [r8]
13696	muls	r2, r6, r2
13697	add	r7, r7, r1
13698	subs	r2, r2, r3
13699	ldr	r3, [sp, #16]
13700	add	r2, r3, r2, lsl #9
13701	str	r2, [r7, #8]
13702	b	.L1789
13703.L1804:
13704	ldr	r6, .L1824+32
13705	mov	r4, #256
13706	ldr	r7, .L1824+36
13707.L1807:
13708	ldrh	r3, [r6]
13709	movw	r2, #65535
13710	cmp	r3, r2
13711	bne	.L1805
13712	ldrh	r2, [r7]
13713	cmp	r2, r3
13714	bne	.L1805
13715	movs	r0, #0
13716	bl	List_get_gc_head_node
13717	uxth	r0, r0
13718	bl	FtlGcRefreshBlock
13719.L1805:
13720	ldr	r2, .L1824+40
13721	movs	r3, #128
13722	movs	r1, #1
13723	mov	r0, r1
13724	strh	r3, [r2]	@ movhi
13725	ldr	r2, .L1824+44
13726	strh	r3, [r2]	@ movhi
13727	bl	rk_ftl_garbage_collect
13728	movs	r1, #1
13729	movs	r0, #0
13730	bl	rk_ftl_garbage_collect
13731	ldrh	r3, [r5]
13732	cmp	r3, #2
13733	bhi	.L1806
13734	subs	r4, r4, #1
13735	bne	.L1807
13736	b	.L1806
13737.L1808:
13738	mov	r0, #-1
13739	b	.L1770
13740.L1825:
13741	.align	2
13742.L1824:
13743	.word	.LANCHOR118
13744	.word	.LANCHOR119
13745	.word	.LANCHOR81
13746	.word	.LC113
13747	.word	.LANCHOR183
13748	.word	.LC1
13749	.word	.LANCHOR23
13750	.word	.LANCHOR12
13751	.word	.LANCHOR80
13752	.word	.LANCHOR99
13753	.word	.LANCHOR83
13754	.word	.LANCHOR82
13755	.size	FtlWrite, .-FtlWrite
13756	.section	.text.FtlMakeBbt,"ax",%progbits
13757	.align	1
13758	.global	FtlMakeBbt
13759	.syntax unified
13760	.thumb
13761	.thumb_func
13762	.fpu softvfp
13763	.type	FtlMakeBbt, %function
13764FtlMakeBbt:
13765	@ args = 0, pretend = 0, frame = 8
13766	@ frame_needed = 0, uses_anonymous_args = 0
13767	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
13768	movs	r6, #0
13769	ldr	r7, .L1845
13770	bl	FtlBbtMemInit
13771	sub	r8, r7, #18
13772	bl	FtlLoadFactoryBbt
13773.L1827:
13774	ldr	r3, .L1845+4
13775	ldrh	r3, [r3]
13776	cmp	r6, r3
13777	bcc	.L1833
13778	ldr	r5, .L1845+8
13779	movs	r4, #0
13780.L1834:
13781	ldrh	r3, [r5]
13782	uxth	r0, r4
13783	adds	r4, r4, #1
13784	cmp	r3, r0
13785	bhi	.L1835
13786	ldr	r4, .L1845+12
13787	movw	r6, #65535
13788	ldrh	r5, [r4, #12]
13789	subs	r5, r5, #1
13790	uxth	r5, r5
13791.L1836:
13792	ldrh	r3, [r4, #12]
13793	subs	r3, r3, #47
13794	cmp	r3, r5
13795	bgt	.L1840
13796	mov	r0, r5
13797	bl	FtlBbmIsBadBlock
13798	cmp	r0, #1
13799	beq	.L1837
13800	mov	r0, r5
13801	bl	FlashTestBlk
13802	cmp	r0, #0
13803	beq	.L1838
13804	mov	r0, r5
13805	bl	FtlBbmMapBadBlock
13806.L1837:
13807	subs	r5, r5, #1
13808	uxth	r5, r5
13809	b	.L1836
13810.L1833:
13811	ldr	r3, .L1845+16
13812	ldr	r5, .L1845+20
13813	ldrh	r2, [r8, #2]!
13814	ldr	r4, .L1845+24
13815	ldr	r0, [r3]
13816	movw	r3, #65535
13817	ldr	r10, [r5]
13818	cmp	r2, r3
13819	mov	fp, r4
13820	ldr	r3, .L1845+28
13821	str	r0, [r4, #8]
13822	str	r10, [r4, #12]
13823	beq	.L1828
13824	ldrh	r5, [r3]
13825	mov	r0, r4
13826	str	r3, [sp]
13827	mla	r5, r6, r5, r2
13828	lsls	r2, r5, #10
13829	str	r2, [r4, #4]
13830	movs	r2, #1
13831	mov	r1, r2
13832	bl	FlashReadPages
13833	ldr	r3, [sp]
13834	ldr	r1, [r4, #8]
13835	ldr	r0, [r7]
13836	ldrh	r2, [r3]
13837	adds	r2, r2, #7
13838	asrs	r2, r2, #3
13839	bl	ftl_memcpy
13840.L1829:
13841	uxth	r0, r5
13842	adds	r6, r6, #1
13843	adds	r7, r7, #4
13844	bl	FtlBbmMapBadBlock
13845	b	.L1827
13846.L1828:
13847	mov	r1, r6
13848	str	r3, [sp]
13849	bl	FlashGetBadBlockList
13850	ldr	r0, [r4, #8]
13851	ldr	r1, [r7]
13852	bl	FtlBbt2Bitmap
13853	ldr	r3, [sp]
13854	str	r5, [sp, #4]
13855	ldrh	r4, [r3]
13856	subs	r4, r4, #1
13857	uxth	r4, r4
13858.L1830:
13859	ldr	r3, [sp]
13860	ldrh	r0, [r3]
13861	smlabb	r0, r0, r6, r4
13862	uxth	r0, r0
13863	bl	FtlBbmIsBadBlock
13864	cmp	r0, #1
13865	beq	.L1831
13866	ldr	r3, [sp, #4]
13867	movs	r2, #16
13868	movs	r1, #0
13869	strh	r4, [r8]	@ movhi
13870	ldr	r0, [r3]
13871	bl	ftl_memset
13872	ldr	r3, .L1845+16
13873	mov	r2, #4096
13874	movs	r1, #0
13875	ldr	r0, [r3]
13876	bl	ftl_memset
13877	ldr	r2, [sp]
13878	movw	r3, #61664
13879	strh	r3, [r10]	@ movhi
13880	movs	r3, #0
13881	str	r3, [r10, #4]
13882	ldrh	r5, [r2]
13883	ldrh	r3, [r8]
13884	ldr	r1, [r7]
13885	ldr	r0, [fp, #8]
13886	strh	r3, [r10, #2]	@ movhi
13887	mla	r5, r6, r5, r3
13888	lsls	r3, r5, #10
13889	str	r3, [fp, #4]
13890	ldr	r3, .L1845+32
13891	ldrh	r2, [r3]
13892	lsls	r2, r2, #2
13893	bl	ftl_memcpy
13894	movs	r2, #1
13895	ldr	r0, .L1845+24
13896	mov	r1, r2
13897	bl	FlashEraseBlocks
13898	movs	r3, #1
13899	ldr	r0, .L1845+24
13900	mov	r2, r3
13901	mov	r1, r3
13902	bl	FlashProgPages
13903	ldr	r3, [fp]
13904	adds	r3, r3, #1
13905	bne	.L1829
13906	uxth	r0, r5
13907	bl	FtlBbmMapBadBlock
13908	b	.L1830
13909.L1831:
13910	subs	r4, r4, #1
13911	uxth	r4, r4
13912	b	.L1830
13913.L1835:
13914	bl	FtlBbmMapBadBlock
13915	b	.L1834
13916.L1838:
13917	ldrh	r3, [r4]
13918	cmp	r3, r6
13919	bne	.L1839
13920	strh	r5, [r4]	@ movhi
13921	b	.L1837
13922.L1839:
13923	strh	r5, [r4, #4]	@ movhi
13924.L1840:
13925	ldr	r3, .L1845+36
13926	movs	r5, #0
13927	str	r5, [r4, #8]
13928	movs	r1, #1
13929	movs	r2, #2
13930	strh	r5, [r4, #2]	@ movhi
13931	ldr	r0, [r3]
13932	ldrh	r3, [r4]
13933	lsls	r3, r3, #10
13934	str	r3, [r0, #4]
13935	ldrh	r3, [r4, #4]
13936	lsls	r3, r3, #10
13937	str	r3, [r0, #24]
13938	bl	FlashEraseBlocks
13939	ldrh	r0, [r4]
13940	bl	FtlBbmMapBadBlock
13941	ldrh	r0, [r4, #4]
13942	bl	FtlBbmMapBadBlock
13943	bl	FtlBbmTblFlush
13944	ldr	r3, [r4, #8]
13945	ldrh	r2, [r4, #4]
13946	strh	r5, [r4, #2]	@ movhi
13947	adds	r3, r3, #1
13948	str	r3, [r4, #8]
13949	ldrh	r3, [r4]
13950	strh	r2, [r4]	@ movhi
13951	strh	r3, [r4, #4]	@ movhi
13952	bl	FtlBbmTblFlush
13953	mov	r0, r5
13954	add	sp, sp, #8
13955	@ sp needed
13956	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13957.L1846:
13958	.align	2
13959.L1845:
13960	.word	.LANCHOR37+28
13961	.word	.LANCHOR10
13962	.word	.LANCHOR25
13963	.word	.LANCHOR37
13964	.word	.LANCHOR115
13965	.word	.LANCHOR123
13966	.word	.LANCHOR148
13967	.word	.LANCHOR17
13968	.word	.LANCHOR137
13969	.word	.LANCHOR106
13970	.size	FtlMakeBbt, .-FtlMakeBbt
13971	.section	.text.ftl_low_format,"ax",%progbits
13972	.align	1
13973	.global	ftl_low_format
13974	.syntax unified
13975	.thumb
13976	.thumb_func
13977	.fpu softvfp
13978	.type	ftl_low_format, %function
13979ftl_low_format:
13980	@ args = 0, pretend = 0, frame = 16
13981	@ frame_needed = 0, uses_anonymous_args = 0
13982	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
13983	movs	r3, #0
13984	ldr	r6, .L1871
13985	ldr	r2, .L1871+4
13986	ldr	r5, .L1871+8
13987	ldrh	r0, [r6]
13988	str	r3, [r2]
13989	str	r3, [r5]
13990	bl	FtlFreeSysBlkQueueInit
13991	bl	FtlLoadBbt
13992	cbz	r0, .L1848
13993	bl	FtlMakeBbt
13994.L1848:
13995	ldr	r3, .L1871+12
13996	ldr	r2, .L1871+16
13997	ldr	ip, .L1871+100
13998	ldrh	r1, [r3]
13999	ldr	r4, [r2]
14000	ldr	r2, .L1871+20
14001	str	r3, [sp, #4]
14002	lsls	r1, r1, #7
14003	ldr	r7, [r2]
14004	movs	r2, #0
14005.L1849:
14006	uxth	r3, r2
14007	adds	r2, r2, #1
14008	cmp	r3, r1
14009	blt	.L1850
14010	ldr	r3, .L1871+24
14011	movs	r7, #0
14012	ldr	r10, .L1871+104
14013	ldrh	r4, [r3]
14014	mov	r8, r3
14015	mov	fp, r10
14016.L1851:
14017	ldrh	r3, [r10]
14018	cmp	r3, r4
14019	bhi	.L1852
14020	ldr	r4, .L1871+28
14021	subs	r3, r7, #2
14022	ldrh	r1, [r4]
14023	cmp	r3, r1, lsl #1
14024	bgt	.L1853
14025.L1857:
14026	movs	r6, #0
14027	mov	r7, r6
14028.L1854:
14029	ldrh	r3, [r8]
14030	uxth	r0, r6
14031	adds	r6, r6, #1
14032	cmp	r3, r0
14033	bhi	.L1858
14034	ldrh	r2, [fp]
14035	ldr	r3, .L1871+32
14036	ldrh	r4, [r4]
14037	ldr	r6, .L1871+36
14038	str	r2, [r3]
14039	ldr	r3, .L1871+40
14040	mov	r1, r4
14041	ldr	r2, [r3]
14042	mov	r0, r2
14043	str	r2, [sp, #12]
14044	bl	__aeabi_uidiv
14045	ubfx	r10, r0, #5, #16
14046	mov	r3, r0
14047	str	r0, [r6]
14048	add	r1, r10, #36
14049	ldr	r0, .L1871+44
14050	strh	r1, [r0]	@ movhi
14051	movs	r1, #24
14052	muls	r1, r4, r1
14053	str	r0, [sp]
14054	cmp	r7, r1
14055	ble	.L1859
14056	ldr	r2, [sp, #12]
14057	mov	r1, r4
14058	str	r3, [sp, #8]
14059	subs	r0, r2, r7
14060	bl	__aeabi_uidiv
14061	ldr	r3, [sp]
14062	str	r0, [r6]
14063	lsrs	r0, r0, #5
14064	adds	r0, r0, #24
14065	strh	r0, [r3]	@ movhi
14066	ldr	r3, [sp, #8]
14067.L1859:
14068	ldr	r2, .L1871+48
14069	ldrh	r2, [r2]
14070	cbz	r2, .L1861
14071	ldr	r1, .L1871+44
14072	ldrh	r0, [r1]
14073	add	r0, r0, r2, lsr #1
14074	strh	r0, [r1]	@ movhi
14075	mul	r0, r4, r2
14076	cmp	r7, r0
14077	itttt	lt
14078	addlt	r2, r2, #32
14079	strlt	r3, [r6]
14080	addlt	r2, r2, r10
14081	strhlt	r2, [r1]	@ movhi
14082.L1861:
14083	ldr	r3, [sp]
14084	ldr	r7, .L1871+52
14085	ldr	r10, .L1871+108
14086	ldrh	r2, [r3]
14087	ldr	r3, [r6]
14088	subs	r3, r3, r2
14089	muls	r4, r3, r4
14090	ldr	r3, .L1871+56
14091	ldrh	r3, [r3]
14092	str	r4, [r7]
14093	muls	r4, r3, r4
14094	ldr	r3, [sp, #4]
14095	ldrh	r3, [r3]
14096	str	r4, [r6]
14097	ldr	r6, .L1871+60
14098	muls	r4, r3, r4
14099	ldr	r3, .L1871+64
14100	str	r4, [r3]
14101	movw	r4, #65535
14102	bl	FtlBbmTblFlush
14103	ldrh	r2, [fp]
14104	movs	r1, #0
14105	ldr	r0, [r10]
14106	lsls	r2, r2, #1
14107	bl	ftl_memset
14108	ldr	r2, .L1871+68
14109	movs	r3, #0
14110	strh	r3, [r6, #2]	@ movhi
14111	movs	r1, #255
14112	strb	r3, [r6, #6]
14113	str	r3, [r2]
14114	ldr	r2, .L1871+72
14115	strh	r3, [r6]	@ movhi
14116	strh	r3, [r2, #2]	@ movhi
14117	strb	r3, [r2, #6]
14118	strb	r3, [r2, #8]
14119	movs	r3, #1
14120	strh	r4, [r2]	@ movhi
14121	ldrh	r2, [r8]
14122	mov	r8, r10
14123	strb	r3, [r6, #8]
14124	mov	r10, r6
14125	ldr	r3, .L1871+76
14126	lsrs	r2, r2, #3
14127	ldr	r0, [r3]
14128	bl	ftl_memset
14129.L1863:
14130	mov	r0, r10
14131	bl	make_superblock
14132	ldrb	r3, [r6, #7]	@ zero_extendqisi2
14133	ldrh	r2, [r6]
14134	cmp	r3, #0
14135	bne	.L1864
14136	ldr	r3, [r8]
14137	strh	r4, [r3, r2, lsl #1]	@ movhi
14138	ldrh	r3, [r6]
14139	adds	r3, r3, #1
14140	strh	r3, [r6]	@ movhi
14141	b	.L1863
14142.L1850:
14143	mvns	r0, r3
14144	orr	r0, r3, r0, lsl #16
14145	str	r0, [r4, r3, lsl #2]
14146	str	ip, [r7, r3, lsl #2]
14147	b	.L1849
14148.L1852:
14149	mov	r0, r4
14150	movs	r1, #1
14151	bl	FtlLowFormatEraseBlock
14152	adds	r4, r4, #1
14153	add	r7, r7, r0
14154	uxth	r7, r7
14155	uxth	r4, r4
14156	b	.L1851
14157.L1853:
14158	mov	r0, r7
14159	bl	__aeabi_uidiv
14160	ldr	r3, .L1871+80
14161	ldr	r3, [r3]
14162	add	r0, r0, r3
14163	uxth	r0, r0
14164	bl	FtlSysBlkNumInit
14165	ldrh	r0, [r6]
14166	bl	FtlFreeSysBlkQueueInit
14167	ldrh	r6, [r8]
14168.L1855:
14169	ldrh	r3, [fp]
14170	cmp	r3, r6
14171	bls	.L1857
14172	mov	r0, r6
14173	movs	r1, #1
14174	adds	r6, r6, #1
14175	bl	FtlLowFormatEraseBlock
14176	uxth	r6, r6
14177	b	.L1855
14178.L1858:
14179	movs	r1, #0
14180	bl	FtlLowFormatEraseBlock
14181	add	r7, r7, r0
14182	uxth	r7, r7
14183	b	.L1854
14184.L1864:
14185	ldr	r3, [r5]
14186	ldrh	r1, [r6, #4]
14187	ldr	r4, .L1871+84
14188	str	r3, [r6, #12]
14189	adds	r3, r3, #1
14190	str	r3, [r5]
14191	ldr	r3, [r8]
14192	mov	r10, r4
14193	strh	r1, [r3, r2, lsl #1]	@ movhi
14194	movs	r3, #0
14195	strh	r3, [r4, #2]	@ movhi
14196	strb	r3, [r4, #6]
14197	ldrh	r3, [r6]
14198	movw	r6, #65535
14199	adds	r3, r3, #1
14200	strh	r3, [r4]	@ movhi
14201	movs	r3, #1
14202	strb	r3, [r4, #8]
14203.L1865:
14204	mov	r0, r10
14205	bl	make_superblock
14206	ldrb	r3, [r4, #7]	@ zero_extendqisi2
14207	ldrh	r2, [r4]
14208	cbnz	r3, .L1866
14209	ldr	r3, [r8]
14210	strh	r6, [r3, r2, lsl #1]	@ movhi
14211	ldrh	r3, [r4]
14212	adds	r3, r3, #1
14213	strh	r3, [r4]	@ movhi
14214	b	.L1865
14215.L1866:
14216	ldr	r3, [r5]
14217	ldrh	r1, [r4, #4]
14218	str	r3, [r4, #12]
14219	adds	r3, r3, #1
14220	str	r3, [r5]
14221	movw	r4, #65535
14222	ldr	r3, [r8]
14223	strh	r1, [r3, r2, lsl #1]	@ movhi
14224	ldr	r3, .L1871+88
14225	strh	r4, [r3]	@ movhi
14226	bl	FtlFreeSysBlkQueueOut
14227	ldr	r3, .L1871+92
14228	movs	r2, #0
14229	strh	r2, [r3, #2]	@ movhi
14230	ldr	r2, [r7]
14231	strh	r0, [r3]	@ movhi
14232	strh	r4, [r3, #4]	@ movhi
14233	strh	r2, [r3, #6]	@ movhi
14234	ldr	r2, [r5]
14235	str	r2, [r3, #8]
14236	adds	r2, r2, #1
14237	str	r2, [r5]
14238	bl	FtlVpcTblFlush
14239	bl	FtlSysBlkInit
14240	cbnz	r0, .L1867
14241	ldr	r3, .L1871+96
14242	movs	r2, #1
14243	str	r2, [r3]
14244.L1867:
14245	movs	r0, #0
14246	add	sp, sp, #16
14247	@ sp needed
14248	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14249.L1872:
14250	.align	2
14251.L1871:
14252	.word	.LANCHOR4
14253	.word	.LANCHOR71
14254	.word	.LANCHOR70
14255	.word	.LANCHOR12
14256	.word	.LANCHOR118
14257	.word	.LANCHOR119
14258	.word	.LANCHOR5
14259	.word	.LANCHOR3
14260	.word	.LANCHOR111
14261	.word	.LANCHOR61
14262	.word	.LANCHOR7
14263	.word	.LANCHOR78
14264	.word	.LANCHOR15
14265	.word	.LANCHOR152
14266	.word	.LANCHOR19
14267	.word	.LANCHOR51
14268	.word	.LANCHOR34
14269	.word	.LANCHOR59
14270	.word	.LANCHOR80
14271	.word	.LANCHOR1
14272	.word	.LANCHOR31
14273	.word	.LANCHOR52
14274	.word	.LANCHOR53
14275	.word	.LANCHOR79
14276	.word	.LANCHOR86
14277	.word	168778952
14278	.word	.LANCHOR6
14279	.word	.LANCHOR42
14280	.size	ftl_low_format, .-ftl_low_format
14281	.section	.text.ftl_memcmp,"ax",%progbits
14282	.align	1
14283	.global	ftl_memcmp
14284	.syntax unified
14285	.thumb
14286	.thumb_func
14287	.fpu softvfp
14288	.type	ftl_memcmp, %function
14289ftl_memcmp:
14290	@ args = 0, pretend = 0, frame = 0
14291	@ frame_needed = 0, uses_anonymous_args = 0
14292	@ link register save eliminated.
14293	b	memcmp
14294	.size	ftl_memcmp, .-ftl_memcmp
14295	.section	.text.FtlWriteToIDB,"ax",%progbits
14296	.align	1
14297	.global	FtlWriteToIDB
14298	.syntax unified
14299	.thumb
14300	.thumb_func
14301	.fpu softvfp
14302	.type	FtlWriteToIDB, %function
14303FtlWriteToIDB:
14304	@ args = 0, pretend = 0, frame = 104
14305	@ frame_needed = 0, uses_anonymous_args = 0
14306	push	{r4, r5, r6, r7, r8, r10, fp, lr}
14307	add	r8, r1, r0
14308	add	r10, r8, #-1
14309	sub	sp, sp, #112
14310	cmp	r10, #63
14311	mov	r4, r0
14312	mov	r6, r1
14313	mov	r7, r2
14314	ldr	r5, .L1946
14315	bls	.L1875
14316	cmp	r0, #576
14317	bcc	.L1876
14318.L1875:
14319	ldr	r3, [r5]
14320	cbnz	r3, .L1877
14321.L1945:
14322	movs	r4, #0
14323	b	.L1874
14324.L1877:
14325	ldr	r3, .L1946+4
14326	ldr	r3, [r3]
14327	ldr	r2, [r3]
14328	str	r3, [sp, #12]
14329	ldr	r3, .L1946+8
14330	cmp	r2, r3
14331	bne	.L1879
14332	ldr	r3, .L1946+12
14333	movs	r2, #0
14334	ldrh	r1, [r3, #10]
14335	ldr	r3, [sp, #12]
14336	add	r0, r3, #262144
14337	movw	r3, #65535
14338.L1883:
14339	ldr	r4, [r0, #-4]
14340	cbnz	r4, .L1880
14341	ldr	r4, [sp, #12]
14342	subs	r3, r3, #1
14343	ldr	r4, [r4, r2, lsl #2]
14344	adds	r2, r2, #1
14345	cmp	r2, #4096
14346	it	hi
14347	movhi	r2, #0
14348	cmp	r3, #4096
14349	str	r4, [r0, #-4]!
14350	bne	.L1883
14351	mov	r3, #512
14352	b	.L1942
14353.L1880:
14354	adds	r3, r3, #127
14355	lsrs	r3, r3, #7
14356.L1942:
14357	str	r3, [sp, #16]
14358	lsls	r1, r1, #2
14359	ldr	r3, [sp, #16]
14360	uxth	r1, r1
14361	ldr	r4, .L1946+16
14362	adds	r0, r3, #4
14363	bl	__aeabi_uidiv
14364	adds	r3, r0, #1
14365	str	r3, [sp, #24]
14366	ldr	r3, [sp, #16]
14367	lsls	r3, r3, #7
14368	str	r3, [sp, #36]
14369	movs	r3, #0
14370	mov	r10, r3
14371	str	r3, [sp, #20]
14372.L1906:
14373	ldr	r3, .L1946+20
14374	mov	r2, #512
14375	movs	r1, #0
14376	ldr	r0, [r3]
14377	bl	memset
14378	ldr	r3, .L1946+12
14379	ldrh	r6, [r3, #10]
14380	ldr	r3, [r4, #16]
14381	mul	fp, r10, r6
14382	cmp	r3, #0
14383	beq	.L1914
14384	ldr	r3, [r4, #20]
14385	cmp	r3, #0
14386	ite	eq
14387	moveq	r3, #6
14388	movne	r3, #9
14389.L1943:
14390	str	r3, [sp, #28]
14391	mov	r1, fp
14392	ldr	r3, .L1946+16
14393	movs	r0, #0
14394	ldr	r3, [r3, #4]
14395	blx	r3
14396	ldr	r3, [sp, #24]
14397	cmp	r3, #1
14398	beq	.L1885
14399	ldr	r3, .L1946+16
14400	add	r1, r6, fp
14401	movs	r0, #0
14402	ldr	r3, [r3, #4]
14403	blx	r3
14404.L1885:
14405	ldr	r3, [sp, #28]
14406	cmp	r3, #9
14407	bne	.L1916
14408	ldr	r3, .L1946+20
14409	mov	r2, #1024
14410	movs	r1, #0
14411	ldr	r5, [r3]
14412	mov	r0, r5
14413	bl	ftl_memset
14414	ldr	r2, .L1946+24
14415	movs	r3, #12
14416	add	r1, r5, #11
14417	add	r0, r5, #23
14418	stm	r5, {r2, r3}
14419	movs	r2, #4
14420	strb	r2, [r5, #17]
14421	movs	r3, #0
14422	ldr	r2, .L1946+12
14423	str	r3, [r5, #12]
14424	strb	r3, [r5, #16]
14425	ldrh	r2, [r2, #10]
14426	strb	r3, [r5, #20]
14427	strh	r3, [r5, #22]	@ movhi
14428	ldr	r3, .L1946+28
14429	strh	r2, [r5, #18]	@ movhi
14430	movs	r2, #16
14431	strb	r2, [r5, #21]
14432.L1887:
14433	lsrs	r2, r3, #2
14434	ldrb	ip, [r1, #1]!	@ zero_extendqisi2
14435	add	r2, r2, r3, lsl #5
14436	cmp	r0, r1
14437	add	r2, r2, ip
14438	eor	r3, r3, r2
14439	bne	.L1887
14440	str	r3, [r5, #8]
14441.L1886:
14442	ldr	r3, [sp, #24]
14443	mov	r8, fp
14444	muls	r3, r6, r3
14445	movs	r6, #0
14446	str	r3, [sp, #40]
14447	ldr	r3, [sp, #12]
14448	str	r3, [sp, #32]
14449.L1888:
14450	ldr	r3, [sp, #40]
14451	cmp	r6, r3
14452	beq	.L1895
14453	ldr	r3, [sp, #28]
14454	cmp	r3, #9
14455	itet	ne
14456	addne	r3, fp, r6
14457	addeq	r3, r8, #1
14458	lslne	r3, r3, #2
14459	str	r3, [sp, #48]
14460	movw	r3, #61424
14461	str	r3, [sp, #52]
14462	cmp	r6, #0
14463	bne	.L1891
14464	ldr	r3, [sp, #28]
14465	cmp	r3, #9
14466	bne	.L1891
14467	ldr	r3, [r4, #16]
14468	movs	r0, #70
14469	blx	r3
14470	add	r3, sp, #48
14471	mov	r2, r5
14472	mov	r1, fp
14473	mov	r0, r6
14474	ldr	r7, [r4, #8]
14475	blx	r7
14476	ldr	r2, .L1946+12
14477	str	r0, [sp, #44]
14478	ldr	r3, [r4, #16]
14479	ldrb	r0, [r2, #22]	@ zero_extendqisi2
14480	blx	r3
14481	ldr	r2, [sp, #44]
14482	adds	r2, r2, #1
14483	bne	.L1892
14484.L1895:
14485	ldr	r3, .L1946+20
14486	ldr	r2, [r4, #16]
14487	ldr	r6, [r3]
14488	ldr	r3, .L1946+12
14489	ldrb	r3, [r3, #14]	@ zero_extendqisi2
14490	str	r3, [sp, #28]
14491	ldr	r3, .L1946+12
14492	ldrh	r3, [r3, #10]
14493	mul	r8, r10, r3
14494	cmp	r2, #0
14495	bne	.L1893
14496	mov	fp, #6
14497.L1894:
14498	ldr	r2, [sp, #24]
14499	movs	r5, #0
14500	muls	r3, r2, r3
14501	str	r3, [sp, #32]
14502.L1897:
14503	ldr	r3, [sp, #32]
14504	cmp	r5, r3
14505	beq	.L1901
14506	cmp	r5, #0
14507	bne	.L1898
14508	cmp	fp, #9
14509	bne	.L1898
14510	ldr	r3, [r4, #16]
14511	movs	r0, #70
14512	blx	r3
14513	ldr	r3, [r4, #20]
14514	movs	r0, #2
14515	blx	r3
14516	mov	r2, r6
14517	mov	r1, r8
14518	add	r3, sp, #48
14519	mov	r0, r5
14520	ldr	r7, [r4, #12]
14521	blx	r7
14522	ldr	r3, [r4, #20]
14523	ldr	r0, [sp, #28]
14524	blx	r3
14525	ldr	r2, .L1946+12
14526	ldr	r3, [r4, #16]
14527	ldrb	r0, [r2, #22]	@ zero_extendqisi2
14528	blx	r3
14529	ldr	r3, [r6]
14530	ldr	r2, .L1946+24
14531	cmp	r3, r2
14532	beq	.L1899
14533.L1901:
14534	ldr	r3, .L1946+20
14535	movs	r5, #0
14536	ldr	r1, [sp, #12]
14537	ldr	r0, [r3]
14538.L1900:
14539	mov	r8, r1
14540	ldr	r2, [r0, r5, lsl #2]
14541	ldr	r3, [r8]
14542	lsls	r6, r5, #2
14543	adds	r1, r1, #4
14544	cmp	r2, r3
14545	beq	.L1903
14546	mov	r2, #512
14547	movs	r1, #0
14548	bl	memset
14549	ldr	r3, .L1946+20
14550	mov	r1, r10
14551	ldr	r0, .L1946+32
14552	ldr	r2, [r3]
14553	str	r5, [sp]
14554	ldr	r3, [r8]
14555	ldr	r2, [r2, r6]
14556	bl	printf
14557	ldr	r3, .L1946+12
14558	movs	r0, #0
14559	ldrh	r1, [r3, #10]
14560	ldr	r3, [r4, #4]
14561	mul	r1, r10, r1
14562	blx	r3
14563.L1904:
14564	ldr	r3, [sp, #24]
14565	add	r10, r10, r3
14566	cmp	r10, #15
14567	bls	.L1906
14568	ldr	r3, [sp, #20]
14569	cbnz	r3, .L1907
14570.L1879:
14571	mov	r3, #-1
14572	str	r3, [sp, #16]
14573.L1907:
14574	ldr	r3, .L1946
14575	movs	r2, #0
14576	ldr	r4, [sp, #16]
14577	str	r2, [r3]
14578	ldr	r3, .L1946+4
14579	ldr	r0, [r3]
14580	bl	free
14581	ldr	r3, .L1946+20
14582	ldr	r0, [r3]
14583	bl	free
14584.L1874:
14585	mov	r0, r4
14586	add	sp, sp, #112
14587	@ sp needed
14588	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14589.L1914:
14590	movs	r3, #6
14591	b	.L1943
14592.L1916:
14593	movs	r5, #0
14594	b	.L1886
14595.L1891:
14596	add	r3, sp, #48
14597	ldr	r2, [sp, #32]
14598	mov	r1, r8
14599	movs	r0, #0
14600	ldr	r7, [r4, #8]
14601	blx	r7
14602	adds	r0, r0, #1
14603	beq	.L1895
14604	ldr	r3, [sp, #32]
14605	add	r3, r3, #2048
14606	str	r3, [sp, #32]
14607.L1892:
14608	adds	r6, r6, #1
14609	add	r8, r8, #1
14610	b	.L1888
14611.L1893:
14612	ldr	r2, [r4, #20]
14613	cmp	r2, #0
14614	ite	eq
14615	moveq	fp, #6
14616	movne	fp, #9
14617	b	.L1894
14618.L1947:
14619	.align	2
14620.L1946:
14621	.word	.LANCHOR184
14622	.word	.LANCHOR185
14623	.word	-52655045
14624	.word	.LANCHOR0
14625	.word	.LANCHOR105
14626	.word	.LANCHOR186
14627	.word	1179535694
14628	.word	1204201446
14629	.word	.LC114
14630.L1898:
14631	add	r3, sp, #48
14632	mov	r2, r6
14633	add	r1, r8, r5
14634	movs	r0, #0
14635	ldr	r7, [r4, #12]
14636	blx	r7
14637	adds	r0, r0, #1
14638	beq	.L1901
14639	ldr	r2, [sp, #52]
14640	movw	r3, #61424
14641	cmp	r2, r3
14642	bne	.L1901
14643	add	r6, r6, #2048
14644.L1899:
14645	adds	r5, r5, #1
14646	b	.L1897
14647.L1903:
14648	ldr	r3, [sp, #36]
14649	adds	r5, r5, #1
14650	cmp	r5, r3
14651	bne	.L1900
14652	ldr	r3, [sp, #20]
14653	adds	r3, r3, #1
14654	cmp	r3, #5
14655	str	r3, [sp, #20]
14656	bls	.L1904
14657	b	.L1907
14658.L1876:
14659	cmp	r0, #64
14660	bne	.L1908
14661	ldr	fp, .L1948+4
14662	mov	r0, #262144
14663	bl	ftl_malloc
14664	str	r0, [fp]
14665	mov	r0, #262144
14666	bl	ftl_malloc
14667	ldr	r3, .L1948
14668	str	r0, [r3]
14669	ldr	r3, [fp]
14670	cbz	r3, .L1909
14671	cbz	r0, .L1909
14672	movs	r2, #1
14673	movs	r1, #0
14674	str	r2, [r5]
14675	mov	r0, r3
14676	mov	r2, #262144
14677	bl	ftl_memset
14678.L1908:
14679	ldr	r3, [r5]
14680	cmp	r3, #0
14681	beq	.L1945
14682	ldr	r3, .L1948+4
14683	cmp	r4, #63
14684	iteee	hi
14685	ldrhi	r5, .L1948+8
14686	rsbls	r4, r4, #64
14687	subls	r6, r6, r4
14688	addls	r7, r7, r4, lsl #9
14689	ldr	r1, [r3]
14690	mov	r2, #262144
14691	it	hi
14692	addhi	r5, r5, r4
14693	ldr	r0, .L1948+12
14694	ite	ls
14695	movls	r5, r1
14696	addhi	r5, r1, r5, lsl #9
14697	cmp	r10, #576
14698	itt	cs
14699	subcs	r6, r6, r8
14700	subcs	r6, r6, #446
14701	mov	r3, r5
14702	str	r6, [sp]
14703	bl	printf
14704	lsls	r2, r6, #9
14705	mov	r1, r7
14706	mov	r0, r5
14707	bl	ftl_memcpy
14708	b	.L1945
14709.L1909:
14710	ldr	r1, .L1948+16
14711	ldr	r0, .L1948+20
14712	bl	printf
14713	b	.L1908
14714.L1949:
14715	.align	2
14716.L1948:
14717	.word	.LANCHOR186
14718	.word	.LANCHOR185
14719	.word	8388544
14720	.word	.LC116
14721	.word	.LANCHOR187
14722	.word	.LC115
14723	.size	FtlWriteToIDB, .-FtlWriteToIDB
14724	.section	.text.sftl_write,"ax",%progbits
14725	.align	1
14726	.global	sftl_write
14727	.syntax unified
14728	.thumb
14729	.thumb_func
14730	.fpu softvfp
14731	.type	sftl_write, %function
14732sftl_write:
14733	@ args = 0, pretend = 0, frame = 0
14734	@ frame_needed = 0, uses_anonymous_args = 0
14735	push	{r4, r5, r6, lr}
14736	mov	r5, r1
14737	mov	r6, r2
14738	mov	r4, r0
14739	bl	FtlWriteToIDB
14740	mov	r3, r6
14741	mov	r2, r5
14742	mov	r1, r4
14743	movs	r0, #0
14744	pop	{r4, r5, r6, lr}
14745	b	FtlWrite
14746	.size	sftl_write, .-sftl_write
14747	.global	g_nand_ops
14748	.global	g_nand_phy_info
14749	.global	gc_ink_free_return_value
14750	.global	check_vpc_table
14751	.global	FtlUpdateVaildLpnCount
14752	.global	g_ect_tbl_power_up_flush
14753	.global	power_up_flag
14754	.global	gFtlInitStatus
14755	.global	DeviceCapacity
14756	.global	g_power_lost_recovery_flag
14757	.global	c_mlc_erase_count_value
14758	.global	g_recovery_ppa_tbl
14759	.global	g_recovery_page_min_ver
14760	.global	g_recovery_page_num
14761	.global	sftl_nand_check_spare_buf
14762	.global	sftl_temp_buf
14763	.global	sftl_nand_check_buf
14764	.global	g_cur_erase_blk
14765	.global	g_gc_skip_write_count
14766	.global	g_gc_head_data_block_count
14767	.global	g_gc_head_data_block
14768	.global	g_ftl_nand_free_count
14769	.global	g_in_swl_replace
14770	.global	g_in_gc_progress
14771	.global	g_max_erase_count
14772	.global	g_totle_sys_slc_erase_count
14773	.global	g_totle_slc_erase_count
14774	.global	g_min_erase_count
14775	.global	g_totle_avg_erase_count
14776	.global	g_totle_mlc_erase_count
14777	.global	g_totle_l2p_write_count
14778	.global	g_totle_cache_write_count
14779	.global	g_tmp_data_superblock_id
14780	.global	g_totle_read_page_count
14781	.global	g_totle_discard_page_count
14782	.global	g_totle_read_sector
14783	.global	g_totle_write_sector
14784	.global	g_totle_write_page_count
14785	.global	g_totle_gc_page_count
14786	.global	g_gc_blk_index
14787	.global	g_gc_merge_free_blk_threshold
14788	.global	g_gc_free_blk_threshold
14789	.global	g_gc_bad_block_temp_tbl
14790	.global	g_gc_bad_block_gc_index
14791	.global	g_gc_bad_block_temp_num
14792	.global	g_gc_next_blk_1
14793	.global	g_gc_next_blk
14794	.global	g_gc_cur_blk_max_valid_pages
14795	.global	g_gc_cur_blk_valid_pages
14796	.global	g_gc_page_offset
14797	.global	g_gc_blk_num
14798	.global	p_gc_blk_tbl
14799	.global	p_gc_page_info
14800	.global	g_sys_ext_data
14801	.global	g_sys_save_data
14802	.global	gp_last_act_superblock
14803	.global	g_gc_superblock
14804	.global	g_gc_temp_superblock
14805	.global	g_buffer_superblock
14806	.global	g_active_superblock
14807	.global	g_num_data_superblocks
14808	.global	g_num_free_superblocks
14809	.global	p_data_block_list_tail
14810	.global	p_data_block_list_head
14811	.global	p_free_data_block_list_head
14812	.global	p_data_block_list_table
14813	.global	g_l2p_last_update_region_id
14814	.global	p_l2p_map_buf
14815	.global	p_l2p_ram_map
14816	.global	g_totle_vendor_block
14817	.global	p_vendor_region_ppn_table
14818	.global	p_vendor_block_ver_table
14819	.global	p_vendor_block_valid_page_count
14820	.global	p_vendor_block_table
14821	.global	g_totle_map_block
14822	.global	p_map_region_ppn_table
14823	.global	p_map_block_ver_table
14824	.global	p_map_block_valid_page_count
14825	.global	p_map_block_table
14826	.global	p_blk_mode_table
14827	.global	p_valid_page_count_check_table
14828	.global	p_valid_page_count_table
14829	.global	g_totle_swl_count
14830	.global	p_swl_mul_table
14831	.global	p_erase_count_table
14832	.global	g_ect_tbl_info_size
14833	.global	gp_ect_tbl_info
14834	.global	g_gc_num_req
14835	.global	c_gc_page_buf_num
14836	.global	gp_gc_page_buf_info
14837	.global	p_gc_data_buf
14838	.global	p_gc_spare_buf
14839	.global	p_io_spare_buf
14840	.global	p_io_data_buf_1
14841	.global	p_io_data_buf_0
14842	.global	p_sys_spare_buf
14843	.global	p_vendor_data_buf
14844	.global	p_sys_data_buf_1
14845	.global	p_sys_data_buf
14846	.global	p_plane_order_table
14847	.global	req_gc_dst
14848	.global	req_gc
14849	.global	req_erase
14850	.global	req_prgm
14851	.global	req_read
14852	.global	req_sys
14853	.global	gVendorBlkInfo
14854	.global	gL2pMapInfo
14855	.global	gSysFreeQueue
14856	.global	gSysInfo
14857	.global	gBbtInfo
14858	.global	g_MaxLbn
14859	.global	g_VaildLpn
14860	.global	g_MaxLpn
14861	.global	g_MaxLbaSector
14862	.global	g_GlobalDataVersion
14863	.global	g_GlobalSysVersion
14864	.global	ftl_gc_temp_power_lost_recovery_flag
14865	.global	c_ftl_nand_max_data_blks
14866	.global	c_ftl_nand_data_op_blks_per_plane
14867	.global	c_ftl_nand_data_blks_per_plane
14868	.global	c_ftl_nand_max_sys_blks
14869	.global	c_ftl_nand_init_sys_blks_per_plane
14870	.global	c_ftl_nand_sys_blks_per_plane
14871	.global	c_ftl_vendor_part_size
14872	.global	c_ftl_nand_max_vendor_blks
14873	.global	c_ftl_nand_max_map_blks
14874	.global	c_ftl_nand_map_blks_per_plane
14875	.global	c_ftl_nand_vendor_region_num
14876	.global	c_ftl_nand_l2pmap_ram_region_num
14877	.global	c_ftl_nand_map_region_num
14878	.global	c_ftl_nand_totle_phy_blks
14879	.global	c_ftl_nand_reserved_blks
14880	.global	c_ftl_nand_byte_pre_oob
14881	.global	c_ftl_nand_byte_pre_page
14882	.global	c_ftl_nand_sec_pre_page_shift
14883	.global	c_ftl_nand_sec_pre_page
14884	.global	c_ftl_nand_page_pre_super_blk
14885	.global	c_ftl_nand_page_pre_slc_blk
14886	.global	c_ftl_nand_page_pre_blk
14887	.global	c_ftl_nand_bbm_buf_size
14888	.global	c_ftl_nand_ext_blk_pre_plane
14889	.global	c_ftl_nand_blk_pre_plane
14890	.global	c_ftl_nand_planes_num
14891	.global	c_ftl_nand_blks_per_die_shift
14892	.global	c_ftl_nand_blks_per_die
14893	.global	c_ftl_nand_planes_per_die
14894	.global	c_ftl_nand_die_num
14895	.global	c_ftl_nand_type
14896	.section	.bss.DeviceCapacity,"aw",%nobits
14897	.align	2
14898	.set	.LANCHOR26,. + 0
14899	.type	DeviceCapacity, %object
14900	.size	DeviceCapacity, 4
14901DeviceCapacity:
14902	.space	4
14903	.section	.bss.FtlUpdateVaildLpnCount,"aw",%nobits
14904	.align	1
14905	.set	.LANCHOR58,. + 0
14906	.type	FtlUpdateVaildLpnCount, %object
14907	.size	FtlUpdateVaildLpnCount, 2
14908FtlUpdateVaildLpnCount:
14909	.space	2
14910	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",%nobits
14911	.align	1
14912	.set	.LANCHOR137,. + 0
14913	.type	c_ftl_nand_bbm_buf_size, %object
14914	.size	c_ftl_nand_bbm_buf_size, 2
14915c_ftl_nand_bbm_buf_size:
14916	.space	2
14917	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",%nobits
14918	.align	1
14919	.set	.LANCHOR6,. + 0
14920	.type	c_ftl_nand_blk_pre_plane, %object
14921	.size	c_ftl_nand_blk_pre_plane, 2
14922c_ftl_nand_blk_pre_plane:
14923	.space	2
14924	.section	.bss.c_ftl_nand_blks_per_die,"aw",%nobits
14925	.align	1
14926	.set	.LANCHOR17,. + 0
14927	.type	c_ftl_nand_blks_per_die, %object
14928	.size	c_ftl_nand_blks_per_die, 2
14929c_ftl_nand_blks_per_die:
14930	.space	2
14931	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits
14932	.align	1
14933	.set	.LANCHOR18,. + 0
14934	.type	c_ftl_nand_blks_per_die_shift, %object
14935	.size	c_ftl_nand_blks_per_die_shift, 2
14936c_ftl_nand_blks_per_die_shift:
14937	.space	2
14938	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",%nobits
14939	.align	1
14940	.set	.LANCHOR24,. + 0
14941	.type	c_ftl_nand_byte_pre_oob, %object
14942	.size	c_ftl_nand_byte_pre_oob, 2
14943c_ftl_nand_byte_pre_oob:
14944	.space	2
14945	.section	.bss.c_ftl_nand_byte_pre_page,"aw",%nobits
14946	.align	1
14947	.set	.LANCHOR23,. + 0
14948	.type	c_ftl_nand_byte_pre_page, %object
14949	.size	c_ftl_nand_byte_pre_page, 2
14950c_ftl_nand_byte_pre_page:
14951	.space	2
14952	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits
14953	.align	1
14954	.set	.LANCHOR5,. + 0
14955	.type	c_ftl_nand_data_blks_per_plane, %object
14956	.size	c_ftl_nand_data_blks_per_plane, 2
14957c_ftl_nand_data_blks_per_plane:
14958	.space	2
14959	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits
14960	.align	1
14961	.set	.LANCHOR78,. + 0
14962	.type	c_ftl_nand_data_op_blks_per_plane, %object
14963	.size	c_ftl_nand_data_op_blks_per_plane, 2
14964c_ftl_nand_data_op_blks_per_plane:
14965	.space	2
14966	.section	.bss.c_ftl_nand_die_num,"aw",%nobits
14967	.align	1
14968	.set	.LANCHOR10,. + 0
14969	.type	c_ftl_nand_die_num, %object
14970	.size	c_ftl_nand_die_num, 2
14971c_ftl_nand_die_num:
14972	.space	2
14973	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits
14974	.align	1
14975	.set	.LANCHOR15,. + 0
14976	.type	c_ftl_nand_ext_blk_pre_plane, %object
14977	.size	c_ftl_nand_ext_blk_pre_plane, 2
14978c_ftl_nand_ext_blk_pre_plane:
14979	.space	2
14980	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits
14981	.align	2
14982	.set	.LANCHOR31,. + 0
14983	.type	c_ftl_nand_init_sys_blks_per_plane, %object
14984	.size	c_ftl_nand_init_sys_blks_per_plane, 4
14985c_ftl_nand_init_sys_blks_per_plane:
14986	.space	4
14987	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits
14988	.align	1
14989	.set	.LANCHOR33,. + 0
14990	.type	c_ftl_nand_l2pmap_ram_region_num, %object
14991	.size	c_ftl_nand_l2pmap_ram_region_num, 2
14992c_ftl_nand_l2pmap_ram_region_num:
14993	.space	2
14994	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits
14995	.align	1
14996	.set	.LANCHOR29,. + 0
14997	.type	c_ftl_nand_map_blks_per_plane, %object
14998	.size	c_ftl_nand_map_blks_per_plane, 2
14999c_ftl_nand_map_blks_per_plane:
15000	.space	2
15001	.section	.bss.c_ftl_nand_map_region_num,"aw",%nobits
15002	.align	1
15003	.set	.LANCHOR32,. + 0
15004	.type	c_ftl_nand_map_region_num, %object
15005	.size	c_ftl_nand_map_region_num, 2
15006c_ftl_nand_map_region_num:
15007	.space	2
15008	.section	.bss.c_ftl_nand_max_data_blks,"aw",%nobits
15009	.align	2
15010	.set	.LANCHOR7,. + 0
15011	.type	c_ftl_nand_max_data_blks, %object
15012	.size	c_ftl_nand_max_data_blks, 4
15013c_ftl_nand_max_data_blks:
15014	.space	4
15015	.section	.bss.c_ftl_nand_max_map_blks,"aw",%nobits
15016	.align	2
15017	.set	.LANCHOR30,. + 0
15018	.type	c_ftl_nand_max_map_blks, %object
15019	.size	c_ftl_nand_max_map_blks, 4
15020c_ftl_nand_max_map_blks:
15021	.space	4
15022	.section	.bss.c_ftl_nand_max_sys_blks,"aw",%nobits
15023	.align	2
15024	.set	.LANCHOR4,. + 0
15025	.type	c_ftl_nand_max_sys_blks, %object
15026	.size	c_ftl_nand_max_sys_blks, 4
15027c_ftl_nand_max_sys_blks:
15028	.space	4
15029	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",%nobits
15030	.align	1
15031	.set	.LANCHOR27,. + 0
15032	.type	c_ftl_nand_max_vendor_blks, %object
15033	.size	c_ftl_nand_max_vendor_blks, 2
15034c_ftl_nand_max_vendor_blks:
15035	.space	2
15036	.section	.bss.c_ftl_nand_page_pre_blk,"aw",%nobits
15037	.align	1
15038	.set	.LANCHOR19,. + 0
15039	.type	c_ftl_nand_page_pre_blk, %object
15040	.size	c_ftl_nand_page_pre_blk, 2
15041c_ftl_nand_page_pre_blk:
15042	.space	2
15043	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits
15044	.align	1
15045	.set	.LANCHOR20,. + 0
15046	.type	c_ftl_nand_page_pre_slc_blk, %object
15047	.size	c_ftl_nand_page_pre_slc_blk, 2
15048c_ftl_nand_page_pre_slc_blk:
15049	.space	2
15050	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits
15051	.align	1
15052	.set	.LANCHOR21,. + 0
15053	.type	c_ftl_nand_page_pre_super_blk, %object
15054	.size	c_ftl_nand_page_pre_super_blk, 2
15055c_ftl_nand_page_pre_super_blk:
15056	.space	2
15057	.section	.bss.c_ftl_nand_planes_num,"aw",%nobits
15058	.align	1
15059	.set	.LANCHOR3,. + 0
15060	.type	c_ftl_nand_planes_num, %object
15061	.size	c_ftl_nand_planes_num, 2
15062c_ftl_nand_planes_num:
15063	.space	2
15064	.section	.bss.c_ftl_nand_planes_per_die,"aw",%nobits
15065	.align	1
15066	.set	.LANCHOR11,. + 0
15067	.type	c_ftl_nand_planes_per_die, %object
15068	.size	c_ftl_nand_planes_per_die, 2
15069c_ftl_nand_planes_per_die:
15070	.space	2
15071	.section	.bss.c_ftl_nand_reserved_blks,"aw",%nobits
15072	.align	1
15073	.set	.LANCHOR25,. + 0
15074	.type	c_ftl_nand_reserved_blks, %object
15075	.size	c_ftl_nand_reserved_blks, 2
15076c_ftl_nand_reserved_blks:
15077	.space	2
15078	.section	.bss.c_ftl_nand_sec_pre_page,"aw",%nobits
15079	.align	1
15080	.set	.LANCHOR12,. + 0
15081	.type	c_ftl_nand_sec_pre_page, %object
15082	.size	c_ftl_nand_sec_pre_page, 2
15083c_ftl_nand_sec_pre_page:
15084	.space	2
15085	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits
15086	.align	1
15087	.set	.LANCHOR22,. + 0
15088	.type	c_ftl_nand_sec_pre_page_shift, %object
15089	.size	c_ftl_nand_sec_pre_page_shift, 2
15090c_ftl_nand_sec_pre_page_shift:
15091	.space	2
15092	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits
15093	.align	2
15094	.set	.LANCHOR2,. + 0
15095	.type	c_ftl_nand_sys_blks_per_plane, %object
15096	.size	c_ftl_nand_sys_blks_per_plane, 4
15097c_ftl_nand_sys_blks_per_plane:
15098	.space	4
15099	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",%nobits
15100	.align	2
15101	.set	.LANCHOR8,. + 0
15102	.type	c_ftl_nand_totle_phy_blks, %object
15103	.size	c_ftl_nand_totle_phy_blks, 4
15104c_ftl_nand_totle_phy_blks:
15105	.space	4
15106	.section	.bss.c_ftl_nand_type,"aw",%nobits
15107	.align	1
15108	.set	.LANCHOR9,. + 0
15109	.type	c_ftl_nand_type, %object
15110	.size	c_ftl_nand_type, 2
15111c_ftl_nand_type:
15112	.space	2
15113	.section	.bss.c_ftl_nand_vendor_region_num,"aw",%nobits
15114	.align	1
15115	.set	.LANCHOR28,. + 0
15116	.type	c_ftl_nand_vendor_region_num, %object
15117	.size	c_ftl_nand_vendor_region_num, 2
15118c_ftl_nand_vendor_region_num:
15119	.space	2
15120	.section	.bss.c_ftl_vendor_part_size,"aw",%nobits
15121	.align	1
15122	.set	.LANCHOR16,. + 0
15123	.type	c_ftl_vendor_part_size, %object
15124	.size	c_ftl_vendor_part_size, 2
15125c_ftl_vendor_part_size:
15126	.space	2
15127	.section	.bss.c_gc_page_buf_num,"aw",%nobits
15128	.align	2
15129	.set	.LANCHOR94,. + 0
15130	.type	c_gc_page_buf_num, %object
15131	.size	c_gc_page_buf_num, 4
15132c_gc_page_buf_num:
15133	.space	4
15134	.section	.bss.c_mlc_erase_count_value,"aw",%nobits
15135	.align	1
15136	.set	.LANCHOR14,. + 0
15137	.type	c_mlc_erase_count_value, %object
15138	.size	c_mlc_erase_count_value, 2
15139c_mlc_erase_count_value:
15140	.space	2
15141	.section	.bss.check_vpc_table,"aw",%nobits
15142	.align	1
15143	.type	check_vpc_table, %object
15144	.size	check_vpc_table, 16384
15145check_vpc_table:
15146	.space	16384
15147	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits
15148	.align	2
15149	.set	.LANCHOR144,. + 0
15150	.type	ftl_gc_temp_power_lost_recovery_flag, %object
15151	.size	ftl_gc_temp_power_lost_recovery_flag, 4
15152ftl_gc_temp_power_lost_recovery_flag:
15153	.space	4
15154	.section	.bss.gBbtInfo,"aw",%nobits
15155	.align	2
15156	.set	.LANCHOR37,. + 0
15157	.type	gBbtInfo, %object
15158	.size	gBbtInfo, 60
15159gBbtInfo:
15160	.space	60
15161	.section	.bss.gL2pMapInfo,"aw",%nobits
15162	.align	2
15163	.set	.LANCHOR140,. + 0
15164	.type	gL2pMapInfo, %object
15165	.size	gL2pMapInfo, 40
15166gL2pMapInfo:
15167	.space	40
15168	.section	.bss.gSysFreeQueue,"aw",%nobits
15169	.align	1
15170	.set	.LANCHOR38,. + 0
15171	.type	gSysFreeQueue, %object
15172	.size	gSysFreeQueue, 2056
15173gSysFreeQueue:
15174	.space	2056
15175	.section	.bss.gSysInfo,"aw",%nobits
15176	.align	2
15177	.set	.LANCHOR79,. + 0
15178	.type	gSysInfo, %object
15179	.size	gSysInfo, 12
15180gSysInfo:
15181	.space	12
15182	.section	.bss.gVendorBlkInfo,"aw",%nobits
15183	.align	2
15184	.set	.LANCHOR158,. + 0
15185	.type	gVendorBlkInfo, %object
15186	.size	gVendorBlkInfo, 40
15187gVendorBlkInfo:
15188	.space	40
15189	.section	.bss.g_GlobalDataVersion,"aw",%nobits
15190	.align	2
15191	.set	.LANCHOR71,. + 0
15192	.type	g_GlobalDataVersion, %object
15193	.size	g_GlobalDataVersion, 4
15194g_GlobalDataVersion:
15195	.space	4
15196	.section	.bss.g_GlobalSysVersion,"aw",%nobits
15197	.align	2
15198	.set	.LANCHOR70,. + 0
15199	.type	g_GlobalSysVersion, %object
15200	.size	g_GlobalSysVersion, 4
15201g_GlobalSysVersion:
15202	.space	4
15203	.section	.bss.g_MaxLbaSector,"aw",%nobits
15204	.align	2
15205	.set	.LANCHOR34,. + 0
15206	.type	g_MaxLbaSector, %object
15207	.size	g_MaxLbaSector, 4
15208g_MaxLbaSector:
15209	.space	4
15210	.section	.bss.g_MaxLbn,"aw",%nobits
15211	.align	2
15212	.set	.LANCHOR152,. + 0
15213	.type	g_MaxLbn, %object
15214	.size	g_MaxLbn, 4
15215g_MaxLbn:
15216	.space	4
15217	.section	.bss.g_MaxLpn,"aw",%nobits
15218	.align	2
15219	.set	.LANCHOR61,. + 0
15220	.type	g_MaxLpn, %object
15221	.size	g_MaxLpn, 4
15222g_MaxLpn:
15223	.space	4
15224	.section	.bss.g_VaildLpn,"aw",%nobits
15225	.align	2
15226	.set	.LANCHOR59,. + 0
15227	.type	g_VaildLpn, %object
15228	.size	g_VaildLpn, 4
15229g_VaildLpn:
15230	.space	4
15231	.section	.bss.g_active_superblock,"aw",%nobits
15232	.align	2
15233	.set	.LANCHOR51,. + 0
15234	.type	g_active_superblock, %object
15235	.size	g_active_superblock, 48
15236g_active_superblock:
15237	.space	48
15238	.section	.bss.g_buffer_superblock,"aw",%nobits
15239	.align	2
15240	.set	.LANCHOR52,. + 0
15241	.type	g_buffer_superblock, %object
15242	.size	g_buffer_superblock, 48
15243g_buffer_superblock:
15244	.space	48
15245	.section	.bss.g_cur_erase_blk,"aw",%nobits
15246	.align	2
15247	.set	.LANCHOR111,. + 0
15248	.type	g_cur_erase_blk, %object
15249	.size	g_cur_erase_blk, 4
15250g_cur_erase_blk:
15251	.space	4
15252	.section	.bss.g_ect_tbl_info_size,"aw",%nobits
15253	.align	1
15254	.set	.LANCHOR125,. + 0
15255	.type	g_ect_tbl_info_size, %object
15256	.size	g_ect_tbl_info_size, 2
15257g_ect_tbl_info_size:
15258	.space	2
15259	.section	.bss.g_ect_tbl_power_up_flush,"aw",%nobits
15260	.align	1
15261	.set	.LANCHOR170,. + 0
15262	.type	g_ect_tbl_power_up_flush, %object
15263	.size	g_ect_tbl_power_up_flush, 2
15264g_ect_tbl_power_up_flush:
15265	.space	2
15266	.section	.bss.g_ftl_nand_free_count,"aw",%nobits
15267	.align	2
15268	.set	.LANCHOR181,. + 0
15269	.type	g_ftl_nand_free_count, %object
15270	.size	g_ftl_nand_free_count, 4
15271g_ftl_nand_free_count:
15272	.space	4
15273	.section	.bss.g_gc_bad_block_gc_index,"aw",%nobits
15274	.align	1
15275	.set	.LANCHOR103,. + 0
15276	.type	g_gc_bad_block_gc_index, %object
15277	.size	g_gc_bad_block_gc_index, 2
15278g_gc_bad_block_gc_index:
15279	.space	2
15280	.section	.bss.g_gc_bad_block_temp_num,"aw",%nobits
15281	.align	1
15282	.set	.LANCHOR101,. + 0
15283	.type	g_gc_bad_block_temp_num, %object
15284	.size	g_gc_bad_block_temp_num, 2
15285g_gc_bad_block_temp_num:
15286	.space	2
15287	.section	.bss.g_gc_bad_block_temp_tbl,"aw",%nobits
15288	.align	1
15289	.set	.LANCHOR102,. + 0
15290	.type	g_gc_bad_block_temp_tbl, %object
15291	.size	g_gc_bad_block_temp_tbl, 34
15292g_gc_bad_block_temp_tbl:
15293	.space	34
15294	.section	.bss.g_gc_blk_index,"aw",%nobits
15295	.align	1
15296	.set	.LANCHOR85,. + 0
15297	.type	g_gc_blk_index, %object
15298	.size	g_gc_blk_index, 2
15299g_gc_blk_index:
15300	.space	2
15301	.section	.bss.g_gc_blk_num,"aw",%nobits
15302	.align	1
15303	.set	.LANCHOR96,. + 0
15304	.type	g_gc_blk_num, %object
15305	.size	g_gc_blk_num, 2
15306g_gc_blk_num:
15307	.space	2
15308	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits
15309	.align	1
15310	.set	.LANCHOR179,. + 0
15311	.type	g_gc_cur_blk_max_valid_pages, %object
15312	.size	g_gc_cur_blk_max_valid_pages, 2
15313g_gc_cur_blk_max_valid_pages:
15314	.space	2
15315	.section	.bss.g_gc_cur_blk_valid_pages,"aw",%nobits
15316	.align	1
15317	.set	.LANCHOR178,. + 0
15318	.type	g_gc_cur_blk_valid_pages, %object
15319	.size	g_gc_cur_blk_valid_pages, 2
15320g_gc_cur_blk_valid_pages:
15321	.space	2
15322	.section	.bss.g_gc_free_blk_threshold,"aw",%nobits
15323	.align	1
15324	.set	.LANCHOR82,. + 0
15325	.type	g_gc_free_blk_threshold, %object
15326	.size	g_gc_free_blk_threshold, 2
15327g_gc_free_blk_threshold:
15328	.space	2
15329	.section	.bss.g_gc_head_data_block,"aw",%nobits
15330	.align	2
15331	.set	.LANCHOR109,. + 0
15332	.type	g_gc_head_data_block, %object
15333	.size	g_gc_head_data_block, 4
15334g_gc_head_data_block:
15335	.space	4
15336	.section	.bss.g_gc_head_data_block_count,"aw",%nobits
15337	.align	2
15338	.set	.LANCHOR110,. + 0
15339	.type	g_gc_head_data_block_count, %object
15340	.size	g_gc_head_data_block_count, 4
15341g_gc_head_data_block_count:
15342	.space	4
15343	.section	.bss.g_gc_merge_free_blk_threshold,"aw",%nobits
15344	.align	1
15345	.set	.LANCHOR83,. + 0
15346	.type	g_gc_merge_free_blk_threshold, %object
15347	.size	g_gc_merge_free_blk_threshold, 2
15348g_gc_merge_free_blk_threshold:
15349	.space	2
15350	.section	.bss.g_gc_next_blk,"aw",%nobits
15351	.align	1
15352	.set	.LANCHOR99,. + 0
15353	.type	g_gc_next_blk, %object
15354	.size	g_gc_next_blk, 2
15355g_gc_next_blk:
15356	.space	2
15357	.section	.bss.g_gc_next_blk_1,"aw",%nobits
15358	.align	1
15359	.set	.LANCHOR100,. + 0
15360	.type	g_gc_next_blk_1, %object
15361	.size	g_gc_next_blk_1, 2
15362g_gc_next_blk_1:
15363	.space	2
15364	.section	.bss.g_gc_num_req,"aw",%nobits
15365	.align	2
15366	.set	.LANCHOR89,. + 0
15367	.type	g_gc_num_req, %object
15368	.size	g_gc_num_req, 4
15369g_gc_num_req:
15370	.space	4
15371	.section	.bss.g_gc_page_offset,"aw",%nobits
15372	.align	1
15373	.set	.LANCHOR97,. + 0
15374	.type	g_gc_page_offset, %object
15375	.size	g_gc_page_offset, 2
15376g_gc_page_offset:
15377	.space	2
15378	.section	.bss.g_gc_skip_write_count,"aw",%nobits
15379	.align	2
15380	.set	.LANCHOR84,. + 0
15381	.type	g_gc_skip_write_count, %object
15382	.size	g_gc_skip_write_count, 4
15383g_gc_skip_write_count:
15384	.space	4
15385	.section	.bss.g_gc_superblock,"aw",%nobits
15386	.align	2
15387	.set	.LANCHOR80,. + 0
15388	.type	g_gc_superblock, %object
15389	.size	g_gc_superblock, 48
15390g_gc_superblock:
15391	.space	48
15392	.section	.bss.g_gc_temp_superblock,"aw",%nobits
15393	.align	2
15394	.set	.LANCHOR53,. + 0
15395	.type	g_gc_temp_superblock, %object
15396	.size	g_gc_temp_superblock, 48
15397g_gc_temp_superblock:
15398	.space	48
15399	.section	.bss.g_in_gc_progress,"aw",%nobits
15400	.align	2
15401	.set	.LANCHOR108,. + 0
15402	.type	g_in_gc_progress, %object
15403	.size	g_in_gc_progress, 4
15404g_in_gc_progress:
15405	.space	4
15406	.section	.bss.g_in_swl_replace,"aw",%nobits
15407	.align	2
15408	.set	.LANCHOR87,. + 0
15409	.type	g_in_swl_replace, %object
15410	.size	g_in_swl_replace, 4
15411g_in_swl_replace:
15412	.space	4
15413	.section	.bss.g_l2p_last_update_region_id,"aw",%nobits
15414	.align	1
15415	.set	.LANCHOR56,. + 0
15416	.type	g_l2p_last_update_region_id, %object
15417	.size	g_l2p_last_update_region_id, 2
15418g_l2p_last_update_region_id:
15419	.space	2
15420	.section	.bss.g_max_erase_count,"aw",%nobits
15421	.align	2
15422	.set	.LANCHOR76,. + 0
15423	.type	g_max_erase_count, %object
15424	.size	g_max_erase_count, 4
15425g_max_erase_count:
15426	.space	4
15427	.section	.bss.g_min_erase_count,"aw",%nobits
15428	.align	2
15429	.set	.LANCHOR77,. + 0
15430	.type	g_min_erase_count, %object
15431	.size	g_min_erase_count, 4
15432g_min_erase_count:
15433	.space	4
15434	.section	.bss.g_nand_ops,"aw",%nobits
15435	.align	2
15436	.set	.LANCHOR105,. + 0
15437	.type	g_nand_ops, %object
15438	.size	g_nand_ops, 24
15439g_nand_ops:
15440	.space	24
15441	.section	.bss.g_nand_phy_info,"aw",%nobits
15442	.align	1
15443	.set	.LANCHOR0,. + 0
15444	.type	g_nand_phy_info, %object
15445	.size	g_nand_phy_info, 24
15446g_nand_phy_info:
15447	.space	24
15448	.section	.bss.g_num_data_superblocks,"aw",%nobits
15449	.align	1
15450	.set	.LANCHOR45,. + 0
15451	.type	g_num_data_superblocks, %object
15452	.size	g_num_data_superblocks, 2
15453g_num_data_superblocks:
15454	.space	2
15455	.section	.bss.g_num_free_superblocks,"aw",%nobits
15456	.align	1
15457	.set	.LANCHOR48,. + 0
15458	.type	g_num_free_superblocks, %object
15459	.size	g_num_free_superblocks, 2
15460g_num_free_superblocks:
15461	.space	2
15462	.section	.bss.g_power_lost_recovery_flag,"aw",%nobits
15463	.align	1
15464	.set	.LANCHOR167,. + 0
15465	.type	g_power_lost_recovery_flag, %object
15466	.size	g_power_lost_recovery_flag, 2
15467g_power_lost_recovery_flag:
15468	.space	2
15469	.section	.bss.g_recovery_page_min_ver,"aw",%nobits
15470	.align	2
15471	.set	.LANCHOR145,. + 0
15472	.type	g_recovery_page_min_ver, %object
15473	.size	g_recovery_page_min_ver, 4
15474g_recovery_page_min_ver:
15475	.space	4
15476	.section	.bss.g_recovery_page_num,"aw",%nobits
15477	.align	2
15478	.set	.LANCHOR168,. + 0
15479	.type	g_recovery_page_num, %object
15480	.size	g_recovery_page_num, 4
15481g_recovery_page_num:
15482	.space	4
15483	.section	.bss.g_recovery_ppa_tbl,"aw",%nobits
15484	.align	2
15485	.set	.LANCHOR169,. + 0
15486	.type	g_recovery_ppa_tbl, %object
15487	.size	g_recovery_ppa_tbl, 128
15488g_recovery_ppa_tbl:
15489	.space	128
15490	.section	.bss.g_sys_ext_data,"aw",%nobits
15491	.align	2
15492	.set	.LANCHOR81,. + 0
15493	.type	g_sys_ext_data, %object
15494	.size	g_sys_ext_data, 512
15495g_sys_ext_data:
15496	.space	512
15497	.section	.bss.g_sys_save_data,"aw",%nobits
15498	.align	2
15499	.set	.LANCHOR39,. + 0
15500	.type	g_sys_save_data, %object
15501	.size	g_sys_save_data, 48
15502g_sys_save_data:
15503	.space	48
15504	.section	.bss.g_tmp_data_superblock_id,"aw",%nobits
15505	.align	1
15506	.set	.LANCHOR142,. + 0
15507	.type	g_tmp_data_superblock_id, %object
15508	.size	g_tmp_data_superblock_id, 2
15509g_tmp_data_superblock_id:
15510	.space	2
15511	.section	.bss.g_totle_avg_erase_count,"aw",%nobits
15512	.align	2
15513	.set	.LANCHOR74,. + 0
15514	.type	g_totle_avg_erase_count, %object
15515	.size	g_totle_avg_erase_count, 4
15516g_totle_avg_erase_count:
15517	.space	4
15518	.section	.bss.g_totle_cache_write_count,"aw",%nobits
15519	.align	2
15520	.set	.LANCHOR65,. + 0
15521	.type	g_totle_cache_write_count, %object
15522	.size	g_totle_cache_write_count, 4
15523g_totle_cache_write_count:
15524	.space	4
15525	.section	.bss.g_totle_discard_page_count,"aw",%nobits
15526	.align	2
15527	.set	.LANCHOR63,. + 0
15528	.type	g_totle_discard_page_count, %object
15529	.size	g_totle_discard_page_count, 4
15530g_totle_discard_page_count:
15531	.space	4
15532	.section	.bss.g_totle_gc_page_count,"aw",%nobits
15533	.align	2
15534	.set	.LANCHOR67,. + 0
15535	.type	g_totle_gc_page_count, %object
15536	.size	g_totle_gc_page_count, 4
15537g_totle_gc_page_count:
15538	.space	4
15539	.section	.bss.g_totle_l2p_write_count,"aw",%nobits
15540	.align	2
15541	.set	.LANCHOR66,. + 0
15542	.type	g_totle_l2p_write_count, %object
15543	.size	g_totle_l2p_write_count, 4
15544g_totle_l2p_write_count:
15545	.space	4
15546	.section	.bss.g_totle_map_block,"aw",%nobits
15547	.align	1
15548	.set	.LANCHOR141,. + 0
15549	.type	g_totle_map_block, %object
15550	.size	g_totle_map_block, 2
15551g_totle_map_block:
15552	.space	2
15553	.section	.bss.g_totle_mlc_erase_count,"aw",%nobits
15554	.align	2
15555	.set	.LANCHOR72,. + 0
15556	.type	g_totle_mlc_erase_count, %object
15557	.size	g_totle_mlc_erase_count, 4
15558g_totle_mlc_erase_count:
15559	.space	4
15560	.section	.bss.g_totle_read_page_count,"aw",%nobits
15561	.align	2
15562	.set	.LANCHOR62,. + 0
15563	.type	g_totle_read_page_count, %object
15564	.size	g_totle_read_page_count, 4
15565g_totle_read_page_count:
15566	.space	4
15567	.section	.bss.g_totle_read_sector,"aw",%nobits
15568	.align	2
15569	.set	.LANCHOR69,. + 0
15570	.type	g_totle_read_sector, %object
15571	.size	g_totle_read_sector, 4
15572g_totle_read_sector:
15573	.space	4
15574	.section	.bss.g_totle_slc_erase_count,"aw",%nobits
15575	.align	2
15576	.set	.LANCHOR73,. + 0
15577	.type	g_totle_slc_erase_count, %object
15578	.size	g_totle_slc_erase_count, 4
15579g_totle_slc_erase_count:
15580	.space	4
15581	.section	.bss.g_totle_swl_count,"aw",%nobits
15582	.align	2
15583	.set	.LANCHOR143,. + 0
15584	.type	g_totle_swl_count, %object
15585	.size	g_totle_swl_count, 4
15586g_totle_swl_count:
15587	.space	4
15588	.section	.bss.g_totle_sys_slc_erase_count,"aw",%nobits
15589	.align	2
15590	.set	.LANCHOR75,. + 0
15591	.type	g_totle_sys_slc_erase_count, %object
15592	.size	g_totle_sys_slc_erase_count, 4
15593g_totle_sys_slc_erase_count:
15594	.space	4
15595	.section	.bss.g_totle_vendor_block,"aw",%nobits
15596	.align	1
15597	.set	.LANCHOR35,. + 0
15598	.type	g_totle_vendor_block, %object
15599	.size	g_totle_vendor_block, 2
15600g_totle_vendor_block:
15601	.space	2
15602	.section	.bss.g_totle_write_page_count,"aw",%nobits
15603	.align	2
15604	.set	.LANCHOR64,. + 0
15605	.type	g_totle_write_page_count, %object
15606	.size	g_totle_write_page_count, 4
15607g_totle_write_page_count:
15608	.space	4
15609	.section	.bss.g_totle_write_sector,"aw",%nobits
15610	.align	2
15611	.set	.LANCHOR68,. + 0
15612	.type	g_totle_write_sector, %object
15613	.size	g_totle_write_sector, 4
15614g_totle_write_sector:
15615	.space	4
15616	.section	.bss.gc_discard_updated,"aw",%nobits
15617	.align	2
15618	.set	.LANCHOR172,. + 0
15619	.type	gc_discard_updated, %object
15620	.size	gc_discard_updated, 4
15621gc_discard_updated:
15622	.space	4
15623	.section	.bss.gc_ink_free_return_value,"aw",%nobits
15624	.align	1
15625	.set	.LANCHOR177,. + 0
15626	.type	gc_ink_free_return_value, %object
15627	.size	gc_ink_free_return_value, 2
15628gc_ink_free_return_value:
15629	.space	2
15630	.section	.bss.gp_ect_tbl_info,"aw",%nobits
15631	.align	2
15632	.set	.LANCHOR127,. + 0
15633	.type	gp_ect_tbl_info, %object
15634	.size	gp_ect_tbl_info, 4
15635gp_ect_tbl_info:
15636	.space	4
15637	.section	.bss.gp_flash_check_buf,"aw",%nobits
15638	.align	2
15639	.set	.LANCHOR186,. + 0
15640	.type	gp_flash_check_buf, %object
15641	.size	gp_flash_check_buf, 4
15642gp_flash_check_buf:
15643	.space	4
15644	.section	.bss.gp_gc_page_buf_info,"aw",%nobits
15645	.align	2
15646	.set	.LANCHOR90,. + 0
15647	.type	gp_gc_page_buf_info, %object
15648	.size	gp_gc_page_buf_info, 4
15649gp_gc_page_buf_info:
15650	.space	4
15651	.section	.bss.gp_last_act_superblock,"aw",%nobits
15652	.align	2
15653	.type	gp_last_act_superblock, %object
15654	.size	gp_last_act_superblock, 4
15655gp_last_act_superblock:
15656	.space	4
15657	.section	.bss.idb_buf,"aw",%nobits
15658	.align	2
15659	.set	.LANCHOR185,. + 0
15660	.type	idb_buf, %object
15661	.size	idb_buf, 4
15662idb_buf:
15663	.space	4
15664	.section	.bss.idb_need_write_back,"aw",%nobits
15665	.align	2
15666	.set	.LANCHOR184,. + 0
15667	.type	idb_need_write_back, %object
15668	.size	idb_need_write_back, 4
15669idb_need_write_back:
15670	.space	4
15671	.section	.bss.p_blk_mode_table,"aw",%nobits
15672	.align	2
15673	.set	.LANCHOR1,. + 0
15674	.type	p_blk_mode_table, %object
15675	.size	p_blk_mode_table, 4
15676p_blk_mode_table:
15677	.space	4
15678	.section	.bss.p_data_block_list_head,"aw",%nobits
15679	.align	2
15680	.set	.LANCHOR41,. + 0
15681	.type	p_data_block_list_head, %object
15682	.size	p_data_block_list_head, 4
15683p_data_block_list_head:
15684	.space	4
15685	.section	.bss.p_data_block_list_table,"aw",%nobits
15686	.align	2
15687	.set	.LANCHOR40,. + 0
15688	.type	p_data_block_list_table, %object
15689	.size	p_data_block_list_table, 4
15690p_data_block_list_table:
15691	.space	4
15692	.section	.bss.p_data_block_list_tail,"aw",%nobits
15693	.align	2
15694	.set	.LANCHOR44,. + 0
15695	.type	p_data_block_list_tail, %object
15696	.size	p_data_block_list_tail, 4
15697p_data_block_list_tail:
15698	.space	4
15699	.section	.bss.p_erase_count_table,"aw",%nobits
15700	.align	2
15701	.set	.LANCHOR43,. + 0
15702	.type	p_erase_count_table, %object
15703	.size	p_erase_count_table, 4
15704p_erase_count_table:
15705	.space	4
15706	.section	.bss.p_free_data_block_list_head,"aw",%nobits
15707	.align	2
15708	.set	.LANCHOR47,. + 0
15709	.type	p_free_data_block_list_head, %object
15710	.size	p_free_data_block_list_head, 4
15711p_free_data_block_list_head:
15712	.space	4
15713	.section	.bss.p_gc_blk_tbl,"aw",%nobits
15714	.align	2
15715	.set	.LANCHOR95,. + 0
15716	.type	p_gc_blk_tbl, %object
15717	.size	p_gc_blk_tbl, 4
15718p_gc_blk_tbl:
15719	.space	4
15720	.section	.bss.p_gc_data_buf,"aw",%nobits
15721	.align	2
15722	.set	.LANCHOR91,. + 0
15723	.type	p_gc_data_buf, %object
15724	.size	p_gc_data_buf, 4
15725p_gc_data_buf:
15726	.space	4
15727	.section	.bss.p_gc_page_info,"aw",%nobits
15728	.align	2
15729	.set	.LANCHOR98,. + 0
15730	.type	p_gc_page_info, %object
15731	.size	p_gc_page_info, 4
15732p_gc_page_info:
15733	.space	4
15734	.section	.bss.p_gc_spare_buf,"aw",%nobits
15735	.align	2
15736	.set	.LANCHOR92,. + 0
15737	.type	p_gc_spare_buf, %object
15738	.size	p_gc_spare_buf, 4
15739p_gc_spare_buf:
15740	.space	4
15741	.section	.bss.p_io_data_buf_0,"aw",%nobits
15742	.align	2
15743	.set	.LANCHOR118,. + 0
15744	.type	p_io_data_buf_0, %object
15745	.size	p_io_data_buf_0, 4
15746p_io_data_buf_0:
15747	.space	4
15748	.section	.bss.p_io_data_buf_1,"aw",%nobits
15749	.align	2
15750	.set	.LANCHOR119,. + 0
15751	.type	p_io_data_buf_1, %object
15752	.size	p_io_data_buf_1, 4
15753p_io_data_buf_1:
15754	.space	4
15755	.section	.bss.p_io_spare_buf,"aw",%nobits
15756	.align	2
15757	.set	.LANCHOR124,. + 0
15758	.type	p_io_spare_buf, %object
15759	.size	p_io_spare_buf, 4
15760p_io_spare_buf:
15761	.space	4
15762	.section	.bss.p_l2p_map_buf,"aw",%nobits
15763	.align	2
15764	.set	.LANCHOR136,. + 0
15765	.type	p_l2p_map_buf, %object
15766	.size	p_l2p_map_buf, 4
15767p_l2p_map_buf:
15768	.space	4
15769	.section	.bss.p_l2p_ram_map,"aw",%nobits
15770	.align	2
15771	.set	.LANCHOR55,. + 0
15772	.type	p_l2p_ram_map, %object
15773	.size	p_l2p_ram_map, 4
15774p_l2p_ram_map:
15775	.space	4
15776	.section	.bss.p_map_block_table,"aw",%nobits
15777	.align	2
15778	.set	.LANCHOR129,. + 0
15779	.type	p_map_block_table, %object
15780	.size	p_map_block_table, 4
15781p_map_block_table:
15782	.space	4
15783	.section	.bss.p_map_block_valid_page_count,"aw",%nobits
15784	.align	2
15785	.set	.LANCHOR130,. + 0
15786	.type	p_map_block_valid_page_count, %object
15787	.size	p_map_block_valid_page_count, 4
15788p_map_block_valid_page_count:
15789	.space	4
15790	.section	.bss.p_map_block_ver_table,"aw",%nobits
15791	.align	2
15792	.set	.LANCHOR135,. + 0
15793	.type	p_map_block_ver_table, %object
15794	.size	p_map_block_ver_table, 4
15795p_map_block_ver_table:
15796	.space	4
15797	.section	.bss.p_map_region_ppn_table,"aw",%nobits
15798	.align	2
15799	.set	.LANCHOR134,. + 0
15800	.type	p_map_region_ppn_table, %object
15801	.size	p_map_region_ppn_table, 4
15802p_map_region_ppn_table:
15803	.space	4
15804	.section	.bss.p_plane_order_table,"aw",%nobits
15805	.set	.LANCHOR13,. + 0
15806	.type	p_plane_order_table, %object
15807	.size	p_plane_order_table, 32
15808p_plane_order_table:
15809	.space	32
15810	.section	.bss.p_swl_mul_table,"aw",%nobits
15811	.align	2
15812	.set	.LANCHOR126,. + 0
15813	.type	p_swl_mul_table, %object
15814	.size	p_swl_mul_table, 4
15815p_swl_mul_table:
15816	.space	4
15817	.section	.bss.p_sys_data_buf,"aw",%nobits
15818	.align	2
15819	.set	.LANCHOR115,. + 0
15820	.type	p_sys_data_buf, %object
15821	.size	p_sys_data_buf, 4
15822p_sys_data_buf:
15823	.space	4
15824	.section	.bss.p_sys_data_buf_1,"aw",%nobits
15825	.align	2
15826	.set	.LANCHOR116,. + 0
15827	.type	p_sys_data_buf_1, %object
15828	.size	p_sys_data_buf_1, 4
15829p_sys_data_buf_1:
15830	.space	4
15831	.section	.bss.p_sys_spare_buf,"aw",%nobits
15832	.align	2
15833	.set	.LANCHOR123,. + 0
15834	.type	p_sys_spare_buf, %object
15835	.size	p_sys_spare_buf, 4
15836p_sys_spare_buf:
15837	.space	4
15838	.section	.bss.p_valid_page_count_check_table,"aw",%nobits
15839	.align	2
15840	.set	.LANCHOR128,. + 0
15841	.type	p_valid_page_count_check_table, %object
15842	.size	p_valid_page_count_check_table, 4
15843p_valid_page_count_check_table:
15844	.space	4
15845	.section	.bss.p_valid_page_count_table,"aw",%nobits
15846	.align	2
15847	.set	.LANCHOR42,. + 0
15848	.type	p_valid_page_count_table, %object
15849	.size	p_valid_page_count_table, 4
15850p_valid_page_count_table:
15851	.space	4
15852	.section	.bss.p_vendor_block_table,"aw",%nobits
15853	.align	2
15854	.set	.LANCHOR36,. + 0
15855	.type	p_vendor_block_table, %object
15856	.size	p_vendor_block_table, 4
15857p_vendor_block_table:
15858	.space	4
15859	.section	.bss.p_vendor_block_valid_page_count,"aw",%nobits
15860	.align	2
15861	.set	.LANCHOR131,. + 0
15862	.type	p_vendor_block_valid_page_count, %object
15863	.size	p_vendor_block_valid_page_count, 4
15864p_vendor_block_valid_page_count:
15865	.space	4
15866	.section	.bss.p_vendor_block_ver_table,"aw",%nobits
15867	.align	2
15868	.set	.LANCHOR132,. + 0
15869	.type	p_vendor_block_ver_table, %object
15870	.size	p_vendor_block_ver_table, 4
15871p_vendor_block_ver_table:
15872	.space	4
15873	.section	.bss.p_vendor_data_buf,"aw",%nobits
15874	.align	2
15875	.set	.LANCHOR117,. + 0
15876	.type	p_vendor_data_buf, %object
15877	.size	p_vendor_data_buf, 4
15878p_vendor_data_buf:
15879	.space	4
15880	.section	.bss.p_vendor_region_ppn_table,"aw",%nobits
15881	.align	2
15882	.set	.LANCHOR133,. + 0
15883	.type	p_vendor_region_ppn_table, %object
15884	.size	p_vendor_region_ppn_table, 4
15885p_vendor_region_ppn_table:
15886	.space	4
15887	.section	.bss.req_erase,"aw",%nobits
15888	.align	2
15889	.set	.LANCHOR106,. + 0
15890	.type	req_erase, %object
15891	.size	req_erase, 4
15892req_erase:
15893	.space	4
15894	.section	.bss.req_gc,"aw",%nobits
15895	.align	2
15896	.set	.LANCHOR93,. + 0
15897	.type	req_gc, %object
15898	.size	req_gc, 4
15899req_gc:
15900	.space	4
15901	.section	.bss.req_gc_dst,"aw",%nobits
15902	.align	2
15903	.set	.LANCHOR113,. + 0
15904	.type	req_gc_dst, %object
15905	.size	req_gc_dst, 4
15906req_gc_dst:
15907	.space	4
15908	.section	.bss.req_prgm,"aw",%nobits
15909	.align	2
15910	.set	.LANCHOR114,. + 0
15911	.type	req_prgm, %object
15912	.size	req_prgm, 4
15913req_prgm:
15914	.space	4
15915	.section	.bss.req_read,"aw",%nobits
15916	.align	2
15917	.set	.LANCHOR112,. + 0
15918	.type	req_read, %object
15919	.size	req_read, 4
15920req_read:
15921	.space	4
15922	.section	.bss.req_sys,"aw",%nobits
15923	.align	2
15924	.set	.LANCHOR148,. + 0
15925	.type	req_sys, %object
15926	.size	req_sys, 20
15927req_sys:
15928	.space	20
15929	.section	.bss.sftl_nand_check_buf,"aw",%nobits
15930	.align	2
15931	.set	.LANCHOR120,. + 0
15932	.type	sftl_nand_check_buf, %object
15933	.size	sftl_nand_check_buf, 4
15934sftl_nand_check_buf:
15935	.space	4
15936	.section	.bss.sftl_nand_check_spare_buf,"aw",%nobits
15937	.align	2
15938	.set	.LANCHOR122,. + 0
15939	.type	sftl_nand_check_spare_buf, %object
15940	.size	sftl_nand_check_spare_buf, 4
15941sftl_nand_check_spare_buf:
15942	.space	4
15943	.section	.bss.sftl_temp_buf,"aw",%nobits
15944	.align	2
15945	.set	.LANCHOR121,. + 0
15946	.type	sftl_temp_buf, %object
15947	.size	sftl_temp_buf, 4
15948sftl_temp_buf:
15949	.space	4
15950	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits
15951	.align	1
15952	.set	.LANCHOR162,. + 0
15953	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
15954	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
15955ftl_gc_temp_block_bops_scan_page_addr:
15956	.short	-1
15957	.section	.data.gFtlInitStatus,"aw",%progbits
15958	.align	2
15959	.set	.LANCHOR86,. + 0
15960	.type	gFtlInitStatus, %object
15961	.size	gFtlInitStatus, 4
15962gFtlInitStatus:
15963	.word	-1
15964	.section	.data.power_up_flag,"aw",%progbits
15965	.align	2
15966	.set	.LANCHOR182,. + 0
15967	.type	power_up_flag, %object
15968	.size	power_up_flag, 4
15969power_up_flag:
15970	.word	1
15971	.section	.rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1
15972.LC79:
15973	.ascii	"%s: addr: %x is in id block!!!!!!!!!!\012\000"
15974.LC80:
15975	.ascii	"not free: w: d:\000"
15976.LC81:
15977	.ascii	"not free: w: s:\000"
15978	.section	.rodata.FlashProgPages.str1.1,"aMS",%progbits,1
15979.LC85:
15980	.ascii	"prog read error: = %x\012\000"
15981.LC86:
15982	.ascii	"prog read s error: = %x %x %x\012\000"
15983.LC87:
15984	.ascii	"prog read d error: = %x %x %x\012\000"
15985	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1
15986.LC0:
15987	.ascii	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
15988	.ascii	"\000"
15989	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1
15990.LC101:
15991	.ascii	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
15992.LC102:
15993	.ascii	"FtlBbmTblFlush error:%x\012\000"
15994.LC103:
15995	.ascii	"FtlBbmTblFlush error = %x error count = %d\012\000"
15996	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1
15997.LC82:
15998	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
15999	.ascii	"\000"
16000	.section	.rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",%progbits,1
16001.LC104:
16002	.ascii	"FtlGcFreeBadSuperBlk 0x%x\012\000"
16003	.section	.rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",%progbits,1
16004.LC74:
16005	.ascii	"FtlGcMarkBadPhyBlk %d 0x%x\012\000"
16006	.section	.rodata.FtlGcRefreshBlock.str1.1,"aMS",%progbits,1
16007.LC73:
16008	.ascii	"FtlGcRefreshBlock  0x%x\012\000"
16009	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1
16010.LC100:
16011	.ascii	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
16012	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1
16013.LC108:
16014	.ascii	"no ect\000"
16015	.section	.rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1
16016.LC88:
16017	.ascii	"FtlMapWritePage error = %x \012\000"
16018.LC89:
16019	.ascii	"FtlMapWritePage error = %x error count = %d\012\000"
16020	.section	.rodata.FtlMemInit.str1.1,"aMS",%progbits,1
16021.LC84:
16022	.ascii	"%s error allocating memory. return -1\012\000"
16023	.section	.rodata.FtlPrintInfo2buf.str1.1,"aMS",%progbits,1
16024.LC2:
16025	.ascii	"FLASH INFO:\012\000"
16026.LC3:
16027	.ascii	"Device Capacity: %d MB\012\000"
16028.LC4:
16029	.ascii	"FTL INFO:\012\000"
16030.LC5:
16031	.ascii	"g_MaxLpn = 0x%x\012\000"
16032.LC6:
16033	.ascii	"g_VaildLpn = 0x%x\012\000"
16034.LC7:
16035	.ascii	"read_page_count = 0x%x\012\000"
16036.LC8:
16037	.ascii	"discard_page_count = 0x%x\012\000"
16038.LC9:
16039	.ascii	"write_page_count = 0x%x\012\000"
16040.LC10:
16041	.ascii	"cache_write_count = 0x%x\012\000"
16042.LC11:
16043	.ascii	"l2p_write_count = 0x%x\012\000"
16044.LC12:
16045	.ascii	"gc_page_count = 0x%x\012\000"
16046.LC13:
16047	.ascii	"totle_write = %d MB\012\000"
16048.LC14:
16049	.ascii	"totle_read = %d MB\012\000"
16050.LC15:
16051	.ascii	"GSV = 0x%x\012\000"
16052.LC16:
16053	.ascii	"GDV = 0x%x\012\000"
16054.LC17:
16055	.ascii	"bad blk num = %d\012\000"
16056.LC18:
16057	.ascii	"free_superblocks = 0x%x\012\000"
16058.LC19:
16059	.ascii	"mlc_EC = 0x%x\012\000"
16060.LC20:
16061	.ascii	"slc_EC = 0x%x\012\000"
16062.LC21:
16063	.ascii	"avg_EC = 0x%x\012\000"
16064.LC22:
16065	.ascii	"sys_EC = 0x%x\012\000"
16066.LC23:
16067	.ascii	"max_EC = 0x%x\012\000"
16068.LC24:
16069	.ascii	"min_EC = 0x%x\012\000"
16070.LC25:
16071	.ascii	"PLT = 0x%x\012\000"
16072.LC26:
16073	.ascii	"POT = 0x%x\012\000"
16074.LC27:
16075	.ascii	"MaxSector = 0x%x\012\000"
16076.LC28:
16077	.ascii	"init_sys_blks_pp = 0x%x\012\000"
16078.LC29:
16079	.ascii	"sys_blks_pp = 0x%x\012\000"
16080.LC30:
16081	.ascii	"free sysblock = 0x%x\012\000"
16082.LC31:
16083	.ascii	"data_blks_pp = 0x%x\012\000"
16084.LC32:
16085	.ascii	"data_op_blks_pp = 0x%x\012\000"
16086.LC33:
16087	.ascii	"max_data_blks = 0x%x\012\000"
16088.LC34:
16089	.ascii	"Sys.id = 0x%x\012\000"
16090.LC35:
16091	.ascii	"Bbt.id = 0x%x\012\000"
16092.LC36:
16093	.ascii	"ACT.page = 0x%x\012\000"
16094.LC37:
16095	.ascii	"ACT.plane = 0x%x\012\000"
16096.LC38:
16097	.ascii	"ACT.id = 0x%x\012\000"
16098.LC39:
16099	.ascii	"ACT.mode = 0x%x\012\000"
16100.LC40:
16101	.ascii	"ACT.a_pages = 0x%x\012\000"
16102.LC41:
16103	.ascii	"ACT VPC = 0x%x\012\000"
16104.LC42:
16105	.ascii	"BUF.page = 0x%x\012\000"
16106.LC43:
16107	.ascii	"BUF.plane = 0x%x\012\000"
16108.LC44:
16109	.ascii	"BUF.id = 0x%x\012\000"
16110.LC45:
16111	.ascii	"BUF.mode = 0x%x\012\000"
16112.LC46:
16113	.ascii	"BUF.a_pages = 0x%x\012\000"
16114.LC47:
16115	.ascii	"BUF VPC = 0x%x\012\000"
16116.LC48:
16117	.ascii	"TMP.page = 0x%x\012\000"
16118.LC49:
16119	.ascii	"TMP.plane = 0x%x\012\000"
16120.LC50:
16121	.ascii	"TMP.id = 0x%x\012\000"
16122.LC51:
16123	.ascii	"TMP.mode = 0x%x\012\000"
16124.LC52:
16125	.ascii	"TMP.a_pages = 0x%x\012\000"
16126.LC53:
16127	.ascii	"GC.page = 0x%x\012\000"
16128.LC54:
16129	.ascii	"GC.plane = 0x%x\012\000"
16130.LC55:
16131	.ascii	"GC.id = 0x%x\012\000"
16132.LC56:
16133	.ascii	"GC.mode = 0x%x\012\000"
16134.LC57:
16135	.ascii	"GC.a_pages = 0x%x\012\000"
16136.LC58:
16137	.ascii	"WR_CHK = %x %x %x\012\000"
16138.LC59:
16139	.ascii	"Read Err Cnt = 0x%x\012\000"
16140.LC60:
16141	.ascii	"Prog Err Cnt = 0x%x\012\000"
16142.LC61:
16143	.ascii	"gc_free_blk_th= 0x%x\012\000"
16144.LC62:
16145	.ascii	"gc_merge_free_blk_th= 0x%x\012\000"
16146.LC63:
16147	.ascii	"gc_skip_write_count= 0x%x\012\000"
16148.LC64:
16149	.ascii	"gc_blk_index= 0x%x\012\000"
16150.LC65:
16151	.ascii	"free min EC= 0x%x\012\000"
16152.LC66:
16153	.ascii	"free max EC= 0x%x\012\000"
16154.LC67:
16155	.ascii	"GC__SB VPC = 0x%x\012\000"
16156.LC68:
16157	.ascii	"%d. [0x%x]=0x%x 0x%x  0x%x\012\000"
16158.LC69:
16159	.ascii	"free %d. [0x%x] 0x%x  0x%x\012\000"
16160	.section	.rodata.FtlProgPages.str1.1,"aMS",%progbits,1
16161.LC111:
16162	.ascii	"Ftlwrite decrement_vpc_count %x = %d\012\000"
16163	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1
16164.LC106:
16165	.ascii	"spuer block %x vpn is 0\012 \000"
16166	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1
16167.LC107:
16168	.ascii	"FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
16169	.section	.rodata.FtlVpcCheckAndModify.str1.1,"aMS",%progbits,1
16170.LC110:
16171	.ascii	"FtlCheckVpc %x = %x  %x\012\000"
16172	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1
16173.LC109:
16174	.ascii	"FtlVpcTblFlush error = %x error count = %d\012\000"
16175	.section	.rodata.FtlWrite.str1.1,"aMS",%progbits,1
16176.LC113:
16177	.ascii	"FtlWrite: lpa error:%x %x\012\000"
16178	.section	.rodata.FtlWriteToIDB.str1.1,"aMS",%progbits,1
16179.LC114:
16180	.ascii	"write_idblock fail! %x %x %x %x\012\000"
16181.LC115:
16182	.ascii	"%s idb buffer alloc fail\012\000"
16183.LC116:
16184	.ascii	"%p %x %p %x\012\000"
16185	.section	.rodata.GetSwlReplaceBlock.str1.1,"aMS",%progbits,1
16186.LC72:
16187	.ascii	"swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
16188	.ascii	"\012\000"
16189	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1
16190.LC1:
16191	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
16192	.section	.rodata.__func__.10094,"a",%progbits
16193	.set	.LANCHOR180,. + 0
16194	.type	__func__.10094, %object
16195	.size	__func__.10094, 23
16196__func__.10094:
16197	.ascii	"rk_ftl_garbage_collect\000"
16198	.section	.rodata.__func__.10356,"a",%progbits
16199	.set	.LANCHOR147,. + 0
16200	.type	__func__.10356, %object
16201	.size	__func__.10356, 15
16202__func__.10356:
16203	.ascii	"FlashReadPages\000"
16204	.section	.rodata.__func__.10375,"a",%progbits
16205	.set	.LANCHOR153,. + 0
16206	.type	__func__.10375, %object
16207	.size	__func__.10375, 15
16208__func__.10375:
16209	.ascii	"FlashProgPages\000"
16210	.section	.rodata.__func__.10399,"a",%progbits
16211	.set	.LANCHOR104,. + 0
16212	.type	__func__.10399, %object
16213	.size	__func__.10399, 17
16214__func__.10399:
16215	.ascii	"FlashEraseBlocks\000"
16216	.section	.rodata.__func__.10514,"a",%progbits
16217	.set	.LANCHOR187,. + 0
16218	.type	__func__.10514, %object
16219	.size	__func__.10514, 14
16220__func__.10514:
16221	.ascii	"FtlWriteToIDB\000"
16222	.section	.rodata.__func__.8835,"a",%progbits
16223	.set	.LANCHOR138,. + 0
16224	.type	__func__.8835, %object
16225	.size	__func__.8835, 11
16226__func__.8835:
16227	.ascii	"FtlMemInit\000"
16228	.section	.rodata.__func__.8959,"a",%progbits
16229	.set	.LANCHOR175,. + 0
16230	.type	__func__.8959, %object
16231	.size	__func__.8959, 13
16232__func__.8959:
16233	.ascii	"FtlProgPages\000"
16234	.section	.rodata.__func__.8987,"a",%progbits
16235	.set	.LANCHOR183,. + 0
16236	.type	__func__.8987, %object
16237	.size	__func__.8987, 9
16238__func__.8987:
16239	.ascii	"FtlWrite\000"
16240	.section	.rodata.__func__.9062,"a",%progbits
16241	.set	.LANCHOR139,. + 0
16242	.type	__func__.9062, %object
16243	.size	__func__.9062, 14
16244__func__.9062:
16245	.ascii	"FtlBbt2Bitmap\000"
16246	.section	.rodata.__func__.9105,"a",%progbits
16247	.set	.LANCHOR150,. + 0
16248	.type	__func__.9105, %object
16249	.size	__func__.9105, 11
16250__func__.9105:
16251	.ascii	"FtlLoadBbt\000"
16252	.section	.rodata.__func__.9220,"a",%progbits
16253	.set	.LANCHOR49,. + 0
16254	.type	__func__.9220, %object
16255	.size	__func__.9220, 17
16256__func__.9220:
16257	.ascii	"INSERT_FREE_LIST\000"
16258	.section	.rodata.__func__.9225,"a",%progbits
16259	.set	.LANCHOR46,. + 0
16260	.type	__func__.9225, %object
16261	.size	__func__.9225, 17
16262__func__.9225:
16263	.ascii	"INSERT_DATA_LIST\000"
16264	.section	.rodata.__func__.9256,"a",%progbits
16265	.set	.LANCHOR50,. + 0
16266	.type	__func__.9256, %object
16267	.size	__func__.9256, 17
16268__func__.9256:
16269	.ascii	"List_remove_node\000"
16270	.section	.rodata.__func__.9288,"a",%progbits
16271	.set	.LANCHOR54,. + 0
16272	.type	__func__.9288, %object
16273	.size	__func__.9288, 22
16274__func__.9288:
16275	.ascii	"List_update_data_list\000"
16276	.section	.rodata.__func__.9297,"a",%progbits
16277	.set	.LANCHOR156,. + 0
16278	.type	__func__.9297, %object
16279	.size	__func__.9297, 16
16280__func__.9297:
16281	.ascii	"load_l2p_region\000"
16282	.section	.rodata.__func__.9330,"a",%progbits
16283	.set	.LANCHOR107,. + 0
16284	.type	__func__.9330, %object
16285	.size	__func__.9330, 26
16286__func__.9330:
16287	.ascii	"ftl_map_blk_alloc_new_blk\000"
16288	.section	.rodata.__func__.9341,"a",%progbits
16289	.set	.LANCHOR157,. + 0
16290	.type	__func__.9341, %object
16291	.size	__func__.9341, 15
16292__func__.9341:
16293	.ascii	"ftl_map_blk_gc\000"
16294	.section	.rodata.__func__.9356,"a",%progbits
16295	.set	.LANCHOR154,. + 0
16296	.type	__func__.9356, %object
16297	.size	__func__.9356, 31
16298__func__.9356:
16299	.ascii	"Ftl_write_map_blk_to_last_page\000"
16300	.section	.rodata.__func__.9370,"a",%progbits
16301	.set	.LANCHOR155,. + 0
16302	.type	__func__.9370, %object
16303	.size	__func__.9370, 16
16304__func__.9370:
16305	.ascii	"FtlMapWritePage\000"
16306	.section	.rodata.__func__.9395,"a",%progbits
16307	.set	.LANCHOR57,. + 0
16308	.type	__func__.9395, %object
16309	.size	__func__.9395, 22
16310__func__.9395:
16311	.ascii	"select_l2p_ram_region\000"
16312	.section	.rodata.__func__.9412,"a",%progbits
16313	.set	.LANCHOR159,. + 0
16314	.type	__func__.9412, %object
16315	.size	__func__.9412, 9
16316__func__.9412:
16317	.ascii	"log2phys\000"
16318	.section	.rodata.__func__.9485,"a",%progbits
16319	.set	.LANCHOR171,. + 0
16320	.type	__func__.9485, %object
16321	.size	__func__.9485, 15
16322__func__.9485:
16323	.ascii	"FtlVpcTblFlush\000"
16324	.section	.rodata.__func__.9507,"a",%progbits
16325	.set	.LANCHOR149,. + 0
16326	.type	__func__.9507, %object
16327	.size	__func__.9507, 14
16328__func__.9507:
16329	.ascii	"FtlScanSysBlk\000"
16330	.section	.rodata.__func__.9564,"a",%progbits
16331	.set	.LANCHOR151,. + 0
16332	.type	__func__.9564, %object
16333	.size	__func__.9564, 15
16334__func__.9564:
16335	.ascii	"FtlLoadSysInfo\000"
16336	.section	.rodata.__func__.9627,"a",%progbits
16337	.set	.LANCHOR160,. + 0
16338	.type	__func__.9627, %object
16339	.size	__func__.9627, 16
16340__func__.9627:
16341	.ascii	"FtlReUsePrevPpa\000"
16342	.section	.rodata.__func__.9661,"a",%progbits
16343	.set	.LANCHOR166,. + 0
16344	.type	__func__.9661, %object
16345	.size	__func__.9661, 22
16346__func__.9661:
16347	.ascii	"FtlRecoverySuperblock\000"
16348	.section	.rodata.__func__.9718,"a",%progbits
16349	.set	.LANCHOR60,. + 0
16350	.type	__func__.9718, %object
16351	.size	__func__.9718, 16
16352__func__.9718:
16353	.ascii	"make_superblock\000"
16354	.section	.rodata.__func__.9739,"a",%progbits
16355	.set	.LANCHOR146,. + 0
16356	.type	__func__.9739, %object
16357	.size	__func__.9739, 18
16358__func__.9739:
16359	.ascii	"SupperBlkListInit\000"
16360	.section	.rodata.__func__.9764,"a",%progbits
16361	.set	.LANCHOR173,. + 0
16362	.type	__func__.9764, %object
16363	.size	__func__.9764, 21
16364__func__.9764:
16365	.ascii	"FtlVpcCheckAndModify\000"
16366	.section	.rodata.__func__.9780,"a",%progbits
16367	.set	.LANCHOR161,. + 0
16368	.type	__func__.9780, %object
16369	.size	__func__.9780, 14
16370__func__.9780:
16371	.ascii	"ftl_check_vpc\000"
16372	.section	.rodata.__func__.9865,"a",%progbits
16373	.set	.LANCHOR163,. + 0
16374	.type	__func__.9865, %object
16375	.size	__func__.9865, 25
16376__func__.9865:
16377	.ascii	"allocate_data_superblock\000"
16378	.section	.rodata.__func__.9886,"a",%progbits
16379	.set	.LANCHOR174,. + 0
16380	.type	__func__.9886, %object
16381	.size	__func__.9886, 29
16382__func__.9886:
16383	.ascii	"allocate_new_data_superblock\000"
16384	.section	.rodata.__func__.9893,"a",%progbits
16385	.set	.LANCHOR88,. + 0
16386	.type	__func__.9893, %object
16387	.size	__func__.9893, 19
16388__func__.9893:
16389	.ascii	"get_new_active_ppa\000"
16390	.section	.rodata.__func__.9906,"a",%progbits
16391	.set	.LANCHOR164,. + 0
16392	.type	__func__.9906, %object
16393	.size	__func__.9906, 16
16394__func__.9906:
16395	.ascii	"update_vpc_list\000"
16396	.section	.rodata.__func__.9913,"a",%progbits
16397	.set	.LANCHOR165,. + 0
16398	.type	__func__.9913, %object
16399	.size	__func__.9913, 20
16400__func__.9913:
16401	.ascii	"decrement_vpc_count\000"
16402	.section	.rodata.__func__.9983,"a",%progbits
16403	.set	.LANCHOR176,. + 0
16404	.type	__func__.9983, %object
16405	.size	__func__.9983, 19
16406__func__.9983:
16407	.ascii	"FtlGcFreeTempBlock\000"
16408	.section	.rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1
16409.LC105:
16410	.ascii	"decrement_vpc_count %x = %d\012\000"
16411	.section	.rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1
16412.LC94:
16413	.ascii	"...%s enter...\012\000"
16414.LC95:
16415	.ascii	"FtlCheckVpc2 %x = %x  %x\012\000"
16416.LC96:
16417	.ascii	"free blk vpc error %x = %x  %x\012\000"
16418	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1
16419.LC83:
16420	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
16421	.section	.rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1
16422.LC97:
16423	.ascii	"ftl_scan_all_data = %x\012\000"
16424.LC98:
16425	.ascii	"scan lpa = %x ppa= %x\012\000"
16426.LC99:
16427	.ascii	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
16428	.ascii	"\000"
16429	.section	.rodata.load_l2p_region.str1.1,"aMS",%progbits,1
16430.LC90:
16431	.ascii	"region_id = %x phyAddr = %x\012\000"
16432.LC91:
16433	.ascii	"spare:\000"
16434.LC92:
16435	.ascii	"map_ppn:\000"
16436.LC93:
16437	.ascii	"load_l2p_region refresh = %x phyAddr = %x\012\000"
16438	.section	.rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1
16439.LC112:
16440	.ascii	"SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
16441	.section	.rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
16442.LC75:
16443	.ascii	"%s 0x%x:\000"
16444.LC76:
16445	.ascii	"%x \000"
16446.LC77:
16447	.ascii	"%02x \000"
16448.LC78:
16449	.ascii	"\012\000"
16450	.section	.rodata.rknand_proc_ftlread.str1.1,"aMS",%progbits,1
16451.LC70:
16452	.ascii	"SFTL version: 5.0.49 20181030\000"
16453.LC71:
16454	.ascii	"%s\012\000"
16455	.hidden	free
16456