xref: /rk3399_rockchip-uboot/drivers/rkflash/rk_sftl_arm_v7.S (revision 2c6a058b7ea25398013cb25b4e3bb96fe40da1a5)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:    GPL-2.0
5 * date: 2018-10-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 = 0
183	@ frame_needed = 0, uses_anonymous_args = 0
184	ldrh	r1, [r0]
185	ldr	r2, .L25
186	push	{r4, r5, r6, r7, r8, r10, fp, lr}
187	mov	r7, r0
188	ldrh	r5, [r0, #2]
189	strh	r1, [r2]	@ movhi
190	ldr	r2, .L25+4
191	ldrh	r0, [r0, #4]
192	strh	r5, [r2]	@ movhi
193	ldr	r2, .L25+8
194	strh	r0, [r2]	@ movhi
195	ldrh	r2, [r7, #14]
196	cmp	r2, #4
197	bne	.L16
198	ldrh	r2, [r7, #6]
199	ldr	r4, .L25+12
200	lsrs	r2, r2, #1
201	strh	r2, [r4]	@ movhi
202	movs	r4, #8
203	ldr	r2, .L25+16
204	strh	r4, [r2]	@ movhi
205.L16:
206	ldr	r4, .L25+20
207	movs	r2, #0
208.L17:
209	strb	r2, [r2, r4]
210	adds	r2, r2, #1
211	cmp	r2, #32
212	bne	.L17
213	ldr	r2, .L25+24
214	cmp	r1, #1
215	mov	r4, #5
216	smulbb	r5, r5, r0
217	mov	r6, #0
218	strh	r4, [r2]	@ movhi
219	it	eq
220	strheq	r1, [r2]	@ movhi
221	mov	r1, #640
222	ldr	r2, .L25+28
223	uxth	r5, r5
224	ldr	r4, .L25+32
225	strh	r1, [r2]	@ movhi
226	ldr	r2, .L25+36
227	strh	r6, [r4]	@ movhi
228	ldr	r6, .L25+40
229	strh	r5, [r2]	@ movhi
230	ldr	r2, .L25+12
231	ldrh	r4, [r2]
232	ldr	r2, .L25+44
233	smulbb	r0, r0, r4
234	uxth	r0, r0
235	strh	r0, [r2]	@ movhi
236	bl	Ftl_log2
237	ldr	r2, .L25+48
238	ldrh	r8, [r7, #12]
239	ldr	r3, .L25+52
240	strh	r0, [r2]	@ movhi
241	ldr	r2, .L25+56
242	smulbb	r1, r5, r8
243	strh	r8, [r3]	@ movhi
244	strh	r8, [r2]	@ movhi
245	ldr	r2, .L25+60
246	strh	r1, [r2]	@ movhi
247	ldr	r2, .L25+16
248	ldrh	fp, [r2]
249	mov	r0, fp
250	bl	Ftl_log2
251	lsl	r2, fp, #9
252	ldr	r1, .L25+64
253	ldr	r3, .L25+68
254	mov	r10, r0
255	uxth	r2, r2
256	strh	r0, [r6]	@ movhi
257	mov	r0, #5120
258	strh	r2, [r1]	@ movhi
259	lsrs	r2, r2, #8
260	ldr	r1, .L25+72
261	strh	r2, [r1]	@ movhi
262	mul	r1, r8, fp
263	ldrh	r2, [r7, #20]
264	ldr	r7, .L25+52
265	strh	r2, [r3]	@ movhi
266	mul	r3, r4, r5
267	ldr	r2, .L25+76
268	lsls	r4, r4, #6
269	str	r3, [r2]
270	mul	r3, fp, r3
271	ldr	r2, .L25+80
272	mul	r3, r8, r3
273	ldr	r8, .L25+116
274	asrs	r3, r3, #11
275	str	r3, [r2]
276	bl	__aeabi_idiv
277	uxth	r0, r0
278	ldr	r2, .L25+84
279	mov	r1, r5
280	cmp	r0, #4
281	itet	ls
282	movls	r3, #4
283	strhhi	r0, [r8]	@ movhi
284	strhls	r3, [r8]	@ movhi
285	mov	r3, #640
286	asr	r3, r3, r10
287	add	r10, r10, #9
288	asr	r4, r4, r10
289	ldr	r10, .L25+120
290	adds	r3, r3, #2
291	ldrh	r0, [r8]
292	strh	r3, [r2]	@ movhi
293	ldr	r3, .L25+88
294	strh	r4, [r3]	@ movhi
295	uxth	r4, r4
296	mul	r3, r5, r4
297	adds	r4, r4, #8
298	str	r3, [r10]
299	bl	__aeabi_uidiv
300	uxtah	r0, r4, r0
301	ldr	r4, .L25+92
302	cmp	r5, #1
303	it	eq
304	addeq	r0, r0, #4
305	str	r0, [r4]
306	ldrh	r0, [r4]
307	bl	FtlSysBlkNumInit
308	ldr	r2, [r4]
309	movs	r0, #0
310	ldr	r3, .L25+96
311	str	r2, [r3]
312	ldr	r3, .L25+100
313	ldr	r2, [r3]
314	ldrh	r3, [r7]
315	lsls	r2, r2, #2
316	muls	r3, r2, r3
317	ldrh	r2, [r6]
318	adds	r2, r2, #9
319	lsrs	r3, r3, r2
320	ldr	r2, .L25+104
321	adds	r3, r3, #2
322	strh	r3, [r2]	@ movhi
323	movs	r2, #32
324	ldr	r3, .L25+108
325	strh	r2, [r3]	@ movhi
326	ldr	r3, .L25+112
327	str	r0, [r3]
328	ldrh	r3, [r8]
329	adds	r3, r3, #3
330	strh	r3, [r8]	@ movhi
331	ldr	r3, [r10]
332	adds	r3, r3, #3
333	str	r3, [r10]
334	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
335.L26:
336	.align	2
337.L25:
338	.word	.LANCHOR9
339	.word	.LANCHOR10
340	.word	.LANCHOR11
341	.word	.LANCHOR6
342	.word	.LANCHOR12
343	.word	.LANCHOR13
344	.word	.LANCHOR14
345	.word	.LANCHOR16
346	.word	.LANCHOR15
347	.word	.LANCHOR3
348	.word	.LANCHOR22
349	.word	.LANCHOR17
350	.word	.LANCHOR18
351	.word	.LANCHOR19
352	.word	.LANCHOR20
353	.word	.LANCHOR21
354	.word	.LANCHOR23
355	.word	.LANCHOR25
356	.word	.LANCHOR24
357	.word	.LANCHOR8
358	.word	.LANCHOR26
359	.word	.LANCHOR28
360	.word	.LANCHOR29
361	.word	.LANCHOR2
362	.word	.LANCHOR31
363	.word	.LANCHOR7
364	.word	.LANCHOR32
365	.word	.LANCHOR33
366	.word	.LANCHOR34
367	.word	.LANCHOR27
368	.word	.LANCHOR30
369	.size	FtlConstantsInit, .-FtlConstantsInit
370	.section	.text.IsBlkInVendorPart,"ax",%progbits
371	.align	1
372	.global	IsBlkInVendorPart
373	.syntax unified
374	.thumb
375	.thumb_func
376	.fpu softvfp
377	.type	IsBlkInVendorPart, %function
378IsBlkInVendorPart:
379	@ args = 0, pretend = 0, frame = 0
380	@ frame_needed = 0, uses_anonymous_args = 0
381	@ link register save eliminated.
382	ldr	r3, .L34
383	ldrh	r3, [r3]
384	cbz	r3, .L33
385	ldr	r3, .L34+4
386	ldr	r2, .L34+8
387	ldr	r3, [r3]
388	ldrh	r2, [r2]
389	add	r2, r3, r2, lsl #1
390.L29:
391	cmp	r3, r2
392	bne	.L30
393.L33:
394	movs	r0, #0
395	bx	lr
396.L30:
397	ldrh	r1, [r3], #2
398	cmp	r0, r1
399	bne	.L29
400	movs	r0, #1
401	bx	lr
402.L35:
403	.align	2
404.L34:
405	.word	.LANCHOR35
406	.word	.LANCHOR36
407	.word	.LANCHOR27
408	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
409	.section	.text.FtlCacheWriteBack,"ax",%progbits
410	.align	1
411	.global	FtlCacheWriteBack
412	.syntax unified
413	.thumb
414	.thumb_func
415	.fpu softvfp
416	.type	FtlCacheWriteBack, %function
417FtlCacheWriteBack:
418	@ args = 0, pretend = 0, frame = 0
419	@ frame_needed = 0, uses_anonymous_args = 0
420	@ link register save eliminated.
421	movs	r0, #0
422	bx	lr
423	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
424	.section	.text.sftl_get_density,"ax",%progbits
425	.align	1
426	.global	sftl_get_density
427	.syntax unified
428	.thumb
429	.thumb_func
430	.fpu softvfp
431	.type	sftl_get_density, %function
432sftl_get_density:
433	@ args = 0, pretend = 0, frame = 0
434	@ frame_needed = 0, uses_anonymous_args = 0
435	@ link register save eliminated.
436	ldr	r3, .L38
437	ldr	r0, [r3]
438	bx	lr
439.L39:
440	.align	2
441.L38:
442	.word	.LANCHOR34
443	.size	sftl_get_density, .-sftl_get_density
444	.global	__aeabi_uidivmod
445	.section	.text.FtlBbmMapBadBlock,"ax",%progbits
446	.align	1
447	.global	FtlBbmMapBadBlock
448	.syntax unified
449	.thumb
450	.thumb_func
451	.fpu softvfp
452	.type	FtlBbmMapBadBlock, %function
453FtlBbmMapBadBlock:
454	@ args = 0, pretend = 0, frame = 0
455	@ frame_needed = 0, uses_anonymous_args = 0
456	ldr	r3, .L41
457	push	{r0, r1, r2, r4, r5, r6, r7, lr}
458	mov	r5, r0
459	ldrh	r4, [r3]
460	mov	r1, r4
461	bl	__aeabi_uidiv
462	mov	r1, r4
463	ldr	r4, .L41+4
464	uxth	r6, r0
465	mov	r0, r5
466	bl	__aeabi_uidivmod
467	add	r2, r4, r6, lsl #2
468	uxth	r3, r1
469	ldr	r2, [r2, #28]
470	lsrs	r1, r3, #5
471	and	r7, r3, #31
472	movs	r0, #1
473	lsls	r0, r0, r7
474	ldr	r7, [r2, r1, lsl #2]
475	orrs	r0, r0, r7
476	str	r0, [r2, r1, lsl #2]
477	mov	r2, r6
478	str	r0, [sp]
479	mov	r1, r5
480	ldr	r0, .L41+8
481	bl	printf
482	ldrh	r3, [r4, #6]
483	movs	r0, #0
484	adds	r3, r3, #1
485	strh	r3, [r4, #6]	@ movhi
486	add	sp, sp, #12
487	@ sp needed
488	pop	{r4, r5, r6, r7, pc}
489.L42:
490	.align	2
491.L41:
492	.word	.LANCHOR17
493	.word	.LANCHOR37
494	.word	.LC0
495	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
496	.section	.text.FtlBbmIsBadBlock,"ax",%progbits
497	.align	1
498	.global	FtlBbmIsBadBlock
499	.syntax unified
500	.thumb
501	.thumb_func
502	.fpu softvfp
503	.type	FtlBbmIsBadBlock, %function
504FtlBbmIsBadBlock:
505	@ args = 0, pretend = 0, frame = 0
506	@ frame_needed = 0, uses_anonymous_args = 0
507	ldr	r3, .L44
508	push	{r4, r5, r6, lr}
509	mov	r6, r0
510	ldrh	r5, [r3]
511	mov	r1, r5
512	bl	__aeabi_uidivmod
513	mov	r0, r6
514	uxth	r4, r1
515	mov	r1, r5
516	bl	__aeabi_uidiv
517	ldr	r3, .L44+4
518	uxth	r0, r0
519	lsrs	r2, r4, #5
520	and	r4, r4, #31
521	add	r0, r3, r0, lsl #2
522	ldr	r3, [r0, #28]
523	ldr	r0, [r3, r2, lsl #2]
524	lsrs	r0, r0, r4
525	and	r0, r0, #1
526	pop	{r4, r5, r6, pc}
527.L45:
528	.align	2
529.L44:
530	.word	.LANCHOR17
531	.word	.LANCHOR37
532	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
533	.section	.text.FtlBbtInfoPrint,"ax",%progbits
534	.align	1
535	.global	FtlBbtInfoPrint
536	.syntax unified
537	.thumb
538	.thumb_func
539	.fpu softvfp
540	.type	FtlBbtInfoPrint, %function
541FtlBbtInfoPrint:
542	@ args = 0, pretend = 0, frame = 0
543	@ frame_needed = 0, uses_anonymous_args = 0
544	@ link register save eliminated.
545	bx	lr
546	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
547	.section	.text.FtlBbtCalcTotleCnt,"ax",%progbits
548	.align	1
549	.global	FtlBbtCalcTotleCnt
550	.syntax unified
551	.thumb
552	.thumb_func
553	.fpu softvfp
554	.type	FtlBbtCalcTotleCnt, %function
555FtlBbtCalcTotleCnt:
556	@ args = 0, pretend = 0, frame = 0
557	@ frame_needed = 0, uses_anonymous_args = 0
558	ldr	r3, .L54
559	ldr	r2, .L54+4
560	push	{r4, r5, r6, lr}
561	movs	r5, #0
562	ldrh	r3, [r3]
563	mov	r4, r5
564	ldrh	r6, [r2]
565	muls	r6, r3, r6
566.L48:
567	uxth	r0, r5
568	cmp	r0, r6
569	blt	.L50
570	mov	r0, r4
571	pop	{r4, r5, r6, pc}
572.L50:
573	bl	FtlBbmIsBadBlock
574	cbz	r0, .L49
575	adds	r4, r4, #1
576	uxth	r4, r4
577.L49:
578	adds	r5, r5, #1
579	b	.L48
580.L55:
581	.align	2
582.L54:
583	.word	.LANCHOR17
584	.word	.LANCHOR10
585	.size	FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
586	.section	.text.V2P_block,"ax",%progbits
587	.align	1
588	.global	V2P_block
589	.syntax unified
590	.thumb
591	.thumb_func
592	.fpu softvfp
593	.type	V2P_block, %function
594V2P_block:
595	@ args = 0, pretend = 0, frame = 0
596	@ frame_needed = 0, uses_anonymous_args = 0
597	push	{r3, r4, r5, r6, r7, lr}
598	mov	r5, r1
599	ldr	r3, .L57
600	mov	r7, r0
601	ldrh	r6, [r3]
602	mov	r1, r6
603	bl	__aeabi_uidiv
604	ldr	r3, .L57+4
605	smulbb	r5, r6, r5
606	mov	r1, r6
607	ldrh	r4, [r3]
608	smulbb	r4, r4, r0
609	mov	r0, r7
610	bl	__aeabi_uidivmod
611	adds	r0, r5, r1
612	add	r0, r0, r4
613	uxth	r0, r0
614	pop	{r3, r4, r5, r6, r7, pc}
615.L58:
616	.align	2
617.L57:
618	.word	.LANCHOR11
619	.word	.LANCHOR17
620	.size	V2P_block, .-V2P_block
621	.section	.text.P2V_plane,"ax",%progbits
622	.align	1
623	.global	P2V_plane
624	.syntax unified
625	.thumb
626	.thumb_func
627	.fpu softvfp
628	.type	P2V_plane, %function
629P2V_plane:
630	@ args = 0, pretend = 0, frame = 0
631	@ frame_needed = 0, uses_anonymous_args = 0
632	ldr	r3, .L60
633	push	{r4, r5, r6, lr}
634	mov	r6, r0
635	ldrh	r5, [r3]
636	ldr	r3, .L60+4
637	ldrh	r1, [r3]
638	bl	__aeabi_uidiv
639	smulbb	r4, r0, r5
640	mov	r1, r5
641	mov	r0, r6
642	bl	__aeabi_uidivmod
643	add	r1, r1, r4
644	uxth	r0, r1
645	pop	{r4, r5, r6, pc}
646.L61:
647	.align	2
648.L60:
649	.word	.LANCHOR11
650	.word	.LANCHOR17
651	.size	P2V_plane, .-P2V_plane
652	.section	.text.P2V_block_in_plane,"ax",%progbits
653	.align	1
654	.global	P2V_block_in_plane
655	.syntax unified
656	.thumb
657	.thumb_func
658	.fpu softvfp
659	.type	P2V_block_in_plane, %function
660P2V_block_in_plane:
661	@ args = 0, pretend = 0, frame = 0
662	@ frame_needed = 0, uses_anonymous_args = 0
663	push	{r3, lr}
664	ldr	r3, .L63
665	ldrh	r1, [r3]
666	bl	__aeabi_uidivmod
667	ldr	r3, .L63+4
668	uxth	r0, r1
669	ldrh	r1, [r3]
670	bl	__aeabi_uidiv
671	uxth	r0, r0
672	pop	{r3, pc}
673.L64:
674	.align	2
675.L63:
676	.word	.LANCHOR17
677	.word	.LANCHOR11
678	.size	P2V_block_in_plane, .-P2V_block_in_plane
679	.section	.text.ftl_cmp_data_ver,"ax",%progbits
680	.align	1
681	.global	ftl_cmp_data_ver
682	.syntax unified
683	.thumb
684	.thumb_func
685	.fpu softvfp
686	.type	ftl_cmp_data_ver, %function
687ftl_cmp_data_ver:
688	@ args = 0, pretend = 0, frame = 0
689	@ frame_needed = 0, uses_anonymous_args = 0
690	@ link register save eliminated.
691	cmp	r0, r1
692	bls	.L66
693	subs	r0, r0, r1
694	cmp	r0, #-2147483648
695	ite	hi
696	movhi	r0, #0
697	movls	r0, #1
698	bx	lr
699.L66:
700	subs	r0, r1, r0
701	cmp	r0, #-2147483648
702	ite	ls
703	movls	r0, #0
704	movhi	r0, #1
705	bx	lr
706	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
707	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",%progbits
708	.align	1
709	.global	FtlFreeSysBlkQueueEmpty
710	.syntax unified
711	.thumb
712	.thumb_func
713	.fpu softvfp
714	.type	FtlFreeSysBlkQueueEmpty, %function
715FtlFreeSysBlkQueueEmpty:
716	@ args = 0, pretend = 0, frame = 0
717	@ frame_needed = 0, uses_anonymous_args = 0
718	@ link register save eliminated.
719	ldr	r3, .L69
720	ldrh	r0, [r3, #6]
721	clz	r0, r0
722	lsrs	r0, r0, #5
723	bx	lr
724.L70:
725	.align	2
726.L69:
727	.word	.LANCHOR38
728	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
729	.section	.text.FtlFreeSysBlkQueueFull,"ax",%progbits
730	.align	1
731	.global	FtlFreeSysBlkQueueFull
732	.syntax unified
733	.thumb
734	.thumb_func
735	.fpu softvfp
736	.type	FtlFreeSysBlkQueueFull, %function
737FtlFreeSysBlkQueueFull:
738	@ args = 0, pretend = 0, frame = 0
739	@ frame_needed = 0, uses_anonymous_args = 0
740	@ link register save eliminated.
741	ldr	r3, .L72
742	ldrh	r0, [r3, #6]
743	sub	r3, r0, #1024
744	rsbs	r0, r3, #0
745	adcs	r0, r0, r3
746	bx	lr
747.L73:
748	.align	2
749.L72:
750	.word	.LANCHOR38
751	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
752	.section	.text.FtlFreeSysBLkSort,"ax",%progbits
753	.align	1
754	.global	FtlFreeSysBLkSort
755	.syntax unified
756	.thumb
757	.thumb_func
758	.fpu softvfp
759	.type	FtlFreeSysBLkSort, %function
760FtlFreeSysBLkSort:
761	@ args = 0, pretend = 0, frame = 0
762	@ frame_needed = 0, uses_anonymous_args = 0
763	ldr	r3, .L83
764	push	{r4, r5, r6, lr}
765	ldrh	r2, [r3, #6]
766	cbz	r2, .L74
767	ldr	r2, .L83+4
768	movs	r6, #0
769	ldrh	r1, [r3, #2]
770	mov	r5, r6
771	ldrh	r4, [r2, #28]
772	ldrh	r2, [r3, #4]
773	and	r4, r4, #31
774.L76:
775	uxth	r0, r6
776	adds	r6, r6, #1
777	cmp	r4, r0
778	bgt	.L77
779	cbz	r5, .L74
780	strh	r1, [r3, #2]	@ movhi
781	strh	r2, [r3, #4]	@ movhi
782.L74:
783	pop	{r4, r5, r6, pc}
784.L77:
785	adds	r0, r1, #4
786	adds	r1, r1, #1
787	ldrh	r5, [r3, r0, lsl #1]
788	adds	r0, r2, #4
789	ubfx	r1, r1, #0, #10
790	strh	r5, [r3, r0, lsl #1]	@ movhi
791	movs	r5, #1
792	add	r2, r2, r5
793	ubfx	r2, r2, #0, #10
794	b	.L76
795.L84:
796	.align	2
797.L83:
798	.word	.LANCHOR38
799	.word	.LANCHOR39
800	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
801	.section	.text.IsInFreeQueue,"ax",%progbits
802	.align	1
803	.global	IsInFreeQueue
804	.syntax unified
805	.thumb
806	.thumb_func
807	.fpu softvfp
808	.type	IsInFreeQueue, %function
809IsInFreeQueue:
810	@ args = 0, pretend = 0, frame = 0
811	@ frame_needed = 0, uses_anonymous_args = 0
812	ldr	r3, .L91
813	push	{r4, r5, lr}
814	ldrh	r4, [r3, #6]
815	cmp	r4, #1024
816	beq	.L89
817	ldrh	r5, [r3, #2]
818	movs	r1, #0
819.L87:
820	cmp	r1, r4
821	bcc	.L88
822.L89:
823	movs	r0, #0
824	pop	{r4, r5, pc}
825.L88:
826	adds	r2, r1, r5
827	ubfx	r2, r2, #0, #10
828	adds	r2, r2, #4
829	ldrh	r2, [r3, r2, lsl #1]
830	cmp	r2, r0
831	beq	.L90
832	adds	r1, r1, #1
833	b	.L87
834.L90:
835	movs	r0, #1
836	pop	{r4, r5, pc}
837.L92:
838	.align	2
839.L91:
840	.word	.LANCHOR38
841	.size	IsInFreeQueue, .-IsInFreeQueue
842	.section	.text.insert_data_list,"ax",%progbits
843	.align	1
844	.global	insert_data_list
845	.syntax unified
846	.thumb
847	.thumb_func
848	.fpu softvfp
849	.type	insert_data_list, %function
850insert_data_list:
851	@ args = 0, pretend = 0, frame = 16
852	@ frame_needed = 0, uses_anonymous_args = 0
853	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
854	ldr	r3, .L109
855	ldrh	lr, [r3]
856	cmp	lr, r0
857	bls	.L95
858	ldr	r3, .L109+4
859	movs	r5, #6
860	ldr	r4, [r3]
861	mul	r3, r5, r0
862	str	r3, [sp, #4]
863	adds	r1, r4, r3
864	ldr	r2, [sp, #4]
865	movw	r3, #65535
866	strh	r3, [r1, #2]	@ movhi
867	strh	r3, [r4, r2]	@ movhi
868	ldr	r3, .L109+8
869	ldr	ip, [r3]
870	cmp	ip, #0
871	bne	.L96
872.L108:
873	str	r1, [r3]
874.L95:
875	movs	r0, #0
876	add	sp, sp, #16
877	@ sp needed
878	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
879.L96:
880	ldr	r3, .L109+12
881	lsls	r2, r0, #1
882	ldr	r3, [r3]
883	str	r3, [sp, #8]
884	ldrh	r6, [r3, r0, lsl #1]
885	ldrh	r3, [r1, #4]
886	cbz	r3, .L106
887	mul	fp, r3, r6
888.L97:
889	sub	r3, ip, r4
890	asrs	r6, r3, #1
891	ldr	r3, .L109+16
892	muls	r3, r6, r3
893	ldr	r6, .L109+20
894	ldr	r8, [r6]
895	movs	r6, #0
896	uxth	r3, r3
897	add	r2, r8, r2
898	str	r2, [sp, #12]
899	mov	r2, ip
900.L104:
901	adds	r6, r6, #1
902	uxth	r6, r6
903	cmp	lr, r6
904	bcc	.L95
905	cmp	r3, r0
906	beq	.L95
907	ldr	r7, [sp, #8]
908	lsl	r10, r3, #1
909	ldrh	r7, [r7, r3, lsl #1]
910	mov	r5, r7
911	ldrh	r7, [r2, #4]
912	cbz	r7, .L107
913	muls	r7, r5, r7
914.L99:
915	cmp	fp, r7
916	bne	.L100
917	ldr	r5, [sp, #12]
918	ldrh	r10, [r8, r10]
919	ldrh	r7, [r5]
920	cmp	r10, r7
921	bcc	.L102
922.L101:
923	ldr	r5, [sp, #4]
924	cmp	r2, ip
925	strh	r3, [r4, r5]	@ movhi
926	ldrh	r3, [r2, #2]
927	strh	r3, [r1, #2]	@ movhi
928	bne	.L105
929	strh	r0, [r2, #2]	@ movhi
930	ldr	r3, .L109+8
931	b	.L108
932.L106:
933	mov	fp, #-1
934	b	.L97
935.L107:
936	mov	r7, #-1
937	b	.L99
938.L100:
939	bcc	.L101
940.L102:
941	ldrh	r7, [r2]
942	movw	r5, #65535
943	cmp	r7, r5
944	bne	.L103
945	strh	r3, [r1, #2]	@ movhi
946	strh	r0, [r2]	@ movhi
947	ldr	r3, .L109+24
948	b	.L108
949.L103:
950	movs	r3, #6
951	mla	r2, r3, r7, r4
952	mov	r3, r7
953	b	.L104
954.L105:
955	ldrh	r1, [r2, #2]
956	movs	r3, #6
957	muls	r3, r1, r3
958	strh	r0, [r4, r3]	@ movhi
959	strh	r0, [r2, #2]	@ movhi
960	b	.L95
961.L110:
962	.align	2
963.L109:
964	.word	.LANCHOR5
965	.word	.LANCHOR40
966	.word	.LANCHOR41
967	.word	.LANCHOR42
968	.word	-1431655765
969	.word	.LANCHOR43
970	.word	.LANCHOR44
971	.size	insert_data_list, .-insert_data_list
972	.section	.text.INSERT_DATA_LIST,"ax",%progbits
973	.align	1
974	.global	INSERT_DATA_LIST
975	.syntax unified
976	.thumb
977	.thumb_func
978	.fpu softvfp
979	.type	INSERT_DATA_LIST, %function
980INSERT_DATA_LIST:
981	@ args = 0, pretend = 0, frame = 0
982	@ frame_needed = 0, uses_anonymous_args = 0
983	push	{r3, lr}
984	bl	insert_data_list
985	ldr	r2, .L113
986	ldrh	r3, [r2]
987	adds	r3, r3, #1
988	uxth	r3, r3
989	strh	r3, [r2]	@ movhi
990	ldr	r2, .L113+4
991	ldrh	r2, [r2]
992	cmp	r2, r3
993	bcs	.L111
994	movs	r2, #214
995	ldr	r1, .L113+8
996	ldr	r0, .L113+12
997	pop	{r3, lr}
998	b	printf
999.L111:
1000	pop	{r3, pc}
1001.L114:
1002	.align	2
1003.L113:
1004	.word	.LANCHOR45
1005	.word	.LANCHOR5
1006	.word	.LANCHOR46
1007	.word	.LC1
1008	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
1009	.section	.text.insert_free_list,"ax",%progbits
1010	.align	1
1011	.global	insert_free_list
1012	.syntax unified
1013	.thumb
1014	.thumb_func
1015	.fpu softvfp
1016	.type	insert_free_list, %function
1017insert_free_list:
1018	@ args = 0, pretend = 0, frame = 0
1019	@ frame_needed = 0, uses_anonymous_args = 0
1020	movw	r1, #65535
1021	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1022	cmp	r0, r1
1023	beq	.L116
1024	ldr	r3, .L122
1025	mov	r10, #6
1026	mul	r7, r10, r0
1027	ldr	r4, [r3]
1028	ldr	r3, .L122+4
1029	adds	r5, r4, r7
1030	ldr	r6, [r3]
1031	mov	lr, r3
1032	strh	r1, [r5, #2]	@ movhi
1033	strh	r1, [r4, r7]	@ movhi
1034	cbnz	r6, .L117
1035	str	r5, [r3]
1036.L116:
1037	movs	r0, #0
1038	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1039.L117:
1040	ldr	r3, .L122+8
1041	subs	r2, r6, r4
1042	mov	fp, r1
1043	ldr	ip, [r3]
1044	asrs	r3, r2, #1
1045	ldr	r2, .L122+12
1046	ldrh	r8, [ip, r0, lsl #1]
1047	muls	r2, r3, r2
1048	mov	r3, r6
1049	uxth	r2, r2
1050.L120:
1051	ldrh	r1, [ip, r2, lsl #1]
1052	cmp	r1, r8
1053	bcs	.L118
1054	ldrh	r1, [r3]
1055	cmp	r1, fp
1056	bne	.L119
1057	strh	r2, [r5, #2]	@ movhi
1058	strh	r0, [r3]	@ movhi
1059	b	.L116
1060.L119:
1061	mla	r3, r10, r1, r4
1062	mov	r2, r1
1063	b	.L120
1064.L118:
1065	ldrh	r1, [r3, #2]
1066	cmp	r3, r6
1067	strh	r1, [r5, #2]	@ movhi
1068	it	ne
1069	ldrhne	r1, [r3, #2]
1070	strh	r2, [r4, r7]	@ movhi
1071	iteet	ne
1072	movne	r2, #6
1073	strheq	r0, [r3, #2]	@ movhi
1074	streq	r5, [lr]
1075	mulne	r2, r2, r1
1076	itt	ne
1077	strhne	r0, [r4, r2]	@ movhi
1078	strhne	r0, [r3, #2]	@ movhi
1079	b	.L116
1080.L123:
1081	.align	2
1082.L122:
1083	.word	.LANCHOR40
1084	.word	.LANCHOR47
1085	.word	.LANCHOR43
1086	.word	-1431655765
1087	.size	insert_free_list, .-insert_free_list
1088	.section	.text.INSERT_FREE_LIST,"ax",%progbits
1089	.align	1
1090	.global	INSERT_FREE_LIST
1091	.syntax unified
1092	.thumb
1093	.thumb_func
1094	.fpu softvfp
1095	.type	INSERT_FREE_LIST, %function
1096INSERT_FREE_LIST:
1097	@ args = 0, pretend = 0, frame = 0
1098	@ frame_needed = 0, uses_anonymous_args = 0
1099	push	{r3, lr}
1100	bl	insert_free_list
1101	ldr	r2, .L126
1102	ldrh	r3, [r2]
1103	adds	r3, r3, #1
1104	uxth	r3, r3
1105	strh	r3, [r2]	@ movhi
1106	ldr	r2, .L126+4
1107	ldrh	r2, [r2]
1108	cmp	r2, r3
1109	bcs	.L124
1110	movs	r2, #207
1111	ldr	r1, .L126+8
1112	ldr	r0, .L126+12
1113	pop	{r3, lr}
1114	b	printf
1115.L124:
1116	pop	{r3, pc}
1117.L127:
1118	.align	2
1119.L126:
1120	.word	.LANCHOR48
1121	.word	.LANCHOR5
1122	.word	.LANCHOR49
1123	.word	.LC1
1124	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
1125	.section	.text.List_remove_node,"ax",%progbits
1126	.align	1
1127	.global	List_remove_node
1128	.syntax unified
1129	.thumb
1130	.thumb_func
1131	.fpu softvfp
1132	.type	List_remove_node, %function
1133List_remove_node:
1134	@ args = 0, pretend = 0, frame = 0
1135	@ frame_needed = 0, uses_anonymous_args = 0
1136	push	{r4, r5, r6, r7, r8, lr}
1137	movs	r6, #6
1138	ldr	r5, .L134
1139	muls	r6, r1, r6
1140	movw	r3, #65535
1141	mov	r8, r0
1142	ldr	r7, [r5]
1143	adds	r4, r7, r6
1144	ldrh	r2, [r4, #2]
1145	cmp	r2, r3
1146	bne	.L129
1147	ldr	r3, [r0]
1148	cmp	r4, r3
1149	beq	.L129
1150	mov	r2, #372
1151	ldr	r1, .L134+4
1152	ldr	r0, .L134+8
1153	bl	printf
1154.L129:
1155	ldr	r3, [r8]
1156	movw	r1, #65535
1157	cmp	r4, r3
1158	ldrh	r3, [r7, r6]
1159	bne	.L130
1160	cmp	r3, r1
1161	ittee	ne
1162	ldrne	r0, [r5]
1163	movne	r2, #6
1164	moveq	r3, #0
1165	streq	r3, [r8]
1166	ittt	ne
1167	mlane	r3, r2, r3, r0
1168	strne	r3, [r8]
1169	strhne	r1, [r3, #2]	@ movhi
1170.L132:
1171	movw	r3, #65535
1172	movs	r0, #0
1173	strh	r3, [r7, r6]	@ movhi
1174	strh	r3, [r4, #2]	@ movhi
1175	pop	{r4, r5, r6, r7, r8, pc}
1176.L130:
1177	cmp	r3, r1
1178	ldrh	r1, [r4, #2]
1179	bne	.L133
1180	cmp	r1, r3
1181	beq	.L132
1182	movs	r2, #6
1183	ldr	r0, [r5]
1184	muls	r1, r2, r1
1185	strh	r3, [r0, r1]	@ movhi
1186	b	.L132
1187.L133:
1188	ldr	r0, [r5]
1189	movs	r2, #6
1190	mla	r5, r2, r3, r0
1191	strh	r1, [r5, #2]	@ movhi
1192	ldrh	r1, [r4, #2]
1193	muls	r2, r1, r2
1194	strh	r3, [r0, r2]	@ movhi
1195	b	.L132
1196.L135:
1197	.align	2
1198.L134:
1199	.word	.LANCHOR40
1200	.word	.LANCHOR50
1201	.word	.LC1
1202	.size	List_remove_node, .-List_remove_node
1203	.section	.text.List_pop_index_node,"ax",%progbits
1204	.align	1
1205	.global	List_pop_index_node
1206	.syntax unified
1207	.thumb
1208	.thumb_func
1209	.fpu softvfp
1210	.type	List_pop_index_node, %function
1211List_pop_index_node:
1212	@ args = 0, pretend = 0, frame = 0
1213	@ frame_needed = 0, uses_anonymous_args = 0
1214	ldr	r3, [r0]
1215	push	{r4, r5, r6, lr}
1216	cbz	r3, .L142
1217	ldr	r2, .L143
1218	movw	r5, #65535
1219	movs	r6, #6
1220	ldr	r2, [r2]
1221.L138:
1222	cbnz	r1, .L139
1223.L141:
1224	ldr	r4, .L143+4
1225	subs	r3, r3, r2
1226	asrs	r3, r3, #1
1227	muls	r4, r3, r4
1228	uxth	r1, r4
1229	bl	List_remove_node
1230	uxth	r0, r4
1231	pop	{r4, r5, r6, pc}
1232.L139:
1233	ldrh	r4, [r3]
1234	cmp	r4, r5
1235	beq	.L141
1236	subs	r1, r1, #1
1237	mla	r3, r6, r4, r2
1238	uxth	r1, r1
1239	b	.L138
1240.L142:
1241	movw	r0, #65535
1242	pop	{r4, r5, r6, pc}
1243.L144:
1244	.align	2
1245.L143:
1246	.word	.LANCHOR40
1247	.word	-1431655765
1248	.size	List_pop_index_node, .-List_pop_index_node
1249	.section	.text.List_pop_head_node,"ax",%progbits
1250	.align	1
1251	.global	List_pop_head_node
1252	.syntax unified
1253	.thumb
1254	.thumb_func
1255	.fpu softvfp
1256	.type	List_pop_head_node, %function
1257List_pop_head_node:
1258	@ args = 0, pretend = 0, frame = 0
1259	@ frame_needed = 0, uses_anonymous_args = 0
1260	@ link register save eliminated.
1261	movs	r1, #0
1262	b	List_pop_index_node
1263	.size	List_pop_head_node, .-List_pop_head_node
1264	.section	.text.List_get_gc_head_node,"ax",%progbits
1265	.align	1
1266	.global	List_get_gc_head_node
1267	.syntax unified
1268	.thumb
1269	.thumb_func
1270	.fpu softvfp
1271	.type	List_get_gc_head_node, %function
1272List_get_gc_head_node:
1273	@ args = 0, pretend = 0, frame = 0
1274	@ frame_needed = 0, uses_anonymous_args = 0
1275	ldr	r3, .L152
1276	push	{r4, lr}
1277	ldr	r3, [r3]
1278	cbz	r3, .L151
1279	ldr	r2, .L152+4
1280	movs	r4, #6
1281	ldr	r1, [r2]
1282	movw	r2, #65535
1283.L148:
1284	cbz	r0, .L149
1285	ldrh	r3, [r3]
1286	cmp	r3, r2
1287	bne	.L150
1288.L151:
1289	movw	r0, #65535
1290	pop	{r4, pc}
1291.L150:
1292	subs	r0, r0, #1
1293	mla	r3, r4, r3, r1
1294	uxth	r0, r0
1295	b	.L148
1296.L149:
1297	ldr	r0, .L152+8
1298	subs	r3, r3, r1
1299	asrs	r3, r3, #1
1300	muls	r3, r0, r3
1301	uxth	r0, r3
1302	pop	{r4, pc}
1303.L153:
1304	.align	2
1305.L152:
1306	.word	.LANCHOR41
1307	.word	.LANCHOR40
1308	.word	-1431655765
1309	.size	List_get_gc_head_node, .-List_get_gc_head_node
1310	.section	.text.List_update_data_list,"ax",%progbits
1311	.align	1
1312	.global	List_update_data_list
1313	.syntax unified
1314	.thumb
1315	.thumb_func
1316	.fpu softvfp
1317	.type	List_update_data_list, %function
1318List_update_data_list:
1319	@ args = 0, pretend = 0, frame = 0
1320	@ frame_needed = 0, uses_anonymous_args = 0
1321	ldr	r3, .L165
1322	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1323	mov	r4, r0
1324	ldrh	r3, [r3]
1325	cmp	r3, r0
1326	beq	.L156
1327	ldr	r3, .L165+4
1328	ldrh	r3, [r3]
1329	cmp	r3, r0
1330	beq	.L156
1331	ldr	r3, .L165+8
1332	ldrh	r3, [r3]
1333	cmp	r3, r0
1334	beq	.L156
1335	ldr	r7, .L165+12
1336	movs	r6, #6
1337	ldr	r3, .L165+16
1338	muls	r6, r0, r6
1339	ldr	fp, [r7]
1340	ldr	r3, [r3]
1341	add	r10, fp, r6
1342	cmp	r10, r3
1343	beq	.L156
1344	ldr	r3, .L165+20
1345	ldrh	r5, [r10, #4]
1346	ldr	r2, [r3]
1347	mov	r8, r3
1348	ldrh	r2, [r2, r0, lsl #1]
1349	cmp	r5, #0
1350	beq	.L163
1351	muls	r5, r2, r5
1352.L158:
1353	ldrh	r3, [r10, #2]
1354	movw	r2, #65535
1355	cmp	r3, r2
1356	bne	.L159
1357	ldrh	r2, [fp, r6]
1358	cmp	r2, r3
1359	bne	.L159
1360	movw	r2, #463
1361	ldr	r1, .L165+24
1362	ldr	r0, .L165+28
1363	bl	printf
1364.L159:
1365	ldrh	r3, [r10, #2]
1366	movw	r2, #65535
1367	cmp	r3, r2
1368	bne	.L160
1369	ldrh	r2, [fp, r6]
1370	cmp	r2, r3
1371	beq	.L156
1372.L160:
1373	movs	r2, #6
1374	muls	r2, r3, r2
1375	ldr	r3, .L165+32
1376	asrs	r1, r2, #1
1377	muls	r3, r1, r3
1378	ldr	r1, [r8]
1379	ldrh	r0, [r1, r3, lsl #1]
1380	ldr	r1, [r7]
1381	add	r2, r2, r1
1382	ldrh	r3, [r2, #4]
1383	cbz	r3, .L164
1384	muls	r3, r0, r3
1385.L161:
1386	cmp	r5, r3
1387	bcs	.L156
1388	ldr	r5, .L165+36
1389	mov	r1, r4
1390	ldr	r0, .L165+16
1391	bl	List_remove_node
1392	ldrh	r3, [r5]
1393	cbnz	r3, .L162
1394	mov	r2, #474
1395	ldr	r1, .L165+24
1396	ldr	r0, .L165+28
1397	bl	printf
1398.L162:
1399	ldrh	r3, [r5]
1400	mov	r0, r4
1401	subs	r3, r3, #1
1402	strh	r3, [r5]	@ movhi
1403	bl	INSERT_DATA_LIST
1404.L156:
1405	movs	r0, #0
1406	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1407.L163:
1408	mov	r5, #-1
1409	b	.L158
1410.L164:
1411	mov	r3, #-1
1412	b	.L161
1413.L166:
1414	.align	2
1415.L165:
1416	.word	.LANCHOR51
1417	.word	.LANCHOR52
1418	.word	.LANCHOR53
1419	.word	.LANCHOR40
1420	.word	.LANCHOR41
1421	.word	.LANCHOR42
1422	.word	.LANCHOR54
1423	.word	.LC1
1424	.word	-1431655765
1425	.word	.LANCHOR45
1426	.size	List_update_data_list, .-List_update_data_list
1427	.section	.text.select_l2p_ram_region,"ax",%progbits
1428	.align	1
1429	.global	select_l2p_ram_region
1430	.syntax unified
1431	.thumb
1432	.thumb_func
1433	.fpu softvfp
1434	.type	select_l2p_ram_region, %function
1435select_l2p_ram_region:
1436	@ args = 0, pretend = 0, frame = 0
1437	@ frame_needed = 0, uses_anonymous_args = 0
1438	push	{r3, r4, r5, r6, r7, lr}
1439	movs	r1, #0
1440	ldr	r3, .L177
1441	movs	r0, #12
1442	movw	r5, #65535
1443	ldrh	r2, [r3]
1444	ldr	r3, .L177+4
1445	ldr	r3, [r3]
1446.L168:
1447	uxth	r4, r1
1448	cmp	r4, r2
1449	bcc	.L170
1450	mov	r4, r2
1451	movs	r1, #0
1452	mov	r6, #-2147483648
1453	movs	r7, #12
1454.L171:
1455	uxth	r5, r1
1456	cmp	r5, r2
1457	bcc	.L173
1458	cmp	r4, r2
1459	bcc	.L169
1460	ldr	r1, .L177+8
1461	mov	r4, r2
1462	mov	r0, #-1
1463	ldrh	r7, [r1]
1464	movs	r1, #0
1465.L174:
1466	uxth	r5, r1
1467	cmp	r5, r2
1468	bcc	.L176
1469	cmp	r4, r2
1470	bcc	.L169
1471	movw	r2, #787
1472	ldr	r1, .L177+12
1473	ldr	r0, .L177+16
1474	bl	printf
1475	b	.L169
1476.L170:
1477	adds	r1, r1, #1
1478	mla	r6, r0, r1, r3
1479	ldrh	r6, [r6, #-12]
1480	cmp	r6, r5
1481	bne	.L168
1482.L169:
1483	mov	r0, r4
1484	pop	{r3, r4, r5, r6, r7, pc}
1485.L173:
1486	mla	r0, r7, r1, r3
1487	ldr	r0, [r0, #4]
1488	cmp	r0, #0
1489	blt	.L172
1490	cmp	r6, r0
1491	itt	hi
1492	movhi	r6, r0
1493	movhi	r4, r5
1494.L172:
1495	adds	r1, r1, #1
1496	b	.L171
1497.L176:
1498	ldr	r6, [r3, #4]
1499	cmp	r0, r6
1500	bls	.L175
1501	ldrh	ip, [r3]
1502	cmp	ip, r7
1503	itt	ne
1504	movne	r0, r6
1505	movne	r4, r5
1506.L175:
1507	adds	r1, r1, #1
1508	adds	r3, r3, #12
1509	b	.L174
1510.L178:
1511	.align	2
1512.L177:
1513	.word	.LANCHOR33
1514	.word	.LANCHOR55
1515	.word	.LANCHOR56
1516	.word	.LANCHOR57
1517	.word	.LC1
1518	.size	select_l2p_ram_region, .-select_l2p_ram_region
1519	.section	.text.FtlUpdateVaildLpn,"ax",%progbits
1520	.align	1
1521	.global	FtlUpdateVaildLpn
1522	.syntax unified
1523	.thumb
1524	.thumb_func
1525	.fpu softvfp
1526	.type	FtlUpdateVaildLpn, %function
1527FtlUpdateVaildLpn:
1528	@ args = 0, pretend = 0, frame = 0
1529	@ frame_needed = 0, uses_anonymous_args = 0
1530	ldr	r2, .L189
1531	push	{r4, r5, r6, lr}
1532	mov	r1, r2
1533	ldrh	r3, [r2]
1534	cmp	r3, #4
1535	bhi	.L180
1536	cbnz	r0, .L180
1537	adds	r3, r3, #1
1538	strh	r3, [r2]	@ movhi
1539	pop	{r4, r5, r6, pc}
1540.L180:
1541	movs	r3, #0
1542	ldr	r0, .L189+4
1543	strh	r3, [r1]	@ movhi
1544	movw	r6, #65535
1545	ldr	r1, .L189+8
1546	ldrh	r4, [r0]
1547	mov	r0, r3
1548	ldr	r2, .L189+12
1549	ldr	r1, [r1]
1550	str	r3, [r2]
1551	add	r4, r1, r4, lsl #1
1552.L181:
1553	cmp	r1, r4
1554	bne	.L183
1555	cbz	r3, .L179
1556	str	r0, [r2]
1557.L179:
1558	pop	{r4, r5, r6, pc}
1559.L183:
1560	ldrh	r5, [r1], #2
1561	cmp	r5, r6
1562	itt	ne
1563	addne	r0, r0, r5
1564	movne	r3, #1
1565	b	.L181
1566.L190:
1567	.align	2
1568.L189:
1569	.word	.LANCHOR58
1570	.word	.LANCHOR5
1571	.word	.LANCHOR42
1572	.word	.LANCHOR59
1573	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
1574	.section	.text.ftl_set_blk_mode,"ax",%progbits
1575	.align	1
1576	.global	ftl_set_blk_mode
1577	.syntax unified
1578	.thumb
1579	.thumb_func
1580	.fpu softvfp
1581	.type	ftl_set_blk_mode, %function
1582ftl_set_blk_mode:
1583	@ args = 0, pretend = 0, frame = 0
1584	@ frame_needed = 0, uses_anonymous_args = 0
1585	@ link register save eliminated.
1586	mov	r3, r0
1587	cbz	r1, .L192
1588	b	ftl_set_blk_mode.part.6
1589.L192:
1590	ldr	r2, .L193
1591	lsrs	r0, r0, #5
1592	and	r3, r3, #31
1593	ldr	r1, [r2]
1594	movs	r2, #1
1595	lsl	r3, r2, r3
1596	ldr	r2, [r1, r0, lsl #2]
1597	bic	r2, r2, r3
1598	str	r2, [r1, r0, lsl #2]
1599	bx	lr
1600.L194:
1601	.align	2
1602.L193:
1603	.word	.LANCHOR1
1604	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
1605	.section	.text.ftl_get_blk_mode,"ax",%progbits
1606	.align	1
1607	.global	ftl_get_blk_mode
1608	.syntax unified
1609	.thumb
1610	.thumb_func
1611	.fpu softvfp
1612	.type	ftl_get_blk_mode, %function
1613ftl_get_blk_mode:
1614	@ args = 0, pretend = 0, frame = 0
1615	@ frame_needed = 0, uses_anonymous_args = 0
1616	@ link register save eliminated.
1617	ldr	r3, .L196
1618	lsrs	r2, r0, #5
1619	and	r0, r0, #31
1620	ldr	r3, [r3]
1621	ldr	r3, [r3, r2, lsl #2]
1622	lsr	r0, r3, r0
1623	and	r0, r0, #1
1624	bx	lr
1625.L197:
1626	.align	2
1627.L196:
1628	.word	.LANCHOR1
1629	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
1630	.section	.text.ftl_sb_update_avl_pages,"ax",%progbits
1631	.align	1
1632	.global	ftl_sb_update_avl_pages
1633	.syntax unified
1634	.thumb
1635	.thumb_func
1636	.fpu softvfp
1637	.type	ftl_sb_update_avl_pages, %function
1638ftl_sb_update_avl_pages:
1639	@ args = 0, pretend = 0, frame = 0
1640	@ frame_needed = 0, uses_anonymous_args = 0
1641	movs	r3, #0
1642	push	{r4, r5, r6, lr}
1643	strh	r3, [r0, #4]	@ movhi
1644	movw	r6, #65535
1645	ldr	r3, .L205
1646	ldrh	r4, [r3]
1647	add	r3, r0, r2, lsl #1
1648	adds	r3, r3, #14
1649.L199:
1650	cmp	r2, r4
1651	bcc	.L201
1652	ldr	r3, .L205+4
1653	add	r5, r0, #16
1654	movw	r6, #65535
1655	ldrh	r3, [r3]
1656	subs	r3, r3, #1
1657	subs	r1, r3, r1
1658	movs	r3, #0
1659	uxth	r1, r1
1660.L202:
1661	uxth	r2, r3
1662	cmp	r4, r2
1663	bhi	.L204
1664	pop	{r4, r5, r6, pc}
1665.L201:
1666	ldrh	r5, [r3, #2]!
1667	adds	r2, r2, #1
1668	uxth	r2, r2
1669	cmp	r5, r6
1670	ittt	ne
1671	ldrhne	r5, [r0, #4]
1672	addne	r5, r5, #1
1673	strhne	r5, [r0, #4]	@ movhi
1674	b	.L199
1675.L204:
1676	ldrh	r2, [r5], #2
1677	adds	r3, r3, #1
1678	cmp	r2, r6
1679	ittt	ne
1680	ldrhne	r2, [r0, #4]
1681	addne	r2, r2, r1
1682	strhne	r2, [r0, #4]	@ movhi
1683	b	.L202
1684.L206:
1685	.align	2
1686.L205:
1687	.word	.LANCHOR3
1688	.word	.LANCHOR19
1689	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
1690	.section	.text.FtlSlcSuperblockCheck,"ax",%progbits
1691	.align	1
1692	.global	FtlSlcSuperblockCheck
1693	.syntax unified
1694	.thumb
1695	.thumb_func
1696	.fpu softvfp
1697	.type	FtlSlcSuperblockCheck, %function
1698FtlSlcSuperblockCheck:
1699	@ args = 0, pretend = 0, frame = 0
1700	@ frame_needed = 0, uses_anonymous_args = 0
1701	ldrh	r3, [r0, #4]
1702	push	{r4, r5, lr}
1703	cbz	r3, .L207
1704	ldrh	r2, [r0]
1705	movw	r3, #65535
1706	cmp	r2, r3
1707	beq	.L207
1708	ldrb	r2, [r0, #6]	@ zero_extendqisi2
1709	movs	r5, #0
1710	adds	r2, r2, #8
1711	ldrh	r1, [r0, r2, lsl #1]
1712	ldr	r2, .L213
1713	ldrh	r4, [r2]
1714	mov	r2, r3
1715.L210:
1716	cmp	r1, r2
1717	beq	.L212
1718.L207:
1719	pop	{r4, r5, pc}
1720.L212:
1721	ldrb	r3, [r0, #6]	@ zero_extendqisi2
1722	adds	r3, r3, #1
1723	uxtb	r3, r3
1724	cmp	r3, r4
1725	strb	r3, [r0, #6]
1726	itttt	eq
1727	ldrheq	r3, [r0, #2]
1728	strbeq	r5, [r0, #6]
1729	addeq	r3, r3, #1
1730	strheq	r3, [r0, #2]	@ movhi
1731	ldrb	r3, [r0, #6]	@ zero_extendqisi2
1732	adds	r3, r3, #8
1733	ldrh	r1, [r0, r3, lsl #1]
1734	b	.L210
1735.L214:
1736	.align	2
1737.L213:
1738	.word	.LANCHOR3
1739	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1740	.section	.text.make_superblock,"ax",%progbits
1741	.align	1
1742	.global	make_superblock
1743	.syntax unified
1744	.thumb
1745	.thumb_func
1746	.fpu softvfp
1747	.type	make_superblock, %function
1748make_superblock:
1749	@ args = 0, pretend = 0, frame = 0
1750	@ frame_needed = 0, uses_anonymous_args = 0
1751	ldr	r3, .L220
1752	ldrh	r2, [r0]
1753	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1754	mov	r4, r0
1755	ldrh	r3, [r3]
1756	cmp	r2, r3
1757	bcc	.L216
1758	movw	r2, #2110
1759	ldr	r1, .L220+4
1760	ldr	r0, .L220+8
1761	bl	printf
1762.L216:
1763	ldr	r3, .L220+12
1764	add	r6, r4, #16
1765	ldr	r10, .L220+20
1766	movw	r7, #65535
1767	movs	r5, #0
1768	ldrh	r8, [r3]
1769	strh	r5, [r4, #4]	@ movhi
1770	strb	r5, [r4, #7]
1771.L217:
1772	uxth	r3, r5
1773	cmp	r8, r3
1774	bhi	.L219
1775	ldr	r2, .L220+16
1776	movs	r0, #0
1777	ldrb	r3, [r4, #7]	@ zero_extendqisi2
1778	strb	r0, [r4, #9]
1779	ldrh	r2, [r2]
1780	smulbb	r3, r3, r2
1781	strh	r3, [r4, #4]	@ movhi
1782	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1783.L219:
1784	ldrh	r1, [r4]
1785	ldrb	r0, [r10, r5]	@ zero_extendqisi2
1786	bl	V2P_block
1787	strh	r7, [r6]	@ movhi
1788	mov	fp, r0
1789	bl	FtlBbmIsBadBlock
1790	cbnz	r0, .L218
1791	strh	fp, [r6]	@ movhi
1792	ldrb	r3, [r4, #7]	@ zero_extendqisi2
1793	adds	r3, r3, #1
1794	strb	r3, [r4, #7]
1795.L218:
1796	adds	r5, r5, #1
1797	adds	r6, r6, #2
1798	b	.L217
1799.L221:
1800	.align	2
1801.L220:
1802	.word	.LANCHOR5
1803	.word	.LANCHOR60
1804	.word	.LC1
1805	.word	.LANCHOR3
1806	.word	.LANCHOR19
1807	.word	.LANCHOR13
1808	.size	make_superblock, .-make_superblock
1809	.section	.text.update_multiplier_value,"ax",%progbits
1810	.align	1
1811	.global	update_multiplier_value
1812	.syntax unified
1813	.thumb
1814	.thumb_func
1815	.fpu softvfp
1816	.type	update_multiplier_value, %function
1817update_multiplier_value:
1818	@ args = 0, pretend = 0, frame = 0
1819	@ frame_needed = 0, uses_anonymous_args = 0
1820	push	{r3, r4, r5, r6, r7, r8, r10, lr}
1821	movs	r5, #0
1822	ldr	r3, .L228
1823	mov	r6, r0
1824	mov	r4, r5
1825	ldr	r10, .L228+12
1826	ldrh	r7, [r3]
1827	ldr	r3, .L228+4
1828	ldrh	r8, [r3]
1829.L223:
1830	uxth	r3, r5
1831	cmp	r7, r3
1832	bhi	.L225
1833	cbz	r4, .L227
1834	mov	r1, r4
1835	mov	r0, #32768
1836	bl	__aeabi_idiv
1837.L226:
1838	ldr	r3, .L228+8
1839	movs	r2, #6
1840	ldr	r3, [r3]
1841	mla	r6, r2, r6, r3
1842	strh	r0, [r6, #4]	@ movhi
1843	movs	r0, #0
1844	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
1845.L225:
1846	mov	r1, r6
1847	ldrb	r0, [r10, r5]	@ zero_extendqisi2
1848	bl	V2P_block
1849	bl	FtlBbmIsBadBlock
1850	cbnz	r0, .L224
1851	add	r4, r4, r8
1852	uxth	r4, r4
1853.L224:
1854	adds	r5, r5, #1
1855	b	.L223
1856.L227:
1857	mov	r0, r4
1858	b	.L226
1859.L229:
1860	.align	2
1861.L228:
1862	.word	.LANCHOR3
1863	.word	.LANCHOR19
1864	.word	.LANCHOR40
1865	.word	.LANCHOR13
1866	.size	update_multiplier_value, .-update_multiplier_value
1867	.section	.text.GetFreeBlockMinEraseCount,"ax",%progbits
1868	.align	1
1869	.global	GetFreeBlockMinEraseCount
1870	.syntax unified
1871	.thumb
1872	.thumb_func
1873	.fpu softvfp
1874	.type	GetFreeBlockMinEraseCount, %function
1875GetFreeBlockMinEraseCount:
1876	@ args = 0, pretend = 0, frame = 0
1877	@ frame_needed = 0, uses_anonymous_args = 0
1878	@ link register save eliminated.
1879	ldr	r3, .L233
1880	ldr	r0, [r3]
1881	cbz	r0, .L231
1882	ldr	r3, .L233+4
1883	ldr	r3, [r3]
1884	subs	r0, r0, r3
1885	ldr	r3, .L233+8
1886	asrs	r0, r0, #1
1887	muls	r0, r3, r0
1888	ldr	r3, .L233+12
1889	ldr	r3, [r3]
1890	uxth	r0, r0
1891	ldrh	r0, [r3, r0, lsl #1]
1892.L231:
1893	bx	lr
1894.L234:
1895	.align	2
1896.L233:
1897	.word	.LANCHOR47
1898	.word	.LANCHOR40
1899	.word	-1431655765
1900	.word	.LANCHOR43
1901	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
1902	.section	.text.GetFreeBlockMaxEraseCount,"ax",%progbits
1903	.align	1
1904	.global	GetFreeBlockMaxEraseCount
1905	.syntax unified
1906	.thumb
1907	.thumb_func
1908	.fpu softvfp
1909	.type	GetFreeBlockMaxEraseCount, %function
1910GetFreeBlockMaxEraseCount:
1911	@ args = 0, pretend = 0, frame = 0
1912	@ frame_needed = 0, uses_anonymous_args = 0
1913	ldr	r3, .L243
1914	push	{r4, r5, r6, lr}
1915	ldr	r3, [r3]
1916	cbz	r3, .L241
1917	ldr	r2, .L243+4
1918	movs	r5, #6
1919	movw	r6, #65535
1920	ldrh	r2, [r2]
1921	rsb	r2, r2, r2, lsl #3
1922	asrs	r2, r2, #3
1923	cmp	r0, r2
1924	it	gt
1925	uxthgt	r0, r2
1926	ldr	r2, .L243+8
1927	ldr	r1, [r2]
1928	ldr	r2, .L243+12
1929	subs	r3, r3, r1
1930	asrs	r3, r3, #1
1931	muls	r3, r2, r3
1932	movs	r2, #0
1933	uxth	r3, r3
1934.L238:
1935	uxth	r4, r2
1936	cmp	r0, r4
1937	bls	.L240
1938	mul	r4, r5, r3
1939	adds	r2, r2, #1
1940	ldrh	r4, [r1, r4]
1941	cmp	r4, r6
1942	bne	.L242
1943.L240:
1944	ldr	r2, .L243+16
1945	ldr	r2, [r2]
1946	ldrh	r0, [r2, r3, lsl #1]
1947	pop	{r4, r5, r6, pc}
1948.L242:
1949	mov	r3, r4
1950	b	.L238
1951.L241:
1952	mov	r0, r3
1953	pop	{r4, r5, r6, pc}
1954.L244:
1955	.align	2
1956.L243:
1957	.word	.LANCHOR47
1958	.word	.LANCHOR48
1959	.word	.LANCHOR40
1960	.word	-1431655765
1961	.word	.LANCHOR43
1962	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
1963	.section	.text.FtlPrintInfo2buf,"ax",%progbits
1964	.align	1
1965	.global	FtlPrintInfo2buf
1966	.syntax unified
1967	.thumb
1968	.thumb_func
1969	.fpu softvfp
1970	.type	FtlPrintInfo2buf, %function
1971FtlPrintInfo2buf:
1972	@ args = 0, pretend = 0, frame = 0
1973	@ frame_needed = 0, uses_anonymous_args = 0
1974	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
1975	movs	r1, #64
1976	ldr	r2, .L257
1977	mov	r8, r0
1978	bl	snprintf
1979	ldr	r3, .L257+4
1980	add	r5, r8, r0
1981	ldr	r2, .L257+8
1982	movs	r1, #64
1983	mov	r0, r5
1984	ldr	r6, .L257+12
1985	ldr	r3, [r3]
1986	bl	snprintf
1987	add	r5, r5, r0
1988	ldr	r2, .L257+16
1989	movs	r1, #64
1990	mov	r0, r5
1991	bl	snprintf
1992	ldr	r3, .L257+20
1993	add	r5, r5, r0
1994	ldr	r2, .L257+24
1995	movs	r1, #64
1996	mov	r0, r5
1997	ldr	r4, .L257+28
1998	ldr	r3, [r3]
1999	bl	snprintf
2000	ldr	r3, .L257+32
2001	add	r5, r5, r0
2002	ldr	r2, .L257+36
2003	movs	r1, #64
2004	mov	r0, r5
2005	ldr	r7, .L257+40
2006	ldr	r3, [r3]
2007	bl	snprintf
2008	ldr	r3, .L257+44
2009	add	r5, r5, r0
2010	ldr	r2, .L257+48
2011	movs	r1, #64
2012	mov	r0, r5
2013	ldr	r10, .L257+328
2014	ldr	r3, [r3]
2015	bl	snprintf
2016	ldr	r3, .L257+52
2017	add	r5, r5, r0
2018	ldr	r2, .L257+56
2019	movs	r1, #64
2020	mov	r0, r5
2021	ldr	r3, [r3]
2022	bl	snprintf
2023	ldr	r3, .L257+60
2024	add	r5, r5, r0
2025	ldr	r2, .L257+64
2026	movs	r1, #64
2027	mov	r0, r5
2028	ldr	r3, [r3]
2029	bl	snprintf
2030	ldr	r3, .L257+68
2031	add	r5, r5, r0
2032	ldr	r2, .L257+72
2033	movs	r1, #64
2034	mov	r0, r5
2035	ldr	r3, [r3]
2036	bl	snprintf
2037	ldr	r3, .L257+76
2038	add	r5, r5, r0
2039	ldr	r2, .L257+80
2040	movs	r1, #64
2041	mov	r0, r5
2042	ldr	r3, [r3]
2043	bl	snprintf
2044	ldr	r3, .L257+84
2045	add	r5, r5, r0
2046	ldr	r2, .L257+88
2047	movs	r1, #64
2048	mov	r0, r5
2049	ldr	r3, [r3]
2050	bl	snprintf
2051	ldr	r3, .L257+92
2052	add	r5, r5, r0
2053	ldr	r2, .L257+96
2054	movs	r1, #64
2055	mov	r0, r5
2056	ldr	r3, [r3]
2057	lsrs	r3, r3, #11
2058	bl	snprintf
2059	ldr	r3, .L257+100
2060	add	r5, r5, r0
2061	ldr	r2, .L257+104
2062	movs	r1, #64
2063	mov	r0, r5
2064	ldr	r3, [r3]
2065	lsrs	r3, r3, #11
2066	bl	snprintf
2067	ldr	r3, .L257+108
2068	add	r5, r5, r0
2069	ldr	r2, .L257+112
2070	movs	r1, #64
2071	mov	r0, r5
2072	ldr	r3, [r3]
2073	bl	snprintf
2074	ldr	r3, .L257+116
2075	add	r5, r5, r0
2076	ldr	r2, .L257+120
2077	movs	r1, #64
2078	mov	r0, r5
2079	ldr	r3, [r3]
2080	bl	snprintf
2081	add	r5, r5, r0
2082	ldrh	r3, [r6, #6]
2083	ldr	r2, .L257+124
2084	movs	r1, #64
2085	mov	r0, r5
2086	bl	snprintf
2087	add	r5, r5, r0
2088	ldrh	r3, [r4]
2089	ldr	r2, .L257+128
2090	movs	r1, #64
2091	mov	r0, r5
2092	bl	snprintf
2093	ldr	r3, .L257+132
2094	add	r5, r5, r0
2095	ldr	r2, .L257+136
2096	movs	r1, #64
2097	mov	r0, r5
2098	ldr	r3, [r3]
2099	bl	snprintf
2100	ldr	r3, .L257+140
2101	add	r5, r5, r0
2102	ldr	r2, .L257+144
2103	movs	r1, #64
2104	mov	r0, r5
2105	ldr	r3, [r3]
2106	bl	snprintf
2107	ldr	r3, .L257+148
2108	add	r5, r5, r0
2109	ldr	r2, .L257+152
2110	movs	r1, #64
2111	mov	r0, r5
2112	ldr	r3, [r3]
2113	bl	snprintf
2114	ldr	r3, .L257+156
2115	add	r5, r5, r0
2116	ldr	r2, .L257+160
2117	movs	r1, #64
2118	mov	r0, r5
2119	ldr	r3, [r3]
2120	bl	snprintf
2121	ldr	r3, .L257+164
2122	add	r5, r5, r0
2123	ldr	r2, .L257+168
2124	movs	r1, #64
2125	mov	r0, r5
2126	ldr	r3, [r3]
2127	bl	snprintf
2128	ldr	r3, .L257+172
2129	add	r5, r5, r0
2130	ldr	r2, .L257+176
2131	movs	r1, #64
2132	mov	r0, r5
2133	ldr	r3, [r3]
2134	bl	snprintf
2135	add	r5, r5, r0
2136	ldrh	r3, [r7, #30]
2137	ldr	r2, .L257+180
2138	movs	r1, #64
2139	mov	r0, r5
2140	bl	snprintf
2141	add	r5, r5, r0
2142	ldrh	r3, [r7, #28]
2143	ldr	r2, .L257+184
2144	movs	r1, #64
2145	mov	r0, r5
2146	ldr	r7, .L257+188
2147	bl	snprintf
2148	ldr	r3, .L257+192
2149	add	r5, r5, r0
2150	ldr	r2, .L257+196
2151	movs	r1, #64
2152	mov	r0, r5
2153	ldr	r3, [r3]
2154	bl	snprintf
2155	ldr	r3, .L257+200
2156	add	r5, r5, r0
2157	ldr	r2, .L257+204
2158	movs	r1, #64
2159	mov	r0, r5
2160	ldr	r3, [r3]
2161	bl	snprintf
2162	ldr	r3, .L257+208
2163	add	r5, r5, r0
2164	ldr	r2, .L257+212
2165	movs	r1, #64
2166	mov	r0, r5
2167	ldr	r3, [r3]
2168	bl	snprintf
2169	ldr	r3, .L257+216
2170	add	r5, r5, r0
2171	ldr	r2, .L257+220
2172	movs	r1, #64
2173	mov	r0, r5
2174	ldrh	r3, [r3, #6]
2175	bl	snprintf
2176	ldr	r3, .L257+224
2177	add	r5, r5, r0
2178	ldr	r2, .L257+228
2179	movs	r1, #64
2180	mov	r0, r5
2181	ldrh	r3, [r3]
2182	bl	snprintf
2183	ldr	r3, .L257+232
2184	add	r5, r5, r0
2185	ldr	r2, .L257+236
2186	movs	r1, #64
2187	mov	r0, r5
2188	ldrh	r3, [r3]
2189	bl	snprintf
2190	ldr	r3, .L257+240
2191	add	r5, r5, r0
2192	ldr	r2, .L257+244
2193	movs	r1, #64
2194	mov	r0, r5
2195	ldr	r3, [r3]
2196	bl	snprintf
2197	ldr	r3, .L257+248
2198	add	r5, r5, r0
2199	ldr	r2, .L257+252
2200	movs	r1, #64
2201	mov	r0, r5
2202	ldrh	r3, [r3]
2203	bl	snprintf
2204	add	r5, r5, r0
2205	ldrh	r3, [r6]
2206	ldr	r2, .L257+256
2207	movs	r1, #64
2208	mov	r0, r5
2209	ldr	r6, .L257+260
2210	bl	snprintf
2211	add	r5, r5, r0
2212	ldrh	r3, [r7, #2]
2213	ldr	r2, .L257+264
2214	movs	r1, #64
2215	mov	r0, r5
2216	bl	snprintf
2217	add	r5, r5, r0
2218	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2219	ldr	r2, .L257+268
2220	movs	r1, #64
2221	mov	r0, r5
2222	bl	snprintf
2223	add	r5, r5, r0
2224	ldrh	r3, [r7]
2225	ldr	r2, .L257+272
2226	movs	r1, #64
2227	mov	r0, r5
2228	bl	snprintf
2229	add	r5, r5, r0
2230	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2231	ldr	r2, .L257+276
2232	movs	r1, #64
2233	mov	r0, r5
2234	bl	snprintf
2235	add	r5, r5, r0
2236	ldrh	r3, [r7, #4]
2237	ldr	r2, .L257+280
2238	movs	r1, #64
2239	mov	r0, r5
2240	bl	snprintf
2241	ldrh	r2, [r7]
2242	add	r5, r5, r0
2243	ldr	r3, [r6]
2244	movs	r1, #64
2245	ldr	r7, .L257+284
2246	mov	r0, r5
2247	ldrh	r3, [r3, r2, lsl #1]
2248	ldr	r2, .L257+288
2249	bl	snprintf
2250	add	r5, r5, r0
2251	ldrh	r3, [r7, #2]
2252	ldr	r2, .L257+292
2253	movs	r1, #64
2254	mov	r0, r5
2255	bl	snprintf
2256	add	r5, r5, r0
2257	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2258	ldr	r2, .L257+296
2259	movs	r1, #64
2260	mov	r0, r5
2261	bl	snprintf
2262	add	r5, r5, r0
2263	ldrh	r3, [r7]
2264	ldr	r2, .L257+300
2265	movs	r1, #64
2266	mov	r0, r5
2267	bl	snprintf
2268	add	r5, r5, r0
2269	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2270	ldr	r2, .L257+304
2271	movs	r1, #64
2272	mov	r0, r5
2273	bl	snprintf
2274	add	r5, r5, r0
2275	ldrh	r3, [r7, #4]
2276	ldr	r2, .L257+308
2277	movs	r1, #64
2278	mov	r0, r5
2279	bl	snprintf
2280	ldrh	r2, [r7]
2281	add	r5, r5, r0
2282	ldr	r3, [r6]
2283	movs	r1, #64
2284	ldr	r7, .L257+312
2285	mov	r0, r5
2286	ldrh	r3, [r3, r2, lsl #1]
2287	ldr	r2, .L257+316
2288	bl	snprintf
2289	add	r5, r5, r0
2290	ldrh	r3, [r7, #2]
2291	ldr	r2, .L257+320
2292	movs	r1, #64
2293	mov	r0, r5
2294	bl	snprintf
2295	add	r5, r5, r0
2296	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2297	ldr	r2, .L257+324
2298	movs	r1, #64
2299	mov	r0, r5
2300	bl	snprintf
2301	add	r5, r5, r0
2302	b	.L258
2303.L259:
2304	.align	2
2305.L257:
2306	.word	.LC2
2307	.word	.LANCHOR26
2308	.word	.LC3
2309	.word	.LANCHOR37
2310	.word	.LC4
2311	.word	.LANCHOR61
2312	.word	.LC5
2313	.word	.LANCHOR48
2314	.word	.LANCHOR59
2315	.word	.LC6
2316	.word	.LANCHOR39
2317	.word	.LANCHOR62
2318	.word	.LC7
2319	.word	.LANCHOR63
2320	.word	.LC8
2321	.word	.LANCHOR64
2322	.word	.LC9
2323	.word	.LANCHOR65
2324	.word	.LC10
2325	.word	.LANCHOR66
2326	.word	.LC11
2327	.word	.LANCHOR67
2328	.word	.LC12
2329	.word	.LANCHOR68
2330	.word	.LC13
2331	.word	.LANCHOR69
2332	.word	.LC14
2333	.word	.LANCHOR70
2334	.word	.LC15
2335	.word	.LANCHOR71
2336	.word	.LC16
2337	.word	.LC17
2338	.word	.LC18
2339	.word	.LANCHOR72
2340	.word	.LC19
2341	.word	.LANCHOR73
2342	.word	.LC20
2343	.word	.LANCHOR74
2344	.word	.LC21
2345	.word	.LANCHOR75
2346	.word	.LC22
2347	.word	.LANCHOR76
2348	.word	.LC23
2349	.word	.LANCHOR77
2350	.word	.LC24
2351	.word	.LC25
2352	.word	.LC26
2353	.word	.LANCHOR51
2354	.word	.LANCHOR34
2355	.word	.LC27
2356	.word	.LANCHOR31
2357	.word	.LC28
2358	.word	.LANCHOR2
2359	.word	.LC29
2360	.word	.LANCHOR38
2361	.word	.LC30
2362	.word	.LANCHOR5
2363	.word	.LC31
2364	.word	.LANCHOR78
2365	.word	.LC32
2366	.word	.LANCHOR7
2367	.word	.LC33
2368	.word	.LANCHOR79
2369	.word	.LC34
2370	.word	.LC35
2371	.word	.LANCHOR42
2372	.word	.LC36
2373	.word	.LC37
2374	.word	.LC38
2375	.word	.LC39
2376	.word	.LC40
2377	.word	.LANCHOR52
2378	.word	.LC41
2379	.word	.LC42
2380	.word	.LC43
2381	.word	.LC44
2382	.word	.LC45
2383	.word	.LC46
2384	.word	.LANCHOR53
2385	.word	.LC47
2386	.word	.LC48
2387	.word	.LC49
2388	.word	.LANCHOR81
2389.L258:
2390	ldrh	r3, [r7]
2391	ldr	r2, .L260
2392	movs	r1, #64
2393	mov	r0, r5
2394	bl	snprintf
2395	add	r5, r5, r0
2396	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2397	ldr	r2, .L260+4
2398	movs	r1, #64
2399	mov	r0, r5
2400	bl	snprintf
2401	ldrh	r3, [r7, #4]
2402	add	r5, r5, r0
2403	ldr	r7, .L260+8
2404	movs	r1, #64
2405	ldr	r2, .L260+12
2406	mov	r0, r5
2407	bl	snprintf
2408	add	r5, r5, r0
2409	ldrh	r3, [r7, #2]
2410	ldr	r2, .L260+16
2411	movs	r1, #64
2412	mov	r0, r5
2413	bl	snprintf
2414	add	r5, r5, r0
2415	ldrb	r3, [r7, #6]	@ zero_extendqisi2
2416	ldr	r2, .L260+20
2417	movs	r1, #64
2418	mov	r0, r5
2419	bl	snprintf
2420	add	r5, r5, r0
2421	ldrh	r3, [r7]
2422	ldr	r2, .L260+24
2423	movs	r1, #64
2424	mov	r0, r5
2425	bl	snprintf
2426	add	r5, r5, r0
2427	ldrb	r3, [r7, #8]	@ zero_extendqisi2
2428	ldr	r2, .L260+28
2429	movs	r1, #64
2430	mov	r0, r5
2431	bl	snprintf
2432	add	r5, r5, r0
2433	ldrh	r3, [r7, #4]
2434	ldr	r2, .L260+32
2435	movs	r1, #64
2436	mov	r0, r5
2437	bl	snprintf
2438	ldr	r3, [r10, #76]
2439	add	r5, r5, r0
2440	ldr	r2, .L260+36
2441	movs	r1, #64
2442	mov	r0, r5
2443	str	r3, [sp, #4]
2444	ldr	r3, [r10, #84]
2445	str	r3, [sp]
2446	ldr	r3, [r10, #80]
2447	bl	snprintf
2448	add	r5, r5, r0
2449	ldr	r3, [r10, #72]
2450	ldr	r2, .L260+40
2451	movs	r1, #64
2452	mov	r0, r5
2453	bl	snprintf
2454	add	r5, r5, r0
2455	ldr	r3, [r10, #96]
2456	ldr	r2, .L260+44
2457	movs	r1, #64
2458	mov	r0, r5
2459	bl	snprintf
2460	ldr	r3, .L260+48
2461	add	r5, r5, r0
2462	ldr	r2, .L260+52
2463	movs	r1, #64
2464	mov	r0, r5
2465	ldrh	r3, [r3]
2466	bl	snprintf
2467	ldr	r3, .L260+56
2468	add	r5, r5, r0
2469	ldr	r2, .L260+60
2470	movs	r1, #64
2471	mov	r0, r5
2472	ldrh	r3, [r3]
2473	bl	snprintf
2474	ldr	r3, .L260+64
2475	add	r5, r5, r0
2476	ldr	r2, .L260+68
2477	movs	r1, #64
2478	mov	r0, r5
2479	ldr	r3, [r3]
2480	bl	snprintf
2481	ldr	r3, .L260+72
2482	add	r5, r5, r0
2483	ldr	r2, .L260+76
2484	movs	r1, #64
2485	mov	r0, r5
2486	ldrh	r3, [r3]
2487	bl	snprintf
2488	add	r5, r5, r0
2489	bl	GetFreeBlockMinEraseCount
2490	ldr	r2, .L260+80
2491	mov	r3, r0
2492	movs	r1, #64
2493	mov	r0, r5
2494	bl	snprintf
2495	add	r5, r5, r0
2496	ldrh	r0, [r4]
2497	bl	GetFreeBlockMaxEraseCount
2498	ldr	r2, .L260+84
2499	mov	r3, r0
2500	movs	r1, #64
2501	mov	r0, r5
2502	bl	snprintf
2503	ldr	r3, .L260+88
2504	adds	r4, r5, r0
2505	ldr	r3, [r3]
2506	cmp	r3, #1
2507	beq	.L246
2508.L251:
2509	sub	r0, r4, r8
2510	add	sp, sp, #16
2511	@ sp needed
2512	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2513.L246:
2514	ldrh	r3, [r7]
2515	movw	r2, #65535
2516	cmp	r3, r2
2517	beq	.L248
2518	ldr	r2, [r6]
2519	mov	r0, r4
2520	movs	r1, #64
2521	ldrh	r3, [r2, r3, lsl #1]
2522	ldr	r2, .L260+92
2523	bl	snprintf
2524	add	r4, r4, r0
2525.L248:
2526	movs	r0, #0
2527	ldr	r5, .L260+96
2528	ldr	fp, .L260+112
2529	movs	r7, #0
2530	bl	List_get_gc_head_node
2531	uxth	r0, r0
2532.L250:
2533	movw	r3, #65535
2534	cmp	r0, r3
2535	beq	.L249
2536	ldr	r3, [fp]
2537	mov	r10, #6
2538	mul	r10, r10, r0
2539	ldr	r2, .L260+100
2540	movs	r1, #64
2541	ldrh	r3, [r3, r0, lsl #1]
2542	str	r3, [sp, #12]
2543	ldr	r3, [r5]
2544	add	r3, r3, r10
2545	ldrh	r3, [r3, #4]
2546	str	r3, [sp, #8]
2547	ldr	r3, [r6]
2548	ldrh	r3, [r3, r0, lsl #1]
2549	stm	sp, {r0, r3}
2550	mov	r3, r7
2551	mov	r0, r4
2552	adds	r7, r7, #1
2553	bl	snprintf
2554	ldr	r3, [r5]
2555	cmp	r7, #16
2556	add	r4, r4, r0
2557	ldrh	r0, [r3, r10]
2558	bne	.L250
2559.L249:
2560	ldr	r3, .L260+104
2561	movs	r7, #0
2562	ldr	r2, [r5]
2563	ldr	r10, .L260+112
2564	ldr	r3, [r3]
2565	ldr	fp, .L260+116
2566	subs	r3, r3, r2
2567	ldr	r2, .L260+108
2568	asrs	r3, r3, #1
2569	muls	r3, r2, r3
2570	uxth	r3, r3
2571.L252:
2572	movw	r2, #65535
2573	cmp	r3, r2
2574	beq	.L251
2575	ldr	r2, [r10]
2576	movs	r6, #6
2577	muls	r6, r3, r6
2578	mov	r0, r4
2579	movs	r1, #64
2580	ldrh	r2, [r2, r3, lsl #1]
2581	str	r2, [sp, #8]
2582	ldr	r2, [r5]
2583	add	r2, r2, r6
2584	ldrh	r2, [r2, #4]
2585	str	r3, [sp]
2586	mov	r3, r7
2587	adds	r7, r7, #1
2588	str	r2, [sp, #4]
2589	mov	r2, fp
2590	bl	snprintf
2591	cmp	r7, #4
2592	add	r4, r4, r0
2593	beq	.L251
2594	ldr	r3, [r5]
2595	ldrh	r3, [r3, r6]
2596	b	.L252
2597.L261:
2598	.align	2
2599.L260:
2600	.word	.LC50
2601	.word	.LC51
2602	.word	.LANCHOR80
2603	.word	.LC52
2604	.word	.LC53
2605	.word	.LC54
2606	.word	.LC55
2607	.word	.LC56
2608	.word	.LC57
2609	.word	.LC58
2610	.word	.LC59
2611	.word	.LC60
2612	.word	.LANCHOR82
2613	.word	.LC61
2614	.word	.LANCHOR83
2615	.word	.LC62
2616	.word	.LANCHOR84
2617	.word	.LC63
2618	.word	.LANCHOR85
2619	.word	.LC64
2620	.word	.LC65
2621	.word	.LC66
2622	.word	.LANCHOR86
2623	.word	.LC67
2624	.word	.LANCHOR40
2625	.word	.LC68
2626	.word	.LANCHOR47
2627	.word	-1431655765
2628	.word	.LANCHOR43
2629	.word	.LC69
2630	.size	FtlPrintInfo2buf, .-FtlPrintInfo2buf
2631	.section	.text.rknand_proc_ftlread,"ax",%progbits
2632	.align	1
2633	.global	rknand_proc_ftlread
2634	.syntax unified
2635	.thumb
2636	.thumb_func
2637	.fpu softvfp
2638	.type	rknand_proc_ftlread, %function
2639rknand_proc_ftlread:
2640	@ args = 0, pretend = 0, frame = 0
2641	@ frame_needed = 0, uses_anonymous_args = 0
2642	cmp	r0, #2048
2643	push	{r3, r4, r5, lr}
2644	mov	r5, r1
2645	blt	.L264
2646	ldr	r3, .L265
2647	movs	r1, #64
2648	ldr	r2, .L265+4
2649	mov	r0, r5
2650	bl	snprintf
2651	adds	r4, r5, r0
2652	mov	r0, r4
2653	bl	FtlPrintInfo2buf
2654	add	r0, r0, r4
2655	subs	r0, r0, r5
2656	pop	{r3, r4, r5, pc}
2657.L264:
2658	movs	r0, #0
2659	pop	{r3, r4, r5, pc}
2660.L266:
2661	.align	2
2662.L265:
2663	.word	.LC70
2664	.word	.LC71
2665	.size	rknand_proc_ftlread, .-rknand_proc_ftlread
2666	.section	.text.GetSwlReplaceBlock,"ax",%progbits
2667	.align	1
2668	.global	GetSwlReplaceBlock
2669	.syntax unified
2670	.thumb
2671	.thumb_func
2672	.fpu softvfp
2673	.type	GetSwlReplaceBlock, %function
2674GetSwlReplaceBlock:
2675	@ args = 0, pretend = 0, frame = 8
2676	@ frame_needed = 0, uses_anonymous_args = 0
2677	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2678	sub	sp, sp, #24
2679	ldr	r3, .L295
2680	ldr	r6, .L295+4
2681	ldr	r5, [r3]
2682	mov	r10, r3
2683	ldr	r1, [r6]
2684	cmp	r1, r5
2685	bcs	.L268
2686	ldr	r2, .L295+8
2687	movs	r3, #0
2688	ldr	r4, .L295+12
2689	mov	r0, r3
2690	ldrh	r1, [r2]
2691	ldr	r2, .L295+16
2692	str	r3, [r4]
2693	ldr	r7, [r2]
2694	mov	r2, r3
2695.L269:
2696	cmp	r2, r1
2697	bcc	.L270
2698	cbz	r3, .L271
2699	str	r0, [r4]
2700.L271:
2701	ldr	r7, [r4]
2702	mov	r0, r7
2703	bl	__aeabi_uidiv
2704	ldr	r3, .L295+20
2705	str	r0, [r6]
2706	ldr	r0, [r3]
2707	ldr	r3, .L295+24
2708	subs	r0, r7, r0
2709	ldrh	r1, [r3]
2710	bl	__aeabi_uidiv
2711	str	r0, [r4]
2712.L272:
2713	ldr	r6, [r6]
2714	add	r3, r5, #256
2715	cmp	r3, r6
2716	bls	.L277
2717	ldr	r2, .L295+28
2718	add	r3, r5, #768
2719	ldr	r2, [r2]
2720	cmp	r3, r2
2721	bls	.L277
2722.L279:
2723	movw	r4, #65535
2724.L278:
2725	mov	r0, r4
2726	add	sp, sp, #24
2727	@ sp needed
2728	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2729.L270:
2730	ldrh	r3, [r7, r2, lsl #1]
2731	adds	r2, r2, #1
2732	add	r0, r0, r3
2733	movs	r3, #1
2734	b	.L269
2735.L268:
2736	ldr	r2, .L295+28
2737	ldr	r3, [r2]
2738	cmp	r1, r3
2739	bls	.L272
2740	adds	r3, r3, #1
2741	ldr	r0, .L295+8
2742	str	r3, [r2]
2743	movs	r2, #0
2744	ldr	r3, .L295+16
2745	ldr	r3, [r3]
2746	subs	r3, r3, #2
2747.L274:
2748	ldrh	r1, [r0]
2749	cmp	r2, r1
2750	bcs	.L272
2751	ldrh	r1, [r3, #2]
2752	adds	r2, r2, #1
2753	adds	r1, r1, #1
2754	strh	r1, [r3, #2]!	@ movhi
2755	b	.L274
2756.L277:
2757	ldr	r3, .L295+32
2758	ldrh	r0, [r3]
2759	add	r0, r0, r0, lsl #1
2760	ubfx	r0, r0, #2, #16
2761	bl	GetFreeBlockMaxEraseCount
2762	add	r3, r5, #64
2763	mov	r2, r0
2764	cmp	r0, r3
2765	bcc	.L279
2766	ldr	r3, .L295+36
2767	ldr	r3, [r3]
2768	cmp	r3, #0
2769	beq	.L279
2770	ldr	r1, .L295+8
2771	movs	r0, #0
2772	mov	fp, #6
2773	ldrh	r1, [r1]
2774	str	r1, [sp, #20]
2775	ldr	r1, .L295+40
2776	ldr	r8, [r1]
2777	ldr	r1, .L295+16
2778	ldr	r7, [r1]
2779	movw	r1, #65535
2780	mov	ip, r1
2781.L280:
2782	ldrh	lr, [r3]
2783	movw	r4, #65535
2784	cmp	lr, r4
2785	bne	.L283
2786	mov	r4, ip
2787.L282:
2788	movw	r3, #65535
2789	cmp	r4, r3
2790	beq	.L279
2791	ldrh	r7, [r7, r4, lsl #1]
2792	lsl	r8, r4, #1
2793	cmp	r5, r7
2794	bcs	.L284
2795	bl	GetFreeBlockMinEraseCount
2796	cmp	r5, r0
2797	it	cc
2798	strcc	r1, [r10]
2799.L284:
2800	cmp	r6, r7
2801	bls	.L279
2802	add	r3, r7, #128
2803	cmp	r2, r3
2804	ble	.L279
2805	add	r3, r7, #256
2806	ldr	r0, .L295+28
2807	cmp	r6, r3
2808	bhi	.L285
2809	ldr	r1, [r0]
2810	add	r3, r7, #768
2811	cmp	r3, r1
2812	bcs	.L279
2813.L285:
2814	ldr	r3, .L295+44
2815	mov	r1, r4
2816	str	r2, [sp, #8]
2817	mov	r2, r6
2818	str	r7, [sp, #4]
2819	ldr	r3, [r3]
2820	ldrh	r3, [r3, r8]
2821	str	r3, [sp]
2822	ldr	r3, [r0]
2823	ldr	r0, .L295+48
2824	bl	printf
2825	ldr	r3, .L295+52
2826	movs	r2, #1
2827	str	r2, [r3]
2828	b	.L278
2829.L283:
2830	adds	r0, r0, #1
2831	ldr	r4, [sp, #20]
2832	uxth	r0, r0
2833	cmp	r0, r4
2834	bhi	.L279
2835	ldrh	r4, [r3, #4]
2836	cbz	r4, .L281
2837	ldr	r4, .L295+56
2838	sub	r3, r3, r8
2839	asrs	r3, r3, #1
2840	muls	r3, r4, r3
2841	uxth	r4, r3
2842	ldrh	r3, [r7, r4, lsl #1]
2843	cmp	r5, r3
2844	bcs	.L282
2845	cmp	r1, r3
2846	itt	hi
2847	movhi	r1, r3
2848	movhi	ip, r4
2849.L281:
2850	mla	r3, fp, lr, r8
2851	b	.L280
2852.L296:
2853	.align	2
2854.L295:
2855	.word	.LANCHOR77
2856	.word	.LANCHOR74
2857	.word	.LANCHOR5
2858	.word	.LANCHOR72
2859	.word	.LANCHOR43
2860	.word	.LANCHOR73
2861	.word	.LANCHOR14
2862	.word	.LANCHOR76
2863	.word	.LANCHOR48
2864	.word	.LANCHOR41
2865	.word	.LANCHOR40
2866	.word	.LANCHOR42
2867	.word	.LC72
2868	.word	.LANCHOR87
2869	.word	-1431655765
2870	.size	GetSwlReplaceBlock, .-GetSwlReplaceBlock
2871	.section	.text.free_data_superblock,"ax",%progbits
2872	.align	1
2873	.global	free_data_superblock
2874	.syntax unified
2875	.thumb
2876	.thumb_func
2877	.fpu softvfp
2878	.type	free_data_superblock, %function
2879free_data_superblock:
2880	@ args = 0, pretend = 0, frame = 0
2881	@ frame_needed = 0, uses_anonymous_args = 0
2882	movw	r2, #65535
2883	push	{r3, lr}
2884	cmp	r0, r2
2885	beq	.L298
2886	ldr	r2, .L299
2887	movs	r1, #0
2888	ldr	r2, [r2]
2889	strh	r1, [r2, r0, lsl #1]	@ movhi
2890	bl	INSERT_FREE_LIST
2891.L298:
2892	movs	r0, #0
2893	pop	{r3, pc}
2894.L300:
2895	.align	2
2896.L299:
2897	.word	.LANCHOR42
2898	.size	free_data_superblock, .-free_data_superblock
2899	.section	.text.get_new_active_ppa,"ax",%progbits
2900	.align	1
2901	.global	get_new_active_ppa
2902	.syntax unified
2903	.thumb
2904	.thumb_func
2905	.fpu softvfp
2906	.type	get_new_active_ppa, %function
2907get_new_active_ppa:
2908	@ args = 0, pretend = 0, frame = 0
2909	@ frame_needed = 0, uses_anonymous_args = 0
2910	ldrh	r2, [r0]
2911	push	{r3, r4, r5, r6, r7, lr}
2912	movw	r3, #65535
2913	mov	r4, r0
2914	cmp	r2, r3
2915	bne	.L302
2916	movw	r2, #2740
2917	ldr	r1, .L315
2918	ldr	r0, .L315+4
2919	bl	printf
2920.L302:
2921	ldr	r5, .L315+8
2922	ldrh	r2, [r4, #2]
2923	ldrh	r3, [r5]
2924	cmp	r2, r3
2925	bne	.L303
2926	movw	r2, #2741
2927	ldr	r1, .L315
2928	ldr	r0, .L315+4
2929	bl	printf
2930.L303:
2931	ldrh	r3, [r4, #4]
2932	cbnz	r3, .L304
2933	movw	r2, #2742
2934	ldr	r1, .L315
2935	ldr	r0, .L315+4
2936	bl	printf
2937.L304:
2938	ldrb	r2, [r4, #6]	@ zero_extendqisi2
2939	movs	r3, #0
2940	strb	r3, [r4, #10]
2941	movw	r6, #65535
2942	adds	r2, r2, #8
2943	ldrh	r0, [r4, r2, lsl #1]
2944	ldr	r2, .L315+12
2945	ldrh	r1, [r2]
2946	mov	r2, r3
2947.L305:
2948	cmp	r0, r6
2949	ldrb	r3, [r4, #6]	@ zero_extendqisi2
2950	beq	.L307
2951	ldrh	r2, [r4, #4]
2952	ldrh	r6, [r4, #2]
2953	subs	r2, r2, #1
2954	uxth	r2, r2
2955	orr	r6, r6, r0, lsl #10
2956	movw	r0, #65535
2957	strh	r2, [r4, #4]	@ movhi
2958.L309:
2959	adds	r3, r3, #1
2960	uxtb	r3, r3
2961	cmp	r1, r3
2962	itttt	eq
2963	ldrheq	r3, [r4, #2]
2964	addeq	r3, r3, #1
2965	strheq	r3, [r4, #2]	@ movhi
2966	moveq	r3, #0
2967	add	r7, r3, #8
2968	ldrh	r7, [r4, r7, lsl #1]
2969	cmp	r7, r0
2970	beq	.L309
2971	strb	r3, [r4, #6]
2972	ldrh	r1, [r4, #2]
2973	ldrh	r3, [r5]
2974	cmp	r1, r3
2975	bne	.L301
2976	cbz	r2, .L301
2977	movw	r2, #2763
2978	ldr	r1, .L315
2979	ldr	r0, .L315+4
2980	bl	printf
2981.L301:
2982	mov	r0, r6
2983	pop	{r3, r4, r5, r6, r7, pc}
2984.L307:
2985	adds	r3, r3, #1
2986	uxtb	r3, r3
2987	cmp	r3, r1
2988	strb	r3, [r4, #6]
2989	itttt	eq
2990	ldrheq	r3, [r4, #2]
2991	strbeq	r2, [r4, #6]
2992	addeq	r3, r3, #1
2993	strheq	r3, [r4, #2]	@ movhi
2994	ldrb	r3, [r4, #6]	@ zero_extendqisi2
2995	adds	r3, r3, #8
2996	ldrh	r0, [r4, r3, lsl #1]
2997	b	.L305
2998.L316:
2999	.align	2
3000.L315:
3001	.word	.LANCHOR88
3002	.word	.LC1
3003	.word	.LANCHOR19
3004	.word	.LANCHOR3
3005	.size	get_new_active_ppa, .-get_new_active_ppa
3006	.section	.text.FtlGcBufInit,"ax",%progbits
3007	.align	1
3008	.global	FtlGcBufInit
3009	.syntax unified
3010	.thumb
3011	.thumb_func
3012	.fpu softvfp
3013	.type	FtlGcBufInit, %function
3014FtlGcBufInit:
3015	@ args = 0, pretend = 0, frame = 8
3016	@ frame_needed = 0, uses_anonymous_args = 0
3017	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
3018	movs	r3, #0
3019	ldr	r1, .L322
3020	mov	fp, #1
3021	ldr	r2, .L322+4
3022	ldr	r5, [r1]
3023	ldr	r1, .L322+8
3024	str	r3, [r2]
3025	ldr	r2, .L322+12
3026	mov	r0, r5
3027	ldr	r1, [r1]
3028	ldrh	r2, [r2]
3029	str	r1, [sp, #4]
3030	ldr	r1, .L322+16
3031	ldrh	r1, [r1]
3032	str	r1, [sp]
3033	ldr	r1, .L322+20
3034	ldr	r10, [r1]
3035	ldr	r1, .L322+24
3036	ldrh	r7, [r1]
3037	ldr	r1, .L322+28
3038	ldr	r4, [r1]
3039	movs	r1, #12
3040	mla	r1, r2, r1, r1
3041	adds	r4, r4, #8
3042	add	r8, r5, r1
3043	mov	r1, r3
3044.L318:
3045	adds	r0, r0, #12
3046	ldr	r6, [sp]
3047	cmp	r0, r8
3048	add	ip, r3, r7
3049	add	r4, r4, #20
3050	add	lr, r1, r6
3051	bne	.L319
3052	ldr	r3, .L322+32
3053	mov	lr, #12
3054	mov	r8, #0
3055	ldr	r0, [r3]
3056	ldr	r3, .L322+8
3057	ldr	r4, [r3]
3058	ldr	r3, .L322+20
3059	ldr	ip, [r3]
3060.L320:
3061	cmp	r2, r0
3062	bcc	.L321
3063	add	sp, sp, #8
3064	@ sp needed
3065	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3066.L319:
3067	bic	r1, r1, #3
3068	bic	r3, r3, #3
3069	mov	r6, r1
3070	ldr	r1, [sp, #4]
3071	add	r3, r3, r10
3072	str	fp, [r0, #-4]
3073	str	r3, [r0, #-8]
3074	add	r6, r6, r1
3075	mov	r1, lr
3076	str	r6, [r0, #-12]
3077	str	r3, [r4, #-16]
3078	mov	r3, ip
3079	str	r6, [r4, #-20]
3080	b	.L318
3081.L321:
3082	ldr	r3, [sp]
3083	mul	r10, lr, r2
3084	muls	r3, r2, r3
3085	add	r1, r5, r10
3086	str	r8, [r1, #8]
3087	bic	r3, r3, #3
3088	add	r3, r3, r4
3089	str	r3, [r5, r10]
3090	mul	r3, r2, r7
3091	adds	r2, r2, #1
3092	uxth	r2, r2
3093	bic	r3, r3, #3
3094	add	r3, r3, ip
3095	str	r3, [r1, #4]
3096	b	.L320
3097.L323:
3098	.align	2
3099.L322:
3100	.word	.LANCHOR90
3101	.word	.LANCHOR89
3102	.word	.LANCHOR91
3103	.word	.LANCHOR3
3104	.word	.LANCHOR23
3105	.word	.LANCHOR92
3106	.word	.LANCHOR24
3107	.word	.LANCHOR93
3108	.word	.LANCHOR94
3109	.size	FtlGcBufInit, .-FtlGcBufInit
3110	.section	.text.FtlGcBufFree,"ax",%progbits
3111	.align	1
3112	.global	FtlGcBufFree
3113	.syntax unified
3114	.thumb
3115	.thumb_func
3116	.fpu softvfp
3117	.type	FtlGcBufFree, %function
3118FtlGcBufFree:
3119	@ args = 0, pretend = 0, frame = 0
3120	@ frame_needed = 0, uses_anonymous_args = 0
3121	ldr	r3, .L331
3122	mov	ip, #12
3123	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3124	movs	r4, #0
3125	mov	fp, #20
3126	mov	lr, r4
3127	ldr	r7, [r3]
3128	ldr	r3, .L331+4
3129	ldr	r5, [r3]
3130.L325:
3131	uxth	r3, r4
3132	cmp	r1, r3
3133	bls	.L324
3134	mla	r8, fp, r3, r0
3135	movs	r2, #0
3136.L326:
3137	uxth	r3, r2
3138	cmp	r7, r3
3139	bls	.L327
3140	mul	r3, ip, r3
3141	ldr	r6, [r8, #8]
3142	adds	r2, r2, #1
3143	add	r10, r5, r3
3144	ldr	r3, [r5, r3]
3145	cmp	r3, r6
3146	bne	.L326
3147	str	lr, [r10, #8]
3148.L327:
3149	adds	r4, r4, #1
3150	b	.L325
3151.L324:
3152	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3153.L332:
3154	.align	2
3155.L331:
3156	.word	.LANCHOR94
3157	.word	.LANCHOR90
3158	.size	FtlGcBufFree, .-FtlGcBufFree
3159	.section	.text.FtlGcBufAlloc,"ax",%progbits
3160	.align	1
3161	.global	FtlGcBufAlloc
3162	.syntax unified
3163	.thumb
3164	.thumb_func
3165	.fpu softvfp
3166	.type	FtlGcBufAlloc, %function
3167FtlGcBufAlloc:
3168	@ args = 0, pretend = 0, frame = 0
3169	@ frame_needed = 0, uses_anonymous_args = 0
3170	ldr	r3, .L340
3171	movs	r2, #0
3172	push	{r4, r5, r6, r7, r8, r10, lr}
3173	mov	ip, #12
3174	movs	r7, #1
3175	mov	lr, #20
3176	ldr	r4, [r3]
3177	ldr	r3, .L340+4
3178	ldr	r5, [r3]
3179.L334:
3180	uxth	r8, r2
3181	cmp	r1, r8
3182	bhi	.L338
3183	pop	{r4, r5, r6, r7, r8, r10, pc}
3184.L338:
3185	mov	r10, #0
3186.L335:
3187	uxth	r3, r10
3188	cmp	r4, r3
3189	bls	.L336
3190	mla	r3, ip, r3, r5
3191	add	r10, r10, #1
3192	ldr	r6, [r3, #8]
3193	cmp	r6, #0
3194	bne	.L335
3195	mla	r8, lr, r8, r0
3196	str	r7, [r3, #8]
3197	ldr	r6, [r3]
3198	ldr	r3, [r3, #4]
3199	str	r6, [r8, #8]
3200	str	r3, [r8, #12]
3201.L336:
3202	adds	r2, r2, #1
3203	b	.L334
3204.L341:
3205	.align	2
3206.L340:
3207	.word	.LANCHOR94
3208	.word	.LANCHOR90
3209	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
3210	.section	.text.IsBlkInGcList,"ax",%progbits
3211	.align	1
3212	.global	IsBlkInGcList
3213	.syntax unified
3214	.thumb
3215	.thumb_func
3216	.fpu softvfp
3217	.type	IsBlkInGcList, %function
3218IsBlkInGcList:
3219	@ args = 0, pretend = 0, frame = 0
3220	@ frame_needed = 0, uses_anonymous_args = 0
3221	@ link register save eliminated.
3222	ldr	r3, .L347
3223	ldr	r2, .L347+4
3224	ldr	r3, [r3]
3225	ldrh	r2, [r2]
3226	add	r2, r3, r2, lsl #1
3227.L343:
3228	cmp	r3, r2
3229	bne	.L345
3230	movs	r0, #0
3231	bx	lr
3232.L345:
3233	ldrh	r1, [r3], #2
3234	cmp	r1, r0
3235	bne	.L343
3236	movs	r0, #1
3237	bx	lr
3238.L348:
3239	.align	2
3240.L347:
3241	.word	.LANCHOR95
3242	.word	.LANCHOR96
3243	.size	IsBlkInGcList, .-IsBlkInGcList
3244	.section	.text.FtlGcUpdatePage,"ax",%progbits
3245	.align	1
3246	.global	FtlGcUpdatePage
3247	.syntax unified
3248	.thumb
3249	.thumb_func
3250	.fpu softvfp
3251	.type	FtlGcUpdatePage, %function
3252FtlGcUpdatePage:
3253	@ args = 0, pretend = 0, frame = 0
3254	@ frame_needed = 0, uses_anonymous_args = 0
3255	push	{r3, r4, r5, r6, r7, lr}
3256	mov	r5, r0
3257	ldr	r4, .L353
3258	ubfx	r0, r0, #10, #16
3259	mov	r6, r1
3260	mov	r7, r2
3261	bl	P2V_block_in_plane
3262	ldr	r3, .L353+4
3263	ldrh	r1, [r4]
3264	ldr	r2, [r3]
3265	movs	r3, #0
3266.L350:
3267	uxth	ip, r3
3268	cmp	ip, r1
3269	bcc	.L352
3270	bne	.L351
3271	strh	r0, [r2, ip, lsl #1]	@ movhi
3272	ldrh	r3, [r4]
3273	adds	r3, r3, #1
3274	strh	r3, [r4]	@ movhi
3275	b	.L351
3276.L352:
3277	adds	r3, r3, #1
3278	add	ip, r2, r3, lsl #1
3279	ldrh	ip, [ip, #-2]
3280	cmp	ip, r0
3281	bne	.L350
3282.L351:
3283	ldr	r2, .L353+8
3284	movs	r0, #12
3285	ldr	r1, .L353+12
3286	ldrh	r3, [r2]
3287	ldr	r1, [r1]
3288	muls	r0, r3, r0
3289	adds	r3, r3, #1
3290	adds	r4, r1, r0
3291	str	r6, [r4, #4]
3292	str	r7, [r4, #8]
3293	str	r5, [r1, r0]
3294	strh	r3, [r2]	@ movhi
3295	pop	{r3, r4, r5, r6, r7, pc}
3296.L354:
3297	.align	2
3298.L353:
3299	.word	.LANCHOR96
3300	.word	.LANCHOR95
3301	.word	.LANCHOR97
3302	.word	.LANCHOR98
3303	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
3304	.section	.text.FtlGcRefreshBlock,"ax",%progbits
3305	.align	1
3306	.global	FtlGcRefreshBlock
3307	.syntax unified
3308	.thumb
3309	.thumb_func
3310	.fpu softvfp
3311	.type	FtlGcRefreshBlock, %function
3312FtlGcRefreshBlock:
3313	@ args = 0, pretend = 0, frame = 0
3314	@ frame_needed = 0, uses_anonymous_args = 0
3315	push	{r3, r4, r5, lr}
3316	mov	r1, r0
3317	mov	r4, r0
3318	ldr	r0, .L358
3319	bl	printf
3320	ldr	r0, .L358+4
3321	ldrh	r5, [r0]
3322	cmp	r4, r5
3323	beq	.L356
3324	ldr	r3, .L358+8
3325	ldrh	r1, [r3]
3326	cmp	r4, r1
3327	beq	.L356
3328	movw	r2, #65535
3329	cmp	r5, r2
3330	bne	.L357
3331	strh	r4, [r0]	@ movhi
3332.L356:
3333	movs	r0, #0
3334	pop	{r3, r4, r5, pc}
3335.L357:
3336	cmp	r1, r2
3337	it	eq
3338	strheq	r4, [r3]	@ movhi
3339	b	.L356
3340.L359:
3341	.align	2
3342.L358:
3343	.word	.LC73
3344	.word	.LANCHOR99
3345	.word	.LANCHOR100
3346	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
3347	.section	.text.FtlGcMarkBadPhyBlk,"ax",%progbits
3348	.align	1
3349	.global	FtlGcMarkBadPhyBlk
3350	.syntax unified
3351	.thumb
3352	.thumb_func
3353	.fpu softvfp
3354	.type	FtlGcMarkBadPhyBlk, %function
3355FtlGcMarkBadPhyBlk:
3356	@ args = 0, pretend = 0, frame = 0
3357	@ frame_needed = 0, uses_anonymous_args = 0
3358	push	{r4, r5, r6, lr}
3359	mov	r5, r0
3360	ldr	r4, .L364
3361	bl	P2V_block_in_plane
3362	mov	r2, r5
3363	mov	r6, r0
3364	ldrh	r1, [r4]
3365	ldr	r0, .L364+4
3366	bl	printf
3367	mov	r0, r6
3368	bl	FtlGcRefreshBlock
3369	ldrh	r3, [r4]
3370	movs	r2, #0
3371	ldr	r0, .L364+8
3372.L361:
3373	uxth	r1, r2
3374	cmp	r3, r1
3375	bhi	.L363
3376	cmp	r3, #15
3377	itttt	ls
3378	addls	r2, r3, #1
3379	strhls	r2, [r4]	@ movhi
3380	ldrls	r2, .L364+8
3381	strhls	r5, [r2, r3, lsl #1]	@ movhi
3382	b	.L362
3383.L363:
3384	adds	r2, r2, #1
3385	add	r1, r0, r2, lsl #1
3386	ldrh	r1, [r1, #-2]
3387	cmp	r1, r5
3388	bne	.L361
3389.L362:
3390	movs	r0, #0
3391	pop	{r4, r5, r6, pc}
3392.L365:
3393	.align	2
3394.L364:
3395	.word	.LANCHOR101
3396	.word	.LC74
3397	.word	.LANCHOR102
3398	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
3399	.section	.text.FtlGcReFreshBadBlk,"ax",%progbits
3400	.align	1
3401	.global	FtlGcReFreshBadBlk
3402	.syntax unified
3403	.thumb
3404	.thumb_func
3405	.fpu softvfp
3406	.type	FtlGcReFreshBadBlk, %function
3407FtlGcReFreshBadBlk:
3408	@ args = 0, pretend = 0, frame = 0
3409	@ frame_needed = 0, uses_anonymous_args = 0
3410	ldr	r3, .L372
3411	push	{r4, lr}
3412	ldrh	r3, [r3]
3413	cbz	r3, .L367
3414	ldr	r2, .L372+4
3415	ldrh	r1, [r2]
3416	movw	r2, #65535
3417	cmp	r1, r2
3418	bne	.L367
3419	ldr	r4, .L372+8
3420	ldrh	r2, [r4]
3421	cmp	r2, r3
3422	itt	cs
3423	movcs	r3, #0
3424	strhcs	r3, [r4]	@ movhi
3425	ldr	r3, .L372+12
3426	ldrh	r2, [r4]
3427	ldrh	r0, [r3, r2, lsl #1]
3428	bl	P2V_block_in_plane
3429	bl	FtlGcRefreshBlock
3430	ldrh	r3, [r4]
3431	adds	r3, r3, #1
3432	strh	r3, [r4]	@ movhi
3433.L367:
3434	movs	r0, #0
3435	pop	{r4, pc}
3436.L373:
3437	.align	2
3438.L372:
3439	.word	.LANCHOR101
3440	.word	.LANCHOR99
3441	.word	.LANCHOR103
3442	.word	.LANCHOR102
3443	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
3444	.section	.text.ftl_malloc,"ax",%progbits
3445	.align	1
3446	.global	ftl_malloc
3447	.syntax unified
3448	.thumb
3449	.thumb_func
3450	.fpu softvfp
3451	.type	ftl_malloc, %function
3452ftl_malloc:
3453	@ args = 0, pretend = 0, frame = 0
3454	@ frame_needed = 0, uses_anonymous_args = 0
3455	@ link register save eliminated.
3456	movs	r1, #0
3457	b	kmalloc
3458	.size	ftl_malloc, .-ftl_malloc
3459	.section	.text.ftl_free,"ax",%progbits
3460	.align	1
3461	.global	ftl_free
3462	.syntax unified
3463	.thumb
3464	.thumb_func
3465	.fpu softvfp
3466	.type	ftl_free, %function
3467ftl_free:
3468	@ args = 0, pretend = 0, frame = 0
3469	@ frame_needed = 0, uses_anonymous_args = 0
3470	@ link register save eliminated.
3471	b	free
3472	.size	ftl_free, .-ftl_free
3473	.section	.text.rknand_print_hex,"ax",%progbits
3474	.align	1
3475	.global	rknand_print_hex
3476	.syntax unified
3477	.thumb
3478	.thumb_func
3479	.fpu softvfp
3480	.type	rknand_print_hex, %function
3481rknand_print_hex:
3482	@ args = 0, pretend = 0, frame = 0
3483	@ frame_needed = 0, uses_anonymous_args = 0
3484	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3485	movs	r6, #0
3486	mov	fp, r0
3487	mov	r7, r1
3488	mov	r8, r2
3489	mov	r10, r3
3490	mov	r5, r6
3491	mov	r4, r6
3492.L377:
3493	cmp	r4, r10
3494	bcc	.L383
3495	ldr	r0, .L386
3496	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
3497	b	printf
3498.L383:
3499	cbnz	r5, .L378
3500	mov	r2, r6
3501	mov	r1, fp
3502	ldr	r0, .L386+4
3503	bl	printf
3504.L378:
3505	cmp	r8, #4
3506	bne	.L379
3507	ldr	r1, [r7, r4, lsl #2]
3508.L385:
3509	ldr	r0, .L386+8
3510.L384:
3511	adds	r5, r5, #1
3512	bl	printf
3513	cmp	r5, #15
3514	bls	.L382
3515	movs	r5, #0
3516	ldr	r0, .L386
3517	bl	printf
3518.L382:
3519	adds	r4, r4, #1
3520	add	r6, r6, r8
3521	b	.L377
3522.L379:
3523	cmp	r8, #2
3524	bne	.L381
3525	ldrh	r1, [r7, r4, lsl #1]
3526	b	.L385
3527.L381:
3528	ldrb	r1, [r7, r4]	@ zero_extendqisi2
3529	ldr	r0, .L386+12
3530	b	.L384
3531.L387:
3532	.align	2
3533.L386:
3534	.word	.LC78
3535	.word	.LC75
3536	.word	.LC76
3537	.word	.LC77
3538	.size	rknand_print_hex, .-rknand_print_hex
3539	.section	.text.FlashEraseBlocks,"ax",%progbits
3540	.align	1
3541	.global	FlashEraseBlocks
3542	.syntax unified
3543	.thumb
3544	.thumb_func
3545	.fpu softvfp
3546	.type	FlashEraseBlocks, %function
3547FlashEraseBlocks:
3548	@ args = 0, pretend = 0, frame = 16
3549	@ frame_needed = 0, uses_anonymous_args = 0
3550	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
3551	mov	r4, r0
3552	ldr	r6, .L404
3553	add	r8, r0, #4
3554	movs	r7, #0
3555	ldr	fp, .L404+20
3556	ldrh	r10, [r6, #12]
3557	str	r2, [sp]
3558	lsl	r3, r10, #3
3559	str	r3, [sp, #4]
3560.L389:
3561	ldr	r3, [sp]
3562	cmp	r7, r3
3563	beq	.L403
3564	add	r2, sp, #8
3565	add	r1, sp, #12
3566	ldr	r0, [r8]
3567	bl	l2p_addr_tran.isra.0
3568	ldr	r5, [sp, #8]
3569	cbnz	r5, .L390
3570	ldr	r2, [sp, #12]
3571	ldr	r3, [sp, #4]
3572	cmp	r3, r2
3573	bls	.L390
3574	ldr	r6, .L404+4
3575	ldr	r7, .L404+8
3576.L391:
3577	ldr	r3, [sp]
3578	adds	r4, r4, #20
3579	cmp	r5, r3
3580	bne	.L392
3581.L403:
3582	movs	r0, #0
3583	add	sp, sp, #16
3584	@ sp needed
3585	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3586.L392:
3587	mov	r3, #-1
3588	ldr	r2, [sp, #12]
3589	str	r3, [r4, #-20]
3590	mov	r1, r6
3591	mov	r0, r7
3592	adds	r5, r5, #1
3593	bl	printf
3594	movs	r3, #16
3595	movs	r2, #4
3596	ldr	r1, [r4, #-12]
3597	ldr	r0, .L404+12
3598	bl	rknand_print_hex
3599	movs	r3, #4
3600	ldr	r1, [r4, #-8]
3601	mov	r2, r3
3602	ldr	r0, .L404+16
3603	bl	rknand_print_hex
3604	b	.L391
3605.L390:
3606	ldr	r2, [fp, #4]
3607	uxtb	r0, r5
3608	ldr	r1, [sp, #12]
3609	blx	r2
3610	cbnz	r0, .L393
3611	str	r0, [r8, #-4]
3612.L394:
3613	ldrh	r2, [r6, #14]
3614	cmp	r2, #4
3615	bne	.L396
3616	ldr	r1, [sp, #12]
3617	ldr	r2, [fp, #4]
3618	ldrb	r0, [sp, #8]	@ zero_extendqisi2
3619	add	r1, r1, r10
3620	blx	r2
3621	cbz	r0, .L396
3622	mov	r2, #-1
3623	str	r2, [r8, #-4]
3624.L396:
3625	adds	r7, r7, #1
3626	add	r8, r8, #20
3627	b	.L389
3628.L393:
3629	mov	r2, #-1
3630	str	r2, [r8, #-4]
3631	b	.L394
3632.L405:
3633	.align	2
3634.L404:
3635	.word	.LANCHOR0
3636	.word	.LANCHOR104
3637	.word	.LC79
3638	.word	.LC80
3639	.word	.LC81
3640	.word	.LANCHOR105
3641	.size	FlashEraseBlocks, .-FlashEraseBlocks
3642	.section	.text.FtlFreeSysBlkQueueIn,"ax",%progbits
3643	.align	1
3644	.global	FtlFreeSysBlkQueueIn
3645	.syntax unified
3646	.thumb
3647	.thumb_func
3648	.fpu softvfp
3649	.type	FtlFreeSysBlkQueueIn, %function
3650FtlFreeSysBlkQueueIn:
3651	@ args = 0, pretend = 0, frame = 0
3652	@ frame_needed = 0, uses_anonymous_args = 0
3653	subs	r3, r0, #1
3654	movw	r2, #65533
3655	uxth	r3, r3
3656	push	{r4, r5, r6, lr}
3657	mov	r5, r0
3658	cmp	r3, r2
3659	bhi	.L406
3660	ldr	r4, .L415
3661	ldrh	r3, [r4, #6]
3662	cmp	r3, #1024
3663	beq	.L406
3664	cbz	r1, .L408
3665	bl	P2V_block_in_plane
3666	ldr	r3, .L415+4
3667	mov	r6, r0
3668	movs	r2, #1
3669	mov	r1, r2
3670	ldr	r0, [r3]
3671	lsls	r3, r5, #10
3672	str	r3, [r0, #4]
3673	bl	FlashEraseBlocks
3674	ldr	r3, .L415+8
3675	ldr	r2, [r3]
3676	ldrh	r3, [r2, r6, lsl #1]
3677	adds	r3, r3, #1
3678	strh	r3, [r2, r6, lsl #1]	@ movhi
3679	ldr	r2, .L415+12
3680	ldr	r3, [r2]
3681	adds	r3, r3, #1
3682	str	r3, [r2]
3683.L408:
3684	ldrh	r3, [r4, #6]
3685	adds	r3, r3, #1
3686	strh	r3, [r4, #6]	@ movhi
3687	ldrh	r3, [r4, #4]
3688	adds	r2, r3, #4
3689	adds	r3, r3, #1
3690	ubfx	r3, r3, #0, #10
3691	strh	r5, [r4, r2, lsl #1]	@ movhi
3692	strh	r3, [r4, #4]	@ movhi
3693.L406:
3694	pop	{r4, r5, r6, pc}
3695.L416:
3696	.align	2
3697.L415:
3698	.word	.LANCHOR38
3699	.word	.LANCHOR106
3700	.word	.LANCHOR43
3701	.word	.LANCHOR75
3702	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3703	.section	.text.FtlFreeSysBlkQueueOut,"ax",%progbits
3704	.align	1
3705	.global	FtlFreeSysBlkQueueOut
3706	.syntax unified
3707	.thumb
3708	.thumb_func
3709	.fpu softvfp
3710	.type	FtlFreeSysBlkQueueOut, %function
3711FtlFreeSysBlkQueueOut:
3712	@ args = 0, pretend = 0, frame = 0
3713	@ frame_needed = 0, uses_anonymous_args = 0
3714	push	{r3, r4, r5, lr}
3715	ldr	r4, .L422
3716	ldrh	r2, [r4, #6]
3717	cbz	r2, .L421
3718	ldrh	r3, [r4, #2]
3719	subs	r2, r2, #1
3720	strh	r2, [r4, #6]	@ movhi
3721	movs	r2, #1
3722	adds	r1, r3, #4
3723	adds	r3, r3, #1
3724	ubfx	r3, r3, #0, #10
3725	ldrh	r5, [r4, r1, lsl #1]
3726	strh	r3, [r4, #2]	@ movhi
3727	mov	r1, r2
3728	ldr	r3, .L422+4
3729	ldr	r0, [r3]
3730	lsls	r3, r5, #10
3731	str	r3, [r0, #4]
3732	bl	FlashEraseBlocks
3733	ldr	r2, .L422+8
3734	ldr	r3, [r2]
3735	adds	r3, r3, #1
3736	str	r3, [r2]
3737.L418:
3738	subs	r3, r5, #1
3739	movw	r2, #65533
3740	uxth	r3, r3
3741	cmp	r3, r2
3742	bls	.L419
3743	ldrh	r2, [r4, #6]
3744	mov	r1, r5
3745	ldr	r0, .L422+12
3746	bl	printf
3747.L420:
3748	b	.L420
3749.L421:
3750	movw	r5, #65535
3751	b	.L418
3752.L419:
3753	mov	r0, r5
3754	pop	{r3, r4, r5, pc}
3755.L423:
3756	.align	2
3757.L422:
3758	.word	.LANCHOR38
3759	.word	.LANCHOR106
3760	.word	.LANCHOR75
3761	.word	.LC82
3762	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3763	.section	.text.ftl_map_blk_alloc_new_blk,"ax",%progbits
3764	.align	1
3765	.global	ftl_map_blk_alloc_new_blk
3766	.syntax unified
3767	.thumb
3768	.thumb_func
3769	.fpu softvfp
3770	.type	ftl_map_blk_alloc_new_blk, %function
3771ftl_map_blk_alloc_new_blk:
3772	@ args = 0, pretend = 0, frame = 0
3773	@ frame_needed = 0, uses_anonymous_args = 0
3774	ldrh	r1, [r0, #10]
3775	ldr	r2, [r0, #12]
3776	push	{r3, r4, r5, r6, r7, lr}
3777	mov	r4, r0
3778	movs	r3, #0
3779.L425:
3780	uxth	r5, r3
3781	cmp	r5, r1
3782	bcs	.L428
3783	mov	r7, r2
3784	adds	r3, r3, #1
3785	ldrh	r6, [r7]
3786	adds	r2, r2, #2
3787	cmp	r6, #0
3788	bne	.L425
3789	bl	FtlFreeSysBlkQueueOut
3790	subs	r3, r0, #1
3791	movw	r2, #65533
3792	uxth	r3, r3
3793	mov	r1, r0
3794	strh	r0, [r7]	@ movhi
3795	cmp	r3, r2
3796	bls	.L426
3797	ldr	r3, .L432
3798	ldr	r0, .L432+4
3799	ldrh	r2, [r3, #6]
3800	bl	printf
3801.L427:
3802	b	.L427
3803.L426:
3804	ldr	r3, [r4, #28]
3805	strh	r6, [r4, #2]	@ movhi
3806	strh	r5, [r4]	@ movhi
3807	adds	r3, r3, #1
3808	str	r3, [r4, #28]
3809	ldrh	r3, [r4, #8]
3810	adds	r3, r3, #1
3811	strh	r3, [r4, #8]	@ movhi
3812.L428:
3813	ldrh	r3, [r4, #10]
3814	cmp	r3, r5
3815	bhi	.L430
3816	movw	r2, #578
3817	ldr	r1, .L432+8
3818	ldr	r0, .L432+12
3819	bl	printf
3820.L430:
3821	movs	r0, #0
3822	pop	{r3, r4, r5, r6, r7, pc}
3823.L433:
3824	.align	2
3825.L432:
3826	.word	.LANCHOR38
3827	.word	.LC83
3828	.word	.LANCHOR107
3829	.word	.LC1
3830	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
3831	.section	.text.ftl_memset,"ax",%progbits
3832	.align	1
3833	.global	ftl_memset
3834	.syntax unified
3835	.thumb
3836	.thumb_func
3837	.fpu softvfp
3838	.type	ftl_memset, %function
3839ftl_memset:
3840	@ args = 0, pretend = 0, frame = 0
3841	@ frame_needed = 0, uses_anonymous_args = 0
3842	@ link register save eliminated.
3843	b	memset
3844	.size	ftl_memset, .-ftl_memset
3845	.section	.text.FtlMemInit,"ax",%progbits
3846	.align	1
3847	.global	FtlMemInit
3848	.syntax unified
3849	.thumb
3850	.thumb_func
3851	.fpu softvfp
3852	.type	FtlMemInit, %function
3853FtlMemInit:
3854	@ args = 0, pretend = 0, frame = 24
3855	@ frame_needed = 0, uses_anonymous_args = 0
3856	ldr	r3, .L536
3857	movs	r1, #0
3858	push	{r4, r5, r6, r7, r8, r10, fp, lr}
3859	sub	sp, sp, #24
3860	ldr	r2, .L536+4
3861	mov	r10, #12
3862	str	r1, [r3]
3863	ldr	r3, .L536+8
3864	ldr	r4, .L536+12
3865	ldr	r8, .L536+292
3866	str	r1, [r3]
3867	ldr	r3, .L536+16
3868	ldrh	r0, [r4]
3869	str	r1, [sp, #12]
3870	str	r1, [r3]
3871	ldr	r3, .L536+20
3872	lsls	r0, r0, #1
3873	ldr	r6, .L536+24
3874	ldr	fp, .L536+296
3875	str	r1, [r3]
3876	ldr	r3, .L536+28
3877	ldr	r7, .L536+32
3878	str	r1, [r3]
3879	ldr	r3, .L536+36
3880	str	r1, [r3]
3881	ldr	r3, .L536+40
3882	str	r1, [r3]
3883	ldr	r3, .L536+44
3884	str	r1, [r3]
3885	ldr	r3, .L536+48
3886	str	r1, [r3]
3887	ldr	r3, .L536+52
3888	str	r1, [r3]
3889	ldr	r3, .L536+56
3890	str	r1, [r3]
3891	ldr	r3, .L536+60
3892	str	r1, [r3]
3893	ldr	r3, .L536+64
3894	str	r1, [r3]
3895	ldr	r3, .L536+68
3896	str	r1, [r3]
3897	ldr	r3, .L536+72
3898	str	r1, [r3]
3899	movw	r3, #65535
3900	str	r3, [r2]
3901	ldr	r2, .L536+76
3902	str	r1, [r2]
3903	ldr	r2, .L536+80
3904	str	r1, [r2]
3905	ldr	r2, .L536+84
3906	str	r1, [r2]
3907	ldr	r2, .L536+88
3908	strh	r3, [r2]	@ movhi
3909	ldr	r2, .L536+92
3910	strh	r3, [r2]	@ movhi
3911	movs	r2, #32
3912	ldr	r3, .L536+96
3913	strh	r2, [r3]	@ movhi
3914	movs	r2, #128
3915	ldr	r3, .L536+100
3916	strh	r2, [r3]	@ movhi
3917	ldr	r3, .L536+104
3918	strh	r1, [r3]	@ movhi
3919	ldr	r3, .L536+108
3920	strh	r1, [r3]	@ movhi
3921	ldr	r3, .L536+112
3922	strh	r1, [r3]	@ movhi
3923	bl	ftl_malloc
3924	str	r0, [r8]
3925	ldrh	r0, [r4]
3926	movs	r4, #20
3927	mul	r0, r10, r0
3928	bl	ftl_malloc
3929	ldr	r3, .L536+116
3930	str	r0, [r3]
3931	ldrh	r3, [r6]
3932	muls	r4, r3, r4
3933	lsls	r5, r4, #2
3934	mov	r0, r5
3935	bl	ftl_malloc
3936	ldr	r3, .L536+120
3937	str	r0, [r3]
3938	mov	r0, r4
3939	bl	ftl_malloc
3940	ldr	r3, .L536+124
3941	str	r0, [r3]
3942	mov	r0, r5
3943	bl	ftl_malloc
3944	str	r0, [fp]
3945	mov	r0, r4
3946	bl	ftl_malloc
3947	ldr	r3, .L536+128
3948	ldr	r5, .L536+132
3949	str	r0, [r3]
3950	mov	r0, r4
3951	bl	ftl_malloc
3952	ldr	r3, .L536+136
3953	str	r0, [r3]
3954	ldrh	r0, [r6]
3955	ldr	r3, .L536+140
3956	lsls	r0, r0, #1
3957	ldrh	r4, [r3]
3958	adds	r0, r0, #1
3959	str	r0, [r5]
3960	mov	r0, r4
3961	bl	ftl_malloc
3962	ldr	r3, .L536+144
3963	str	r0, [r3]
3964	mov	r0, r4
3965	bl	ftl_malloc
3966	ldr	r3, .L536+148
3967	str	r0, [r3]
3968	mov	r0, r4
3969	bl	ftl_malloc
3970	str	r0, [r7]
3971	ldr	r0, [r5]
3972	muls	r0, r4, r0
3973	bl	ftl_malloc
3974	ldr	r3, .L536+152
3975	str	r0, [r3]
3976	mov	r0, r4
3977	bl	ftl_malloc
3978	ldr	r3, .L536+156
3979	str	r0, [r3]
3980	mov	r0, r4
3981	bl	ftl_malloc
3982	ldr	r3, .L536+160
3983	str	r0, [r3]
3984	ldr	r0, [r5]
3985	mul	r0, r10, r0
3986	bl	ftl_malloc
3987	ldr	r3, .L536+164
3988	str	r0, [r3]
3989	mov	r0, r4
3990	bl	ftl_malloc
3991	ldr	r3, .L536+168
3992	str	r0, [r3]
3993	mov	r0, r4
3994	ldr	r4, .L536+172
3995	bl	ftl_malloc
3996	str	r0, [r4]
3997	ldr	r0, .L536+176
3998	ldr	r4, .L536+180
3999	ldrh	r0, [r0]
4000	lsls	r0, r0, #2
4001	bl	ftl_malloc
4002	str	r0, [r4]
4003	ldr	r4, .L536+184
4004	ldrh	r2, [r6]
4005	ldr	r6, .L536+152
4006	ldrh	r0, [r4]
4007	muls	r2, r0, r2
4008	mov	r0, r2
4009	str	r2, [sp, #4]
4010	bl	ftl_malloc
4011	ldr	r2, [sp, #4]
4012	ldr	r3, .L536+188
4013	str	r0, [r3]
4014	lsls	r0, r2, #2
4015	bl	ftl_malloc
4016	ldr	r2, .L536+192
4017	str	r0, [r2]
4018	ldrh	r2, [r4]
4019	ldr	r0, [r5]
4020	ldr	r4, .L536+196
4021	ldr	r5, .L536+200
4022	muls	r0, r2, r0
4023	bl	ftl_malloc
4024	ldr	r3, .L536+204
4025	str	r0, [r3]
4026	ldrh	r0, [r4]
4027	lsls	r0, r0, #1
4028	uxth	r0, r0
4029	strh	r0, [r5]	@ movhi
4030	bl	ftl_malloc
4031	ldr	r2, .L536+208
4032	str	r0, [r2]
4033	ldrh	r2, [r5]
4034	ldr	r0, .L536+212
4035	addw	r2, r2, #547
4036	lsrs	r2, r2, #9
4037	and	r0, r0, r2, lsl #9
4038	strh	r2, [r5]	@ movhi
4039	bl	ftl_malloc
4040	ldr	r3, .L536+216
4041	str	r0, [r3]
4042	adds	r0, r0, #32
4043	ldr	r3, .L536+220
4044	str	r0, [r3]
4045	ldrh	r3, [r4]
4046	lsls	r5, r3, #1
4047	mov	r0, r5
4048	bl	ftl_malloc
4049	ldr	r2, .L536+224
4050	str	r0, [r2]
4051	mov	r0, r5
4052	bl	ftl_malloc
4053	ldr	r3, .L536+228
4054	str	r0, [r3]
4055	ldr	r3, .L536+232
4056	ldr	r2, [r3]
4057	str	r3, [sp, #8]
4058	lsls	r5, r2, #1
4059	mov	r0, r5
4060	bl	ftl_malloc
4061	ldr	r2, .L536+236
4062	str	r0, [r2]
4063	mov	r0, r5
4064	bl	ftl_malloc
4065	ldr	r2, .L536+240
4066	ldr	r5, .L536+244
4067	str	r0, [r2]
4068	ldrh	r0, [r4]
4069	lsrs	r0, r0, #3
4070	adds	r0, r0, #4
4071	bl	ftl_malloc
4072	ldr	r2, .L536+248
4073	str	r0, [r2]
4074	ldrh	r0, [r5]
4075	lsls	r0, r0, #1
4076	bl	ftl_malloc
4077	ldr	r2, .L536+252
4078	str	r0, [r2]
4079	ldrh	r0, [r5]
4080	lsls	r0, r0, #1
4081	bl	ftl_malloc
4082	ldr	r2, .L536+256
4083	str	r0, [r2]
4084	ldrh	r0, [r5]
4085	ldr	r5, .L536+116
4086	lsls	r0, r0, #2
4087	bl	ftl_malloc
4088	ldr	r2, .L536+260
4089	str	r0, [r2]
4090	ldr	r2, .L536+264
4091	ldrh	r0, [r2]
4092	str	r2, [sp, #4]
4093	lsls	r0, r0, #2
4094	bl	ftl_malloc
4095	ldr	r2, [sp, #4]
4096	ldr	ip, .L536+300
4097	ldr	r1, [sp, #12]
4098	ldrh	r2, [r2]
4099	str	r0, [ip]
4100	lsls	r2, r2, #2
4101	bl	ftl_memset
4102	ldr	r2, .L536+268
4103	ldrh	r0, [r2]
4104	lsls	r0, r0, #2
4105	bl	ftl_malloc
4106	ldr	r2, .L536+272
4107	ldr	r3, [sp, #8]
4108	str	r0, [r2]
4109	ldr	r0, [r3]
4110	lsls	r0, r0, #2
4111	bl	ftl_malloc
4112	ldr	r3, .L536+276
4113	str	r0, [r3]
4114	ldr	r3, .L536+280
4115	ldrh	r0, [r3]
4116	str	r3, [sp, #4]
4117	mul	r0, r10, r0
4118	ldr	r10, .L536+304
4119	bl	ftl_malloc
4120	ldr	r2, .L536+284
4121	ldr	r3, [sp, #4]
4122	str	r0, [r2]
4123	ldr	r2, .L536+140
4124	ldrh	r3, [r3]
4125	ldrh	r0, [r2]
4126	muls	r0, r3, r0
4127	bl	ftl_malloc
4128	ldr	r3, .L536+288
4129	str	r0, [r3]
4130	movs	r0, #6
4131	ldrh	r3, [r4]
4132	b	.L537
4133.L538:
4134	.align	2
4135.L536:
4136	.word	.LANCHOR70
4137	.word	.LANCHOR109
4138	.word	.LANCHOR71
4139	.word	.LANCHOR21
4140	.word	.LANCHOR67
4141	.word	.LANCHOR64
4142	.word	.LANCHOR3
4143	.word	.LANCHOR63
4144	.word	.LANCHOR117
4145	.word	.LANCHOR65
4146	.word	.LANCHOR66
4147	.word	.LANCHOR62
4148	.word	.LANCHOR72
4149	.word	.LANCHOR73
4150	.word	.LANCHOR75
4151	.word	.LANCHOR76
4152	.word	.LANCHOR77
4153	.word	.LANCHOR108
4154	.word	.LANCHOR87
4155	.word	.LANCHOR110
4156	.word	.LANCHOR84
4157	.word	.LANCHOR111
4158	.word	.LANCHOR99
4159	.word	.LANCHOR100
4160	.word	.LANCHOR82
4161	.word	.LANCHOR83
4162	.word	.LANCHOR85
4163	.word	.LANCHOR101
4164	.word	.LANCHOR103
4165	.word	.LANCHOR98
4166	.word	.LANCHOR112
4167	.word	.LANCHOR113
4168	.word	.LANCHOR106
4169	.word	.LANCHOR94
4170	.word	.LANCHOR93
4171	.word	.LANCHOR23
4172	.word	.LANCHOR115
4173	.word	.LANCHOR116
4174	.word	.LANCHOR91
4175	.word	.LANCHOR118
4176	.word	.LANCHOR119
4177	.word	.LANCHOR90
4178	.word	.LANCHOR120
4179	.word	.LANCHOR121
4180	.word	.LANCHOR12
4181	.word	.LANCHOR122
4182	.word	.LANCHOR24
4183	.word	.LANCHOR123
4184	.word	.LANCHOR124
4185	.word	.LANCHOR6
4186	.word	.LANCHOR125
4187	.word	.LANCHOR92
4188	.word	.LANCHOR126
4189	.word	33553920
4190	.word	.LANCHOR127
4191	.word	.LANCHOR43
4192	.word	.LANCHOR128
4193	.word	.LANCHOR42
4194	.word	.LANCHOR30
4195	.word	.LANCHOR129
4196	.word	.LANCHOR130
4197	.word	.LANCHOR27
4198	.word	.LANCHOR1
4199	.word	.LANCHOR36
4200	.word	.LANCHOR131
4201	.word	.LANCHOR132
4202	.word	.LANCHOR28
4203	.word	.LANCHOR32
4204	.word	.LANCHOR134
4205	.word	.LANCHOR135
4206	.word	.LANCHOR33
4207	.word	.LANCHOR55
4208	.word	.LANCHOR136
4209	.word	.LANCHOR95
4210	.word	.LANCHOR114
4211	.word	.LANCHOR133
4212	.word	.LANCHOR10
4213.L537:
4214	ldr	r4, .L539
4215	muls	r0, r3, r0
4216	bl	ftl_malloc
4217	ldr	r3, .L539+4
4218	str	r0, [r3]
4219	ldr	r3, .L539+8
4220	ldrh	r0, [r3]
4221	ldrh	r3, [r10]
4222	adds	r0, r0, #31
4223	asrs	r0, r0, #5
4224	strh	r0, [r4]	@ movhi
4225	muls	r0, r3, r0
4226	lsls	r0, r0, #2
4227	bl	ftl_malloc
4228	ldr	r2, .L539+12
4229	str	r5, [sp, #8]
4230	ldr	r5, .L539+16
4231	mov	r1, r2
4232	ldrh	r3, [r10]
4233	str	r0, [r1, #28]!
4234	ldrh	r0, [r4]
4235	str	r5, [sp, #12]
4236	ldr	r5, .L539+20
4237	ldr	r10, .L539+116
4238	lsls	r0, r0, #2
4239	ldr	lr, .L539+120
4240	ldr	ip, .L539+124
4241	str	r5, [sp, #16]
4242	mov	r4, r0
4243	ldr	r5, .L539+24
4244	str	r3, [sp, #4]
4245	movs	r3, #1
4246	str	r5, [sp, #20]
4247.L436:
4248	ldr	r5, [sp, #4]
4249	cmp	r3, r5
4250	bcc	.L437
4251	add	r3, r2, r3, lsl #2
4252	ldr	r1, .L539+28
4253	movs	r0, #0
4254	adds	r3, r3, #24
4255.L438:
4256	cmp	r1, r3
4257	bne	.L439
4258	ldr	r3, .L539+32
4259	ldr	r3, [r3]
4260	cbnz	r3, .L440
4261.L442:
4262	ldr	r1, .L539+36
4263	ldr	r0, .L539+40
4264	bl	printf
4265	mov	r0, #-1
4266.L435:
4267	add	sp, sp, #24
4268	@ sp needed
4269	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4270.L437:
4271	ldr	r5, [r2, #28]
4272	adds	r3, r3, #1
4273	add	r5, r5, r4
4274	add	r4, r4, r0
4275	str	r5, [r1, #4]!
4276	b	.L436
4277.L439:
4278	str	r0, [r3, #4]!
4279	b	.L438
4280.L440:
4281	ldr	r3, .L539+44
4282	ldr	r3, [r3]
4283	cmp	r3, #0
4284	beq	.L442
4285	ldr	r3, .L539+48
4286	ldr	r3, [r3]
4287	cmp	r3, #0
4288	beq	.L442
4289	ldr	r3, .L539+52
4290	ldr	r3, [r3]
4291	cmp	r3, #0
4292	beq	.L442
4293	ldr	r3, .L539+56
4294	ldr	r3, [r3]
4295	cmp	r3, #0
4296	beq	.L442
4297	ldr	r3, .L539+60
4298	ldr	r3, [r3]
4299	cmp	r3, #0
4300	beq	.L442
4301	ldr	r3, .L539+4
4302	ldr	r3, [r3]
4303	cmp	r3, #0
4304	beq	.L442
4305	ldr	r3, [r2, #28]
4306	cmp	r3, #0
4307	beq	.L442
4308	ldr	r3, .L539+64
4309	ldr	r3, [r3]
4310	cmp	r3, #0
4311	beq	.L442
4312	ldr	r3, [r8]
4313	cmp	r3, #0
4314	beq	.L442
4315	ldr	r3, [sp, #8]
4316	ldr	r3, [r3]
4317	cmp	r3, #0
4318	beq	.L442
4319	ldr	r3, [sp, #12]
4320	ldr	r3, [r3]
4321	cmp	r3, #0
4322	beq	.L442
4323	ldr	r3, [fp]
4324	cmp	r3, #0
4325	beq	.L442
4326	ldr	r3, [r10]
4327	cmp	r3, #0
4328	beq	.L442
4329	ldr	r3, [sp, #20]
4330	ldr	r3, [r3]
4331	cmp	r3, #0
4332	beq	.L442
4333	ldr	r3, [sp, #16]
4334	ldr	r3, [r3]
4335	cmp	r3, #0
4336	beq	.L442
4337	ldr	r3, [lr]
4338	cmp	r3, #0
4339	beq	.L442
4340	ldr	r3, [ip]
4341	cmp	r3, #0
4342	beq	.L442
4343	ldr	r3, [r7]
4344	cmp	r3, #0
4345	beq	.L442
4346	ldr	r3, [r6]
4347	cmp	r3, #0
4348	beq	.L442
4349	ldr	r3, .L539+68
4350	ldr	r3, [r3]
4351	cmp	r3, #0
4352	beq	.L442
4353	ldr	r3, .L539+72
4354	ldr	r3, [r3]
4355	cmp	r3, #0
4356	beq	.L442
4357	ldr	r3, .L539+76
4358	ldr	r3, [r3]
4359	cmp	r3, #0
4360	beq	.L442
4361	ldr	r3, .L539+80
4362	ldr	r3, [r3]
4363	cmp	r3, #0
4364	beq	.L442
4365	ldr	r3, .L539+84
4366	ldr	r3, [r3]
4367	cmp	r3, #0
4368	beq	.L442
4369	ldr	r3, .L539+88
4370	ldr	r3, [r3]
4371	cmp	r3, #0
4372	beq	.L442
4373	ldr	r3, .L539+92
4374	ldr	r3, [r3]
4375	cmp	r3, #0
4376	beq	.L442
4377	ldr	r3, .L539+96
4378	ldr	r3, [r3]
4379	cmp	r3, #0
4380	beq	.L442
4381	ldr	r3, .L539+100
4382	ldr	r3, [r3]
4383	cmp	r3, #0
4384	beq	.L442
4385	ldr	r3, .L539+104
4386	ldr	r3, [r3]
4387	cmp	r3, #0
4388	beq	.L442
4389	ldr	r3, .L539+108
4390	ldr	r3, [r3]
4391	cmp	r3, #0
4392	beq	.L442
4393	ldr	r3, .L539+112
4394	ldr	r3, [r3]
4395	cmp	r3, #0
4396	beq	.L442
4397	movs	r0, #0
4398	b	.L435
4399.L540:
4400	.align	2
4401.L539:
4402	.word	.LANCHOR137
4403	.word	.LANCHOR40
4404	.word	.LANCHOR17
4405	.word	.LANCHOR37
4406	.word	.LANCHOR112
4407	.word	.LANCHOR113
4408	.word	.LANCHOR93
4409	.word	.LANCHOR37+56
4410	.word	.LANCHOR129
4411	.word	.LANCHOR138
4412	.word	.LC84
4413	.word	.LANCHOR130
4414	.word	.LANCHOR134
4415	.word	.LANCHOR135
4416	.word	.LANCHOR55
4417	.word	.LANCHOR136
4418	.word	.LANCHOR42
4419	.word	.LANCHOR118
4420	.word	.LANCHOR119
4421	.word	.LANCHOR90
4422	.word	.LANCHOR123
4423	.word	.LANCHOR124
4424	.word	.LANCHOR92
4425	.word	.LANCHOR43
4426	.word	.LANCHOR126
4427	.word	.LANCHOR36
4428	.word	.LANCHOR131
4429	.word	.LANCHOR132
4430	.word	.LANCHOR133
4431	.word	.LANCHOR106
4432	.word	.LANCHOR115
4433	.word	.LANCHOR116
4434	.size	FtlMemInit, .-FtlMemInit
4435	.section	.text.FtlBbt2Bitmap,"ax",%progbits
4436	.align	1
4437	.global	FtlBbt2Bitmap
4438	.syntax unified
4439	.thumb
4440	.thumb_func
4441	.fpu softvfp
4442	.type	FtlBbt2Bitmap, %function
4443FtlBbt2Bitmap:
4444	@ args = 0, pretend = 0, frame = 0
4445	@ frame_needed = 0, uses_anonymous_args = 0
4446	ldr	r3, .L547
4447	push	{r4, r5, r6, r7, r8, lr}
4448	mov	r5, r0
4449	ldr	r7, .L547+4
4450	mov	r6, r1
4451	subs	r4, r5, #2
4452	addw	r5, r5, #1022
4453	ldrh	r2, [r3]
4454	movs	r1, #0
4455	ldr	r8, .L547+12
4456	mov	r0, r6
4457	lsls	r2, r2, #2
4458	bl	ftl_memset
4459.L544:
4460	ldrh	r3, [r4, #2]
4461	movw	r2, #65535
4462	cmp	r3, r2
4463	beq	.L541
4464	ldrh	r2, [r7]
4465	cmp	r2, r3
4466	bhi	.L543
4467	movs	r2, #74
4468	mov	r1, r8
4469	ldr	r0, .L547+8
4470	bl	printf
4471.L543:
4472	ldrh	r3, [r4, #2]!
4473	movs	r2, #1
4474	cmp	r5, r4
4475	lsr	r1, r3, #5
4476	and	r3, r3, #31
4477	lsl	r3, r2, r3
4478	ldr	r2, [r6, r1, lsl #2]
4479	orr	r2, r2, r3
4480	str	r2, [r6, r1, lsl #2]
4481	bne	.L544
4482.L541:
4483	pop	{r4, r5, r6, r7, r8, pc}
4484.L548:
4485	.align	2
4486.L547:
4487	.word	.LANCHOR137
4488	.word	.LANCHOR17
4489	.word	.LC1
4490	.word	.LANCHOR139
4491	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
4492	.section	.text.FtlBbtMemInit,"ax",%progbits
4493	.align	1
4494	.global	FtlBbtMemInit
4495	.syntax unified
4496	.thumb
4497	.thumb_func
4498	.fpu softvfp
4499	.type	FtlBbtMemInit, %function
4500FtlBbtMemInit:
4501	@ args = 0, pretend = 0, frame = 0
4502	@ frame_needed = 0, uses_anonymous_args = 0
4503	@ link register save eliminated.
4504	ldr	r0, .L550
4505	movw	r3, #65535
4506	movs	r2, #16
4507	movs	r1, #255
4508	strh	r3, [r0]	@ movhi
4509	movs	r3, #0
4510	strh	r3, [r0, #6]	@ movhi
4511	adds	r0, r0, #12
4512	b	ftl_memset
4513.L551:
4514	.align	2
4515.L550:
4516	.word	.LANCHOR37
4517	.size	FtlBbtMemInit, .-FtlBbtMemInit
4518	.section	.text.FtlFreeSysBlkQueueInit,"ax",%progbits
4519	.align	1
4520	.global	FtlFreeSysBlkQueueInit
4521	.syntax unified
4522	.thumb
4523	.thumb_func
4524	.fpu softvfp
4525	.type	FtlFreeSysBlkQueueInit, %function
4526FtlFreeSysBlkQueueInit:
4527	@ args = 0, pretend = 0, frame = 0
4528	@ frame_needed = 0, uses_anonymous_args = 0
4529	ldr	r3, .L553
4530	mov	r2, #2048
4531	push	{r4, lr}
4532	movs	r4, #0
4533	mov	r1, r4
4534	strh	r4, [r3, #2]	@ movhi
4535	strh	r4, [r3, #4]	@ movhi
4536	strh	r4, [r3, #6]	@ movhi
4537	strh	r0, [r3], #8	@ movhi
4538	mov	r0, r3
4539	bl	ftl_memset
4540	mov	r0, r4
4541	pop	{r4, pc}
4542.L554:
4543	.align	2
4544.L553:
4545	.word	.LANCHOR38
4546	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
4547	.section	.text.ftl_free_no_use_map_blk,"ax",%progbits
4548	.align	1
4549	.global	ftl_free_no_use_map_blk
4550	.syntax unified
4551	.thumb
4552	.thumb_func
4553	.fpu softvfp
4554	.type	ftl_free_no_use_map_blk, %function
4555ftl_free_no_use_map_blk:
4556	@ args = 0, pretend = 0, frame = 8
4557	@ frame_needed = 0, uses_anonymous_args = 0
4558	ldrh	r2, [r0, #10]
4559	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
4560	mov	r4, r0
4561	ldr	r5, [r0, #20]
4562	movs	r1, #0
4563	ldr	r7, [r0, #12]
4564	lsls	r2, r2, #1
4565	ldr	r6, [r0, #24]
4566	mov	r0, r5
4567	bl	ftl_memset
4568	movs	r3, #0
4569.L556:
4570	ldrh	r1, [r4, #6]
4571	uxth	r2, r3
4572	cmp	r1, r2
4573	bhi	.L560
4574	ldr	r3, .L575
4575	movs	r6, #0
4576	mov	r10, r6
4577	ldrh	r2, [r3]
4578	ldrh	r3, [r4]
4579	strh	r2, [r5, r3, lsl #1]	@ movhi
4580	mov	r2, r6
4581	ldrh	fp, [r5]
4582.L561:
4583	ldrh	r3, [r4, #10]
4584	uxth	ip, r6
4585	cmp	r3, ip
4586	bhi	.L565
4587	mov	r0, r10
4588	add	sp, sp, #8
4589	@ sp needed
4590	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4591.L560:
4592	uxth	r2, r3
4593	ldr	r1, [r6, r2, lsl #2]
4594	movs	r2, #0
4595	ubfx	r1, r1, #10, #16
4596.L557:
4597	ldrh	ip, [r4, #10]
4598	uxth	r0, r2
4599	cmp	ip, r0
4600	bhi	.L559
4601	adds	r3, r3, #1
4602	b	.L556
4603.L559:
4604	uxth	r0, r2
4605	ldrh	ip, [r7, r0, lsl #1]
4606	cmp	ip, r1
4607	bne	.L558
4608	cbz	r1, .L558
4609	ldrh	ip, [r5, r0, lsl #1]
4610	add	ip, ip, #1
4611	strh	ip, [r5, r0, lsl #1]	@ movhi
4612.L558:
4613	adds	r2, r2, #1
4614	b	.L557
4615.L565:
4616	uxth	r1, r6
4617	ldrh	r3, [r5, r1, lsl #1]
4618	lsl	r8, r1, #1
4619	cmp	fp, r3
4620	bls	.L562
4621	ldrh	r0, [r7, r1, lsl #1]
4622	add	r8, r8, r7
4623	cbnz	r0, .L563
4624.L564:
4625	adds	r6, r6, #1
4626	b	.L561
4627.L562:
4628	cmp	r3, #0
4629	bne	.L564
4630	ldrh	r0, [r7, r1, lsl #1]
4631	add	r8, r8, r7
4632	cmp	r0, #0
4633	beq	.L564
4634.L566:
4635	movs	r1, #1
4636	str	r2, [sp, #4]
4637	bl	FtlFreeSysBlkQueueIn
4638	ldr	r2, [sp, #4]
4639	strh	r2, [r8]	@ movhi
4640	ldrh	r3, [r4, #8]
4641	subs	r3, r3, #1
4642	strh	r3, [r4, #8]	@ movhi
4643	b	.L564
4644.L563:
4645	mov	r10, ip
4646	mov	fp, r3
4647	cmp	r3, #0
4648	beq	.L566
4649	b	.L564
4650.L576:
4651	.align	2
4652.L575:
4653	.word	.LANCHOR20
4654	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
4655	.section	.text.FtlL2PDataInit,"ax",%progbits
4656	.align	1
4657	.global	FtlL2PDataInit
4658	.syntax unified
4659	.thumb
4660	.thumb_func
4661	.fpu softvfp
4662	.type	FtlL2PDataInit, %function
4663FtlL2PDataInit:
4664	@ args = 0, pretend = 0, frame = 0
4665	@ frame_needed = 0, uses_anonymous_args = 0
4666	push	{r4, r5, r6, r7, r8, lr}
4667	movs	r1, #0
4668	ldr	r5, .L580
4669	ldr	r4, .L580+4
4670	ldr	r2, [r5]
4671	ldr	r7, .L580+8
4672	ldr	r6, .L580+12
4673	ldr	r0, [r4]
4674	lsls	r2, r2, #1
4675	ldr	r8, .L580+44
4676	bl	ftl_memset
4677	ldrh	r3, [r7]
4678	movs	r1, #255
4679	ldrh	r2, [r6]
4680	ldr	r0, [r8]
4681	muls	r2, r3, r2
4682	bl	ftl_memset
4683	ldr	r3, .L580+16
4684	movw	r0, #65535
4685	ldrh	r1, [r6]
4686	ldr	ip, [r8]
4687	ldr	r2, [r3]
4688	movs	r3, #12
4689	ldrh	r7, [r7]
4690	mla	r3, r1, r3, r3
4691	adds	r1, r2, r3
4692	movs	r3, #0
4693	mov	lr, r3
4694.L578:
4695	adds	r2, r2, #12
4696	adds	r6, r3, r7
4697	cmp	r2, r1
4698	bne	.L579
4699	ldr	r3, .L580+20
4700	ldr	r2, [r5]
4701	strh	r0, [r3, #2]	@ movhi
4702	strh	r2, [r3, #10]	@ movhi
4703	movw	r2, #61634
4704	strh	r2, [r3, #4]	@ movhi
4705	ldr	r2, .L580+24
4706	strh	r0, [r3]	@ movhi
4707	ldrh	r2, [r2]
4708	strh	r2, [r3, #8]	@ movhi
4709	ldr	r2, .L580+28
4710	ldrh	r2, [r2]
4711	strh	r2, [r3, #6]	@ movhi
4712	ldr	r2, .L580+32
4713	ldr	r2, [r2]
4714	str	r2, [r3, #12]
4715	ldr	r2, .L580+36
4716	ldr	r2, [r2]
4717	str	r2, [r3, #16]
4718	ldr	r2, [r4]
4719	str	r2, [r3, #20]
4720	ldr	r2, .L580+40
4721	ldr	r2, [r2]
4722	str	r2, [r3, #24]
4723	pop	{r4, r5, r6, r7, r8, pc}
4724.L579:
4725	bic	r3, r3, #3
4726	str	lr, [r2, #-8]
4727	add	r3, r3, ip
4728	strh	r0, [r2, #-12]	@ movhi
4729	str	r3, [r2, #-4]
4730	mov	r3, r6
4731	b	.L578
4732.L581:
4733	.align	2
4734.L580:
4735	.word	.LANCHOR30
4736	.word	.LANCHOR130
4737	.word	.LANCHOR23
4738	.word	.LANCHOR33
4739	.word	.LANCHOR55
4740	.word	.LANCHOR140
4741	.word	.LANCHOR141
4742	.word	.LANCHOR32
4743	.word	.LANCHOR129
4744	.word	.LANCHOR135
4745	.word	.LANCHOR134
4746	.word	.LANCHOR136
4747	.size	FtlL2PDataInit, .-FtlL2PDataInit
4748	.section	.text.FtlVariablesInit,"ax",%progbits
4749	.align	1
4750	.global	FtlVariablesInit
4751	.syntax unified
4752	.thumb
4753	.thumb_func
4754	.fpu softvfp
4755	.type	FtlVariablesInit, %function
4756FtlVariablesInit:
4757	@ args = 0, pretend = 0, frame = 0
4758	@ frame_needed = 0, uses_anonymous_args = 0
4759	push	{r3, r4, r5, lr}
4760	movw	r2, #65535
4761	ldr	r3, .L583
4762	movs	r4, #0
4763	mov	r1, r4
4764	ldr	r5, .L583+4
4765	strh	r2, [r3]	@ movhi
4766	mov	r2, #-1
4767	ldr	r3, .L583+8
4768	str	r4, [r3]
4769	ldr	r3, .L583+12
4770	str	r4, [r3]
4771	ldr	r3, .L583+16
4772	str	r2, [r3]
4773	ldr	r3, .L583+20
4774	strh	r4, [r3]	@ movhi
4775	ldr	r3, .L583+24
4776	ldrh	r2, [r3]
4777	ldr	r3, .L583+28
4778	lsls	r2, r2, #1
4779	ldr	r0, [r3]
4780	bl	ftl_memset
4781	ldrh	r2, [r5]
4782	mov	r1, r4
4783	ldr	r3, .L583+32
4784	lsls	r2, r2, #1
4785	ldr	r0, [r3]
4786	bl	ftl_memset
4787	ldrh	r2, [r5]
4788	mov	r1, r4
4789	ldr	r3, .L583+36
4790	lsls	r2, r2, #1
4791	ldr	r0, [r3]
4792	bl	ftl_memset
4793	mov	r1, r4
4794	movs	r2, #48
4795	ldr	r0, .L583+40
4796	bl	ftl_memset
4797	mov	r2, #512
4798	mov	r1, r4
4799	ldr	r0, .L583+44
4800	bl	ftl_memset
4801	bl	FtlGcBufInit
4802	bl	FtlL2PDataInit
4803	mov	r0, r4
4804	pop	{r3, r4, r5, pc}
4805.L584:
4806	.align	2
4807.L583:
4808	.word	.LANCHOR142
4809	.word	.LANCHOR6
4810	.word	.LANCHOR143
4811	.word	.LANCHOR144
4812	.word	.LANCHOR145
4813	.word	.LANCHOR35
4814	.word	.LANCHOR27
4815	.word	.LANCHOR36
4816	.word	.LANCHOR43
4817	.word	.LANCHOR126
4818	.word	.LANCHOR39
4819	.word	.LANCHOR81
4820	.size	FtlVariablesInit, .-FtlVariablesInit
4821	.section	.text.SupperBlkListInit,"ax",%progbits
4822	.align	1
4823	.global	SupperBlkListInit
4824	.syntax unified
4825	.thumb
4826	.thumb_func
4827	.fpu softvfp
4828	.type	SupperBlkListInit, %function
4829SupperBlkListInit:
4830	@ args = 0, pretend = 0, frame = 16
4831	@ frame_needed = 0, uses_anonymous_args = 0
4832	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
4833	movs	r2, #6
4834	ldr	r3, .L596
4835	movs	r1, #0
4836	movs	r4, #0
4837	ldr	r6, .L596+4
4838	mov	r8, r4
4839	ldrh	r3, [r3]
4840	mov	r5, r4
4841	ldr	r0, [r6]
4842	mov	r10, r6
4843	muls	r2, r3, r2
4844	bl	ftl_memset
4845	ldr	r3, .L596+8
4846	ldr	r2, .L596+12
4847	str	r4, [r3]
4848	ldr	r3, .L596+16
4849	strh	r4, [r2]	@ movhi
4850	str	r2, [sp, #4]
4851	str	r4, [r3]
4852	ldr	r3, .L596+20
4853	str	r4, [r3]
4854	ldr	r3, .L596+24
4855	mov	fp, r3
4856	strh	r4, [r3]	@ movhi
4857.L586:
4858	ldr	r3, .L596+28
4859	uxth	r7, r4
4860	ldrh	r3, [r3]
4861	cmp	r7, r3
4862	bcs	.L593
4863	ldr	r3, .L596+32
4864	ldrh	r2, [r3]
4865	ldr	r3, .L596+36
4866	ldrh	r3, [r3]
4867	str	r3, [sp]
4868	movs	r3, #0
4869	mov	r6, r3
4870	b	.L594
4871.L588:
4872	str	r2, [sp, #12]
4873	mov	r1, r7
4874	ldr	r2, .L596+40
4875	str	r3, [sp, #8]
4876	ldrb	r0, [r2, r3]	@ zero_extendqisi2
4877	bl	V2P_block
4878	bl	FtlBbmIsBadBlock
4879	ldr	r3, [sp, #8]
4880	ldr	r2, [sp, #12]
4881	cbnz	r0, .L587
4882	ldr	r1, [sp]
4883	add	r6, r6, r1
4884	uxth	r6, r6
4885.L587:
4886	adds	r3, r3, #1
4887.L594:
4888	uxth	r1, r3
4889	cmp	r2, r1
4890	bhi	.L588
4891	uxth	r3, r4
4892	cbz	r6, .L589
4893	mov	r1, r6
4894	str	r3, [sp]
4895	mov	r0, #32768
4896	bl	__aeabi_idiv
4897	ldr	r3, [sp]
4898	uxth	r6, r0
4899.L590:
4900	ldr	r1, [r10]
4901	movs	r2, #6
4902	mla	r2, r2, r3, r1
4903	strh	r6, [r2, #4]	@ movhi
4904	ldr	r2, .L596+44
4905	ldrh	r2, [r2]
4906	cmp	r2, r7
4907	beq	.L591
4908	ldr	r2, .L596+48
4909	ldrh	r2, [r2]
4910	cmp	r2, r7
4911	beq	.L591
4912	ldr	r2, .L596+52
4913	ldrh	r2, [r2]
4914	cmp	r2, r7
4915	beq	.L591
4916	ldr	r2, .L596+56
4917	ldr	r2, [r2]
4918	ldrh	r3, [r2, r3, lsl #1]
4919	cbnz	r3, .L592
4920	add	r8, r8, #1
4921	mov	r0, r7
4922	uxth	r8, r8
4923	bl	INSERT_FREE_LIST
4924.L591:
4925	adds	r4, r4, #1
4926	b	.L586
4927.L589:
4928	ldr	r2, .L596+56
4929	movw	r1, #65535
4930	ldr	r2, [r2]
4931	strh	r1, [r2, r3, lsl #1]	@ movhi
4932	b	.L590
4933.L592:
4934	adds	r5, r5, #1
4935	mov	r0, r7
4936	uxth	r5, r5
4937	bl	INSERT_DATA_LIST
4938	b	.L591
4939.L593:
4940	ldr	r2, [sp, #4]
4941	strh	r8, [fp]	@ movhi
4942	strh	r5, [r2]	@ movhi
4943	add	r5, r5, r8
4944	cmp	r5, r3
4945	ble	.L595
4946	movw	r2, #2170
4947	ldr	r1, .L596+60
4948	ldr	r0, .L596+64
4949	bl	printf
4950.L595:
4951	movs	r0, #0
4952	add	sp, sp, #16
4953	@ sp needed
4954	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4955.L597:
4956	.align	2
4957.L596:
4958	.word	.LANCHOR6
4959	.word	.LANCHOR40
4960	.word	.LANCHOR47
4961	.word	.LANCHOR45
4962	.word	.LANCHOR41
4963	.word	.LANCHOR44
4964	.word	.LANCHOR48
4965	.word	.LANCHOR5
4966	.word	.LANCHOR3
4967	.word	.LANCHOR19
4968	.word	.LANCHOR13
4969	.word	.LANCHOR51
4970	.word	.LANCHOR52
4971	.word	.LANCHOR53
4972	.word	.LANCHOR42
4973	.word	.LANCHOR146
4974	.word	.LC1
4975	.size	SupperBlkListInit, .-SupperBlkListInit
4976	.section	.text.FtlGcPageVarInit,"ax",%progbits
4977	.align	1
4978	.global	FtlGcPageVarInit
4979	.syntax unified
4980	.thumb
4981	.thumb_func
4982	.fpu softvfp
4983	.type	FtlGcPageVarInit, %function
4984FtlGcPageVarInit:
4985	@ args = 0, pretend = 0, frame = 0
4986	@ frame_needed = 0, uses_anonymous_args = 0
4987	ldr	r2, .L599
4988	movs	r3, #0
4989	push	{r4, lr}
4990	movs	r1, #255
4991	ldr	r4, .L599+4
4992	strh	r3, [r2]	@ movhi
4993	ldr	r2, .L599+8
4994	strh	r3, [r2]	@ movhi
4995	ldrh	r2, [r4]
4996	ldr	r3, .L599+12
4997	lsls	r2, r2, #1
4998	ldr	r0, [r3]
4999	bl	ftl_memset
5000	ldrh	r3, [r4]
5001	movs	r2, #12
5002	movs	r1, #255
5003	muls	r2, r3, r2
5004	ldr	r3, .L599+16
5005	ldr	r0, [r3]
5006	bl	ftl_memset
5007	pop	{r4, lr}
5008	b	FtlGcBufInit
5009.L600:
5010	.align	2
5011.L599:
5012	.word	.LANCHOR96
5013	.word	.LANCHOR21
5014	.word	.LANCHOR97
5015	.word	.LANCHOR95
5016	.word	.LANCHOR98
5017	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
5018	.section	.text.FlashGetBadBlockList,"ax",%progbits
5019	.align	1
5020	.global	FlashGetBadBlockList
5021	.syntax unified
5022	.thumb
5023	.thumb_func
5024	.fpu softvfp
5025	.type	FlashGetBadBlockList, %function
5026FlashGetBadBlockList:
5027	@ args = 0, pretend = 0, frame = 0
5028	@ frame_needed = 0, uses_anonymous_args = 0
5029	push	{r3, r4, r5, lr}
5030	mov	r2, #256
5031	mov	r5, r1
5032	movs	r1, #255
5033	mov	r4, r0
5034	bl	ftl_memset
5035	ldr	r3, .L608
5036	mov	r1, r5
5037	mov	r0, r4
5038	ldr	r3, [r3]
5039	blx	r3
5040	uxth	r0, r0
5041	cmp	r0, #50
5042	bls	.L602
5043	mov	r2, #256
5044	movs	r1, #255
5045	mov	r0, r4
5046	bl	ftl_memset
5047	movs	r0, #0
5048.L602:
5049	ldr	r3, .L608+4
5050	ldrh	r3, [r3, #14]
5051	cmp	r3, #4
5052	bne	.L607
5053	add	r1, r4, r0, lsl #1
5054	mov	r3, r4
5055.L604:
5056	cmp	r3, r1
5057	bne	.L605
5058.L607:
5059	pop	{r3, r4, r5, pc}
5060.L605:
5061	ldrh	r2, [r3]
5062	lsrs	r2, r2, #1
5063	strh	r2, [r3], #2	@ movhi
5064	b	.L604
5065.L609:
5066	.align	2
5067.L608:
5068	.word	.LANCHOR105
5069	.word	.LANCHOR0
5070	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
5071	.section	.text.ftl_memcpy,"ax",%progbits
5072	.align	1
5073	.global	ftl_memcpy
5074	.syntax unified
5075	.thumb
5076	.thumb_func
5077	.fpu softvfp
5078	.type	ftl_memcpy, %function
5079ftl_memcpy:
5080	@ args = 0, pretend = 0, frame = 0
5081	@ frame_needed = 0, uses_anonymous_args = 0
5082	@ link register save eliminated.
5083	b	memcpy
5084	.size	ftl_memcpy, .-ftl_memcpy
5085	.section	.text.FlashReadPages,"ax",%progbits
5086	.align	1
5087	.global	FlashReadPages
5088	.syntax unified
5089	.thumb
5090	.thumb_func
5091	.fpu softvfp
5092	.type	FlashReadPages, %function
5093FlashReadPages:
5094	@ args = 0, pretend = 0, frame = 16
5095	@ frame_needed = 0, uses_anonymous_args = 0
5096	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
5097	mov	fp, r1
5098	ldr	r3, .L639
5099	mov	r4, r0
5100	mov	r10, #0
5101	ldrh	r2, [r3, #12]
5102	str	r3, [sp, #4]
5103	str	r2, [sp]
5104.L612:
5105	cmp	r10, fp
5106	bne	.L623
5107	movs	r0, #0
5108	add	sp, sp, #16
5109	@ sp needed
5110	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5111.L623:
5112	ldr	r3, [r4, #8]
5113	cbz	r3, .L613
5114	ldr	r3, [r4, #12]
5115	cbnz	r3, .L614
5116.L613:
5117	movs	r2, #90
5118	ldr	r1, .L639+4
5119	ldr	r0, .L639+8
5120	bl	printf
5121.L614:
5122	add	r2, sp, #8
5123	add	r1, sp, #12
5124	ldr	r0, [r4, #4]
5125	bl	l2p_addr_tran.isra.0
5126	ldr	r0, [sp, #8]
5127	cmp	r0, #3
5128	bls	.L615
5129	mov	r3, #-1
5130	str	r3, [r4]
5131.L616:
5132	add	r10, r10, #1
5133	adds	r4, r4, #20
5134	b	.L612
5135.L615:
5136	ldr	r5, [r4, #8]
5137	uxtb	r0, r0
5138	ldr	r8, .L639+20
5139	ldr	r7, .L639+12
5140	tst	r5, #63
5141	ldr	r3, [r4, #12]
5142	it	ne
5143	ldrne	r5, [r8]
5144	ldr	r1, [sp, #12]
5145	ldr	r6, [r7, #12]
5146	mov	r2, r5
5147	blx	r6
5148	ldr	r3, [sp, #4]
5149	str	r0, [r4]
5150	ldrh	r3, [r3, #14]
5151	cmp	r3, #4
5152	bne	.L619
5153	ldr	r0, [sp]
5154	add	r2, r5, #2048
5155	ldr	r3, [r4, #12]
5156	ldr	r1, [sp, #12]
5157	ldr	r7, [r7, #12]
5158	adds	r3, r3, #8
5159	add	r1, r1, r0
5160	ldrb	r0, [sp, #8]	@ zero_extendqisi2
5161	blx	r7
5162	adds	r3, r0, #1
5163	beq	.L620
5164	ldr	r3, [r4, #12]
5165	ldr	r2, [r3, #12]
5166	adds	r2, r2, #1
5167	bne	.L621
5168	ldr	r2, [r3, #8]
5169	adds	r2, r2, #1
5170	bne	.L621
5171	ldr	r3, [r3]
5172	adds	r3, r3, #1
5173	beq	.L621
5174.L620:
5175	mov	r3, #-1
5176	str	r3, [r4]
5177.L621:
5178	ldr	r3, [r4]
5179	adds	r3, r3, #1
5180	beq	.L619
5181	cmp	r0, #256
5182	it	eq
5183	streq	r0, [r4]
5184.L619:
5185	ldr	r3, [r8]
5186	cmp	r5, r3
5187	bne	.L616
5188	ldr	r0, [r4, #8]
5189	cmp	r5, r0
5190	beq	.L616
5191	ldr	r3, .L639+16
5192	mov	r1, r5
5193	ldrh	r2, [r3]
5194	lsls	r2, r2, #9
5195	bl	ftl_memcpy
5196	b	.L616
5197.L640:
5198	.align	2
5199.L639:
5200	.word	.LANCHOR0
5201	.word	.LANCHOR147
5202	.word	.LC1
5203	.word	.LANCHOR105
5204	.word	.LANCHOR12
5205	.word	.LANCHOR120
5206	.size	FlashReadPages, .-FlashReadPages
5207	.section	.text.FtlLoadFactoryBbt,"ax",%progbits
5208	.align	1
5209	.global	FtlLoadFactoryBbt
5210	.syntax unified
5211	.thumb
5212	.thumb_func
5213	.fpu softvfp
5214	.type	FtlLoadFactoryBbt, %function
5215FtlLoadFactoryBbt:
5216	@ args = 0, pretend = 0, frame = 0
5217	@ frame_needed = 0, uses_anonymous_args = 0
5218	ldr	r3, .L651
5219	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5220	movs	r6, #0
5221	ldr	r5, .L651+4
5222	ldr	r3, [r3]
5223	ldr	r7, .L651+8
5224	ldr	r10, .L651+20
5225	str	r3, [r5, #8]
5226	ldr	r3, .L651+12
5227	ldr	r8, [r3]
5228	str	r8, [r5, #12]
5229.L642:
5230	ldr	r3, .L651+16
5231	ldrh	r3, [r3]
5232	cmp	r6, r3
5233	bcc	.L647
5234	movs	r0, #0
5235	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5236.L647:
5237	ldrh	r4, [r10]
5238	movw	r3, #65535
5239	ldr	fp, .L651+4
5240	strh	r3, [r7, #2]!	@ movhi
5241	subs	r4, r4, #1
5242	uxth	r4, r4
5243.L643:
5244	ldrh	r3, [r10]
5245	sub	r2, r3, #15
5246	cmp	r2, r4
5247	bgt	.L645
5248	mla	r3, r6, r3, r4
5249	movs	r2, #1
5250	mov	r1, r2
5251	mov	r0, fp
5252	lsls	r3, r3, #10
5253	str	r3, [r5, #4]
5254	bl	FlashReadPages
5255	ldr	r3, [r5]
5256	adds	r3, r3, #1
5257	beq	.L644
5258	ldrh	r2, [r8]
5259	movw	r3, #61664
5260	cmp	r2, r3
5261	bne	.L644
5262	strh	r4, [r7]	@ movhi
5263.L645:
5264	adds	r6, r6, #1
5265	b	.L642
5266.L644:
5267	subs	r4, r4, #1
5268	uxth	r4, r4
5269	b	.L643
5270.L652:
5271	.align	2
5272.L651:
5273	.word	.LANCHOR115
5274	.word	.LANCHOR148
5275	.word	.LANCHOR37+10
5276	.word	.LANCHOR123
5277	.word	.LANCHOR10
5278	.word	.LANCHOR17
5279	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
5280	.section	.text.FtlGetLastWrittenPage,"ax",%progbits
5281	.align	1
5282	.global	FtlGetLastWrittenPage
5283	.syntax unified
5284	.thumb
5285	.thumb_func
5286	.fpu softvfp
5287	.type	FtlGetLastWrittenPage, %function
5288FtlGetLastWrittenPage:
5289	@ args = 0, pretend = 0, frame = 88
5290	@ frame_needed = 0, uses_anonymous_args = 0
5291	cmp	r1, #1
5292	push	{r4, r5, r6, r7, r8, lr}
5293	it	eq
5294	ldreq	r3, .L665
5295	sub	sp, sp, #88
5296	lsl	r7, r0, #10
5297	mov	r2, r1
5298	it	ne
5299	ldrne	r3, .L665+4
5300	mov	r6, r1
5301	add	r0, sp, #4
5302	movs	r1, #1
5303	ldrh	r5, [r3]
5304	ldr	r3, .L665+8
5305	subs	r5, r5, #1
5306	ldr	r3, [r3]
5307	sxth	r5, r5
5308	str	r3, [sp, #12]
5309	add	r3, sp, #24
5310	str	r3, [sp, #16]
5311	orr	r3, r5, r7
5312	str	r3, [sp, #8]
5313	bl	FlashReadPages
5314	ldr	r3, [sp, #24]
5315	adds	r3, r3, #1
5316	bne	.L656
5317	mov	r8, #0
5318.L657:
5319	cmp	r8, r5
5320	ble	.L660
5321.L656:
5322	mov	r0, r5
5323	add	sp, sp, #88
5324	@ sp needed
5325	pop	{r4, r5, r6, r7, r8, pc}
5326.L660:
5327	add	r3, r8, r5
5328	mov	r2, r6
5329	add	r3, r3, r3, lsr #31
5330	movs	r1, #1
5331	add	r0, sp, #4
5332	asrs	r4, r3, #1
5333	sxth	r3, r4
5334	orrs	r3, r3, r7
5335	str	r3, [sp, #8]
5336	bl	FlashReadPages
5337	ldr	r3, [sp, #24]
5338	adds	r3, r3, #1
5339	bne	.L658
5340	ldr	r3, [sp, #28]
5341	adds	r3, r3, #1
5342	bne	.L658
5343	ldr	r3, [sp, #4]
5344	adds	r3, r3, #1
5345	beq	.L658
5346	subs	r4, r4, #1
5347	sxth	r5, r4
5348	b	.L657
5349.L658:
5350	adds	r4, r4, #1
5351	sxth	r8, r4
5352	b	.L657
5353.L666:
5354	.align	2
5355.L665:
5356	.word	.LANCHOR20
5357	.word	.LANCHOR19
5358	.word	.LANCHOR121
5359	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
5360	.section	.text.FtlScanSysBlk,"ax",%progbits
5361	.align	1
5362	.global	FtlScanSysBlk
5363	.syntax unified
5364	.thumb
5365	.thumb_func
5366	.fpu softvfp
5367	.type	FtlScanSysBlk, %function
5368FtlScanSysBlk:
5369	@ args = 0, pretend = 0, frame = 32
5370	@ frame_needed = 0, uses_anonymous_args = 0
5371	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5372	movs	r4, #0
5373	ldr	r5, .L748
5374	sub	sp, sp, #32
5375	mov	r1, r4
5376	ldr	r3, .L748+4
5377	ldr	r2, [r5]
5378	ldr	r6, .L748+8
5379	strh	r4, [r3]	@ movhi
5380	ldr	r3, .L748+12
5381	lsls	r2, r2, #2
5382	strh	r4, [r6]	@ movhi
5383	ldr	r7, .L748+16
5384	ldr	r0, [r3]
5385	bl	ftl_memset
5386	ldr	r2, [r5]
5387	mov	r1, r4
5388	ldr	r3, .L748+20
5389	lsls	r2, r2, #1
5390	ldr	r0, [r3]
5391	bl	ftl_memset
5392	ldrh	r2, [r7]
5393	mov	r1, r4
5394	ldr	r3, .L748+24
5395	lsls	r2, r2, #2
5396	ldr	r0, [r3]
5397	bl	ftl_memset
5398	ldrh	r2, [r7]
5399	mov	r1, r4
5400	ldr	r3, .L748+28
5401	lsls	r2, r2, #1
5402	ldr	r0, [r3]
5403	bl	ftl_memset
5404	movs	r2, #12
5405	movs	r1, #255
5406	ldr	r0, .L748+32
5407	bl	ftl_memset
5408	ldr	r3, .L748+36
5409	str	r6, [sp, #12]
5410	str	r5, [sp, #16]
5411	ldrh	r3, [r3]
5412	str	r3, [sp, #4]
5413.L668:
5414	ldr	r3, .L748+40
5415	ldr	r2, [sp, #4]
5416	ldrh	r3, [r3]
5417	cmp	r3, r2
5418	bls	.L709
5419	ldr	r3, .L748+44
5420	movs	r5, #0
5421	ldr	r1, .L748+48
5422	mov	fp, r5
5423	movs	r7, #20
5424	ldrh	r8, [r3]
5425	ldr	r3, .L748+52
5426	ldr	r2, [r1]
5427	ldr	r1, .L748+56
5428	ldr	r6, [r3]
5429	ldr	r3, .L748+60
5430	str	r2, [sp, #8]
5431	ldrh	r10, [r1]
5432	ldr	r3, [r3]
5433	ldr	r2, .L748+64
5434	b	.L710
5435.L670:
5436	ldrb	r0, [r2, r5]	@ zero_extendqisi2
5437	ldr	r1, [sp, #4]
5438	str	r3, [sp, #28]
5439	str	r2, [sp, #24]
5440	bl	V2P_block
5441	str	r0, [sp, #20]
5442	bl	FtlBbmIsBadBlock
5443	ldr	r2, [sp, #24]
5444	ldr	r3, [sp, #28]
5445	cbnz	r0, .L669
5446	ldr	r1, [sp, #20]
5447	mla	r0, r7, fp, r6
5448	ldr	r4, [sp, #8]
5449	lsls	r1, r1, #10
5450	str	r3, [r0, #8]
5451	str	r1, [r0, #4]
5452	mul	r1, r10, fp
5453	bic	r1, r1, #3
5454	add	r1, r1, r4
5455	str	r1, [r0, #12]
5456	add	r1, fp, #1
5457	uxth	fp, r1
5458.L669:
5459	adds	r5, r5, #1
5460.L710:
5461	uxth	r1, r5
5462	cmp	r8, r1
5463	bhi	.L670
5464	cmp	fp, #0
5465	bne	.L671
5466.L708:
5467	ldr	r3, [sp, #4]
5468	adds	r3, r3, #1
5469	uxth	r3, r3
5470	str	r3, [sp, #4]
5471	b	.L668
5472.L671:
5473	movs	r7, #0
5474	movs	r2, #1
5475	mov	r1, fp
5476	mov	r0, r6
5477	bl	FlashReadPages
5478.L672:
5479	uxth	r3, r7
5480	cmp	fp, r3
5481	bls	.L708
5482	ldr	r3, .L748+52
5483	mov	r8, #20
5484	mul	r8, r8, r7
5485	ldr	r3, [r3]
5486	add	r2, r3, r8
5487	ldr	r3, [r3, r8]
5488	ldr	r5, [r2, #4]
5489	ldr	r6, [r2, #12]
5490	adds	r3, r3, #1
5491	ubfx	r5, r5, #10, #16
5492	bne	.L675
5493	mov	r10, #16
5494.L677:
5495	ldr	r3, .L748+52
5496	movs	r2, #1
5497	mov	r1, r2
5498	ldr	r0, [r3]
5499	add	r0, r0, r8
5500	ldr	r3, [r0, #4]
5501	adds	r3, r3, #1
5502	str	r3, [r0, #4]
5503	bl	FlashReadPages
5504	ldrh	r2, [r6]
5505	movw	r3, #65535
5506	cmp	r2, r3
5507	ldr	r3, .L748+52
5508	ldr	r3, [r3]
5509	bne	.L674
5510	mov	r2, #-1
5511	str	r2, [r3, r8]
5512	ldr	r3, .L748+52
5513	ldr	r3, [r3]
5514	ldr	r3, [r3, r8]
5515	cmp	r3, r2
5516	bne	.L675
5517.L676:
5518	movs	r1, #1
5519	b	.L747
5520.L674:
5521	ldr	r3, [r3, r8]
5522	adds	r3, r3, #1
5523	bne	.L675
5524	add	r10, r10, #-1
5525	uxth	r10, r10
5526	cmp	r10, #0
5527	bne	.L677
5528	b	.L676
5529.L675:
5530	ldr	r3, .L748+68
5531	ldr	r2, [r3]
5532	ldr	r3, [r6, #4]
5533	adds	r1, r2, #1
5534	beq	.L678
5535	cmp	r2, r3
5536	bhi	.L679
5537.L678:
5538	adds	r2, r3, #1
5539	ittt	ne
5540	ldrne	r1, .L748+68
5541	addne	r2, r3, #1
5542	strne	r2, [r1]
5543.L679:
5544	ldrh	r2, [r6]
5545	movw	r1, #61604
5546	cmp	r2, r1
5547	beq	.L681
5548	bhi	.L682
5549	movw	r3, #61574
5550	cmp	r2, r3
5551	beq	.L683
5552.L680:
5553	adds	r7, r7, #1
5554	b	.L672
5555.L682:
5556	movw	r3, #61634
5557	cmp	r2, r3
5558	beq	.L684
5559	movw	r3, #65535
5560	cmp	r2, r3
5561	bne	.L680
5562	movs	r1, #0
5563.L747:
5564	mov	r0, r5
5565	bl	FtlFreeSysBlkQueueIn
5566	b	.L680
5567.L684:
5568	ldr	r3, .L748+8
5569	ldrh	r2, [r3]
5570	ldr	r3, .L748
5571	ldr	r3, [r3]
5572	cmp	r2, r3
5573	bls	.L686
5574	movw	r2, #1222
5575	ldr	r1, .L748+72
5576	ldr	r0, .L748+76
5577	bl	printf
5578.L686:
5579	ldr	r3, [sp, #16]
5580	ldr	r2, [sp, #12]
5581	ldr	r1, [r3]
5582	ldrh	r0, [r2]
5583	ldr	r2, .L748+12
5584	uxth	r10, r1
5585	ldr	ip, [r2]
5586	add	r3, r10, #-1
5587	sub	r10, r10, r0
5588	add	r10, r10, #-1
5589	sxth	r3, r3
5590	sxth	r10, r10
5591.L687:
5592	cmp	r3, r10
5593	bgt	.L693
5594	cmp	r3, #0
5595	bge	.L725
5596	b	.L680
5597.L693:
5598	ldr	r2, [ip, r3, lsl #2]
5599	add	r8, ip, r3, lsl #2
5600	ldr	r4, [r6, #4]
5601	cmp	r4, r2
5602	bls	.L688
5603	ldr	r2, [ip]
5604	cbnz	r2, .L689
5605	cmp	r1, r0
5606	ittt	ne
5607	ldrne	r2, .L748+8
5608	addne	r0, r0, #1
5609	strhne	r0, [r2]	@ movhi
5610.L689:
5611	ldr	r2, .L748+20
5612	uxth	r10, r3
5613	ldr	r0, [r2]
5614	movs	r2, #0
5615.L690:
5616	uxth	lr, r2
5617	sxth	r1, r2
5618	cmp	r10, lr
5619	bhi	.L691
5620	ldr	r2, [r6, #4]
5621	cmp	r3, #0
5622	str	r2, [r8]
5623	strh	r5, [r0, r3, lsl #1]	@ movhi
5624	blt	.L680
5625	ldr	r2, .L748+8
5626	ldrh	r0, [r2]
5627	ldr	r2, .L748
5628	ldr	r2, [r2]
5629	subs	r2, r2, r0
5630	subs	r2, r2, #1
5631	sxth	r2, r2
5632	cmp	r3, r2
5633	bgt	.L680
5634.L725:
5635	ldr	r2, .L748+8
5636	adds	r0, r0, #1
5637	strh	r0, [r2]	@ movhi
5638	ldr	r2, [r6, #4]
5639	str	r2, [ip, r3, lsl #2]
5640	ldr	r2, .L748+20
5641.L745:
5642	ldr	r2, [r2]
5643	strh	r5, [r2, r3, lsl #1]	@ movhi
5644	b	.L680
5645.L691:
5646	add	lr, ip, r1, lsl #2
5647	adds	r2, r2, #1
5648	ldr	r4, [lr, #4]
5649	add	lr, r0, r1, lsl #1
5650	ldrh	lr, [lr, #2]
5651	str	r4, [ip, r1, lsl #2]
5652	strh	lr, [r0, r1, lsl #1]	@ movhi
5653	b	.L690
5654.L688:
5655	subs	r3, r3, #1
5656	sxth	r3, r3
5657	b	.L687
5658.L749:
5659	.align	2
5660.L748:
5661	.word	.LANCHOR30
5662	.word	.LANCHOR35
5663	.word	.LANCHOR141
5664	.word	.LANCHOR135
5665	.word	.LANCHOR27
5666	.word	.LANCHOR129
5667	.word	.LANCHOR132
5668	.word	.LANCHOR36
5669	.word	.LANCHOR79
5670	.word	.LANCHOR5
5671	.word	.LANCHOR6
5672	.word	.LANCHOR3
5673	.word	.LANCHOR92
5674	.word	.LANCHOR112
5675	.word	.LANCHOR24
5676	.word	.LANCHOR91
5677	.word	.LANCHOR13
5678	.word	.LANCHOR70
5679	.word	.LANCHOR149
5680	.word	.LC1
5681.L683:
5682	ldr	r8, .L750+12
5683	ldr	r10, .L750+20
5684	ldrh	r2, [r8]
5685	ldrh	r3, [r10]
5686	cmp	r2, r3
5687	bls	.L696
5688	movw	r2, #1263
5689	ldr	r1, .L750
5690	ldr	r0, .L750+4
5691	bl	printf
5692.L696:
5693	ldr	r2, .L750+8
5694	ldrh	lr, [r10]
5695	ldrh	ip, [r8]
5696	ldr	r0, [r2]
5697	add	r10, lr, #-1
5698	sxth	r3, r10
5699	sub	r10, r10, ip
5700.L697:
5701	cmp	r3, r10
5702	ble	.L702
5703	ldr	r1, [r6, #4]
5704	add	r8, r0, r3, lsl #2
5705	ldr	r2, [r0, r3, lsl #2]
5706	cmp	r1, r2
5707	bls	.L698
5708	ldr	r2, [r0]
5709	cbnz	r2, .L699
5710	cmp	lr, ip
5711	ittt	ne
5712	ldrne	r2, .L750+12
5713	addne	ip, ip, #1
5714	strhne	ip, [r2]	@ movhi
5715.L699:
5716	ldr	r2, .L750+16
5717	uxth	r10, r3
5718	ldr	ip, [r2]
5719	movs	r2, #0
5720.L700:
5721	uxth	lr, r2
5722	sxth	r1, r2
5723	cmp	r10, lr
5724	bhi	.L701
5725	ldr	r2, [r6, #4]
5726	str	r2, [r8]
5727	strh	r5, [ip, r3, lsl #1]	@ movhi
5728.L702:
5729	cmp	r3, #0
5730	blt	.L680
5731	ldr	r2, .L750+20
5732	ldr	ip, .L750+12
5733	ldrh	r2, [r2]
5734	ldrh	r1, [ip]
5735	subs	r2, r2, #1
5736	subs	r2, r2, r1
5737	sxth	r2, r2
5738	cmp	r3, r2
5739	bgt	.L680
5740	ldr	r2, [r6, #4]
5741	adds	r1, r1, #1
5742	strh	r1, [ip]	@ movhi
5743	str	r2, [r0, r3, lsl #2]
5744	ldr	r2, .L750+16
5745	b	.L745
5746.L701:
5747	add	lr, r0, r1, lsl #2
5748	adds	r2, r2, #1
5749	ldr	r4, [lr, #4]
5750	add	lr, ip, r1, lsl #1
5751	ldrh	lr, [lr, #2]
5752	str	r4, [r0, r1, lsl #2]
5753	strh	lr, [ip, r1, lsl #1]	@ movhi
5754	b	.L700
5755.L698:
5756	subs	r3, r3, #1
5757	sxth	r3, r3
5758	b	.L697
5759.L681:
5760	ldr	r8, .L750+40
5761	movw	r2, #65535
5762	ldrh	r1, [r8]
5763	cmp	r1, r2
5764	bne	.L704
5765.L746:
5766	strh	r5, [r8]	@ movhi
5767	str	r3, [r8, #8]
5768	b	.L680
5769.L704:
5770	ldrh	r0, [r8, #4]
5771	cmp	r0, r2
5772	beq	.L705
5773	movs	r1, #1
5774	bl	FtlFreeSysBlkQueueIn
5775.L705:
5776	ldr	r3, [r6, #4]
5777	ldr	r2, [r8, #8]
5778	cmp	r2, r3
5779	bcs	.L706
5780	ldrh	r2, [r8]
5781	strh	r2, [r8, #4]	@ movhi
5782	b	.L746
5783.L706:
5784	strh	r5, [r8, #4]	@ movhi
5785	b	.L680
5786.L709:
5787	ldr	r3, .L750+24
5788	ldr	r2, [r3]
5789	ldrh	r3, [r2]
5790	cbz	r3, .L711
5791.L714:
5792	ldr	r3, .L750+16
5793	ldr	r4, [r3]
5794	ldrh	r2, [r4]
5795	cmp	r2, #0
5796	beq	.L712
5797.L713:
5798	ldr	r3, .L750+28
5799	ldrh	r2, [r3]
5800	ldr	r3, .L750+32
5801	ldr	r3, [r3]
5802	cmp	r2, r3
5803	bls	.L744
5804	movw	r2, #1388
5805	ldr	r1, .L750
5806	ldr	r0, .L750+4
5807	bl	printf
5808.L744:
5809	movs	r0, #0
5810	add	sp, sp, #32
5811	@ sp needed
5812	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5813.L711:
5814	ldr	r1, .L750+28
5815	ldrh	r1, [r1]
5816	cmp	r1, #0
5817	beq	.L714
5818	ldr	r5, .L750+32
5819	ldr	r0, [r5]
5820.L715:
5821	sxth	r1, r3
5822	cmp	r1, r0
5823	bcs	.L714
5824	ldrh	r4, [r2, r1, lsl #1]
5825	adds	r3, r3, #1
5826	cmp	r4, #0
5827	beq	.L715
5828	ldr	r3, .L750+36
5829	movs	r6, #0
5830	ldr	r0, [r3]
5831	mov	r3, r1
5832.L716:
5833	ldr	r4, [r5]
5834	cmp	r3, r4
5835	bcs	.L714
5836	ldrh	r7, [r2, r3, lsl #1]
5837	subs	r4, r3, r1
5838	strh	r7, [r2, r4, lsl #1]	@ movhi
5839	ldr	r7, [r0, r3, lsl #2]
5840	str	r7, [r0, r4, lsl #2]
5841	strh	r6, [r2, r3, lsl #1]	@ movhi
5842	adds	r3, r3, #1
5843	sxth	r3, r3
5844	b	.L716
5845.L712:
5846	ldr	r3, .L750+12
5847	ldrh	r3, [r3]
5848	cmp	r3, #0
5849	beq	.L713
5850	ldr	r5, .L750+20
5851	ldrh	r1, [r5]
5852.L721:
5853	sxth	r3, r2
5854	cmp	r3, r1
5855	mov	r6, r3
5856	bge	.L713
5857	ldrh	r0, [r4, r3, lsl #1]
5858	adds	r2, r2, #1
5859	cmp	r0, #0
5860	beq	.L721
5861	ldr	r2, .L750+8
5862	movs	r0, #0
5863	ldr	r2, [r2]
5864.L722:
5865	ldrh	r1, [r5]
5866	cmp	r3, r1
5867	bge	.L713
5868	ldrh	r7, [r4, r3, lsl #1]
5869	subs	r1, r3, r6
5870	strh	r7, [r4, r1, lsl #1]	@ movhi
5871	ldr	r7, [r2, r3, lsl #2]
5872	str	r7, [r2, r1, lsl #2]
5873	adds	r1, r3, #1
5874	strh	r0, [r4, r3, lsl #1]	@ movhi
5875	sxth	r3, r1
5876	b	.L722
5877.L751:
5878	.align	2
5879.L750:
5880	.word	.LANCHOR149
5881	.word	.LC1
5882	.word	.LANCHOR132
5883	.word	.LANCHOR35
5884	.word	.LANCHOR36
5885	.word	.LANCHOR27
5886	.word	.LANCHOR129
5887	.word	.LANCHOR141
5888	.word	.LANCHOR30
5889	.word	.LANCHOR135
5890	.word	.LANCHOR79
5891	.size	FtlScanSysBlk, .-FtlScanSysBlk
5892	.section	.text.FtlLoadBbt,"ax",%progbits
5893	.align	1
5894	.global	FtlLoadBbt
5895	.syntax unified
5896	.thumb
5897	.thumb_func
5898	.fpu softvfp
5899	.type	FtlLoadBbt, %function
5900FtlLoadBbt:
5901	@ args = 0, pretend = 0, frame = 0
5902	@ frame_needed = 0, uses_anonymous_args = 0
5903	push	{r3, r4, r5, r6, r7, r8, r10, lr}
5904	ldr	r8, .L781+40
5905	ldr	r4, .L781
5906	ldr	r3, [r8]
5907	ldr	r7, .L781+4
5908	mov	r10, r4
5909	str	r3, [r4, #8]
5910	ldr	r3, .L781+8
5911	ldr	r6, [r3]
5912	str	r6, [r4, #12]
5913	bl	FtlBbtMemInit
5914	ldrh	r5, [r7]
5915	subs	r5, r5, #1
5916	uxth	r5, r5
5917.L753:
5918	ldrh	r3, [r7]
5919	subs	r3, r3, #15
5920	cmp	r3, r5
5921	bgt	.L756
5922	lsls	r3, r5, #10
5923	movs	r2, #1
5924	mov	r1, r2
5925	mov	r0, r10
5926	str	r3, [r4, #4]
5927	bl	FlashReadPages
5928	ldr	r3, [r4]
5929	adds	r3, r3, #1
5930	bne	.L754
5931	ldr	r3, [r4, #4]
5932	movs	r2, #1
5933	mov	r1, r2
5934	mov	r0, r10
5935	adds	r3, r3, #1
5936	str	r3, [r4, #4]
5937	bl	FlashReadPages
5938.L754:
5939	ldr	r3, [r4]
5940	adds	r3, r3, #1
5941	beq	.L755
5942	ldrh	r2, [r6]
5943	movw	r3, #61649
5944	cmp	r2, r3
5945	bne	.L755
5946	ldr	r3, .L781+12
5947	ldr	r2, [r6, #4]
5948	strh	r5, [r3]	@ movhi
5949	str	r2, [r3, #8]
5950	ldrh	r2, [r6, #8]
5951	strh	r2, [r3, #4]	@ movhi
5952.L756:
5953	ldr	r5, .L781+12
5954	movw	r2, #65535
5955	ldrh	r3, [r5]
5956	cmp	r3, r2
5957	beq	.L770
5958	ldrh	r3, [r5, #4]
5959	cmp	r3, r2
5960	beq	.L760
5961	lsls	r3, r3, #10
5962	movs	r2, #1
5963	mov	r1, r2
5964	ldr	r0, .L781
5965	str	r3, [r4, #4]
5966	bl	FlashReadPages
5967	ldr	r3, [r4]
5968	adds	r3, r3, #1
5969	beq	.L760
5970	ldrh	r2, [r6]
5971	movw	r3, #61649
5972	cmp	r2, r3
5973	bne	.L760
5974	ldr	r3, [r6, #4]
5975	ldr	r2, [r5, #8]
5976	cmp	r3, r2
5977	bls	.L760
5978	ldrh	r2, [r5, #4]
5979	str	r3, [r5, #8]
5980	ldrh	r3, [r6, #8]
5981	strh	r2, [r5]	@ movhi
5982	strh	r3, [r5, #4]	@ movhi
5983.L760:
5984	ldr	r10, .L781
5985	movs	r1, #1
5986	ldrh	r0, [r5]
5987	bl	FtlGetLastWrittenPage
5988	sxth	r7, r0
5989	adds	r0, r0, #1
5990	strh	r0, [r5, #2]	@ movhi
5991.L762:
5992	cmp	r7, #0
5993	bge	.L765
5994	movs	r2, #253
5995	ldr	r1, .L781+16
5996	ldr	r0, .L781+20
5997	bl	printf
5998.L764:
5999	ldrh	r3, [r6, #10]
6000	ldrh	r0, [r6, #12]
6001	strh	r3, [r5, #6]	@ movhi
6002	movw	r3, #65535
6003	cmp	r0, r3
6004	beq	.L767
6005	ldr	r3, .L781+24
6006	ldr	r2, [r3]
6007	cmp	r0, r2
6008	beq	.L767
6009	ldr	r3, .L781+28
6010	ldrh	r3, [r3]
6011	lsrs	r3, r3, #2
6012	cmp	r2, r3
6013	bcs	.L767
6014	cmp	r0, r3
6015	bcs	.L767
6016	bl	FtlSysBlkNumInit
6017.L767:
6018	ldr	r6, .L781+32
6019	movs	r5, #0
6020	ldr	r7, .L781+36
6021	ldr	r8, .L781+44
6022.L768:
6023	ldrh	r3, [r7]
6024	cmp	r5, r3
6025	bcc	.L769
6026	movs	r0, #0
6027	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
6028.L755:
6029	subs	r5, r5, #1
6030	uxth	r5, r5
6031	b	.L753
6032.L765:
6033	ldrh	r3, [r5]
6034	movs	r2, #1
6035	mov	r1, r2
6036	mov	r0, r10
6037	orr	r3, r7, r3, lsl #10
6038	str	r3, [r4, #4]
6039	ldr	r3, [r8]
6040	str	r3, [r4, #8]
6041	bl	FlashReadPages
6042	ldr	r3, [r4]
6043	adds	r3, r3, #1
6044	beq	.L763
6045	ldrh	r2, [r6]
6046	movw	r3, #61649
6047	cmp	r2, r3
6048	beq	.L764
6049.L763:
6050	subs	r7, r7, #1
6051	sxth	r7, r7
6052	b	.L762
6053.L769:
6054	ldrh	r2, [r8]
6055	ldr	r1, [r4, #8]
6056	ldr	r0, [r6, #4]!
6057	lsls	r2, r2, #2
6058	mla	r1, r5, r2, r1
6059	adds	r5, r5, #1
6060	bl	ftl_memcpy
6061	b	.L768
6062.L770:
6063	mov	r0, #-1
6064	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
6065.L782:
6066	.align	2
6067.L781:
6068	.word	.LANCHOR148
6069	.word	.LANCHOR17
6070	.word	.LANCHOR123
6071	.word	.LANCHOR37
6072	.word	.LANCHOR150
6073	.word	.LC1
6074	.word	.LANCHOR2
6075	.word	.LANCHOR6
6076	.word	.LANCHOR37+24
6077	.word	.LANCHOR10
6078	.word	.LANCHOR115
6079	.word	.LANCHOR137
6080	.size	FtlLoadBbt, .-FtlLoadBbt
6081	.section	.text.FtlLoadSysInfo,"ax",%progbits
6082	.align	1
6083	.global	FtlLoadSysInfo
6084	.syntax unified
6085	.thumb
6086	.thumb_func
6087	.fpu softvfp
6088	.type	FtlLoadSysInfo, %function
6089FtlLoadSysInfo:
6090	@ args = 0, pretend = 0, frame = 8
6091	@ frame_needed = 0, uses_anonymous_args = 0
6092	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6093	movs	r1, #0
6094	ldr	r8, .L804+136
6095	ldr	r5, .L804
6096	ldr	r3, [r8]
6097	ldr	r4, .L804+4
6098	ldr	r10, .L804+140
6099	ldrh	r2, [r5]
6100	ldr	r7, .L804+8
6101	str	r3, [r4, #8]
6102	ldr	r6, .L804+12
6103	ldr	r3, [r10]
6104	lsls	r2, r2, #1
6105	ldr	r0, [r7]
6106	str	r3, [r4, #12]
6107	bl	ftl_memset
6108	ldrh	r0, [r6]
6109	movw	r3, #65535
6110	str	r7, [sp]
6111	cmp	r0, r3
6112	bne	.L784
6113.L792:
6114	mov	r0, #-1
6115.L783:
6116	add	sp, sp, #8
6117	@ sp needed
6118	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6119.L784:
6120	movs	r1, #1
6121	mov	fp, r4
6122	bl	FtlGetLastWrittenPage
6123	ldr	r3, .L804+16
6124	sxth	r7, r0
6125	adds	r0, r0, #1
6126	strh	r0, [r6, #2]	@ movhi
6127.L786:
6128	cmp	r7, #0
6129	bge	.L789
6130	mov	r2, #1448
6131	ldr	r1, .L804+20
6132	ldr	r0, .L804+24
6133	bl	printf
6134.L788:
6135	ldr	r2, .L804+28
6136	ldrh	r3, [r5]
6137	ldrh	r2, [r2]
6138	adds	r3, r3, #24
6139	cmp	r2, r3, lsl #1
6140	bcs	.L791
6141	movw	r2, #1450
6142	ldr	r1, .L804+20
6143	ldr	r0, .L804+24
6144	bl	printf
6145.L791:
6146	ldr	r7, .L804+32
6147	movs	r2, #48
6148	ldr	r1, [r4, #8]
6149	mov	r0, r7
6150	bl	ftl_memcpy
6151	ldrh	r2, [r5]
6152	ldr	r1, [r4, #8]
6153	ldr	r3, [sp]
6154	lsls	r2, r2, #1
6155	adds	r1, r1, #48
6156	ldr	r0, [r3]
6157	bl	ftl_memcpy
6158	ldrh	r1, [r5]
6159	ldr	r3, [r4, #8]
6160	mov	r4, r7
6161	lsrs	r2, r1, #3
6162	adds	r1, r1, #24
6163	lsls	r1, r1, #1
6164	adds	r2, r2, #4
6165	bic	r1, r1, #3
6166	add	r1, r1, r3
6167	ldr	r3, .L804+36
6168	ldr	r0, [r3]
6169	bl	ftl_memcpy
6170	ldr	r2, [r7]
6171	ldr	r3, .L804+16
6172	cmp	r2, r3
6173	bne	.L792
6174	ldr	r3, .L804+40
6175	ldrb	r2, [r7, #10]	@ zero_extendqisi2
6176	ldrh	r5, [r7, #8]
6177	ldrh	r3, [r3]
6178	strh	r5, [r6, #6]	@ movhi
6179	cmp	r2, r3
6180	bne	.L792
6181	ldr	r3, .L804+44
6182	ldr	r2, .L804+48
6183	str	r5, [r3]
6184	ldr	r3, .L804+52
6185	ldrh	r3, [r3]
6186	muls	r3, r5, r3
6187	str	r3, [r2]
6188	ldr	r2, .L804+56
6189	ldrh	r2, [r2]
6190	muls	r3, r2, r3
6191	ldr	r2, .L804+60
6192	str	r3, [r2]
6193	ldr	r3, .L804+64
6194	ldr	r6, [r3]
6195	ldr	r3, .L804+68
6196	ldrh	r0, [r3, #6]
6197	ldr	r3, .L804+72
6198	subs	r0, r6, r0
6199	ldrh	r1, [r3]
6200	subs	r0, r0, r5
6201	bl	__aeabi_uidiv
6202	ldr	r3, .L804+76
6203	cmp	r5, r6
6204	strh	r0, [r3]	@ movhi
6205	bls	.L793
6206	mov	r2, #1472
6207	ldr	r1, .L804+20
6208	ldr	r0, .L804+24
6209	bl	printf
6210.L793:
6211	ldrh	r2, [r4, #16]
6212	ldr	r3, .L804+80
6213	ldrh	ip, [r4, #14]
6214	ldr	r7, .L804+84
6215	lsrs	r1, r2, #6
6216	and	r2, r2, #63
6217	strb	r2, [r3, #6]
6218	ldrb	r2, [r4, #11]	@ zero_extendqisi2
6219	strh	r1, [r3, #2]	@ movhi
6220	ldr	r1, .L804+88
6221	strb	r2, [r3, #8]
6222	ldrh	r2, [r4, #18]
6223	strh	ip, [r3]	@ movhi
6224	movw	r3, #65535
6225	strh	r3, [r7]	@ movhi
6226	movs	r3, #0
6227	strh	r2, [r1]	@ movhi
6228	ldrh	r2, [r4, #20]
6229	strh	r3, [r7, #2]	@ movhi
6230	strb	r3, [r7, #6]
6231	strb	r3, [r7, #8]
6232	lsrs	r5, r2, #6
6233	and	r2, r2, #63
6234	strb	r2, [r1, #6]
6235	ldrb	r2, [r4, #12]	@ zero_extendqisi2
6236	strh	r5, [r1, #2]	@ movhi
6237	ldrh	r5, [r4, #22]
6238	strb	r2, [r1, #8]
6239	ldr	r2, .L804+92
6240	strh	r5, [r2]	@ movhi
6241	ldrh	r5, [r4, #24]
6242	lsrs	r6, r5, #6
6243	and	r5, r5, #63
6244	strb	r5, [r2, #6]
6245	ldrb	r5, [r4, #13]	@ zero_extendqisi2
6246	strh	r6, [r2, #2]	@ movhi
6247	ldr	r6, [r4, #32]
6248	strb	r5, [r2, #8]
6249	ldr	r5, .L804+96
6250	str	r3, [r5]
6251	ldr	r5, .L804+100
6252	str	r3, [r5]
6253	ldr	r5, .L804+104
6254	str	r3, [r5]
6255	ldr	r5, .L804+108
6256	str	r3, [r5]
6257	ldr	r5, .L804+112
6258	str	r6, [r5]
6259	mov	r6, r1
6260	ldr	r5, .L804+116
6261	str	r3, [r5]
6262	ldr	r5, .L804+120
6263	str	r3, [r5]
6264	ldr	r5, .L804+124
6265	ldr	lr, [r4, #40]
6266	str	r3, [r5]
6267	ldr	r3, .L804+128
6268	ldr	r5, [r3]
6269	cmp	lr, r5
6270	mov	r5, r2
6271	it	hi
6272	strhi	lr, [r3]
6273	ldr	r3, .L804+132
6274	ldr	r2, [r4, #36]
6275	ldr	r1, [r3]
6276	cmp	r2, r1
6277	it	hi
6278	strhi	r2, [r3]
6279	movw	r3, #65535
6280	cmp	ip, r3
6281	beq	.L796
6282	ldr	r0, .L804+80
6283	bl	make_superblock
6284.L796:
6285	ldrh	r2, [r6]
6286	movw	r3, #65535
6287	cmp	r2, r3
6288	beq	.L797
6289	ldr	r0, .L804+88
6290	bl	make_superblock
6291.L797:
6292	ldrh	r2, [r5]
6293	movw	r3, #65535
6294	cmp	r2, r3
6295	beq	.L798
6296	ldr	r0, .L804+92
6297	bl	make_superblock
6298.L798:
6299	ldrh	r2, [r7]
6300	movw	r3, #65535
6301	cmp	r2, r3
6302	beq	.L799
6303	ldr	r0, .L804+84
6304	bl	make_superblock
6305.L799:
6306	movs	r0, #0
6307	b	.L783
6308.L789:
6309	ldrh	r2, [r6]
6310	mov	r0, fp
6311	str	r3, [sp, #4]
6312	orr	r2, r7, r2, lsl #10
6313	str	r2, [r4, #4]
6314	ldr	r2, [r8]
6315	str	r2, [r4, #8]
6316	movs	r2, #1
6317	mov	r1, r2
6318	bl	FlashReadPages
6319	ldr	r2, [r4]
6320	ldr	r3, [sp, #4]
6321	adds	r2, r2, #1
6322	beq	.L787
6323	ldr	r2, [r8]
6324	ldr	r2, [r2]
6325	cmp	r2, r3
6326	bne	.L787
6327	ldr	r2, [r10]
6328	ldrh	r1, [r2]
6329	movw	r2, #61604
6330	cmp	r1, r2
6331	beq	.L788
6332.L787:
6333	subs	r7, r7, #1
6334	sxth	r7, r7
6335	b	.L786
6336.L805:
6337	.align	2
6338.L804:
6339	.word	.LANCHOR5
6340	.word	.LANCHOR148
6341	.word	.LANCHOR42
6342	.word	.LANCHOR79
6343	.word	1179929683
6344	.word	.LANCHOR151
6345	.word	.LC1
6346	.word	.LANCHOR23
6347	.word	.LANCHOR39
6348	.word	.LANCHOR1
6349	.word	.LANCHOR10
6350	.word	.LANCHOR152
6351	.word	.LANCHOR61
6352	.word	.LANCHOR19
6353	.word	.LANCHOR12
6354	.word	.LANCHOR34
6355	.word	.LANCHOR7
6356	.word	.LANCHOR37
6357	.word	.LANCHOR3
6358	.word	.LANCHOR78
6359	.word	.LANCHOR51
6360	.word	.LANCHOR80
6361	.word	.LANCHOR52
6362	.word	.LANCHOR53
6363	.word	.LANCHOR67
6364	.word	.LANCHOR64
6365	.word	.LANCHOR62
6366	.word	.LANCHOR66
6367	.word	.LANCHOR72
6368	.word	.LANCHOR73
6369	.word	.LANCHOR76
6370	.word	.LANCHOR65
6371	.word	.LANCHOR70
6372	.word	.LANCHOR71
6373	.word	.LANCHOR115
6374	.word	.LANCHOR123
6375	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
6376	.section	.text.FlashProgPages,"ax",%progbits
6377	.align	1
6378	.global	FlashProgPages
6379	.syntax unified
6380	.thumb
6381	.thumb_func
6382	.fpu softvfp
6383	.type	FlashProgPages, %function
6384FlashProgPages:
6385	@ args = 0, pretend = 0, frame = 48
6386	@ frame_needed = 0, uses_anonymous_args = 0
6387	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6388	sub	sp, sp, #48
6389	str	r3, [sp, #12]
6390	mov	r10, r1
6391	mov	r4, r0
6392	mov	r5, r0
6393	ldr	r3, .L846
6394	mov	r8, #0
6395	ldr	fp, .L846+48
6396	str	r2, [sp, #8]
6397	ldrh	r3, [r3, #12]
6398	str	r3, [sp]
6399	lsls	r3, r3, #3
6400	str	r3, [sp, #4]
6401.L807:
6402	cmp	r8, r10
6403	bne	.L820
6404	ldr	r3, [sp, #12]
6405	cmp	r3, #0
6406	beq	.L838
6407	ldr	r6, .L846+4
6408	movs	r5, #0
6409.L822:
6410	cmp	r8, r5
6411	beq	.L838
6412	ldr	r7, .L846+8
6413	movs	r1, #0
6414	ldr	r2, [r6]
6415	add	r0, sp, #28
6416	ldr	r3, [r7]
6417	str	r1, [r2]
6418	str	r1, [r3]
6419	ldr	r1, [r4, #4]
6420	str	r2, [sp, #36]
6421	ldr	r2, [sp, #8]
6422	str	r1, [sp, #32]
6423	movs	r1, #1
6424	str	r3, [sp, #40]
6425	bl	FlashReadPages
6426	ldr	r10, [sp, #28]
6427	cmp	r10, #-1
6428	bne	.L823
6429	ldr	r1, [r4, #4]
6430	ldr	r0, .L846+12
6431	bl	printf
6432	str	r10, [r4]
6433.L823:
6434	ldr	r3, [r4, #12]
6435	cbz	r3, .L824
6436	ldr	r2, [r3]
6437	ldr	r3, [r7]
6438	ldr	r3, [r3]
6439	cmp	r2, r3
6440	beq	.L824
6441	ldr	r1, [r4, #4]
6442	ldr	r0, .L846+16
6443	bl	printf
6444	mov	r3, #-1
6445	str	r3, [r4]
6446.L824:
6447	ldr	r3, [r4, #8]
6448	cbz	r3, .L825
6449	ldr	r2, [r3]
6450	ldr	r3, [r6]
6451	ldr	r3, [r3]
6452	cmp	r2, r3
6453	beq	.L825
6454	ldr	r1, [r4, #4]
6455	ldr	r0, .L846+20
6456	bl	printf
6457	mov	r3, #-1
6458	str	r3, [r4]
6459.L825:
6460	adds	r5, r5, #1
6461	adds	r4, r4, #20
6462	b	.L822
6463.L820:
6464	ldr	r3, [r5, #8]
6465	cbz	r3, .L808
6466	ldr	r3, [r5, #12]
6467	cbnz	r3, .L809
6468.L808:
6469	movs	r2, #134
6470	ldr	r1, .L846+24
6471	ldr	r0, .L846+28
6472	bl	printf
6473.L809:
6474	add	r2, sp, #20
6475	add	r1, sp, #24
6476	ldr	r0, [r5, #4]
6477	bl	l2p_addr_tran.isra.0
6478	ldr	r6, [sp, #20]
6479	cmp	r6, #3
6480	bls	.L810
6481.L845:
6482	mov	r3, #-1
6483	str	r3, [r5]
6484	b	.L811
6485.L810:
6486	cbnz	r6, .L812
6487	ldr	r3, [sp, #24]
6488	ldr	r2, [sp, #4]
6489	cmp	r2, r3
6490	bls	.L812
6491	ldr	r5, .L846+24
6492	ldr	r7, .L846+32
6493	b	.L844
6494.L814:
6495	mov	r3, #-1
6496	ldr	r2, [r4, #-16]
6497	str	r3, [r4, #-20]
6498	mov	r1, r5
6499	mov	r0, r7
6500	adds	r6, r6, #1
6501	bl	printf
6502	movs	r3, #16
6503	movs	r2, #4
6504	ldr	r1, [r4, #-12]
6505	ldr	r0, .L846+36
6506	bl	rknand_print_hex
6507	movs	r3, #4
6508	ldr	r1, [r4, #-8]
6509	mov	r2, r3
6510	ldr	r0, .L846+40
6511	bl	rknand_print_hex
6512.L844:
6513	cmp	r6, r10
6514	add	r4, r4, #20
6515	bne	.L814
6516.L838:
6517	movs	r0, #0
6518	add	sp, sp, #48
6519	@ sp needed
6520	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6521.L812:
6522	ldr	r1, [r5, #8]
6523	lsls	r3, r1, #26
6524	beq	.L827
6525	ldr	r3, .L846+4
6526	ldr	r6, [r3]
6527	cmp	r1, r6
6528	beq	.L815
6529	ldr	r3, .L846+44
6530	mov	r0, r6
6531	ldrh	r2, [r3]
6532	lsls	r2, r2, #9
6533	bl	ftl_memcpy
6534.L815:
6535	ldr	r3, [r5, #12]
6536	mov	r2, r6
6537	ldr	r1, [sp, #24]
6538	ldrb	r0, [sp, #20]	@ zero_extendqisi2
6539	ldr	r7, [fp, #8]
6540	blx	r7
6541	cbnz	r0, .L816
6542	str	r0, [r5]
6543.L817:
6544	ldr	r3, .L846
6545	ldrh	r3, [r3, #14]
6546	cmp	r3, #4
6547	bne	.L811
6548	ldr	r0, [sp]
6549	add	r2, r6, #2048
6550	ldr	r3, [r5, #12]
6551	ldr	r1, [sp, #24]
6552	ldr	r6, [fp, #8]
6553	adds	r3, r3, #8
6554	add	r1, r1, r0
6555	ldrb	r0, [sp, #20]	@ zero_extendqisi2
6556	blx	r6
6557	cmp	r0, #0
6558	bne	.L845
6559.L811:
6560	add	r8, r8, #1
6561	adds	r5, r5, #20
6562	b	.L807
6563.L827:
6564	mov	r6, r1
6565	b	.L815
6566.L816:
6567	mov	r3, #-1
6568	str	r3, [r5]
6569	b	.L817
6570.L847:
6571	.align	2
6572.L846:
6573	.word	.LANCHOR0
6574	.word	.LANCHOR120
6575	.word	.LANCHOR122
6576	.word	.LC85
6577	.word	.LC86
6578	.word	.LC87
6579	.word	.LANCHOR153
6580	.word	.LC1
6581	.word	.LC79
6582	.word	.LC80
6583	.word	.LC81
6584	.word	.LANCHOR12
6585	.word	.LANCHOR105
6586	.size	FlashProgPages, .-FlashProgPages
6587	.section	.text.FtlLowFormatEraseBlock,"ax",%progbits
6588	.align	1
6589	.global	FtlLowFormatEraseBlock
6590	.syntax unified
6591	.thumb
6592	.thumb_func
6593	.fpu softvfp
6594	.type	FtlLowFormatEraseBlock, %function
6595FtlLowFormatEraseBlock:
6596	@ args = 0, pretend = 0, frame = 32
6597	@ frame_needed = 0, uses_anonymous_args = 0
6598	ldr	r3, .L891
6599	push	{r4, r5, r6, r7, r8, r10, fp, lr}
6600	sub	sp, sp, #32
6601	ldr	r7, .L891+4
6602	mov	r8, #0
6603	mov	r6, r1
6604	mov	r5, r8
6605	str	r0, [r3]
6606	mov	r4, r8
6607	ldr	r3, .L891+8
6608	mov	fp, #20
6609	ldr	r10, [r7]
6610	str	r0, [sp, #4]
6611	ldrh	r3, [r3]
6612	str	r3, [sp, #12]
6613	ldr	r3, .L891+12
6614	ldr	r3, [r3]
6615	str	r3, [sp, #16]
6616	ldr	r3, .L891+16
6617	ldr	r3, [r3]
6618	str	r3, [sp, #20]
6619	ldr	r3, .L891+20
6620	ldrh	r3, [r3]
6621	str	r3, [sp, #24]
6622.L849:
6623	ldr	r3, [sp, #12]
6624	uxth	r2, r8
6625	cmp	r3, r2
6626	bhi	.L853
6627	cmp	r5, #0
6628	beq	.L848
6629	mov	r0, r10
6630	mov	r8, #0
6631	mov	r10, #20
6632	mov	r2, r5
6633	movs	r1, #0
6634	bl	FlashEraseBlocks
6635.L856:
6636	uxth	r3, r8
6637	cmp	r5, r3
6638	bhi	.L858
6639	cmp	r6, #0
6640	beq	.L874
6641	ldr	r3, .L891+24
6642	mov	r10, #1
6643	ldrh	r3, [r3]
6644	str	r3, [sp, #8]
6645.L859:
6646	movs	r7, #0
6647.L868:
6648	ldr	r3, .L891+8
6649	mov	r8, #0
6650	mov	r5, r8
6651	ldrh	r3, [r3]
6652	str	r3, [sp, #16]
6653	ldr	r3, .L891+4
6654	ldr	fp, [r3]
6655	ldr	r3, .L891+28
6656	ldr	r3, [r3]
6657	str	r3, [sp, #20]
6658	ldr	r3, .L891+12
6659	ldr	r3, [r3]
6660	str	r3, [sp, #24]
6661	ldr	r3, .L891+20
6662	ldrh	r3, [r3]
6663	str	r3, [sp, #28]
6664.L860:
6665	ldr	r3, [sp, #16]
6666	uxth	r2, r8
6667	cmp	r3, r2
6668	bhi	.L863
6669	cbz	r5, .L848
6670	mov	r0, fp
6671	ldr	fp, .L891+4
6672	movs	r3, #1
6673	mov	r2, r10
6674	mov	r1, r5
6675	mov	r8, #0
6676	bl	FlashProgPages
6677	movs	r3, #20
6678.L865:
6679	uxth	r2, r8
6680	cmp	r5, r2
6681	bhi	.L867
6682	adds	r7, r7, #1
6683	ldr	r2, [sp, #8]
6684	uxth	r3, r7
6685	cmp	r2, r3
6686	bhi	.L868
6687	ldr	r8, .L891+4
6688	movs	r7, #0
6689	mov	fp, #20
6690.L869:
6691	uxth	r3, r7
6692	cmp	r5, r3
6693	bhi	.L871
6694	ldr	r3, [sp, #4]
6695	cmp	r3, #63
6696	bls	.L872
6697	cbz	r6, .L848
6698.L872:
6699	ldr	r3, .L891+4
6700	mov	r2, r5
6701	mov	r1, r10
6702	ldr	r0, [r3]
6703	bl	FlashEraseBlocks
6704.L848:
6705	mov	r0, r4
6706	add	sp, sp, #32
6707	@ sp needed
6708	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6709.L853:
6710	mul	r2, fp, r8
6711	movs	r3, #0
6712	ldr	r1, [sp, #4]
6713	str	r3, [r10, r2]
6714	ldr	r3, .L891+32
6715	ldrb	r0, [r3, r8]	@ zero_extendqisi2
6716	bl	V2P_block
6717	str	r0, [sp, #8]
6718	cbz	r6, .L850
6719	bl	IsBlkInVendorPart
6720	cbnz	r0, .L851
6721.L850:
6722	ldr	r0, [sp, #8]
6723	bl	FtlBbmIsBadBlock
6724	cbnz	r0, .L852
6725	ldr	r3, [sp, #8]
6726	mla	r1, fp, r5, r10
6727	lsls	r2, r3, #10
6728	ldr	r3, [sp, #16]
6729	str	r2, [r1, #4]
6730	str	r3, [r1, #8]
6731	ldr	r3, [sp, #24]
6732	mul	r2, r3, r5
6733	ldr	r3, [sp, #20]
6734	adds	r5, r5, #1
6735	uxth	r5, r5
6736	bic	r2, r2, #3
6737	add	r2, r2, r3
6738	str	r2, [r1, #12]
6739.L851:
6740	add	r8, r8, #1
6741	b	.L849
6742.L852:
6743	adds	r4, r4, #1
6744	uxth	r4, r4
6745	b	.L851
6746.L858:
6747	mul	r3, r10, r8
6748	ldr	r2, [r7]
6749	adds	r1, r2, r3
6750	ldr	r3, [r2, r3]
6751	adds	r3, r3, #1
6752	bne	.L857
6753	ldr	r0, [r1, #4]
6754	adds	r4, r4, #1
6755	uxth	r4, r4
6756	ubfx	r0, r0, #10, #16
6757	bl	FtlBbmMapBadBlock
6758.L857:
6759	add	r8, r8, #1
6760	b	.L856
6761.L874:
6762	movs	r3, #2
6763	mov	r10, r6
6764	str	r3, [sp, #8]
6765	b	.L859
6766.L863:
6767	movs	r3, #20
6768	ldr	r1, [sp, #4]
6769	mul	r2, r3, r8
6770	movs	r3, #0
6771	str	r3, [fp, r2]
6772	ldr	r3, .L891+32
6773	ldrb	r0, [r3, r8]	@ zero_extendqisi2
6774	bl	V2P_block
6775	str	r0, [sp, #12]
6776	cbz	r6, .L861
6777	bl	IsBlkInVendorPart
6778	cbnz	r0, .L862
6779.L861:
6780	ldr	r0, [sp, #12]
6781	bl	FtlBbmIsBadBlock
6782	cbnz	r0, .L862
6783	movs	r3, #20
6784	mla	r1, r3, r5, fp
6785	ldr	r3, [sp, #12]
6786	add	r2, r7, r3, lsl #10
6787	ldr	r3, [sp, #20]
6788	str	r2, [r1, #4]
6789	str	r3, [r1, #8]
6790	ldr	r3, [sp, #28]
6791	mul	r2, r3, r5
6792	ldr	r3, [sp, #24]
6793	adds	r5, r5, #1
6794	uxth	r5, r5
6795	bic	r2, r2, #3
6796	add	r2, r2, r3
6797	str	r2, [r1, #12]
6798.L862:
6799	add	r8, r8, #1
6800	b	.L860
6801.L867:
6802	mul	r2, r3, r8
6803	ldr	r1, [fp]
6804	adds	r0, r1, r2
6805	ldr	r2, [r1, r2]
6806	cbz	r2, .L866
6807	ldr	r0, [r0, #4]
6808	adds	r4, r4, #1
6809	str	r3, [sp, #12]
6810	uxth	r4, r4
6811	ubfx	r0, r0, #10, #16
6812	bl	FtlBbmMapBadBlock
6813	ldr	r3, [sp, #12]
6814.L866:
6815	add	r8, r8, #1
6816	b	.L865
6817.L871:
6818	cbz	r6, .L870
6819	mul	r3, fp, r7
6820	ldr	r2, [r8]
6821	adds	r1, r2, r3
6822	ldr	r3, [r2, r3]
6823	cbnz	r3, .L870
6824	ldr	r0, [r1, #4]
6825	movs	r1, #1
6826	ubfx	r0, r0, #10, #16
6827	bl	FtlFreeSysBlkQueueIn
6828.L870:
6829	adds	r7, r7, #1
6830	b	.L869
6831.L892:
6832	.align	2
6833.L891:
6834	.word	.LANCHOR111
6835	.word	.LANCHOR106
6836	.word	.LANCHOR3
6837	.word	.LANCHOR119
6838	.word	.LANCHOR124
6839	.word	.LANCHOR24
6840	.word	.LANCHOR20
6841	.word	.LANCHOR118
6842	.word	.LANCHOR13
6843	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
6844	.section	.text.Ftl_write_map_blk_to_last_page,"ax",%progbits
6845	.align	1
6846	.global	Ftl_write_map_blk_to_last_page
6847	.syntax unified
6848	.thumb
6849	.thumb_func
6850	.fpu softvfp
6851	.type	Ftl_write_map_blk_to_last_page, %function
6852Ftl_write_map_blk_to_last_page:
6853	@ args = 0, pretend = 0, frame = 0
6854	@ frame_needed = 0, uses_anonymous_args = 0
6855	push	{r3, r4, r5, r6, r7, lr}
6856	movw	r2, #65535
6857	ldrh	r3, [r0]
6858	mov	r4, r0
6859	ldr	r5, [r0, #12]
6860	cmp	r3, r2
6861	bne	.L894
6862	ldrh	r3, [r0, #8]
6863	cbz	r3, .L895
6864	movw	r2, #641
6865	ldr	r1, .L903
6866	ldr	r0, .L903+4
6867	bl	printf
6868.L895:
6869	ldrh	r3, [r4, #8]
6870	adds	r3, r3, #1
6871	strh	r3, [r4, #8]	@ movhi
6872	bl	FtlFreeSysBlkQueueOut
6873	movs	r3, #0
6874	strh	r0, [r5]	@ movhi
6875	strh	r3, [r4, #2]	@ movhi
6876	strh	r3, [r4]	@ movhi
6877	ldr	r3, [r4, #28]
6878	adds	r3, r3, #1
6879	str	r3, [r4, #28]
6880.L896:
6881	movs	r0, #0
6882	pop	{r3, r4, r5, r6, r7, pc}
6883.L894:
6884	ldrh	r5, [r5, r3, lsl #1]
6885	movs	r1, #255
6886	ldrh	r3, [r0, #2]
6887	ldr	r2, .L903+8
6888	ldr	r7, .L903+12
6889	ldr	r6, [r0, #24]
6890	orr	r3, r3, r5, lsl #10
6891	ldr	r0, [r7]
6892	str	r3, [r2, #4]
6893	ldr	r3, .L903+16
6894	str	r0, [r2, #8]
6895	ldr	r3, [r3]
6896	str	r3, [r2, #12]
6897	ldr	r2, [r4, #28]
6898	str	r2, [r3, #4]
6899	movw	r2, #64245
6900	strh	r2, [r3, #8]	@ movhi
6901	ldrh	r2, [r4, #4]
6902	strh	r5, [r3, #2]	@ movhi
6903	strh	r2, [r3]	@ movhi
6904	ldr	r3, .L903+20
6905	ldrh	r2, [r3]
6906	lsls	r2, r2, #3
6907	bl	ftl_memset
6908	ldrh	ip, [r4, #6]
6909	movs	r3, #0
6910	ldr	r1, [r7]
6911	mov	r2, r3
6912.L897:
6913	uxth	r0, r3
6914	cmp	ip, r0
6915	bhi	.L899
6916	movs	r2, #1
6917	movs	r3, #0
6918	mov	r1, r2
6919	ldr	r0, .L903+8
6920	bl	FlashProgPages
6921	ldrh	r3, [r4, #2]
6922	mov	r0, r4
6923	adds	r3, r3, #1
6924	strh	r3, [r4, #2]	@ movhi
6925	bl	ftl_map_blk_gc
6926	b	.L896
6927.L899:
6928	ldr	r0, [r6, r3, lsl #2]
6929	cmp	r5, r0, lsr #10
6930	bne	.L898
6931	adds	r2, r2, #1
6932	uxth	r2, r2
6933	str	r3, [r1, r2, lsl #3]
6934	add	r7, r1, r2, lsl #3
6935	ldr	r0, [r6, r3, lsl #2]
6936	str	r0, [r7, #4]
6937.L898:
6938	adds	r3, r3, #1
6939	b	.L897
6940.L904:
6941	.align	2
6942.L903:
6943	.word	.LANCHOR154
6944	.word	.LC1
6945	.word	.LANCHOR148
6946	.word	.LANCHOR115
6947	.word	.LANCHOR123
6948	.word	.LANCHOR20
6949	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
6950	.section	.text.FtlMapWritePage,"ax",%progbits
6951	.align	1
6952	.global	FtlMapWritePage
6953	.syntax unified
6954	.thumb
6955	.thumb_func
6956	.fpu softvfp
6957	.type	FtlMapWritePage, %function
6958FtlMapWritePage:
6959	@ args = 0, pretend = 0, frame = 8
6960	@ frame_needed = 0, uses_anonymous_args = 0
6961	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6962	mov	r4, r0
6963	ldr	r8, .L929+28
6964	mov	r7, r1
6965	movs	r6, #0
6966	str	r2, [sp, #4]
6967	mov	fp, r8
6968.L906:
6969	ldr	r2, .L929
6970	ldr	r3, [r2]
6971	adds	r3, r3, #1
6972	str	r3, [r2]
6973	ldrh	r3, [r8]
6974	ldrh	r2, [r4, #2]
6975	subs	r3, r3, #1
6976	cmp	r2, r3
6977	bge	.L907
6978	ldrh	r2, [r4]
6979	movw	r3, #65535
6980	cmp	r2, r3
6981	bne	.L908
6982.L907:
6983	mov	r0, r4
6984	bl	Ftl_write_map_blk_to_last_page
6985.L908:
6986	ldrh	r2, [r4]
6987	ldr	r3, [r4, #12]
6988	ldrh	r3, [r3, r2, lsl #1]
6989	cbnz	r3, .L909
6990	movw	r2, #699
6991	ldr	r1, .L929+4
6992	ldr	r0, .L929+8
6993	bl	printf
6994.L909:
6995	ldrh	r2, [r4]
6996	ldrh	r3, [r4, #10]
6997	cmp	r2, r3
6998	bcc	.L910
6999	mov	r2, #700
7000	ldr	r1, .L929+4
7001	ldr	r0, .L929+8
7002	bl	printf
7003.L910:
7004	ldrh	r2, [r4]
7005	movs	r1, #0
7006	ldr	r3, [r4, #12]
7007	ldr	r5, .L929+12
7008	ldrh	r10, [r3, r2, lsl #1]
7009	ldrh	r2, [r4, #2]
7010	ldr	r3, [sp, #4]
7011	orr	r2, r2, r10, lsl #10
7012	str	r3, [r5, #8]
7013	str	r2, [r5, #4]
7014	ldr	r2, .L929+16
7015	ldr	r0, [r2]
7016	movs	r2, #16
7017	str	r0, [r5, #12]
7018	bl	ftl_memset
7019	ldr	r2, [r5, #12]
7020	movs	r3, #1
7021	ldr	r1, [r4, #28]
7022	mov	r0, r5
7023	strh	r7, [r2, #8]	@ movhi
7024	str	r1, [r2, #4]
7025	ldrh	r1, [r4, #4]
7026	strh	r10, [r2, #2]	@ movhi
7027	strh	r1, [r2]	@ movhi
7028	mov	r2, r3
7029	mov	r1, r3
7030	bl	FlashProgPages
7031	ldrh	r2, [r4, #2]
7032	ldr	r1, [r5]
7033	adds	r2, r2, #1
7034	uxth	r2, r2
7035	adds	r3, r1, #1
7036	strh	r2, [r4, #2]	@ movhi
7037	bne	.L911
7038	ldr	r1, [r5, #4]
7039	adds	r6, r6, #1
7040	ldr	r0, .L929+20
7041	uxth	r6, r6
7042	bl	printf
7043	ldrh	r2, [r4, #2]
7044	cmp	r2, #2
7045	ittt	ls
7046	ldrhls	r2, [fp]
7047	addls	r2, r2, #-1
7048	strhls	r2, [r4, #2]	@ movhi
7049	cmp	r6, #3
7050	bls	.L913
7051	mov	r2, r6
7052	ldr	r1, [r5, #4]
7053	ldr	r0, .L929+24
7054	bl	printf
7055.L914:
7056	b	.L914
7057.L913:
7058	ldr	r3, [r4, #32]
7059	cmp	r3, #0
7060	beq	.L906
7061.L928:
7062	b	.L928
7063.L911:
7064	cmp	r2, #1
7065	beq	.L917
7066	cmp	r1, #256
7067	beq	.L917
7068	ldr	r0, [r4, #36]
7069	cbz	r0, .L918
7070.L917:
7071	movs	r3, #0
7072	str	r3, [r4, #36]
7073	b	.L906
7074.L918:
7075	ldr	r2, [r5, #4]
7076	ldr	r3, [r4, #24]
7077	str	r2, [r3, r7, lsl #2]
7078	add	sp, sp, #8
7079	@ sp needed
7080	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7081.L930:
7082	.align	2
7083.L929:
7084	.word	.LANCHOR66
7085	.word	.LANCHOR155
7086	.word	.LC1
7087	.word	.LANCHOR148
7088	.word	.LANCHOR123
7089	.word	.LC88
7090	.word	.LC89
7091	.word	.LANCHOR20
7092	.size	FtlMapWritePage, .-FtlMapWritePage
7093	.section	.text.load_l2p_region,"ax",%progbits
7094	.align	1
7095	.global	load_l2p_region
7096	.syntax unified
7097	.thumb
7098	.thumb_func
7099	.fpu softvfp
7100	.type	load_l2p_region, %function
7101load_l2p_region:
7102	@ args = 0, pretend = 0, frame = 8
7103	@ frame_needed = 0, uses_anonymous_args = 0
7104	ldr	r3, .L938
7105	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7106	mov	r5, r0
7107	mov	r10, r1
7108	ldrh	r2, [r3]
7109	str	r3, [sp, #4]
7110	cmp	r2, r0
7111	bcs	.L932
7112	movw	r2, #485
7113	ldr	r1, .L938+4
7114	ldr	r0, .L938+8
7115	bl	printf
7116.L932:
7117	ldr	fp, .L938+48
7118	movs	r4, #12
7119	ldr	r7, .L938+12
7120	ldr	r3, [fp]
7121	ldr	r8, [r3, r5, lsl #2]
7122	cmp	r8, #0
7123	bne	.L933
7124	mul	r4, r4, r10
7125	ldr	r2, [r7]
7126	movs	r1, #255
7127	adds	r0, r2, r4
7128	ldr	r2, .L938+16
7129	ldr	r0, [r0, #8]
7130	ldrh	r2, [r2]
7131	bl	ftl_memset
7132	ldr	r2, [r7]
7133	adds	r1, r2, r4
7134	strh	r5, [r2, r4]	@ movhi
7135	str	r8, [r1, #4]
7136.L934:
7137	movs	r0, #0
7138	add	sp, sp, #8
7139	@ sp needed
7140	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7141.L933:
7142	mul	r4, r4, r10
7143	ldr	r2, [r7]
7144	ldr	r6, .L938+20
7145	add	r2, r2, r4
7146	mov	r0, r6
7147	ldr	r2, [r2, #8]
7148	str	r8, [r6, #4]
7149	str	r2, [r6, #8]
7150	ldr	r2, .L938+24
7151	ldr	r2, [r2]
7152	str	r2, [r6, #12]
7153	movs	r2, #1
7154	mov	r1, r2
7155	bl	FlashReadPages
7156	ldr	r10, [r6, #12]
7157	ldrh	r2, [r10, #8]
7158	cmp	r2, r5
7159	beq	.L935
7160	mov	r2, r8
7161	mov	r1, r5
7162	ldr	r0, .L938+28
7163	bl	printf
7164	movs	r3, #4
7165	ldr	r1, [r6, #12]
7166	mov	r2, r3
7167	ldr	r0, .L938+32
7168	bl	rknand_print_hex
7169	ldr	r3, [sp, #4]
7170	movs	r2, #4
7171	ldr	r1, [fp]
7172	ldr	r0, .L938+36
7173	ldrh	r3, [r3]
7174	bl	rknand_print_hex
7175.L936:
7176	ldrh	r3, [r10, #8]
7177	cmp	r3, r5
7178	beq	.L937
7179	mov	r2, #508
7180	ldr	r1, .L938+4
7181	ldr	r0, .L938+8
7182	bl	printf
7183.L937:
7184	ldr	r3, [r7]
7185	movs	r1, #0
7186	adds	r2, r3, r4
7187	str	r1, [r2, #4]
7188	strh	r5, [r3, r4]	@ movhi
7189	b	.L934
7190.L935:
7191	ldr	r2, [r6]
7192	cmp	r2, #256
7193	bne	.L936
7194	mov	r2, r8
7195	mov	r1, r5
7196	ldr	r0, .L938+40
7197	bl	printf
7198	ldr	r3, [r7]
7199	mov	r1, r5
7200	ldr	r0, .L938+44
7201	add	r3, r3, r4
7202	ldr	r2, [r3, #8]
7203	bl	FtlMapWritePage
7204	b	.L936
7205.L939:
7206	.align	2
7207.L938:
7208	.word	.LANCHOR32
7209	.word	.LANCHOR156
7210	.word	.LC1
7211	.word	.LANCHOR55
7212	.word	.LANCHOR23
7213	.word	.LANCHOR148
7214	.word	.LANCHOR123
7215	.word	.LC90
7216	.word	.LC91
7217	.word	.LC92
7218	.word	.LC93
7219	.word	.LANCHOR140
7220	.word	.LANCHOR134
7221	.size	load_l2p_region, .-load_l2p_region
7222	.section	.text.ftl_map_blk_gc,"ax",%progbits
7223	.align	1
7224	.global	ftl_map_blk_gc
7225	.syntax unified
7226	.thumb
7227	.thumb_func
7228	.fpu softvfp
7229	.type	ftl_map_blk_gc, %function
7230ftl_map_blk_gc:
7231	@ args = 0, pretend = 0, frame = 8
7232	@ frame_needed = 0, uses_anonymous_args = 0
7233	ldr	r3, [r0, #24]
7234	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7235	mov	r4, r0
7236	ldr	r5, [r0, #12]
7237	str	r3, [sp]
7238	bl	ftl_free_no_use_map_blk
7239	ldrh	r3, [r4, #10]
7240	ldrh	r2, [r4, #8]
7241	subs	r3, r3, #5
7242	cmp	r2, r3
7243	blt	.L941
7244	uxth	r0, r0
7245	ldrh	r8, [r5, r0, lsl #1]
7246	cmp	r8, #0
7247	beq	.L941
7248	ldr	r3, [r4, #32]
7249	cbnz	r3, .L941
7250	movs	r2, #1
7251	str	r2, [r4, #32]
7252	strh	r3, [r5, r0, lsl #1]	@ movhi
7253	ldrh	r3, [r4, #8]
7254	ldrh	r2, [r4, #2]
7255	subs	r3, r3, #1
7256	strh	r3, [r4, #8]	@ movhi
7257	ldr	r3, .L956
7258	ldrh	r3, [r3]
7259	cmp	r2, r3
7260	bcc	.L942
7261	mov	r0, r4
7262	bl	ftl_map_blk_alloc_new_blk
7263.L942:
7264	ldr	r5, .L956+4
7265	movs	r6, #0
7266.L943:
7267	ldrh	r3, [r4, #6]
7268	uxth	r10, r6
7269	cmp	r3, r10
7270	bhi	.L950
7271	movs	r1, #1
7272	mov	r0, r8
7273	bl	FtlFreeSysBlkQueueIn
7274	movs	r3, #0
7275	str	r3, [r4, #32]
7276.L941:
7277	ldr	r3, .L956
7278	ldrh	r2, [r4, #2]
7279	ldrh	r3, [r3]
7280	cmp	r2, r3
7281	bcc	.L951
7282	mov	r0, r4
7283	bl	ftl_map_blk_alloc_new_blk
7284.L951:
7285	movs	r0, #0
7286	add	sp, sp, #8
7287	@ sp needed
7288	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7289.L950:
7290	ldr	r3, [sp]
7291	uxth	fp, r6
7292	add	r3, r3, fp, lsl #2
7293	str	r3, [sp, #4]
7294	ldr	r3, [sp]
7295	ldr	r2, [r3, fp, lsl #2]
7296	cmp	r8, r2, lsr #10
7297	bne	.L944
7298	ldr	r3, .L956+8
7299	str	r2, [r5, #4]
7300	movs	r2, #1
7301	ldr	r0, .L956+4
7302	ldr	r1, [r3]
7303	str	r1, [r5, #8]
7304	ldr	r1, .L956+12
7305	ldr	r7, [r1]
7306	mov	r1, r2
7307	str	r7, [r5, #12]
7308	bl	FlashReadPages
7309	ldrh	r2, [r7, #8]
7310	cmp	r2, r10
7311	beq	.L945
7312	movw	r2, #611
7313	ldr	r1, .L956+16
7314	ldr	r0, .L956+20
7315	bl	printf
7316.L945:
7317	ldr	r2, [r5]
7318	adds	r2, r2, #1
7319	bne	.L946
7320.L948:
7321	ldr	r2, [sp, #4]
7322	movs	r3, #0
7323	str	r3, [r2]
7324.L947:
7325	b	.L947
7326.L946:
7327	ldrh	r2, [r7, #8]
7328	cmp	r2, r10
7329	bne	.L948
7330	ldrh	r1, [r7]
7331	ldrh	r2, [r4, #4]
7332	cmp	r1, r2
7333	bne	.L948
7334	ldr	r2, [r5, #8]
7335	mov	r1, fp
7336	mov	r0, r4
7337	bl	FtlMapWritePage
7338.L944:
7339	adds	r6, r6, #1
7340	b	.L943
7341.L957:
7342	.align	2
7343.L956:
7344	.word	.LANCHOR20
7345	.word	.LANCHOR148
7346	.word	.LANCHOR116
7347	.word	.LANCHOR123
7348	.word	.LANCHOR157
7349	.word	.LC1
7350	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
7351	.section	.text.FtlMapTblRecovery,"ax",%progbits
7352	.align	1
7353	.global	FtlMapTblRecovery
7354	.syntax unified
7355	.thumb
7356	.thumb_func
7357	.fpu softvfp
7358	.type	FtlMapTblRecovery, %function
7359FtlMapTblRecovery:
7360	@ args = 0, pretend = 0, frame = 24
7361	@ frame_needed = 0, uses_anonymous_args = 0
7362	ldr	r3, [r0, #16]
7363	movs	r1, #0
7364	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7365	sub	sp, sp, #24
7366	ldrh	fp, [r0, #6]
7367	mov	r4, r0
7368	movs	r6, #0
7369	ldr	r8, [r0, #24]
7370	str	r3, [sp, #12]
7371	ldrh	r3, [r0, #8]
7372	lsl	r2, fp, #2
7373	ldr	r10, [r0, #12]
7374	mov	r0, r8
7375	ldr	r5, .L985
7376	str	r3, [sp, #4]
7377	bl	ftl_memset
7378	ldr	r3, .L985+4
7379	str	r6, [r4, #32]
7380	str	r6, [r4, #28]
7381	ldr	r2, [r3]
7382	str	r3, [sp, #8]
7383	str	r2, [r5, #8]
7384	ldr	r2, .L985+8
7385	ldr	r7, [r2]
7386	movw	r2, #65535
7387	str	r7, [r5, #12]
7388	strh	r2, [r4]	@ movhi
7389	strh	r2, [r4, #2]	@ movhi
7390	movs	r2, #1
7391	str	r2, [r4, #36]
7392.L959:
7393	ldr	r2, [sp, #4]
7394	sxth	r3, r6
7395	cmp	r3, r2
7396	bge	.L976
7397	ldr	r2, [sp, #4]
7398	subs	r2, r2, #1
7399	cmp	r3, r2
7400	lsl	r2, r3, #1
7401	bne	.L960
7402	ldrh	r0, [r10, r3, lsl #1]
7403	movs	r1, #1
7404	add	r5, r10, r2
7405	str	r3, [sp, #4]
7406	bl	FtlGetLastWrittenPage
7407	ldr	r3, [sp, #12]
7408	sxth	r10, r0
7409	strh	r6, [r4]	@ movhi
7410	movs	r6, #0
7411	adds	r0, r0, #1
7412	mov	r2, r3
7413	ldr	r3, [sp, #4]
7414	strh	r0, [r4, #2]	@ movhi
7415	ldr	r3, [r2, r3, lsl #2]
7416	str	r3, [r4, #28]
7417	ldr	r3, .L985
7418.L961:
7419	sxth	r2, r6
7420	cmp	r2, r10
7421	ble	.L963
7422.L976:
7423	mov	r0, r4
7424	bl	ftl_free_no_use_map_blk
7425	ldr	r3, .L985+12
7426	ldrh	r2, [r4, #2]
7427	ldrh	r3, [r3]
7428	cmp	r2, r3
7429	bne	.L965
7430	mov	r0, r4
7431	bl	ftl_map_blk_alloc_new_blk
7432.L965:
7433	mov	r0, r4
7434	bl	ftl_map_blk_gc
7435	mov	r0, r4
7436	bl	ftl_map_blk_gc
7437	movs	r0, #0
7438	add	sp, sp, #24
7439	@ sp needed
7440	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7441.L963:
7442	ldrh	r1, [r5]
7443	ldr	r0, .L985
7444	str	r3, [sp, #4]
7445	orr	r2, r2, r1, lsl #10
7446	str	r2, [r3, #4]
7447	movs	r2, #1
7448	mov	r1, r2
7449	bl	FlashReadPages
7450	ldr	r3, [sp, #4]
7451	ldr	r2, [r3]
7452	adds	r2, r2, #1
7453	beq	.L962
7454	ldrh	r2, [r7, #8]
7455	cmp	fp, r2
7456	bls	.L962
7457	ldrh	r1, [r4, #4]
7458	ldrh	r0, [r7]
7459	cmp	r0, r1
7460	itt	eq
7461	ldreq	r1, [r3, #4]
7462	streq	r1, [r8, r2, lsl #2]
7463.L962:
7464	adds	r6, r6, #1
7465	b	.L961
7466.L960:
7467	ldr	r1, [sp, #8]
7468	add	r2, r10, r2
7469	str	r2, [sp, #16]
7470	ldr	r0, .L985
7471	ldr	r1, [r1]
7472	str	r1, [r5, #8]
7473	ldrh	r1, [r10, r3, lsl #1]
7474	ldr	r3, .L985+12
7475	ldrh	r2, [r3]
7476	str	r3, [sp, #20]
7477	subs	r2, r2, #1
7478	orr	r2, r2, r1, lsl #10
7479	str	r2, [r5, #4]
7480	movs	r2, #1
7481	mov	r1, r2
7482	bl	FlashReadPages
7483	ldr	r2, [r5]
7484	adds	r2, r2, #1
7485	beq	.L978
7486	ldrh	r1, [r7]
7487	ldrh	r2, [r4, #4]
7488	ldr	r3, [sp, #20]
7489	cmp	r1, r2
7490	bne	.L978
7491	ldrh	r1, [r7, #8]
7492	movw	r2, #64245
7493	cmp	r1, r2
7494	beq	.L967
7495.L978:
7496	movs	r3, #0
7497.L968:
7498	ldr	r1, .L985+12
7499	sxth	r2, r3
7500	ldrh	r1, [r1]
7501	cmp	r2, r1
7502	bge	.L974
7503	str	r3, [sp, #20]
7504	ldr	r3, [sp, #16]
7505	ldr	r0, .L985
7506	ldrh	r1, [r3]
7507	orr	r2, r2, r1, lsl #10
7508	str	r2, [r5, #4]
7509	movs	r2, #1
7510	mov	r1, r2
7511	bl	FlashReadPages
7512	ldr	r2, [r5]
7513	ldr	r3, [sp, #20]
7514	adds	r2, r2, #1
7515	beq	.L972
7516	ldrh	r2, [r7, #8]
7517	cmp	fp, r2
7518	bls	.L972
7519	ldrh	r1, [r4, #4]
7520	ldrh	r0, [r7]
7521	cmp	r0, r1
7522	itt	eq
7523	ldreq	r1, [r5, #4]
7524	streq	r1, [r8, r2, lsl #2]
7525.L972:
7526	adds	r3, r3, #1
7527	b	.L968
7528.L967:
7529	ldrh	r2, [r3]
7530	movs	r1, #0
7531	ldr	r3, [sp, #8]
7532	subs	r2, r2, #1
7533	ldr	ip, [r3]
7534.L969:
7535	sxth	r3, r1
7536	cmp	r3, r2
7537	blt	.L971
7538.L974:
7539	adds	r6, r6, #1
7540	b	.L959
7541.L971:
7542	lsls	r0, r3, #3
7543	ldr	r3, [ip, r3, lsl #3]
7544	adds	r1, r1, #1
7545	uxth	lr, r3
7546	cmp	fp, lr
7547	itttt	hi
7548	addhi	r0, r0, ip
7549	movhi	r3, lr
7550	ldrhi	r0, [r0, #4]
7551	strhi	r0, [r8, r3, lsl #2]
7552	b	.L969
7553.L986:
7554	.align	2
7555.L985:
7556	.word	.LANCHOR148
7557	.word	.LANCHOR115
7558	.word	.LANCHOR123
7559	.word	.LANCHOR20
7560	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
7561	.section	.text.FtlLoadVonderInfo,"ax",%progbits
7562	.align	1
7563	.global	FtlLoadVonderInfo
7564	.syntax unified
7565	.thumb
7566	.thumb_func
7567	.fpu softvfp
7568	.type	FtlLoadVonderInfo, %function
7569FtlLoadVonderInfo:
7570	@ args = 0, pretend = 0, frame = 0
7571	@ frame_needed = 0, uses_anonymous_args = 0
7572	push	{r3, lr}
7573	ldr	r3, .L988
7574	ldr	r0, .L988+4
7575	ldrh	r3, [r3]
7576	strh	r3, [r0, #10]	@ movhi
7577	movw	r3, #61574
7578	strh	r3, [r0, #4]	@ movhi
7579	ldr	r3, .L988+8
7580	ldrh	r3, [r3]
7581	strh	r3, [r0, #8]	@ movhi
7582	ldr	r3, .L988+12
7583	ldrh	r3, [r3]
7584	strh	r3, [r0, #6]	@ movhi
7585	ldr	r3, .L988+16
7586	ldr	r3, [r3]
7587	str	r3, [r0, #12]
7588	ldr	r3, .L988+20
7589	ldr	r3, [r3]
7590	str	r3, [r0, #16]
7591	ldr	r3, .L988+24
7592	ldr	r3, [r3]
7593	str	r3, [r0, #20]
7594	ldr	r3, .L988+28
7595	ldr	r3, [r3]
7596	str	r3, [r0, #24]
7597	bl	FtlMapTblRecovery
7598	movs	r0, #0
7599	pop	{r3, pc}
7600.L989:
7601	.align	2
7602.L988:
7603	.word	.LANCHOR27
7604	.word	.LANCHOR158
7605	.word	.LANCHOR35
7606	.word	.LANCHOR28
7607	.word	.LANCHOR36
7608	.word	.LANCHOR132
7609	.word	.LANCHOR131
7610	.word	.LANCHOR133
7611	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
7612	.section	.text.FtlLoadMapInfo,"ax",%progbits
7613	.align	1
7614	.global	FtlLoadMapInfo
7615	.syntax unified
7616	.thumb
7617	.thumb_func
7618	.fpu softvfp
7619	.type	FtlLoadMapInfo, %function
7620FtlLoadMapInfo:
7621	@ args = 0, pretend = 0, frame = 0
7622	@ frame_needed = 0, uses_anonymous_args = 0
7623	push	{r3, lr}
7624	bl	FtlL2PDataInit
7625	ldr	r0, .L991
7626	bl	FtlMapTblRecovery
7627	movs	r0, #0
7628	pop	{r3, pc}
7629.L992:
7630	.align	2
7631.L991:
7632	.word	.LANCHOR140
7633	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
7634	.section	.text.flush_l2p_region,"ax",%progbits
7635	.align	1
7636	.global	flush_l2p_region
7637	.syntax unified
7638	.thumb
7639	.thumb_func
7640	.fpu softvfp
7641	.type	flush_l2p_region, %function
7642flush_l2p_region:
7643	@ args = 0, pretend = 0, frame = 0
7644	@ frame_needed = 0, uses_anonymous_args = 0
7645	push	{r3, r4, r5, lr}
7646	movs	r4, #12
7647	ldr	r5, .L994
7648	muls	r4, r0, r4
7649	ldr	r0, .L994+4
7650	ldr	r3, [r5]
7651	adds	r2, r3, r4
7652	ldrh	r1, [r3, r4]
7653	ldr	r2, [r2, #8]
7654	bl	FtlMapWritePage
7655	ldr	r3, [r5]
7656	movs	r0, #0
7657	add	r4, r4, r3
7658	ldr	r3, [r4, #4]
7659	bic	r3, r3, #-2147483648
7660	str	r3, [r4, #4]
7661	pop	{r3, r4, r5, pc}
7662.L995:
7663	.align	2
7664.L994:
7665	.word	.LANCHOR55
7666	.word	.LANCHOR140
7667	.size	flush_l2p_region, .-flush_l2p_region
7668	.section	.text.log2phys,"ax",%progbits
7669	.align	1
7670	.global	log2phys
7671	.syntax unified
7672	.thumb
7673	.thumb_func
7674	.fpu softvfp
7675	.type	log2phys, %function
7676log2phys:
7677	@ args = 0, pretend = 0, frame = 8
7678	@ frame_needed = 0, uses_anonymous_args = 0
7679	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7680	mov	r7, r2
7681	ldr	r4, .L1009
7682	mov	r10, r0
7683	mov	r5, r1
7684	ldr	r3, .L1009+4
7685	ldr	r2, [r4]
7686	ldrh	fp, [r3]
7687	cmp	r0, r2
7688	bcc	.L997
7689	movw	r2, #811
7690	ldr	r1, .L1009+8
7691	ldr	r0, .L1009+12
7692	bl	printf
7693.L997:
7694	ldr	r3, [r4]
7695	cmp	r10, r3
7696	bcs	.L998
7697	ldr	r3, .L1009+16
7698	add	fp, fp, #7
7699	lsr	r6, r10, fp
7700	movs	r2, #0
7701	ldrh	r1, [r3]
7702	uxth	r6, r6
7703	ldr	r3, .L1009+20
7704	ldr	r0, [r3]
7705	mov	r8, r3
7706	movs	r3, #12
7707.L999:
7708	uxth	r4, r2
7709	cmp	r4, r1
7710	bcc	.L1004
7711	str	r3, [sp, #4]
7712	bl	select_l2p_ram_region
7713	ldr	r3, [sp, #4]
7714	mov	r4, r0
7715	ldr	r2, [r8]
7716	muls	r3, r0, r3
7717	adds	r1, r2, r3
7718	ldrh	r2, [r2, r3]
7719	movw	r3, #65535
7720	cmp	r2, r3
7721	beq	.L1005
7722	ldr	r3, [r1, #4]
7723	cmp	r3, #0
7724	bge	.L1005
7725	bl	flush_l2p_region
7726.L1005:
7727	mov	r1, r4
7728	mov	r0, r6
7729	bl	load_l2p_region
7730	b	.L1001
7731.L998:
7732	mov	r0, #-1
7733	cbnz	r7, .L996
7734	str	r0, [r5]
7735.L996:
7736	add	sp, sp, #8
7737	@ sp needed
7738	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7739.L1004:
7740	adds	r2, r2, #1
7741	mla	ip, r3, r2, r0
7742	ldrh	ip, [ip, #-12]
7743	cmp	ip, r6
7744	bne	.L999
7745.L1001:
7746	movs	r0, #1
7747	ldr	r2, [r8]
7748	lsl	r0, r0, fp
7749	movs	r3, #12
7750	subs	r0, r0, #1
7751	and	r0, r0, r10
7752	uxth	r0, r0
7753	mla	r3, r3, r4, r2
7754	cbnz	r7, .L1002
7755	ldr	r3, [r3, #8]
7756	ldr	r3, [r3, r0, lsl #2]
7757	str	r3, [r5]
7758.L1003:
7759	ldr	r2, [r8]
7760	movs	r3, #12
7761	mla	r4, r3, r4, r2
7762	ldr	r3, [r4, #4]
7763	adds	r2, r3, #1
7764	beq	.L1007
7765	adds	r3, r3, #1
7766	str	r3, [r4, #4]
7767.L1007:
7768	movs	r0, #0
7769	b	.L996
7770.L1002:
7771	ldr	r1, [r5]
7772	ldr	r2, [r3, #8]
7773	str	r1, [r2, r0, lsl #2]
7774	ldr	r2, [r3, #4]
7775	orr	r2, r2, #-2147483648
7776	str	r2, [r3, #4]
7777	ldr	r3, .L1009+24
7778	strh	r6, [r3]	@ movhi
7779	b	.L1003
7780.L1010:
7781	.align	2
7782.L1009:
7783	.word	.LANCHOR61
7784	.word	.LANCHOR22
7785	.word	.LANCHOR159
7786	.word	.LC1
7787	.word	.LANCHOR33
7788	.word	.LANCHOR55
7789	.word	.LANCHOR56
7790	.size	log2phys, .-log2phys
7791	.section	.text.FtlReUsePrevPpa,"ax",%progbits
7792	.align	1
7793	.global	FtlReUsePrevPpa
7794	.syntax unified
7795	.thumb
7796	.thumb_func
7797	.fpu softvfp
7798	.type	FtlReUsePrevPpa, %function
7799FtlReUsePrevPpa:
7800	@ args = 0, pretend = 0, frame = 8
7801	@ frame_needed = 0, uses_anonymous_args = 0
7802	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7803	mov	r6, r0
7804	ldr	r5, .L1021
7805	ubfx	r0, r1, #10, #16
7806	str	r1, [sp, #4]
7807	bl	P2V_block_in_plane
7808	ldr	r2, [r5]
7809	mov	r7, r0
7810	ldrh	r3, [r2, r0, lsl #1]
7811	cbnz	r3, .L1012
7812	ldr	r2, .L1021+4
7813	ldr	r4, [r2]
7814	cmp	r4, #0
7815	beq	.L1013
7816	ldr	r2, .L1021+8
7817	movw	lr, #65535
7818	ldr	ip, .L1021+24
7819	ldr	r0, .L1021+12
7820	ldr	r2, [r2]
7821	ldrh	r1, [r0]
7822	mov	r8, r0
7823	subs	r4, r4, r2
7824	asrs	r4, r4, #1
7825	mul	r4, ip, r4
7826	mov	ip, #6
7827	uxth	r4, r4
7828.L1014:
7829	uxth	r0, r3
7830	cmp	r1, r0
7831	bls	.L1013
7832	cmp	r4, r7
7833	bne	.L1015
7834	mov	r1, r4
7835	ldr	r0, .L1021+4
7836	bl	List_remove_node
7837	ldrh	r3, [r8]
7838	cbnz	r3, .L1016
7839	movw	r2, #1699
7840	ldr	r1, .L1021+16
7841	ldr	r0, .L1021+20
7842	bl	printf
7843.L1016:
7844	ldrh	r3, [r8]
7845	mov	r0, r4
7846	subs	r3, r3, #1
7847	strh	r3, [r8]	@ movhi
7848	bl	INSERT_DATA_LIST
7849	ldr	r2, [r5]
7850	ldrh	r3, [r2, r7, lsl #1]
7851.L1012:
7852	adds	r3, r3, #1
7853	strh	r3, [r2, r7, lsl #1]	@ movhi
7854	b	.L1013
7855.L1015:
7856	mul	r4, ip, r4
7857	adds	r3, r3, #1
7858	ldrh	r4, [r2, r4]
7859	cmp	r4, lr
7860	bne	.L1014
7861.L1013:
7862	movs	r2, #1
7863	add	r1, sp, #4
7864	mov	r0, r6
7865	bl	log2phys
7866	add	sp, sp, #8
7867	@ sp needed
7868	pop	{r4, r5, r6, r7, r8, pc}
7869.L1022:
7870	.align	2
7871.L1021:
7872	.word	.LANCHOR42
7873	.word	.LANCHOR47
7874	.word	.LANCHOR40
7875	.word	.LANCHOR48
7876	.word	.LANCHOR160
7877	.word	.LC1
7878	.word	-1431655765
7879	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
7880	.section	.text.ftl_check_vpc,"ax",%progbits
7881	.align	1
7882	.global	ftl_check_vpc
7883	.syntax unified
7884	.thumb
7885	.thumb_func
7886	.fpu softvfp
7887	.type	ftl_check_vpc, %function
7888ftl_check_vpc:
7889	@ args = 0, pretend = 0, frame = 8
7890	@ frame_needed = 0, uses_anonymous_args = 0
7891	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7892	movs	r4, #0
7893	ldr	r6, .L1047
7894	ldr	r5, .L1047+4
7895	ldr	r1, .L1047+8
7896	ldr	r0, .L1047+12
7897	bl	printf
7898	mov	r2, #8192
7899	movs	r1, #0
7900	ldr	r0, .L1047+4
7901	bl	ftl_memset
7902.L1024:
7903	ldr	r3, [r6]
7904	cmp	r4, r3
7905	bcc	.L1026
7906	ldr	r10, .L1047+48
7907	movs	r4, #0
7908	ldr	r7, .L1047+16
7909	mov	r6, r4
7910.L1027:
7911	ldrh	r2, [r10]
7912	uxth	r3, r4
7913	cmp	r2, r3
7914	bhi	.L1029
7915	ldr	r3, .L1047+20
7916	ldr	r4, [r3]
7917	cbz	r4, .L1030
7918	ldr	r3, .L1047+24
7919	mov	r8, #0
7920	ldr	r5, .L1047+28
7921	ldr	r10, .L1047+16
7922	ldrh	r7, [r3]
7923	ldr	r3, [r5]
7924	ldr	fp, .L1047+4
7925	subs	r4, r4, r3
7926	ldr	r3, .L1047+32
7927	asrs	r4, r4, #1
7928	muls	r4, r3, r4
7929	uxth	r4, r4
7930.L1031:
7931	uxth	r3, r8
7932	cmp	r7, r3
7933	bls	.L1030
7934	ldr	r3, [r10]
7935	ldrh	r2, [r3, r4, lsl #1]
7936	cbz	r2, .L1032
7937	movs	r6, #1
7938	ldrh	r3, [fp, r4, lsl #1]
7939	mov	r1, r4
7940	ldr	r0, .L1047+36
7941	bl	printf
7942.L1032:
7943	movs	r3, #6
7944	ldr	r2, [r5]
7945	muls	r4, r3, r4
7946	movw	r3, #65535
7947	add	r8, r8, #1
7948	ldrh	r4, [r2, r4]
7949	cmp	r4, r3
7950	bne	.L1031
7951.L1030:
7952	cbz	r6, .L1023
7953	movw	r2, #2343
7954	ldr	r1, .L1047+8
7955	ldr	r0, .L1047+40
7956	bl	printf
7957.L1023:
7958	add	sp, sp, #8
7959	@ sp needed
7960	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7961.L1026:
7962	movs	r2, #0
7963	add	r1, sp, #4
7964	mov	r0, r4
7965	bl	log2phys
7966	ldr	r0, [sp, #4]
7967	adds	r3, r0, #1
7968	beq	.L1025
7969	ubfx	r0, r0, #10, #16
7970	bl	P2V_block_in_plane
7971	ldrh	r3, [r5, r0, lsl #1]
7972	adds	r3, r3, #1
7973	strh	r3, [r5, r0, lsl #1]	@ movhi
7974.L1025:
7975	adds	r4, r4, #1
7976	b	.L1024
7977.L1029:
7978	ldr	r3, [r7]
7979	uxth	r5, r4
7980	ldr	r8, .L1047+4
7981	ldrh	r2, [r3, r5, lsl #1]
7982	ldrh	r3, [r8, r5, lsl #1]
7983	cmp	r2, r3
7984	beq	.L1028
7985	mov	r1, r5
7986	ldr	r0, .L1047+44
7987	bl	printf
7988	ldr	r3, [r7]
7989	movw	r2, #65535
7990	ldrh	r3, [r3, r5, lsl #1]
7991	cmp	r3, r2
7992	beq	.L1028
7993	ldrh	r2, [r8, r5, lsl #1]
7994	cmp	r2, r3
7995	it	hi
7996	movhi	r6, #1
7997.L1028:
7998	adds	r4, r4, #1
7999	b	.L1027
8000.L1048:
8001	.align	2
8002.L1047:
8003	.word	.LANCHOR61
8004	.word	check_vpc_table
8005	.word	.LANCHOR161
8006	.word	.LC94
8007	.word	.LANCHOR42
8008	.word	.LANCHOR47
8009	.word	.LANCHOR48
8010	.word	.LANCHOR40
8011	.word	-1431655765
8012	.word	.LC96
8013	.word	.LC1
8014	.word	.LC95
8015	.word	.LANCHOR5
8016	.size	ftl_check_vpc, .-ftl_check_vpc
8017	.section	.text.ftl_scan_all_data,"ax",%progbits
8018	.align	1
8019	.global	ftl_scan_all_data
8020	.syntax unified
8021	.thumb
8022	.thumb_func
8023	.fpu softvfp
8024	.type	ftl_scan_all_data, %function
8025ftl_scan_all_data:
8026	@ args = 0, pretend = 0, frame = 8
8027	@ frame_needed = 0, uses_anonymous_args = 0
8028	push	{r4, r5, r6, r7, r8, lr}
8029	movs	r5, #0
8030	ldr	r7, .L1063
8031	sub	sp, sp, #32
8032	movs	r1, #0
8033	ldr	r8, .L1063+24
8034	ldr	r0, .L1063+4
8035	bl	printf
8036.L1050:
8037	ldr	r3, [r7]
8038	cmp	r5, r3
8039	bcc	.L1056
8040	add	sp, sp, #32
8041	@ sp needed
8042	pop	{r4, r5, r6, r7, r8, pc}
8043.L1056:
8044	movs	r2, #0
8045	add	r1, sp, #28
8046	mov	r0, r5
8047	bl	log2phys
8048	ubfx	r3, r5, #0, #11
8049	cbnz	r3, .L1051
8050	ldr	r2, [sp, #28]
8051	mov	r1, r5
8052	mov	r0, r8
8053	bl	printf
8054.L1051:
8055	ldr	r3, [sp, #28]
8056	adds	r2, r3, #1
8057	beq	.L1053
8058	ldr	r4, .L1063+8
8059	movs	r2, #0
8060	movs	r1, #1
8061	str	r3, [r4, #4]
8062	mov	r0, r4
8063	ldr	r3, .L1063+12
8064	str	r5, [r4, #16]
8065	str	r2, [r4]
8066	ldr	r3, [r3]
8067	str	r3, [r4, #8]
8068	ldr	r3, .L1063+16
8069	ldr	r6, [r3]
8070	str	r6, [r4, #12]
8071	bl	FlashReadPages
8072	ldr	r3, [r4]
8073	cmp	r3, #256
8074	beq	.L1054
8075	adds	r3, r3, #1
8076	beq	.L1054
8077	ldr	r3, [r6, #8]
8078	cmp	r5, r3
8079	beq	.L1053
8080.L1054:
8081	ldr	r2, [r4, #8]
8082	ldr	r3, [r4, #12]
8083	ldr	r0, .L1063+20
8084	ldr	r1, [r2, #4]
8085	str	r1, [sp, #16]
8086	mov	r1, r5
8087	ldr	r2, [r2]
8088	str	r2, [sp, #12]
8089	ldr	r2, [r3, #12]
8090	str	r2, [sp, #8]
8091	ldr	r2, [r3, #8]
8092	str	r2, [sp, #4]
8093	ldr	r2, [r3, #4]
8094	str	r2, [sp]
8095	ldr	r2, [r4, #4]
8096	ldr	r3, [r3]
8097	bl	printf
8098.L1053:
8099	adds	r5, r5, #1
8100	b	.L1050
8101.L1064:
8102	.align	2
8103.L1063:
8104	.word	.LANCHOR61
8105	.word	.LC97
8106	.word	.LANCHOR148
8107	.word	.LANCHOR115
8108	.word	.LANCHOR123
8109	.word	.LC99
8110	.word	.LC98
8111	.size	ftl_scan_all_data, .-ftl_scan_all_data
8112	.section	.text.FtlGcScanTempBlk,"ax",%progbits
8113	.align	1
8114	.global	FtlGcScanTempBlk
8115	.syntax unified
8116	.thumb
8117	.thumb_func
8118	.fpu softvfp
8119	.type	FtlGcScanTempBlk, %function
8120FtlGcScanTempBlk:
8121	@ args = 0, pretend = 0, frame = 48
8122	@ frame_needed = 0, uses_anonymous_args = 0
8123	ldr	r3, .L1098
8124	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8125	sub	sp, sp, #48
8126	mov	r4, r0
8127	str	r1, [sp, #8]
8128	ldrh	r5, [r3]
8129	movw	r3, #65535
8130	cmp	r5, r3
8131	beq	.L1090
8132	cbnz	r5, .L1066
8133.L1067:
8134	bl	FtlGcPageVarInit
8135	b	.L1068
8136.L1090:
8137	movs	r5, #0
8138.L1066:
8139	ldr	r3, .L1098+4
8140	ldr	r2, [sp, #8]
8141	ldrh	r3, [r3]
8142	cmp	r3, r2
8143	beq	.L1067
8144.L1068:
8145	ldr	fp, .L1098+52
8146	movs	r3, #0
8147	str	r3, [sp]
8148.L1069:
8149	ldrh	r2, [r4]
8150	movs	r3, #0
8151	strb	r3, [r4, #8]
8152	movw	r3, #65535
8153	cmp	r2, r3
8154	beq	.L1070
8155.L1087:
8156	ldr	r3, .L1098+8
8157	movs	r2, #0
8158	ldr	r0, [fp]
8159	mov	r7, r2
8160	movw	lr, #65535
8161	mov	r8, #20
8162	ldrh	r10, [r3]
8163	ldr	r3, .L1098+12
8164	ldr	r3, [r3]
8165	str	r3, [sp, #12]
8166	ldr	r3, .L1098+16
8167	ldrh	r3, [r3]
8168	str	r3, [sp, #16]
8169	ldr	r3, .L1098+20
8170	ldr	r3, [r3]
8171	str	r3, [sp, #20]
8172	ldr	r3, .L1098+24
8173	ldrh	ip, [r3]
8174	add	r3, r4, #16
8175	str	r3, [sp, #4]
8176.L1071:
8177	uxth	r3, r2
8178	cmp	r10, r3
8179	bhi	.L1073
8180	mov	r10, #0
8181	movs	r2, #0
8182	mov	r1, r7
8183	bl	FlashReadPages
8184.L1074:
8185	uxth	r3, r10
8186	cmp	r7, r3
8187	bhi	.L1085
8188	ldr	r3, [sp]
8189	adds	r5, r5, #1
8190	uxth	r5, r5
8191	adds	r3, r3, #1
8192	str	r3, [sp]
8193	ldr	r2, [sp]
8194	ldr	r3, [sp, #8]
8195	cmp	r3, r2
8196	ldr	r2, .L1098+4
8197	bls	.L1086
8198.L1088:
8199	ldrh	r3, [r2]
8200	cmp	r3, r5
8201	bhi	.L1087
8202.L1070:
8203	ldr	r3, .L1098
8204	movw	r2, #65535
8205	strh	r5, [r4, #2]	@ movhi
8206	mov	r1, r5
8207	mov	r0, r4
8208	strh	r2, [r3]	@ movhi
8209	movs	r2, #0
8210	strb	r2, [r4, #6]
8211	bl	ftl_sb_update_avl_pages
8212	b	.L1089
8213.L1073:
8214	ldr	r1, [sp, #4]
8215	ldrh	r3, [r1], #2
8216	cmp	r3, lr
8217	str	r1, [sp, #4]
8218	beq	.L1072
8219	mla	r1, r8, r7, r0
8220	ldr	r6, [sp, #12]
8221	orr	r3, r5, r3, lsl #10
8222	str	r3, [r1, #4]
8223	ldr	r3, [sp, #16]
8224	muls	r3, r7, r3
8225	bic	r3, r3, #3
8226	add	r3, r3, r6
8227	ldr	r6, [sp, #20]
8228	str	r3, [r1, #8]
8229	mul	r3, ip, r7
8230	adds	r7, r7, #1
8231	uxth	r7, r7
8232	bic	r3, r3, #3
8233	add	r3, r3, r6
8234	str	r3, [r1, #12]
8235.L1072:
8236	adds	r2, r2, #1
8237	b	.L1071
8238.L1085:
8239	movs	r3, #20
8240	ldr	r1, [fp]
8241	mul	r3, r3, r10
8242	adds	r2, r1, r3
8243	ldr	r6, [r1, r3]
8244	ldr	r0, [r2, #4]
8245	str	r0, [sp, #4]
8246	cbnz	r6, .L1075
8247	ldr	r8, [r2, #12]
8248	movw	r2, #65535
8249	ldrh	r1, [r8]
8250	cmp	r1, r2
8251	bne	.L1076
8252.L1075:
8253	ldr	r3, .L1098+28
8254	movs	r1, #0
8255	ldrh	r2, [r4]
8256	movs	r5, #0
8257	ldr	r3, [r3]
8258	strh	r1, [r3, r2, lsl #1]	@ movhi
8259	ldrh	r0, [r4]
8260	bl	INSERT_FREE_LIST
8261	movw	r3, #65535
8262	strh	r3, [r4]	@ movhi
8263	bl	FtlGcPageVarInit
8264	b	.L1069
8265.L1076:
8266	str	r3, [sp, #12]
8267	ldr	r3, .L1098+32
8268	ldr	r0, [r8, #8]
8269	ldr	r2, [r3]
8270	cmp	r0, r2
8271	bhi	.L1075
8272	mov	r2, r6
8273	add	r1, sp, #24
8274	bl	log2phys
8275	ldr	r2, [r8, #12]
8276	ldr	r1, [sp, #24]
8277	ldr	r3, [sp, #12]
8278	cmp	r2, r1
8279	beq	.L1079
8280.L1080:
8281	ldr	r2, [r8, #8]
8282	add	r10, r10, #1
8283	ldr	r1, [sp, #4]
8284	ldr	r0, [r8, #12]
8285	bl	FtlGcUpdatePage
8286	b	.L1074
8287.L1079:
8288	str	r3, [sp, #12]
8289	adds	r3, r2, #1
8290	beq	.L1080
8291	str	r2, [sp, #32]
8292	movs	r1, #1
8293	ldr	r2, .L1098+36
8294	add	r0, sp, #28
8295	ldr	r2, [r2]
8296	str	r2, [sp, #36]
8297	ldr	r2, .L1098+40
8298	ldr	r2, [r2]
8299	str	r2, [sp, #40]
8300	mov	r2, r6
8301	bl	FlashReadPages
8302	ldr	r2, .L1098+44
8303	ldr	r1, [fp]
8304	ldr	r3, [sp, #12]
8305	ldrh	r2, [r2]
8306	ldr	r0, [sp, #36]
8307	add	ip, r3, r1
8308	lsls	r2, r2, #7
8309.L1081:
8310	cmp	r6, r2
8311	beq	.L1080
8312	ldr	r1, [ip, #8]
8313	ldr	r3, [r0, r6, lsl #2]
8314	ldr	r1, [r1, r6, lsl #2]
8315	cmp	r1, r3
8316	beq	.L1082
8317	ldr	r2, [sp, #32]
8318	ldrh	r1, [r4]
8319	ldr	r0, .L1098+48
8320	bl	printf
8321	b	.L1075
8322.L1082:
8323	adds	r6, r6, #1
8324	b	.L1081
8325.L1086:
8326	ldr	r1, .L1098
8327	movw	r0, #65535
8328	ldrh	r3, [r1]
8329	cmp	r3, r0
8330	beq	.L1088
8331	ldr	r0, [sp]
8332	add	r3, r3, r0
8333	strh	r3, [r1]	@ movhi
8334	ldrh	r3, [r2]
8335	cmp	r3, r5
8336	bls	.L1088
8337.L1089:
8338	mov	r0, #-1
8339	add	sp, sp, #48
8340	@ sp needed
8341	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8342.L1099:
8343	.align	2
8344.L1098:
8345	.word	.LANCHOR162
8346	.word	.LANCHOR19
8347	.word	.LANCHOR3
8348	.word	.LANCHOR91
8349	.word	.LANCHOR23
8350	.word	.LANCHOR92
8351	.word	.LANCHOR24
8352	.word	.LANCHOR42
8353	.word	.LANCHOR61
8354	.word	.LANCHOR119
8355	.word	.LANCHOR124
8356	.word	.LANCHOR12
8357	.word	.LC100
8358	.word	.LANCHOR112
8359	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
8360	.section	.text.FtlReadRefresh,"ax",%progbits
8361	.align	1
8362	.global	FtlReadRefresh
8363	.syntax unified
8364	.thumb
8365	.thumb_func
8366	.fpu softvfp
8367	.type	FtlReadRefresh, %function
8368FtlReadRefresh:
8369	@ args = 0, pretend = 0, frame = 88
8370	@ frame_needed = 0, uses_anonymous_args = 0
8371	ldr	r3, .L1113
8372	push	{r4, r5, r6, lr}
8373	sub	sp, sp, #88
8374	mov	r4, r3
8375	ldr	r0, [r3, #80]
8376	cmp	r0, #0
8377	beq	.L1101
8378	ldr	r6, .L1113+4
8379	ldr	r0, [r3, #84]
8380	ldr	r1, [r6]
8381	cmp	r0, r1
8382	bcs	.L1102
8383	mov	r5, #2048
8384.L1107:
8385	ldr	r0, [r4, #84]
8386	ldr	r3, [r6]
8387	cmp	r0, r3
8388	bcs	.L1104
8389	movs	r2, #0
8390	mov	r1, sp
8391	bl	log2phys
8392	ldr	r2, [sp]
8393	ldr	r3, [r4, #84]
8394	adds	r1, r2, #1
8395	add	r3, r3, #1
8396	str	r3, [r4, #84]
8397	beq	.L1105
8398	str	r3, [sp, #20]
8399	add	r0, sp, #88
8400	ldr	r3, .L1113+8
8401	movs	r1, #1
8402	str	r2, [sp, #8]
8403	movs	r2, #0
8404	str	r2, [r0, #-84]!
8405	ldr	r3, [r3]
8406	str	r3, [sp, #12]
8407	add	r3, sp, #24
8408	str	r3, [sp, #16]
8409	bl	FlashReadPages
8410	ldr	r3, [sp, #4]
8411	cmp	r3, #256
8412	bne	.L1104
8413	ldr	r0, [sp]
8414	ubfx	r0, r0, #10, #16
8415	bl	P2V_block_in_plane
8416	bl	FtlGcRefreshBlock
8417.L1104:
8418	mov	r0, #-1
8419.L1100:
8420	add	sp, sp, #88
8421	@ sp needed
8422	pop	{r4, r5, r6, pc}
8423.L1105:
8424	subs	r5, r5, #1
8425	bne	.L1107
8426	b	.L1104
8427.L1102:
8428	ldr	r2, .L1113+12
8429	movs	r0, #0
8430	str	r0, [r3, #80]
8431	str	r0, [r3, #84]
8432	ldr	r2, [r2]
8433	str	r2, [r3, #76]
8434	b	.L1100
8435.L1101:
8436	ldr	r1, [r3, #76]
8437	ldr	r3, .L1113+12
8438	ldr	r5, [r3]
8439	add	r3, r5, #1048576
8440	cmp	r1, r3
8441	bhi	.L1110
8442	ldr	r3, .L1113+16
8443	ldr	r2, [r3]
8444	mov	r3, #33554432
8445	lsrs	r2, r2, #10
8446	asrs	r3, r3, r2
8447	add	r3, r3, r1
8448	cmp	r5, r3
8449	bhi	.L1110
8450	ldr	r3, .L1113+20
8451	ldrb	r3, [r3, #28]	@ zero_extendqisi2
8452	cmp	r3, #0
8453	bne	.L1100
8454.L1110:
8455	movs	r3, #1
8456	movs	r0, #0
8457	str	r3, [r4, #80]
8458	str	r0, [r4, #84]
8459	str	r5, [r4, #76]
8460	b	.L1100
8461.L1114:
8462	.align	2
8463.L1113:
8464	.word	.LANCHOR81
8465	.word	.LANCHOR61
8466	.word	.LANCHOR121
8467	.word	.LANCHOR62
8468	.word	.LANCHOR76
8469	.word	.LANCHOR39
8470	.size	FtlReadRefresh, .-FtlReadRefresh
8471	.section	.text.FtlMapBlkWriteDump_data,"ax",%progbits
8472	.align	1
8473	.global	FtlMapBlkWriteDump_data
8474	.syntax unified
8475	.thumb
8476	.thumb_func
8477	.fpu softvfp
8478	.type	FtlMapBlkWriteDump_data, %function
8479FtlMapBlkWriteDump_data:
8480	@ args = 0, pretend = 0, frame = 0
8481	@ frame_needed = 0, uses_anonymous_args = 0
8482	ldr	r3, [r0, #36]
8483	push	{r4, r5, r6, lr}
8484	mov	r6, r0
8485	cbz	r3, .L1115
8486	ldrh	r5, [r0, #6]
8487	movs	r3, #0
8488	ldr	r2, [r0, #24]
8489	str	r3, [r0, #36]
8490	subs	r5, r5, #1
8491	ldr	r3, .L1119
8492	ldr	r1, .L1119+4
8493	uxth	r5, r5
8494	ldr	r4, .L1119+8
8495	ldr	r2, [r2, r5, lsl #2]
8496	ldr	r0, [r3]
8497	ldr	r1, [r1]
8498	str	r2, [r4, #4]
8499	str	r0, [r4, #8]
8500	str	r1, [r4, #12]
8501	cbz	r2, .L1117
8502	movs	r2, #1
8503	mov	r0, r4
8504	mov	r1, r2
8505	bl	FlashReadPages
8506.L1118:
8507	ldr	r2, [r4, #8]
8508	mov	r1, r5
8509	mov	r0, r6
8510	pop	{r4, r5, r6, lr}
8511	b	FtlMapWritePage
8512.L1117:
8513	ldr	r3, .L1119+12
8514	movs	r1, #255
8515	ldrh	r2, [r3]
8516	bl	ftl_memset
8517	b	.L1118
8518.L1115:
8519	pop	{r4, r5, r6, pc}
8520.L1120:
8521	.align	2
8522.L1119:
8523	.word	.LANCHOR116
8524	.word	.LANCHOR123
8525	.word	.LANCHOR148
8526	.word	.LANCHOR23
8527	.size	FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
8528	.section	.text.FlashTestBlk,"ax",%progbits
8529	.align	1
8530	.global	FlashTestBlk
8531	.syntax unified
8532	.thumb
8533	.thumb_func
8534	.fpu softvfp
8535	.type	FlashTestBlk, %function
8536FlashTestBlk:
8537	@ args = 0, pretend = 0, frame = 88
8538	@ frame_needed = 0, uses_anonymous_args = 0
8539	cmp	r0, #11
8540	push	{r4, r5, lr}
8541	mov	r4, r0
8542	sub	sp, sp, #92
8543	bls	.L1123
8544	ldr	r5, .L1124
8545	add	r0, sp, #24
8546	movs	r2, #32
8547	movs	r1, #165
8548	str	r0, [sp, #16]
8549	lsls	r4, r4, #10
8550	ldr	r3, [r5]
8551	str	r3, [sp, #12]
8552	bl	ftl_memset
8553	movs	r2, #8
8554	movs	r1, #90
8555	ldr	r0, [r5]
8556	bl	ftl_memset
8557	movs	r2, #1
8558	add	r0, sp, #4
8559	mov	r1, r2
8560	str	r4, [sp, #8]
8561	bl	FlashEraseBlocks
8562	movs	r3, #1
8563	add	r0, sp, #4
8564	mov	r2, r3
8565	mov	r1, r3
8566	bl	FlashProgPages
8567	ldr	r4, [sp, #4]
8568	movs	r2, #1
8569	movs	r1, #0
8570	add	r0, sp, #4
8571	adds	r4, r4, #0
8572	it	ne
8573	movne	r4, #1
8574	negs	r4, r4
8575	bl	FlashEraseBlocks
8576.L1121:
8577	mov	r0, r4
8578	add	sp, sp, #92
8579	@ sp needed
8580	pop	{r4, r5, pc}
8581.L1123:
8582	movs	r4, #0
8583	b	.L1121
8584.L1125:
8585	.align	2
8586.L1124:
8587	.word	.LANCHOR121
8588	.size	FlashTestBlk, .-FlashTestBlk
8589	.section	.text.FtlBbmTblFlush,"ax",%progbits
8590	.align	1
8591	.global	FtlBbmTblFlush
8592	.syntax unified
8593	.thumb
8594	.thumb_func
8595	.fpu softvfp
8596	.type	FtlBbmTblFlush, %function
8597FtlBbmTblFlush:
8598	@ args = 0, pretend = 0, frame = 8
8599	@ frame_needed = 0, uses_anonymous_args = 0
8600	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
8601	movs	r4, #0
8602	ldr	r7, .L1135
8603	movs	r1, #0
8604	ldr	r5, .L1135+4
8605	ldr	r3, [r7]
8606	mov	fp, r7
8607	ldr	r8, .L1135+48
8608	ldr	r6, .L1135+8
8609	str	r3, [r5, #12]
8610	ldr	r7, .L1135+12
8611	ldr	r3, .L1135+16
8612	ldr	r10, .L1135+52
8613	ldr	r0, [r8]
8614	ldrh	r2, [r3]
8615	str	r0, [r5, #8]
8616	bl	ftl_memset
8617.L1127:
8618	ldrh	r3, [r7]
8619	cmp	r4, r3
8620	blt	.L1128
8621	ldr	r6, [r5, #12]
8622	movs	r2, #16
8623	ldr	r4, .L1135+20
8624	movs	r1, #255
8625	movs	r7, #0
8626	mov	r0, r6
8627	bl	ftl_memset
8628	movw	r3, #61649
8629	mov	r10, r4
8630	strh	r3, [r6]	@ movhi
8631	ldr	r3, [r4, #8]
8632	str	r7, [sp, #12]
8633	str	r3, [r6, #4]
8634	ldrh	r3, [r4]
8635	strh	r3, [r6, #2]	@ movhi
8636	ldrh	r3, [r4, #4]
8637	strh	r3, [r6, #8]	@ movhi
8638	ldrh	r3, [r4, #6]
8639	strh	r3, [r6, #10]	@ movhi
8640	ldr	r3, .L1135+24
8641	ldr	r3, [r3]
8642	strh	r3, [r6, #12]	@ movhi
8643.L1129:
8644	ldr	r3, [r8]
8645	ldrh	r2, [r4, #2]
8646	ldrh	r1, [r4]
8647	str	r3, [r5, #8]
8648	ldr	r3, [fp]
8649	ldrh	r0, [r6, #10]
8650	str	r3, [r5, #12]
8651	movs	r3, #0
8652	str	r3, [r5]
8653	orr	r3, r2, r1, lsl #10
8654	str	r3, [r5, #4]
8655	ldrh	r3, [r4, #4]
8656	str	r0, [sp]
8657	ldr	r0, .L1135+28
8658	bl	printf
8659	ldr	r3, .L1135+32
8660	ldrh	r2, [r4, #2]
8661	ldrh	r3, [r3]
8662	subs	r3, r3, #1
8663	cmp	r2, r3
8664	blt	.L1130
8665	ldr	r3, [r4, #8]
8666	mov	r1, #0	@ movhi
8667	ldrh	r2, [r4]
8668	strh	r1, [r4, #2]	@ movhi
8669	adds	r3, r3, #1
8670	str	r3, [r4, #8]
8671	str	r3, [r6, #4]
8672	strh	r2, [r6, #8]	@ movhi
8673	ldrh	r3, [r4, #4]
8674	strh	r2, [r4, #4]	@ movhi
8675	ldr	r2, .L1135+36
8676	strh	r3, [r4]	@ movhi
8677	lsls	r3, r3, #10
8678	ldr	r0, [r2]
8679	movs	r2, #1
8680	str	r3, [r5, #4]
8681	mov	r1, r2
8682	str	r3, [r0, #4]
8683	bl	FlashEraseBlocks
8684.L1130:
8685	movs	r3, #1
8686	ldr	r0, .L1135+4
8687	mov	r2, r3
8688	mov	r1, r3
8689	bl	FlashProgPages
8690	ldrh	r3, [r10, #2]
8691	adds	r3, r3, #1
8692	strh	r3, [r10, #2]	@ movhi
8693	ldr	r3, [r5]
8694	adds	r3, r3, #1
8695	bne	.L1131
8696	adds	r7, r7, #1
8697	ldr	r1, [r5, #4]
8698	uxth	r7, r7
8699	ldr	r0, .L1135+40
8700	bl	printf
8701	cmp	r7, #3
8702	bls	.L1129
8703	mov	r2, r7
8704	ldr	r1, [r5, #4]
8705	ldr	r0, .L1135+44
8706	bl	printf
8707.L1133:
8708	b	.L1133
8709.L1128:
8710	ldrh	r2, [r10]
8711	ldr	r3, [r5, #8]
8712	ldr	r1, [r6, #4]!
8713	mul	r0, r2, r4
8714	lsls	r2, r2, #2
8715	adds	r4, r4, #1
8716	add	r0, r3, r0, lsl #2
8717	bl	ftl_memcpy
8718	b	.L1127
8719.L1134:
8720	movs	r3, #1
8721	str	r3, [sp, #12]
8722	b	.L1129
8723.L1131:
8724	ldr	r3, [sp, #12]
8725	cmp	r3, #0
8726	beq	.L1134
8727	movs	r0, #0
8728	add	sp, sp, #16
8729	@ sp needed
8730	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8731.L1136:
8732	.align	2
8733.L1135:
8734	.word	.LANCHOR123
8735	.word	.LANCHOR148
8736	.word	.LANCHOR37+24
8737	.word	.LANCHOR10
8738	.word	.LANCHOR23
8739	.word	.LANCHOR37
8740	.word	.LANCHOR2
8741	.word	.LC101
8742	.word	.LANCHOR20
8743	.word	.LANCHOR106
8744	.word	.LC102
8745	.word	.LC103
8746	.word	.LANCHOR115
8747	.word	.LANCHOR137
8748	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
8749	.section	.text.allocate_data_superblock,"ax",%progbits
8750	.align	1
8751	.global	allocate_data_superblock
8752	.syntax unified
8753	.thumb
8754	.thumb_func
8755	.fpu softvfp
8756	.type	allocate_data_superblock, %function
8757allocate_data_superblock:
8758	@ args = 0, pretend = 0, frame = 8
8759	@ frame_needed = 0, uses_anonymous_args = 0
8760	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
8761	mov	r4, r0
8762.L1138:
8763	ldr	r3, .L1177
8764	ldr	r8, .L1177+68
8765	ldrh	r3, [r3]
8766	ldr	r10, .L1177+72
8767	ldrh	r2, [r8]
8768	add	r3, r3, r2
8769	ldrh	r2, [r10]
8770	cmp	r3, r2
8771	ble	.L1139
8772	movw	r2, #2615
8773	ldr	r1, .L1177+4
8774	ldr	r0, .L1177+8
8775	bl	printf
8776.L1139:
8777	ldr	r3, .L1177+12
8778	cmp	r4, r3
8779	bne	.L1165
8780	ldr	r3, .L1177
8781	ldr	r2, .L1177+16
8782	ldrh	r3, [r3]
8783	ldr	r2, [r2]
8784	lsrs	r1, r3, #1
8785	muls	r2, r3, r2
8786	adds	r1, r1, #1
8787	add	r1, r1, r2, lsr #2
8788	uxth	r1, r1
8789	cbz	r1, .L1140
8790	subs	r1, r1, #1
8791	uxth	r1, r1
8792.L1140:
8793	ldr	r0, .L1177+20
8794	bl	List_pop_index_node
8795	ldr	r3, .L1177
8796	mov	r5, r0
8797	uxth	r7, r0
8798	ldrh	r3, [r3]
8799	cbnz	r3, .L1141
8800	mov	r2, #2624
8801	ldr	r1, .L1177+4
8802	ldr	r0, .L1177+8
8803	bl	printf
8804.L1141:
8805	ldr	r3, .L1177
8806	ldr	r2, .L1177
8807	ldrh	r3, [r3]
8808	subs	r3, r3, #1
8809	strh	r3, [r2]	@ movhi
8810	ldrh	r3, [r10]
8811	cmp	r3, r7
8812	bls	.L1138
8813	uxth	r5, r5
8814	lsls	r3, r5, #1
8815	str	r3, [sp]
8816	ldr	r3, .L1177+24
8817	ldr	r3, [r3]
8818	ldrh	r6, [r3, r5, lsl #1]
8819	cmp	r6, #0
8820	bne	.L1138
8821	strh	r7, [r4]	@ movhi
8822	mov	r0, r4
8823	bl	make_superblock
8824	ldrb	r3, [r4, #7]	@ zero_extendqisi2
8825	cbnz	r3, .L1143
8826	ldr	r3, .L1177+24
8827	movw	r2, #65535
8828	mov	r0, r7
8829	ldr	r3, [r3]
8830	strh	r2, [r3, r5, lsl #1]	@ movhi
8831	bl	INSERT_DATA_LIST
8832	ldr	r3, .L1177
8833	ldrh	r2, [r8]
8834	ldrh	r3, [r3]
8835	add	r3, r3, r2
8836	ldrh	r2, [r10]
8837	cmp	r3, r2
8838	ble	.L1138
8839	movw	r2, #2638
8840	ldr	r1, .L1177+4
8841	ldr	r0, .L1177+8
8842	bl	printf
8843	b	.L1138
8844.L1165:
8845	movs	r1, #0
8846	b	.L1140
8847.L1143:
8848	ldr	r3, .L1177
8849	ldrh	r2, [r8]
8850	ldrh	r3, [r3]
8851	add	r3, r3, r2
8852	ldrh	r2, [r10]
8853	cmp	r3, r2
8854	ble	.L1145
8855	movw	r2, #2641
8856	ldr	r1, .L1177+4
8857	ldr	r0, .L1177+8
8858	bl	printf
8859.L1145:
8860	ldr	r3, .L1177+28
8861	add	lr, r4, #16
8862	ldr	r2, .L1177+32
8863	mov	r8, #0
8864	ldr	ip, [r3]
8865	ldrh	r0, [r2]
8866	movs	r2, #20
8867	mov	r3, ip
8868	mla	r0, r2, r0, ip
8869.L1146:
8870	cmp	r0, r3
8871	bne	.L1148
8872	cbnz	r6, .L1149
8873	movw	r2, #2652
8874	ldr	r1, .L1177+4
8875	ldr	r0, .L1177+8
8876	bl	printf
8877.L1149:
8878	ldr	r3, .L1177+36
8879	ldrh	r3, [r3]
8880	cmp	r3, r7
8881	bne	.L1150
8882	movw	r2, #2654
8883	ldr	r1, .L1177+4
8884	ldr	r0, .L1177+8
8885	bl	printf
8886.L1150:
8887	ldrb	r2, [r4, #8]	@ zero_extendqisi2
8888	ldr	r3, .L1177+40
8889	ldr	fp, .L1177+76
8890	ldr	r8, .L1177+80
8891	ldr	r1, [r3]
8892	cmp	r2, #0
8893	bne	.L1151
8894	ldrh	r2, [r1, r5, lsl #1]
8895	cmp	r2, #0
8896	beq	.L1152
8897	ldr	r0, .L1177+44
8898	ldrh	r0, [r0]
8899	add	r2, r2, r0
8900.L1175:
8901	strh	r2, [r1, r5, lsl #1]	@ movhi
8902	mov	r0, r7
8903	ldr	r2, [fp]
8904	movs	r1, #0
8905	str	r3, [sp, #4]
8906	adds	r2, r2, #1
8907	str	r2, [fp]
8908	bl	ftl_set_blk_mode
8909.L1176:
8910	ldr	r3, [sp, #4]
8911	ldr	r0, [fp]
8912	ldr	r3, [r3]
8913	ldrh	r1, [r3, r5, lsl #1]
8914	ldr	r3, .L1177+48
8915	ldr	r2, [r3]
8916	cmp	r1, r2
8917	it	hi
8918	strhi	r1, [r3]
8919	ldr	r3, .L1177+44
8920	ldrh	r1, [r10]
8921	ldrh	r2, [r3]
8922	ldr	r3, [r8]
8923	mla	r0, r0, r2, r3
8924	bl	__aeabi_uidiv
8925	ldr	r3, .L1177+52
8926	ldr	ip, .L1177+84
8927	str	r0, [r3]
8928	ldr	r3, .L1177+56
8929	ldr	r2, [r3]
8930	ldr	r3, [r2, #16]
8931	adds	r3, r3, #1
8932	str	r3, [r2, #16]
8933	movs	r2, #20
8934	ldr	r3, .L1177+28
8935	ldr	r0, [r3]
8936	adds	r3, r0, #4
8937	mla	r2, r2, r6, r0
8938	adds	r2, r2, #24
8939.L1156:
8940	adds	r3, r3, #20
8941	cmp	r2, r3
8942	bne	.L1157
8943	mov	r2, r6
8944	ldrb	r1, [r4, #8]	@ zero_extendqisi2
8945	mov	r8, #0
8946	bl	FlashEraseBlocks
8947	mov	r10, r8
8948	movs	r3, #20
8949.L1158:
8950	uxth	r2, r8
8951	cmp	r6, r2
8952	bhi	.L1160
8953	cmp	r10, #0
8954	beq	.L1161
8955	mov	r0, r7
8956	bl	update_multiplier_value
8957	bl	FtlBbmTblFlush
8958.L1161:
8959	ldrb	r2, [r4, #7]	@ zero_extendqisi2
8960	cmp	r2, #0
8961	bne	.L1162
8962	ldr	r3, .L1177+24
8963	movw	r2, #65535
8964	ldr	r3, [r3]
8965	strh	r2, [r3, r5, lsl #1]	@ movhi
8966	b	.L1138
8967.L1148:
8968	ldrh	r1, [lr], #2
8969	movw	fp, #65535
8970	str	r8, [r3, #8]
8971	str	r8, [r3, #12]
8972	cmp	r1, fp
8973	beq	.L1147
8974	mla	fp, r2, r6, ip
8975	adds	r6, r6, #1
8976	lsls	r1, r1, #10
8977	uxth	r6, r6
8978	str	r1, [fp, #4]
8979.L1147:
8980	adds	r3, r3, #20
8981	b	.L1146
8982.L1152:
8983	movs	r2, #2
8984	b	.L1175
8985.L1151:
8986	ldrh	r2, [r1, r5, lsl #1]
8987	mov	r0, r7
8988	str	r3, [sp, #4]
8989	adds	r2, r2, #1
8990	strh	r2, [r1, r5, lsl #1]	@ movhi
8991	ldr	r2, [r8]
8992	adds	r2, r2, #1
8993	str	r2, [r8]
8994	bl	ftl_set_blk_mode.part.6
8995	b	.L1176
8996.L1157:
8997	ldr	r1, [r3, #-20]
8998	and	r1, r1, ip
8999	str	r1, [r3, #-20]
9000	b	.L1156
9001.L1160:
9002	ldr	r1, .L1177+28
9003	mul	r2, r3, r8
9004	ldr	r1, [r1]
9005	ldr	fp, [r1, r2]
9006	adds	r0, r1, r2
9007	cmp	fp, #-1
9008	bne	.L1159
9009	ldr	r0, [r0, #4]
9010	add	r10, r10, #1
9011	str	r3, [sp, #4]
9012	ubfx	r0, r0, #10, #16
9013	bl	FtlBbmMapBadBlock
9014	add	r2, r4, r8, lsl #1
9015	ldr	r3, [sp, #4]
9016	strh	fp, [r2, #16]	@ movhi
9017	ldrb	r2, [r4, #7]	@ zero_extendqisi2
9018	subs	r2, r2, #1
9019	strb	r2, [r4, #7]
9020.L1159:
9021	add	r8, r8, #1
9022	b	.L1158
9023.L1162:
9024	ldr	r3, .L1177+60
9025	ldr	r1, .L1177+64
9026	ldrh	r3, [r3]
9027	strh	r7, [r4]	@ movhi
9028	smulbb	r3, r3, r2
9029	movs	r2, #0
9030	strh	r2, [r4, #2]	@ movhi
9031	strb	r2, [r4, #6]
9032	ldr	r2, [r1]
9033	uxth	r3, r3
9034	strh	r3, [r4, #4]	@ movhi
9035	str	r2, [r4, #12]
9036	adds	r2, r2, #1
9037	str	r2, [r1]
9038	ldr	r2, .L1177+24
9039	ldr	r1, [sp]
9040	ldr	r2, [r2]
9041	strh	r3, [r2, r1]	@ movhi
9042	ldrh	r3, [r4, #4]
9043	cbz	r3, .L1163
9044	ldrb	r3, [r4, #7]	@ zero_extendqisi2
9045	cbnz	r3, .L1164
9046.L1163:
9047	movw	r2, #2707
9048	ldr	r1, .L1177+4
9049	ldr	r0, .L1177+8
9050	bl	printf
9051.L1164:
9052	movs	r0, #0
9053	add	sp, sp, #8
9054	@ sp needed
9055	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9056.L1178:
9057	.align	2
9058.L1177:
9059	.word	.LANCHOR48
9060	.word	.LANCHOR163
9061	.word	.LC1
9062	.word	.LANCHOR53
9063	.word	.LANCHOR87
9064	.word	.LANCHOR47
9065	.word	.LANCHOR42
9066	.word	.LANCHOR106
9067	.word	.LANCHOR3
9068	.word	.LANCHOR80
9069	.word	.LANCHOR43
9070	.word	.LANCHOR14
9071	.word	.LANCHOR76
9072	.word	.LANCHOR74
9073	.word	.LANCHOR127
9074	.word	.LANCHOR19
9075	.word	.LANCHOR70
9076	.word	.LANCHOR45
9077	.word	.LANCHOR5
9078	.word	.LANCHOR72
9079	.word	.LANCHOR73
9080	.word	-1024
9081	.size	allocate_data_superblock, .-allocate_data_superblock
9082	.section	.text.FtlGcFreeBadSuperBlk,"ax",%progbits
9083	.align	1
9084	.global	FtlGcFreeBadSuperBlk
9085	.syntax unified
9086	.thumb
9087	.thumb_func
9088	.fpu softvfp
9089	.type	FtlGcFreeBadSuperBlk, %function
9090FtlGcFreeBadSuperBlk:
9091	@ args = 0, pretend = 0, frame = 8
9092	@ frame_needed = 0, uses_anonymous_args = 0
9093	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
9094	mov	r10, r0
9095	ldr	r4, .L1191
9096	ldrh	r3, [r4]
9097	cbz	r3, .L1180
9098	ldr	r8, .L1191+16
9099	movs	r6, #0
9100.L1181:
9101	ldr	r3, .L1191+4
9102	ldrh	r2, [r3]
9103	uxth	r3, r6
9104	cmp	r2, r3
9105	bhi	.L1187
9106	bl	FtlGcReFreshBadBlk
9107.L1180:
9108	movs	r0, #0
9109	add	sp, sp, #8
9110	@ sp needed
9111	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9112.L1187:
9113	ldr	r2, .L1191+8
9114	uxth	r3, r6
9115	mov	r1, r10
9116	movs	r7, #0
9117	ldrb	r0, [r2, r3]	@ zero_extendqisi2
9118	bl	V2P_block
9119	ldr	r2, .L1191+12
9120	mov	fp, r0
9121.L1182:
9122	ldrh	r3, [r4]
9123	uxth	r5, r7
9124	cmp	r3, r5
9125	bhi	.L1186
9126	adds	r6, r6, #1
9127	b	.L1181
9128.L1186:
9129	uxth	r3, r7
9130	ldrh	r1, [r8, r3, lsl #1]
9131	cmp	r1, fp
9132	bne	.L1183
9133	mov	r1, fp
9134	mov	r0, r2
9135	str	r3, [sp, #4]
9136	str	r2, [sp]
9137	bl	printf
9138	mov	r0, fp
9139	bl	FtlBbmMapBadBlock
9140	bl	FtlBbmTblFlush
9141	ldr	r3, [sp, #4]
9142	ldrh	r1, [r4]
9143	ldr	r2, [sp]
9144	add	r3, r8, r3, lsl #1
9145.L1184:
9146	cmp	r5, r1
9147	bcc	.L1185
9148	subs	r1, r1, #1
9149	strh	r1, [r4]	@ movhi
9150.L1183:
9151	adds	r7, r7, #1
9152	b	.L1182
9153.L1185:
9154	ldrh	r0, [r3, #2]!
9155	adds	r5, r5, #1
9156	uxth	r5, r5
9157	strh	r0, [r3, #-2]	@ movhi
9158	b	.L1184
9159.L1192:
9160	.align	2
9161.L1191:
9162	.word	.LANCHOR101
9163	.word	.LANCHOR3
9164	.word	.LANCHOR13
9165	.word	.LC104
9166	.word	.LANCHOR102
9167	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
9168	.section	.text.update_vpc_list,"ax",%progbits
9169	.align	1
9170	.global	update_vpc_list
9171	.syntax unified
9172	.thumb
9173	.thumb_func
9174	.fpu softvfp
9175	.type	update_vpc_list, %function
9176update_vpc_list:
9177	@ args = 0, pretend = 0, frame = 0
9178	@ frame_needed = 0, uses_anonymous_args = 0
9179	push	{r3, r4, r5, lr}
9180	mov	r4, r0
9181	ldr	r3, .L1203
9182	ldr	r3, [r3]
9183	ldrh	r3, [r3, r0, lsl #1]
9184	cmp	r3, #0
9185	bne	.L1194
9186	ldr	r2, .L1203+4
9187	ldrh	r1, [r2]
9188	cmp	r1, r0
9189	bne	.L1195
9190	movw	r3, #65535
9191	strh	r3, [r2]	@ movhi
9192.L1196:
9193	ldr	r5, .L1203+8
9194	mov	r1, r4
9195	ldr	r0, .L1203+12
9196	bl	List_remove_node
9197	ldrh	r3, [r5]
9198	cbnz	r3, .L1198
9199	movw	r2, #2777
9200	ldr	r1, .L1203+16
9201	ldr	r0, .L1203+20
9202	bl	printf
9203.L1198:
9204	ldrh	r3, [r5]
9205	mov	r0, r4
9206	subs	r3, r3, #1
9207	strh	r3, [r5]	@ movhi
9208	bl	free_data_superblock
9209	mov	r0, r4
9210	bl	FtlGcFreeBadSuperBlk
9211	ldr	r3, .L1203+24
9212	ldrh	r2, [r5]
9213	ldrh	r3, [r3]
9214	add	r3, r3, r2
9215	ldr	r2, .L1203+28
9216	ldrh	r2, [r2]
9217	cmp	r3, r2
9218	ble	.L1202
9219	movw	r2, #2780
9220	ldr	r1, .L1203+16
9221	ldr	r0, .L1203+20
9222	bl	printf
9223.L1202:
9224	movs	r3, #1
9225	b	.L1193
9226.L1195:
9227	ldr	r2, .L1203+32
9228	ldrh	r2, [r2]
9229	cmp	r2, r0
9230	beq	.L1193
9231	ldr	r2, .L1203+36
9232	ldrh	r2, [r2]
9233	cmp	r2, r0
9234	beq	.L1193
9235	ldr	r2, .L1203+40
9236	ldrh	r2, [r2]
9237	cmp	r2, r0
9238	bne	.L1196
9239.L1193:
9240	mov	r0, r3
9241	pop	{r3, r4, r5, pc}
9242.L1194:
9243	bl	List_update_data_list
9244	movs	r3, #0
9245	b	.L1193
9246.L1204:
9247	.align	2
9248.L1203:
9249	.word	.LANCHOR42
9250	.word	.LANCHOR80
9251	.word	.LANCHOR45
9252	.word	.LANCHOR41
9253	.word	.LANCHOR164
9254	.word	.LC1
9255	.word	.LANCHOR48
9256	.word	.LANCHOR5
9257	.word	.LANCHOR51
9258	.word	.LANCHOR52
9259	.word	.LANCHOR53
9260	.size	update_vpc_list, .-update_vpc_list
9261	.section	.text.decrement_vpc_count,"ax",%progbits
9262	.align	1
9263	.global	decrement_vpc_count
9264	.syntax unified
9265	.thumb
9266	.thumb_func
9267	.fpu softvfp
9268	.type	decrement_vpc_count, %function
9269decrement_vpc_count:
9270	@ args = 0, pretend = 0, frame = 0
9271	@ frame_needed = 0, uses_anonymous_args = 0
9272	movw	r3, #65535
9273	push	{r4, r5, r6, lr}
9274	cmp	r0, r3
9275	mov	r4, r0
9276	beq	.L1206
9277	ldr	r5, .L1214
9278	ldr	r3, [r5]
9279	ldrh	r2, [r3, r0, lsl #1]
9280	cbnz	r2, .L1207
9281	mov	r1, r0
9282	ldr	r0, .L1214+4
9283	bl	printf
9284	ldr	r3, [r5]
9285	ldrh	r5, [r3, r4, lsl #1]
9286	cbz	r5, .L1208
9287.L1212:
9288	movs	r5, #0
9289.L1205:
9290	mov	r0, r5
9291	pop	{r4, r5, r6, pc}
9292.L1208:
9293	movw	r2, #2795
9294.L1213:
9295	ldr	r1, .L1214+8
9296	ldr	r0, .L1214+12
9297	bl	printf
9298	b	.L1205
9299.L1207:
9300	subs	r2, r2, #1
9301	strh	r2, [r3, r0, lsl #1]	@ movhi
9302.L1206:
9303	ldr	r6, .L1214+16
9304	movw	r3, #65535
9305	ldrh	r0, [r6]
9306	cmp	r0, r3
9307	bne	.L1210
9308	strh	r4, [r6]	@ movhi
9309	b	.L1212
9310.L1210:
9311	cmp	r4, r0
9312	beq	.L1212
9313	bl	update_vpc_list
9314	ldr	r3, .L1214+20
9315	adds	r5, r0, #0
9316	ldr	r2, .L1214+24
9317	it	ne
9318	movne	r5, #1
9319	strh	r4, [r6]	@ movhi
9320	ldr	r3, [r3]
9321	ldr	r2, [r2]
9322	subs	r3, r3, r2
9323	asrs	r2, r3, #1
9324	ldr	r3, .L1214+28
9325	muls	r3, r2, r3
9326	ldr	r2, .L1214
9327	ldr	r2, [r2]
9328	uxth	r1, r3
9329	ldrh	r2, [r2, r1, lsl #1]
9330	cmp	r2, #0
9331	bne	.L1205
9332	cmp	r4, r1
9333	beq	.L1205
9334	movw	r2, #2811
9335	b	.L1213
9336.L1215:
9337	.align	2
9338.L1214:
9339	.word	.LANCHOR42
9340	.word	.LC105
9341	.word	.LANCHOR165
9342	.word	.LC1
9343	.word	.LANCHOR142
9344	.word	.LANCHOR41
9345	.word	.LANCHOR40
9346	.word	-1431655765
9347	.size	decrement_vpc_count, .-decrement_vpc_count
9348	.section	.text.FtlRecoverySuperblock,"ax",%progbits
9349	.align	1
9350	.global	FtlRecoverySuperblock
9351	.syntax unified
9352	.thumb
9353	.thumb_func
9354	.fpu softvfp
9355	.type	FtlRecoverySuperblock, %function
9356FtlRecoverySuperblock:
9357	@ args = 0, pretend = 0, frame = 48
9358	@ frame_needed = 0, uses_anonymous_args = 0
9359	ldrh	r3, [r0]
9360	movw	r2, #65535
9361	push	{r4, r5, r6, r7, r8, r10, fp, lr}
9362	mov	r8, r0
9363	sub	sp, sp, #48
9364	cmp	r3, r2
9365	beq	.L1344
9366	ldrh	r3, [r0, #2]
9367	str	r3, [sp, #4]
9368	ldrb	r3, [r0, #6]	@ zero_extendqisi2
9369	ldr	r1, [sp, #4]
9370	str	r3, [sp, #20]
9371	ldr	r3, .L1352
9372	ldrh	r3, [r3]
9373	cmp	r3, r1
9374	mov	r3, #0
9375	bne	.L1219
9376	strh	r3, [r0, #4]	@ movhi
9377.L1350:
9378	strb	r3, [r8, #6]
9379.L1344:
9380	movs	r0, #0
9381	add	sp, sp, #48
9382	@ sp needed
9383	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9384.L1219:
9385	ldrh	r0, [r0, #16]
9386.L1220:
9387	cmp	r0, r2
9388	uxth	r5, r3
9389	add	r3, r3, #1
9390	beq	.L1221
9391	movs	r1, #1
9392	bl	FtlGetLastWrittenPage
9393	mov	r4, r0
9394	adds	r0, r0, #1
9395	beq	.L1222
9396	ldr	r3, .L1352+4
9397	movs	r2, #0
9398	mov	r5, r2
9399	movw	fp, #65535
9400	mov	r10, #20
9401	ldrh	ip, [r3]
9402	ldr	r3, .L1352+8
9403	ldr	r0, [r3]
9404	ldr	r3, .L1352+12
9405	ldr	r3, [r3]
9406	str	r3, [sp, #8]
9407	ldr	r3, .L1352+16
9408	ldrh	r7, [r3]
9409	ldr	r3, .L1352+20
9410	ldr	r3, [r3]
9411	str	r3, [sp, #12]
9412	ldr	r3, .L1352+24
9413	ldrh	lr, [r3]
9414	add	r3, r8, #16
9415	str	r3, [sp, #16]
9416	str	r3, [sp]
9417.L1223:
9418	uxth	r3, r2
9419	cmp	ip, r3
9420	bhi	.L1227
9421	movs	r2, #0
9422	mov	r1, r5
9423	bl	FlashReadPages
9424	ldr	r2, .L1352+28
9425	uxth	r1, r4
9426	movw	fp, #65535
9427	str	r1, [sp, #12]
9428	ldr	r3, [r2]
9429	subs	r3, r3, #1
9430	str	r3, [sp]
9431	ldr	r3, .L1352+8
9432	ldr	r10, [r3]
9433	movs	r3, #0
9434	mov	r7, r10
9435.L1228:
9436	uxth	r1, r3
9437	cmp	r5, r1
9438	bhi	.L1233
9439	bne	.L1231
9440	adds	r3, r4, #1
9441	uxth	r3, r3
9442	str	r3, [sp, #8]
9443.L1345:
9444	ldr	r0, [r10, #4]
9445	ubfx	r0, r0, #10, #16
9446	bl	P2V_plane
9447	ldr	r3, .L1352
9448	mov	r10, r0
9449	ldr	r2, [sp, #8]
9450	ldrh	r3, [r3]
9451	cmp	r3, r2
9452	bne	.L1235
9453	ldrh	r3, [sp, #8]
9454	strh	r3, [r8, #2]	@ movhi
9455	movs	r3, #0
9456	strb	r3, [r8, #6]
9457	strh	r3, [r8, #4]	@ movhi
9458.L1235:
9459	ldr	r3, [sp, #8]
9460	ldr	r2, [sp, #4]
9461	cmp	r3, r2
9462	bne	.L1236
9463	ldr	r3, [sp, #20]
9464	cmp	r10, r3
9465	bne	.L1236
9466	ldr	r1, [sp, #8]
9467	mov	r2, r10
9468.L1351:
9469	mov	r0, r8
9470	bl	ftl_sb_update_avl_pages
9471	b	.L1344
9472.L1221:
9473	uxth	r1, r3
9474	adds	r1, r1, #8
9475	ldrh	r0, [r8, r1, lsl #1]
9476	b	.L1220
9477.L1222:
9478	ldr	r3, [sp, #4]
9479	cbz	r3, .L1224
9480	movw	r2, #1766
9481	ldr	r1, .L1352+32
9482	ldr	r0, .L1352+36
9483	bl	printf
9484.L1224:
9485	ldr	r3, [sp, #20]
9486	cbz	r3, .L1225
9487	cmp	r5, r3
9488	beq	.L1225
9489	movw	r2, #1767
9490	ldr	r1, .L1352+32
9491	ldr	r0, .L1352+36
9492	bl	printf
9493.L1225:
9494	movs	r3, #0
9495	strh	r3, [r8, #2]	@ movhi
9496	b	.L1350
9497.L1227:
9498	ldr	r1, [sp]
9499	ldrh	r3, [r1], #2
9500	cmp	r3, fp
9501	str	r1, [sp]
9502	beq	.L1226
9503	mla	r1, r10, r5, r0
9504	ldr	r6, [sp, #8]
9505	orr	r3, r4, r3, lsl #10
9506	str	r3, [r1, #4]
9507	mul	r3, r7, r5
9508	bic	r3, r3, #3
9509	add	r3, r3, r6
9510	ldr	r6, [sp, #12]
9511	str	r3, [r1, #8]
9512	mul	r3, lr, r5
9513	adds	r5, r5, #1
9514	uxth	r5, r5
9515	bic	r3, r3, #3
9516	add	r3, r3, r6
9517	str	r3, [r1, #12]
9518.L1226:
9519	adds	r2, r2, #1
9520	b	.L1223
9521.L1233:
9522	ldr	r1, [r7]
9523	cbnz	r1, .L1229
9524	ldr	r1, [r7, #12]
9525	ldr	r6, [r1, #4]
9526	str	r1, [sp, #8]
9527	adds	r1, r6, #1
9528	beq	.L1230
9529	ldr	r1, [r2]
9530	mov	r0, r6
9531	bl	ftl_cmp_data_ver
9532	cbz	r0, .L1230
9533	adds	r6, r6, #1
9534	str	r6, [r2]
9535.L1230:
9536	ldr	r1, [sp, #8]
9537	ldr	r1, [r1]
9538	adds	r1, r1, #1
9539	bne	.L1232
9540.L1231:
9541	uxth	r2, r4
9542	uxth	r3, r3
9543	str	r2, [sp, #8]
9544	movs	r2, #20
9545	mla	r10, r2, r3, r10
9546	b	.L1345
9547.L1229:
9548	ldr	fp, [sp, #12]
9549.L1232:
9550	adds	r3, r3, #1
9551	adds	r7, r7, #20
9552	b	.L1228
9553.L1236:
9554	movw	r3, #65535
9555	cmp	fp, r3
9556	bne	.L1237
9557	ldrb	r3, [r8, #8]	@ zero_extendqisi2
9558	cmp	r3, #0
9559	bne	.L1238
9560.L1237:
9561	ldr	r3, .L1352+40
9562	uxth	r6, r4
9563	uxth	r4, r4
9564	ldr	r7, .L1352+8
9565	ldr	r2, [r3]
9566	adds	r2, r2, #1
9567	itt	eq
9568	ldreq	r2, [sp]
9569	streq	r2, [r3]
9570	ldr	r3, [sp, #4]
9571	adds	r3, r3, #7
9572	cmp	r4, r3
9573	itet	gt
9574	subgt	r4, r6, #7
9575	ldrle	r4, [sp, #4]
9576	uxthgt	r4, r4
9577.L1241:
9578	cmp	r4, r6
9579	bhi	.L1251
9580	ldr	r3, .L1352+4
9581	movw	lr, #65535
9582	ldr	r0, [r7]
9583	mov	ip, #20
9584	ldrh	fp, [r3]
9585	ldr	r3, [sp, #16]
9586	str	r3, [sp, #12]
9587	movs	r3, #0
9588	mov	r5, r3
9589	b	.L1252
9590.L1243:
9591	ldr	r1, [sp, #12]
9592	ldrh	r2, [r1], #2
9593	cmp	r2, lr
9594	str	r1, [sp, #12]
9595	beq	.L1242
9596	mla	r1, ip, r5, r0
9597	adds	r5, r5, #1
9598	orr	r2, r4, r2, lsl #10
9599	uxth	r5, r5
9600	str	r2, [r1, #4]
9601.L1242:
9602	adds	r3, r3, #1
9603.L1252:
9604	uxth	r2, r3
9605	cmp	fp, r2
9606	bhi	.L1243
9607	mov	r1, r5
9608	movs	r2, #0
9609	bl	FlashReadPages
9610	ldr	r3, .L1352+40
9611	movs	r1, #20
9612	movs	r0, #0
9613	movw	ip, #65535
9614	ldr	r2, [r3]
9615	ldr	r3, [r7]
9616	mla	r5, r1, r5, r3
9617.L1244:
9618	cmp	r5, r3
9619	bne	.L1249
9620	cbz	r0, .L1250
9621	ldr	r3, .L1352+40
9622	str	r2, [r3]
9623.L1250:
9624	adds	r4, r4, #1
9625	uxth	r4, r4
9626	b	.L1241
9627.L1353:
9628	.align	2
9629.L1352:
9630	.word	.LANCHOR19
9631	.word	.LANCHOR3
9632	.word	.LANCHOR112
9633	.word	.LANCHOR91
9634	.word	.LANCHOR23
9635	.word	.LANCHOR92
9636	.word	.LANCHOR24
9637	.word	.LANCHOR71
9638	.word	.LANCHOR166
9639	.word	.LC1
9640	.word	.LANCHOR145
9641.L1249:
9642	ldr	r1, [r3]
9643	cmp	r1, #0
9644	beq	.L1245
9645	cbz	r0, .L1238
9646.L1346:
9647	ldr	r3, .L1354
9648	str	r2, [r3]
9649.L1238:
9650	ldr	fp, [sp, #4]
9651	movs	r2, #1
9652	ldr	r6, .L1354+4
9653	ldr	r3, .L1354+8
9654	strh	r2, [r3]	@ movhi
9655.L1253:
9656	ldr	r3, .L1354+12
9657	movw	lr, #65535
9658	ldr	r0, [r6]
9659	movs	r7, #20
9660	ldr	r1, [sp, #16]
9661	ldrh	r4, [r3]
9662	movs	r3, #0
9663	str	r3, [sp, #12]
9664.L1254:
9665	uxth	r2, r3
9666	cmp	r4, r2
9667	bhi	.L1256
9668	movs	r2, #0
9669	ldr	r1, [sp, #12]
9670	bl	FlashReadPages
9671	movs	r3, #0
9672.L1349:
9673	str	r3, [sp, #24]
9674	ldr	r2, [sp, #12]
9675	ldrh	r3, [sp, #24]
9676	cmp	r2, r3
9677	bhi	.L1284
9678	ldr	r3, .L1354+16
9679	add	fp, fp, #1
9680	uxth	fp, fp
9681	ldrh	r3, [r3]
9682	cmp	r3, fp
9683	bne	.L1253
9684	ldr	r2, .L1354+12
9685	movw	r0, #65535
9686	movs	r3, #0
9687	strh	fp, [r8, #2]	@ movhi
9688	strh	r3, [r8, #4]	@ movhi
9689	ldrh	r2, [r2]
9690.L1285:
9691	uxth	r1, r3
9692	cmp	r1, r2
9693	bcs	.L1344
9694	ldr	r1, [sp, #16]
9695	ldrh	r4, [r1], #2
9696	cmp	r4, r0
9697	str	r1, [sp, #16]
9698	add	r1, r3, #1
9699	bne	.L1350
9700	mov	r3, r1
9701	b	.L1285
9702.L1245:
9703	ldr	r1, [r3, #12]
9704	ldrh	lr, [r1]
9705	cmp	lr, ip
9706	beq	.L1248
9707	ldr	r1, [r1, #4]
9708	cmp	r1, #-1
9709	itt	ne
9710	movne	r2, r1
9711	movne	r0, #1
9712.L1248:
9713	adds	r3, r3, #20
9714	b	.L1244
9715.L1251:
9716	mov	r2, #-1
9717	b	.L1346
9718.L1256:
9719	ldrh	r2, [r1], #2
9720	cmp	r2, lr
9721	beq	.L1255
9722	ldr	r5, [sp, #12]
9723	orr	r2, fp, r2, lsl #10
9724	mla	ip, r7, r5, r0
9725	str	r2, [ip, #4]
9726	mov	r2, r5
9727	adds	r2, r2, #1
9728	uxth	r2, r2
9729	str	r2, [sp, #12]
9730.L1255:
9731	adds	r3, r3, #1
9732	b	.L1254
9733.L1284:
9734	ldr	r3, [sp, #24]
9735	movs	r5, #20
9736	muls	r5, r3, r5
9737	ldr	r3, [r6]
9738	str	r3, [sp, #28]
9739	adds	r7, r3, r5
9740	ldr	r4, [r7, #4]
9741	ubfx	r0, r4, #10, #16
9742	str	r4, [sp, #44]
9743	bl	P2V_plane
9744	ldr	r3, [sp, #4]
9745	cmp	fp, r3
9746	bcc	.L1258
9747	ldr	r3, [sp, #28]
9748	bne	.L1259
9749	ldr	r2, [sp, #20]
9750	cmp	r2, r0
9751	bhi	.L1258
9752.L1259:
9753	ldr	r2, [sp, #8]
9754	cmp	fp, r2
9755	bne	.L1260
9756	cmp	r10, r0
9757	beq	.L1261
9758.L1260:
9759	ldr	r3, [r3, r5]
9760	adds	r3, r3, #1
9761	beq	.L1262
9762	ldr	r3, [r7, #12]
9763	movw	r2, #61589
9764	ldrh	r1, [r3]
9765	cmp	r1, r2
9766	beq	.L1263
9767	ldrh	r0, [r8]
9768.L1347:
9769	bl	decrement_vpc_count
9770	b	.L1258
9771.L1263:
9772	ldr	r2, [r3, #4]
9773	str	r2, [sp]
9774	adds	r2, r2, #1
9775	beq	.L1264
9776	ldr	r2, .L1354+20
9777	ldr	r0, [sp]
9778	ldr	r1, [r2]
9779	bl	ftl_cmp_data_ver
9780	cbz	r0, .L1264
9781	ldr	r1, [sp]
9782	adds	r1, r1, #1
9783	str	r1, [r2]
9784.L1264:
9785	ldr	r4, [r3, #8]
9786	add	r1, sp, #40
9787	ldr	r3, [r3, #12]
9788	movs	r2, #0
9789	mov	r0, r4
9790	str	r3, [sp, #36]
9791	bl	log2phys
9792	ldr	r3, .L1354
9793	ldr	r1, [r3]
9794	adds	r3, r1, #1
9795	beq	.L1265
9796	ldr	r0, [sp]
9797	bl	ftl_cmp_data_ver
9798	cmp	r0, #0
9799	beq	.L1265
9800	ldr	r3, [sp, #36]
9801	adds	r7, r3, #1
9802	beq	.L1266
9803	ldr	r0, [r6]
9804	movs	r2, #0
9805	movs	r1, #1
9806	add	r0, r0, r5
9807	str	r3, [r0, #4]
9808	ldr	r7, [r0, #12]
9809	bl	FlashReadPages
9810	ldr	r2, [r6]
9811	ldr	r1, [r2, r5]
9812	adds	r3, r2, r5
9813	adds	r1, r1, #1
9814	bne	.L1267
9815.L1268:
9816	mov	r3, #-1
9817	str	r3, [sp, #36]
9818.L1275:
9819	ldr	r7, [sp, #36]
9820	adds	r0, r7, #1
9821	beq	.L1258
9822.L1288:
9823	ubfx	r0, r7, #10, #16
9824	bl	P2V_block_in_plane
9825	ldr	r3, .L1354+24
9826	mov	r4, r0
9827	ldrh	r3, [r3]
9828	cmp	r3, r0
9829	bhi	.L1280
9830	movw	r2, #2019
9831	ldr	r1, .L1354+28
9832	ldr	r0, .L1354+32
9833	bl	printf
9834.L1280:
9835	ldr	r3, .L1354+36
9836	ldr	r3, [r3]
9837	ldrh	r3, [r3, r4, lsl #1]
9838	cmp	r3, #0
9839	beq	.L1281
9840	mov	r0, r4
9841	b	.L1347
9842.L1266:
9843	ldr	r3, [sp, #44]
9844	ldr	r2, [sp, #40]
9845	cmp	r2, r3
9846	bne	.L1258
9847	movs	r2, #1
9848	add	r1, sp, #36
9849	mov	r0, r4
9850	bl	log2phys
9851.L1258:
9852	ldr	r3, [sp, #24]
9853	adds	r3, r3, #1
9854	b	.L1349
9855.L1267:
9856	ldr	r1, [r7, #8]
9857	cmp	r4, r1
9858	bne	.L1268
9859	ldr	r0, .L1354
9860	ldr	r1, [r7, #4]
9861	ldr	r0, [r0]
9862	str	r1, [sp, #28]
9863	bl	ftl_cmp_data_ver
9864	cmp	r0, #0
9865	beq	.L1268
9866	ldr	r1, [sp, #40]
9867	ldr	r0, [sp, #44]
9868	cmp	r1, r0
9869	bne	.L1270
9870.L1273:
9871	ldr	r1, [sp, #36]
9872	mov	r0, r4
9873	bl	FtlReUsePrevPpa
9874	b	.L1268
9875.L1270:
9876	ldr	r0, [sp, #36]
9877	cmp	r1, r0
9878	beq	.L1268
9879	adds	r0, r1, #1
9880	beq	.L1271
9881	str	r1, [r3, #4]
9882	movs	r2, #0
9883	movs	r1, #1
9884	mov	r0, r3
9885	ldr	r7, [r3, #12]
9886	bl	FlashReadPages
9887.L1272:
9888	ldr	r3, [r6]
9889	ldr	r3, [r3, r5]
9890	adds	r3, r3, #1
9891	beq	.L1273
9892	ldr	r3, [r7, #4]
9893	ldr	r2, .L1354
9894	mov	r1, r3
9895	ldr	r0, [r2]
9896	bl	ftl_cmp_data_ver
9897	cmp	r0, #0
9898	beq	.L1273
9899	mov	r1, r3
9900	ldr	r0, [sp, #28]
9901	bl	ftl_cmp_data_ver
9902	cmp	r0, #0
9903	beq	.L1268
9904	b	.L1273
9905.L1271:
9906	str	r1, [r2, r5]
9907	b	.L1272
9908.L1265:
9909	ldr	r3, [sp, #44]
9910	ldr	r2, [sp, #40]
9911	cmp	r2, r3
9912	beq	.L1275
9913	movs	r2, #1
9914	add	r1, sp, #44
9915	mov	r0, r4
9916	bl	log2phys
9917	ldr	r7, [sp, #40]
9918	adds	r5, r7, #1
9919	beq	.L1275
9920	ldr	r3, [sp, #36]
9921	cmp	r7, r3
9922	beq	.L1288
9923	ubfx	r0, r7, #10, #16
9924	bl	P2V_block_in_plane
9925	ldr	r3, .L1354+40
9926	ldrh	r3, [r3]
9927	cmp	r3, r0
9928	beq	.L1279
9929	ldr	r3, .L1354+44
9930	ldrh	r3, [r3]
9931	cmp	r3, r0
9932	beq	.L1279
9933	ldr	r3, .L1354+48
9934	ldrh	r3, [r3]
9935	cmp	r3, r0
9936	bne	.L1275
9937.L1279:
9938	ldr	r0, [r6]
9939	movs	r2, #0
9940	movs	r1, #1
9941	str	r7, [r0, #4]
9942	ldr	r5, [r0, #12]
9943	bl	FlashReadPages
9944	ldr	r3, [r6]
9945	ldr	r3, [r3]
9946	adds	r3, r3, #1
9947	beq	.L1275
9948	ldr	r1, [r5, #4]
9949	ldr	r0, [sp]
9950	bl	ftl_cmp_data_ver
9951	cmp	r0, #0
9952	bne	.L1275
9953	movs	r2, #1
9954	add	r1, sp, #40
9955	mov	r0, r4
9956	bl	log2phys
9957	b	.L1275
9958.L1355:
9959	.align	2
9960.L1354:
9961	.word	.LANCHOR145
9962	.word	.LANCHOR112
9963	.word	.LANCHOR167
9964	.word	.LANCHOR3
9965	.word	.LANCHOR19
9966	.word	.LANCHOR71
9967	.word	.LANCHOR5
9968	.word	.LANCHOR166
9969	.word	.LC1
9970	.word	.LANCHOR42
9971	.word	.LANCHOR51
9972	.word	.LANCHOR52
9973	.word	.LANCHOR53
9974.L1281:
9975	mov	r1, r4
9976	ldr	r0, .L1356
9977	bl	printf
9978	b	.L1258
9979.L1262:
9980	ldr	r3, .L1356+4
9981	ldr	r3, [r3]
9982	cmp	r3, #31
9983	bhi	.L1282
9984	ldr	r2, .L1356+8
9985	str	r4, [r2, r3, lsl #2]
9986	adds	r3, r3, #1
9987	ldr	r2, .L1356+4
9988	str	r3, [r2]
9989.L1282:
9990	ldrh	r0, [r8]
9991	bl	decrement_vpc_count
9992	ldr	r3, .L1356+12
9993	ldr	r2, [r3]
9994	adds	r1, r2, #1
9995	bne	.L1283
9996	ldr	r2, [sp]
9997.L1348:
9998	str	r2, [r3]
9999	b	.L1258
10000.L1283:
10001	ldr	r1, [sp]
10002	cmp	r1, r2
10003	bcs	.L1258
10004	mov	r2, r1
10005	b	.L1348
10006.L1261:
10007	strb	r10, [r8, #6]
10008	mov	r2, r10
10009	strh	fp, [r8, #2]	@ movhi
10010	mov	r1, fp
10011	b	.L1351
10012.L1357:
10013	.align	2
10014.L1356:
10015	.word	.LC106
10016	.word	.LANCHOR168
10017	.word	.LANCHOR169
10018	.word	.LANCHOR145
10019	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
10020	.section	.text.FtlWriteDump_data,"ax",%progbits
10021	.align	1
10022	.global	FtlWriteDump_data
10023	.syntax unified
10024	.thumb
10025	.thumb_func
10026	.fpu softvfp
10027	.type	FtlWriteDump_data, %function
10028FtlWriteDump_data:
10029	@ args = 0, pretend = 0, frame = 24
10030	@ frame_needed = 0, uses_anonymous_args = 0
10031	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10032	sub	sp, sp, #24
10033	ldr	r4, .L1377
10034	ldrh	r2, [r4, #4]
10035	cmp	r2, #0
10036	beq	.L1359
10037	ldrb	r3, [r4, #8]	@ zero_extendqisi2
10038	cmp	r3, #0
10039	bne	.L1359
10040	ldr	r3, .L1377+4
10041	ldrb	r1, [r4, #7]	@ zero_extendqisi2
10042	ldrh	r3, [r3]
10043	muls	r3, r1, r3
10044	cmp	r2, r3
10045	beq	.L1359
10046	ldrb	r7, [r4, #10]	@ zero_extendqisi2
10047	cbnz	r7, .L1358
10048	ldr	r3, .L1377+8
10049	mov	r2, r7
10050	mov	r1, sp
10051	ldr	r6, [r3]
10052	ldr	r3, .L1377+12
10053	subs	r6, r6, #1
10054	mov	r0, r6
10055	ldrh	r8, [r3]
10056	bl	log2phys
10057	ldr	r2, .L1377+16
10058	ldr	r3, [sp]
10059	str	r6, [sp, #20]
10060	ldr	r0, [r2]
10061	ldr	r2, .L1377+20
10062	str	r3, [sp, #8]
10063	adds	r3, r3, #1
10064	str	r0, [sp, #12]
10065	ldr	r5, [r2]
10066	str	r5, [sp, #16]
10067	str	r7, [r5, #4]
10068	beq	.L1361
10069	mov	r2, r7
10070	movs	r1, #1
10071	add	r0, sp, #4
10072	bl	FlashReadPages
10073.L1362:
10074	ldr	fp, .L1377
10075	lsl	r8, r8, #2
10076	ldr	r10, .L1377+28
10077	movs	r7, #0
10078	movw	r3, #61589
10079	strh	r3, [r5]	@ movhi
10080.L1363:
10081	cmp	r8, r7
10082	bne	.L1367
10083.L1364:
10084	movs	r3, #1
10085.L1376:
10086	strb	r3, [r4, #10]
10087.L1358:
10088	add	sp, sp, #24
10089	@ sp needed
10090	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10091.L1361:
10092	ldr	r3, .L1377+24
10093	movs	r1, #255
10094	ldrh	r2, [r3]
10095	bl	ftl_memset
10096	b	.L1362
10097.L1367:
10098	ldrh	r3, [r4, #4]
10099	cmp	r3, #0
10100	beq	.L1364
10101	ldr	r3, [sp, #8]
10102	mov	r0, fp
10103	str	r6, [r5, #8]
10104	adds	r7, r7, #1
10105	str	r3, [r5, #12]
10106	ldrh	r3, [r4]
10107	strh	r3, [r5, #2]	@ movhi
10108	bl	get_new_active_ppa
10109	ldr	r3, [r10]
10110	movs	r1, #1
10111	str	r0, [sp, #8]
10112	add	r0, sp, #4
10113	str	r3, [r5, #4]
10114	adds	r3, r3, #1
10115	adds	r2, r3, #1
10116	it	eq
10117	moveq	r3, #0
10118	str	r3, [r10]
10119	movs	r3, #0
10120	mov	r2, r3
10121	bl	FlashProgPages
10122	ldrh	r0, [r4]
10123	bl	decrement_vpc_count
10124	b	.L1363
10125.L1359:
10126	movs	r3, #0
10127	b	.L1376
10128.L1378:
10129	.align	2
10130.L1377:
10131	.word	.LANCHOR51
10132	.word	.LANCHOR19
10133	.word	.LANCHOR61
10134	.word	.LANCHOR3
10135	.word	.LANCHOR115
10136	.word	.LANCHOR123
10137	.word	.LANCHOR23
10138	.word	.LANCHOR71
10139	.size	FtlWriteDump_data, .-FtlWriteDump_data
10140	.section	.text.l2p_flush,"ax",%progbits
10141	.align	1
10142	.global	l2p_flush
10143	.syntax unified
10144	.thumb
10145	.thumb_func
10146	.fpu softvfp
10147	.type	l2p_flush, %function
10148l2p_flush:
10149	@ args = 0, pretend = 0, frame = 0
10150	@ frame_needed = 0, uses_anonymous_args = 0
10151	push	{r4, r5, r6, lr}
10152	movs	r4, #0
10153	ldr	r5, .L1383
10154	ldr	r6, .L1383+4
10155	bl	FtlWriteDump_data
10156.L1380:
10157	ldrh	r3, [r5]
10158	uxth	r0, r4
10159	cmp	r3, r0
10160	bhi	.L1382
10161	movs	r0, #0
10162	pop	{r4, r5, r6, pc}
10163.L1382:
10164	ldr	r2, [r6]
10165	uxth	r3, r4
10166	movs	r1, #12
10167	mla	r3, r1, r3, r2
10168	ldr	r3, [r3, #4]
10169	cmp	r3, #0
10170	bge	.L1381
10171	bl	flush_l2p_region
10172.L1381:
10173	adds	r4, r4, #1
10174	b	.L1380
10175.L1384:
10176	.align	2
10177.L1383:
10178	.word	.LANCHOR33
10179	.word	.LANCHOR55
10180	.size	l2p_flush, .-l2p_flush
10181	.section	.text.FtlSuperblockPowerLostFix,"ax",%progbits
10182	.align	1
10183	.global	FtlSuperblockPowerLostFix
10184	.syntax unified
10185	.thumb
10186	.thumb_func
10187	.fpu softvfp
10188	.type	FtlSuperblockPowerLostFix, %function
10189FtlSuperblockPowerLostFix:
10190	@ args = 0, pretend = 0, frame = 24
10191	@ frame_needed = 0, uses_anonymous_args = 0
10192	push	{r4, r5, r6, r7, r8, lr}
10193	mov	r3, #-1
10194	sub	sp, sp, #24
10195	ldr	r2, .L1398
10196	movs	r6, #0
10197	mov	r4, r0
10198	str	r3, [sp, #20]
10199	ldr	r3, .L1398+4
10200	ldr	r5, [r2]
10201	mvn	r2, #2
10202	ldr	r8, .L1398+16
10203	ldr	r3, [r3]
10204	str	r5, [sp, #16]
10205	str	r3, [sp, #12]
10206	str	r2, [r5, #8]
10207	mvn	r2, #1
10208	str	r2, [r5, #12]
10209	ldrh	r2, [r0]
10210	strh	r6, [r5]	@ movhi
10211	strh	r2, [r5, #2]	@ movhi
10212	movw	r2, #61589
10213	str	r2, [r3]
10214	add	r2, r2, #304087040
10215	add	r2, r2, #1269760
10216	addw	r2, r2, #1507
10217	str	r2, [r3, #4]
10218	ldrh	r3, [r0, #4]
10219	tst	r3, #1
10220	ite	eq
10221	moveq	r7, #6
10222	movne	r7, #7
10223.L1391:
10224	ldrh	r3, [r4, #4]
10225	cbnz	r3, .L1387
10226.L1388:
10227	ldr	r3, .L1398+8
10228	ldrh	r1, [r4]
10229	ldrh	r0, [r4, #4]
10230	ldr	r2, [r3]
10231	ldrh	r3, [r2, r1, lsl #1]
10232	subs	r3, r3, r0
10233	strh	r3, [r2, r1, lsl #1]	@ movhi
10234	ldr	r3, .L1398+12
10235	ldrh	r3, [r3]
10236	strh	r3, [r4, #2]	@ movhi
10237	movs	r3, #0
10238	strb	r3, [r4, #6]
10239	strh	r3, [r4, #4]	@ movhi
10240	add	sp, sp, #24
10241	@ sp needed
10242	pop	{r4, r5, r6, r7, r8, pc}
10243.L1387:
10244	mov	r0, r4
10245	bl	get_new_active_ppa
10246	str	r0, [sp, #8]
10247	adds	r0, r0, #1
10248	beq	.L1388
10249	ldr	r3, [r8]
10250	movs	r1, #1
10251	add	r0, sp, #4
10252	str	r3, [r5, #4]
10253	adds	r3, r3, #1
10254	adds	r2, r3, #1
10255	it	eq
10256	moveq	r3, r6
10257	str	r3, [r8]
10258	movs	r3, #0
10259	mov	r2, r3
10260	bl	FlashProgPages
10261	ldrh	r0, [r4]
10262	bl	decrement_vpc_count
10263	subs	r7, r7, #1
10264	bne	.L1391
10265	b	.L1388
10266.L1399:
10267	.align	2
10268.L1398:
10269	.word	.LANCHOR123
10270	.word	.LANCHOR115
10271	.word	.LANCHOR42
10272	.word	.LANCHOR19
10273	.word	.LANCHOR71
10274	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
10275	.section	.text.FtlVendorPartWrite,"ax",%progbits
10276	.align	1
10277	.global	FtlVendorPartWrite
10278	.syntax unified
10279	.thumb
10280	.thumb_func
10281	.fpu softvfp
10282	.type	FtlVendorPartWrite, %function
10283FtlVendorPartWrite:
10284	@ args = 0, pretend = 0, frame = 104
10285	@ frame_needed = 0, uses_anonymous_args = 0
10286	ldr	r3, .L1412
10287	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10288	sub	sp, sp, #104
10289	str	r2, [sp]
10290	adds	r2, r0, r1
10291	mov	r7, r0
10292	mov	r5, r1
10293	ldrh	r3, [r3]
10294	cmp	r2, r3
10295	bhi	.L1408
10296	ldr	r3, .L1412+4
10297	mov	r8, #0
10298	ldrh	r6, [r3]
10299	lsr	r6, r0, r6
10300	lsl	fp, r6, #2
10301.L1402:
10302	cbnz	r5, .L1407
10303.L1400:
10304	mov	r0, r8
10305	add	sp, sp, #104
10306	@ sp needed
10307	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10308.L1407:
10309	ldr	r3, .L1412+8
10310	mov	r0, r7
10311	ldr	r10, .L1412+24
10312	ldr	r3, [r3]
10313	ldr	r2, [r3, fp]
10314	ldr	r3, .L1412+12
10315	str	r2, [sp, #12]
10316	ldrh	r3, [r3]
10317	mov	r1, r3
10318	str	r3, [sp, #8]
10319	bl	__aeabi_uidivmod
10320	ldr	r3, [sp, #8]
10321	ldr	r2, [sp, #12]
10322	str	r1, [sp, #4]
10323	subs	r4, r3, r1
10324	uxth	r4, r4
10325	cmp	r5, r4
10326	it	cc
10327	uxthcc	r4, r5
10328	cbz	r2, .L1404
10329	cmp	r4, r3
10330	beq	.L1404
10331	ldr	r3, [r10]
10332	add	r0, sp, #20
10333	str	r2, [sp, #24]
10334	movs	r2, #1
10335	mov	r1, r2
10336	str	r3, [sp, #28]
10337	add	r3, sp, #40
10338	str	r3, [sp, #32]
10339	bl	FlashReadPages
10340.L1405:
10341	lsls	r3, r4, #9
10342	ldr	r0, [r10]
10343	subs	r5, r5, r4
10344	mov	r2, r3
10345	str	r3, [sp, #8]
10346	ldm	sp, {r1, r3}
10347	add	r7, r7, r4
10348	add	fp, fp, #4
10349	add	r0, r0, r3, lsl #9
10350	bl	ftl_memcpy
10351	ldr	r2, [r10]
10352	mov	r1, r6
10353	ldr	r0, .L1412+16
10354	adds	r6, r6, #1
10355	bl	FtlMapWritePage
10356	ldr	r3, [sp]
10357	adds	r0, r0, #1
10358	it	eq
10359	moveq	r8, #-1
10360	mov	r2, r3
10361	ldr	r3, [sp, #8]
10362	add	r2, r2, r3
10363	str	r2, [sp]
10364	b	.L1402
10365.L1404:
10366	ldr	r3, .L1412+20
10367	movs	r1, #0
10368	ldr	r0, [r10]
10369	ldrh	r2, [r3]
10370	bl	ftl_memset
10371	b	.L1405
10372.L1408:
10373	mov	r8, #-1
10374	b	.L1400
10375.L1413:
10376	.align	2
10377.L1412:
10378	.word	.LANCHOR16
10379	.word	.LANCHOR22
10380	.word	.LANCHOR133
10381	.word	.LANCHOR12
10382	.word	.LANCHOR158
10383	.word	.LANCHOR23
10384	.word	.LANCHOR117
10385	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
10386	.section	.text.Ftl_save_ext_data,"ax",%progbits
10387	.align	1
10388	.global	Ftl_save_ext_data
10389	.syntax unified
10390	.thumb
10391	.thumb_func
10392	.fpu softvfp
10393	.type	Ftl_save_ext_data, %function
10394Ftl_save_ext_data:
10395	@ args = 0, pretend = 0, frame = 0
10396	@ frame_needed = 0, uses_anonymous_args = 0
10397	@ link register save eliminated.
10398	ldr	r2, .L1416
10399	ldr	r3, .L1416+4
10400	ldr	r1, [r2]
10401	cmp	r1, r3
10402	bne	.L1414
10403	ldr	r3, .L1416+8
10404	movs	r1, #1
10405	movs	r0, #0
10406	str	r3, [r2, #4]
10407	ldr	r3, .L1416+12
10408	ldr	r3, [r3]
10409	str	r3, [r2, #88]
10410	ldr	r3, .L1416+16
10411	ldr	r3, [r3]
10412	str	r3, [r2, #92]
10413	ldr	r3, .L1416+20
10414	ldr	r3, [r3]
10415	str	r3, [r2, #8]
10416	ldr	r3, .L1416+24
10417	ldr	r3, [r3]
10418	str	r3, [r2, #12]
10419	ldr	r3, .L1416+28
10420	ldr	r3, [r3]
10421	str	r3, [r2, #16]
10422	ldr	r3, .L1416+32
10423	ldr	r3, [r3]
10424	str	r3, [r2, #20]
10425	ldr	r3, .L1416+36
10426	ldr	r3, [r3]
10427	str	r3, [r2, #28]
10428	ldr	r3, .L1416+40
10429	ldr	r3, [r3]
10430	str	r3, [r2, #32]
10431	ldr	r3, .L1416+44
10432	ldr	r3, [r3]
10433	str	r3, [r2, #36]
10434	ldr	r3, .L1416+48
10435	ldr	r3, [r3]
10436	str	r3, [r2, #40]
10437	ldr	r3, .L1416+52
10438	ldr	r3, [r3]
10439	str	r3, [r2, #44]
10440	ldr	r3, .L1416+56
10441	ldr	r3, [r3]
10442	str	r3, [r2, #48]
10443	b	FtlVendorPartWrite
10444.L1414:
10445	bx	lr
10446.L1417:
10447	.align	2
10448.L1416:
10449	.word	.LANCHOR81
10450	.word	1179929683
10451	.word	1342177352
10452	.word	.LANCHOR68
10453	.word	.LANCHOR69
10454	.word	.LANCHOR67
10455	.word	.LANCHOR64
10456	.word	.LANCHOR62
10457	.word	.LANCHOR66
10458	.word	.LANCHOR73
10459	.word	.LANCHOR75
10460	.word	.LANCHOR63
10461	.word	.LANCHOR65
10462	.word	.LANCHOR76
10463	.word	.LANCHOR77
10464	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
10465	.section	.text.FtlEctTblFlush,"ax",%progbits
10466	.align	1
10467	.global	FtlEctTblFlush
10468	.syntax unified
10469	.thumb
10470	.thumb_func
10471	.fpu softvfp
10472	.type	FtlEctTblFlush, %function
10473FtlEctTblFlush:
10474	@ args = 0, pretend = 0, frame = 0
10475	@ frame_needed = 0, uses_anonymous_args = 0
10476	ldr	r2, .L1423
10477	push	{r3, lr}
10478	ldrh	r3, [r2]
10479	cmp	r3, #31
10480	itett	ls
10481	addls	r3, r3, #1
10482	movhi	r3, #32
10483	strhls	r3, [r2]	@ movhi
10484	movls	r3, #1
10485	ldr	r2, .L1423+4
10486	cbnz	r0, .L1420
10487	ldr	r1, [r2]
10488	ldr	r0, [r1, #20]
10489	ldr	r1, [r1, #16]
10490	add	r3, r3, r0
10491	cmp	r1, r3
10492	bcc	.L1421
10493.L1420:
10494	ldr	r2, [r2]
10495	movs	r0, #64
10496	ldr	r3, [r2, #16]
10497	str	r3, [r2, #20]
10498	ldr	r3, .L1423+8
10499	str	r3, [r2]
10500	ldr	r3, .L1423+12
10501	ldrh	r1, [r3]
10502	lsls	r3, r1, #9
10503	str	r3, [r2, #12]
10504	ldr	r3, [r2, #8]
10505	adds	r3, r3, #1
10506	str	r3, [r2, #8]
10507	movs	r3, #0
10508	str	r3, [r2, #4]
10509	bl	FtlVendorPartWrite
10510	bl	Ftl_save_ext_data
10511.L1421:
10512	movs	r0, #0
10513	pop	{r3, pc}
10514.L1424:
10515	.align	2
10516.L1423:
10517	.word	.LANCHOR170
10518	.word	.LANCHOR127
10519	.word	1112818501
10520	.word	.LANCHOR125
10521	.size	FtlEctTblFlush, .-FtlEctTblFlush
10522	.section	.text.sftl_vendor_write,"ax",%progbits
10523	.align	1
10524	.global	sftl_vendor_write
10525	.syntax unified
10526	.thumb
10527	.thumb_func
10528	.fpu softvfp
10529	.type	sftl_vendor_write, %function
10530sftl_vendor_write:
10531	@ args = 0, pretend = 0, frame = 0
10532	@ frame_needed = 0, uses_anonymous_args = 0
10533	@ link register save eliminated.
10534	add	r0, r0, #256
10535	b	FtlVendorPartWrite
10536	.size	sftl_vendor_write, .-sftl_vendor_write
10537	.section	.text.FtlVendorPartRead,"ax",%progbits
10538	.align	1
10539	.global	FtlVendorPartRead
10540	.syntax unified
10541	.thumb
10542	.thumb_func
10543	.fpu softvfp
10544	.type	FtlVendorPartRead, %function
10545FtlVendorPartRead:
10546	@ args = 0, pretend = 0, frame = 104
10547	@ frame_needed = 0, uses_anonymous_args = 0
10548	ldr	r3, .L1436
10549	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10550	mov	r10, r2
10551	adds	r2, r0, r1
10552	sub	sp, sp, #104
10553	mov	r7, r0
10554	mov	r6, r1
10555	ldrh	r3, [r3]
10556	cmp	r2, r3
10557	bhi	.L1435
10558	ldr	r3, .L1436+4
10559	mov	r8, #0
10560	ldr	fp, .L1436+28
10561	ldrh	r5, [r3]
10562	lsr	r5, r0, r5
10563	lsls	r3, r5, #2
10564	str	r3, [sp]
10565.L1428:
10566	cbnz	r6, .L1434
10567.L1426:
10568	mov	r0, r8
10569	add	sp, sp, #104
10570	@ sp needed
10571	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10572.L1434:
10573	ldr	r3, .L1436+8
10574	mov	r0, r7
10575	ldr	r2, [sp]
10576	ldr	r3, [r3]
10577	ldr	r3, [r3, r2]
10578	ldr	r2, .L1436+12
10579	str	r3, [sp, #8]
10580	ldrh	r4, [r2]
10581	mov	r1, r4
10582	bl	__aeabi_uidivmod
10583	subs	r4, r4, r1
10584	ldr	r3, [sp, #8]
10585	uxth	r4, r4
10586	str	r1, [sp, #4]
10587	cmp	r6, r4
10588	it	cc
10589	uxthcc	r4, r6
10590	lsls	r2, r4, #9
10591	str	r2, [sp, #8]
10592	cmp	r3, #0
10593	beq	.L1430
10594	ldr	r2, [fp]
10595	add	r0, sp, #20
10596	str	r3, [sp, #24]
10597	str	r3, [sp, #12]
10598	str	r2, [sp, #28]
10599	add	r2, sp, #40
10600	str	r2, [sp, #32]
10601	movs	r2, #1
10602	mov	r1, r2
10603	bl	FlashReadPages
10604	ldr	r2, [sp, #20]
10605	ldr	r3, [sp, #12]
10606	adds	r2, r2, #1
10607	ldr	r2, .L1436+16
10608	it	eq
10609	moveq	r8, #-1
10610	ldr	r2, [r2]
10611	cmp	r2, #256
10612	bne	.L1432
10613	mov	r2, r3
10614	mov	r1, r5
10615	ldr	r0, .L1436+20
10616	bl	printf
10617	ldr	r2, [fp]
10618	mov	r1, r5
10619	ldr	r0, .L1436+24
10620	bl	FtlMapWritePage
10621.L1432:
10622	ldr	r1, [fp]
10623	lsls	r2, r4, #9
10624	ldr	r3, [sp, #4]
10625	mov	r0, r10
10626	add	r1, r1, r3, lsl #9
10627	bl	ftl_memcpy
10628.L1433:
10629	ldr	r3, [sp, #8]
10630	adds	r5, r5, #1
10631	subs	r6, r6, r4
10632	add	r7, r7, r4
10633	add	r10, r10, r3
10634	ldr	r3, [sp]
10635	adds	r3, r3, #4
10636	str	r3, [sp]
10637	b	.L1428
10638.L1430:
10639	lsls	r2, r4, #9
10640	mov	r1, r3
10641	mov	r0, r10
10642	bl	ftl_memset
10643	b	.L1433
10644.L1435:
10645	mov	r8, #-1
10646	b	.L1426
10647.L1437:
10648	.align	2
10649.L1436:
10650	.word	.LANCHOR16
10651	.word	.LANCHOR22
10652	.word	.LANCHOR133
10653	.word	.LANCHOR12
10654	.word	.LANCHOR148
10655	.word	.LC107
10656	.word	.LANCHOR158
10657	.word	.LANCHOR117
10658	.size	FtlVendorPartRead, .-FtlVendorPartRead
10659	.section	.text.FtlLoadEctTbl,"ax",%progbits
10660	.align	1
10661	.global	FtlLoadEctTbl
10662	.syntax unified
10663	.thumb
10664	.thumb_func
10665	.fpu softvfp
10666	.type	FtlLoadEctTbl, %function
10667FtlLoadEctTbl:
10668	@ args = 0, pretend = 0, frame = 0
10669	@ frame_needed = 0, uses_anonymous_args = 0
10670	push	{r3, r4, r5, lr}
10671	movs	r0, #64
10672	ldr	r4, .L1440
10673	ldr	r5, .L1440+4
10674	ldr	r2, [r4]
10675	ldrh	r1, [r5]
10676	bl	FtlVendorPartRead
10677	ldr	r3, [r4]
10678	ldr	r2, [r3]
10679	ldr	r3, .L1440+8
10680	cmp	r2, r3
10681	beq	.L1439
10682	ldr	r1, .L1440+12
10683	ldr	r0, .L1440+16
10684	bl	printf
10685	ldrh	r2, [r5]
10686	movs	r1, #0
10687	ldr	r0, [r4]
10688	lsls	r2, r2, #9
10689	bl	ftl_memset
10690.L1439:
10691	movs	r0, #0
10692	pop	{r3, r4, r5, pc}
10693.L1441:
10694	.align	2
10695.L1440:
10696	.word	.LANCHOR127
10697	.word	.LANCHOR125
10698	.word	1112818501
10699	.word	.LC108
10700	.word	.LC71
10701	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
10702	.section	.text.Ftl_load_ext_data,"ax",%progbits
10703	.align	1
10704	.global	Ftl_load_ext_data
10705	.syntax unified
10706	.thumb
10707	.thumb_func
10708	.fpu softvfp
10709	.type	Ftl_load_ext_data, %function
10710Ftl_load_ext_data:
10711	@ args = 0, pretend = 0, frame = 0
10712	@ frame_needed = 0, uses_anonymous_args = 0
10713	push	{r3, r4, r5, lr}
10714	movs	r1, #1
10715	ldr	r4, .L1445
10716	movs	r0, #0
10717	ldr	r5, .L1445+4
10718	mov	r2, r4
10719	bl	FtlVendorPartRead
10720	ldr	r3, [r4]
10721	cmp	r3, r5
10722	beq	.L1443
10723	mov	r2, #512
10724	movs	r1, #0
10725	mov	r0, r4
10726	bl	ftl_memset
10727	str	r5, [r4]
10728.L1443:
10729	ldr	r3, [r4]
10730	cmp	r3, r5
10731	ldr	r3, .L1445+8
10732	bne	.L1444
10733	ldr	r1, [r4, #88]
10734	ldr	r2, .L1445+12
10735	str	r1, [r2]
10736	ldr	r1, [r4, #92]
10737	ldr	r2, .L1445+16
10738	str	r1, [r2]
10739	ldr	r1, [r4, #8]
10740	ldr	r2, .L1445+20
10741	str	r1, [r2]
10742	ldr	r1, [r4, #12]
10743	ldr	r2, .L1445+24
10744	str	r1, [r2]
10745	ldr	r1, [r4, #16]
10746	ldr	r2, .L1445+28
10747	str	r1, [r2]
10748	ldr	r1, [r4, #20]
10749	ldr	r2, .L1445+32
10750	str	r1, [r2]
10751	ldr	r2, [r4, #28]
10752	ldr	r1, [r4, #32]
10753	str	r2, [r3]
10754	ldr	r2, .L1445+36
10755	str	r1, [r2]
10756	ldr	r1, [r4, #36]
10757	ldr	r2, .L1445+40
10758	str	r1, [r2]
10759	ldr	r1, [r4, #40]
10760	ldr	r2, .L1445+44
10761	str	r1, [r2]
10762	ldr	r1, [r4, #44]
10763	ldr	r2, .L1445+48
10764	str	r1, [r2]
10765	ldr	r1, [r4, #48]
10766	ldr	r2, .L1445+52
10767	str	r1, [r2]
10768.L1444:
10769	ldr	r1, .L1445+56
10770	ldr	r2, .L1445+60
10771	ldr	r3, [r3]
10772	ldr	r0, [r1]
10773	ldrh	r2, [r2]
10774	ldr	r1, .L1445+64
10775	mla	r0, r0, r2, r3
10776	ldrh	r1, [r1]
10777	bl	__aeabi_uidiv
10778	ldr	r3, .L1445+68
10779	str	r0, [r3]
10780	pop	{r3, r4, r5, pc}
10781.L1446:
10782	.align	2
10783.L1445:
10784	.word	.LANCHOR81
10785	.word	1179929683
10786	.word	.LANCHOR73
10787	.word	.LANCHOR68
10788	.word	.LANCHOR69
10789	.word	.LANCHOR67
10790	.word	.LANCHOR64
10791	.word	.LANCHOR62
10792	.word	.LANCHOR66
10793	.word	.LANCHOR75
10794	.word	.LANCHOR63
10795	.word	.LANCHOR65
10796	.word	.LANCHOR76
10797	.word	.LANCHOR77
10798	.word	.LANCHOR72
10799	.word	.LANCHOR14
10800	.word	.LANCHOR5
10801	.word	.LANCHOR74
10802	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
10803	.section	.text.sftl_vendor_read,"ax",%progbits
10804	.align	1
10805	.global	sftl_vendor_read
10806	.syntax unified
10807	.thumb
10808	.thumb_func
10809	.fpu softvfp
10810	.type	sftl_vendor_read, %function
10811sftl_vendor_read:
10812	@ args = 0, pretend = 0, frame = 0
10813	@ frame_needed = 0, uses_anonymous_args = 0
10814	@ link register save eliminated.
10815	add	r0, r0, #256
10816	b	FtlVendorPartRead
10817	.size	sftl_vendor_read, .-sftl_vendor_read
10818	.section	.text.FtlVpcTblFlush,"ax",%progbits
10819	.align	1
10820	.global	FtlVpcTblFlush
10821	.syntax unified
10822	.thumb
10823	.thumb_func
10824	.fpu softvfp
10825	.type	FtlVpcTblFlush, %function
10826FtlVpcTblFlush:
10827	@ args = 0, pretend = 0, frame = 8
10828	@ frame_needed = 0, uses_anonymous_args = 0
10829	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
10830	mov	fp, #0
10831	ldr	r3, .L1463
10832	ldr	r4, .L1463+4
10833	ldr	r10, .L1463+76
10834	ldr	r0, [r3]
10835	ldr	r5, .L1463+8
10836	ldr	r7, [r10]
10837	ldrh	r2, [r4]
10838	str	r0, [r5, #8]
10839	str	r7, [r5, #12]
10840	strh	r2, [r7, #2]	@ movhi
10841	movw	r2, #61604
10842	strh	r2, [r7]	@ movhi
10843	ldr	r2, [r4, #8]
10844	ldr	r6, .L1463+12
10845	ldr	ip, .L1463+80
10846	str	r2, [r7, #4]
10847	ldr	r2, .L1463+16
10848	str	fp, [r7, #8]
10849	str	fp, [r7, #12]
10850	stm	r6, {r2, ip}
10851	ldrh	r2, [r4, #6]
10852	str	r3, [sp, #4]
10853	ldr	r8, .L1463+84
10854	strh	r2, [r6, #8]	@ movhi
10855	ldr	r2, .L1463+20
10856	ldrh	r2, [r2]
10857	strb	r2, [r6, #10]
10858	ldr	r2, .L1463+24
10859	ldrh	r1, [r2]
10860	ldrh	ip, [r2, #2]
10861	strh	r1, [r6, #14]	@ movhi
10862	ldrb	r1, [r2, #6]	@ zero_extendqisi2
10863	ldrb	r2, [r2, #8]	@ zero_extendqisi2
10864	strb	r2, [r6, #11]
10865	orr	r1, r1, ip, lsl #6
10866	ldr	r2, .L1463+28
10867	strh	r1, [r6, #16]	@ movhi
10868	ldrh	r1, [r2]
10869	ldrh	ip, [r2, #2]
10870	strh	r1, [r6, #18]	@ movhi
10871	ldrb	r1, [r2, #6]	@ zero_extendqisi2
10872	ldrb	r2, [r2, #8]	@ zero_extendqisi2
10873	orr	r1, r1, ip, lsl #6
10874	strh	r1, [r6, #20]	@ movhi
10875	strb	r2, [r6, #12]
10876	ldr	r2, .L1463+32
10877	ldrh	r1, [r2]
10878	ldrh	ip, [r2, #2]
10879	strh	r1, [r6, #22]	@ movhi
10880	ldrb	r1, [r2, #6]	@ zero_extendqisi2
10881	ldrb	r2, [r2, #8]	@ zero_extendqisi2
10882	strb	r2, [r6, #13]
10883	orr	r1, r1, ip, lsl #6
10884	ldr	r2, .L1463+36
10885	strh	r1, [r6, #24]	@ movhi
10886	movs	r1, #255
10887	ldr	r2, [r2]
10888	str	r2, [r6, #32]
10889	ldr	r2, [r8]
10890	str	r2, [r6, #40]
10891	ldr	r2, .L1463+40
10892	ldr	r2, [r2]
10893	str	r2, [r6, #36]
10894	ldr	r2, .L1463+44
10895	ldrh	r2, [r2]
10896	bl	ftl_memset
10897	mov	r1, r6
10898	ldr	r6, .L1463+48
10899	movs	r2, #48
10900	ldr	r0, [r5, #8]
10901	bl	ftl_memcpy
10902	ldrh	r2, [r6]
10903	ldr	r0, [r5, #8]
10904	ldr	r1, .L1463+52
10905	lsls	r2, r2, #1
10906	adds	r0, r0, #48
10907	ldr	r1, [r1]
10908	bl	ftl_memcpy
10909	ldrh	r0, [r6]
10910	ldr	r1, .L1463+56
10911	ldr	r6, [r5, #8]
10912	lsrs	r2, r0, #3
10913	adds	r0, r0, #24
10914	lsls	r0, r0, #1
10915	ldr	r1, [r1]
10916	adds	r2, r2, #4
10917	bic	r0, r0, #3
10918	add	r0, r0, r6
10919	mov	r6, fp
10920	bl	ftl_memcpy
10921	mov	r0, fp
10922	movw	fp, #65535
10923	bl	FtlUpdateVaildLpn
10924.L1449:
10925	ldr	r3, [sp, #4]
10926	ldrh	r1, [r4, #2]
10927	ldrh	r2, [r4]
10928	ldr	r3, [r3]
10929	str	r3, [r5, #8]
10930	ldr	r3, [r10]
10931	str	r3, [r5, #12]
10932	orr	r3, r1, r2, lsl #10
10933	str	r3, [r5, #4]
10934	ldr	r3, .L1463+60
10935	ldrh	r3, [r3]
10936	subs	r3, r3, #1
10937	cmp	r1, r3
10938	blt	.L1450
10939	movs	r3, #0
10940	ldrh	fp, [r4, #4]
10941	strh	r3, [r4, #2]	@ movhi
10942	strh	r2, [r4, #4]	@ movhi
10943	bl	FtlFreeSysBlkQueueOut
10944	ldr	r3, [r8]
10945	strh	r0, [r4]	@ movhi
10946	adds	r2, r3, #1
10947	str	r3, [r4, #8]
10948	str	r2, [r8]
10949	lsls	r2, r0, #10
10950	str	r2, [r5, #4]
10951	str	r3, [r7, #4]
10952	strh	r0, [r7, #2]	@ movhi
10953.L1450:
10954	movs	r3, #1
10955	ldr	r0, .L1463+8
10956	mov	r2, r3
10957	mov	r1, r3
10958	bl	FlashProgPages
10959	ldrh	r3, [r4, #2]
10960	ldr	r2, [r5]
10961	adds	r3, r3, #1
10962	uxth	r3, r3
10963	adds	r1, r2, #1
10964	strh	r3, [r4, #2]	@ movhi
10965	bne	.L1451
10966	cmp	r3, #1
10967	bne	.L1452
10968	movw	r2, #1135
10969	ldr	r1, .L1463+64
10970	ldr	r0, .L1463+68
10971	bl	printf
10972.L1452:
10973	ldrh	r3, [r4, #2]
10974	adds	r6, r6, #1
10975	uxth	r6, r6
10976	cmp	r3, #1
10977	itttt	eq
10978	ldreq	r3, .L1463+60
10979	ldrheq	r3, [r3]
10980	addeq	r3, r3, #-1
10981	strheq	r3, [r4, #2]	@ movhi
10982	cmp	r6, #3
10983	bls	.L1449
10984	mov	r2, r6
10985	ldr	r1, [r5, #4]
10986	ldr	r0, .L1463+72
10987	bl	printf
10988.L1455:
10989	b	.L1455
10990.L1451:
10991	cmp	r3, #1
10992	beq	.L1449
10993	cmp	r2, #256
10994	beq	.L1449
10995	movw	r3, #65535
10996	cmp	fp, r3
10997	beq	.L1456
10998	movs	r1, #1
10999	mov	r0, fp
11000	bl	FtlFreeSysBlkQueueIn
11001.L1456:
11002	movs	r0, #0
11003	add	sp, sp, #8
11004	@ sp needed
11005	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11006.L1464:
11007	.align	2
11008.L1463:
11009	.word	.LANCHOR115
11010	.word	.LANCHOR79
11011	.word	.LANCHOR148
11012	.word	.LANCHOR39
11013	.word	1179929683
11014	.word	.LANCHOR10
11015	.word	.LANCHOR51
11016	.word	.LANCHOR52
11017	.word	.LANCHOR53
11018	.word	.LANCHOR72
11019	.word	.LANCHOR71
11020	.word	.LANCHOR23
11021	.word	.LANCHOR5
11022	.word	.LANCHOR42
11023	.word	.LANCHOR1
11024	.word	.LANCHOR20
11025	.word	.LANCHOR171
11026	.word	.LC1
11027	.word	.LC109
11028	.word	.LANCHOR123
11029	.word	1342177352
11030	.word	.LANCHOR70
11031	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
11032	.section	.text.FtlSysFlush,"ax",%progbits
11033	.align	1
11034	.global	FtlSysFlush
11035	.syntax unified
11036	.thumb
11037	.thumb_func
11038	.fpu softvfp
11039	.type	FtlSysFlush, %function
11040FtlSysFlush:
11041	@ args = 0, pretend = 0, frame = 0
11042	@ frame_needed = 0, uses_anonymous_args = 0
11043	push	{r3, lr}
11044	bl	l2p_flush
11045	movs	r0, #1
11046	bl	FtlEctTblFlush
11047	bl	FtlVpcTblFlush
11048	movs	r0, #0
11049	pop	{r3, pc}
11050	.size	FtlSysFlush, .-FtlSysFlush
11051	.section	.text.sftl_deinit,"ax",%progbits
11052	.align	1
11053	.global	sftl_deinit
11054	.syntax unified
11055	.thumb
11056	.thumb_func
11057	.fpu softvfp
11058	.type	sftl_deinit, %function
11059sftl_deinit:
11060	@ args = 0, pretend = 0, frame = 0
11061	@ frame_needed = 0, uses_anonymous_args = 0
11062	push	{r3, lr}
11063	ldr	r3, .L1468
11064	ldr	r3, [r3]
11065	cmp	r3, #1
11066	bne	.L1467
11067	bl	FtlSysFlush
11068.L1467:
11069	movs	r0, #0
11070	pop	{r3, pc}
11071.L1469:
11072	.align	2
11073.L1468:
11074	.word	.LANCHOR86
11075	.size	sftl_deinit, .-sftl_deinit
11076	.section	.text.FtlDiscard,"ax",%progbits
11077	.align	1
11078	.global	FtlDiscard
11079	.syntax unified
11080	.thumb
11081	.thumb_func
11082	.fpu softvfp
11083	.type	FtlDiscard, %function
11084FtlDiscard:
11085	@ args = 0, pretend = 0, frame = 8
11086	@ frame_needed = 0, uses_anonymous_args = 0
11087	ldr	r3, .L1485
11088	adds	r2, r0, r1
11089	push	{r0, r1, r4, r5, r6, r7, r8, lr}
11090	mov	r7, r0
11091	mov	r5, r1
11092	ldr	r3, [r3]
11093	cmp	r2, r3
11094	bhi	.L1478
11095	cmp	r1, #31
11096	bhi	.L1472
11097.L1477:
11098	movs	r0, #0
11099.L1470:
11100	add	sp, sp, #8
11101	@ sp needed
11102	pop	{r4, r5, r6, r7, r8, pc}
11103.L1472:
11104	ldr	r8, .L1485+12
11105	ldrh	r4, [r8]
11106	mov	r1, r4
11107	bl	__aeabi_uidiv
11108	smulbb	r3, r0, r4
11109	mov	r6, r0
11110	subs	r7, r7, r3
11111	uxth	r7, r7
11112	cbz	r7, .L1473
11113	subs	r4, r4, r7
11114	adds	r6, r6, #1
11115	cmp	r4, r5
11116	it	cs
11117	movcs	r4, r5
11118	uxth	r4, r4
11119	subs	r5, r5, r4
11120.L1473:
11121	ldr	r4, .L1485+4
11122	mov	r3, #-1
11123	ldr	r7, .L1485+8
11124	str	r3, [sp, #4]
11125.L1474:
11126	ldrh	r3, [r8]
11127	cmp	r5, r3
11128	bcs	.L1476
11129	ldr	r3, .L1485+4
11130	ldr	r2, [r3]
11131	cmp	r2, #32
11132	bls	.L1477
11133	movs	r4, #0
11134	str	r4, [r3]
11135	bl	l2p_flush
11136	bl	FtlVpcTblFlush
11137	b	.L1477
11138.L1476:
11139	movs	r2, #0
11140	mov	r1, sp
11141	mov	r0, r6
11142	bl	log2phys
11143	ldr	r3, [sp]
11144	adds	r3, r3, #1
11145	beq	.L1475
11146	ldr	r3, [r4]
11147	movs	r2, #1
11148	add	r1, sp, #4
11149	mov	r0, r6
11150	adds	r3, r3, #1
11151	str	r3, [r4]
11152	ldr	r3, [r7]
11153	adds	r3, r3, #1
11154	str	r3, [r7]
11155	bl	log2phys
11156	ldr	r0, [sp]
11157	ubfx	r0, r0, #10, #16
11158	bl	P2V_block_in_plane
11159	bl	decrement_vpc_count
11160.L1475:
11161	ldrh	r3, [r8]
11162	adds	r6, r6, #1
11163	subs	r5, r5, r3
11164	b	.L1474
11165.L1478:
11166	mov	r0, #-1
11167	b	.L1470
11168.L1486:
11169	.align	2
11170.L1485:
11171	.word	.LANCHOR34
11172	.word	.LANCHOR172
11173	.word	.LANCHOR63
11174	.word	.LANCHOR12
11175	.size	FtlDiscard, .-FtlDiscard
11176	.section	.text.FtlVpcCheckAndModify,"ax",%progbits
11177	.align	1
11178	.global	FtlVpcCheckAndModify
11179	.syntax unified
11180	.thumb
11181	.thumb_func
11182	.fpu softvfp
11183	.type	FtlVpcCheckAndModify, %function
11184FtlVpcCheckAndModify:
11185	@ args = 0, pretend = 0, frame = 8
11186	@ frame_needed = 0, uses_anonymous_args = 0
11187	push	{r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
11188	movs	r4, #0
11189	ldr	r1, .L1500
11190	ldr	r0, .L1500+4
11191	bl	printf
11192	ldr	r3, .L1500+8
11193	movs	r1, #0
11194	ldr	r5, .L1500+12
11195	ldr	r6, .L1500+16
11196	ldrh	r2, [r3]
11197	ldr	r0, [r5]
11198	lsls	r2, r2, #1
11199	bl	ftl_memset
11200.L1488:
11201	ldr	r3, [r6]
11202	cmp	r4, r3
11203	bcc	.L1490
11204	ldr	r10, .L1500+36
11205	movs	r7, #0
11206	ldr	r8, .L1500+40
11207.L1491:
11208	ldrh	r3, [r10]
11209	uxth	r6, r7
11210	cmp	r3, r6
11211	bhi	.L1496
11212	bl	l2p_flush
11213	bl	FtlVpcTblFlush
11214	add	sp, sp, #12
11215	@ sp needed
11216	pop	{r4, r5, r6, r7, r8, r10, pc}
11217.L1490:
11218	movs	r2, #0
11219	add	r1, sp, #4
11220	mov	r0, r4
11221	bl	log2phys
11222	ldr	r0, [sp, #4]
11223	adds	r3, r0, #1
11224	beq	.L1489
11225	ubfx	r0, r0, #10, #16
11226	bl	P2V_block_in_plane
11227	ldr	r2, [r5]
11228	ldrh	r3, [r2, r0, lsl #1]
11229	adds	r3, r3, #1
11230	strh	r3, [r2, r0, lsl #1]	@ movhi
11231.L1489:
11232	adds	r4, r4, #1
11233	b	.L1488
11234.L1496:
11235	ldr	r3, [r8]
11236	uxth	r4, r7
11237	ldrh	r2, [r3, r4, lsl #1]
11238	ldr	r3, [r5]
11239	ldrh	r3, [r3, r4, lsl #1]
11240	cmp	r2, r3
11241	beq	.L1493
11242	movw	r1, #65535
11243	cmp	r2, r1
11244	beq	.L1493
11245	mov	r1, r4
11246	ldr	r0, .L1500+20
11247	bl	printf
11248	ldr	r3, .L1500+24
11249	ldrh	r3, [r3]
11250	cmp	r3, r6
11251	beq	.L1493
11252	ldr	r3, .L1500+28
11253	ldrh	r3, [r3]
11254	cmp	r3, r6
11255	beq	.L1493
11256	ldr	r3, .L1500+32
11257	ldrh	r3, [r3]
11258	cmp	r3, r6
11259	beq	.L1493
11260	ldr	r3, [r8]
11261	ldrh	r2, [r3, r4, lsl #1]
11262	cbnz	r2, .L1495
11263	ldr	r2, [r5]
11264	ldrh	r2, [r2, r4, lsl #1]
11265	strh	r2, [r3, r4, lsl #1]	@ movhi
11266.L1493:
11267	adds	r7, r7, #1
11268	b	.L1491
11269.L1495:
11270	ldr	r2, [r5]
11271	mov	r0, r6
11272	ldrh	r2, [r2, r4, lsl #1]
11273	strh	r2, [r3, r4, lsl #1]	@ movhi
11274	bl	update_vpc_list
11275	b	.L1493
11276.L1501:
11277	.align	2
11278.L1500:
11279	.word	.LANCHOR173
11280	.word	.LC94
11281	.word	.LANCHOR6
11282	.word	.LANCHOR128
11283	.word	.LANCHOR61
11284	.word	.LC110
11285	.word	.LANCHOR51
11286	.word	.LANCHOR53
11287	.word	.LANCHOR52
11288	.word	.LANCHOR5
11289	.word	.LANCHOR42
11290	.size	FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
11291	.section	.text.allocate_new_data_superblock,"ax",%progbits
11292	.align	1
11293	.global	allocate_new_data_superblock
11294	.syntax unified
11295	.thumb
11296	.thumb_func
11297	.fpu softvfp
11298	.type	allocate_new_data_superblock, %function
11299allocate_new_data_superblock:
11300	@ args = 0, pretend = 0, frame = 0
11301	@ frame_needed = 0, uses_anonymous_args = 0
11302	ldr	r3, .L1512
11303	push	{r4, r5, r6, lr}
11304	mov	r6, r0
11305	ldrh	r4, [r0]
11306	ldrh	r3, [r3]
11307	cmp	r3, r4
11308	bcs	.L1503
11309	movw	r2, #2714
11310	ldr	r1, .L1512+4
11311	ldr	r0, .L1512+8
11312	bl	printf
11313.L1503:
11314	movw	r3, #65535
11315	cmp	r4, r3
11316	beq	.L1504
11317	ldr	r3, .L1512+12
11318	mov	r0, r4
11319	ldr	r3, [r3]
11320	ldrh	r3, [r3, r4, lsl #1]
11321	cbz	r3, .L1505
11322	bl	INSERT_DATA_LIST
11323.L1504:
11324	ldr	r5, .L1512+16
11325	movw	r2, #65535
11326	movs	r3, #1
11327	strb	r3, [r6, #8]
11328	ldrh	r0, [r5]
11329	cmp	r0, r2
11330	beq	.L1506
11331	cmp	r4, r0
11332	bne	.L1507
11333	ldr	r3, .L1512+12
11334	ldr	r3, [r3]
11335	ldrh	r3, [r3, r0, lsl #1]
11336	cbz	r3, .L1508
11337.L1507:
11338	bl	update_vpc_list
11339.L1508:
11340	movw	r3, #65535
11341	strh	r3, [r5]	@ movhi
11342.L1506:
11343	mov	r0, r6
11344	bl	allocate_data_superblock
11345	bl	l2p_flush
11346	movs	r0, #0
11347	bl	FtlEctTblFlush
11348	bl	FtlVpcTblFlush
11349	movs	r0, #0
11350	pop	{r4, r5, r6, pc}
11351.L1505:
11352	bl	INSERT_FREE_LIST
11353	b	.L1504
11354.L1513:
11355	.align	2
11356.L1512:
11357	.word	.LANCHOR5
11358	.word	.LANCHOR174
11359	.word	.LC1
11360	.word	.LANCHOR42
11361	.word	.LANCHOR142
11362	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
11363	.section	.text.FtlProgPages,"ax",%progbits
11364	.align	1
11365	.global	FtlProgPages
11366	.syntax unified
11367	.thumb
11368	.thumb_func
11369	.fpu softvfp
11370	.type	FtlProgPages, %function
11371FtlProgPages:
11372	@ args = 0, pretend = 0, frame = 8
11373	@ frame_needed = 0, uses_anonymous_args = 0
11374	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
11375	movs	r6, #0
11376	ldr	r8, .L1528+24
11377	mov	r4, r3
11378	movs	r2, #0
11379	mov	r5, r0
11380	ldrb	r3, [r3, #9]	@ zero_extendqisi2
11381	mov	r10, r1
11382	bl	FlashProgPages
11383.L1515:
11384	cmp	r6, r10
11385	beq	.L1522
11386	ldr	r7, .L1528
11387	b	.L1523
11388.L1518:
11389	ldr	r0, [r5, #4]
11390	ubfx	r0, r0, #10, #16
11391	bl	P2V_block_in_plane
11392	ldrh	r3, [r4]
11393	cmp	r3, r0
11394	bne	.L1516
11395	ldr	r1, [r8]
11396	ldrh	r0, [r4, #4]
11397	ldrh	r2, [r1, r3, lsl #1]
11398	subs	r2, r2, r0
11399	strh	r2, [r1, r3, lsl #1]	@ movhi
11400	ldrh	r3, [r7]
11401	strh	r3, [r4, #2]	@ movhi
11402	movs	r3, #0
11403	strb	r3, [r4, #6]
11404	strh	r3, [r4, #4]	@ movhi
11405.L1516:
11406	ldrh	r3, [r4, #4]
11407	cbnz	r3, .L1517
11408	mov	r0, r4
11409	bl	allocate_new_data_superblock
11410.L1517:
11411	ldr	r2, .L1528+4
11412	ldr	r3, [r2, #96]
11413	adds	r3, r3, #1
11414	str	r3, [r2, #96]
11415	ldr	r0, [r5, #4]
11416	ubfx	r0, r0, #10, #16
11417	bl	FtlGcMarkBadPhyBlk
11418	mov	r0, r4
11419	bl	get_new_active_ppa
11420	movs	r2, #0
11421	str	r0, [r5, #4]
11422	str	r0, [sp, #4]
11423	movs	r1, #1
11424	ldrb	r3, [r4, #9]	@ zero_extendqisi2
11425	mov	r0, r5
11426	bl	FlashProgPages
11427.L1523:
11428	ldr	r3, [r5]
11429	adds	r3, r3, #1
11430	beq	.L1518
11431	ldr	r3, .L1528+8
11432	ldrb	r2, [r4, #6]	@ zero_extendqisi2
11433	ldrh	r3, [r3]
11434	cmp	r2, r3
11435	bcc	.L1519
11436	movw	r2, #955
11437	ldr	r1, .L1528+12
11438	ldr	r0, .L1528+16
11439	bl	printf
11440.L1519:
11441	ldr	r3, [r5, #4]
11442	add	r1, sp, #8
11443	movs	r2, #1
11444	ldr	r0, [r5, #16]
11445	str	r3, [r1, #-4]!
11446	bl	log2phys
11447	ldr	r3, [r5, #12]
11448	ldr	fp, [r3, #12]
11449	ubfx	r0, fp, #10, #16
11450	bl	P2V_block_in_plane
11451	cmp	fp, #-1
11452	mov	r7, r0
11453	beq	.L1520
11454	ldr	r3, [r8]
11455	ldrh	r2, [r3, r0, lsl #1]
11456	cbnz	r2, .L1521
11457	mov	r1, r0
11458	ldr	r0, .L1528+20
11459	bl	printf
11460.L1521:
11461	mov	r0, r7
11462	bl	decrement_vpc_count
11463.L1520:
11464	adds	r6, r6, #1
11465	adds	r5, r5, #20
11466	b	.L1515
11467.L1522:
11468	ldr	r3, .L1528+8
11469	ldrb	r2, [r4, #6]	@ zero_extendqisi2
11470	ldrh	r3, [r3]
11471	cmp	r2, r3
11472	bcc	.L1514
11473	movw	r2, #970
11474	ldr	r1, .L1528+12
11475	ldr	r0, .L1528+16
11476	bl	printf
11477.L1514:
11478	add	sp, sp, #8
11479	@ sp needed
11480	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11481.L1529:
11482	.align	2
11483.L1528:
11484	.word	.LANCHOR19
11485	.word	.LANCHOR81
11486	.word	.LANCHOR3
11487	.word	.LANCHOR175
11488	.word	.LC1
11489	.word	.LC111
11490	.word	.LANCHOR42
11491	.size	FtlProgPages, .-FtlProgPages
11492	.section	.text.FtlGcFreeTempBlock,"ax",%progbits
11493	.align	1
11494	.global	FtlGcFreeTempBlock
11495	.syntax unified
11496	.thumb
11497	.thumb_func
11498	.fpu softvfp
11499	.type	FtlGcFreeTempBlock, %function
11500FtlGcFreeTempBlock:
11501	@ args = 0, pretend = 0, frame = 16
11502	@ frame_needed = 0, uses_anonymous_args = 0
11503	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
11504	movw	r2, #65535
11505	ldr	r4, .L1556
11506	ldr	r6, .L1556+4
11507	ldrh	r5, [r4]
11508	ldrh	r1, [r6]
11509	cmp	r5, r2
11510	bne	.L1531
11511.L1541:
11512	ldr	r3, .L1556+8
11513	movs	r2, #0
11514	str	r2, [r3]
11515	movw	r3, #65535
11516	ldrh	r2, [r4]
11517	cmp	r2, r3
11518	bne	.L1554
11519.L1532:
11520	movs	r0, #0
11521.L1530:
11522	add	sp, sp, #16
11523	@ sp needed
11524	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11525.L1531:
11526	cbz	r0, .L1534
11527	ldr	r3, .L1556+12
11528	ldrh	r0, [r3]
11529	cmp	r0, r2
11530	beq	.L1535
11531.L1536:
11532	movs	r1, #2
11533.L1534:
11534	ldr	r0, .L1556
11535	bl	FtlGcScanTempBlk
11536	str	r0, [sp, #12]
11537	adds	r0, r0, #1
11538	beq	.L1537
11539	ldr	r3, .L1556+16
11540	ldr	r2, [r3]
11541	ldrh	r3, [r2, r5, lsl #1]
11542	cmp	r3, #4
11543	bls	.L1538
11544	subs	r3, r3, #5
11545	movs	r0, #1
11546	strh	r3, [r2, r5, lsl #1]	@ movhi
11547	bl	FtlEctTblFlush
11548.L1538:
11549	ldr	r4, .L1556+8
11550	ldr	r2, [r4]
11551	cbnz	r2, .L1539
11552	ldr	r2, .L1556+20
11553	ldr	r0, [sp, #12]
11554	ldr	r3, [r2, #96]
11555	ubfx	r0, r0, #10, #16
11556	adds	r3, r3, #1
11557	str	r3, [r2, #96]
11558	bl	FtlBbmMapBadBlock
11559	bl	FtlBbmTblFlush
11560.L1539:
11561	movs	r3, #0
11562	str	r3, [r4]
11563.L1550:
11564	movs	r0, #1
11565	b	.L1530
11566.L1535:
11567	movs	r2, #0
11568	strh	r2, [r3]	@ movhi
11569	ldr	r3, .L1556+24
11570	ldrh	r3, [r3]
11571	cmp	r3, #17
11572	bhi	.L1536
11573	b	.L1534
11574.L1537:
11575	ldr	r3, .L1556+12
11576	ldrh	r2, [r3]
11577	movw	r3, #65535
11578	cmp	r2, r3
11579	bne	.L1550
11580	b	.L1541
11581.L1554:
11582	ldrb	r1, [r4, #7]	@ zero_extendqisi2
11583	ldrh	r3, [r6]
11584	ldr	r5, .L1556+28
11585	muls	r3, r1, r3
11586	ldrh	r2, [r5]
11587	cmp	r2, r3
11588	beq	.L1542
11589	movs	r2, #162
11590	ldr	r1, .L1556+32
11591	ldr	r0, .L1556+36
11592	bl	printf
11593.L1542:
11594	ldrh	r6, [r6]
11595	ldrb	r3, [r4, #7]	@ zero_extendqisi2
11596	ldr	r2, .L1556+40
11597	ldrh	r0, [r4]
11598	ldr	fp, .L1556+68
11599	smulbb	r3, r3, r6
11600	ldr	r1, [r2]
11601	movs	r6, #0
11602	str	r2, [sp, #4]
11603	strh	r3, [r1, r0, lsl #1]	@ movhi
11604	ldr	r1, .L1556+44
11605	ldrh	r3, [r5]
11606	ldr	r0, [r1]
11607	add	r3, r3, r0
11608	str	r3, [r1]
11609.L1543:
11610	ldrh	r2, [r5]
11611	uxth	r3, r6
11612	cmp	r2, r3
11613	bhi	.L1547
11614	movw	r0, #65535
11615	bl	decrement_vpc_count
11616	ldr	r3, [sp, #4]
11617	ldrh	r0, [r4]
11618	ldr	r3, [r3]
11619	ldrh	r3, [r3, r0, lsl #1]
11620	cmp	r3, #0
11621	beq	.L1548
11622	bl	INSERT_DATA_LIST
11623.L1549:
11624	ldr	r3, .L1556+48
11625	movw	r6, #65535
11626	strh	r6, [r4]	@ movhi
11627	movs	r4, #0
11628	strh	r4, [r5]	@ movhi
11629	strh	r4, [r3]	@ movhi
11630	bl	l2p_flush
11631	bl	FtlVpcTblFlush
11632	ldr	r3, .L1556+52
11633	strh	r6, [r3]	@ movhi
11634	ldr	r3, .L1556+24
11635	ldrh	r2, [r3]
11636	ldr	r3, .L1556+56
11637	ldrh	r3, [r3]
11638	add	r3, r3, r3, lsl #1
11639	cmp	r2, r3, asr #2
11640	ble	.L1532
11641	ldr	r3, .L1556+60
11642	movs	r2, #20
11643	strh	r2, [r3]	@ movhi
11644	b	.L1532
11645.L1547:
11646	uxth	r3, r6
11647	movs	r7, #12
11648	ldr	r2, [fp]
11649	muls	r7, r3, r7
11650	ldr	r3, .L1556+64
11651	ldr	r8, [r3]
11652	add	r10, r8, r7
11653	ldr	r1, [r10, #8]
11654	cmp	r1, r2
11655	bcc	.L1544
11656	movs	r2, #168
11657	ldr	r1, .L1556+32
11658	ldr	r0, .L1556+36
11659	bl	printf
11660.L1544:
11661	movs	r2, #0
11662	add	r1, sp, #12
11663	ldr	r0, [r10, #8]
11664	bl	log2phys
11665	ldr	r2, [sp, #12]
11666	ldr	r0, [r8, r7]
11667	cmp	r0, r2
11668	bne	.L1545
11669	ubfx	r0, r0, #10, #16
11670	bl	P2V_block_in_plane
11671	movs	r2, #1
11672	mov	r7, r0
11673	add	r1, r10, #4
11674	ldr	r0, [r10, #8]
11675	bl	log2phys
11676	mov	r0, r7
11677.L1555:
11678	bl	decrement_vpc_count
11679.L1546:
11680	adds	r6, r6, #1
11681	b	.L1543
11682.L1545:
11683	ldr	r3, [r10, #4]
11684	cmp	r2, r3
11685	beq	.L1546
11686	ldrh	r0, [r4]
11687	b	.L1555
11688.L1548:
11689	bl	INSERT_FREE_LIST
11690	b	.L1549
11691.L1557:
11692	.align	2
11693.L1556:
11694	.word	.LANCHOR53
11695	.word	.LANCHOR19
11696	.word	.LANCHOR144
11697	.word	.LANCHOR162
11698	.word	.LANCHOR43
11699	.word	.LANCHOR81
11700	.word	.LANCHOR48
11701	.word	.LANCHOR97
11702	.word	.LANCHOR176
11703	.word	.LC1
11704	.word	.LANCHOR42
11705	.word	.LANCHOR67
11706	.word	.LANCHOR96
11707	.word	.LANCHOR80
11708	.word	.LANCHOR78
11709	.word	.LANCHOR82
11710	.word	.LANCHOR98
11711	.word	.LANCHOR61
11712	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
11713	.section	.text.FtlGcPageRecovery,"ax",%progbits
11714	.align	1
11715	.global	FtlGcPageRecovery
11716	.syntax unified
11717	.thumb
11718	.thumb_func
11719	.fpu softvfp
11720	.type	FtlGcPageRecovery, %function
11721FtlGcPageRecovery:
11722	@ args = 0, pretend = 0, frame = 0
11723	@ frame_needed = 0, uses_anonymous_args = 0
11724	push	{r3, r4, r5, lr}
11725	ldr	r4, .L1560
11726	ldr	r5, .L1560+4
11727	ldrh	r1, [r4]
11728	mov	r0, r5
11729	bl	FtlGcScanTempBlk
11730	ldrh	r2, [r5, #2]
11731	ldrh	r3, [r4]
11732	cmp	r2, r3
11733	bcc	.L1558
11734	ldr	r0, .L1560+8
11735	bl	FtlMapBlkWriteDump_data
11736	movs	r0, #0
11737	bl	FtlGcFreeTempBlock
11738	ldr	r3, .L1560+12
11739	movs	r2, #0
11740	str	r2, [r3]
11741.L1558:
11742	pop	{r3, r4, r5, pc}
11743.L1561:
11744	.align	2
11745.L1560:
11746	.word	.LANCHOR19
11747	.word	.LANCHOR53
11748	.word	.LANCHOR140
11749	.word	.LANCHOR144
11750	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
11751	.section	.text.FtlPowerLostRecovery,"ax",%progbits
11752	.align	1
11753	.global	FtlPowerLostRecovery
11754	.syntax unified
11755	.thumb
11756	.thumb_func
11757	.fpu softvfp
11758	.type	FtlPowerLostRecovery, %function
11759FtlPowerLostRecovery:
11760	@ args = 0, pretend = 0, frame = 0
11761	@ frame_needed = 0, uses_anonymous_args = 0
11762	push	{r3, r4, r5, lr}
11763	movs	r4, #0
11764	ldr	r5, .L1563
11765	ldr	r3, .L1563+4
11766	mov	r0, r5
11767	str	r4, [r3]
11768	bl	FtlRecoverySuperblock
11769	mov	r0, r5
11770	ldr	r5, .L1563+8
11771	bl	FtlSlcSuperblockCheck
11772	mov	r0, r5
11773	bl	FtlRecoverySuperblock
11774	mov	r0, r5
11775	bl	FtlSlcSuperblockCheck
11776	bl	FtlGcPageRecovery
11777	movw	r0, #65535
11778	bl	decrement_vpc_count
11779	mov	r0, r4
11780	pop	{r3, r4, r5, pc}
11781.L1564:
11782	.align	2
11783.L1563:
11784	.word	.LANCHOR51
11785	.word	.LANCHOR168
11786	.word	.LANCHOR52
11787	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
11788	.section	.text.Ftl_gc_temp_data_write_back,"ax",%progbits
11789	.align	1
11790	.global	Ftl_gc_temp_data_write_back
11791	.syntax unified
11792	.thumb
11793	.thumb_func
11794	.fpu softvfp
11795	.type	Ftl_gc_temp_data_write_back, %function
11796Ftl_gc_temp_data_write_back:
11797	@ args = 0, pretend = 0, frame = 0
11798	@ frame_needed = 0, uses_anonymous_args = 0
11799	push	{r3, r4, r5, r6, r7, lr}
11800	movs	r3, #0
11801	ldr	r4, .L1572
11802	movs	r6, #0
11803	movs	r7, #20
11804	mov	r2, r3
11805	ldr	r5, .L1572+4
11806	ldr	r1, [r4]
11807	ldr	r0, [r5]
11808	bl	FlashProgPages
11809.L1566:
11810	ldr	r1, [r4]
11811	uxth	r3, r6
11812	cmp	r1, r3
11813	bhi	.L1569
11814	ldr	r0, [r5]
11815	bl	FtlGcBufFree
11816	ldr	r3, .L1572+8
11817	movs	r0, #0
11818	str	r0, [r4]
11819	ldrh	r3, [r3, #4]
11820	cbnz	r3, .L1565
11821	movs	r0, #1
11822	bl	FtlGcFreeTempBlock
11823	b	.L1571
11824.L1569:
11825	muls	r3, r7, r3
11826	ldr	r2, [r5]
11827	adds	r6, r6, #1
11828	adds	r1, r2, r3
11829	ldr	r2, [r2, r3]
11830	adds	r3, r2, #1
11831	bne	.L1567
11832	ldr	r3, .L1572+8
11833	movs	r5, #0
11834	ldr	r0, .L1572+12
11835	ldrh	r4, [r3]
11836	ldr	r0, [r0]
11837	strh	r5, [r0, r4, lsl #1]	@ movhi
11838	strh	r2, [r3]	@ movhi
11839	ldr	r2, .L1572+16
11840	ldr	r0, [r1, #4]
11841	ldr	r3, [r2, #96]
11842	ubfx	r0, r0, #10, #16
11843	adds	r3, r3, #1
11844	str	r3, [r2, #96]
11845	bl	FtlBbmMapBadBlock
11846	bl	FtlBbmTblFlush
11847	bl	FtlGcPageVarInit
11848.L1571:
11849	movs	r0, #1
11850.L1565:
11851	pop	{r3, r4, r5, r6, r7, pc}
11852.L1567:
11853	ldr	r3, [r1, #12]
11854	ldr	r1, [r1, #4]
11855	ldr	r2, [r3, #8]
11856	ldr	r0, [r3, #12]
11857	bl	FtlGcUpdatePage
11858	b	.L1566
11859.L1573:
11860	.align	2
11861.L1572:
11862	.word	.LANCHOR89
11863	.word	.LANCHOR113
11864	.word	.LANCHOR53
11865	.word	.LANCHOR42
11866	.word	.LANCHOR81
11867	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
11868	.section	.text.Ftl_get_new_temp_ppa,"ax",%progbits
11869	.align	1
11870	.global	Ftl_get_new_temp_ppa
11871	.syntax unified
11872	.thumb
11873	.thumb_func
11874	.fpu softvfp
11875	.type	Ftl_get_new_temp_ppa, %function
11876Ftl_get_new_temp_ppa:
11877	@ args = 0, pretend = 0, frame = 0
11878	@ frame_needed = 0, uses_anonymous_args = 0
11879	push	{r3, r4, r5, lr}
11880	movw	r3, #65535
11881	ldr	r4, .L1577
11882	ldrh	r2, [r4]
11883	cmp	r2, r3
11884	beq	.L1575
11885	ldrh	r3, [r4, #4]
11886	cbnz	r3, .L1576
11887.L1575:
11888	movs	r0, #0
11889	movs	r5, #0
11890	bl	FtlGcFreeTempBlock
11891	ldr	r0, .L1577
11892	strb	r5, [r4, #8]
11893	bl	allocate_data_superblock
11894	ldr	r3, .L1577+4
11895	strh	r5, [r3]	@ movhi
11896	ldr	r3, .L1577+8
11897	strh	r5, [r3]	@ movhi
11898	bl	l2p_flush
11899	mov	r0, r5
11900	bl	FtlEctTblFlush
11901	bl	FtlVpcTblFlush
11902.L1576:
11903	ldr	r0, .L1577
11904	pop	{r3, r4, r5, lr}
11905	b	get_new_active_ppa
11906.L1578:
11907	.align	2
11908.L1577:
11909	.word	.LANCHOR53
11910	.word	.LANCHOR96
11911	.word	.LANCHOR97
11912	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
11913	.section	.text.FtlSysBlkInit,"ax",%progbits
11914	.align	1
11915	.global	FtlSysBlkInit
11916	.syntax unified
11917	.thumb
11918	.thumb_func
11919	.fpu softvfp
11920	.type	FtlSysBlkInit, %function
11921FtlSysBlkInit:
11922	@ args = 0, pretend = 0, frame = 0
11923	@ frame_needed = 0, uses_anonymous_args = 0
11924	push	{r3, r4, r5, r6, r7, lr}
11925	movs	r3, #0
11926	ldr	r6, .L1594
11927	strh	r3, [r6]	@ movhi
11928	ldr	r3, .L1594+4
11929	ldrh	r0, [r3]
11930	bl	FtlFreeSysBlkQueueInit
11931	bl	FtlScanSysBlk
11932	ldr	r3, .L1594+8
11933	ldrh	r2, [r3]
11934	movw	r3, #65535
11935	cmp	r2, r3
11936	bne	.L1580
11937.L1582:
11938	mov	r7, #-1
11939.L1579:
11940	mov	r0, r7
11941	pop	{r3, r4, r5, r6, r7, pc}
11942.L1580:
11943	bl	FtlLoadSysInfo
11944	mov	r7, r0
11945	cmp	r0, #0
11946	bne	.L1582
11947	bl	FtlLoadMapInfo
11948	bl	FtlLoadVonderInfo
11949	bl	Ftl_load_ext_data
11950	bl	FtlLoadEctTbl
11951	bl	FtlFreeSysBLkSort
11952	bl	SupperBlkListInit
11953	bl	FtlPowerLostRecovery
11954	movs	r0, #1
11955	bl	FtlUpdateVaildLpn
11956	ldr	r3, .L1594+12
11957	movs	r0, #12
11958	ldrh	r1, [r3]
11959	ldr	r3, .L1594+16
11960	ldr	r2, [r3]
11961	mov	r3, r7
11962.L1583:
11963	cmp	r3, r1
11964	bge	.L1588
11965	mla	r4, r0, r3, r2
11966	ldr	r4, [r4, #4]
11967	cmp	r4, #0
11968	bge	.L1584
11969.L1588:
11970	ldr	r5, .L1594+20
11971	cmp	r3, r1
11972	ldr	r4, .L1594+24
11973	ldrh	r2, [r5, #28]
11974	add	r2, r2, #1
11975	strh	r2, [r5, #28]	@ movhi
11976	bge	.L1593
11977.L1585:
11978	ldr	r6, .L1594+28
11979	ldr	r0, .L1594+24
11980	bl	FtlSuperblockPowerLostFix
11981	mov	r0, r6
11982	bl	FtlSuperblockPowerLostFix
11983	ldr	r3, .L1594+32
11984	ldrh	r1, [r4]
11985	ldrh	r0, [r4, #4]
11986	ldr	r2, [r3]
11987	ldrh	r3, [r2, r1, lsl #1]
11988	subs	r3, r3, r0
11989	ldr	r0, .L1594+36
11990	strh	r3, [r2, r1, lsl #1]	@ movhi
11991	ldrh	ip, [r6]
11992	ldrh	r3, [r0]
11993	ldrh	lr, [r6, #4]
11994	strh	r3, [r4, #2]	@ movhi
11995	movs	r3, #0
11996	strb	r3, [r4, #6]
11997	strh	r3, [r4, #4]	@ movhi
11998	ldrh	r1, [r2, ip, lsl #1]
11999	sub	r1, r1, lr
12000	strh	r1, [r2, ip, lsl #1]	@ movhi
12001	strb	r3, [r6, #6]
12002	strh	r3, [r6, #4]	@ movhi
12003	ldrh	r3, [r5, #30]
12004	ldrh	r2, [r0]
12005	adds	r3, r3, #1
12006	strh	r2, [r6, #2]	@ movhi
12007	strh	r3, [r5, #30]	@ movhi
12008	bl	l2p_flush
12009	bl	FtlVpcTblFlush
12010	bl	FtlVpcTblFlush
12011	b	.L1589
12012.L1584:
12013	adds	r3, r3, #1
12014	b	.L1583
12015.L1593:
12016	ldrh	r3, [r6]
12017	cmp	r3, #0
12018	bne	.L1585
12019.L1589:
12020	bl	FtlVpcCheckAndModify
12021	ldrh	r0, [r4]
12022	movw	r3, #65535
12023	cmp	r0, r3
12024	beq	.L1579
12025	ldrh	r3, [r4, #4]
12026	cmp	r3, #0
12027	bne	.L1579
12028	ldr	r4, .L1594+28
12029	ldrh	r3, [r4, #4]
12030	cmp	r3, #0
12031	bne	.L1579
12032	bl	FtlGcRefreshBlock
12033	ldrh	r0, [r4]
12034	bl	FtlGcRefreshBlock
12035	bl	FtlVpcTblFlush
12036	ldr	r0, .L1594+24
12037	bl	allocate_new_data_superblock
12038	mov	r0, r4
12039	bl	allocate_new_data_superblock
12040	b	.L1579
12041.L1595:
12042	.align	2
12043.L1594:
12044	.word	.LANCHOR167
12045	.word	.LANCHOR4
12046	.word	.LANCHOR79
12047	.word	.LANCHOR33
12048	.word	.LANCHOR55
12049	.word	.LANCHOR39
12050	.word	.LANCHOR51
12051	.word	.LANCHOR52
12052	.word	.LANCHOR42
12053	.word	.LANCHOR19
12054	.size	FtlSysBlkInit, .-FtlSysBlkInit
12055	.section	.text.rk_ftl_garbage_collect,"ax",%progbits
12056	.align	1
12057	.global	rk_ftl_garbage_collect
12058	.syntax unified
12059	.thumb
12060	.thumb_func
12061	.fpu softvfp
12062	.type	rk_ftl_garbage_collect, %function
12063rk_ftl_garbage_collect:
12064	@ args = 0, pretend = 0, frame = 40
12065	@ frame_needed = 0, uses_anonymous_args = 0
12066	ldr	r3, .L1719
12067	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12068	sub	sp, sp, #48
12069	str	r0, [sp, #8]
12070	ldr	r0, [r3]
12071	cmp	r0, #0
12072	bne	.L1673
12073	ldr	r3, .L1719+4
12074	ldrh	r3, [r3]
12075	cmp	r3, #47
12076	bls	.L1596
12077	ldr	r3, .L1719+8
12078	ldrh	r2, [r3]
12079	movw	r3, #65535
12080	cmp	r2, r3
12081	bne	.L1598
12082.L1601:
12083	ldr	r3, .L1719+12
12084	movw	r4, #65535
12085	ldrh	r0, [r3]
12086	cmp	r0, r4
12087	bne	.L1599
12088.L1600:
12089	bl	FtlReadRefresh
12090	ldr	r2, .L1719+16
12091	movw	r5, #65535
12092	ldr	r6, .L1719+20
12093	ldr	r1, [sp, #8]
12094	ldr	r3, [r2]
12095	ldrh	r0, [r6]
12096	adds	r3, r3, #1
12097	add	r3, r3, r1, lsl #7
12098	cmp	r0, r5
12099	str	r3, [r2]
12100	bne	.L1602
12101	ldr	r1, .L1719+24
12102	ldrh	r1, [r1]
12103	cmp	r1, r0
12104	bne	.L1603
12105	ldr	r0, .L1719+28
12106	ldrh	r8, [r0]
12107	cmp	r8, r1
12108	bne	.L1604
12109	ldr	r7, .L1719+32
12110	ldrh	r1, [r7]
12111	cmp	r1, #24
12112	ite	cc
12113	movcc	r1, #5120
12114	movcs	r1, #1024
12115	cmp	r3, r1
12116	bls	.L1604
12117	ldr	r3, .L1719+36
12118	movs	r4, #0
12119	str	r4, [r2]
12120	strh	r4, [r3]	@ movhi
12121	bl	GetSwlReplaceBlock
12122	cmp	r0, r8
12123	mov	r5, r0
12124	bne	.L1677
12125	ldr	r8, .L1719+96
12126	ldrh	r2, [r7]
12127	ldrh	r3, [r8]
12128	cmp	r2, r3
12129	bcs	.L1607
12130	movs	r0, #64
12131	bl	List_get_gc_head_node
12132	uxth	r3, r0
12133	cmp	r3, r5
12134	beq	.L1609
12135	mov	r0, r3
12136	ldr	r3, .L1719+40
12137	ldr	r3, [r3]
12138	ldrh	r3, [r3, r0, lsl #1]
12139	cmp	r3, #7
12140	bhi	.L1610
12141	mov	r0, r4
12142	bl	List_get_gc_head_node
12143	uxth	r4, r0
12144	movs	r3, #128
12145	strh	r3, [r8]	@ movhi
12146	cmp	r4, r5
12147	bne	.L1606
12148.L1609:
12149	bl	FtlGcReFreshBadBlk
12150	ldr	r3, [sp, #8]
12151	cmp	r3, #0
12152	bne	.L1612
12153	movw	r3, #65535
12154	cmp	r5, r3
12155	bne	.L1612
12156.L1671:
12157	ldr	r3, .L1719+32
12158	ldrh	r3, [r3]
12159	cmp	r3, #24
12160	bhi	.L1678
12161	ldr	r2, .L1719+44
12162	cmp	r3, #16
12163	ldrh	r4, [r2]
12164	bls	.L1614
12165	lsrs	r4, r4, #5
12166.L1613:
12167	ldr	r1, .L1719+48
12168	ldrh	r2, [r1]
12169	cmp	r2, r3
12170	mov	r2, r1
12171	bcs	.L1617
12172	ldr	r3, .L1719+24
12173	movw	r0, #65535
12174	ldrh	r3, [r3]
12175	cmp	r3, r0
12176	bne	.L1618
12177	ldr	r0, .L1719+28
12178	ldrh	r0, [r0]
12179	cmp	r0, r3
12180	bne	.L1618
12181	ldr	r3, .L1719+36
12182	ldrh	r0, [r3]
12183	cbnz	r0, .L1619
12184	ldr	r3, .L1719+52
12185	ldr	r4, .L1719+56
12186	ldr	r3, [r3]
12187	ldr	r4, [r4]
12188	add	r3, r3, r3, lsl #1
12189	cmp	r4, r3, lsr #2
12190	bcs	.L1620
12191.L1619:
12192	ldr	r3, .L1719+60
12193	ldrh	r3, [r3]
12194	add	r3, r3, r3, lsl #1
12195	asrs	r3, r3, #2
12196	strh	r3, [r2]	@ movhi
12197.L1621:
12198	ldr	r3, .L1719+64
12199	movs	r2, #0
12200	str	r2, [r3]
12201.L1596:
12202	add	sp, sp, #48
12203	@ sp needed
12204	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12205.L1598:
12206	ldr	r2, .L1719+24
12207	ldrh	r2, [r2]
12208	cmp	r2, r3
12209	beq	.L1601
12210	movs	r0, #1
12211	bl	FtlGcFreeTempBlock
12212	cmp	r0, #0
12213	beq	.L1601
12214	movs	r0, #1
12215	b	.L1596
12216.L1599:
12217	ldr	r1, .L1719+28
12218	ldrh	r2, [r1]
12219	cmp	r2, r4
12220	itt	eq
12221	strheq	r0, [r1]	@ movhi
12222	strheq	r2, [r3]	@ movhi
12223	b	.L1600
12224.L1610:
12225	movs	r3, #64
12226.L1713:
12227	strh	r3, [r8]	@ movhi
12228	b	.L1609
12229.L1607:
12230	movs	r3, #80
12231	b	.L1713
12232.L1677:
12233	mov	r4, r0
12234.L1606:
12235	ldr	r3, .L1719+40
12236	mov	r5, r4
12237	ldr	r1, .L1719+48
12238	ldrh	r2, [r7]
12239	ldr	r3, [r3]
12240	ldrh	r1, [r1]
12241	ldr	r0, .L1719+68
12242	ldrh	r3, [r3, r4, lsl #1]
12243	str	r1, [sp, #4]
12244	ldr	r1, .L1719+72
12245	ldr	r1, [r1]
12246	ldrh	r1, [r1, r4, lsl #1]
12247	str	r1, [sp]
12248	mov	r1, r4
12249	bl	printf
12250	b	.L1609
12251.L1614:
12252	cmp	r3, #12
12253	bls	.L1615
12254	lsrs	r4, r4, #4
12255	b	.L1613
12256.L1615:
12257	cmp	r3, #8
12258	bls	.L1613
12259	lsrs	r4, r4, #2
12260	b	.L1613
12261.L1678:
12262	movs	r4, #1
12263	b	.L1613
12264.L1620:
12265	movs	r3, #18
12266	strh	r3, [r1]	@ movhi
12267	b	.L1621
12268.L1618:
12269	ldr	r3, .L1719+60
12270	ldrh	r3, [r3]
12271	add	r3, r3, r3, lsl #1
12272	asrs	r3, r3, #2
12273	strh	r3, [r2]	@ movhi
12274.L1617:
12275	ldr	r3, .L1719+76
12276	ldrh	r3, [r3]
12277	cbz	r3, .L1679
12278	adds	r4, r4, #32
12279	uxth	r4, r4
12280.L1679:
12281	movw	r5, #65535
12282.L1623:
12283	ldrh	r3, [r6]
12284	movw	r2, #65535
12285	cmp	r3, r2
12286	bne	.L1632
12287	cmp	r5, r3
12288	beq	.L1633
12289	strh	r5, [r6]	@ movhi
12290.L1634:
12291	ldrh	r0, [r6]
12292	movw	r7, #65535
12293	movs	r3, #0
12294	strb	r3, [r6, #8]
12295	cmp	r0, r7
12296	beq	.L1632
12297	bl	IsBlkInGcList
12298	cbz	r0, .L1637
12299	strh	r7, [r6]	@ movhi
12300.L1637:
12301	ldrh	r2, [r6]
12302	movw	r3, #65535
12303	cmp	r2, r3
12304	beq	.L1632
12305	ldr	r0, .L1719+20
12306	bl	make_superblock
12307	ldr	r2, .L1719+80
12308	movs	r3, #0
12309	strh	r3, [r6, #2]	@ movhi
12310	strb	r3, [r6, #6]
12311	strh	r3, [r2]	@ movhi
12312	ldr	r3, .L1719+40
12313	ldrh	r2, [r6]
12314	ldr	r3, [r3]
12315	ldrh	r2, [r3, r2, lsl #1]
12316	ldr	r3, .L1719+84
12317	strh	r2, [r3]	@ movhi
12318.L1632:
12319	ldr	r2, .L1719+88
12320	ldrh	r3, [r6]
12321	ldrh	r2, [r2]
12322	cmp	r2, r3
12323	beq	.L1638
12324	ldr	r2, .L1719+92
12325	ldrh	r2, [r2]
12326	cmp	r2, r3
12327	bne	.L1639
12328.L1638:
12329	movw	r3, #65535
12330	strh	r3, [r6]	@ movhi
12331.L1639:
12332	ldr	fp, .L1719+20
12333	mov	r6, fp
12334.L1669:
12335	ldrh	r2, [fp]
12336	movw	r3, #65535
12337	cmp	r2, r3
12338	bne	.L1640
12339	ldr	r10, .L1719+100
12340	movs	r2, #0
12341	ldr	r3, .L1719+64
12342	mov	r8, r10
12343	str	r2, [r3]
12344.L1641:
12345	ldrh	r7, [r10]
12346	mov	r0, r7
12347	bl	List_get_gc_head_node
12348	uxth	r3, r0
12349	movw	r1, #65535
12350	cmp	r3, r1
12351	strh	r3, [r6]	@ movhi
12352	bne	.L1642
12353	movs	r3, #0
12354	movs	r0, #8
12355	strh	r3, [r10]	@ movhi
12356	b	.L1596
12357.L1720:
12358	.align	2
12359.L1719:
12360	.word	.LANCHOR108
12361	.word	.LANCHOR45
12362	.word	.LANCHOR162
12363	.word	.LANCHOR100
12364	.word	.LANCHOR84
12365	.word	.LANCHOR80
12366	.word	.LANCHOR53
12367	.word	.LANCHOR99
12368	.word	.LANCHOR48
12369	.word	.LANCHOR177
12370	.word	.LANCHOR42
12371	.word	.LANCHOR19
12372	.word	.LANCHOR82
12373	.word	.LANCHOR61
12374	.word	.LANCHOR59
12375	.word	.LANCHOR78
12376	.word	.LANCHOR87
12377	.word	.LC112
12378	.word	.LANCHOR43
12379	.word	.LANCHOR101
12380	.word	.LANCHOR178
12381	.word	.LANCHOR179
12382	.word	.LANCHOR51
12383	.word	.LANCHOR52
12384	.word	.LANCHOR83
12385	.word	.LANCHOR85
12386.L1624:
12387	ldr	r3, .L1721
12388	movs	r2, #0
12389	ldr	r5, .L1721+4
12390	ldr	r4, .L1721+8
12391	str	r2, [r3]
12392	ldrh	r2, [r5]
12393	ldrh	r3, [r4]
12394	ldr	r7, .L1721+12
12395	cmp	r2, r3
12396	bls	.L1625
12397	ldrh	r3, [r7]
12398	cbnz	r3, .L1626
12399	ldr	r3, .L1721+16
12400	ldr	r2, .L1721+20
12401	ldr	r3, [r3]
12402	ldr	r2, [r2]
12403	add	r3, r3, r3, lsl #1
12404	cmp	r2, r3, lsr #2
12405	bcs	.L1627
12406.L1626:
12407	ldr	r3, .L1721+24
12408	ldrh	r3, [r3]
12409	add	r3, r3, r3, lsl #1
12410	asrs	r3, r3, #2
12411.L1714:
12412	strh	r3, [r4]	@ movhi
12413	bl	FtlReadRefresh
12414	movs	r0, #0
12415	bl	List_get_gc_head_node
12416	ldr	r3, .L1721+28
12417	uxth	r0, r0
12418	ldr	r3, [r3]
12419	ldrh	r3, [r3, r0, lsl #1]
12420	cmp	r3, #4
12421	bls	.L1625
12422.L1717:
12423	ldrh	r0, [r7]
12424	b	.L1596
12425.L1627:
12426	movs	r3, #18
12427	b	.L1714
12428.L1625:
12429	ldrh	r0, [r7]
12430	cmp	r0, #0
12431	bne	.L1629
12432	ldr	r3, .L1721+24
12433	ldrh	r8, [r3]
12434	add	r2, r8, r8, lsl #1
12435	asrs	r2, r2, #2
12436	strh	r2, [r4]	@ movhi
12437	bl	List_get_gc_head_node
12438	ldr	r3, .L1721+28
12439	uxth	r0, r0
12440	ldr	r2, .L1721+32
12441	ldr	r3, [r3]
12442	ldrh	r2, [r2]
12443	ldrh	r1, [r3, r0, lsl #1]
12444	ldr	r3, .L1721+36
12445	ldrh	r3, [r3]
12446	muls	r2, r3, r2
12447	cmp	r1, r2, asr #1
12448	ble	.L1630
12449	ldrh	r2, [r5]
12450	add	r3, r8, #-1
12451	cmp	r2, r3
12452	blt	.L1630
12453	bl	FtlReadRefresh
12454	b	.L1717
12455.L1630:
12456	cmp	r1, #0
12457	bne	.L1629
12458	movw	r0, #65535
12459	bl	decrement_vpc_count
12460	ldrh	r0, [r5]
12461	adds	r0, r0, #1
12462	b	.L1596
12463.L1633:
12464	ldr	r3, .L1721+40
12465	ldrh	r2, [r3]
12466	cmp	r2, r5
12467	beq	.L1634
12468	ldr	r1, .L1721+28
12469	ldr	r1, [r1]
12470	ldrh	r2, [r1, r2, lsl #1]
12471	cbnz	r2, .L1635
12472	strh	r5, [r3]	@ movhi
12473.L1635:
12474	ldrh	r2, [r3]
12475	strh	r2, [r6]	@ movhi
12476	movw	r2, #65535
12477	strh	r2, [r3]	@ movhi
12478	b	.L1634
12479.L1642:
12480	str	r0, [sp, #16]
12481	mov	r0, r3
12482	str	r3, [sp, #12]
12483	adds	r7, r7, #1
12484	bl	IsBlkInGcList
12485	ldr	r3, [sp, #12]
12486	ldr	r2, [sp, #16]
12487	cbz	r0, .L1643
12488	strh	r7, [r10]	@ movhi
12489	b	.L1641
12490.L1643:
12491	ldr	lr, .L1721+28
12492	uxth	r0, r2
12493	uxth	r7, r7
12494	ldr	r2, [lr]
12495	strh	r7, [r10]	@ movhi
12496	str	lr, [sp, #16]
12497	ldrh	ip, [r2, r0, lsl #1]
12498	str	r2, [sp, #12]
12499	ldr	r2, .L1721+44
12500	ldrh	r2, [r2]
12501	mov	r1, r2
12502	ldr	r2, .L1721+32
12503	ldrh	r2, [r2]
12504	muls	r2, r1, r2
12505	cmp	ip, r2, asr #1
12506	bgt	.L1645
12507	cmp	r7, #48
12508	bls	.L1646
12509	cmp	ip, #8
12510	bls	.L1646
12511	ldr	r7, .L1721+48
12512	ldrh	r7, [r7]
12513	cmp	r7, #35
12514	bhi	.L1646
12515.L1645:
12516	movs	r7, #0
12517	strh	r7, [r8]	@ movhi
12518.L1646:
12519	ldr	r1, [sp, #12]
12520	ldrh	r1, [r1, r0, lsl #1]
12521	cmp	r2, r1
12522	bgt	.L1647
12523	movw	r2, #65535
12524	cmp	r5, r2
12525	bne	.L1647
12526	ldrh	r2, [r8]
12527	cmp	r2, #3
12528	bhi	.L1647
12529	movs	r3, #0
12530	strh	r5, [r6]	@ movhi
12531	strh	r3, [r8]	@ movhi
12532.L1718:
12533	ldr	r3, .L1721+12
12534	ldrh	r0, [r3]
12535	b	.L1596
12536.L1647:
12537	cbnz	r1, .L1648
12538	movw	r0, #65535
12539	bl	decrement_vpc_count
12540	ldrh	r3, [r8]
12541	adds	r3, r3, #1
12542	strh	r3, [r8]	@ movhi
12543	b	.L1641
12544.L1648:
12545	movs	r2, #0
12546	strb	r2, [r6, #8]
12547	ldr	r2, .L1721+52
12548	ldrh	r2, [r2]
12549	cmp	r2, r3
12550	bne	.L1649
12551	mov	r2, #700
12552	ldr	r1, .L1721+56
12553	ldr	r0, .L1721+60
12554	bl	printf
12555.L1649:
12556	ldr	r3, .L1721+64
12557	ldrh	r2, [r6]
12558	ldrh	r3, [r3]
12559	cmp	r2, r3
12560	bne	.L1650
12561	movw	r2, #701
12562	ldr	r1, .L1721+56
12563	ldr	r0, .L1721+60
12564	bl	printf
12565.L1650:
12566	ldr	r3, .L1721+68
12567	ldrh	r2, [r6]
12568	ldrh	r3, [r3]
12569	cmp	r2, r3
12570	bne	.L1651
12571	movw	r2, #702
12572	ldr	r1, .L1721+56
12573	ldr	r0, .L1721+60
12574	bl	printf
12575.L1651:
12576	mov	r0, fp
12577	bl	make_superblock
12578	ldr	r2, .L1721+72
12579	movs	r3, #0
12580	ldrh	r1, [r6]
12581	strh	r3, [r2]	@ movhi
12582	ldr	r2, [sp, #16]
12583	ldr	r2, [r2]
12584	ldrh	r1, [r2, r1, lsl #1]
12585	ldr	r2, .L1721+76
12586	strh	r3, [r6, #2]	@ movhi
12587	strb	r3, [r6, #6]
12588	strh	r1, [r2]	@ movhi
12589.L1640:
12590	ldr	r3, .L1721+80
12591	movs	r2, #1
12592	str	r2, [r3]
12593	ldr	r3, .L1721+44
12594	ldrh	r3, [r3]
12595	str	r3, [sp, #20]
12596	ldr	r3, [sp, #8]
12597	cbz	r3, .L1652
12598	ldr	r3, .L1721+32
12599	ldr	r2, [sp, #20]
12600	ldrh	r1, [r6]
12601	ldrh	r3, [r3]
12602	muls	r3, r2, r3
12603	ldr	r2, .L1721+28
12604	ldr	r2, [r2]
12605	ldrh	r2, [r2, r1, lsl #1]
12606	subs	r3, r3, r2
12607	it	mi
12608	addmi	r3, r3, #3
12609	add	r4, r4, r3, asr #2
12610	uxth	r4, r4
12611.L1652:
12612	ldrh	r3, [r6, #2]
12613	ldr	r1, [sp, #20]
12614	adds	r2, r3, r4
12615	cmp	r2, r1
12616	itt	gt
12617	movgt	r2, r1
12618	subgt	r4, r2, r3
12619	mov	r3, #0
12620	it	gt
12621	uxthgt	r4, r4
12622.L1716:
12623	str	r3, [sp, #28]
12624	ldrh	r3, [sp, #28]
12625	cmp	r4, r3
12626	bls	.L1663
12627	ldr	r3, .L1721+32
12628	movw	lr, #65535
12629	ldrh	r1, [fp, #2]
12630	mov	ip, #20
12631	ldr	r7, .L1721+84
12632	ldrh	r8, [r3]
12633	ldr	r3, .L1721+88
12634	ldr	r0, [r3]
12635	ldr	r3, [sp, #28]
12636	adds	r3, r1, r3
12637	str	r3, [sp, #16]
12638	movs	r3, #0
12639	str	r3, [sp, #12]
12640	b	.L1664
12641.L1657:
12642	ldrh	r2, [r7, #2]!
12643	cmp	r2, lr
12644	beq	.L1656
12645	ldr	r1, [sp, #12]
12646	mla	r10, ip, r1, r0
12647	ldr	r1, [sp, #16]
12648	orr	r2, r1, r2, lsl #10
12649	str	r2, [r10, #4]
12650	ldr	r2, [sp, #12]
12651	adds	r2, r2, #1
12652	uxth	r2, r2
12653	str	r2, [sp, #12]
12654.L1656:
12655	adds	r3, r3, #1
12656.L1664:
12657	uxth	r2, r3
12658	cmp	r8, r2
12659	bhi	.L1657
12660	ldrb	r2, [fp, #8]	@ zero_extendqisi2
12661	ldr	r1, [sp, #12]
12662	bl	FlashReadPages
12663	movs	r3, #0
12664.L1715:
12665	str	r3, [sp, #24]
12666	ldr	r2, [sp, #12]
12667	ldrh	r3, [sp, #24]
12668	cmp	r2, r3
12669	bhi	.L1662
12670	ldr	r3, [sp, #28]
12671	adds	r3, r3, #1
12672	b	.L1716
12673.L1722:
12674	.align	2
12675.L1721:
12676	.word	.LANCHOR87
12677	.word	.LANCHOR48
12678	.word	.LANCHOR82
12679	.word	.LANCHOR177
12680	.word	.LANCHOR61
12681	.word	.LANCHOR59
12682	.word	.LANCHOR78
12683	.word	.LANCHOR42
12684	.word	.LANCHOR3
12685	.word	.LANCHOR20
12686	.word	.LANCHOR99
12687	.word	.LANCHOR19
12688	.word	.LANCHOR96
12689	.word	.LANCHOR51
12690	.word	.LANCHOR180
12691	.word	.LC1
12692	.word	.LANCHOR52
12693	.word	.LANCHOR53
12694	.word	.LANCHOR178
12695	.word	.LANCHOR179
12696	.word	.LANCHOR108
12697	.word	.LANCHOR80+14
12698	.word	.LANCHOR93
12699.L1662:
12700	ldr	r3, [sp, #24]
12701	movs	r7, #20
12702	muls	r7, r3, r7
12703	ldr	r3, .L1723
12704	ldr	r3, [r3]
12705	adds	r2, r3, r7
12706	ldr	r3, [r3, r7]
12707	adds	r3, r3, #1
12708	beq	.L1659
12709	ldr	r3, [r2, #12]
12710	ldrh	r2, [r3]
12711	str	r3, [sp, #16]
12712	movw	r3, #61589
12713	cmp	r2, r3
12714	bne	.L1659
12715	ldr	r3, [sp, #16]
12716	ldr	r8, [r3, #8]
12717	cmp	r8, #-1
12718	bne	.L1660
12719	mov	r2, #736
12720	ldr	r1, .L1723+4
12721	ldr	r0, .L1723+8
12722	bl	printf
12723.L1660:
12724	movs	r2, #0
12725	add	r1, sp, #44
12726	mov	r0, r8
12727	bl	log2phys
12728	ldr	r3, .L1723
12729	ldr	r1, [r3]
12730	ldr	r3, [sp, #44]
12731	add	r1, r1, r7
12732	ldr	r2, [r1, #4]
12733	cmp	r2, r3
12734	bne	.L1659
12735	ldr	r3, .L1723+12
12736	mov	r10, #20
12737	ldr	r2, .L1723+12
12738	ldr	r8, .L1723+32
12739	ldrh	r3, [r3]
12740	ldr	r1, [r1, #16]
12741	adds	r3, r3, #1
12742	strh	r3, [r2]	@ movhi
12743	ldr	r2, .L1723+16
12744	ldr	r3, [r8]
12745	ldr	r0, [r2]
12746	str	r2, [sp, #36]
12747	mla	r3, r10, r3, r0
12748	str	r1, [r3, #16]
12749	str	r3, [sp, #32]
12750	bl	Ftl_get_new_temp_ppa
12751	ldr	r3, [sp, #32]
12752	ldr	r2, [sp, #36]
12753	ldr	r1, [sp, #16]
12754	str	r0, [r3, #4]
12755	ldr	r2, [r2]
12756	ldr	r3, [r8]
12757	mla	r10, r10, r3, r2
12758	ldr	r2, .L1723
12759	adds	r3, r3, #1
12760	ldr	r0, [r2]
12761	add	r0, r0, r7
12762	ldr	r7, .L1723+20
12763	ldr	r2, [r0, #8]
12764	str	r2, [r10, #8]
12765	ldr	r2, [r0, #12]
12766	str	r2, [r10, #12]
12767	ldr	r2, [sp, #44]
12768	str	r2, [r1, #12]
12769	ldrh	r2, [r7]
12770	strh	r2, [r1, #2]	@ movhi
12771	ldr	r2, .L1723+24
12772	str	r3, [r8]
12773	ldr	r2, [r2]
12774	str	r2, [r1, #4]
12775	movs	r1, #1
12776	bl	FtlGcBufAlloc
12777	ldrb	r2, [r7, #7]	@ zero_extendqisi2
12778	ldr	r3, [r8]
12779	cmp	r2, r3
12780	beq	.L1661
12781	ldrh	r3, [r7, #4]
12782	cbnz	r3, .L1659
12783.L1661:
12784	bl	Ftl_gc_temp_data_write_back
12785	cbz	r0, .L1659
12786	ldr	r3, .L1723+28
12787	movs	r2, #0
12788	str	r2, [r3]
12789	b	.L1718
12790.L1659:
12791	ldr	r3, [sp, #24]
12792	adds	r3, r3, #1
12793	b	.L1715
12794.L1663:
12795	ldrh	r3, [fp, #2]
12796	add	r4, r4, r3
12797	ldr	r3, [sp, #20]
12798	uxth	r4, r4
12799	cmp	r3, r4
12800	strh	r4, [fp, #2]	@ movhi
12801	ldr	r4, .L1723+28
12802	bhi	.L1665
12803	ldr	r3, .L1723+32
12804	ldr	r3, [r3]
12805	cbz	r3, .L1666
12806	bl	Ftl_gc_temp_data_write_back
12807	cbz	r0, .L1666
12808	movs	r3, #0
12809	str	r3, [r4]
12810	b	.L1718
12811.L1666:
12812	ldr	r3, .L1723+12
12813	ldrh	r1, [r3]
12814	cbnz	r1, .L1667
12815	ldr	r3, .L1723+36
12816	ldrh	r2, [fp]
12817	ldr	r3, [r3]
12818	ldrh	r0, [r3, r2, lsl #1]
12819	cbz	r0, .L1667
12820	strh	r1, [r3, r2, lsl #1]	@ movhi
12821	ldrh	r0, [fp]
12822	bl	update_vpc_list
12823	bl	l2p_flush
12824	bl	FtlVpcTblFlush
12825.L1667:
12826	movw	r3, #65535
12827	strh	r3, [fp]	@ movhi
12828.L1665:
12829	movs	r3, #0
12830	str	r3, [r4]
12831	ldr	r3, .L1723+40
12832	ldrh	r3, [r3]
12833	cmp	r3, #2
12834	bhi	.L1668
12835	ldr	r3, .L1723+44
12836	ldrh	r4, [r3]
12837	b	.L1669
12838.L1668:
12839	ldr	r2, .L1723+48
12840	ldrh	r0, [r2]
12841	cmp	r0, #0
12842	bne	.L1596
12843	adds	r0, r3, #1
12844	b	.L1596
12845.L1673:
12846	movs	r0, #0
12847	b	.L1596
12848.L1602:
12849	ldr	r3, [sp, #8]
12850	cmp	r3, #0
12851	beq	.L1671
12852.L1612:
12853	ldr	r3, .L1723+20
12854	ldrh	r2, [r3]
12855	movw	r3, #65535
12856	cmp	r2, r3
12857	bne	.L1682
12858.L1672:
12859	ldr	r3, .L1723+52
12860	movw	r2, #65535
12861	ldrh	r3, [r3]
12862	cmp	r3, r2
12863	bne	.L1682
12864	cmp	r5, r3
12865	bne	.L1682
12866	ldrh	r3, [r6]
12867	cmp	r3, r5
12868	beq	.L1624
12869.L1629:
12870	movw	r5, #65535
12871.L1682:
12872	movs	r4, #1
12873	b	.L1623
12874.L1604:
12875	ldr	r3, [sp, #8]
12876	cmp	r3, #0
12877	beq	.L1671
12878	movw	r5, #65535
12879	b	.L1672
12880.L1603:
12881	ldr	r3, [sp, #8]
12882	cmp	r3, #0
12883	bne	.L1629
12884	b	.L1671
12885.L1724:
12886	.align	2
12887.L1723:
12888	.word	.LANCHOR93
12889	.word	.LANCHOR180
12890	.word	.LC1
12891	.word	.LANCHOR178
12892	.word	.LANCHOR113
12893	.word	.LANCHOR53
12894	.word	.LANCHOR71
12895	.word	.LANCHOR108
12896	.word	.LANCHOR89
12897	.word	.LANCHOR42
12898	.word	.LANCHOR48
12899	.word	.LANCHOR19
12900	.word	.LANCHOR177
12901	.word	.LANCHOR99
12902	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
12903	.section	.text.sftl_init,"ax",%progbits
12904	.align	1
12905	.global	sftl_init
12906	.syntax unified
12907	.thumb
12908	.thumb_func
12909	.fpu softvfp
12910	.type	sftl_init, %function
12911sftl_init:
12912	@ args = 0, pretend = 0, frame = 0
12913	@ frame_needed = 0, uses_anonymous_args = 0
12914	push	{r4, lr}
12915	mov	r3, #-1
12916	ldr	r4, .L1731
12917	ldr	r1, .L1731+4
12918	ldr	r0, .L1731+8
12919	str	r3, [r4]
12920	bl	printf
12921	ldr	r0, .L1731+12
12922	bl	FtlConstantsInit
12923	bl	FtlMemInit
12924	bl	FtlVariablesInit
12925	ldr	r3, .L1731+16
12926	ldrh	r0, [r3]
12927	bl	FtlFreeSysBlkQueueInit
12928	bl	FtlLoadBbt
12929	cbnz	r0, .L1729
12930	bl	FtlSysBlkInit
12931	cbnz	r0, .L1729
12932	movs	r3, #1
12933	str	r3, [r4]
12934	ldr	r3, .L1731+20
12935	ldrh	r3, [r3]
12936	cmp	r3, #15
12937	bhi	.L1729
12938	movw	r4, #8129
12939.L1728:
12940	movs	r1, #1
12941	movs	r0, #0
12942	bl	rk_ftl_garbage_collect
12943	subs	r4, r4, #1
12944	bne	.L1728
12945.L1729:
12946	movs	r0, #0
12947	pop	{r4, pc}
12948.L1732:
12949	.align	2
12950.L1731:
12951	.word	.LANCHOR86
12952	.word	.LC70
12953	.word	.LC71
12954	.word	.LANCHOR0
12955	.word	.LANCHOR4
12956	.word	.LANCHOR48
12957	.size	sftl_init, .-sftl_init
12958	.section	.text.sftl_gc,"ax",%progbits
12959	.align	1
12960	.global	sftl_gc
12961	.syntax unified
12962	.thumb
12963	.thumb_func
12964	.fpu softvfp
12965	.type	sftl_gc, %function
12966sftl_gc:
12967	@ args = 0, pretend = 0, frame = 0
12968	@ frame_needed = 0, uses_anonymous_args = 0
12969	@ link register save eliminated.
12970	movs	r1, #1
12971	mov	r0, r1
12972	b	rk_ftl_garbage_collect
12973	.size	sftl_gc, .-sftl_gc
12974	.section	.text.FtlRead,"ax",%progbits
12975	.align	1
12976	.global	FtlRead
12977	.syntax unified
12978	.thumb
12979	.thumb_func
12980	.fpu softvfp
12981	.type	FtlRead, %function
12982FtlRead:
12983	@ args = 0, pretend = 0, frame = 56
12984	@ frame_needed = 0, uses_anonymous_args = 0
12985	cmp	r0, #16
12986	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12987	sub	sp, sp, #56
12988	mov	r6, r1
12989	mov	r8, r3
12990	str	r2, [sp, #24]
12991	bne	.L1735
12992	mov	r2, r3
12993	ldr	r1, [sp, #24]
12994	add	r0, r6, #256
12995	bl	FtlVendorPartRead
12996	str	r0, [sp, #4]
12997.L1734:
12998	ldr	r0, [sp, #4]
12999	add	sp, sp, #56
13000	@ sp needed
13001	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13002.L1735:
13003	ldr	r3, [sp, #24]
13004	adds	r3, r1, r3
13005	str	r3, [sp, #12]
13006	ldr	r3, .L1767
13007	ldr	r2, [sp, #12]
13008	ldr	r3, [r3]
13009	cmp	r2, r3
13010	bhi	.L1756
13011	ldr	r3, .L1767+4
13012	ldr	r3, [r3]
13013	adds	r4, r3, #1
13014	beq	.L1757
13015	ldr	r3, .L1767+8
13016	mov	r0, r6
13017	movs	r7, #0
13018	mov	r5, r7
13019	ldrh	r4, [r3]
13020	mov	r1, r4
13021	bl	__aeabi_uidiv
13022	ldr	r3, [sp, #12]
13023	mov	r1, r4
13024	str	r0, [sp, #16]
13025	subs	r0, r3, #1
13026	bl	__aeabi_uidiv
13027	ldr	r3, [sp, #16]
13028	ldr	r2, .L1767+12
13029	ldr	r1, [sp, #24]
13030	rsb	r3, r3, #1
13031	ldr	r4, [sp, #16]
13032	add	r3, r3, r0
13033	str	r0, [sp, #20]
13034	str	r3, [sp, #8]
13035	ldr	r3, [r2]
13036	str	r7, [sp, #32]
13037	str	r7, [sp, #28]
13038	add	r3, r3, r1
13039	ldr	r1, [sp, #8]
13040	str	r3, [r2]
13041	ldr	r2, .L1767+16
13042	str	r7, [sp, #4]
13043	ldr	r3, [r2]
13044	add	r3, r3, r1
13045	str	r3, [r2]
13046.L1737:
13047	ldr	r3, [sp, #8]
13048	cbnz	r3, .L1754
13049	ldr	r3, .L1767+20
13050	ldrh	r3, [r3]
13051	cbnz	r3, .L1755
13052	ldr	r3, .L1767+24
13053	ldrh	r3, [r3]
13054	cmp	r3, #31
13055	bhi	.L1734
13056.L1755:
13057	movs	r1, #1
13058	movs	r0, #0
13059	bl	rk_ftl_garbage_collect
13060	b	.L1734
13061.L1754:
13062	movs	r2, #0
13063	add	r1, sp, #52
13064	mov	r0, r4
13065	bl	log2phys
13066	ldr	r3, [sp, #52]
13067	adds	r0, r3, #1
13068	bne	.L1738
13069	ldr	fp, .L1767+8
13070	mov	r10, #0
13071.L1739:
13072	ldrh	r0, [fp]
13073	cmp	r10, r0
13074	bcc	.L1741
13075.L1742:
13076	ldr	r3, [sp, #8]
13077	adds	r4, r4, #1
13078	subs	r3, r3, #1
13079	str	r3, [sp, #8]
13080	beq	.L1746
13081	ldr	r3, .L1767+28
13082	ldrh	r3, [r3]
13083	cmp	r5, r3, lsl #2
13084	bne	.L1737
13085.L1746:
13086	cmp	r5, #0
13087	beq	.L1737
13088	ldr	r3, .L1767+32
13089	movs	r2, #0
13090	mov	r1, r5
13091	mov	r10, #0
13092	ldr	r0, [r3]
13093	bl	FlashReadPages
13094	lsls	r3, r7, #9
13095	str	r3, [sp, #44]
13096	ldr	r3, [sp, #28]
13097	lsls	r3, r3, #9
13098	str	r3, [sp, #36]
13099	ldr	r3, [sp, #32]
13100	lsls	r3, r3, #9
13101	str	r3, [sp, #40]
13102.L1753:
13103	movs	r3, #20
13104	mul	fp, r3, r10
13105	ldr	r3, .L1767+32
13106	ldr	r2, [r3]
13107	ldr	r3, [sp, #16]
13108	add	r2, r2, fp
13109	ldr	r1, [r2, #16]
13110	cmp	r3, r1
13111	bne	.L1748
13112	ldr	r1, [r2, #8]
13113	ldr	r2, .L1767+36
13114	ldr	r2, [r2]
13115	cmp	r1, r2
13116	bne	.L1749
13117	ldr	r3, [sp, #36]
13118	mov	r0, r8
13119	ldr	r2, [sp, #40]
13120	add	r1, r1, r3
13121.L1766:
13122	bl	ftl_memcpy
13123.L1749:
13124	ldr	r3, .L1767+32
13125	ldr	r3, [r3]
13126	add	r2, r3, fp
13127	ldr	r3, [r3, fp]
13128	ldr	r0, [r2, #12]
13129	ldr	r1, [r2, #16]
13130	ldr	r0, [r0, #8]
13131	cmp	r1, r0
13132	itttt	ne
13133	ldrne	r0, .L1767+40
13134	ldrne	r1, [r0, #72]
13135	addne	r1, r1, #1
13136	strne	r1, [r0, #72]
13137	adds	r1, r3, #1
13138	bne	.L1751
13139	ldr	r1, .L1767+40
13140	str	r3, [sp, #4]
13141	ldr	r2, [r1, #72]
13142	adds	r2, r2, #1
13143	str	r2, [r1, #72]
13144.L1752:
13145	add	r10, r10, #1
13146	cmp	r5, r10
13147	bne	.L1753
13148	movs	r5, #0
13149	b	.L1737
13150.L1741:
13151	mla	r0, r0, r4, r10
13152	cmp	r6, r0
13153	bhi	.L1740
13154	ldr	r3, [sp, #12]
13155	cmp	r3, r0
13156	bls	.L1740
13157	subs	r0, r0, r6
13158	mov	r2, #512
13159	movs	r1, #0
13160	add	r0, r8, r0, lsl #9
13161	bl	ftl_memset
13162.L1740:
13163	add	r10, r10, #1
13164	b	.L1739
13165.L1738:
13166	ldr	r2, .L1767+32
13167	mov	r10, #20
13168	ldr	r2, [r2]
13169	mla	r10, r10, r5, r2
13170	str	r3, [r10, #4]
13171	ldr	r3, [sp, #16]
13172	cmp	r4, r3
13173	ldr	r3, .L1767+8
13174	bne	.L1743
13175	ldr	r2, .L1767+36
13176	mov	r0, r6
13177	ldrh	fp, [r3]
13178	ldr	r2, [r2]
13179	mov	r1, fp
13180	str	r2, [r10, #8]
13181	bl	__aeabi_uidivmod
13182	ldr	r2, [sp, #24]
13183	sub	r3, fp, r1
13184	str	r1, [sp, #28]
13185	cmp	r3, r2
13186	it	cs
13187	movcs	r3, r2
13188	cmp	fp, r3
13189	str	r3, [sp, #32]
13190	bne	.L1744
13191	str	r8, [r10, #8]
13192.L1744:
13193	ldr	r3, .L1767+44
13194	ldr	r2, .L1767+48
13195	str	r4, [r10, #16]
13196	ldrh	r3, [r3]
13197	ldr	r2, [r2]
13198	muls	r3, r5, r3
13199	adds	r5, r5, #1
13200	bic	r3, r3, #3
13201	add	r3, r3, r2
13202	str	r3, [r10, #12]
13203	b	.L1742
13204.L1743:
13205	ldr	r2, [sp, #20]
13206	cmp	r4, r2
13207	bne	.L1745
13208	ldr	r2, .L1767+52
13209	ldr	r1, [sp, #12]
13210	ldr	r2, [r2]
13211	str	r2, [r10, #8]
13212	ldrh	r2, [r3]
13213	mul	r3, r2, r4
13214	subs	r7, r1, r3
13215	cmp	r2, r7
13216	bne	.L1744
13217.L1765:
13218	subs	r3, r3, r6
13219	add	r3, r8, r3, lsl #9
13220	str	r3, [r10, #8]
13221	b	.L1744
13222.L1745:
13223	ldrh	r3, [r3]
13224	muls	r3, r4, r3
13225	b	.L1765
13226.L1748:
13227	ldr	r3, [sp, #20]
13228	cmp	r3, r1
13229	bne	.L1749
13230	ldr	r3, .L1767+52
13231	ldr	r1, [r2, #8]
13232	ldr	r2, [r3]
13233	cmp	r1, r2
13234	bne	.L1749
13235	ldr	r2, .L1767+8
13236	ldr	r3, [sp, #20]
13237	ldrh	r0, [r2]
13238	ldr	r2, [sp, #44]
13239	muls	r0, r3, r0
13240	subs	r0, r0, r6
13241	add	r0, r8, r0, lsl #9
13242	b	.L1766
13243.L1751:
13244	cmp	r3, #256
13245	bne	.L1752
13246	ldr	r0, [r2, #4]
13247	ubfx	r0, r0, #10, #16
13248	bl	P2V_block_in_plane
13249	bl	FtlGcRefreshBlock
13250	b	.L1752
13251.L1756:
13252	mov	r3, #-1
13253.L1757:
13254	str	r3, [sp, #4]
13255	b	.L1734
13256.L1768:
13257	.align	2
13258.L1767:
13259	.word	.LANCHOR34
13260	.word	.LANCHOR86
13261	.word	.LANCHOR12
13262	.word	.LANCHOR69
13263	.word	.LANCHOR62
13264	.word	.LANCHOR101
13265	.word	.LANCHOR48
13266	.word	.LANCHOR3
13267	.word	.LANCHOR112
13268	.word	.LANCHOR118
13269	.word	.LANCHOR81
13270	.word	.LANCHOR24
13271	.word	.LANCHOR124
13272	.word	.LANCHOR119
13273	.size	FtlRead, .-FtlRead
13274	.section	.text.sftl_read,"ax",%progbits
13275	.align	1
13276	.global	sftl_read
13277	.syntax unified
13278	.thumb
13279	.thumb_func
13280	.fpu softvfp
13281	.type	sftl_read, %function
13282sftl_read:
13283	@ args = 0, pretend = 0, frame = 0
13284	@ frame_needed = 0, uses_anonymous_args = 0
13285	@ link register save eliminated.
13286	mov	r3, r2
13287	mov	r2, r1
13288	mov	r1, r0
13289	movs	r0, #0
13290	b	FtlRead
13291	.size	sftl_read, .-sftl_read
13292	.section	.text.FtlWrite,"ax",%progbits
13293	.align	1
13294	.global	FtlWrite
13295	.syntax unified
13296	.thumb
13297	.thumb_func
13298	.fpu softvfp
13299	.type	FtlWrite, %function
13300FtlWrite:
13301	@ args = 0, pretend = 0, frame = 72
13302	@ frame_needed = 0, uses_anonymous_args = 0
13303	cmp	r0, #16
13304	push	{r4, r5, r6, r7, r8, r10, fp, lr}
13305	sub	sp, sp, #72
13306	str	r1, [sp, #4]
13307	str	r2, [sp, #20]
13308	str	r3, [sp, #16]
13309	bne	.L1771
13310	mov	r2, r3
13311	ldr	r3, [sp, #4]
13312	ldr	r1, [sp, #20]
13313	add	r0, r3, #256
13314	bl	FtlVendorPartWrite
13315.L1770:
13316	add	sp, sp, #72
13317	@ sp needed
13318	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13319.L1771:
13320	ldr	r3, [sp, #4]
13321	ldr	r2, [sp, #20]
13322	adds	r4, r3, r2
13323	ldr	r3, .L1822
13324	ldr	r3, [r3]
13325	cmp	r4, r3
13326	bhi	.L1808
13327	ldr	r3, .L1822+4
13328	ldr	r0, [r3]
13329	adds	r5, r0, #1
13330	beq	.L1770
13331	ldr	r3, .L1822+8
13332	mov	r2, #2048
13333	ldr	r0, [sp, #4]
13334	str	r2, [r3]
13335	ldr	r3, .L1822+12
13336	ldrh	r5, [r3]
13337	mov	r1, r5
13338	bl	__aeabi_uidiv
13339	mov	r1, r5
13340	str	r0, [sp, #12]
13341	subs	r0, r4, #1
13342	ldr	r5, .L1822+16
13343	bl	__aeabi_uidiv
13344	ldr	r2, [sp, #12]
13345	ldr	r1, [sp, #20]
13346	str	r0, [sp, #28]
13347	subs	r3, r0, r2
13348	ldr	r2, .L1822+20
13349	str	r3, [sp, #32]
13350	adds	r3, r3, #1
13351	str	r3, [sp, #8]
13352	ldr	r3, [r2]
13353	add	r3, r3, r1
13354	ldr	r1, [sp, #8]
13355	str	r3, [r2]
13356	ldr	r2, .L1822+24
13357	ldr	r3, [r2]
13358	add	r3, r3, r1
13359	str	r3, [r2]
13360	ldr	r3, .L1822+28
13361	ldr	r3, [r3]
13362	cbz	r3, .L1773
13363	ldrh	r2, [r5, #4]
13364	ldr	r3, .L1822+32
13365	cmp	r2, #0
13366	it	eq
13367	moveq	r5, r3
13368.L1773:
13369	ldr	r6, [sp, #12]
13370.L1774:
13371	ldr	r3, [sp, #8]
13372	cbnz	r3, .L1803
13373	ldr	r5, .L1822+36
13374	mov	r0, r3
13375	ldr	r1, [sp, #32]
13376	bl	rk_ftl_garbage_collect
13377	ldrh	r2, [r5]
13378	cmp	r2, #5
13379	bls	.L1804
13380.L1806:
13381	movs	r0, #0
13382	b	.L1770
13383.L1803:
13384	ldr	r3, .L1822+40
13385	ldrb	r2, [r5, #6]	@ zero_extendqisi2
13386	ldrh	r3, [r3]
13387	cmp	r2, r3
13388	bcc	.L1775
13389	movw	r2, #1011
13390	ldr	r1, .L1822+44
13391	ldr	r0, .L1822+48
13392	bl	printf
13393.L1775:
13394	ldrh	r2, [r5, #4]
13395	cbnz	r2, .L1776
13396	ldr	r3, .L1822+16
13397	ldr	r4, .L1822+28
13398	cmp	r5, r3
13399	bne	.L1777
13400	ldr	r0, .L1822+32
13401	ldrh	r5, [r0, #4]
13402	cbnz	r5, .L1778
13403	bl	allocate_new_data_superblock
13404	str	r5, [r4]
13405.L1778:
13406	ldr	r0, .L1822+16
13407	bl	allocate_new_data_superblock
13408	ldr	r5, .L1822+16
13409	ldr	r2, [r4]
13410	ldr	r3, .L1822+32
13411	cmp	r2, #0
13412	it	ne
13413	movne	r5, r3
13414.L1779:
13415	ldrh	r3, [r5, #4]
13416	cbnz	r3, .L1776
13417	mov	r0, r5
13418	bl	allocate_new_data_superblock
13419.L1776:
13420	ldrh	r2, [r5, #4]
13421	ldr	r3, [sp, #8]
13422	cmp	r2, r3
13423	it	cs
13424	movcs	r2, r3
13425	ldrb	r3, [r5, #7]	@ zero_extendqisi2
13426	lsls	r3, r3, #2
13427	cmp	r2, r3
13428	it	cs
13429	movcs	r2, r3
13430	ldr	r3, .L1822+40
13431	str	r2, [sp, #44]
13432	ldrb	r2, [r5, #6]	@ zero_extendqisi2
13433	ldrh	r3, [r3]
13434	cmp	r2, r3
13435	bcc	.L1780
13436	movw	r2, #1044
13437	ldr	r1, .L1822+44
13438	ldr	r0, .L1822+48
13439	bl	printf
13440.L1780:
13441	ldr	r8, .L1822+52
13442	mov	fp, #0
13443.L1781:
13444	ldr	r3, [sp, #44]
13445	cmp	fp, r3
13446	bne	.L1801
13447.L1782:
13448	ldr	r0, .L1822+52
13449	mov	r3, r5
13450	movs	r2, #0
13451	mov	r1, fp
13452	ldr	r0, [r0]
13453	bl	FtlProgPages
13454	ldr	r3, [sp, #8]
13455	cmp	fp, r3
13456	bls	.L1802
13457	movw	r2, #1121
13458	ldr	r1, .L1822+44
13459	ldr	r0, .L1822+48
13460	bl	printf
13461.L1802:
13462	ldr	r3, [sp, #8]
13463	sub	r3, r3, fp
13464	str	r3, [sp, #8]
13465	b	.L1774
13466.L1777:
13467	str	r2, [r4]
13468	ldrh	r2, [r3, #4]
13469	cbnz	r2, .L1813
13470	mov	r0, r5
13471	bl	allocate_new_data_superblock
13472	b	.L1779
13473.L1813:
13474	mov	r5, r3
13475	b	.L1776
13476.L1801:
13477	ldrh	r2, [r5, #4]
13478	cmp	r2, #0
13479	beq	.L1782
13480	movs	r2, #0
13481	add	r1, sp, #48
13482	mov	r0, r6
13483	movs	r7, #20
13484	bl	log2phys
13485	mov	r0, r5
13486	mul	r7, r7, fp
13487	bl	get_new_active_ppa
13488	ldr	r3, .L1822+56
13489	ldr	r1, [r8]
13490	ldrh	r2, [r3]
13491	add	r1, r1, r7
13492	str	r0, [r1, #4]
13493	str	r6, [r1, #16]
13494	mul	r0, r2, fp
13495	bic	r3, r0, #3
13496	ldr	r0, .L1822+60
13497	str	r3, [sp, #36]
13498	ldr	r3, [r0]
13499	ldr	r0, [sp, #36]
13500	str	r3, [sp, #40]
13501	add	r10, r3, r0
13502	str	r10, [r1, #12]
13503	mov	r0, r10
13504	movs	r1, #0
13505	bl	ftl_memset
13506	ldr	r3, [sp, #12]
13507	ldr	r2, .L1822+12
13508	cmp	r6, r3
13509	beq	.L1783
13510	ldr	r3, [sp, #28]
13511	cmp	r6, r3
13512	bne	.L1818
13513	ldrh	r2, [r2]
13514	ldr	r3, [sp, #4]
13515	ldr	r1, [sp, #20]
13516	smulbb	r2, r2, r6
13517	adds	r4, r3, r1
13518	movs	r3, #0
13519	subs	r4, r4, r2
13520	str	r3, [sp, #24]
13521	uxth	r4, r4
13522	b	.L1786
13523.L1783:
13524	ldrh	r4, [r2]
13525	ldr	r0, [sp, #4]
13526	mov	r1, r4
13527	bl	__aeabi_uidivmod
13528	ldr	r3, [sp, #20]
13529	subs	r4, r4, r1
13530	str	r1, [sp, #24]
13531	cmp	r4, r3
13532	it	cs
13533	movcs	r4, r3
13534.L1786:
13535	ldr	r2, .L1822+12
13536	ldr	r3, [sp, #12]
13537	ldrh	r2, [r2]
13538	cmp	r4, r2
13539	ldr	r2, [r8]
13540	bne	.L1787
13541	cmp	r6, r3
13542	add	r7, r7, r2
13543	ittet	ne
13544	mulne	r4, r4, r6
13545	ldrne	r3, [sp, #4]
13546	ldreq	r3, [sp, #16]
13547	subne	r4, r4, r3
13548	itett	ne
13549	ldrne	r3, [sp, #16]
13550	streq	r3, [r7, #8]
13551	addne	r4, r3, r4, lsl #9
13552	strne	r4, [r7, #8]
13553.L1789:
13554	ldr	r3, .L1822+40
13555	ldrb	r1, [r5, #6]	@ zero_extendqisi2
13556	ldrh	r2, [r3]
13557	cmp	r1, r2
13558	bcc	.L1798
13559	mov	r2, #1112
13560	ldr	r1, .L1822+44
13561	ldr	r0, .L1822+48
13562	bl	printf
13563.L1798:
13564	ldr	r3, [sp, #40]
13565	movw	r2, #61589
13566	ldr	r1, [sp, #36]
13567	add	fp, fp, #1
13568	strh	r2, [r3, r1]	@ movhi
13569	ldr	r1, .L1822+64
13570	str	r6, [r10, #8]
13571	adds	r6, r6, #1
13572	ldr	r2, [r1]
13573	str	r2, [r10, #4]
13574	adds	r2, r2, #1
13575	adds	r3, r2, #1
13576	it	eq
13577	moveq	r2, #0
13578	str	r2, [r1]
13579	ldr	r2, [sp, #48]
13580	str	r2, [r10, #12]
13581	ldrh	r2, [r5]
13582	strh	r2, [r10, #2]	@ movhi
13583	b	.L1781
13584.L1823:
13585	.align	2
13586.L1822:
13587	.word	.LANCHOR34
13588	.word	.LANCHOR86
13589	.word	.LANCHOR181
13590	.word	.LANCHOR12
13591	.word	.LANCHOR51
13592	.word	.LANCHOR68
13593	.word	.LANCHOR64
13594	.word	.LANCHOR182
13595	.word	.LANCHOR52
13596	.word	.LANCHOR48
13597	.word	.LANCHOR3
13598	.word	.LANCHOR183
13599	.word	.LC1
13600	.word	.LANCHOR114
13601	.word	.LANCHOR24
13602	.word	.LANCHOR124
13603	.word	.LANCHOR71
13604.L1787:
13605	cmp	r6, r3
13606	add	r2, r2, r7
13607	ite	eq
13608	ldreq	r1, .L1824
13609	ldrne	r1, .L1824+4
13610	ldr	r1, [r1]
13611	str	r1, [r2, #8]
13612	ldr	r2, [sp, #48]
13613	adds	r1, r2, #1
13614	beq	.L1792
13615	str	r2, [sp, #56]
13616	add	r0, sp, #52
13617	ldr	r2, [r8]
13618	str	r6, [sp, #68]
13619	add	r2, r2, r7
13620	ldr	r1, [r2, #8]
13621	ldr	r2, [r2, #12]
13622	str	r1, [sp, #60]
13623	movs	r1, #1
13624	str	r2, [sp, #64]
13625	movs	r2, #0
13626	bl	FlashReadPages
13627	ldr	r2, [sp, #52]
13628	adds	r2, r2, #1
13629	bne	.L1793
13630	ldr	r1, .L1824+8
13631	ldr	r2, [r1, #72]
13632	adds	r2, r2, #1
13633	str	r2, [r1, #72]
13634.L1796:
13635	ldr	r3, [sp, #12]
13636	lsls	r2, r4, #9
13637	cmp	r6, r3
13638	bne	.L1797
13639	ldr	r1, [r8]
13640	ldr	r3, [sp, #24]
13641	add	r7, r7, r1
13642	ldr	r1, [sp, #16]
13643	ldr	r0, [r7, #8]
13644	add	r0, r0, r3, lsl #9
13645.L1820:
13646	bl	ftl_memcpy
13647	b	.L1789
13648.L1793:
13649	ldr	r1, [r10, #8]
13650	cmp	r6, r1
13651	beq	.L1795
13652	ldr	r0, .L1824+8
13653	ldr	r2, [r0, #72]
13654	adds	r2, r2, #1
13655	str	r2, [r0, #72]
13656	mov	r2, r6
13657	ldr	r0, .L1824+12
13658	bl	printf
13659.L1795:
13660	ldr	r2, [r10, #8]
13661	cmp	r6, r2
13662	beq	.L1796
13663	movw	r2, #1097
13664	ldr	r1, .L1824+16
13665	ldr	r0, .L1824+20
13666	bl	printf
13667	b	.L1796
13668.L1792:
13669	ldr	r2, [r8]
13670	movs	r1, #0
13671	adds	r0, r2, r7
13672	ldr	r2, .L1824+24
13673	ldr	r0, [r0, #8]
13674	ldrh	r2, [r2]
13675	bl	ftl_memset
13676	b	.L1796
13677.L1797:
13678	ldr	r1, .L1824+28
13679	ldr	r3, [sp, #4]
13680	ldr	r0, [r8]
13681	ldrh	r1, [r1]
13682	add	r7, r7, r0
13683	ldr	r0, [r7, #8]
13684	muls	r1, r6, r1
13685	subs	r1, r1, r3
13686	ldr	r3, [sp, #16]
13687	add	r1, r3, r1, lsl #9
13688	b	.L1820
13689.L1818:
13690	ldrh	r2, [r2]
13691	ldr	r3, [sp, #4]
13692	ldr	r1, [r8]
13693	muls	r2, r6, r2
13694	add	r7, r7, r1
13695	subs	r2, r2, r3
13696	ldr	r3, [sp, #16]
13697	add	r2, r3, r2, lsl #9
13698	str	r2, [r7, #8]
13699	b	.L1789
13700.L1804:
13701	ldr	r6, .L1824+32
13702	mov	r4, #256
13703	ldr	r7, .L1824+36
13704.L1807:
13705	ldrh	r3, [r6]
13706	movw	r2, #65535
13707	cmp	r3, r2
13708	bne	.L1805
13709	ldrh	r2, [r7]
13710	cmp	r2, r3
13711	bne	.L1805
13712	movs	r0, #0
13713	bl	List_get_gc_head_node
13714	uxth	r0, r0
13715	bl	FtlGcRefreshBlock
13716.L1805:
13717	ldr	r2, .L1824+40
13718	movs	r3, #128
13719	movs	r1, #1
13720	mov	r0, r1
13721	strh	r3, [r2]	@ movhi
13722	ldr	r2, .L1824+44
13723	strh	r3, [r2]	@ movhi
13724	bl	rk_ftl_garbage_collect
13725	movs	r1, #1
13726	movs	r0, #0
13727	bl	rk_ftl_garbage_collect
13728	ldrh	r3, [r5]
13729	cmp	r3, #2
13730	bhi	.L1806
13731	subs	r4, r4, #1
13732	bne	.L1807
13733	b	.L1806
13734.L1808:
13735	mov	r0, #-1
13736	b	.L1770
13737.L1825:
13738	.align	2
13739.L1824:
13740	.word	.LANCHOR118
13741	.word	.LANCHOR119
13742	.word	.LANCHOR81
13743	.word	.LC113
13744	.word	.LANCHOR183
13745	.word	.LC1
13746	.word	.LANCHOR23
13747	.word	.LANCHOR12
13748	.word	.LANCHOR80
13749	.word	.LANCHOR99
13750	.word	.LANCHOR83
13751	.word	.LANCHOR82
13752	.size	FtlWrite, .-FtlWrite
13753	.global	__aeabi_idivmod
13754	.section	.text.sftl_write,"ax",%progbits
13755	.align	1
13756	.global	sftl_write
13757	.syntax unified
13758	.thumb
13759	.thumb_func
13760	.fpu softvfp
13761	.type	sftl_write, %function
13762sftl_write:
13763	@ args = 0, pretend = 0, frame = 128
13764	@ frame_needed = 0, uses_anonymous_args = 0
13765	push	{r4, r5, r6, r7, r8, r10, fp, lr}
13766	adds	r7, r0, r1
13767	add	r8, r7, #-1
13768	sub	sp, sp, #136
13769	cmp	r8, #63
13770	mov	fp, r0
13771	str	r1, [sp, #24]
13772	str	r2, [sp, #44]
13773	ldr	r4, .L1871
13774	bls	.L1827
13775	cmp	r0, #576
13776	bcc	.L1828
13777.L1827:
13778	ldr	r3, [r4]
13779	cbz	r3, .L1830
13780	ldr	r3, .L1871+4
13781	ldr	r10, [r3]
13782	ldr	r3, .L1871+8
13783	ldr	r2, [r10]
13784	cmp	r2, r3
13785	beq	.L1831
13786.L1848:
13787	ldr	r3, .L1871
13788	movs	r2, #0
13789	str	r2, [r3]
13790	ldr	r3, .L1871+4
13791	ldr	r0, [r3]
13792	bl	free
13793	ldr	r3, .L1871+12
13794	ldr	r0, [r3]
13795	bl	free
13796.L1830:
13797	ldr	r3, [sp, #44]
13798	mov	r1, fp
13799	ldr	r2, [sp, #24]
13800	movs	r0, #0
13801	bl	FtlWrite
13802	add	sp, sp, #136
13803	@ sp needed
13804	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
13805.L1831:
13806	ldr	r3, .L1871+16
13807	add	r0, r10, #262144
13808	movw	r2, #65535
13809	ldrh	r4, [r3, #14]
13810	ldrh	r5, [r3, #10]
13811	movs	r3, #0
13812.L1835:
13813	ldr	r1, [r0, #-4]
13814	cbnz	r1, .L1832
13815	ldr	r1, [r10, r3, lsl #2]
13816	adds	r3, r3, #1
13817	cmp	r3, #4096
13818	add	r2, r2, #-1
13819	it	hi
13820	movhi	r3, #0
13821	cmp	r2, #4096
13822	str	r1, [r0, #-4]!
13823	bne	.L1835
13824	mov	r3, #512
13825	str	r3, [sp, #12]
13826	b	.L1834
13827.L1832:
13828	add	r3, r2, #127
13829	ldr	r0, .L1871+20
13830	lsrs	r3, r3, #7
13831	str	r3, [sp, #12]
13832	bl	printf
13833.L1834:
13834	uxtb	r4, r4
13835	mov	r8, #0
13836	smulbb	r5, r4, r5
13837	uxth	r3, r5
13838	ldr	r5, .L1871+24
13839	str	r3, [sp, #16]
13840	subs	r0, r3, #1
13841	mov	r1, r3
13842	ldr	r3, [sp, #12]
13843	add	r0, r0, r3
13844	bl	__aeabi_uidiv
13845	ldr	r2, [sp, #16]
13846	mov	r3, r0
13847	str	r0, [sp, #20]
13848	str	r0, [sp, #40]
13849	str	r8, [sp, #32]
13850	muls	r3, r2, r3
13851	str	r3, [sp, #28]
13852	ldr	r3, [sp, #12]
13853	lsls	r3, r3, #7
13854	str	r3, [sp, #56]
13855	b	.L1847
13856.L1856:
13857	str	r3, [sp, #40]
13858.L1847:
13859	ldr	r3, .L1871+12
13860	mov	r2, #512
13861	movs	r1, #0
13862	ldr	r0, [r3]
13863	bl	memset
13864	ldr	r3, .L1871+16
13865	mov	r0, r8
13866	ldrh	r7, [r3, #14]
13867	mov	r1, r7
13868	uxtb	r6, r7
13869	uxth	r3, r6
13870	str	r3, [sp, #36]
13871	ldr	r3, .L1871+16
13872	ldrh	r4, [r3, #10]
13873	ldrh	r3, [sp, #36]
13874	smulbb	r4, r4, r3
13875	bl	__aeabi_uidiv
13876	ldr	r3, [r5, #4]
13877	mov	r1, r0
13878	movs	r0, #0
13879	uxth	r4, r4
13880	blx	r3
13881	ldr	r3, [sp, #28]
13882	cmp	r3, r4
13883	bls	.L1836
13884	mov	r1, r7
13885	add	r0, r4, r8
13886	bl	__aeabi_uidiv
13887	ldr	r3, [r5, #4]
13888	mov	r1, r0
13889	movs	r0, #0
13890	blx	r3
13891.L1836:
13892	mov	r1, r4
13893	mov	r0, r8
13894	movs	r4, #0
13895	bl	__aeabi_uidivmod
13896	sub	r3, r8, r1
13897	str	r1, [sp, #48]
13898	str	r3, [sp, #52]
13899.L1837:
13900	ldr	r3, [sp, #28]
13901	cmp	r3, r4
13902	bhi	.L1838
13903	ldr	r3, .L1871+12
13904	mov	r0, r8
13905	movs	r4, #0
13906	ldr	r3, [r3]
13907	str	r3, [sp, #52]
13908	ldr	r3, .L1871+16
13909	ldrb	r7, [r3, #14]	@ zero_extendqisi2
13910	uxth	r3, r7
13911	str	r3, [sp, #48]
13912	ldr	r3, .L1871+16
13913	ldrh	r1, [r3, #10]
13914	ldrh	r3, [sp, #48]
13915	smulbb	r1, r1, r3
13916	uxth	r1, r1
13917	bl	__aeabi_uidivmod
13918	str	r1, [sp, #36]
13919	sub	r3, r8, r1
13920	ldrh	r0, [sp, #36]
13921	mov	r1, r7
13922	str	r3, [sp, #60]
13923	bl	__aeabi_idivmod
13924	uxth	r6, r1
13925.L1839:
13926	ldr	r3, [sp, #12]
13927	cmp	r4, r3
13928	bcs	.L1843
13929	ldr	r3, [sp, #48]
13930	mov	r1, r7
13931	subs	r3, r3, r6
13932	uxth	r3, r3
13933	str	r3, [sp, #64]
13934	ldr	r3, [sp, #52]
13935	add	r2, r3, r4, lsl #9
13936	ldr	r3, [sp, #36]
13937	str	r2, [sp, #68]
13938	adds	r0, r3, r4
13939	bl	__aeabi_uidiv
13940	ldr	r3, [sp, #60]
13941	uxth	r0, r0
13942	mov	r1, r7
13943	add	r6, r6, r3
13944	mla	r0, r7, r0, r6
13945	bl	__aeabi_uidiv
13946	ldr	r6, [r5, #12]
13947	mov	r1, r0
13948	add	r3, sp, #72
13949	ldr	r2, [sp, #68]
13950	movs	r0, #0
13951	blx	r6
13952	adds	r0, r0, #1
13953	bne	.L1840
13954.L1843:
13955	ldr	r3, .L1871+12
13956	mov	r1, r10
13957	movs	r4, #0
13958	ldr	r0, [r3]
13959.L1841:
13960	mov	r7, r1
13961	ldr	r2, [r0, r4, lsl #2]
13962	ldr	r3, [r7]
13963	lsls	r6, r4, #2
13964	adds	r1, r1, #4
13965	cmp	r2, r3
13966	beq	.L1844
13967	mov	r2, #512
13968	movs	r1, #0
13969	bl	memset
13970	ldr	r3, .L1871+12
13971	mov	r1, r8
13972	ldr	r0, .L1871+28
13973	ldr	r2, [r3]
13974	str	r4, [sp]
13975	ldr	r3, [r7]
13976	ldr	r2, [r2, r6]
13977	bl	printf
13978	ldr	r3, [r5, #4]
13979	mov	r1, r8
13980	movs	r0, #0
13981	blx	r3
13982	ldr	r3, [sp, #20]
13983	cmp	r3, #1
13984	bls	.L1855
13985	ldr	r2, [sp, #16]
13986	movs	r0, #0
13987	ldr	r3, [r5, #4]
13988	add	r1, r2, r8
13989	blx	r3
13990.L1855:
13991	ldr	r2, [sp, #40]
13992	ldr	r3, [sp, #20]
13993	add	r3, r3, r2
13994	ldr	r2, [sp, #28]
13995	add	r8, r8, r2
13996	ldr	r2, [sp, #40]
13997	cmp	r2, #15
13998	bls	.L1856
13999	b	.L1848
14000.L1838:
14001	ldr	r3, [sp, #48]
14002	mov	r1, r6
14003	adds	r0, r3, r4
14004	bl	__aeabi_uidiv
14005	uxth	r3, r0
14006	add	r2, r10, r4, lsl #9
14007	ldr	r0, [sp, #52]
14008	mov	r7, r3
14009	muls	r3, r6, r3
14010	mov	r1, r6
14011	str	r2, [sp, #60]
14012	str	r3, [sp, #72]
14013	movw	r3, #61424
14014	str	r3, [sp, #76]
14015	bl	__aeabi_uidiv
14016	add	r3, sp, #72
14017	adds	r1, r0, r7
14018	ldr	r2, [sp, #60]
14019	movs	r0, #0
14020	ldr	r7, [r5, #8]
14021	blx	r7
14022	ldr	r3, [sp, #36]
14023	add	r4, r4, r3
14024	uxth	r4, r4
14025	b	.L1837
14026.L1840:
14027	ldr	r3, [sp, #64]
14028	movs	r6, #0
14029	add	r3, r3, r4
14030	uxth	r4, r3
14031	b	.L1839
14032.L1844:
14033	ldr	r3, [sp, #56]
14034	adds	r4, r4, #1
14035	cmp	r4, r3
14036	bne	.L1841
14037	ldr	r3, [sp, #32]
14038	adds	r3, r3, #1
14039	cmp	r3, #5
14040	str	r3, [sp, #32]
14041	bls	.L1855
14042	b	.L1848
14043.L1872:
14044	.align	2
14045.L1871:
14046	.word	.LANCHOR184
14047	.word	.LANCHOR185
14048	.word	-52655045
14049	.word	.LANCHOR186
14050	.word	.LANCHOR0
14051	.word	.LC114
14052	.word	.LANCHOR105
14053	.word	.LC115
14054.L1828:
14055	cmp	r0, #64
14056	bne	.L1849
14057	ldr	r5, .L1873
14058	mov	r0, #262144
14059	bl	ftl_malloc
14060	str	r0, [r5]
14061	mov	r0, #262144
14062	bl	ftl_malloc
14063	ldr	r3, .L1873+4
14064	str	r0, [r3]
14065	ldr	r3, [r5]
14066	cbz	r3, .L1850
14067	cbz	r0, .L1850
14068	movs	r2, #1
14069	movs	r1, #0
14070	str	r2, [r4]
14071	mov	r0, r3
14072	mov	r2, #262144
14073	bl	ftl_memset
14074.L1849:
14075	ldr	r3, [r4]
14076	cmp	r3, #0
14077	beq	.L1830
14078	ldr	r3, .L1873
14079	cmp	fp, #63
14080	ldr	r1, [r3]
14081	bhi	.L1852
14082	ldr	r3, [sp, #24]
14083	rsb	r5, fp, #64
14084	mov	r4, r1
14085	subs	r6, r3, r5
14086	ldr	r3, [sp, #44]
14087	add	r5, r3, r5, lsl #9
14088.L1853:
14089	cmp	r8, #576
14090	ldr	r0, .L1873+8
14091	it	cs
14092	subcs	r6, r6, r7
14093	mov	r3, r4
14094	it	cs
14095	subcs	r6, r6, #446
14096	mov	r2, #262144
14097	str	r6, [sp]
14098	bl	printf
14099	lsls	r2, r6, #9
14100	mov	r1, r5
14101	mov	r0, r4
14102	bl	ftl_memcpy
14103	b	.L1830
14104.L1850:
14105	ldr	r1, .L1873+12
14106	ldr	r0, .L1873+16
14107	bl	printf
14108	b	.L1849
14109.L1852:
14110	ldr	r4, .L1873+20
14111	ldr	r5, [sp, #44]
14112	ldr	r6, [sp, #24]
14113	add	r4, r4, fp
14114	add	r4, r1, r4, lsl #9
14115	b	.L1853
14116.L1874:
14117	.align	2
14118.L1873:
14119	.word	.LANCHOR185
14120	.word	.LANCHOR186
14121	.word	.LC117
14122	.word	.LANCHOR187
14123	.word	.LC116
14124	.word	8388544
14125	.size	sftl_write, .-sftl_write
14126	.section	.text.FtlMakeBbt,"ax",%progbits
14127	.align	1
14128	.global	FtlMakeBbt
14129	.syntax unified
14130	.thumb
14131	.thumb_func
14132	.fpu softvfp
14133	.type	FtlMakeBbt, %function
14134FtlMakeBbt:
14135	@ args = 0, pretend = 0, frame = 8
14136	@ frame_needed = 0, uses_anonymous_args = 0
14137	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
14138	movs	r6, #0
14139	ldr	r7, .L1894
14140	bl	FtlBbtMemInit
14141	sub	r8, r7, #18
14142	bl	FtlLoadFactoryBbt
14143.L1876:
14144	ldr	r3, .L1894+4
14145	ldrh	r3, [r3]
14146	cmp	r6, r3
14147	bcc	.L1882
14148	ldr	r5, .L1894+8
14149	movs	r4, #0
14150.L1883:
14151	ldrh	r3, [r5]
14152	uxth	r0, r4
14153	adds	r4, r4, #1
14154	cmp	r3, r0
14155	bhi	.L1884
14156	ldr	r4, .L1894+12
14157	movw	r6, #65535
14158	ldrh	r5, [r4, #12]
14159	subs	r5, r5, #1
14160	uxth	r5, r5
14161.L1885:
14162	ldrh	r3, [r4, #12]
14163	subs	r3, r3, #47
14164	cmp	r3, r5
14165	bgt	.L1889
14166	mov	r0, r5
14167	bl	FtlBbmIsBadBlock
14168	cmp	r0, #1
14169	beq	.L1886
14170	mov	r0, r5
14171	bl	FlashTestBlk
14172	cmp	r0, #0
14173	beq	.L1887
14174	mov	r0, r5
14175	bl	FtlBbmMapBadBlock
14176.L1886:
14177	subs	r5, r5, #1
14178	uxth	r5, r5
14179	b	.L1885
14180.L1882:
14181	ldr	r3, .L1894+16
14182	ldr	r5, .L1894+20
14183	ldrh	r2, [r8, #2]!
14184	ldr	r4, .L1894+24
14185	ldr	r0, [r3]
14186	movw	r3, #65535
14187	ldr	r10, [r5]
14188	cmp	r2, r3
14189	mov	fp, r4
14190	ldr	r3, .L1894+28
14191	str	r0, [r4, #8]
14192	str	r10, [r4, #12]
14193	beq	.L1877
14194	ldrh	r5, [r3]
14195	mov	r0, r4
14196	str	r3, [sp]
14197	mla	r5, r6, r5, r2
14198	lsls	r2, r5, #10
14199	str	r2, [r4, #4]
14200	movs	r2, #1
14201	mov	r1, r2
14202	bl	FlashReadPages
14203	ldr	r3, [sp]
14204	ldr	r1, [r4, #8]
14205	ldr	r0, [r7]
14206	ldrh	r2, [r3]
14207	adds	r2, r2, #7
14208	asrs	r2, r2, #3
14209	bl	ftl_memcpy
14210.L1878:
14211	uxth	r0, r5
14212	adds	r6, r6, #1
14213	adds	r7, r7, #4
14214	bl	FtlBbmMapBadBlock
14215	b	.L1876
14216.L1877:
14217	mov	r1, r6
14218	str	r3, [sp]
14219	bl	FlashGetBadBlockList
14220	ldr	r0, [r4, #8]
14221	ldr	r1, [r7]
14222	bl	FtlBbt2Bitmap
14223	ldr	r3, [sp]
14224	str	r5, [sp, #4]
14225	ldrh	r4, [r3]
14226	subs	r4, r4, #1
14227	uxth	r4, r4
14228.L1879:
14229	ldr	r3, [sp]
14230	ldrh	r0, [r3]
14231	smlabb	r0, r0, r6, r4
14232	uxth	r0, r0
14233	bl	FtlBbmIsBadBlock
14234	cmp	r0, #1
14235	beq	.L1880
14236	ldr	r3, [sp, #4]
14237	movs	r2, #16
14238	movs	r1, #0
14239	strh	r4, [r8]	@ movhi
14240	ldr	r0, [r3]
14241	bl	ftl_memset
14242	ldr	r3, .L1894+16
14243	mov	r2, #4096
14244	movs	r1, #0
14245	ldr	r0, [r3]
14246	bl	ftl_memset
14247	ldr	r2, [sp]
14248	movw	r3, #61664
14249	strh	r3, [r10]	@ movhi
14250	movs	r3, #0
14251	str	r3, [r10, #4]
14252	ldrh	r5, [r2]
14253	ldrh	r3, [r8]
14254	ldr	r1, [r7]
14255	ldr	r0, [fp, #8]
14256	strh	r3, [r10, #2]	@ movhi
14257	mla	r5, r6, r5, r3
14258	lsls	r3, r5, #10
14259	str	r3, [fp, #4]
14260	ldr	r3, .L1894+32
14261	ldrh	r2, [r3]
14262	lsls	r2, r2, #2
14263	bl	ftl_memcpy
14264	movs	r2, #1
14265	ldr	r0, .L1894+24
14266	mov	r1, r2
14267	bl	FlashEraseBlocks
14268	movs	r3, #1
14269	ldr	r0, .L1894+24
14270	mov	r2, r3
14271	mov	r1, r3
14272	bl	FlashProgPages
14273	ldr	r3, [fp]
14274	adds	r3, r3, #1
14275	bne	.L1878
14276	uxth	r0, r5
14277	bl	FtlBbmMapBadBlock
14278	b	.L1879
14279.L1880:
14280	subs	r4, r4, #1
14281	uxth	r4, r4
14282	b	.L1879
14283.L1884:
14284	bl	FtlBbmMapBadBlock
14285	b	.L1883
14286.L1887:
14287	ldrh	r3, [r4]
14288	cmp	r3, r6
14289	bne	.L1888
14290	strh	r5, [r4]	@ movhi
14291	b	.L1886
14292.L1888:
14293	strh	r5, [r4, #4]	@ movhi
14294.L1889:
14295	ldr	r3, .L1894+36
14296	movs	r5, #0
14297	str	r5, [r4, #8]
14298	movs	r1, #1
14299	movs	r2, #2
14300	strh	r5, [r4, #2]	@ movhi
14301	ldr	r0, [r3]
14302	ldrh	r3, [r4]
14303	lsls	r3, r3, #10
14304	str	r3, [r0, #4]
14305	ldrh	r3, [r4, #4]
14306	lsls	r3, r3, #10
14307	str	r3, [r0, #24]
14308	bl	FlashEraseBlocks
14309	ldrh	r0, [r4]
14310	bl	FtlBbmMapBadBlock
14311	ldrh	r0, [r4, #4]
14312	bl	FtlBbmMapBadBlock
14313	bl	FtlBbmTblFlush
14314	ldr	r3, [r4, #8]
14315	ldrh	r2, [r4, #4]
14316	strh	r5, [r4, #2]	@ movhi
14317	adds	r3, r3, #1
14318	str	r3, [r4, #8]
14319	ldrh	r3, [r4]
14320	strh	r2, [r4]	@ movhi
14321	strh	r3, [r4, #4]	@ movhi
14322	bl	FtlBbmTblFlush
14323	mov	r0, r5
14324	add	sp, sp, #8
14325	@ sp needed
14326	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14327.L1895:
14328	.align	2
14329.L1894:
14330	.word	.LANCHOR37+28
14331	.word	.LANCHOR10
14332	.word	.LANCHOR25
14333	.word	.LANCHOR37
14334	.word	.LANCHOR115
14335	.word	.LANCHOR123
14336	.word	.LANCHOR148
14337	.word	.LANCHOR17
14338	.word	.LANCHOR137
14339	.word	.LANCHOR106
14340	.size	FtlMakeBbt, .-FtlMakeBbt
14341	.section	.text.ftl_low_format,"ax",%progbits
14342	.align	1
14343	.global	ftl_low_format
14344	.syntax unified
14345	.thumb
14346	.thumb_func
14347	.fpu softvfp
14348	.type	ftl_low_format, %function
14349ftl_low_format:
14350	@ args = 0, pretend = 0, frame = 16
14351	@ frame_needed = 0, uses_anonymous_args = 0
14352	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
14353	movs	r3, #0
14354	ldr	r6, .L1920
14355	ldr	r2, .L1920+4
14356	ldr	r5, .L1920+8
14357	ldrh	r0, [r6]
14358	str	r3, [r2]
14359	str	r3, [r5]
14360	bl	FtlFreeSysBlkQueueInit
14361	bl	FtlLoadBbt
14362	cbz	r0, .L1897
14363	bl	FtlMakeBbt
14364.L1897:
14365	ldr	r3, .L1920+12
14366	ldr	r2, .L1920+16
14367	ldr	ip, .L1920+100
14368	ldrh	r1, [r3]
14369	ldr	r4, [r2]
14370	ldr	r2, .L1920+20
14371	str	r3, [sp, #4]
14372	lsls	r1, r1, #7
14373	ldr	r7, [r2]
14374	movs	r2, #0
14375.L1898:
14376	uxth	r3, r2
14377	adds	r2, r2, #1
14378	cmp	r3, r1
14379	blt	.L1899
14380	ldr	r3, .L1920+24
14381	movs	r7, #0
14382	ldr	r10, .L1920+104
14383	ldrh	r4, [r3]
14384	mov	r8, r3
14385	mov	fp, r10
14386.L1900:
14387	ldrh	r3, [r10]
14388	cmp	r3, r4
14389	bhi	.L1901
14390	ldr	r4, .L1920+28
14391	subs	r3, r7, #2
14392	ldrh	r1, [r4]
14393	cmp	r3, r1, lsl #1
14394	bgt	.L1902
14395.L1906:
14396	movs	r6, #0
14397	mov	r7, r6
14398.L1903:
14399	ldrh	r3, [r8]
14400	uxth	r0, r6
14401	adds	r6, r6, #1
14402	cmp	r3, r0
14403	bhi	.L1907
14404	ldrh	r2, [fp]
14405	ldr	r3, .L1920+32
14406	ldrh	r4, [r4]
14407	ldr	r6, .L1920+36
14408	str	r2, [r3]
14409	ldr	r3, .L1920+40
14410	mov	r1, r4
14411	ldr	r2, [r3]
14412	mov	r0, r2
14413	str	r2, [sp, #12]
14414	bl	__aeabi_uidiv
14415	ubfx	r10, r0, #5, #16
14416	mov	r3, r0
14417	str	r0, [r6]
14418	add	r1, r10, #36
14419	ldr	r0, .L1920+44
14420	strh	r1, [r0]	@ movhi
14421	movs	r1, #24
14422	muls	r1, r4, r1
14423	str	r0, [sp]
14424	cmp	r7, r1
14425	ble	.L1908
14426	ldr	r2, [sp, #12]
14427	mov	r1, r4
14428	str	r3, [sp, #8]
14429	subs	r0, r2, r7
14430	bl	__aeabi_uidiv
14431	ldr	r3, [sp]
14432	str	r0, [r6]
14433	lsrs	r0, r0, #5
14434	adds	r0, r0, #24
14435	strh	r0, [r3]	@ movhi
14436	ldr	r3, [sp, #8]
14437.L1908:
14438	ldr	r2, .L1920+48
14439	ldrh	r2, [r2]
14440	cbz	r2, .L1910
14441	ldr	r1, .L1920+44
14442	ldrh	r0, [r1]
14443	add	r0, r0, r2, lsr #1
14444	strh	r0, [r1]	@ movhi
14445	mul	r0, r4, r2
14446	cmp	r7, r0
14447	itttt	lt
14448	addlt	r2, r2, #32
14449	strlt	r3, [r6]
14450	addlt	r2, r2, r10
14451	strhlt	r2, [r1]	@ movhi
14452.L1910:
14453	ldr	r3, [sp]
14454	ldr	r7, .L1920+52
14455	ldr	r10, .L1920+108
14456	ldrh	r2, [r3]
14457	ldr	r3, [r6]
14458	subs	r3, r3, r2
14459	muls	r4, r3, r4
14460	ldr	r3, .L1920+56
14461	ldrh	r3, [r3]
14462	str	r4, [r7]
14463	muls	r4, r3, r4
14464	ldr	r3, [sp, #4]
14465	ldrh	r3, [r3]
14466	str	r4, [r6]
14467	ldr	r6, .L1920+60
14468	muls	r4, r3, r4
14469	ldr	r3, .L1920+64
14470	str	r4, [r3]
14471	movw	r4, #65535
14472	bl	FtlBbmTblFlush
14473	ldrh	r2, [fp]
14474	movs	r1, #0
14475	ldr	r0, [r10]
14476	lsls	r2, r2, #1
14477	bl	ftl_memset
14478	ldr	r2, .L1920+68
14479	movs	r3, #0
14480	strh	r3, [r6, #2]	@ movhi
14481	movs	r1, #255
14482	strb	r3, [r6, #6]
14483	str	r3, [r2]
14484	ldr	r2, .L1920+72
14485	strh	r3, [r6]	@ movhi
14486	strh	r3, [r2, #2]	@ movhi
14487	strb	r3, [r2, #6]
14488	strb	r3, [r2, #8]
14489	movs	r3, #1
14490	strh	r4, [r2]	@ movhi
14491	ldrh	r2, [r8]
14492	mov	r8, r10
14493	strb	r3, [r6, #8]
14494	mov	r10, r6
14495	ldr	r3, .L1920+76
14496	lsrs	r2, r2, #3
14497	ldr	r0, [r3]
14498	bl	ftl_memset
14499.L1912:
14500	mov	r0, r10
14501	bl	make_superblock
14502	ldrb	r3, [r6, #7]	@ zero_extendqisi2
14503	ldrh	r2, [r6]
14504	cmp	r3, #0
14505	bne	.L1913
14506	ldr	r3, [r8]
14507	strh	r4, [r3, r2, lsl #1]	@ movhi
14508	ldrh	r3, [r6]
14509	adds	r3, r3, #1
14510	strh	r3, [r6]	@ movhi
14511	b	.L1912
14512.L1899:
14513	mvns	r0, r3
14514	orr	r0, r3, r0, lsl #16
14515	str	r0, [r4, r3, lsl #2]
14516	str	ip, [r7, r3, lsl #2]
14517	b	.L1898
14518.L1901:
14519	mov	r0, r4
14520	movs	r1, #1
14521	bl	FtlLowFormatEraseBlock
14522	adds	r4, r4, #1
14523	add	r7, r7, r0
14524	uxth	r7, r7
14525	uxth	r4, r4
14526	b	.L1900
14527.L1902:
14528	mov	r0, r7
14529	bl	__aeabi_uidiv
14530	ldr	r3, .L1920+80
14531	ldr	r3, [r3]
14532	add	r0, r0, r3
14533	uxth	r0, r0
14534	bl	FtlSysBlkNumInit
14535	ldrh	r0, [r6]
14536	bl	FtlFreeSysBlkQueueInit
14537	ldrh	r6, [r8]
14538.L1904:
14539	ldrh	r3, [fp]
14540	cmp	r3, r6
14541	bls	.L1906
14542	mov	r0, r6
14543	movs	r1, #1
14544	adds	r6, r6, #1
14545	bl	FtlLowFormatEraseBlock
14546	uxth	r6, r6
14547	b	.L1904
14548.L1907:
14549	movs	r1, #0
14550	bl	FtlLowFormatEraseBlock
14551	add	r7, r7, r0
14552	uxth	r7, r7
14553	b	.L1903
14554.L1913:
14555	ldr	r3, [r5]
14556	ldrh	r1, [r6, #4]
14557	ldr	r4, .L1920+84
14558	str	r3, [r6, #12]
14559	adds	r3, r3, #1
14560	str	r3, [r5]
14561	ldr	r3, [r8]
14562	mov	r10, r4
14563	strh	r1, [r3, r2, lsl #1]	@ movhi
14564	movs	r3, #0
14565	strh	r3, [r4, #2]	@ movhi
14566	strb	r3, [r4, #6]
14567	ldrh	r3, [r6]
14568	movw	r6, #65535
14569	adds	r3, r3, #1
14570	strh	r3, [r4]	@ movhi
14571	movs	r3, #1
14572	strb	r3, [r4, #8]
14573.L1914:
14574	mov	r0, r10
14575	bl	make_superblock
14576	ldrb	r3, [r4, #7]	@ zero_extendqisi2
14577	ldrh	r2, [r4]
14578	cbnz	r3, .L1915
14579	ldr	r3, [r8]
14580	strh	r6, [r3, r2, lsl #1]	@ movhi
14581	ldrh	r3, [r4]
14582	adds	r3, r3, #1
14583	strh	r3, [r4]	@ movhi
14584	b	.L1914
14585.L1915:
14586	ldr	r3, [r5]
14587	ldrh	r1, [r4, #4]
14588	str	r3, [r4, #12]
14589	adds	r3, r3, #1
14590	str	r3, [r5]
14591	movw	r4, #65535
14592	ldr	r3, [r8]
14593	strh	r1, [r3, r2, lsl #1]	@ movhi
14594	ldr	r3, .L1920+88
14595	strh	r4, [r3]	@ movhi
14596	bl	FtlFreeSysBlkQueueOut
14597	ldr	r3, .L1920+92
14598	movs	r2, #0
14599	strh	r2, [r3, #2]	@ movhi
14600	ldr	r2, [r7]
14601	strh	r0, [r3]	@ movhi
14602	strh	r4, [r3, #4]	@ movhi
14603	strh	r2, [r3, #6]	@ movhi
14604	ldr	r2, [r5]
14605	str	r2, [r3, #8]
14606	adds	r2, r2, #1
14607	str	r2, [r5]
14608	bl	FtlVpcTblFlush
14609	bl	FtlSysBlkInit
14610	cbnz	r0, .L1916
14611	ldr	r3, .L1920+96
14612	movs	r2, #1
14613	str	r2, [r3]
14614.L1916:
14615	movs	r0, #0
14616	add	sp, sp, #16
14617	@ sp needed
14618	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
14619.L1921:
14620	.align	2
14621.L1920:
14622	.word	.LANCHOR4
14623	.word	.LANCHOR71
14624	.word	.LANCHOR70
14625	.word	.LANCHOR12
14626	.word	.LANCHOR118
14627	.word	.LANCHOR119
14628	.word	.LANCHOR5
14629	.word	.LANCHOR3
14630	.word	.LANCHOR111
14631	.word	.LANCHOR61
14632	.word	.LANCHOR7
14633	.word	.LANCHOR78
14634	.word	.LANCHOR15
14635	.word	.LANCHOR152
14636	.word	.LANCHOR19
14637	.word	.LANCHOR51
14638	.word	.LANCHOR34
14639	.word	.LANCHOR59
14640	.word	.LANCHOR80
14641	.word	.LANCHOR1
14642	.word	.LANCHOR31
14643	.word	.LANCHOR52
14644	.word	.LANCHOR53
14645	.word	.LANCHOR79
14646	.word	.LANCHOR86
14647	.word	168778952
14648	.word	.LANCHOR6
14649	.word	.LANCHOR42
14650	.size	ftl_low_format, .-ftl_low_format
14651	.section	.text.ftl_memcmp,"ax",%progbits
14652	.align	1
14653	.global	ftl_memcmp
14654	.syntax unified
14655	.thumb
14656	.thumb_func
14657	.fpu softvfp
14658	.type	ftl_memcmp, %function
14659ftl_memcmp:
14660	@ args = 0, pretend = 0, frame = 0
14661	@ frame_needed = 0, uses_anonymous_args = 0
14662	@ link register save eliminated.
14663	b	memcmp
14664	.size	ftl_memcmp, .-ftl_memcmp
14665	.global	g_nand_ops
14666	.global	g_nand_phy_info
14667	.global	gc_ink_free_return_value
14668	.global	check_vpc_table
14669	.global	FtlUpdateVaildLpnCount
14670	.global	g_ect_tbl_power_up_flush
14671	.global	power_up_flag
14672	.global	gFtlInitStatus
14673	.global	DeviceCapacity
14674	.global	g_power_lost_recovery_flag
14675	.global	c_mlc_erase_count_value
14676	.global	g_recovery_ppa_tbl
14677	.global	g_recovery_page_min_ver
14678	.global	g_recovery_page_num
14679	.global	sftl_nand_check_spare_buf
14680	.global	sftl_temp_buf
14681	.global	sftl_nand_check_buf
14682	.global	g_cur_erase_blk
14683	.global	g_gc_skip_write_count
14684	.global	g_gc_head_data_block_count
14685	.global	g_gc_head_data_block
14686	.global	g_ftl_nand_free_count
14687	.global	g_in_swl_replace
14688	.global	g_in_gc_progress
14689	.global	g_max_erase_count
14690	.global	g_totle_sys_slc_erase_count
14691	.global	g_totle_slc_erase_count
14692	.global	g_min_erase_count
14693	.global	g_totle_avg_erase_count
14694	.global	g_totle_mlc_erase_count
14695	.global	g_totle_l2p_write_count
14696	.global	g_totle_cache_write_count
14697	.global	g_tmp_data_superblock_id
14698	.global	g_totle_read_page_count
14699	.global	g_totle_discard_page_count
14700	.global	g_totle_read_sector
14701	.global	g_totle_write_sector
14702	.global	g_totle_write_page_count
14703	.global	g_totle_gc_page_count
14704	.global	g_gc_blk_index
14705	.global	g_gc_merge_free_blk_threshold
14706	.global	g_gc_free_blk_threshold
14707	.global	g_gc_bad_block_temp_tbl
14708	.global	g_gc_bad_block_gc_index
14709	.global	g_gc_bad_block_temp_num
14710	.global	g_gc_next_blk_1
14711	.global	g_gc_next_blk
14712	.global	g_gc_cur_blk_max_valid_pages
14713	.global	g_gc_cur_blk_valid_pages
14714	.global	g_gc_page_offset
14715	.global	g_gc_blk_num
14716	.global	p_gc_blk_tbl
14717	.global	p_gc_page_info
14718	.global	g_sys_ext_data
14719	.global	g_sys_save_data
14720	.global	gp_last_act_superblock
14721	.global	g_gc_superblock
14722	.global	g_gc_temp_superblock
14723	.global	g_buffer_superblock
14724	.global	g_active_superblock
14725	.global	g_num_data_superblocks
14726	.global	g_num_free_superblocks
14727	.global	p_data_block_list_tail
14728	.global	p_data_block_list_head
14729	.global	p_free_data_block_list_head
14730	.global	p_data_block_list_table
14731	.global	g_l2p_last_update_region_id
14732	.global	p_l2p_map_buf
14733	.global	p_l2p_ram_map
14734	.global	g_totle_vendor_block
14735	.global	p_vendor_region_ppn_table
14736	.global	p_vendor_block_ver_table
14737	.global	p_vendor_block_valid_page_count
14738	.global	p_vendor_block_table
14739	.global	g_totle_map_block
14740	.global	p_map_region_ppn_table
14741	.global	p_map_block_ver_table
14742	.global	p_map_block_valid_page_count
14743	.global	p_map_block_table
14744	.global	p_blk_mode_table
14745	.global	p_valid_page_count_check_table
14746	.global	p_valid_page_count_table
14747	.global	g_totle_swl_count
14748	.global	p_swl_mul_table
14749	.global	p_erase_count_table
14750	.global	g_ect_tbl_info_size
14751	.global	gp_ect_tbl_info
14752	.global	g_gc_num_req
14753	.global	c_gc_page_buf_num
14754	.global	gp_gc_page_buf_info
14755	.global	p_gc_data_buf
14756	.global	p_gc_spare_buf
14757	.global	p_io_spare_buf
14758	.global	p_io_data_buf_1
14759	.global	p_io_data_buf_0
14760	.global	p_sys_spare_buf
14761	.global	p_vendor_data_buf
14762	.global	p_sys_data_buf_1
14763	.global	p_sys_data_buf
14764	.global	p_plane_order_table
14765	.global	req_gc_dst
14766	.global	req_gc
14767	.global	req_erase
14768	.global	req_prgm
14769	.global	req_read
14770	.global	req_sys
14771	.global	gVendorBlkInfo
14772	.global	gL2pMapInfo
14773	.global	gSysFreeQueue
14774	.global	gSysInfo
14775	.global	gBbtInfo
14776	.global	g_MaxLbn
14777	.global	g_VaildLpn
14778	.global	g_MaxLpn
14779	.global	g_MaxLbaSector
14780	.global	g_GlobalDataVersion
14781	.global	g_GlobalSysVersion
14782	.global	ftl_gc_temp_power_lost_recovery_flag
14783	.global	c_ftl_nand_max_data_blks
14784	.global	c_ftl_nand_data_op_blks_per_plane
14785	.global	c_ftl_nand_data_blks_per_plane
14786	.global	c_ftl_nand_max_sys_blks
14787	.global	c_ftl_nand_init_sys_blks_per_plane
14788	.global	c_ftl_nand_sys_blks_per_plane
14789	.global	c_ftl_vendor_part_size
14790	.global	c_ftl_nand_max_vendor_blks
14791	.global	c_ftl_nand_max_map_blks
14792	.global	c_ftl_nand_map_blks_per_plane
14793	.global	c_ftl_nand_vendor_region_num
14794	.global	c_ftl_nand_l2pmap_ram_region_num
14795	.global	c_ftl_nand_map_region_num
14796	.global	c_ftl_nand_totle_phy_blks
14797	.global	c_ftl_nand_reserved_blks
14798	.global	c_ftl_nand_byte_pre_oob
14799	.global	c_ftl_nand_byte_pre_page
14800	.global	c_ftl_nand_sec_pre_page_shift
14801	.global	c_ftl_nand_sec_pre_page
14802	.global	c_ftl_nand_page_pre_super_blk
14803	.global	c_ftl_nand_page_pre_slc_blk
14804	.global	c_ftl_nand_page_pre_blk
14805	.global	c_ftl_nand_bbm_buf_size
14806	.global	c_ftl_nand_ext_blk_pre_plane
14807	.global	c_ftl_nand_blk_pre_plane
14808	.global	c_ftl_nand_planes_num
14809	.global	c_ftl_nand_blks_per_die_shift
14810	.global	c_ftl_nand_blks_per_die
14811	.global	c_ftl_nand_planes_per_die
14812	.global	c_ftl_nand_die_num
14813	.global	c_ftl_nand_type
14814	.section	.bss.DeviceCapacity,"aw",%nobits
14815	.align	2
14816	.set	.LANCHOR26,. + 0
14817	.type	DeviceCapacity, %object
14818	.size	DeviceCapacity, 4
14819DeviceCapacity:
14820	.space	4
14821	.section	.bss.FtlUpdateVaildLpnCount,"aw",%nobits
14822	.align	1
14823	.set	.LANCHOR58,. + 0
14824	.type	FtlUpdateVaildLpnCount, %object
14825	.size	FtlUpdateVaildLpnCount, 2
14826FtlUpdateVaildLpnCount:
14827	.space	2
14828	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",%nobits
14829	.align	1
14830	.set	.LANCHOR137,. + 0
14831	.type	c_ftl_nand_bbm_buf_size, %object
14832	.size	c_ftl_nand_bbm_buf_size, 2
14833c_ftl_nand_bbm_buf_size:
14834	.space	2
14835	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",%nobits
14836	.align	1
14837	.set	.LANCHOR6,. + 0
14838	.type	c_ftl_nand_blk_pre_plane, %object
14839	.size	c_ftl_nand_blk_pre_plane, 2
14840c_ftl_nand_blk_pre_plane:
14841	.space	2
14842	.section	.bss.c_ftl_nand_blks_per_die,"aw",%nobits
14843	.align	1
14844	.set	.LANCHOR17,. + 0
14845	.type	c_ftl_nand_blks_per_die, %object
14846	.size	c_ftl_nand_blks_per_die, 2
14847c_ftl_nand_blks_per_die:
14848	.space	2
14849	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits
14850	.align	1
14851	.set	.LANCHOR18,. + 0
14852	.type	c_ftl_nand_blks_per_die_shift, %object
14853	.size	c_ftl_nand_blks_per_die_shift, 2
14854c_ftl_nand_blks_per_die_shift:
14855	.space	2
14856	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",%nobits
14857	.align	1
14858	.set	.LANCHOR24,. + 0
14859	.type	c_ftl_nand_byte_pre_oob, %object
14860	.size	c_ftl_nand_byte_pre_oob, 2
14861c_ftl_nand_byte_pre_oob:
14862	.space	2
14863	.section	.bss.c_ftl_nand_byte_pre_page,"aw",%nobits
14864	.align	1
14865	.set	.LANCHOR23,. + 0
14866	.type	c_ftl_nand_byte_pre_page, %object
14867	.size	c_ftl_nand_byte_pre_page, 2
14868c_ftl_nand_byte_pre_page:
14869	.space	2
14870	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits
14871	.align	1
14872	.set	.LANCHOR5,. + 0
14873	.type	c_ftl_nand_data_blks_per_plane, %object
14874	.size	c_ftl_nand_data_blks_per_plane, 2
14875c_ftl_nand_data_blks_per_plane:
14876	.space	2
14877	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits
14878	.align	1
14879	.set	.LANCHOR78,. + 0
14880	.type	c_ftl_nand_data_op_blks_per_plane, %object
14881	.size	c_ftl_nand_data_op_blks_per_plane, 2
14882c_ftl_nand_data_op_blks_per_plane:
14883	.space	2
14884	.section	.bss.c_ftl_nand_die_num,"aw",%nobits
14885	.align	1
14886	.set	.LANCHOR10,. + 0
14887	.type	c_ftl_nand_die_num, %object
14888	.size	c_ftl_nand_die_num, 2
14889c_ftl_nand_die_num:
14890	.space	2
14891	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits
14892	.align	1
14893	.set	.LANCHOR15,. + 0
14894	.type	c_ftl_nand_ext_blk_pre_plane, %object
14895	.size	c_ftl_nand_ext_blk_pre_plane, 2
14896c_ftl_nand_ext_blk_pre_plane:
14897	.space	2
14898	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits
14899	.align	2
14900	.set	.LANCHOR31,. + 0
14901	.type	c_ftl_nand_init_sys_blks_per_plane, %object
14902	.size	c_ftl_nand_init_sys_blks_per_plane, 4
14903c_ftl_nand_init_sys_blks_per_plane:
14904	.space	4
14905	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits
14906	.align	1
14907	.set	.LANCHOR33,. + 0
14908	.type	c_ftl_nand_l2pmap_ram_region_num, %object
14909	.size	c_ftl_nand_l2pmap_ram_region_num, 2
14910c_ftl_nand_l2pmap_ram_region_num:
14911	.space	2
14912	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits
14913	.align	1
14914	.set	.LANCHOR29,. + 0
14915	.type	c_ftl_nand_map_blks_per_plane, %object
14916	.size	c_ftl_nand_map_blks_per_plane, 2
14917c_ftl_nand_map_blks_per_plane:
14918	.space	2
14919	.section	.bss.c_ftl_nand_map_region_num,"aw",%nobits
14920	.align	1
14921	.set	.LANCHOR32,. + 0
14922	.type	c_ftl_nand_map_region_num, %object
14923	.size	c_ftl_nand_map_region_num, 2
14924c_ftl_nand_map_region_num:
14925	.space	2
14926	.section	.bss.c_ftl_nand_max_data_blks,"aw",%nobits
14927	.align	2
14928	.set	.LANCHOR7,. + 0
14929	.type	c_ftl_nand_max_data_blks, %object
14930	.size	c_ftl_nand_max_data_blks, 4
14931c_ftl_nand_max_data_blks:
14932	.space	4
14933	.section	.bss.c_ftl_nand_max_map_blks,"aw",%nobits
14934	.align	2
14935	.set	.LANCHOR30,. + 0
14936	.type	c_ftl_nand_max_map_blks, %object
14937	.size	c_ftl_nand_max_map_blks, 4
14938c_ftl_nand_max_map_blks:
14939	.space	4
14940	.section	.bss.c_ftl_nand_max_sys_blks,"aw",%nobits
14941	.align	2
14942	.set	.LANCHOR4,. + 0
14943	.type	c_ftl_nand_max_sys_blks, %object
14944	.size	c_ftl_nand_max_sys_blks, 4
14945c_ftl_nand_max_sys_blks:
14946	.space	4
14947	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",%nobits
14948	.align	1
14949	.set	.LANCHOR27,. + 0
14950	.type	c_ftl_nand_max_vendor_blks, %object
14951	.size	c_ftl_nand_max_vendor_blks, 2
14952c_ftl_nand_max_vendor_blks:
14953	.space	2
14954	.section	.bss.c_ftl_nand_page_pre_blk,"aw",%nobits
14955	.align	1
14956	.set	.LANCHOR19,. + 0
14957	.type	c_ftl_nand_page_pre_blk, %object
14958	.size	c_ftl_nand_page_pre_blk, 2
14959c_ftl_nand_page_pre_blk:
14960	.space	2
14961	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits
14962	.align	1
14963	.set	.LANCHOR20,. + 0
14964	.type	c_ftl_nand_page_pre_slc_blk, %object
14965	.size	c_ftl_nand_page_pre_slc_blk, 2
14966c_ftl_nand_page_pre_slc_blk:
14967	.space	2
14968	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits
14969	.align	1
14970	.set	.LANCHOR21,. + 0
14971	.type	c_ftl_nand_page_pre_super_blk, %object
14972	.size	c_ftl_nand_page_pre_super_blk, 2
14973c_ftl_nand_page_pre_super_blk:
14974	.space	2
14975	.section	.bss.c_ftl_nand_planes_num,"aw",%nobits
14976	.align	1
14977	.set	.LANCHOR3,. + 0
14978	.type	c_ftl_nand_planes_num, %object
14979	.size	c_ftl_nand_planes_num, 2
14980c_ftl_nand_planes_num:
14981	.space	2
14982	.section	.bss.c_ftl_nand_planes_per_die,"aw",%nobits
14983	.align	1
14984	.set	.LANCHOR11,. + 0
14985	.type	c_ftl_nand_planes_per_die, %object
14986	.size	c_ftl_nand_planes_per_die, 2
14987c_ftl_nand_planes_per_die:
14988	.space	2
14989	.section	.bss.c_ftl_nand_reserved_blks,"aw",%nobits
14990	.align	1
14991	.set	.LANCHOR25,. + 0
14992	.type	c_ftl_nand_reserved_blks, %object
14993	.size	c_ftl_nand_reserved_blks, 2
14994c_ftl_nand_reserved_blks:
14995	.space	2
14996	.section	.bss.c_ftl_nand_sec_pre_page,"aw",%nobits
14997	.align	1
14998	.set	.LANCHOR12,. + 0
14999	.type	c_ftl_nand_sec_pre_page, %object
15000	.size	c_ftl_nand_sec_pre_page, 2
15001c_ftl_nand_sec_pre_page:
15002	.space	2
15003	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits
15004	.align	1
15005	.set	.LANCHOR22,. + 0
15006	.type	c_ftl_nand_sec_pre_page_shift, %object
15007	.size	c_ftl_nand_sec_pre_page_shift, 2
15008c_ftl_nand_sec_pre_page_shift:
15009	.space	2
15010	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits
15011	.align	2
15012	.set	.LANCHOR2,. + 0
15013	.type	c_ftl_nand_sys_blks_per_plane, %object
15014	.size	c_ftl_nand_sys_blks_per_plane, 4
15015c_ftl_nand_sys_blks_per_plane:
15016	.space	4
15017	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",%nobits
15018	.align	2
15019	.set	.LANCHOR8,. + 0
15020	.type	c_ftl_nand_totle_phy_blks, %object
15021	.size	c_ftl_nand_totle_phy_blks, 4
15022c_ftl_nand_totle_phy_blks:
15023	.space	4
15024	.section	.bss.c_ftl_nand_type,"aw",%nobits
15025	.align	1
15026	.set	.LANCHOR9,. + 0
15027	.type	c_ftl_nand_type, %object
15028	.size	c_ftl_nand_type, 2
15029c_ftl_nand_type:
15030	.space	2
15031	.section	.bss.c_ftl_nand_vendor_region_num,"aw",%nobits
15032	.align	1
15033	.set	.LANCHOR28,. + 0
15034	.type	c_ftl_nand_vendor_region_num, %object
15035	.size	c_ftl_nand_vendor_region_num, 2
15036c_ftl_nand_vendor_region_num:
15037	.space	2
15038	.section	.bss.c_ftl_vendor_part_size,"aw",%nobits
15039	.align	1
15040	.set	.LANCHOR16,. + 0
15041	.type	c_ftl_vendor_part_size, %object
15042	.size	c_ftl_vendor_part_size, 2
15043c_ftl_vendor_part_size:
15044	.space	2
15045	.section	.bss.c_gc_page_buf_num,"aw",%nobits
15046	.align	2
15047	.set	.LANCHOR94,. + 0
15048	.type	c_gc_page_buf_num, %object
15049	.size	c_gc_page_buf_num, 4
15050c_gc_page_buf_num:
15051	.space	4
15052	.section	.bss.c_mlc_erase_count_value,"aw",%nobits
15053	.align	1
15054	.set	.LANCHOR14,. + 0
15055	.type	c_mlc_erase_count_value, %object
15056	.size	c_mlc_erase_count_value, 2
15057c_mlc_erase_count_value:
15058	.space	2
15059	.section	.bss.check_vpc_table,"aw",%nobits
15060	.align	1
15061	.type	check_vpc_table, %object
15062	.size	check_vpc_table, 16384
15063check_vpc_table:
15064	.space	16384
15065	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits
15066	.align	2
15067	.set	.LANCHOR144,. + 0
15068	.type	ftl_gc_temp_power_lost_recovery_flag, %object
15069	.size	ftl_gc_temp_power_lost_recovery_flag, 4
15070ftl_gc_temp_power_lost_recovery_flag:
15071	.space	4
15072	.section	.bss.gBbtInfo,"aw",%nobits
15073	.align	2
15074	.set	.LANCHOR37,. + 0
15075	.type	gBbtInfo, %object
15076	.size	gBbtInfo, 60
15077gBbtInfo:
15078	.space	60
15079	.section	.bss.gL2pMapInfo,"aw",%nobits
15080	.align	2
15081	.set	.LANCHOR140,. + 0
15082	.type	gL2pMapInfo, %object
15083	.size	gL2pMapInfo, 40
15084gL2pMapInfo:
15085	.space	40
15086	.section	.bss.gSysFreeQueue,"aw",%nobits
15087	.align	1
15088	.set	.LANCHOR38,. + 0
15089	.type	gSysFreeQueue, %object
15090	.size	gSysFreeQueue, 2056
15091gSysFreeQueue:
15092	.space	2056
15093	.section	.bss.gSysInfo,"aw",%nobits
15094	.align	2
15095	.set	.LANCHOR79,. + 0
15096	.type	gSysInfo, %object
15097	.size	gSysInfo, 12
15098gSysInfo:
15099	.space	12
15100	.section	.bss.gVendorBlkInfo,"aw",%nobits
15101	.align	2
15102	.set	.LANCHOR158,. + 0
15103	.type	gVendorBlkInfo, %object
15104	.size	gVendorBlkInfo, 40
15105gVendorBlkInfo:
15106	.space	40
15107	.section	.bss.g_GlobalDataVersion,"aw",%nobits
15108	.align	2
15109	.set	.LANCHOR71,. + 0
15110	.type	g_GlobalDataVersion, %object
15111	.size	g_GlobalDataVersion, 4
15112g_GlobalDataVersion:
15113	.space	4
15114	.section	.bss.g_GlobalSysVersion,"aw",%nobits
15115	.align	2
15116	.set	.LANCHOR70,. + 0
15117	.type	g_GlobalSysVersion, %object
15118	.size	g_GlobalSysVersion, 4
15119g_GlobalSysVersion:
15120	.space	4
15121	.section	.bss.g_MaxLbaSector,"aw",%nobits
15122	.align	2
15123	.set	.LANCHOR34,. + 0
15124	.type	g_MaxLbaSector, %object
15125	.size	g_MaxLbaSector, 4
15126g_MaxLbaSector:
15127	.space	4
15128	.section	.bss.g_MaxLbn,"aw",%nobits
15129	.align	2
15130	.set	.LANCHOR152,. + 0
15131	.type	g_MaxLbn, %object
15132	.size	g_MaxLbn, 4
15133g_MaxLbn:
15134	.space	4
15135	.section	.bss.g_MaxLpn,"aw",%nobits
15136	.align	2
15137	.set	.LANCHOR61,. + 0
15138	.type	g_MaxLpn, %object
15139	.size	g_MaxLpn, 4
15140g_MaxLpn:
15141	.space	4
15142	.section	.bss.g_VaildLpn,"aw",%nobits
15143	.align	2
15144	.set	.LANCHOR59,. + 0
15145	.type	g_VaildLpn, %object
15146	.size	g_VaildLpn, 4
15147g_VaildLpn:
15148	.space	4
15149	.section	.bss.g_active_superblock,"aw",%nobits
15150	.align	2
15151	.set	.LANCHOR51,. + 0
15152	.type	g_active_superblock, %object
15153	.size	g_active_superblock, 48
15154g_active_superblock:
15155	.space	48
15156	.section	.bss.g_buffer_superblock,"aw",%nobits
15157	.align	2
15158	.set	.LANCHOR52,. + 0
15159	.type	g_buffer_superblock, %object
15160	.size	g_buffer_superblock, 48
15161g_buffer_superblock:
15162	.space	48
15163	.section	.bss.g_cur_erase_blk,"aw",%nobits
15164	.align	2
15165	.set	.LANCHOR111,. + 0
15166	.type	g_cur_erase_blk, %object
15167	.size	g_cur_erase_blk, 4
15168g_cur_erase_blk:
15169	.space	4
15170	.section	.bss.g_ect_tbl_info_size,"aw",%nobits
15171	.align	1
15172	.set	.LANCHOR125,. + 0
15173	.type	g_ect_tbl_info_size, %object
15174	.size	g_ect_tbl_info_size, 2
15175g_ect_tbl_info_size:
15176	.space	2
15177	.section	.bss.g_ect_tbl_power_up_flush,"aw",%nobits
15178	.align	1
15179	.set	.LANCHOR170,. + 0
15180	.type	g_ect_tbl_power_up_flush, %object
15181	.size	g_ect_tbl_power_up_flush, 2
15182g_ect_tbl_power_up_flush:
15183	.space	2
15184	.section	.bss.g_ftl_nand_free_count,"aw",%nobits
15185	.align	2
15186	.set	.LANCHOR181,. + 0
15187	.type	g_ftl_nand_free_count, %object
15188	.size	g_ftl_nand_free_count, 4
15189g_ftl_nand_free_count:
15190	.space	4
15191	.section	.bss.g_gc_bad_block_gc_index,"aw",%nobits
15192	.align	1
15193	.set	.LANCHOR103,. + 0
15194	.type	g_gc_bad_block_gc_index, %object
15195	.size	g_gc_bad_block_gc_index, 2
15196g_gc_bad_block_gc_index:
15197	.space	2
15198	.section	.bss.g_gc_bad_block_temp_num,"aw",%nobits
15199	.align	1
15200	.set	.LANCHOR101,. + 0
15201	.type	g_gc_bad_block_temp_num, %object
15202	.size	g_gc_bad_block_temp_num, 2
15203g_gc_bad_block_temp_num:
15204	.space	2
15205	.section	.bss.g_gc_bad_block_temp_tbl,"aw",%nobits
15206	.align	1
15207	.set	.LANCHOR102,. + 0
15208	.type	g_gc_bad_block_temp_tbl, %object
15209	.size	g_gc_bad_block_temp_tbl, 34
15210g_gc_bad_block_temp_tbl:
15211	.space	34
15212	.section	.bss.g_gc_blk_index,"aw",%nobits
15213	.align	1
15214	.set	.LANCHOR85,. + 0
15215	.type	g_gc_blk_index, %object
15216	.size	g_gc_blk_index, 2
15217g_gc_blk_index:
15218	.space	2
15219	.section	.bss.g_gc_blk_num,"aw",%nobits
15220	.align	1
15221	.set	.LANCHOR96,. + 0
15222	.type	g_gc_blk_num, %object
15223	.size	g_gc_blk_num, 2
15224g_gc_blk_num:
15225	.space	2
15226	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits
15227	.align	1
15228	.set	.LANCHOR179,. + 0
15229	.type	g_gc_cur_blk_max_valid_pages, %object
15230	.size	g_gc_cur_blk_max_valid_pages, 2
15231g_gc_cur_blk_max_valid_pages:
15232	.space	2
15233	.section	.bss.g_gc_cur_blk_valid_pages,"aw",%nobits
15234	.align	1
15235	.set	.LANCHOR178,. + 0
15236	.type	g_gc_cur_blk_valid_pages, %object
15237	.size	g_gc_cur_blk_valid_pages, 2
15238g_gc_cur_blk_valid_pages:
15239	.space	2
15240	.section	.bss.g_gc_free_blk_threshold,"aw",%nobits
15241	.align	1
15242	.set	.LANCHOR82,. + 0
15243	.type	g_gc_free_blk_threshold, %object
15244	.size	g_gc_free_blk_threshold, 2
15245g_gc_free_blk_threshold:
15246	.space	2
15247	.section	.bss.g_gc_head_data_block,"aw",%nobits
15248	.align	2
15249	.set	.LANCHOR109,. + 0
15250	.type	g_gc_head_data_block, %object
15251	.size	g_gc_head_data_block, 4
15252g_gc_head_data_block:
15253	.space	4
15254	.section	.bss.g_gc_head_data_block_count,"aw",%nobits
15255	.align	2
15256	.set	.LANCHOR110,. + 0
15257	.type	g_gc_head_data_block_count, %object
15258	.size	g_gc_head_data_block_count, 4
15259g_gc_head_data_block_count:
15260	.space	4
15261	.section	.bss.g_gc_merge_free_blk_threshold,"aw",%nobits
15262	.align	1
15263	.set	.LANCHOR83,. + 0
15264	.type	g_gc_merge_free_blk_threshold, %object
15265	.size	g_gc_merge_free_blk_threshold, 2
15266g_gc_merge_free_blk_threshold:
15267	.space	2
15268	.section	.bss.g_gc_next_blk,"aw",%nobits
15269	.align	1
15270	.set	.LANCHOR99,. + 0
15271	.type	g_gc_next_blk, %object
15272	.size	g_gc_next_blk, 2
15273g_gc_next_blk:
15274	.space	2
15275	.section	.bss.g_gc_next_blk_1,"aw",%nobits
15276	.align	1
15277	.set	.LANCHOR100,. + 0
15278	.type	g_gc_next_blk_1, %object
15279	.size	g_gc_next_blk_1, 2
15280g_gc_next_blk_1:
15281	.space	2
15282	.section	.bss.g_gc_num_req,"aw",%nobits
15283	.align	2
15284	.set	.LANCHOR89,. + 0
15285	.type	g_gc_num_req, %object
15286	.size	g_gc_num_req, 4
15287g_gc_num_req:
15288	.space	4
15289	.section	.bss.g_gc_page_offset,"aw",%nobits
15290	.align	1
15291	.set	.LANCHOR97,. + 0
15292	.type	g_gc_page_offset, %object
15293	.size	g_gc_page_offset, 2
15294g_gc_page_offset:
15295	.space	2
15296	.section	.bss.g_gc_skip_write_count,"aw",%nobits
15297	.align	2
15298	.set	.LANCHOR84,. + 0
15299	.type	g_gc_skip_write_count, %object
15300	.size	g_gc_skip_write_count, 4
15301g_gc_skip_write_count:
15302	.space	4
15303	.section	.bss.g_gc_superblock,"aw",%nobits
15304	.align	2
15305	.set	.LANCHOR80,. + 0
15306	.type	g_gc_superblock, %object
15307	.size	g_gc_superblock, 48
15308g_gc_superblock:
15309	.space	48
15310	.section	.bss.g_gc_temp_superblock,"aw",%nobits
15311	.align	2
15312	.set	.LANCHOR53,. + 0
15313	.type	g_gc_temp_superblock, %object
15314	.size	g_gc_temp_superblock, 48
15315g_gc_temp_superblock:
15316	.space	48
15317	.section	.bss.g_in_gc_progress,"aw",%nobits
15318	.align	2
15319	.set	.LANCHOR108,. + 0
15320	.type	g_in_gc_progress, %object
15321	.size	g_in_gc_progress, 4
15322g_in_gc_progress:
15323	.space	4
15324	.section	.bss.g_in_swl_replace,"aw",%nobits
15325	.align	2
15326	.set	.LANCHOR87,. + 0
15327	.type	g_in_swl_replace, %object
15328	.size	g_in_swl_replace, 4
15329g_in_swl_replace:
15330	.space	4
15331	.section	.bss.g_l2p_last_update_region_id,"aw",%nobits
15332	.align	1
15333	.set	.LANCHOR56,. + 0
15334	.type	g_l2p_last_update_region_id, %object
15335	.size	g_l2p_last_update_region_id, 2
15336g_l2p_last_update_region_id:
15337	.space	2
15338	.section	.bss.g_max_erase_count,"aw",%nobits
15339	.align	2
15340	.set	.LANCHOR76,. + 0
15341	.type	g_max_erase_count, %object
15342	.size	g_max_erase_count, 4
15343g_max_erase_count:
15344	.space	4
15345	.section	.bss.g_min_erase_count,"aw",%nobits
15346	.align	2
15347	.set	.LANCHOR77,. + 0
15348	.type	g_min_erase_count, %object
15349	.size	g_min_erase_count, 4
15350g_min_erase_count:
15351	.space	4
15352	.section	.bss.g_nand_ops,"aw",%nobits
15353	.align	2
15354	.set	.LANCHOR105,. + 0
15355	.type	g_nand_ops, %object
15356	.size	g_nand_ops, 16
15357g_nand_ops:
15358	.space	16
15359	.section	.bss.g_nand_phy_info,"aw",%nobits
15360	.align	1
15361	.set	.LANCHOR0,. + 0
15362	.type	g_nand_phy_info, %object
15363	.size	g_nand_phy_info, 24
15364g_nand_phy_info:
15365	.space	24
15366	.section	.bss.g_num_data_superblocks,"aw",%nobits
15367	.align	1
15368	.set	.LANCHOR45,. + 0
15369	.type	g_num_data_superblocks, %object
15370	.size	g_num_data_superblocks, 2
15371g_num_data_superblocks:
15372	.space	2
15373	.section	.bss.g_num_free_superblocks,"aw",%nobits
15374	.align	1
15375	.set	.LANCHOR48,. + 0
15376	.type	g_num_free_superblocks, %object
15377	.size	g_num_free_superblocks, 2
15378g_num_free_superblocks:
15379	.space	2
15380	.section	.bss.g_power_lost_recovery_flag,"aw",%nobits
15381	.align	1
15382	.set	.LANCHOR167,. + 0
15383	.type	g_power_lost_recovery_flag, %object
15384	.size	g_power_lost_recovery_flag, 2
15385g_power_lost_recovery_flag:
15386	.space	2
15387	.section	.bss.g_recovery_page_min_ver,"aw",%nobits
15388	.align	2
15389	.set	.LANCHOR145,. + 0
15390	.type	g_recovery_page_min_ver, %object
15391	.size	g_recovery_page_min_ver, 4
15392g_recovery_page_min_ver:
15393	.space	4
15394	.section	.bss.g_recovery_page_num,"aw",%nobits
15395	.align	2
15396	.set	.LANCHOR168,. + 0
15397	.type	g_recovery_page_num, %object
15398	.size	g_recovery_page_num, 4
15399g_recovery_page_num:
15400	.space	4
15401	.section	.bss.g_recovery_ppa_tbl,"aw",%nobits
15402	.align	2
15403	.set	.LANCHOR169,. + 0
15404	.type	g_recovery_ppa_tbl, %object
15405	.size	g_recovery_ppa_tbl, 128
15406g_recovery_ppa_tbl:
15407	.space	128
15408	.section	.bss.g_sys_ext_data,"aw",%nobits
15409	.align	2
15410	.set	.LANCHOR81,. + 0
15411	.type	g_sys_ext_data, %object
15412	.size	g_sys_ext_data, 512
15413g_sys_ext_data:
15414	.space	512
15415	.section	.bss.g_sys_save_data,"aw",%nobits
15416	.align	2
15417	.set	.LANCHOR39,. + 0
15418	.type	g_sys_save_data, %object
15419	.size	g_sys_save_data, 48
15420g_sys_save_data:
15421	.space	48
15422	.section	.bss.g_tmp_data_superblock_id,"aw",%nobits
15423	.align	1
15424	.set	.LANCHOR142,. + 0
15425	.type	g_tmp_data_superblock_id, %object
15426	.size	g_tmp_data_superblock_id, 2
15427g_tmp_data_superblock_id:
15428	.space	2
15429	.section	.bss.g_totle_avg_erase_count,"aw",%nobits
15430	.align	2
15431	.set	.LANCHOR74,. + 0
15432	.type	g_totle_avg_erase_count, %object
15433	.size	g_totle_avg_erase_count, 4
15434g_totle_avg_erase_count:
15435	.space	4
15436	.section	.bss.g_totle_cache_write_count,"aw",%nobits
15437	.align	2
15438	.set	.LANCHOR65,. + 0
15439	.type	g_totle_cache_write_count, %object
15440	.size	g_totle_cache_write_count, 4
15441g_totle_cache_write_count:
15442	.space	4
15443	.section	.bss.g_totle_discard_page_count,"aw",%nobits
15444	.align	2
15445	.set	.LANCHOR63,. + 0
15446	.type	g_totle_discard_page_count, %object
15447	.size	g_totle_discard_page_count, 4
15448g_totle_discard_page_count:
15449	.space	4
15450	.section	.bss.g_totle_gc_page_count,"aw",%nobits
15451	.align	2
15452	.set	.LANCHOR67,. + 0
15453	.type	g_totle_gc_page_count, %object
15454	.size	g_totle_gc_page_count, 4
15455g_totle_gc_page_count:
15456	.space	4
15457	.section	.bss.g_totle_l2p_write_count,"aw",%nobits
15458	.align	2
15459	.set	.LANCHOR66,. + 0
15460	.type	g_totle_l2p_write_count, %object
15461	.size	g_totle_l2p_write_count, 4
15462g_totle_l2p_write_count:
15463	.space	4
15464	.section	.bss.g_totle_map_block,"aw",%nobits
15465	.align	1
15466	.set	.LANCHOR141,. + 0
15467	.type	g_totle_map_block, %object
15468	.size	g_totle_map_block, 2
15469g_totle_map_block:
15470	.space	2
15471	.section	.bss.g_totle_mlc_erase_count,"aw",%nobits
15472	.align	2
15473	.set	.LANCHOR72,. + 0
15474	.type	g_totle_mlc_erase_count, %object
15475	.size	g_totle_mlc_erase_count, 4
15476g_totle_mlc_erase_count:
15477	.space	4
15478	.section	.bss.g_totle_read_page_count,"aw",%nobits
15479	.align	2
15480	.set	.LANCHOR62,. + 0
15481	.type	g_totle_read_page_count, %object
15482	.size	g_totle_read_page_count, 4
15483g_totle_read_page_count:
15484	.space	4
15485	.section	.bss.g_totle_read_sector,"aw",%nobits
15486	.align	2
15487	.set	.LANCHOR69,. + 0
15488	.type	g_totle_read_sector, %object
15489	.size	g_totle_read_sector, 4
15490g_totle_read_sector:
15491	.space	4
15492	.section	.bss.g_totle_slc_erase_count,"aw",%nobits
15493	.align	2
15494	.set	.LANCHOR73,. + 0
15495	.type	g_totle_slc_erase_count, %object
15496	.size	g_totle_slc_erase_count, 4
15497g_totle_slc_erase_count:
15498	.space	4
15499	.section	.bss.g_totle_swl_count,"aw",%nobits
15500	.align	2
15501	.set	.LANCHOR143,. + 0
15502	.type	g_totle_swl_count, %object
15503	.size	g_totle_swl_count, 4
15504g_totle_swl_count:
15505	.space	4
15506	.section	.bss.g_totle_sys_slc_erase_count,"aw",%nobits
15507	.align	2
15508	.set	.LANCHOR75,. + 0
15509	.type	g_totle_sys_slc_erase_count, %object
15510	.size	g_totle_sys_slc_erase_count, 4
15511g_totle_sys_slc_erase_count:
15512	.space	4
15513	.section	.bss.g_totle_vendor_block,"aw",%nobits
15514	.align	1
15515	.set	.LANCHOR35,. + 0
15516	.type	g_totle_vendor_block, %object
15517	.size	g_totle_vendor_block, 2
15518g_totle_vendor_block:
15519	.space	2
15520	.section	.bss.g_totle_write_page_count,"aw",%nobits
15521	.align	2
15522	.set	.LANCHOR64,. + 0
15523	.type	g_totle_write_page_count, %object
15524	.size	g_totle_write_page_count, 4
15525g_totle_write_page_count:
15526	.space	4
15527	.section	.bss.g_totle_write_sector,"aw",%nobits
15528	.align	2
15529	.set	.LANCHOR68,. + 0
15530	.type	g_totle_write_sector, %object
15531	.size	g_totle_write_sector, 4
15532g_totle_write_sector:
15533	.space	4
15534	.section	.bss.gc_discard_updated,"aw",%nobits
15535	.align	2
15536	.set	.LANCHOR172,. + 0
15537	.type	gc_discard_updated, %object
15538	.size	gc_discard_updated, 4
15539gc_discard_updated:
15540	.space	4
15541	.section	.bss.gc_ink_free_return_value,"aw",%nobits
15542	.align	1
15543	.set	.LANCHOR177,. + 0
15544	.type	gc_ink_free_return_value, %object
15545	.size	gc_ink_free_return_value, 2
15546gc_ink_free_return_value:
15547	.space	2
15548	.section	.bss.gp_ect_tbl_info,"aw",%nobits
15549	.align	2
15550	.set	.LANCHOR127,. + 0
15551	.type	gp_ect_tbl_info, %object
15552	.size	gp_ect_tbl_info, 4
15553gp_ect_tbl_info:
15554	.space	4
15555	.section	.bss.gp_flash_check_buf,"aw",%nobits
15556	.align	2
15557	.set	.LANCHOR186,. + 0
15558	.type	gp_flash_check_buf, %object
15559	.size	gp_flash_check_buf, 4
15560gp_flash_check_buf:
15561	.space	4
15562	.section	.bss.gp_gc_page_buf_info,"aw",%nobits
15563	.align	2
15564	.set	.LANCHOR90,. + 0
15565	.type	gp_gc_page_buf_info, %object
15566	.size	gp_gc_page_buf_info, 4
15567gp_gc_page_buf_info:
15568	.space	4
15569	.section	.bss.gp_last_act_superblock,"aw",%nobits
15570	.align	2
15571	.type	gp_last_act_superblock, %object
15572	.size	gp_last_act_superblock, 4
15573gp_last_act_superblock:
15574	.space	4
15575	.section	.bss.idb_buf,"aw",%nobits
15576	.align	2
15577	.set	.LANCHOR185,. + 0
15578	.type	idb_buf, %object
15579	.size	idb_buf, 4
15580idb_buf:
15581	.space	4
15582	.section	.bss.idb_need_write_back,"aw",%nobits
15583	.align	2
15584	.set	.LANCHOR184,. + 0
15585	.type	idb_need_write_back, %object
15586	.size	idb_need_write_back, 4
15587idb_need_write_back:
15588	.space	4
15589	.section	.bss.p_blk_mode_table,"aw",%nobits
15590	.align	2
15591	.set	.LANCHOR1,. + 0
15592	.type	p_blk_mode_table, %object
15593	.size	p_blk_mode_table, 4
15594p_blk_mode_table:
15595	.space	4
15596	.section	.bss.p_data_block_list_head,"aw",%nobits
15597	.align	2
15598	.set	.LANCHOR41,. + 0
15599	.type	p_data_block_list_head, %object
15600	.size	p_data_block_list_head, 4
15601p_data_block_list_head:
15602	.space	4
15603	.section	.bss.p_data_block_list_table,"aw",%nobits
15604	.align	2
15605	.set	.LANCHOR40,. + 0
15606	.type	p_data_block_list_table, %object
15607	.size	p_data_block_list_table, 4
15608p_data_block_list_table:
15609	.space	4
15610	.section	.bss.p_data_block_list_tail,"aw",%nobits
15611	.align	2
15612	.set	.LANCHOR44,. + 0
15613	.type	p_data_block_list_tail, %object
15614	.size	p_data_block_list_tail, 4
15615p_data_block_list_tail:
15616	.space	4
15617	.section	.bss.p_erase_count_table,"aw",%nobits
15618	.align	2
15619	.set	.LANCHOR43,. + 0
15620	.type	p_erase_count_table, %object
15621	.size	p_erase_count_table, 4
15622p_erase_count_table:
15623	.space	4
15624	.section	.bss.p_free_data_block_list_head,"aw",%nobits
15625	.align	2
15626	.set	.LANCHOR47,. + 0
15627	.type	p_free_data_block_list_head, %object
15628	.size	p_free_data_block_list_head, 4
15629p_free_data_block_list_head:
15630	.space	4
15631	.section	.bss.p_gc_blk_tbl,"aw",%nobits
15632	.align	2
15633	.set	.LANCHOR95,. + 0
15634	.type	p_gc_blk_tbl, %object
15635	.size	p_gc_blk_tbl, 4
15636p_gc_blk_tbl:
15637	.space	4
15638	.section	.bss.p_gc_data_buf,"aw",%nobits
15639	.align	2
15640	.set	.LANCHOR91,. + 0
15641	.type	p_gc_data_buf, %object
15642	.size	p_gc_data_buf, 4
15643p_gc_data_buf:
15644	.space	4
15645	.section	.bss.p_gc_page_info,"aw",%nobits
15646	.align	2
15647	.set	.LANCHOR98,. + 0
15648	.type	p_gc_page_info, %object
15649	.size	p_gc_page_info, 4
15650p_gc_page_info:
15651	.space	4
15652	.section	.bss.p_gc_spare_buf,"aw",%nobits
15653	.align	2
15654	.set	.LANCHOR92,. + 0
15655	.type	p_gc_spare_buf, %object
15656	.size	p_gc_spare_buf, 4
15657p_gc_spare_buf:
15658	.space	4
15659	.section	.bss.p_io_data_buf_0,"aw",%nobits
15660	.align	2
15661	.set	.LANCHOR118,. + 0
15662	.type	p_io_data_buf_0, %object
15663	.size	p_io_data_buf_0, 4
15664p_io_data_buf_0:
15665	.space	4
15666	.section	.bss.p_io_data_buf_1,"aw",%nobits
15667	.align	2
15668	.set	.LANCHOR119,. + 0
15669	.type	p_io_data_buf_1, %object
15670	.size	p_io_data_buf_1, 4
15671p_io_data_buf_1:
15672	.space	4
15673	.section	.bss.p_io_spare_buf,"aw",%nobits
15674	.align	2
15675	.set	.LANCHOR124,. + 0
15676	.type	p_io_spare_buf, %object
15677	.size	p_io_spare_buf, 4
15678p_io_spare_buf:
15679	.space	4
15680	.section	.bss.p_l2p_map_buf,"aw",%nobits
15681	.align	2
15682	.set	.LANCHOR136,. + 0
15683	.type	p_l2p_map_buf, %object
15684	.size	p_l2p_map_buf, 4
15685p_l2p_map_buf:
15686	.space	4
15687	.section	.bss.p_l2p_ram_map,"aw",%nobits
15688	.align	2
15689	.set	.LANCHOR55,. + 0
15690	.type	p_l2p_ram_map, %object
15691	.size	p_l2p_ram_map, 4
15692p_l2p_ram_map:
15693	.space	4
15694	.section	.bss.p_map_block_table,"aw",%nobits
15695	.align	2
15696	.set	.LANCHOR129,. + 0
15697	.type	p_map_block_table, %object
15698	.size	p_map_block_table, 4
15699p_map_block_table:
15700	.space	4
15701	.section	.bss.p_map_block_valid_page_count,"aw",%nobits
15702	.align	2
15703	.set	.LANCHOR130,. + 0
15704	.type	p_map_block_valid_page_count, %object
15705	.size	p_map_block_valid_page_count, 4
15706p_map_block_valid_page_count:
15707	.space	4
15708	.section	.bss.p_map_block_ver_table,"aw",%nobits
15709	.align	2
15710	.set	.LANCHOR135,. + 0
15711	.type	p_map_block_ver_table, %object
15712	.size	p_map_block_ver_table, 4
15713p_map_block_ver_table:
15714	.space	4
15715	.section	.bss.p_map_region_ppn_table,"aw",%nobits
15716	.align	2
15717	.set	.LANCHOR134,. + 0
15718	.type	p_map_region_ppn_table, %object
15719	.size	p_map_region_ppn_table, 4
15720p_map_region_ppn_table:
15721	.space	4
15722	.section	.bss.p_plane_order_table,"aw",%nobits
15723	.set	.LANCHOR13,. + 0
15724	.type	p_plane_order_table, %object
15725	.size	p_plane_order_table, 32
15726p_plane_order_table:
15727	.space	32
15728	.section	.bss.p_swl_mul_table,"aw",%nobits
15729	.align	2
15730	.set	.LANCHOR126,. + 0
15731	.type	p_swl_mul_table, %object
15732	.size	p_swl_mul_table, 4
15733p_swl_mul_table:
15734	.space	4
15735	.section	.bss.p_sys_data_buf,"aw",%nobits
15736	.align	2
15737	.set	.LANCHOR115,. + 0
15738	.type	p_sys_data_buf, %object
15739	.size	p_sys_data_buf, 4
15740p_sys_data_buf:
15741	.space	4
15742	.section	.bss.p_sys_data_buf_1,"aw",%nobits
15743	.align	2
15744	.set	.LANCHOR116,. + 0
15745	.type	p_sys_data_buf_1, %object
15746	.size	p_sys_data_buf_1, 4
15747p_sys_data_buf_1:
15748	.space	4
15749	.section	.bss.p_sys_spare_buf,"aw",%nobits
15750	.align	2
15751	.set	.LANCHOR123,. + 0
15752	.type	p_sys_spare_buf, %object
15753	.size	p_sys_spare_buf, 4
15754p_sys_spare_buf:
15755	.space	4
15756	.section	.bss.p_valid_page_count_check_table,"aw",%nobits
15757	.align	2
15758	.set	.LANCHOR128,. + 0
15759	.type	p_valid_page_count_check_table, %object
15760	.size	p_valid_page_count_check_table, 4
15761p_valid_page_count_check_table:
15762	.space	4
15763	.section	.bss.p_valid_page_count_table,"aw",%nobits
15764	.align	2
15765	.set	.LANCHOR42,. + 0
15766	.type	p_valid_page_count_table, %object
15767	.size	p_valid_page_count_table, 4
15768p_valid_page_count_table:
15769	.space	4
15770	.section	.bss.p_vendor_block_table,"aw",%nobits
15771	.align	2
15772	.set	.LANCHOR36,. + 0
15773	.type	p_vendor_block_table, %object
15774	.size	p_vendor_block_table, 4
15775p_vendor_block_table:
15776	.space	4
15777	.section	.bss.p_vendor_block_valid_page_count,"aw",%nobits
15778	.align	2
15779	.set	.LANCHOR131,. + 0
15780	.type	p_vendor_block_valid_page_count, %object
15781	.size	p_vendor_block_valid_page_count, 4
15782p_vendor_block_valid_page_count:
15783	.space	4
15784	.section	.bss.p_vendor_block_ver_table,"aw",%nobits
15785	.align	2
15786	.set	.LANCHOR132,. + 0
15787	.type	p_vendor_block_ver_table, %object
15788	.size	p_vendor_block_ver_table, 4
15789p_vendor_block_ver_table:
15790	.space	4
15791	.section	.bss.p_vendor_data_buf,"aw",%nobits
15792	.align	2
15793	.set	.LANCHOR117,. + 0
15794	.type	p_vendor_data_buf, %object
15795	.size	p_vendor_data_buf, 4
15796p_vendor_data_buf:
15797	.space	4
15798	.section	.bss.p_vendor_region_ppn_table,"aw",%nobits
15799	.align	2
15800	.set	.LANCHOR133,. + 0
15801	.type	p_vendor_region_ppn_table, %object
15802	.size	p_vendor_region_ppn_table, 4
15803p_vendor_region_ppn_table:
15804	.space	4
15805	.section	.bss.req_erase,"aw",%nobits
15806	.align	2
15807	.set	.LANCHOR106,. + 0
15808	.type	req_erase, %object
15809	.size	req_erase, 4
15810req_erase:
15811	.space	4
15812	.section	.bss.req_gc,"aw",%nobits
15813	.align	2
15814	.set	.LANCHOR93,. + 0
15815	.type	req_gc, %object
15816	.size	req_gc, 4
15817req_gc:
15818	.space	4
15819	.section	.bss.req_gc_dst,"aw",%nobits
15820	.align	2
15821	.set	.LANCHOR113,. + 0
15822	.type	req_gc_dst, %object
15823	.size	req_gc_dst, 4
15824req_gc_dst:
15825	.space	4
15826	.section	.bss.req_prgm,"aw",%nobits
15827	.align	2
15828	.set	.LANCHOR114,. + 0
15829	.type	req_prgm, %object
15830	.size	req_prgm, 4
15831req_prgm:
15832	.space	4
15833	.section	.bss.req_read,"aw",%nobits
15834	.align	2
15835	.set	.LANCHOR112,. + 0
15836	.type	req_read, %object
15837	.size	req_read, 4
15838req_read:
15839	.space	4
15840	.section	.bss.req_sys,"aw",%nobits
15841	.align	2
15842	.set	.LANCHOR148,. + 0
15843	.type	req_sys, %object
15844	.size	req_sys, 20
15845req_sys:
15846	.space	20
15847	.section	.bss.sftl_nand_check_buf,"aw",%nobits
15848	.align	2
15849	.set	.LANCHOR120,. + 0
15850	.type	sftl_nand_check_buf, %object
15851	.size	sftl_nand_check_buf, 4
15852sftl_nand_check_buf:
15853	.space	4
15854	.section	.bss.sftl_nand_check_spare_buf,"aw",%nobits
15855	.align	2
15856	.set	.LANCHOR122,. + 0
15857	.type	sftl_nand_check_spare_buf, %object
15858	.size	sftl_nand_check_spare_buf, 4
15859sftl_nand_check_spare_buf:
15860	.space	4
15861	.section	.bss.sftl_temp_buf,"aw",%nobits
15862	.align	2
15863	.set	.LANCHOR121,. + 0
15864	.type	sftl_temp_buf, %object
15865	.size	sftl_temp_buf, 4
15866sftl_temp_buf:
15867	.space	4
15868	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits
15869	.align	1
15870	.set	.LANCHOR162,. + 0
15871	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
15872	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
15873ftl_gc_temp_block_bops_scan_page_addr:
15874	.short	-1
15875	.section	.data.gFtlInitStatus,"aw",%progbits
15876	.align	2
15877	.set	.LANCHOR86,. + 0
15878	.type	gFtlInitStatus, %object
15879	.size	gFtlInitStatus, 4
15880gFtlInitStatus:
15881	.word	-1
15882	.section	.data.power_up_flag,"aw",%progbits
15883	.align	2
15884	.set	.LANCHOR182,. + 0
15885	.type	power_up_flag, %object
15886	.size	power_up_flag, 4
15887power_up_flag:
15888	.word	1
15889	.section	.rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1
15890.LC79:
15891	.ascii	"%s: addr: %x is in id block!!!!!!!!!!\012\000"
15892.LC80:
15893	.ascii	"not free: w: d:\000"
15894.LC81:
15895	.ascii	"not free: w: s:\000"
15896	.section	.rodata.FlashProgPages.str1.1,"aMS",%progbits,1
15897.LC85:
15898	.ascii	"prog read error: = %x\012\000"
15899.LC86:
15900	.ascii	"prog read s error: = %x %x %x\012\000"
15901.LC87:
15902	.ascii	"prog read d error: = %x %x %x\012\000"
15903	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1
15904.LC0:
15905	.ascii	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
15906	.ascii	"\000"
15907	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1
15908.LC101:
15909	.ascii	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
15910.LC102:
15911	.ascii	"FtlBbmTblFlush error:%x\012\000"
15912.LC103:
15913	.ascii	"FtlBbmTblFlush error = %x error count = %d\012\000"
15914	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1
15915.LC82:
15916	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
15917	.ascii	"\000"
15918	.section	.rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",%progbits,1
15919.LC104:
15920	.ascii	"FtlGcFreeBadSuperBlk 0x%x\012\000"
15921	.section	.rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",%progbits,1
15922.LC74:
15923	.ascii	"FtlGcMarkBadPhyBlk %d 0x%x\012\000"
15924	.section	.rodata.FtlGcRefreshBlock.str1.1,"aMS",%progbits,1
15925.LC73:
15926	.ascii	"FtlGcRefreshBlock  0x%x\012\000"
15927	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1
15928.LC100:
15929	.ascii	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
15930	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1
15931.LC108:
15932	.ascii	"no ect\000"
15933	.section	.rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1
15934.LC88:
15935	.ascii	"FtlMapWritePage error = %x \012\000"
15936.LC89:
15937	.ascii	"FtlMapWritePage error = %x error count = %d\012\000"
15938	.section	.rodata.FtlMemInit.str1.1,"aMS",%progbits,1
15939.LC84:
15940	.ascii	"%s error allocating memory. return -1\012\000"
15941	.section	.rodata.FtlPrintInfo2buf.str1.1,"aMS",%progbits,1
15942.LC2:
15943	.ascii	"FLASH INFO:\012\000"
15944.LC3:
15945	.ascii	"Device Capacity: %d MB\012\000"
15946.LC4:
15947	.ascii	"FTL INFO:\012\000"
15948.LC5:
15949	.ascii	"g_MaxLpn = 0x%x\012\000"
15950.LC6:
15951	.ascii	"g_VaildLpn = 0x%x\012\000"
15952.LC7:
15953	.ascii	"read_page_count = 0x%x\012\000"
15954.LC8:
15955	.ascii	"discard_page_count = 0x%x\012\000"
15956.LC9:
15957	.ascii	"write_page_count = 0x%x\012\000"
15958.LC10:
15959	.ascii	"cache_write_count = 0x%x\012\000"
15960.LC11:
15961	.ascii	"l2p_write_count = 0x%x\012\000"
15962.LC12:
15963	.ascii	"gc_page_count = 0x%x\012\000"
15964.LC13:
15965	.ascii	"totle_write = %d MB\012\000"
15966.LC14:
15967	.ascii	"totle_read = %d MB\012\000"
15968.LC15:
15969	.ascii	"GSV = 0x%x\012\000"
15970.LC16:
15971	.ascii	"GDV = 0x%x\012\000"
15972.LC17:
15973	.ascii	"bad blk num = %d\012\000"
15974.LC18:
15975	.ascii	"free_superblocks = 0x%x\012\000"
15976.LC19:
15977	.ascii	"mlc_EC = 0x%x\012\000"
15978.LC20:
15979	.ascii	"slc_EC = 0x%x\012\000"
15980.LC21:
15981	.ascii	"avg_EC = 0x%x\012\000"
15982.LC22:
15983	.ascii	"sys_EC = 0x%x\012\000"
15984.LC23:
15985	.ascii	"max_EC = 0x%x\012\000"
15986.LC24:
15987	.ascii	"min_EC = 0x%x\012\000"
15988.LC25:
15989	.ascii	"PLT = 0x%x\012\000"
15990.LC26:
15991	.ascii	"POT = 0x%x\012\000"
15992.LC27:
15993	.ascii	"MaxSector = 0x%x\012\000"
15994.LC28:
15995	.ascii	"init_sys_blks_pp = 0x%x\012\000"
15996.LC29:
15997	.ascii	"sys_blks_pp = 0x%x\012\000"
15998.LC30:
15999	.ascii	"free sysblock = 0x%x\012\000"
16000.LC31:
16001	.ascii	"data_blks_pp = 0x%x\012\000"
16002.LC32:
16003	.ascii	"data_op_blks_pp = 0x%x\012\000"
16004.LC33:
16005	.ascii	"max_data_blks = 0x%x\012\000"
16006.LC34:
16007	.ascii	"Sys.id = 0x%x\012\000"
16008.LC35:
16009	.ascii	"Bbt.id = 0x%x\012\000"
16010.LC36:
16011	.ascii	"ACT.page = 0x%x\012\000"
16012.LC37:
16013	.ascii	"ACT.plane = 0x%x\012\000"
16014.LC38:
16015	.ascii	"ACT.id = 0x%x\012\000"
16016.LC39:
16017	.ascii	"ACT.mode = 0x%x\012\000"
16018.LC40:
16019	.ascii	"ACT.a_pages = 0x%x\012\000"
16020.LC41:
16021	.ascii	"ACT VPC = 0x%x\012\000"
16022.LC42:
16023	.ascii	"BUF.page = 0x%x\012\000"
16024.LC43:
16025	.ascii	"BUF.plane = 0x%x\012\000"
16026.LC44:
16027	.ascii	"BUF.id = 0x%x\012\000"
16028.LC45:
16029	.ascii	"BUF.mode = 0x%x\012\000"
16030.LC46:
16031	.ascii	"BUF.a_pages = 0x%x\012\000"
16032.LC47:
16033	.ascii	"BUF VPC = 0x%x\012\000"
16034.LC48:
16035	.ascii	"TMP.page = 0x%x\012\000"
16036.LC49:
16037	.ascii	"TMP.plane = 0x%x\012\000"
16038.LC50:
16039	.ascii	"TMP.id = 0x%x\012\000"
16040.LC51:
16041	.ascii	"TMP.mode = 0x%x\012\000"
16042.LC52:
16043	.ascii	"TMP.a_pages = 0x%x\012\000"
16044.LC53:
16045	.ascii	"GC.page = 0x%x\012\000"
16046.LC54:
16047	.ascii	"GC.plane = 0x%x\012\000"
16048.LC55:
16049	.ascii	"GC.id = 0x%x\012\000"
16050.LC56:
16051	.ascii	"GC.mode = 0x%x\012\000"
16052.LC57:
16053	.ascii	"GC.a_pages = 0x%x\012\000"
16054.LC58:
16055	.ascii	"WR_CHK = %x %x %x\012\000"
16056.LC59:
16057	.ascii	"Read Err Cnt = 0x%x\012\000"
16058.LC60:
16059	.ascii	"Prog Err Cnt = 0x%x\012\000"
16060.LC61:
16061	.ascii	"gc_free_blk_th= 0x%x\012\000"
16062.LC62:
16063	.ascii	"gc_merge_free_blk_th= 0x%x\012\000"
16064.LC63:
16065	.ascii	"gc_skip_write_count= 0x%x\012\000"
16066.LC64:
16067	.ascii	"gc_blk_index= 0x%x\012\000"
16068.LC65:
16069	.ascii	"free min EC= 0x%x\012\000"
16070.LC66:
16071	.ascii	"free max EC= 0x%x\012\000"
16072.LC67:
16073	.ascii	"GC__SB VPC = 0x%x\012\000"
16074.LC68:
16075	.ascii	"%d. [0x%x]=0x%x 0x%x  0x%x\012\000"
16076.LC69:
16077	.ascii	"free %d. [0x%x] 0x%x  0x%x\012\000"
16078	.section	.rodata.FtlProgPages.str1.1,"aMS",%progbits,1
16079.LC111:
16080	.ascii	"Ftlwrite decrement_vpc_count %x = %d\012\000"
16081	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1
16082.LC106:
16083	.ascii	"spuer block %x vpn is 0\012 \000"
16084	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1
16085.LC107:
16086	.ascii	"FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
16087	.section	.rodata.FtlVpcCheckAndModify.str1.1,"aMS",%progbits,1
16088.LC110:
16089	.ascii	"FtlCheckVpc %x = %x  %x\012\000"
16090	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1
16091.LC109:
16092	.ascii	"FtlVpcTblFlush error = %x error count = %d\012\000"
16093	.section	.rodata.FtlWrite.str1.1,"aMS",%progbits,1
16094.LC113:
16095	.ascii	"FtlWrite: lpa error:%x %x\012\000"
16096	.section	.rodata.GetSwlReplaceBlock.str1.1,"aMS",%progbits,1
16097.LC72:
16098	.ascii	"swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
16099	.ascii	"\012\000"
16100	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1
16101.LC1:
16102	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
16103	.section	.rodata.__func__.10034,"a",%progbits
16104	.set	.LANCHOR176,. + 0
16105	.type	__func__.10034, %object
16106	.size	__func__.10034, 19
16107__func__.10034:
16108	.ascii	"FtlGcFreeTempBlock\000"
16109	.section	.rodata.__func__.10145,"a",%progbits
16110	.set	.LANCHOR180,. + 0
16111	.type	__func__.10145, %object
16112	.size	__func__.10145, 23
16113__func__.10145:
16114	.ascii	"rk_ftl_garbage_collect\000"
16115	.section	.rodata.__func__.10407,"a",%progbits
16116	.set	.LANCHOR147,. + 0
16117	.type	__func__.10407, %object
16118	.size	__func__.10407, 15
16119__func__.10407:
16120	.ascii	"FlashReadPages\000"
16121	.section	.rodata.__func__.10426,"a",%progbits
16122	.set	.LANCHOR153,. + 0
16123	.type	__func__.10426, %object
16124	.size	__func__.10426, 15
16125__func__.10426:
16126	.ascii	"FlashProgPages\000"
16127	.section	.rodata.__func__.10450,"a",%progbits
16128	.set	.LANCHOR104,. + 0
16129	.type	__func__.10450, %object
16130	.size	__func__.10450, 17
16131__func__.10450:
16132	.ascii	"FlashEraseBlocks\000"
16133	.section	.rodata.__func__.8814,"a",%progbits
16134	.set	.LANCHOR138,. + 0
16135	.type	__func__.8814, %object
16136	.size	__func__.8814, 11
16137__func__.8814:
16138	.ascii	"FtlMemInit\000"
16139	.section	.rodata.__func__.8938,"a",%progbits
16140	.set	.LANCHOR175,. + 0
16141	.type	__func__.8938, %object
16142	.size	__func__.8938, 13
16143__func__.8938:
16144	.ascii	"FtlProgPages\000"
16145	.section	.rodata.__func__.8966,"a",%progbits
16146	.set	.LANCHOR183,. + 0
16147	.type	__func__.8966, %object
16148	.size	__func__.8966, 9
16149__func__.8966:
16150	.ascii	"FtlWrite\000"
16151	.section	.rodata.__func__.9072,"a",%progbits
16152	.set	.LANCHOR187,. + 0
16153	.type	__func__.9072, %object
16154	.size	__func__.9072, 14
16155__func__.9072:
16156	.ascii	"FtlWriteToIDB\000"
16157	.section	.rodata.__func__.9113,"a",%progbits
16158	.set	.LANCHOR139,. + 0
16159	.type	__func__.9113, %object
16160	.size	__func__.9113, 14
16161__func__.9113:
16162	.ascii	"FtlBbt2Bitmap\000"
16163	.section	.rodata.__func__.9156,"a",%progbits
16164	.set	.LANCHOR150,. + 0
16165	.type	__func__.9156, %object
16166	.size	__func__.9156, 11
16167__func__.9156:
16168	.ascii	"FtlLoadBbt\000"
16169	.section	.rodata.__func__.9271,"a",%progbits
16170	.set	.LANCHOR49,. + 0
16171	.type	__func__.9271, %object
16172	.size	__func__.9271, 17
16173__func__.9271:
16174	.ascii	"INSERT_FREE_LIST\000"
16175	.section	.rodata.__func__.9276,"a",%progbits
16176	.set	.LANCHOR46,. + 0
16177	.type	__func__.9276, %object
16178	.size	__func__.9276, 17
16179__func__.9276:
16180	.ascii	"INSERT_DATA_LIST\000"
16181	.section	.rodata.__func__.9307,"a",%progbits
16182	.set	.LANCHOR50,. + 0
16183	.type	__func__.9307, %object
16184	.size	__func__.9307, 17
16185__func__.9307:
16186	.ascii	"List_remove_node\000"
16187	.section	.rodata.__func__.9339,"a",%progbits
16188	.set	.LANCHOR54,. + 0
16189	.type	__func__.9339, %object
16190	.size	__func__.9339, 22
16191__func__.9339:
16192	.ascii	"List_update_data_list\000"
16193	.section	.rodata.__func__.9348,"a",%progbits
16194	.set	.LANCHOR156,. + 0
16195	.type	__func__.9348, %object
16196	.size	__func__.9348, 16
16197__func__.9348:
16198	.ascii	"load_l2p_region\000"
16199	.section	.rodata.__func__.9381,"a",%progbits
16200	.set	.LANCHOR107,. + 0
16201	.type	__func__.9381, %object
16202	.size	__func__.9381, 26
16203__func__.9381:
16204	.ascii	"ftl_map_blk_alloc_new_blk\000"
16205	.section	.rodata.__func__.9392,"a",%progbits
16206	.set	.LANCHOR157,. + 0
16207	.type	__func__.9392, %object
16208	.size	__func__.9392, 15
16209__func__.9392:
16210	.ascii	"ftl_map_blk_gc\000"
16211	.section	.rodata.__func__.9407,"a",%progbits
16212	.set	.LANCHOR154,. + 0
16213	.type	__func__.9407, %object
16214	.size	__func__.9407, 31
16215__func__.9407:
16216	.ascii	"Ftl_write_map_blk_to_last_page\000"
16217	.section	.rodata.__func__.9421,"a",%progbits
16218	.set	.LANCHOR155,. + 0
16219	.type	__func__.9421, %object
16220	.size	__func__.9421, 16
16221__func__.9421:
16222	.ascii	"FtlMapWritePage\000"
16223	.section	.rodata.__func__.9446,"a",%progbits
16224	.set	.LANCHOR57,. + 0
16225	.type	__func__.9446, %object
16226	.size	__func__.9446, 22
16227__func__.9446:
16228	.ascii	"select_l2p_ram_region\000"
16229	.section	.rodata.__func__.9463,"a",%progbits
16230	.set	.LANCHOR159,. + 0
16231	.type	__func__.9463, %object
16232	.size	__func__.9463, 9
16233__func__.9463:
16234	.ascii	"log2phys\000"
16235	.section	.rodata.__func__.9536,"a",%progbits
16236	.set	.LANCHOR171,. + 0
16237	.type	__func__.9536, %object
16238	.size	__func__.9536, 15
16239__func__.9536:
16240	.ascii	"FtlVpcTblFlush\000"
16241	.section	.rodata.__func__.9558,"a",%progbits
16242	.set	.LANCHOR149,. + 0
16243	.type	__func__.9558, %object
16244	.size	__func__.9558, 14
16245__func__.9558:
16246	.ascii	"FtlScanSysBlk\000"
16247	.section	.rodata.__func__.9615,"a",%progbits
16248	.set	.LANCHOR151,. + 0
16249	.type	__func__.9615, %object
16250	.size	__func__.9615, 15
16251__func__.9615:
16252	.ascii	"FtlLoadSysInfo\000"
16253	.section	.rodata.__func__.9678,"a",%progbits
16254	.set	.LANCHOR160,. + 0
16255	.type	__func__.9678, %object
16256	.size	__func__.9678, 16
16257__func__.9678:
16258	.ascii	"FtlReUsePrevPpa\000"
16259	.section	.rodata.__func__.9712,"a",%progbits
16260	.set	.LANCHOR166,. + 0
16261	.type	__func__.9712, %object
16262	.size	__func__.9712, 22
16263__func__.9712:
16264	.ascii	"FtlRecoverySuperblock\000"
16265	.section	.rodata.__func__.9769,"a",%progbits
16266	.set	.LANCHOR60,. + 0
16267	.type	__func__.9769, %object
16268	.size	__func__.9769, 16
16269__func__.9769:
16270	.ascii	"make_superblock\000"
16271	.section	.rodata.__func__.9790,"a",%progbits
16272	.set	.LANCHOR146,. + 0
16273	.type	__func__.9790, %object
16274	.size	__func__.9790, 18
16275__func__.9790:
16276	.ascii	"SupperBlkListInit\000"
16277	.section	.rodata.__func__.9815,"a",%progbits
16278	.set	.LANCHOR173,. + 0
16279	.type	__func__.9815, %object
16280	.size	__func__.9815, 21
16281__func__.9815:
16282	.ascii	"FtlVpcCheckAndModify\000"
16283	.section	.rodata.__func__.9831,"a",%progbits
16284	.set	.LANCHOR161,. + 0
16285	.type	__func__.9831, %object
16286	.size	__func__.9831, 14
16287__func__.9831:
16288	.ascii	"ftl_check_vpc\000"
16289	.section	.rodata.__func__.9916,"a",%progbits
16290	.set	.LANCHOR163,. + 0
16291	.type	__func__.9916, %object
16292	.size	__func__.9916, 25
16293__func__.9916:
16294	.ascii	"allocate_data_superblock\000"
16295	.section	.rodata.__func__.9937,"a",%progbits
16296	.set	.LANCHOR174,. + 0
16297	.type	__func__.9937, %object
16298	.size	__func__.9937, 29
16299__func__.9937:
16300	.ascii	"allocate_new_data_superblock\000"
16301	.section	.rodata.__func__.9944,"a",%progbits
16302	.set	.LANCHOR88,. + 0
16303	.type	__func__.9944, %object
16304	.size	__func__.9944, 19
16305__func__.9944:
16306	.ascii	"get_new_active_ppa\000"
16307	.section	.rodata.__func__.9957,"a",%progbits
16308	.set	.LANCHOR164,. + 0
16309	.type	__func__.9957, %object
16310	.size	__func__.9957, 16
16311__func__.9957:
16312	.ascii	"update_vpc_list\000"
16313	.section	.rodata.__func__.9964,"a",%progbits
16314	.set	.LANCHOR165,. + 0
16315	.type	__func__.9964, %object
16316	.size	__func__.9964, 20
16317__func__.9964:
16318	.ascii	"decrement_vpc_count\000"
16319	.section	.rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1
16320.LC105:
16321	.ascii	"decrement_vpc_count %x = %d\012\000"
16322	.section	.rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1
16323.LC94:
16324	.ascii	"...%s enter...\012\000"
16325.LC95:
16326	.ascii	"FtlCheckVpc2 %x = %x  %x\012\000"
16327.LC96:
16328	.ascii	"free blk vpc error %x = %x  %x\012\000"
16329	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1
16330.LC83:
16331	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
16332	.section	.rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1
16333.LC97:
16334	.ascii	"ftl_scan_all_data = %x\012\000"
16335.LC98:
16336	.ascii	"scan lpa = %x ppa= %x\012\000"
16337.LC99:
16338	.ascii	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
16339	.ascii	"\000"
16340	.section	.rodata.load_l2p_region.str1.1,"aMS",%progbits,1
16341.LC90:
16342	.ascii	"region_id = %x phyAddr = %x\012\000"
16343.LC91:
16344	.ascii	"spare:\000"
16345.LC92:
16346	.ascii	"map_ppn:\000"
16347.LC93:
16348	.ascii	"load_l2p_region refresh = %x phyAddr = %x\012\000"
16349	.section	.rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1
16350.LC112:
16351	.ascii	"SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
16352	.section	.rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
16353.LC75:
16354	.ascii	"%s 0x%x:\000"
16355.LC76:
16356	.ascii	"%x \000"
16357.LC77:
16358	.ascii	"%02x \000"
16359.LC78:
16360	.ascii	"\012\000"
16361	.section	.rodata.rknand_proc_ftlread.str1.1,"aMS",%progbits,1
16362.LC70:
16363	.ascii	"SFTL version: 5.0.48 20181029\000"
16364.LC71:
16365	.ascii	"%s\012\000"
16366	.section	.rodata.sftl_write.str1.1,"aMS",%progbits,1
16367.LC114:
16368	.ascii	"write_idblock fix data %x %x %x\012\000"
16369.LC115:
16370	.ascii	"write_idblock fail! %x %x %x %x\012\000"
16371.LC116:
16372	.ascii	"%s idb buffer alloc fail\012\000"
16373.LC117:
16374	.ascii	"%p %x %p %x\012\000"
16375	.hidden	free
16376