xref: /rk3399_rockchip-uboot/drivers/rkflash/rk_sftl_arm_v7.S (revision 6aa65bb1ee0951865e27da81dde1de76c6d4687e)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:    GPL-2.0
5 * date: 2018-12-27
6 */
7	.arch armv7-a
8	.eabi_attribute 20, 1
9	.eabi_attribute 21, 1
10	.eabi_attribute 23, 3
11	.eabi_attribute 24, 1
12	.eabi_attribute 25, 1
13	.eabi_attribute 26, 2
14	.eabi_attribute 30, 4
15	.eabi_attribute 34, 0
16	.eabi_attribute 18, 2
17	.file	"rk_sftl.c"
18	.global	__aeabi_uidiv
19	.section	.text.l2p_addr_tran.isra.0,"ax",%progbits
20	.align	1
21	.syntax unified
22	.thumb
23	.thumb_func
24	.fpu softvfp
25	.type	l2p_addr_tran.isra.0, %function
26l2p_addr_tran.isra.0:
27	@ args = 0, pretend = 0, frame = 0
28	@ frame_needed = 0, uses_anonymous_args = 0
29	push	{r3, r4, r5, r6, r7, r8, r10, lr}
30	lsrs	r7, r0, #10
31	ldr	r3, .L3
32	mov	r8, r1
33	mov	r6, r0
34	uxth	r0, r7
35	mov	r10, r2
36	uxth	r7, r7
37	ldrh	r4, [r3, #8]
38	ubfx	r6, r6, #0, #10
39	ldrh	r5, [r3, #10]
40	ldrh	r3, [r3, #14]
41	cmp	r3, #4
42	itt	eq
43	lsreq	r4, r4, #1
44	lsleq	r5, r5, #1
45	mov	r1, r4
46	it	eq
47	uxtheq	r5, r5
48	bl	__aeabi_uidiv
49	uxth	r0, r0
50	mls	r4, r0, r4, r7
51	mla	r4, r5, r4, r6
52	str	r4, [r8]
53	str	r0, [r10]
54	movs	r0, #0
55	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
56.L4:
57	.align	2
58.L3:
59	.word	.LANCHOR0
60	.size	l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0
61	.section	.text.ftl_set_blk_mode.part.6,"ax",%progbits
62	.align	1
63	.syntax unified
64	.thumb
65	.thumb_func
66	.fpu softvfp
67	.type	ftl_set_blk_mode.part.6, %function
68ftl_set_blk_mode.part.6:
69	@ args = 0, pretend = 0, frame = 0
70	@ frame_needed = 0, uses_anonymous_args = 0
71	@ link register save eliminated.
72	ldr	r3, .L6
73	lsrs	r1, r0, #5
74	and	r0, r0, #31
75	ldr	r2, [r3]
76	movs	r3, #1
77	lsl	r0, r3, r0
78	ldr	r3, [r2, r1, lsl #2]
79	orrs	r3, r3, r0
80	str	r3, [r2, r1, lsl #2]
81	bx	lr
82.L7:
83	.align	2
84.L6:
85	.word	.LANCHOR1
86	.size	ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6
87	.section	.text.Ftl_log2,"ax",%progbits
88	.align	1
89	.global	Ftl_log2
90	.syntax unified
91	.thumb
92	.thumb_func
93	.fpu softvfp
94	.type	Ftl_log2, %function
95Ftl_log2:
96	@ args = 0, pretend = 0, frame = 0
97	@ frame_needed = 0, uses_anonymous_args = 0
98	@ link register save eliminated.
99	movs	r1, #0
100	movs	r2, #1
101.L9:
102	cmp	r2, r0
103	uxth	r3, r1
104	add	r1, r1, #1
105	bls	.L10
106	subs	r0, r3, #1
107	uxth	r0, r0
108	bx	lr
109.L10:
110	lsls	r2, r2, #1
111	b	.L9
112	.size	Ftl_log2, .-Ftl_log2
113	.section	.text.FtlPrintInfo,"ax",%progbits
114	.align	1
115	.global	FtlPrintInfo
116	.syntax unified
117	.thumb
118	.thumb_func
119	.fpu softvfp
120	.type	FtlPrintInfo, %function
121FtlPrintInfo:
122	@ args = 0, pretend = 0, frame = 0
123	@ frame_needed = 0, uses_anonymous_args = 0
124	@ link register save eliminated.
125	bx	lr
126	.size	FtlPrintInfo, .-FtlPrintInfo
127	.section	.text.FtlSysBlkNumInit,"ax",%progbits
128	.align	1
129	.global	FtlSysBlkNumInit
130	.syntax unified
131	.thumb
132	.thumb_func
133	.fpu softvfp
134	.type	FtlSysBlkNumInit, %function
135FtlSysBlkNumInit:
136	@ args = 0, pretend = 0, frame = 0
137	@ frame_needed = 0, uses_anonymous_args = 0
138	@ link register save eliminated.
139	ldr	r3, .L13
140	cmp	r0, #24
141	it	cc
142	movcc	r0, #24
143	ldr	r2, .L13+4
144	str	r0, [r3]
145	ldr	r3, .L13+8
146	ldrh	r3, [r3]
147	muls	r3, r0, r3
148	str	r3, [r2]
149	ldr	r2, .L13+12
150	ldrh	r2, [r2]
151	subs	r0, r2, r0
152	ldr	r2, .L13+16
153	strh	r0, [r2]	@ movhi
154	movs	r0, #0
155	ldr	r2, .L13+20
156	ldr	r2, [r2]
157	subs	r3, r2, r3
158	ldr	r2, .L13+24
159	str	r3, [r2]
160	bx	lr
161.L14:
162	.align	2
163.L13:
164	.word	.LANCHOR2
165	.word	.LANCHOR4
166	.word	.LANCHOR3
167	.word	.LANCHOR6
168	.word	.LANCHOR5
169	.word	.LANCHOR8
170	.word	.LANCHOR7
171	.size	FtlSysBlkNumInit, .-FtlSysBlkNumInit
172	.global	__aeabi_idiv
173	.section	.text.FtlConstantsInit,"ax",%progbits
174	.align	1
175	.global	FtlConstantsInit
176	.syntax unified
177	.thumb
178	.thumb_func
179	.fpu softvfp
180	.type	FtlConstantsInit, %function
181FtlConstantsInit:
182	@ args = 0, pretend = 0, frame = 8
183	@ frame_needed = 0, uses_anonymous_args = 0
184	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
185	mov	r3, r0
186	ldrh	r4, [r0]
187	ldr	r2, .L25
188	ldrh	r5, [r0, #2]
189	ldrh	r0, [r0, #4]
190	strh	r4, [r2]	@ movhi
191	ldr	r2, .L25+4
192	ldrh	r1, [r3, #6]
193	ldrh	r7, [r3, #14]
194	strh	r5, [r2]	@ movhi
195	ldr	r2, .L25+8
196	ldr	r6, .L25+12
197	cmp	r7, #4
198	strh	r0, [r2]	@ movhi
199	ldr	r2, .L25+16
200	strh	r7, [r6]	@ movhi
201	ldr	r7, .L25+20
202	strh	r1, [r2]	@ movhi
203	itttt	eq
204	lsreq	r1, r1, #1
205	strheq	r1, [r2]	@ movhi
206	moveq	r1, #8
207	strheq	r1, [r6]	@ movhi
208	movs	r1, #0
209.L17:
210	strb	r1, [r1, r7]
211	adds	r1, r1, #1
212	cmp	r1, #32
213	bne	.L17
214	ldr	r1, .L25+24
215	cmp	r4, #1
216	mov	r7, #5
217	smulbb	r5, r5, r0
218	mov	ip, #0
219	str	r3, [sp, #4]
220	strh	r7, [r1]	@ movhi
221	it	eq
222	strheq	r4, [r1]	@ movhi
223	mov	r4, #640
224	ldr	r1, .L25+28
225	uxth	r5, r5
226	ldr	r7, .L25+32
227	strh	r4, [r1]	@ movhi
228	ldrh	r4, [r2]
229	ldr	r1, .L25+36
230	ldr	r2, .L25+40
231	strh	ip, [r7]	@ movhi
232	smulbb	r0, r0, r4
233	strh	r5, [r1]	@ movhi
234	ldr	r7, .L25+44
235	uxth	r0, r0
236	strh	r0, [r2]	@ movhi
237	bl	Ftl_log2
238	ldr	r3, [sp, #4]
239	ldr	r2, .L25+48
240	ldrh	fp, [r6]
241	ldrh	r8, [r3, #12]
242	strh	r0, [r2]	@ movhi
243	ldr	r2, .L25+52
244	mov	r0, fp
245	strh	r8, [r7]	@ movhi
246	smulbb	r1, r5, r8
247	ldr	r6, .L25+56
248	strh	r8, [r2]	@ movhi
249	ldr	r2, .L25+60
250	strh	r1, [r2]	@ movhi
251	bl	Ftl_log2
252	lsl	r2, fp, #9
253	ldr	r1, .L25+64
254	ldr	r3, [sp, #4]
255	mov	r10, r0
256	uxth	r2, r2
257	strh	r0, [r6]	@ movhi
258	mov	r0, #5120
259	strh	r2, [r1]	@ movhi
260	lsrs	r2, r2, #8
261	ldr	r1, .L25+68
262	strh	r2, [r1]	@ movhi
263	mul	r1, r8, fp
264	ldrh	r2, [r3, #20]
265	ldr	r3, .L25+72
266	strh	r2, [r3]	@ movhi
267	mul	r3, r4, r5
268	ldr	r2, .L25+76
269	lsls	r4, r4, #6
270	str	r3, [r2]
271	mul	r3, fp, r3
272	ldr	r2, .L25+80
273	mul	r3, r8, r3
274	ldr	r8, .L25+116
275	asrs	r3, r3, #11
276	str	r3, [r2]
277	bl	__aeabi_idiv
278	uxth	r0, r0
279	ldr	r2, .L25+84
280	mov	r1, r5
281	cmp	r0, #4
282	itet	ls
283	movls	r3, #4
284	strhhi	r0, [r8]	@ movhi
285	strhls	r3, [r8]	@ movhi
286	mov	r3, #640
287	asr	r3, r3, r10
288	add	r10, r10, #9
289	asr	r4, r4, r10
290	ldr	r10, .L25+120
291	adds	r3, r3, #2
292	ldrh	r0, [r8]
293	strh	r3, [r2]	@ movhi
294	ldr	r3, .L25+88
295	strh	r4, [r3]	@ movhi
296	uxth	r4, r4
297	mul	r3, r5, r4
298	adds	r4, r4, #8
299	str	r3, [r10]
300	bl	__aeabi_uidiv
301	uxtah	r0, r4, r0
302	ldr	r4, .L25+92
303	cmp	r5, #1
304	it	eq
305	addeq	r0, r0, #4
306	str	r0, [r4]
307	ldrh	r0, [r4]
308	bl	FtlSysBlkNumInit
309	ldr	r2, [r4]
310	movs	r0, #0
311	ldr	r3, .L25+96
312	str	r2, [r3]
313	ldr	r3, .L25+100
314	ldr	r2, [r3]
315	ldrh	r3, [r7]
316	lsls	r2, r2, #2
317	muls	r3, r2, r3
318	ldrh	r2, [r6]
319	adds	r2, r2, #9
320	lsrs	r3, r3, r2
321	ldr	r2, .L25+104
322	adds	r3, r3, #2
323	strh	r3, [r2]	@ movhi
324	movs	r2, #32
325	ldr	r3, .L25+108
326	strh	r2, [r3]	@ movhi
327	ldr	r3, .L25+112
328	str	r0, [r3]
329	ldrh	r3, [r8]
330	adds	r3, r3, #3
331	strh	r3, [r8]	@ movhi
332	ldr	r3, [r10]
333	adds	r3, r3, #3
334	str	r3, [r10]
335	add	sp, sp, #8
336	@ sp needed
337	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
338.L26:
339	.align	2
340.L25:
341	.word	.LANCHOR9
342	.word	.LANCHOR10
343	.word	.LANCHOR11
344	.word	.LANCHOR12
345	.word	.LANCHOR6
346	.word	.LANCHOR13
347	.word	.LANCHOR14
348	.word	.LANCHOR16
349	.word	.LANCHOR15
350	.word	.LANCHOR3
351	.word	.LANCHOR17
352	.word	.LANCHOR19
353	.word	.LANCHOR18
354	.word	.LANCHOR20
355	.word	.LANCHOR22
356	.word	.LANCHOR21
357	.word	.LANCHOR23
358	.word	.LANCHOR24
359	.word	.LANCHOR25
360	.word	.LANCHOR8
361	.word	.LANCHOR26
362	.word	.LANCHOR28
363	.word	.LANCHOR29
364	.word	.LANCHOR2
365	.word	.LANCHOR31
366	.word	.LANCHOR7
367	.word	.LANCHOR32
368	.word	.LANCHOR33
369	.word	.LANCHOR34
370	.word	.LANCHOR27
371	.word	.LANCHOR30
372	.size	FtlConstantsInit, .-FtlConstantsInit
373	.section	.text.IsBlkInVendorPart,"ax",%progbits
374	.align	1
375	.global	IsBlkInVendorPart
376	.syntax unified
377	.thumb
378	.thumb_func
379	.fpu softvfp
380	.type	IsBlkInVendorPart, %function
381IsBlkInVendorPart:
382	@ args = 0, pretend = 0, frame = 0
383	@ frame_needed = 0, uses_anonymous_args = 0
384	@ link register save eliminated.
385	ldr	r3, .L34
386	ldrh	r3, [r3]
387	cbz	r3, .L33
388	ldr	r3, .L34+4
389	ldr	r2, .L34+8
390	ldr	r3, [r3]
391	ldrh	r2, [r2]
392	add	r2, r3, r2, lsl #1
393.L29:
394	cmp	r3, r2
395	bne	.L30
396.L33:
397	movs	r0, #0
398	bx	lr
399.L30:
400	ldrh	r1, [r3], #2
401	cmp	r0, r1
402	bne	.L29
403	movs	r0, #1
404	bx	lr
405.L35:
406	.align	2
407.L34:
408	.word	.LANCHOR35
409	.word	.LANCHOR36
410	.word	.LANCHOR27
411	.size	IsBlkInVendorPart, .-IsBlkInVendorPart
412	.section	.text.FtlCacheWriteBack,"ax",%progbits
413	.align	1
414	.global	FtlCacheWriteBack
415	.syntax unified
416	.thumb
417	.thumb_func
418	.fpu softvfp
419	.type	FtlCacheWriteBack, %function
420FtlCacheWriteBack:
421	@ args = 0, pretend = 0, frame = 0
422	@ frame_needed = 0, uses_anonymous_args = 0
423	@ link register save eliminated.
424	movs	r0, #0
425	bx	lr
426	.size	FtlCacheWriteBack, .-FtlCacheWriteBack
427	.section	.text.sftl_get_density,"ax",%progbits
428	.align	1
429	.global	sftl_get_density
430	.syntax unified
431	.thumb
432	.thumb_func
433	.fpu softvfp
434	.type	sftl_get_density, %function
435sftl_get_density:
436	@ args = 0, pretend = 0, frame = 0
437	@ frame_needed = 0, uses_anonymous_args = 0
438	@ link register save eliminated.
439	ldr	r3, .L38
440	ldr	r0, [r3]
441	bx	lr
442.L39:
443	.align	2
444.L38:
445	.word	.LANCHOR34
446	.size	sftl_get_density, .-sftl_get_density
447	.global	__aeabi_uidivmod
448	.section	.text.FtlBbmMapBadBlock,"ax",%progbits
449	.align	1
450	.global	FtlBbmMapBadBlock
451	.syntax unified
452	.thumb
453	.thumb_func
454	.fpu softvfp
455	.type	FtlBbmMapBadBlock, %function
456FtlBbmMapBadBlock:
457	@ args = 0, pretend = 0, frame = 0
458	@ frame_needed = 0, uses_anonymous_args = 0
459	ldr	r3, .L41
460	push	{r0, r1, r2, r4, r5, r6, r7, lr}
461	mov	r5, r0
462	ldrh	r4, [r3]
463	mov	r1, r4
464	bl	__aeabi_uidiv
465	mov	r1, r4
466	ldr	r4, .L41+4
467	uxth	r6, r0
468	mov	r0, r5
469	bl	__aeabi_uidivmod
470	add	r2, r4, r6, lsl #2
471	uxth	r3, r1
472	ldr	r2, [r2, #28]
473	lsrs	r1, r3, #5
474	and	r7, r3, #31
475	movs	r0, #1
476	lsls	r0, r0, r7
477	ldr	r7, [r2, r1, lsl #2]
478	orrs	r0, r0, r7
479	str	r0, [r2, r1, lsl #2]
480	mov	r2, r6
481	str	r0, [sp]
482	mov	r1, r5
483	ldr	r0, .L41+8
484	bl	printf
485	ldrh	r3, [r4, #6]
486	movs	r0, #0
487	adds	r3, r3, #1
488	strh	r3, [r4, #6]	@ movhi
489	add	sp, sp, #12
490	@ sp needed
491	pop	{r4, r5, r6, r7, pc}
492.L42:
493	.align	2
494.L41:
495	.word	.LANCHOR17
496	.word	.LANCHOR37
497	.word	.LC0
498	.size	FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
499	.section	.text.FtlBbmIsBadBlock,"ax",%progbits
500	.align	1
501	.global	FtlBbmIsBadBlock
502	.syntax unified
503	.thumb
504	.thumb_func
505	.fpu softvfp
506	.type	FtlBbmIsBadBlock, %function
507FtlBbmIsBadBlock:
508	@ args = 0, pretend = 0, frame = 0
509	@ frame_needed = 0, uses_anonymous_args = 0
510	ldr	r3, .L44
511	push	{r4, r5, r6, lr}
512	mov	r6, r0
513	ldrh	r5, [r3]
514	mov	r1, r5
515	bl	__aeabi_uidivmod
516	mov	r0, r6
517	uxth	r4, r1
518	mov	r1, r5
519	bl	__aeabi_uidiv
520	ldr	r3, .L44+4
521	uxth	r0, r0
522	lsrs	r2, r4, #5
523	and	r4, r4, #31
524	add	r0, r3, r0, lsl #2
525	ldr	r3, [r0, #28]
526	ldr	r0, [r3, r2, lsl #2]
527	lsrs	r0, r0, r4
528	and	r0, r0, #1
529	pop	{r4, r5, r6, pc}
530.L45:
531	.align	2
532.L44:
533	.word	.LANCHOR17
534	.word	.LANCHOR37
535	.size	FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
536	.section	.text.FtlBbtInfoPrint,"ax",%progbits
537	.align	1
538	.global	FtlBbtInfoPrint
539	.syntax unified
540	.thumb
541	.thumb_func
542	.fpu softvfp
543	.type	FtlBbtInfoPrint, %function
544FtlBbtInfoPrint:
545	@ args = 0, pretend = 0, frame = 0
546	@ frame_needed = 0, uses_anonymous_args = 0
547	@ link register save eliminated.
548	bx	lr
549	.size	FtlBbtInfoPrint, .-FtlBbtInfoPrint
550	.section	.text.V2P_block,"ax",%progbits
551	.align	1
552	.global	V2P_block
553	.syntax unified
554	.thumb
555	.thumb_func
556	.fpu softvfp
557	.type	V2P_block, %function
558V2P_block:
559	@ args = 0, pretend = 0, frame = 0
560	@ frame_needed = 0, uses_anonymous_args = 0
561	push	{r3, r4, r5, r6, r7, lr}
562	mov	r5, r1
563	ldr	r3, .L48
564	mov	r7, r0
565	ldrh	r6, [r3]
566	mov	r1, r6
567	bl	__aeabi_uidiv
568	ldr	r3, .L48+4
569	smulbb	r5, r6, r5
570	mov	r1, r6
571	ldrh	r4, [r3]
572	smulbb	r4, r4, r0
573	mov	r0, r7
574	bl	__aeabi_uidivmod
575	adds	r0, r5, r1
576	add	r0, r0, r4
577	uxth	r0, r0
578	pop	{r3, r4, r5, r6, r7, pc}
579.L49:
580	.align	2
581.L48:
582	.word	.LANCHOR11
583	.word	.LANCHOR17
584	.size	V2P_block, .-V2P_block
585	.section	.text.P2V_plane,"ax",%progbits
586	.align	1
587	.global	P2V_plane
588	.syntax unified
589	.thumb
590	.thumb_func
591	.fpu softvfp
592	.type	P2V_plane, %function
593P2V_plane:
594	@ args = 0, pretend = 0, frame = 0
595	@ frame_needed = 0, uses_anonymous_args = 0
596	ldr	r3, .L51
597	push	{r4, r5, r6, lr}
598	mov	r6, r0
599	ldrh	r5, [r3]
600	ldr	r3, .L51+4
601	ldrh	r1, [r3]
602	bl	__aeabi_uidiv
603	smulbb	r4, r0, r5
604	mov	r1, r5
605	mov	r0, r6
606	bl	__aeabi_uidivmod
607	add	r1, r1, r4
608	uxth	r0, r1
609	pop	{r4, r5, r6, pc}
610.L52:
611	.align	2
612.L51:
613	.word	.LANCHOR11
614	.word	.LANCHOR17
615	.size	P2V_plane, .-P2V_plane
616	.section	.text.P2V_block_in_plane,"ax",%progbits
617	.align	1
618	.global	P2V_block_in_plane
619	.syntax unified
620	.thumb
621	.thumb_func
622	.fpu softvfp
623	.type	P2V_block_in_plane, %function
624P2V_block_in_plane:
625	@ args = 0, pretend = 0, frame = 0
626	@ frame_needed = 0, uses_anonymous_args = 0
627	push	{r3, lr}
628	ldr	r3, .L54
629	ldrh	r1, [r3]
630	bl	__aeabi_uidivmod
631	ldr	r3, .L54+4
632	uxth	r0, r1
633	ldrh	r1, [r3]
634	bl	__aeabi_uidiv
635	uxth	r0, r0
636	pop	{r3, pc}
637.L55:
638	.align	2
639.L54:
640	.word	.LANCHOR17
641	.word	.LANCHOR11
642	.size	P2V_block_in_plane, .-P2V_block_in_plane
643	.section	.text.ftl_cmp_data_ver,"ax",%progbits
644	.align	1
645	.global	ftl_cmp_data_ver
646	.syntax unified
647	.thumb
648	.thumb_func
649	.fpu softvfp
650	.type	ftl_cmp_data_ver, %function
651ftl_cmp_data_ver:
652	@ args = 0, pretend = 0, frame = 0
653	@ frame_needed = 0, uses_anonymous_args = 0
654	@ link register save eliminated.
655	cmp	r0, r1
656	bls	.L57
657	subs	r0, r0, r1
658	cmp	r0, #-2147483648
659	ite	hi
660	movhi	r0, #0
661	movls	r0, #1
662	bx	lr
663.L57:
664	subs	r0, r1, r0
665	cmp	r0, #-2147483648
666	ite	ls
667	movls	r0, #0
668	movhi	r0, #1
669	bx	lr
670	.size	ftl_cmp_data_ver, .-ftl_cmp_data_ver
671	.section	.text.FtlFreeSysBlkQueueEmpty,"ax",%progbits
672	.align	1
673	.global	FtlFreeSysBlkQueueEmpty
674	.syntax unified
675	.thumb
676	.thumb_func
677	.fpu softvfp
678	.type	FtlFreeSysBlkQueueEmpty, %function
679FtlFreeSysBlkQueueEmpty:
680	@ args = 0, pretend = 0, frame = 0
681	@ frame_needed = 0, uses_anonymous_args = 0
682	@ link register save eliminated.
683	ldr	r3, .L60
684	ldrh	r0, [r3, #6]
685	clz	r0, r0
686	lsrs	r0, r0, #5
687	bx	lr
688.L61:
689	.align	2
690.L60:
691	.word	.LANCHOR38
692	.size	FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
693	.section	.text.FtlFreeSysBlkQueueFull,"ax",%progbits
694	.align	1
695	.global	FtlFreeSysBlkQueueFull
696	.syntax unified
697	.thumb
698	.thumb_func
699	.fpu softvfp
700	.type	FtlFreeSysBlkQueueFull, %function
701FtlFreeSysBlkQueueFull:
702	@ args = 0, pretend = 0, frame = 0
703	@ frame_needed = 0, uses_anonymous_args = 0
704	@ link register save eliminated.
705	ldr	r3, .L63
706	ldrh	r0, [r3, #6]
707	sub	r3, r0, #1024
708	rsbs	r0, r3, #0
709	adcs	r0, r0, r3
710	bx	lr
711.L64:
712	.align	2
713.L63:
714	.word	.LANCHOR38
715	.size	FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
716	.section	.text.FtlFreeSysBLkSort,"ax",%progbits
717	.align	1
718	.global	FtlFreeSysBLkSort
719	.syntax unified
720	.thumb
721	.thumb_func
722	.fpu softvfp
723	.type	FtlFreeSysBLkSort, %function
724FtlFreeSysBLkSort:
725	@ args = 0, pretend = 0, frame = 0
726	@ frame_needed = 0, uses_anonymous_args = 0
727	ldr	r3, .L74
728	push	{r4, r5, r6, lr}
729	ldrh	r2, [r3, #6]
730	cbz	r2, .L65
731	ldr	r2, .L74+4
732	movs	r6, #0
733	ldrh	r1, [r3, #2]
734	mov	r5, r6
735	ldrh	r4, [r2, #28]
736	ldrh	r2, [r3, #4]
737	and	r4, r4, #31
738.L67:
739	uxth	r0, r6
740	adds	r6, r6, #1
741	cmp	r4, r0
742	bgt	.L68
743	cbz	r5, .L65
744	strh	r1, [r3, #2]	@ movhi
745	strh	r2, [r3, #4]	@ movhi
746.L65:
747	pop	{r4, r5, r6, pc}
748.L68:
749	adds	r0, r1, #4
750	adds	r1, r1, #1
751	ldrh	r5, [r3, r0, lsl #1]
752	adds	r0, r2, #4
753	ubfx	r1, r1, #0, #10
754	strh	r5, [r3, r0, lsl #1]	@ movhi
755	movs	r5, #1
756	add	r2, r2, r5
757	ubfx	r2, r2, #0, #10
758	b	.L67
759.L75:
760	.align	2
761.L74:
762	.word	.LANCHOR38
763	.word	.LANCHOR39
764	.size	FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
765	.section	.text.IsInFreeQueue,"ax",%progbits
766	.align	1
767	.global	IsInFreeQueue
768	.syntax unified
769	.thumb
770	.thumb_func
771	.fpu softvfp
772	.type	IsInFreeQueue, %function
773IsInFreeQueue:
774	@ args = 0, pretend = 0, frame = 0
775	@ frame_needed = 0, uses_anonymous_args = 0
776	ldr	r3, .L82
777	push	{r4, r5, lr}
778	ldrh	r4, [r3, #6]
779	cmp	r4, #1024
780	beq	.L80
781	ldrh	r5, [r3, #2]
782	movs	r1, #0
783.L78:
784	cmp	r1, r4
785	bcc	.L79
786.L80:
787	movs	r0, #0
788	pop	{r4, r5, pc}
789.L79:
790	adds	r2, r1, r5
791	ubfx	r2, r2, #0, #10
792	adds	r2, r2, #4
793	ldrh	r2, [r3, r2, lsl #1]
794	cmp	r2, r0
795	beq	.L81
796	adds	r1, r1, #1
797	b	.L78
798.L81:
799	movs	r0, #1
800	pop	{r4, r5, pc}
801.L83:
802	.align	2
803.L82:
804	.word	.LANCHOR38
805	.size	IsInFreeQueue, .-IsInFreeQueue
806	.section	.text.insert_data_list,"ax",%progbits
807	.align	1
808	.global	insert_data_list
809	.syntax unified
810	.thumb
811	.thumb_func
812	.fpu softvfp
813	.type	insert_data_list, %function
814insert_data_list:
815	@ args = 0, pretend = 0, frame = 16
816	@ frame_needed = 0, uses_anonymous_args = 0
817	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
818	ldr	r3, .L100
819	ldrh	lr, [r3]
820	cmp	lr, r0
821	bls	.L86
822	ldr	r3, .L100+4
823	movs	r5, #6
824	ldr	r4, [r3]
825	mul	r3, r5, r0
826	str	r3, [sp, #4]
827	adds	r1, r4, r3
828	ldr	r2, [sp, #4]
829	movw	r3, #65535
830	strh	r3, [r1, #2]	@ movhi
831	strh	r3, [r4, r2]	@ movhi
832	ldr	r3, .L100+8
833	ldr	ip, [r3]
834	cmp	ip, #0
835	bne	.L87
836.L99:
837	str	r1, [r3]
838.L86:
839	movs	r0, #0
840	add	sp, sp, #16
841	@ sp needed
842	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
843.L87:
844	ldr	r3, .L100+12
845	lsls	r2, r0, #1
846	ldr	r3, [r3]
847	str	r3, [sp, #8]
848	ldrh	r6, [r3, r0, lsl #1]
849	ldrh	r3, [r1, #4]
850	cbz	r3, .L97
851	mul	fp, r3, r6
852.L88:
853	sub	r3, ip, r4
854	asrs	r6, r3, #1
855	ldr	r3, .L100+16
856	muls	r3, r6, r3
857	ldr	r6, .L100+20
858	ldr	r8, [r6]
859	movs	r6, #0
860	uxth	r3, r3
861	add	r2, r8, r2
862	str	r2, [sp, #12]
863	mov	r2, ip
864.L95:
865	adds	r6, r6, #1
866	uxth	r6, r6
867	cmp	lr, r6
868	bcc	.L86
869	cmp	r3, r0
870	beq	.L86
871	ldr	r7, [sp, #8]
872	lsl	r10, r3, #1
873	ldrh	r7, [r7, r3, lsl #1]
874	mov	r5, r7
875	ldrh	r7, [r2, #4]
876	cbz	r7, .L98
877	muls	r7, r5, r7
878.L90:
879	cmp	fp, r7
880	bne	.L91
881	ldr	r5, [sp, #12]
882	ldrh	r10, [r8, r10]
883	ldrh	r7, [r5]
884	cmp	r10, r7
885	bcc	.L93
886.L92:
887	ldr	r5, [sp, #4]
888	cmp	r2, ip
889	strh	r3, [r4, r5]	@ movhi
890	ldrh	r3, [r2, #2]
891	strh	r3, [r1, #2]	@ movhi
892	bne	.L96
893	strh	r0, [r2, #2]	@ movhi
894	ldr	r3, .L100+8
895	b	.L99
896.L97:
897	mov	fp, #-1
898	b	.L88
899.L98:
900	mov	r7, #-1
901	b	.L90
902.L91:
903	bcc	.L92
904.L93:
905	ldrh	r7, [r2]
906	movw	r5, #65535
907	cmp	r7, r5
908	bne	.L94
909	strh	r3, [r1, #2]	@ movhi
910	strh	r0, [r2]	@ movhi
911	ldr	r3, .L100+24
912	b	.L99
913.L94:
914	movs	r3, #6
915	mla	r2, r3, r7, r4
916	mov	r3, r7
917	b	.L95
918.L96:
919	ldrh	r1, [r2, #2]
920	movs	r3, #6
921	muls	r3, r1, r3
922	strh	r0, [r4, r3]	@ movhi
923	strh	r0, [r2, #2]	@ movhi
924	b	.L86
925.L101:
926	.align	2
927.L100:
928	.word	.LANCHOR5
929	.word	.LANCHOR40
930	.word	.LANCHOR41
931	.word	.LANCHOR42
932	.word	-1431655765
933	.word	.LANCHOR43
934	.word	.LANCHOR44
935	.size	insert_data_list, .-insert_data_list
936	.section	.text.INSERT_DATA_LIST,"ax",%progbits
937	.align	1
938	.global	INSERT_DATA_LIST
939	.syntax unified
940	.thumb
941	.thumb_func
942	.fpu softvfp
943	.type	INSERT_DATA_LIST, %function
944INSERT_DATA_LIST:
945	@ args = 0, pretend = 0, frame = 0
946	@ frame_needed = 0, uses_anonymous_args = 0
947	push	{r3, lr}
948	bl	insert_data_list
949	ldr	r2, .L104
950	ldrh	r3, [r2]
951	adds	r3, r3, #1
952	uxth	r3, r3
953	strh	r3, [r2]	@ movhi
954	ldr	r2, .L104+4
955	ldrh	r2, [r2]
956	cmp	r2, r3
957	bcs	.L102
958	movs	r2, #214
959	ldr	r1, .L104+8
960	ldr	r0, .L104+12
961	pop	{r3, lr}
962	b	printf
963.L102:
964	pop	{r3, pc}
965.L105:
966	.align	2
967.L104:
968	.word	.LANCHOR45
969	.word	.LANCHOR5
970	.word	.LANCHOR46
971	.word	.LC1
972	.size	INSERT_DATA_LIST, .-INSERT_DATA_LIST
973	.section	.text.insert_free_list,"ax",%progbits
974	.align	1
975	.global	insert_free_list
976	.syntax unified
977	.thumb
978	.thumb_func
979	.fpu softvfp
980	.type	insert_free_list, %function
981insert_free_list:
982	@ args = 0, pretend = 0, frame = 0
983	@ frame_needed = 0, uses_anonymous_args = 0
984	movw	r1, #65535
985	push	{r4, r5, r6, r7, r8, r10, fp, lr}
986	cmp	r0, r1
987	beq	.L107
988	ldr	r3, .L113
989	mov	r10, #6
990	mul	r7, r10, r0
991	ldr	r4, [r3]
992	ldr	r3, .L113+4
993	adds	r5, r4, r7
994	ldr	r6, [r3]
995	mov	lr, r3
996	strh	r1, [r5, #2]	@ movhi
997	strh	r1, [r4, r7]	@ movhi
998	cbnz	r6, .L108
999	str	r5, [r3]
1000.L107:
1001	movs	r0, #0
1002	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1003.L108:
1004	ldr	r3, .L113+8
1005	subs	r2, r6, r4
1006	mov	fp, r1
1007	ldr	ip, [r3]
1008	asrs	r3, r2, #1
1009	ldr	r2, .L113+12
1010	ldrh	r8, [ip, r0, lsl #1]
1011	muls	r2, r3, r2
1012	mov	r3, r6
1013	uxth	r2, r2
1014.L111:
1015	ldrh	r1, [ip, r2, lsl #1]
1016	cmp	r1, r8
1017	bcs	.L109
1018	ldrh	r1, [r3]
1019	cmp	r1, fp
1020	bne	.L110
1021	strh	r2, [r5, #2]	@ movhi
1022	strh	r0, [r3]	@ movhi
1023	b	.L107
1024.L110:
1025	mla	r3, r10, r1, r4
1026	mov	r2, r1
1027	b	.L111
1028.L109:
1029	ldrh	r1, [r3, #2]
1030	cmp	r3, r6
1031	strh	r1, [r5, #2]	@ movhi
1032	it	ne
1033	ldrhne	r1, [r3, #2]
1034	strh	r2, [r4, r7]	@ movhi
1035	iteet	ne
1036	movne	r2, #6
1037	strheq	r0, [r3, #2]	@ movhi
1038	streq	r5, [lr]
1039	mulne	r2, r2, r1
1040	itt	ne
1041	strhne	r0, [r4, r2]	@ movhi
1042	strhne	r0, [r3, #2]	@ movhi
1043	b	.L107
1044.L114:
1045	.align	2
1046.L113:
1047	.word	.LANCHOR40
1048	.word	.LANCHOR47
1049	.word	.LANCHOR43
1050	.word	-1431655765
1051	.size	insert_free_list, .-insert_free_list
1052	.section	.text.INSERT_FREE_LIST,"ax",%progbits
1053	.align	1
1054	.global	INSERT_FREE_LIST
1055	.syntax unified
1056	.thumb
1057	.thumb_func
1058	.fpu softvfp
1059	.type	INSERT_FREE_LIST, %function
1060INSERT_FREE_LIST:
1061	@ args = 0, pretend = 0, frame = 0
1062	@ frame_needed = 0, uses_anonymous_args = 0
1063	push	{r3, lr}
1064	bl	insert_free_list
1065	ldr	r2, .L117
1066	ldrh	r3, [r2]
1067	adds	r3, r3, #1
1068	uxth	r3, r3
1069	strh	r3, [r2]	@ movhi
1070	ldr	r2, .L117+4
1071	ldrh	r2, [r2]
1072	cmp	r2, r3
1073	bcs	.L115
1074	movs	r2, #207
1075	ldr	r1, .L117+8
1076	ldr	r0, .L117+12
1077	pop	{r3, lr}
1078	b	printf
1079.L115:
1080	pop	{r3, pc}
1081.L118:
1082	.align	2
1083.L117:
1084	.word	.LANCHOR48
1085	.word	.LANCHOR5
1086	.word	.LANCHOR49
1087	.word	.LC1
1088	.size	INSERT_FREE_LIST, .-INSERT_FREE_LIST
1089	.section	.text.List_remove_node,"ax",%progbits
1090	.align	1
1091	.global	List_remove_node
1092	.syntax unified
1093	.thumb
1094	.thumb_func
1095	.fpu softvfp
1096	.type	List_remove_node, %function
1097List_remove_node:
1098	@ args = 0, pretend = 0, frame = 0
1099	@ frame_needed = 0, uses_anonymous_args = 0
1100	push	{r4, r5, r6, r7, r8, lr}
1101	movs	r6, #6
1102	ldr	r5, .L125
1103	muls	r6, r1, r6
1104	movw	r3, #65535
1105	mov	r8, r0
1106	ldr	r7, [r5]
1107	adds	r4, r7, r6
1108	ldrh	r2, [r4, #2]
1109	cmp	r2, r3
1110	bne	.L120
1111	ldr	r3, [r0]
1112	cmp	r4, r3
1113	beq	.L120
1114	mov	r2, #372
1115	ldr	r1, .L125+4
1116	ldr	r0, .L125+8
1117	bl	printf
1118.L120:
1119	ldr	r3, [r8]
1120	movw	r1, #65535
1121	cmp	r4, r3
1122	ldrh	r3, [r7, r6]
1123	bne	.L121
1124	cmp	r3, r1
1125	ittee	ne
1126	ldrne	r0, [r5]
1127	movne	r2, #6
1128	moveq	r3, #0
1129	streq	r3, [r8]
1130	ittt	ne
1131	mlane	r3, r2, r3, r0
1132	strne	r3, [r8]
1133	strhne	r1, [r3, #2]	@ movhi
1134.L123:
1135	movw	r3, #65535
1136	movs	r0, #0
1137	strh	r3, [r7, r6]	@ movhi
1138	strh	r3, [r4, #2]	@ movhi
1139	pop	{r4, r5, r6, r7, r8, pc}
1140.L121:
1141	cmp	r3, r1
1142	ldrh	r1, [r4, #2]
1143	bne	.L124
1144	cmp	r1, r3
1145	beq	.L123
1146	movs	r2, #6
1147	ldr	r0, [r5]
1148	muls	r1, r2, r1
1149	strh	r3, [r0, r1]	@ movhi
1150	b	.L123
1151.L124:
1152	ldr	r0, [r5]
1153	movs	r2, #6
1154	mla	r5, r2, r3, r0
1155	strh	r1, [r5, #2]	@ movhi
1156	ldrh	r1, [r4, #2]
1157	muls	r2, r1, r2
1158	strh	r3, [r0, r2]	@ movhi
1159	b	.L123
1160.L126:
1161	.align	2
1162.L125:
1163	.word	.LANCHOR40
1164	.word	.LANCHOR50
1165	.word	.LC1
1166	.size	List_remove_node, .-List_remove_node
1167	.section	.text.List_pop_index_node,"ax",%progbits
1168	.align	1
1169	.global	List_pop_index_node
1170	.syntax unified
1171	.thumb
1172	.thumb_func
1173	.fpu softvfp
1174	.type	List_pop_index_node, %function
1175List_pop_index_node:
1176	@ args = 0, pretend = 0, frame = 0
1177	@ frame_needed = 0, uses_anonymous_args = 0
1178	ldr	r3, [r0]
1179	push	{r4, r5, r6, lr}
1180	cbz	r3, .L133
1181	ldr	r2, .L134
1182	movw	r5, #65535
1183	movs	r6, #6
1184	ldr	r2, [r2]
1185.L129:
1186	cbnz	r1, .L130
1187.L132:
1188	ldr	r4, .L134+4
1189	subs	r3, r3, r2
1190	asrs	r3, r3, #1
1191	muls	r4, r3, r4
1192	uxth	r1, r4
1193	bl	List_remove_node
1194	uxth	r0, r4
1195	pop	{r4, r5, r6, pc}
1196.L130:
1197	ldrh	r4, [r3]
1198	cmp	r4, r5
1199	beq	.L132
1200	subs	r1, r1, #1
1201	mla	r3, r6, r4, r2
1202	uxth	r1, r1
1203	b	.L129
1204.L133:
1205	movw	r0, #65535
1206	pop	{r4, r5, r6, pc}
1207.L135:
1208	.align	2
1209.L134:
1210	.word	.LANCHOR40
1211	.word	-1431655765
1212	.size	List_pop_index_node, .-List_pop_index_node
1213	.section	.text.List_pop_head_node,"ax",%progbits
1214	.align	1
1215	.global	List_pop_head_node
1216	.syntax unified
1217	.thumb
1218	.thumb_func
1219	.fpu softvfp
1220	.type	List_pop_head_node, %function
1221List_pop_head_node:
1222	@ args = 0, pretend = 0, frame = 0
1223	@ frame_needed = 0, uses_anonymous_args = 0
1224	@ link register save eliminated.
1225	movs	r1, #0
1226	b	List_pop_index_node
1227	.size	List_pop_head_node, .-List_pop_head_node
1228	.section	.text.List_get_gc_head_node,"ax",%progbits
1229	.align	1
1230	.global	List_get_gc_head_node
1231	.syntax unified
1232	.thumb
1233	.thumb_func
1234	.fpu softvfp
1235	.type	List_get_gc_head_node, %function
1236List_get_gc_head_node:
1237	@ args = 0, pretend = 0, frame = 0
1238	@ frame_needed = 0, uses_anonymous_args = 0
1239	ldr	r3, .L143
1240	push	{r4, lr}
1241	ldr	r3, [r3]
1242	cbz	r3, .L142
1243	ldr	r2, .L143+4
1244	movs	r4, #6
1245	ldr	r1, [r2]
1246	movw	r2, #65535
1247.L139:
1248	cbz	r0, .L140
1249	ldrh	r3, [r3]
1250	cmp	r3, r2
1251	bne	.L141
1252.L142:
1253	movw	r0, #65535
1254	pop	{r4, pc}
1255.L141:
1256	subs	r0, r0, #1
1257	mla	r3, r4, r3, r1
1258	uxth	r0, r0
1259	b	.L139
1260.L140:
1261	ldr	r0, .L143+8
1262	subs	r3, r3, r1
1263	asrs	r3, r3, #1
1264	muls	r3, r0, r3
1265	uxth	r0, r3
1266	pop	{r4, pc}
1267.L144:
1268	.align	2
1269.L143:
1270	.word	.LANCHOR41
1271	.word	.LANCHOR40
1272	.word	-1431655765
1273	.size	List_get_gc_head_node, .-List_get_gc_head_node
1274	.section	.text.List_update_data_list,"ax",%progbits
1275	.align	1
1276	.global	List_update_data_list
1277	.syntax unified
1278	.thumb
1279	.thumb_func
1280	.fpu softvfp
1281	.type	List_update_data_list, %function
1282List_update_data_list:
1283	@ args = 0, pretend = 0, frame = 0
1284	@ frame_needed = 0, uses_anonymous_args = 0
1285	ldr	r3, .L156
1286	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1287	mov	r4, r0
1288	ldrh	r3, [r3]
1289	cmp	r3, r0
1290	beq	.L147
1291	ldr	r3, .L156+4
1292	ldrh	r3, [r3]
1293	cmp	r3, r0
1294	beq	.L147
1295	ldr	r3, .L156+8
1296	ldrh	r3, [r3]
1297	cmp	r3, r0
1298	beq	.L147
1299	ldr	r7, .L156+12
1300	movs	r6, #6
1301	ldr	r3, .L156+16
1302	muls	r6, r0, r6
1303	ldr	fp, [r7]
1304	ldr	r3, [r3]
1305	add	r10, fp, r6
1306	cmp	r10, r3
1307	beq	.L147
1308	ldr	r3, .L156+20
1309	ldrh	r5, [r10, #4]
1310	ldr	r2, [r3]
1311	mov	r8, r3
1312	ldrh	r2, [r2, r0, lsl #1]
1313	cmp	r5, #0
1314	beq	.L154
1315	muls	r5, r2, r5
1316.L149:
1317	ldrh	r3, [r10, #2]
1318	movw	r2, #65535
1319	cmp	r3, r2
1320	bne	.L150
1321	ldrh	r2, [fp, r6]
1322	cmp	r2, r3
1323	bne	.L150
1324	movw	r2, #463
1325	ldr	r1, .L156+24
1326	ldr	r0, .L156+28
1327	bl	printf
1328.L150:
1329	ldrh	r3, [r10, #2]
1330	movw	r2, #65535
1331	cmp	r3, r2
1332	bne	.L151
1333	ldrh	r2, [fp, r6]
1334	cmp	r2, r3
1335	beq	.L147
1336.L151:
1337	movs	r2, #6
1338	muls	r2, r3, r2
1339	ldr	r3, .L156+32
1340	asrs	r1, r2, #1
1341	muls	r3, r1, r3
1342	ldr	r1, [r8]
1343	ldrh	r0, [r1, r3, lsl #1]
1344	ldr	r1, [r7]
1345	add	r2, r2, r1
1346	ldrh	r3, [r2, #4]
1347	cbz	r3, .L155
1348	muls	r3, r0, r3
1349.L152:
1350	cmp	r5, r3
1351	bcs	.L147
1352	ldr	r5, .L156+36
1353	mov	r1, r4
1354	ldr	r0, .L156+16
1355	bl	List_remove_node
1356	ldrh	r3, [r5]
1357	cbnz	r3, .L153
1358	mov	r2, #474
1359	ldr	r1, .L156+24
1360	ldr	r0, .L156+28
1361	bl	printf
1362.L153:
1363	ldrh	r3, [r5]
1364	mov	r0, r4
1365	subs	r3, r3, #1
1366	strh	r3, [r5]	@ movhi
1367	bl	INSERT_DATA_LIST
1368.L147:
1369	movs	r0, #0
1370	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1371.L154:
1372	mov	r5, #-1
1373	b	.L149
1374.L155:
1375	mov	r3, #-1
1376	b	.L152
1377.L157:
1378	.align	2
1379.L156:
1380	.word	.LANCHOR51
1381	.word	.LANCHOR52
1382	.word	.LANCHOR53
1383	.word	.LANCHOR40
1384	.word	.LANCHOR41
1385	.word	.LANCHOR42
1386	.word	.LANCHOR54
1387	.word	.LC1
1388	.word	-1431655765
1389	.word	.LANCHOR45
1390	.size	List_update_data_list, .-List_update_data_list
1391	.section	.text.select_l2p_ram_region,"ax",%progbits
1392	.align	1
1393	.global	select_l2p_ram_region
1394	.syntax unified
1395	.thumb
1396	.thumb_func
1397	.fpu softvfp
1398	.type	select_l2p_ram_region, %function
1399select_l2p_ram_region:
1400	@ args = 0, pretend = 0, frame = 0
1401	@ frame_needed = 0, uses_anonymous_args = 0
1402	push	{r3, r4, r5, r6, r7, lr}
1403	movs	r1, #0
1404	ldr	r3, .L168
1405	movs	r0, #12
1406	movw	r5, #65535
1407	ldrh	r2, [r3]
1408	ldr	r3, .L168+4
1409	ldr	r3, [r3]
1410.L159:
1411	uxth	r4, r1
1412	cmp	r4, r2
1413	bcc	.L161
1414	mov	r4, r2
1415	movs	r1, #0
1416	mov	r6, #-2147483648
1417	movs	r7, #12
1418.L162:
1419	uxth	r5, r1
1420	cmp	r5, r2
1421	bcc	.L164
1422	cmp	r4, r2
1423	bcc	.L160
1424	ldr	r1, .L168+8
1425	mov	r4, r2
1426	mov	r0, #-1
1427	ldrh	r7, [r1]
1428	movs	r1, #0
1429.L165:
1430	uxth	r5, r1
1431	cmp	r5, r2
1432	bcc	.L167
1433	cmp	r4, r2
1434	bcc	.L160
1435	movw	r2, #789
1436	ldr	r1, .L168+12
1437	ldr	r0, .L168+16
1438	bl	printf
1439	b	.L160
1440.L161:
1441	adds	r1, r1, #1
1442	mla	r6, r0, r1, r3
1443	ldrh	r6, [r6, #-12]
1444	cmp	r6, r5
1445	bne	.L159
1446.L160:
1447	mov	r0, r4
1448	pop	{r3, r4, r5, r6, r7, pc}
1449.L164:
1450	mla	r0, r7, r1, r3
1451	ldr	r0, [r0, #4]
1452	cmp	r0, #0
1453	blt	.L163
1454	cmp	r6, r0
1455	itt	hi
1456	movhi	r6, r0
1457	movhi	r4, r5
1458.L163:
1459	adds	r1, r1, #1
1460	b	.L162
1461.L167:
1462	ldr	r6, [r3, #4]
1463	cmp	r0, r6
1464	bls	.L166
1465	ldrh	ip, [r3]
1466	cmp	ip, r7
1467	itt	ne
1468	movne	r0, r6
1469	movne	r4, r5
1470.L166:
1471	adds	r1, r1, #1
1472	adds	r3, r3, #12
1473	b	.L165
1474.L169:
1475	.align	2
1476.L168:
1477	.word	.LANCHOR33
1478	.word	.LANCHOR55
1479	.word	.LANCHOR56
1480	.word	.LANCHOR57
1481	.word	.LC1
1482	.size	select_l2p_ram_region, .-select_l2p_ram_region
1483	.section	.text.FtlUpdateVaildLpn,"ax",%progbits
1484	.align	1
1485	.global	FtlUpdateVaildLpn
1486	.syntax unified
1487	.thumb
1488	.thumb_func
1489	.fpu softvfp
1490	.type	FtlUpdateVaildLpn, %function
1491FtlUpdateVaildLpn:
1492	@ args = 0, pretend = 0, frame = 0
1493	@ frame_needed = 0, uses_anonymous_args = 0
1494	ldr	r2, .L180
1495	push	{r4, r5, r6, lr}
1496	mov	r1, r2
1497	ldrh	r3, [r2]
1498	cmp	r3, #4
1499	bhi	.L171
1500	cbnz	r0, .L171
1501	adds	r3, r3, #1
1502	strh	r3, [r2]	@ movhi
1503	pop	{r4, r5, r6, pc}
1504.L171:
1505	movs	r3, #0
1506	ldr	r0, .L180+4
1507	strh	r3, [r1]	@ movhi
1508	movw	r6, #65535
1509	ldr	r1, .L180+8
1510	ldrh	r4, [r0]
1511	mov	r0, r3
1512	ldr	r2, .L180+12
1513	ldr	r1, [r1]
1514	str	r3, [r2]
1515	add	r4, r1, r4, lsl #1
1516.L172:
1517	cmp	r1, r4
1518	bne	.L174
1519	cbz	r3, .L170
1520	str	r0, [r2]
1521.L170:
1522	pop	{r4, r5, r6, pc}
1523.L174:
1524	ldrh	r5, [r1], #2
1525	cmp	r5, r6
1526	itt	ne
1527	addne	r0, r0, r5
1528	movne	r3, #1
1529	b	.L172
1530.L181:
1531	.align	2
1532.L180:
1533	.word	.LANCHOR58
1534	.word	.LANCHOR5
1535	.word	.LANCHOR42
1536	.word	.LANCHOR59
1537	.size	FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
1538	.section	.text.ftl_set_blk_mode,"ax",%progbits
1539	.align	1
1540	.global	ftl_set_blk_mode
1541	.syntax unified
1542	.thumb
1543	.thumb_func
1544	.fpu softvfp
1545	.type	ftl_set_blk_mode, %function
1546ftl_set_blk_mode:
1547	@ args = 0, pretend = 0, frame = 0
1548	@ frame_needed = 0, uses_anonymous_args = 0
1549	@ link register save eliminated.
1550	mov	r3, r0
1551	cbz	r1, .L183
1552	b	ftl_set_blk_mode.part.6
1553.L183:
1554	ldr	r2, .L184
1555	lsrs	r0, r0, #5
1556	and	r3, r3, #31
1557	ldr	r1, [r2]
1558	movs	r2, #1
1559	lsl	r3, r2, r3
1560	ldr	r2, [r1, r0, lsl #2]
1561	bic	r2, r2, r3
1562	str	r2, [r1, r0, lsl #2]
1563	bx	lr
1564.L185:
1565	.align	2
1566.L184:
1567	.word	.LANCHOR1
1568	.size	ftl_set_blk_mode, .-ftl_set_blk_mode
1569	.section	.text.ftl_get_blk_mode,"ax",%progbits
1570	.align	1
1571	.global	ftl_get_blk_mode
1572	.syntax unified
1573	.thumb
1574	.thumb_func
1575	.fpu softvfp
1576	.type	ftl_get_blk_mode, %function
1577ftl_get_blk_mode:
1578	@ args = 0, pretend = 0, frame = 0
1579	@ frame_needed = 0, uses_anonymous_args = 0
1580	@ link register save eliminated.
1581	ldr	r3, .L187
1582	lsrs	r2, r0, #5
1583	and	r0, r0, #31
1584	ldr	r3, [r3]
1585	ldr	r3, [r3, r2, lsl #2]
1586	lsr	r0, r3, r0
1587	and	r0, r0, #1
1588	bx	lr
1589.L188:
1590	.align	2
1591.L187:
1592	.word	.LANCHOR1
1593	.size	ftl_get_blk_mode, .-ftl_get_blk_mode
1594	.section	.text.ftl_sb_update_avl_pages,"ax",%progbits
1595	.align	1
1596	.global	ftl_sb_update_avl_pages
1597	.syntax unified
1598	.thumb
1599	.thumb_func
1600	.fpu softvfp
1601	.type	ftl_sb_update_avl_pages, %function
1602ftl_sb_update_avl_pages:
1603	@ args = 0, pretend = 0, frame = 0
1604	@ frame_needed = 0, uses_anonymous_args = 0
1605	movs	r3, #0
1606	push	{r4, r5, r6, lr}
1607	strh	r3, [r0, #4]	@ movhi
1608	movw	r6, #65535
1609	ldr	r3, .L196
1610	ldrh	r4, [r3]
1611	add	r3, r0, r2, lsl #1
1612	adds	r3, r3, #14
1613.L190:
1614	cmp	r2, r4
1615	bcc	.L192
1616	ldr	r3, .L196+4
1617	add	r5, r0, #16
1618	movw	r6, #65535
1619	ldrh	r3, [r3]
1620	subs	r3, r3, #1
1621	subs	r1, r3, r1
1622	movs	r3, #0
1623	uxth	r1, r1
1624.L193:
1625	uxth	r2, r3
1626	cmp	r4, r2
1627	bhi	.L195
1628	pop	{r4, r5, r6, pc}
1629.L192:
1630	ldrh	r5, [r3, #2]!
1631	adds	r2, r2, #1
1632	uxth	r2, r2
1633	cmp	r5, r6
1634	ittt	ne
1635	ldrhne	r5, [r0, #4]
1636	addne	r5, r5, #1
1637	strhne	r5, [r0, #4]	@ movhi
1638	b	.L190
1639.L195:
1640	ldrh	r2, [r5], #2
1641	adds	r3, r3, #1
1642	cmp	r2, r6
1643	ittt	ne
1644	ldrhne	r2, [r0, #4]
1645	addne	r2, r2, r1
1646	strhne	r2, [r0, #4]	@ movhi
1647	b	.L193
1648.L197:
1649	.align	2
1650.L196:
1651	.word	.LANCHOR3
1652	.word	.LANCHOR19
1653	.size	ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
1654	.section	.text.FtlSlcSuperblockCheck,"ax",%progbits
1655	.align	1
1656	.global	FtlSlcSuperblockCheck
1657	.syntax unified
1658	.thumb
1659	.thumb_func
1660	.fpu softvfp
1661	.type	FtlSlcSuperblockCheck, %function
1662FtlSlcSuperblockCheck:
1663	@ args = 0, pretend = 0, frame = 0
1664	@ frame_needed = 0, uses_anonymous_args = 0
1665	ldrh	r3, [r0, #4]
1666	push	{r4, r5, lr}
1667	cbz	r3, .L198
1668	ldrh	r2, [r0]
1669	movw	r3, #65535
1670	cmp	r2, r3
1671	beq	.L198
1672	ldrb	r2, [r0, #6]	@ zero_extendqisi2
1673	movs	r5, #0
1674	adds	r2, r2, #8
1675	ldrh	r1, [r0, r2, lsl #1]
1676	ldr	r2, .L204
1677	ldrh	r4, [r2]
1678	mov	r2, r3
1679.L201:
1680	cmp	r1, r2
1681	beq	.L203
1682.L198:
1683	pop	{r4, r5, pc}
1684.L203:
1685	ldrb	r3, [r0, #6]	@ zero_extendqisi2
1686	adds	r3, r3, #1
1687	uxtb	r3, r3
1688	cmp	r3, r4
1689	strb	r3, [r0, #6]
1690	itttt	eq
1691	ldrheq	r3, [r0, #2]
1692	strbeq	r5, [r0, #6]
1693	addeq	r3, r3, #1
1694	strheq	r3, [r0, #2]	@ movhi
1695	ldrb	r3, [r0, #6]	@ zero_extendqisi2
1696	adds	r3, r3, #8
1697	ldrh	r1, [r0, r3, lsl #1]
1698	b	.L201
1699.L205:
1700	.align	2
1701.L204:
1702	.word	.LANCHOR3
1703	.size	FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
1704	.section	.text.make_superblock,"ax",%progbits
1705	.align	1
1706	.global	make_superblock
1707	.syntax unified
1708	.thumb
1709	.thumb_func
1710	.fpu softvfp
1711	.type	make_superblock, %function
1712make_superblock:
1713	@ args = 0, pretend = 0, frame = 0
1714	@ frame_needed = 0, uses_anonymous_args = 0
1715	ldr	r3, .L211
1716	ldrh	r2, [r0]
1717	push	{r4, r5, r6, r7, r8, r10, fp, lr}
1718	mov	r4, r0
1719	ldrh	r3, [r3]
1720	cmp	r2, r3
1721	bcc	.L207
1722	movw	r2, #2156
1723	ldr	r1, .L211+4
1724	ldr	r0, .L211+8
1725	bl	printf
1726.L207:
1727	ldr	r3, .L211+12
1728	add	r6, r4, #16
1729	ldr	r10, .L211+20
1730	movw	r7, #65535
1731	movs	r5, #0
1732	ldrh	r8, [r3]
1733	strh	r5, [r4, #4]	@ movhi
1734	strb	r5, [r4, #7]
1735.L208:
1736	uxth	r3, r5
1737	cmp	r8, r3
1738	bhi	.L210
1739	ldr	r2, .L211+16
1740	movs	r0, #0
1741	ldrb	r3, [r4, #7]	@ zero_extendqisi2
1742	strb	r0, [r4, #9]
1743	ldrh	r2, [r2]
1744	smulbb	r3, r3, r2
1745	strh	r3, [r4, #4]	@ movhi
1746	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
1747.L210:
1748	ldrh	r1, [r4]
1749	ldrb	r0, [r10, r5]	@ zero_extendqisi2
1750	bl	V2P_block
1751	strh	r7, [r6]	@ movhi
1752	mov	fp, r0
1753	bl	FtlBbmIsBadBlock
1754	cbnz	r0, .L209
1755	strh	fp, [r6]	@ movhi
1756	ldrb	r3, [r4, #7]	@ zero_extendqisi2
1757	adds	r3, r3, #1
1758	strb	r3, [r4, #7]
1759.L209:
1760	adds	r5, r5, #1
1761	adds	r6, r6, #2
1762	b	.L208
1763.L212:
1764	.align	2
1765.L211:
1766	.word	.LANCHOR5
1767	.word	.LANCHOR60
1768	.word	.LC1
1769	.word	.LANCHOR3
1770	.word	.LANCHOR19
1771	.word	.LANCHOR13
1772	.size	make_superblock, .-make_superblock
1773	.section	.text.update_multiplier_value,"ax",%progbits
1774	.align	1
1775	.global	update_multiplier_value
1776	.syntax unified
1777	.thumb
1778	.thumb_func
1779	.fpu softvfp
1780	.type	update_multiplier_value, %function
1781update_multiplier_value:
1782	@ args = 0, pretend = 0, frame = 0
1783	@ frame_needed = 0, uses_anonymous_args = 0
1784	push	{r3, r4, r5, r6, r7, r8, r10, lr}
1785	movs	r5, #0
1786	ldr	r3, .L219
1787	mov	r6, r0
1788	mov	r4, r5
1789	ldr	r10, .L219+12
1790	ldrh	r7, [r3]
1791	ldr	r3, .L219+4
1792	ldrh	r8, [r3]
1793.L214:
1794	uxth	r3, r5
1795	cmp	r7, r3
1796	bhi	.L216
1797	cbz	r4, .L218
1798	mov	r1, r4
1799	mov	r0, #32768
1800	bl	__aeabi_idiv
1801.L217:
1802	ldr	r3, .L219+8
1803	movs	r2, #6
1804	ldr	r3, [r3]
1805	mla	r6, r2, r6, r3
1806	strh	r0, [r6, #4]	@ movhi
1807	movs	r0, #0
1808	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
1809.L216:
1810	mov	r1, r6
1811	ldrb	r0, [r10, r5]	@ zero_extendqisi2
1812	bl	V2P_block
1813	bl	FtlBbmIsBadBlock
1814	cbnz	r0, .L215
1815	add	r4, r4, r8
1816	uxth	r4, r4
1817.L215:
1818	adds	r5, r5, #1
1819	b	.L214
1820.L218:
1821	mov	r0, r4
1822	b	.L217
1823.L220:
1824	.align	2
1825.L219:
1826	.word	.LANCHOR3
1827	.word	.LANCHOR19
1828	.word	.LANCHOR40
1829	.word	.LANCHOR13
1830	.size	update_multiplier_value, .-update_multiplier_value
1831	.section	.text.GetFreeBlockMinEraseCount,"ax",%progbits
1832	.align	1
1833	.global	GetFreeBlockMinEraseCount
1834	.syntax unified
1835	.thumb
1836	.thumb_func
1837	.fpu softvfp
1838	.type	GetFreeBlockMinEraseCount, %function
1839GetFreeBlockMinEraseCount:
1840	@ args = 0, pretend = 0, frame = 0
1841	@ frame_needed = 0, uses_anonymous_args = 0
1842	@ link register save eliminated.
1843	ldr	r3, .L224
1844	ldr	r0, [r3]
1845	cbz	r0, .L222
1846	ldr	r3, .L224+4
1847	ldr	r3, [r3]
1848	subs	r0, r0, r3
1849	ldr	r3, .L224+8
1850	asrs	r0, r0, #1
1851	muls	r0, r3, r0
1852	ldr	r3, .L224+12
1853	ldr	r3, [r3]
1854	uxth	r0, r0
1855	ldrh	r0, [r3, r0, lsl #1]
1856.L222:
1857	bx	lr
1858.L225:
1859	.align	2
1860.L224:
1861	.word	.LANCHOR47
1862	.word	.LANCHOR40
1863	.word	-1431655765
1864	.word	.LANCHOR43
1865	.size	GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
1866	.section	.text.GetFreeBlockMaxEraseCount,"ax",%progbits
1867	.align	1
1868	.global	GetFreeBlockMaxEraseCount
1869	.syntax unified
1870	.thumb
1871	.thumb_func
1872	.fpu softvfp
1873	.type	GetFreeBlockMaxEraseCount, %function
1874GetFreeBlockMaxEraseCount:
1875	@ args = 0, pretend = 0, frame = 0
1876	@ frame_needed = 0, uses_anonymous_args = 0
1877	ldr	r3, .L234
1878	push	{r4, r5, r6, lr}
1879	ldr	r3, [r3]
1880	cbz	r3, .L232
1881	ldr	r2, .L234+4
1882	movs	r5, #6
1883	movw	r6, #65535
1884	ldrh	r2, [r2]
1885	rsb	r2, r2, r2, lsl #3
1886	asrs	r2, r2, #3
1887	cmp	r0, r2
1888	it	gt
1889	uxthgt	r0, r2
1890	ldr	r2, .L234+8
1891	ldr	r1, [r2]
1892	ldr	r2, .L234+12
1893	subs	r3, r3, r1
1894	asrs	r3, r3, #1
1895	muls	r3, r2, r3
1896	movs	r2, #0
1897	uxth	r3, r3
1898.L229:
1899	uxth	r4, r2
1900	cmp	r0, r4
1901	bls	.L231
1902	mul	r4, r5, r3
1903	adds	r2, r2, #1
1904	ldrh	r4, [r1, r4]
1905	cmp	r4, r6
1906	bne	.L233
1907.L231:
1908	ldr	r2, .L234+16
1909	ldr	r2, [r2]
1910	ldrh	r0, [r2, r3, lsl #1]
1911	pop	{r4, r5, r6, pc}
1912.L233:
1913	mov	r3, r4
1914	b	.L229
1915.L232:
1916	mov	r0, r3
1917	pop	{r4, r5, r6, pc}
1918.L235:
1919	.align	2
1920.L234:
1921	.word	.LANCHOR47
1922	.word	.LANCHOR48
1923	.word	.LANCHOR40
1924	.word	-1431655765
1925	.word	.LANCHOR43
1926	.size	GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
1927	.section	.text.free_data_superblock,"ax",%progbits
1928	.align	1
1929	.global	free_data_superblock
1930	.syntax unified
1931	.thumb
1932	.thumb_func
1933	.fpu softvfp
1934	.type	free_data_superblock, %function
1935free_data_superblock:
1936	@ args = 0, pretend = 0, frame = 0
1937	@ frame_needed = 0, uses_anonymous_args = 0
1938	movw	r2, #65535
1939	push	{r3, lr}
1940	cmp	r0, r2
1941	beq	.L237
1942	ldr	r2, .L238
1943	movs	r1, #0
1944	ldr	r2, [r2]
1945	strh	r1, [r2, r0, lsl #1]	@ movhi
1946	bl	INSERT_FREE_LIST
1947.L237:
1948	movs	r0, #0
1949	pop	{r3, pc}
1950.L239:
1951	.align	2
1952.L238:
1953	.word	.LANCHOR42
1954	.size	free_data_superblock, .-free_data_superblock
1955	.section	.text.get_new_active_ppa,"ax",%progbits
1956	.align	1
1957	.global	get_new_active_ppa
1958	.syntax unified
1959	.thumb
1960	.thumb_func
1961	.fpu softvfp
1962	.type	get_new_active_ppa, %function
1963get_new_active_ppa:
1964	@ args = 0, pretend = 0, frame = 0
1965	@ frame_needed = 0, uses_anonymous_args = 0
1966	ldrh	r2, [r0]
1967	push	{r3, r4, r5, r6, r7, lr}
1968	movw	r3, #65535
1969	mov	r4, r0
1970	cmp	r2, r3
1971	bne	.L241
1972	movw	r2, #2786
1973	ldr	r1, .L254
1974	ldr	r0, .L254+4
1975	bl	printf
1976.L241:
1977	ldr	r5, .L254+8
1978	ldrh	r2, [r4, #2]
1979	ldrh	r3, [r5]
1980	cmp	r2, r3
1981	bne	.L242
1982	movw	r2, #2787
1983	ldr	r1, .L254
1984	ldr	r0, .L254+4
1985	bl	printf
1986.L242:
1987	ldrh	r3, [r4, #4]
1988	cbnz	r3, .L243
1989	movw	r2, #2788
1990	ldr	r1, .L254
1991	ldr	r0, .L254+4
1992	bl	printf
1993.L243:
1994	ldrb	r2, [r4, #6]	@ zero_extendqisi2
1995	movs	r3, #0
1996	strb	r3, [r4, #10]
1997	movw	r6, #65535
1998	adds	r2, r2, #8
1999	ldrh	r0, [r4, r2, lsl #1]
2000	ldr	r2, .L254+12
2001	ldrh	r1, [r2]
2002	mov	r2, r3
2003.L244:
2004	cmp	r0, r6
2005	ldrb	r3, [r4, #6]	@ zero_extendqisi2
2006	beq	.L246
2007	ldrh	r2, [r4, #4]
2008	ldrh	r6, [r4, #2]
2009	subs	r2, r2, #1
2010	uxth	r2, r2
2011	orr	r6, r6, r0, lsl #10
2012	movw	r0, #65535
2013	strh	r2, [r4, #4]	@ movhi
2014.L248:
2015	adds	r3, r3, #1
2016	uxtb	r3, r3
2017	cmp	r1, r3
2018	itttt	eq
2019	ldrheq	r3, [r4, #2]
2020	addeq	r3, r3, #1
2021	strheq	r3, [r4, #2]	@ movhi
2022	moveq	r3, #0
2023	add	r7, r3, #8
2024	ldrh	r7, [r4, r7, lsl #1]
2025	cmp	r7, r0
2026	beq	.L248
2027	strb	r3, [r4, #6]
2028	ldrh	r1, [r4, #2]
2029	ldrh	r3, [r5]
2030	cmp	r1, r3
2031	bne	.L240
2032	cbz	r2, .L240
2033	movw	r2, #2809
2034	ldr	r1, .L254
2035	ldr	r0, .L254+4
2036	bl	printf
2037.L240:
2038	mov	r0, r6
2039	pop	{r3, r4, r5, r6, r7, pc}
2040.L246:
2041	adds	r3, r3, #1
2042	uxtb	r3, r3
2043	cmp	r3, r1
2044	strb	r3, [r4, #6]
2045	itttt	eq
2046	ldrheq	r3, [r4, #2]
2047	strbeq	r2, [r4, #6]
2048	addeq	r3, r3, #1
2049	strheq	r3, [r4, #2]	@ movhi
2050	ldrb	r3, [r4, #6]	@ zero_extendqisi2
2051	adds	r3, r3, #8
2052	ldrh	r0, [r4, r3, lsl #1]
2053	b	.L244
2054.L255:
2055	.align	2
2056.L254:
2057	.word	.LANCHOR61
2058	.word	.LC1
2059	.word	.LANCHOR19
2060	.word	.LANCHOR3
2061	.size	get_new_active_ppa, .-get_new_active_ppa
2062	.section	.text.FtlGcBufInit,"ax",%progbits
2063	.align	1
2064	.global	FtlGcBufInit
2065	.syntax unified
2066	.thumb
2067	.thumb_func
2068	.fpu softvfp
2069	.type	FtlGcBufInit, %function
2070FtlGcBufInit:
2071	@ args = 0, pretend = 0, frame = 8
2072	@ frame_needed = 0, uses_anonymous_args = 0
2073	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
2074	movs	r3, #0
2075	ldr	r1, .L261
2076	mov	fp, #1
2077	ldr	r2, .L261+4
2078	ldr	r5, [r1]
2079	ldr	r1, .L261+8
2080	str	r3, [r2]
2081	ldr	r2, .L261+12
2082	mov	r0, r5
2083	ldr	r1, [r1]
2084	ldrh	r2, [r2]
2085	str	r1, [sp, #4]
2086	ldr	r1, .L261+16
2087	ldrh	r1, [r1]
2088	str	r1, [sp]
2089	ldr	r1, .L261+20
2090	ldr	r10, [r1]
2091	ldr	r1, .L261+24
2092	ldrh	r7, [r1]
2093	ldr	r1, .L261+28
2094	ldr	r4, [r1]
2095	movs	r1, #12
2096	mla	r1, r2, r1, r1
2097	adds	r4, r4, #8
2098	add	r8, r5, r1
2099	mov	r1, r3
2100.L257:
2101	adds	r0, r0, #12
2102	ldr	r6, [sp]
2103	cmp	r0, r8
2104	add	ip, r3, r7
2105	add	r4, r4, #20
2106	add	lr, r1, r6
2107	bne	.L258
2108	ldr	r3, .L261+32
2109	mov	lr, #12
2110	mov	r8, #0
2111	ldr	r0, [r3]
2112	ldr	r3, .L261+8
2113	ldr	r4, [r3]
2114	ldr	r3, .L261+20
2115	ldr	ip, [r3]
2116.L259:
2117	cmp	r2, r0
2118	bcc	.L260
2119	add	sp, sp, #8
2120	@ sp needed
2121	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2122.L258:
2123	bic	r1, r1, #3
2124	bic	r3, r3, #3
2125	mov	r6, r1
2126	ldr	r1, [sp, #4]
2127	add	r3, r3, r10
2128	str	fp, [r0, #-4]
2129	str	r3, [r0, #-8]
2130	add	r6, r6, r1
2131	mov	r1, lr
2132	str	r6, [r0, #-12]
2133	str	r3, [r4, #-16]
2134	mov	r3, ip
2135	str	r6, [r4, #-20]
2136	b	.L257
2137.L260:
2138	ldr	r3, [sp]
2139	mul	r10, lr, r2
2140	muls	r3, r2, r3
2141	add	r1, r5, r10
2142	str	r8, [r1, #8]
2143	bic	r3, r3, #3
2144	add	r3, r3, r4
2145	str	r3, [r5, r10]
2146	mul	r3, r2, r7
2147	adds	r2, r2, #1
2148	uxth	r2, r2
2149	bic	r3, r3, #3
2150	add	r3, r3, ip
2151	str	r3, [r1, #4]
2152	b	.L259
2153.L262:
2154	.align	2
2155.L261:
2156	.word	.LANCHOR63
2157	.word	.LANCHOR62
2158	.word	.LANCHOR64
2159	.word	.LANCHOR3
2160	.word	.LANCHOR23
2161	.word	.LANCHOR65
2162	.word	.LANCHOR24
2163	.word	.LANCHOR66
2164	.word	.LANCHOR67
2165	.size	FtlGcBufInit, .-FtlGcBufInit
2166	.section	.text.FtlGcBufFree,"ax",%progbits
2167	.align	1
2168	.global	FtlGcBufFree
2169	.syntax unified
2170	.thumb
2171	.thumb_func
2172	.fpu softvfp
2173	.type	FtlGcBufFree, %function
2174FtlGcBufFree:
2175	@ args = 0, pretend = 0, frame = 0
2176	@ frame_needed = 0, uses_anonymous_args = 0
2177	ldr	r3, .L270
2178	mov	ip, #12
2179	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2180	movs	r4, #0
2181	mov	fp, #20
2182	mov	lr, r4
2183	ldr	r7, [r3]
2184	ldr	r3, .L270+4
2185	ldr	r5, [r3]
2186.L264:
2187	uxth	r3, r4
2188	cmp	r1, r3
2189	bls	.L263
2190	mla	r8, fp, r3, r0
2191	movs	r2, #0
2192.L265:
2193	uxth	r3, r2
2194	cmp	r7, r3
2195	bls	.L266
2196	mul	r3, ip, r3
2197	ldr	r6, [r8, #8]
2198	adds	r2, r2, #1
2199	add	r10, r5, r3
2200	ldr	r3, [r5, r3]
2201	cmp	r3, r6
2202	bne	.L265
2203	str	lr, [r10, #8]
2204.L266:
2205	adds	r4, r4, #1
2206	b	.L264
2207.L263:
2208	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2209.L271:
2210	.align	2
2211.L270:
2212	.word	.LANCHOR67
2213	.word	.LANCHOR63
2214	.size	FtlGcBufFree, .-FtlGcBufFree
2215	.section	.text.FtlGcBufAlloc,"ax",%progbits
2216	.align	1
2217	.global	FtlGcBufAlloc
2218	.syntax unified
2219	.thumb
2220	.thumb_func
2221	.fpu softvfp
2222	.type	FtlGcBufAlloc, %function
2223FtlGcBufAlloc:
2224	@ args = 0, pretend = 0, frame = 0
2225	@ frame_needed = 0, uses_anonymous_args = 0
2226	ldr	r3, .L279
2227	movs	r2, #0
2228	push	{r4, r5, r6, r7, r8, r10, lr}
2229	mov	ip, #12
2230	movs	r7, #1
2231	mov	lr, #20
2232	ldr	r4, [r3]
2233	ldr	r3, .L279+4
2234	ldr	r5, [r3]
2235.L273:
2236	uxth	r8, r2
2237	cmp	r1, r8
2238	bhi	.L277
2239	pop	{r4, r5, r6, r7, r8, r10, pc}
2240.L277:
2241	mov	r10, #0
2242.L274:
2243	uxth	r3, r10
2244	cmp	r4, r3
2245	bls	.L275
2246	mla	r3, ip, r3, r5
2247	add	r10, r10, #1
2248	ldr	r6, [r3, #8]
2249	cmp	r6, #0
2250	bne	.L274
2251	mla	r8, lr, r8, r0
2252	str	r7, [r3, #8]
2253	ldr	r6, [r3]
2254	ldr	r3, [r3, #4]
2255	str	r6, [r8, #8]
2256	str	r3, [r8, #12]
2257.L275:
2258	adds	r2, r2, #1
2259	b	.L273
2260.L280:
2261	.align	2
2262.L279:
2263	.word	.LANCHOR67
2264	.word	.LANCHOR63
2265	.size	FtlGcBufAlloc, .-FtlGcBufAlloc
2266	.section	.text.IsBlkInGcList,"ax",%progbits
2267	.align	1
2268	.global	IsBlkInGcList
2269	.syntax unified
2270	.thumb
2271	.thumb_func
2272	.fpu softvfp
2273	.type	IsBlkInGcList, %function
2274IsBlkInGcList:
2275	@ args = 0, pretend = 0, frame = 0
2276	@ frame_needed = 0, uses_anonymous_args = 0
2277	@ link register save eliminated.
2278	ldr	r3, .L286
2279	ldr	r2, .L286+4
2280	ldr	r3, [r3]
2281	ldrh	r2, [r2]
2282	add	r2, r3, r2, lsl #1
2283.L282:
2284	cmp	r3, r2
2285	bne	.L284
2286	movs	r0, #0
2287	bx	lr
2288.L284:
2289	ldrh	r1, [r3], #2
2290	cmp	r1, r0
2291	bne	.L282
2292	movs	r0, #1
2293	bx	lr
2294.L287:
2295	.align	2
2296.L286:
2297	.word	.LANCHOR68
2298	.word	.LANCHOR69
2299	.size	IsBlkInGcList, .-IsBlkInGcList
2300	.section	.text.FtlGcUpdatePage,"ax",%progbits
2301	.align	1
2302	.global	FtlGcUpdatePage
2303	.syntax unified
2304	.thumb
2305	.thumb_func
2306	.fpu softvfp
2307	.type	FtlGcUpdatePage, %function
2308FtlGcUpdatePage:
2309	@ args = 0, pretend = 0, frame = 0
2310	@ frame_needed = 0, uses_anonymous_args = 0
2311	push	{r3, r4, r5, r6, r7, lr}
2312	mov	r5, r0
2313	ldr	r4, .L292
2314	ubfx	r0, r0, #10, #16
2315	mov	r6, r1
2316	mov	r7, r2
2317	bl	P2V_block_in_plane
2318	ldr	r3, .L292+4
2319	ldrh	r1, [r4]
2320	ldr	r2, [r3]
2321	movs	r3, #0
2322.L289:
2323	uxth	ip, r3
2324	cmp	ip, r1
2325	bcc	.L291
2326	bne	.L290
2327	strh	r0, [r2, ip, lsl #1]	@ movhi
2328	ldrh	r3, [r4]
2329	adds	r3, r3, #1
2330	strh	r3, [r4]	@ movhi
2331	b	.L290
2332.L291:
2333	adds	r3, r3, #1
2334	add	ip, r2, r3, lsl #1
2335	ldrh	ip, [ip, #-2]
2336	cmp	ip, r0
2337	bne	.L289
2338.L290:
2339	ldr	r2, .L292+8
2340	movs	r0, #12
2341	ldr	r1, .L292+12
2342	ldrh	r3, [r2]
2343	ldr	r1, [r1]
2344	muls	r0, r3, r0
2345	adds	r3, r3, #1
2346	adds	r4, r1, r0
2347	str	r6, [r4, #4]
2348	str	r7, [r4, #8]
2349	str	r5, [r1, r0]
2350	strh	r3, [r2]	@ movhi
2351	pop	{r3, r4, r5, r6, r7, pc}
2352.L293:
2353	.align	2
2354.L292:
2355	.word	.LANCHOR69
2356	.word	.LANCHOR68
2357	.word	.LANCHOR70
2358	.word	.LANCHOR71
2359	.size	FtlGcUpdatePage, .-FtlGcUpdatePage
2360	.section	.text.FtlGcRefreshBlock,"ax",%progbits
2361	.align	1
2362	.global	FtlGcRefreshBlock
2363	.syntax unified
2364	.thumb
2365	.thumb_func
2366	.fpu softvfp
2367	.type	FtlGcRefreshBlock, %function
2368FtlGcRefreshBlock:
2369	@ args = 0, pretend = 0, frame = 0
2370	@ frame_needed = 0, uses_anonymous_args = 0
2371	push	{r4, r5, lr}
2372	ldr	r4, .L297
2373	ldrh	r5, [r4]
2374	cmp	r5, r0
2375	beq	.L295
2376	ldr	r3, .L297+4
2377	ldrh	r1, [r3]
2378	cmp	r0, r1
2379	beq	.L295
2380	movw	r2, #65535
2381	cmp	r5, r2
2382	bne	.L296
2383	strh	r0, [r4]	@ movhi
2384.L295:
2385	movs	r0, #0
2386	pop	{r4, r5, pc}
2387.L296:
2388	cmp	r1, r2
2389	it	eq
2390	strheq	r0, [r3]	@ movhi
2391	b	.L295
2392.L298:
2393	.align	2
2394.L297:
2395	.word	.LANCHOR72
2396	.word	.LANCHOR73
2397	.size	FtlGcRefreshBlock, .-FtlGcRefreshBlock
2398	.section	.text.FtlGcMarkBadPhyBlk,"ax",%progbits
2399	.align	1
2400	.global	FtlGcMarkBadPhyBlk
2401	.syntax unified
2402	.thumb
2403	.thumb_func
2404	.fpu softvfp
2405	.type	FtlGcMarkBadPhyBlk, %function
2406FtlGcMarkBadPhyBlk:
2407	@ args = 0, pretend = 0, frame = 0
2408	@ frame_needed = 0, uses_anonymous_args = 0
2409	push	{r3, r4, r5, lr}
2410	mov	r4, r0
2411	bl	P2V_block_in_plane
2412	bl	FtlGcRefreshBlock
2413	ldr	r2, .L303
2414	movs	r1, #0
2415	ldr	r5, .L303+4
2416	ldrh	r3, [r2]
2417.L300:
2418	uxth	r0, r1
2419	cmp	r3, r0
2420	bhi	.L302
2421	cmp	r3, #15
2422	itttt	ls
2423	addls	r1, r3, #1
2424	strhls	r1, [r2]	@ movhi
2425	ldrls	r2, .L303+4
2426	strhls	r4, [r2, r3, lsl #1]	@ movhi
2427	b	.L301
2428.L302:
2429	adds	r1, r1, #1
2430	add	r0, r5, r1, lsl #1
2431	ldrh	r0, [r0, #-2]
2432	cmp	r0, r4
2433	bne	.L300
2434.L301:
2435	movs	r0, #0
2436	pop	{r3, r4, r5, pc}
2437.L304:
2438	.align	2
2439.L303:
2440	.word	.LANCHOR74
2441	.word	.LANCHOR75
2442	.size	FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
2443	.section	.text.FtlGcReFreshBadBlk,"ax",%progbits
2444	.align	1
2445	.global	FtlGcReFreshBadBlk
2446	.syntax unified
2447	.thumb
2448	.thumb_func
2449	.fpu softvfp
2450	.type	FtlGcReFreshBadBlk, %function
2451FtlGcReFreshBadBlk:
2452	@ args = 0, pretend = 0, frame = 0
2453	@ frame_needed = 0, uses_anonymous_args = 0
2454	ldr	r3, .L311
2455	push	{r4, lr}
2456	ldrh	r3, [r3]
2457	cbz	r3, .L306
2458	ldr	r2, .L311+4
2459	ldrh	r1, [r2]
2460	movw	r2, #65535
2461	cmp	r1, r2
2462	bne	.L306
2463	ldr	r4, .L311+8
2464	ldrh	r2, [r4]
2465	cmp	r2, r3
2466	itt	cs
2467	movcs	r3, #0
2468	strhcs	r3, [r4]	@ movhi
2469	ldr	r3, .L311+12
2470	ldrh	r2, [r4]
2471	ldrh	r0, [r3, r2, lsl #1]
2472	bl	P2V_block_in_plane
2473	bl	FtlGcRefreshBlock
2474	ldrh	r3, [r4]
2475	adds	r3, r3, #1
2476	strh	r3, [r4]	@ movhi
2477.L306:
2478	movs	r0, #0
2479	pop	{r4, pc}
2480.L312:
2481	.align	2
2482.L311:
2483	.word	.LANCHOR74
2484	.word	.LANCHOR72
2485	.word	.LANCHOR76
2486	.word	.LANCHOR75
2487	.size	FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
2488	.section	.text.ftl_malloc,"ax",%progbits
2489	.align	1
2490	.global	ftl_malloc
2491	.syntax unified
2492	.thumb
2493	.thumb_func
2494	.fpu softvfp
2495	.type	ftl_malloc, %function
2496ftl_malloc:
2497	@ args = 0, pretend = 0, frame = 0
2498	@ frame_needed = 0, uses_anonymous_args = 0
2499	@ link register save eliminated.
2500	movs	r1, #0
2501	b	kmalloc
2502	.size	ftl_malloc, .-ftl_malloc
2503	.section	.text.ftl_free,"ax",%progbits
2504	.align	1
2505	.global	ftl_free
2506	.syntax unified
2507	.thumb
2508	.thumb_func
2509	.fpu softvfp
2510	.type	ftl_free, %function
2511ftl_free:
2512	@ args = 0, pretend = 0, frame = 0
2513	@ frame_needed = 0, uses_anonymous_args = 0
2514	@ link register save eliminated.
2515	b	free
2516	.size	ftl_free, .-ftl_free
2517	.section	.text.rknand_print_hex,"ax",%progbits
2518	.align	1
2519	.global	rknand_print_hex
2520	.syntax unified
2521	.thumb
2522	.thumb_func
2523	.fpu softvfp
2524	.type	rknand_print_hex, %function
2525rknand_print_hex:
2526	@ args = 0, pretend = 0, frame = 0
2527	@ frame_needed = 0, uses_anonymous_args = 0
2528	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2529	movs	r6, #0
2530	mov	fp, r0
2531	mov	r7, r1
2532	mov	r8, r2
2533	mov	r10, r3
2534	mov	r5, r6
2535	mov	r4, r6
2536.L316:
2537	cmp	r4, r10
2538	bcc	.L322
2539	ldr	r0, .L325
2540	pop	{r4, r5, r6, r7, r8, r10, fp, lr}
2541	b	printf
2542.L322:
2543	cbnz	r5, .L317
2544	mov	r2, r6
2545	mov	r1, fp
2546	ldr	r0, .L325+4
2547	bl	printf
2548.L317:
2549	cmp	r8, #4
2550	bne	.L318
2551	ldr	r1, [r7, r4, lsl #2]
2552.L324:
2553	ldr	r0, .L325+8
2554.L323:
2555	adds	r5, r5, #1
2556	bl	printf
2557	cmp	r5, #15
2558	bls	.L321
2559	movs	r5, #0
2560	ldr	r0, .L325
2561	bl	printf
2562.L321:
2563	adds	r4, r4, #1
2564	add	r6, r6, r8
2565	b	.L316
2566.L318:
2567	cmp	r8, #2
2568	bne	.L320
2569	ldrh	r1, [r7, r4, lsl #1]
2570	b	.L324
2571.L320:
2572	ldrb	r1, [r7, r4]	@ zero_extendqisi2
2573	ldr	r0, .L325+12
2574	b	.L323
2575.L326:
2576	.align	2
2577.L325:
2578	.word	.LC5
2579	.word	.LC2
2580	.word	.LC3
2581	.word	.LC4
2582	.size	rknand_print_hex, .-rknand_print_hex
2583	.section	.text.FlashEraseBlocks,"ax",%progbits
2584	.align	1
2585	.global	FlashEraseBlocks
2586	.syntax unified
2587	.thumb
2588	.thumb_func
2589	.fpu softvfp
2590	.type	FlashEraseBlocks, %function
2591FlashEraseBlocks:
2592	@ args = 0, pretend = 0, frame = 16
2593	@ frame_needed = 0, uses_anonymous_args = 0
2594	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
2595	mov	r4, r0
2596	ldr	r6, .L343
2597	add	r8, r0, #4
2598	movs	r7, #0
2599	ldr	fp, .L343+20
2600	ldrh	r10, [r6, #12]
2601	str	r2, [sp]
2602	lsl	r3, r10, #3
2603	str	r3, [sp, #4]
2604.L328:
2605	ldr	r3, [sp]
2606	cmp	r7, r3
2607	beq	.L342
2608	add	r2, sp, #8
2609	add	r1, sp, #12
2610	ldr	r0, [r8]
2611	bl	l2p_addr_tran.isra.0
2612	ldr	r5, [sp, #8]
2613	cbnz	r5, .L329
2614	ldr	r2, [sp, #12]
2615	ldr	r3, [sp, #4]
2616	cmp	r3, r2
2617	bls	.L329
2618	ldr	r6, .L343+4
2619	ldr	r7, .L343+8
2620.L330:
2621	ldr	r3, [sp]
2622	adds	r4, r4, #20
2623	cmp	r5, r3
2624	bne	.L331
2625.L342:
2626	movs	r0, #0
2627	add	sp, sp, #16
2628	@ sp needed
2629	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
2630.L331:
2631	mov	r3, #-1
2632	ldr	r2, [sp, #12]
2633	str	r3, [r4, #-20]
2634	mov	r1, r6
2635	mov	r0, r7
2636	adds	r5, r5, #1
2637	bl	printf
2638	movs	r3, #16
2639	movs	r2, #4
2640	ldr	r1, [r4, #-12]
2641	ldr	r0, .L343+12
2642	bl	rknand_print_hex
2643	movs	r3, #4
2644	ldr	r1, [r4, #-8]
2645	mov	r2, r3
2646	ldr	r0, .L343+16
2647	bl	rknand_print_hex
2648	b	.L330
2649.L329:
2650	ldr	r2, [fp, #4]
2651	uxtb	r0, r5
2652	ldr	r1, [sp, #12]
2653	blx	r2
2654	cbnz	r0, .L332
2655	str	r0, [r8, #-4]
2656.L333:
2657	ldrh	r2, [r6, #14]
2658	cmp	r2, #4
2659	bne	.L335
2660	ldr	r1, [sp, #12]
2661	ldr	r2, [fp, #4]
2662	ldrb	r0, [sp, #8]	@ zero_extendqisi2
2663	add	r1, r1, r10
2664	blx	r2
2665	cbz	r0, .L335
2666	mov	r2, #-1
2667	str	r2, [r8, #-4]
2668.L335:
2669	adds	r7, r7, #1
2670	add	r8, r8, #20
2671	b	.L328
2672.L332:
2673	mov	r2, #-1
2674	str	r2, [r8, #-4]
2675	b	.L333
2676.L344:
2677	.align	2
2678.L343:
2679	.word	.LANCHOR0
2680	.word	.LANCHOR77
2681	.word	.LC6
2682	.word	.LC7
2683	.word	.LC8
2684	.word	.LANCHOR78
2685	.size	FlashEraseBlocks, .-FlashEraseBlocks
2686	.section	.text.FtlFreeSysBlkQueueIn,"ax",%progbits
2687	.align	1
2688	.global	FtlFreeSysBlkQueueIn
2689	.syntax unified
2690	.thumb
2691	.thumb_func
2692	.fpu softvfp
2693	.type	FtlFreeSysBlkQueueIn, %function
2694FtlFreeSysBlkQueueIn:
2695	@ args = 0, pretend = 0, frame = 0
2696	@ frame_needed = 0, uses_anonymous_args = 0
2697	subs	r3, r0, #1
2698	movw	r2, #65533
2699	uxth	r3, r3
2700	push	{r4, r5, r6, lr}
2701	mov	r5, r0
2702	cmp	r3, r2
2703	bhi	.L345
2704	ldr	r4, .L354
2705	ldrh	r3, [r4, #6]
2706	cmp	r3, #1024
2707	beq	.L345
2708	cbz	r1, .L347
2709	bl	P2V_block_in_plane
2710	ldr	r3, .L354+4
2711	mov	r6, r0
2712	movs	r2, #1
2713	mov	r1, r2
2714	ldr	r0, [r3]
2715	lsls	r3, r5, #10
2716	str	r3, [r0, #4]
2717	bl	FlashEraseBlocks
2718	ldr	r3, .L354+8
2719	ldr	r2, [r3]
2720	ldrh	r3, [r2, r6, lsl #1]
2721	adds	r3, r3, #1
2722	strh	r3, [r2, r6, lsl #1]	@ movhi
2723	ldr	r2, .L354+12
2724	ldr	r3, [r2]
2725	adds	r3, r3, #1
2726	str	r3, [r2]
2727.L347:
2728	ldrh	r3, [r4, #6]
2729	adds	r3, r3, #1
2730	strh	r3, [r4, #6]	@ movhi
2731	ldrh	r3, [r4, #4]
2732	adds	r2, r3, #4
2733	adds	r3, r3, #1
2734	ubfx	r3, r3, #0, #10
2735	strh	r5, [r4, r2, lsl #1]	@ movhi
2736	strh	r3, [r4, #4]	@ movhi
2737.L345:
2738	pop	{r4, r5, r6, pc}
2739.L355:
2740	.align	2
2741.L354:
2742	.word	.LANCHOR38
2743	.word	.LANCHOR79
2744	.word	.LANCHOR43
2745	.word	.LANCHOR80
2746	.size	FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
2747	.section	.text.FtlFreeSysBlkQueueOut,"ax",%progbits
2748	.align	1
2749	.global	FtlFreeSysBlkQueueOut
2750	.syntax unified
2751	.thumb
2752	.thumb_func
2753	.fpu softvfp
2754	.type	FtlFreeSysBlkQueueOut, %function
2755FtlFreeSysBlkQueueOut:
2756	@ args = 0, pretend = 0, frame = 0
2757	@ frame_needed = 0, uses_anonymous_args = 0
2758	push	{r3, r4, r5, lr}
2759	ldr	r4, .L361
2760	ldrh	r2, [r4, #6]
2761	cbz	r2, .L360
2762	ldrh	r3, [r4, #2]
2763	subs	r2, r2, #1
2764	strh	r2, [r4, #6]	@ movhi
2765	movs	r2, #1
2766	adds	r1, r3, #4
2767	adds	r3, r3, #1
2768	ubfx	r3, r3, #0, #10
2769	ldrh	r5, [r4, r1, lsl #1]
2770	strh	r3, [r4, #2]	@ movhi
2771	mov	r1, r2
2772	ldr	r3, .L361+4
2773	ldr	r0, [r3]
2774	lsls	r3, r5, #10
2775	str	r3, [r0, #4]
2776	bl	FlashEraseBlocks
2777	ldr	r2, .L361+8
2778	ldr	r3, [r2]
2779	adds	r3, r3, #1
2780	str	r3, [r2]
2781.L357:
2782	subs	r3, r5, #1
2783	movw	r2, #65533
2784	uxth	r3, r3
2785	cmp	r3, r2
2786	bls	.L358
2787	ldrh	r2, [r4, #6]
2788	mov	r1, r5
2789	ldr	r0, .L361+12
2790	bl	printf
2791.L359:
2792	b	.L359
2793.L360:
2794	movw	r5, #65535
2795	b	.L357
2796.L358:
2797	mov	r0, r5
2798	pop	{r3, r4, r5, pc}
2799.L362:
2800	.align	2
2801.L361:
2802	.word	.LANCHOR38
2803	.word	.LANCHOR79
2804	.word	.LANCHOR80
2805	.word	.LC9
2806	.size	FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
2807	.section	.text.ftl_map_blk_alloc_new_blk,"ax",%progbits
2808	.align	1
2809	.global	ftl_map_blk_alloc_new_blk
2810	.syntax unified
2811	.thumb
2812	.thumb_func
2813	.fpu softvfp
2814	.type	ftl_map_blk_alloc_new_blk, %function
2815ftl_map_blk_alloc_new_blk:
2816	@ args = 0, pretend = 0, frame = 0
2817	@ frame_needed = 0, uses_anonymous_args = 0
2818	ldrh	r1, [r0, #10]
2819	ldr	r2, [r0, #12]
2820	push	{r3, r4, r5, r6, r7, lr}
2821	mov	r4, r0
2822	movs	r3, #0
2823.L364:
2824	uxth	r5, r3
2825	cmp	r5, r1
2826	bcs	.L367
2827	mov	r7, r2
2828	adds	r3, r3, #1
2829	ldrh	r6, [r7]
2830	adds	r2, r2, #2
2831	cmp	r6, #0
2832	bne	.L364
2833	bl	FtlFreeSysBlkQueueOut
2834	subs	r3, r0, #1
2835	movw	r2, #65533
2836	uxth	r3, r3
2837	mov	r1, r0
2838	strh	r0, [r7]	@ movhi
2839	cmp	r3, r2
2840	bls	.L365
2841	ldr	r3, .L371
2842	ldr	r0, .L371+4
2843	ldrh	r2, [r3, #6]
2844	bl	printf
2845.L366:
2846	b	.L366
2847.L365:
2848	ldr	r3, [r4, #28]
2849	strh	r6, [r4, #2]	@ movhi
2850	strh	r5, [r4]	@ movhi
2851	adds	r3, r3, #1
2852	str	r3, [r4, #28]
2853	ldrh	r3, [r4, #8]
2854	adds	r3, r3, #1
2855	strh	r3, [r4, #8]	@ movhi
2856.L367:
2857	ldrh	r3, [r4, #10]
2858	cmp	r3, r5
2859	bhi	.L369
2860	movw	r2, #578
2861	ldr	r1, .L371+8
2862	ldr	r0, .L371+12
2863	bl	printf
2864.L369:
2865	movs	r0, #0
2866	pop	{r3, r4, r5, r6, r7, pc}
2867.L372:
2868	.align	2
2869.L371:
2870	.word	.LANCHOR38
2871	.word	.LC10
2872	.word	.LANCHOR81
2873	.word	.LC1
2874	.size	ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
2875	.section	.text.ftl_memset,"ax",%progbits
2876	.align	1
2877	.global	ftl_memset
2878	.syntax unified
2879	.thumb
2880	.thumb_func
2881	.fpu softvfp
2882	.type	ftl_memset, %function
2883ftl_memset:
2884	@ args = 0, pretend = 0, frame = 0
2885	@ frame_needed = 0, uses_anonymous_args = 0
2886	@ link register save eliminated.
2887	b	memset
2888	.size	ftl_memset, .-ftl_memset
2889	.section	.text.FtlMemInit,"ax",%progbits
2890	.align	1
2891	.global	FtlMemInit
2892	.syntax unified
2893	.thumb
2894	.thumb_func
2895	.fpu softvfp
2896	.type	FtlMemInit, %function
2897FtlMemInit:
2898	@ args = 0, pretend = 0, frame = 0
2899	@ frame_needed = 0, uses_anonymous_args = 0
2900	ldr	r3, .L379
2901	push	{r4, r5, r6, r7, r8, r10, fp, lr}
2902	movs	r4, #0
2903	ldr	r2, .L379+4
2904	movs	r6, #12
2905	str	r4, [r3]
2906	ldr	r3, .L379+8
2907	ldr	r5, .L379+12
2908	ldr	r10, .L379+292
2909	str	r4, [r3]
2910	ldr	r3, .L379+16
2911	ldrh	r0, [r5]
2912	ldr	r8, .L379+296
2913	str	r4, [r3]
2914	ldr	r3, .L379+20
2915	lsls	r0, r0, #1
2916	ldr	fp, .L379+300
2917	str	r4, [r3]
2918	ldr	r3, .L379+24
2919	str	r4, [r3]
2920	ldr	r3, .L379+28
2921	str	r4, [r3]
2922	ldr	r3, .L379+32
2923	str	r4, [r3]
2924	ldr	r3, .L379+36
2925	str	r4, [r3]
2926	ldr	r3, .L379+40
2927	str	r4, [r3]
2928	ldr	r3, .L379+44
2929	str	r4, [r3]
2930	ldr	r3, .L379+48
2931	str	r4, [r3]
2932	ldr	r3, .L379+52
2933	str	r4, [r3]
2934	ldr	r3, .L379+56
2935	str	r4, [r3]
2936	ldr	r3, .L379+60
2937	str	r4, [r3]
2938	ldr	r3, .L379+64
2939	str	r4, [r3]
2940	movw	r3, #65535
2941	str	r3, [r2]
2942	ldr	r2, .L379+68
2943	str	r4, [r2]
2944	ldr	r2, .L379+72
2945	str	r4, [r2]
2946	ldr	r2, .L379+76
2947	str	r4, [r2]
2948	ldr	r2, .L379+80
2949	strh	r3, [r2]	@ movhi
2950	ldr	r2, .L379+84
2951	strh	r3, [r2]	@ movhi
2952	movs	r2, #32
2953	ldr	r3, .L379+88
2954	strh	r2, [r3]	@ movhi
2955	movs	r2, #128
2956	ldr	r3, .L379+92
2957	strh	r2, [r3]	@ movhi
2958	ldr	r3, .L379+96
2959	strh	r4, [r3]	@ movhi
2960	ldr	r3, .L379+100
2961	strh	r4, [r3]	@ movhi
2962	ldr	r3, .L379+104
2963	strh	r4, [r3]	@ movhi
2964	bl	ftl_malloc
2965	ldr	r3, .L379+108
2966	str	r0, [r3]
2967	ldrh	r0, [r5]
2968	movs	r5, #20
2969	muls	r0, r6, r0
2970	bl	ftl_malloc
2971	ldr	r3, .L379+112
2972	str	r0, [r3]
2973	ldrh	r3, [r10]
2974	muls	r5, r3, r5
2975	lsls	r7, r5, #2
2976	mov	r0, r7
2977	bl	ftl_malloc
2978	ldr	r3, .L379+116
2979	str	r0, [r3]
2980	mov	r0, r5
2981	bl	ftl_malloc
2982	ldr	r3, .L379+120
2983	str	r0, [r3]
2984	mov	r0, r7
2985	bl	ftl_malloc
2986	ldr	r3, .L379+124
2987	ldr	r7, .L379+128
2988	str	r0, [r3]
2989	mov	r0, r5
2990	bl	ftl_malloc
2991	ldr	r3, .L379+132
2992	str	r0, [r3]
2993	mov	r0, r5
2994	bl	ftl_malloc
2995	ldr	r3, .L379+136
2996	ldrh	r5, [r7]
2997	str	r0, [r3]
2998	ldrh	r3, [r10]
2999	mov	r0, r5
3000	lsls	r3, r3, #1
3001	adds	r3, r3, #1
3002	str	r3, [r8]
3003	bl	ftl_malloc
3004	ldr	r3, .L379+140
3005	str	r0, [r3]
3006	mov	r0, r5
3007	bl	ftl_malloc
3008	ldr	r3, .L379+144
3009	str	r0, [r3]
3010	mov	r0, r5
3011	bl	ftl_malloc
3012	ldr	r3, .L379+148
3013	str	r0, [r3]
3014	ldr	r0, [r8]
3015	muls	r0, r5, r0
3016	bl	ftl_malloc
3017	ldr	r3, .L379+152
3018	str	r0, [r3]
3019	mov	r0, r5
3020	bl	ftl_malloc
3021	ldr	r3, .L379+156
3022	str	r0, [r3]
3023	mov	r0, r5
3024	bl	ftl_malloc
3025	ldr	r3, .L379+160
3026	str	r0, [r3]
3027	ldr	r0, [r8]
3028	muls	r0, r6, r0
3029	bl	ftl_malloc
3030	ldr	r3, .L379+164
3031	str	r0, [r3]
3032	mov	r0, r5
3033	bl	ftl_malloc
3034	ldr	r3, .L379+168
3035	str	r0, [r3]
3036	mov	r0, r5
3037	bl	ftl_malloc
3038	ldr	r3, .L379+172
3039	str	r0, [r3]
3040	ldr	r3, .L379+176
3041	ldrh	r0, [r3]
3042	lsls	r0, r0, #2
3043	bl	ftl_malloc
3044	ldr	r3, .L379+180
3045	ldrh	r5, [r10]
3046	ldr	r10, .L379+304
3047	str	r0, [r3]
3048	ldrh	r3, [fp]
3049	muls	r5, r3, r5
3050	mov	r0, r5
3051	bl	ftl_malloc
3052	ldr	r3, .L379+184
3053	str	r0, [r3]
3054	lsls	r0, r5, #2
3055	ldr	r5, .L379+188
3056	bl	ftl_malloc
3057	ldr	r3, .L379+192
3058	str	r0, [r3]
3059	ldrh	r3, [fp]
3060	ldr	r0, [r8]
3061	ldr	r8, .L379+308
3062	muls	r0, r3, r0
3063	bl	ftl_malloc
3064	ldr	r3, .L379+196
3065	str	r0, [r3]
3066	ldrh	r0, [r5]
3067	lsls	r0, r0, #1
3068	uxth	r0, r0
3069	strh	r0, [r8]	@ movhi
3070	bl	ftl_malloc
3071	ldr	r3, .L379+200
3072	str	r0, [r3]
3073	ldrh	r3, [r8]
3074	ldr	r0, .L379+204
3075	addw	r3, r3, #547
3076	lsrs	r3, r3, #9
3077	and	r0, r0, r3, lsl #9
3078	strh	r3, [r8]	@ movhi
3079	bl	ftl_malloc
3080	ldr	r3, .L379+208
3081	str	r0, [r3]
3082	adds	r0, r0, #32
3083	ldr	r3, .L379+212
3084	str	r0, [r3]
3085	ldrh	r0, [r5]
3086	lsls	r0, r0, #1
3087	bl	ftl_malloc
3088	ldr	r3, .L379+216
3089	str	r0, [r3]
3090	ldr	r3, [r10]
3091	lsl	r8, r3, #1
3092	mov	r0, r8
3093	bl	ftl_malloc
3094	ldr	r3, .L379+220
3095	str	r0, [r3]
3096	mov	r0, r8
3097	bl	ftl_malloc
3098	ldr	r3, .L379+224
3099	ldr	r8, .L379+312
3100	str	r0, [r3]
3101	ldrh	r0, [r5]
3102	lsrs	r0, r0, #3
3103	adds	r0, r0, #4
3104	bl	ftl_malloc
3105	ldr	r3, .L379+228
3106	str	r0, [r3]
3107	ldrh	r0, [r8]
3108	lsls	r0, r0, #1
3109	bl	ftl_malloc
3110	ldr	r3, .L379+232
3111	str	r0, [r3]
3112	ldrh	r0, [r8]
3113	lsls	r0, r0, #1
3114	bl	ftl_malloc
3115	ldr	r3, .L379+236
3116	str	r0, [r3]
3117	ldrh	r0, [r8]
3118	ldr	r8, .L379+316
3119	lsls	r0, r0, #2
3120	bl	ftl_malloc
3121	ldr	r3, .L379+240
3122	str	r0, [r3]
3123	ldrh	r0, [r8]
3124	lsls	r0, r0, #2
3125	bl	ftl_malloc
3126	ldrh	r2, [r8]
3127	mov	r1, r4
3128	ldr	r3, .L379+244
3129	ldr	r4, .L379+248
3130	lsls	r2, r2, #2
3131	str	r0, [r3]
3132	bl	ftl_memset
3133	ldr	r3, .L379+252
3134	ldrh	r0, [r3]
3135	lsls	r0, r0, #2
3136	bl	ftl_malloc
3137	ldr	r3, .L379+256
3138	str	r0, [r3]
3139	ldr	r0, [r10]
3140	lsls	r0, r0, #2
3141	bl	ftl_malloc
3142	ldr	r3, .L379+260
3143	str	r0, [r3]
3144	ldrh	r0, [r4]
3145	muls	r0, r6, r0
3146	ldr	r6, .L379+264
3147	bl	ftl_malloc
3148	ldr	r3, .L379+268
3149	str	r0, [r3]
3150	ldrh	r3, [r4]
3151	ldrh	r0, [r7]
3152	muls	r0, r3, r0
3153	bl	ftl_malloc
3154	ldr	r3, .L379+272
3155	str	r0, [r3]
3156	movs	r0, #6
3157	ldrh	r3, [r5]
3158	ldr	r5, .L379+276
3159	muls	r0, r3, r0
3160	bl	ftl_malloc
3161	ldr	r3, .L379+280
3162	str	r0, [r3]
3163	ldr	r3, .L379+284
3164	ldrh	r0, [r3]
3165	ldrh	r3, [r6]
3166	adds	r0, r0, #31
3167	asrs	r0, r0, #5
3168	strh	r0, [r5]	@ movhi
3169	muls	r0, r3, r0
3170	lsls	r0, r0, #2
3171	bl	ftl_malloc
3172	ldrh	r1, [r5]
3173	movs	r2, #1
3174	ldr	r3, .L379+288
3175	ldrh	r6, [r6]
3176	lsls	r1, r1, #2
3177	mov	r4, r3
3178	str	r0, [r4, #28]!
3179	mov	r0, r1
3180	b	.L380
3181.L381:
3182	.align	2
3183.L379:
3184	.word	.LANCHOR82
3185	.word	.LANCHOR96
3186	.word	.LANCHOR83
3187	.word	.LANCHOR21
3188	.word	.LANCHOR84
3189	.word	.LANCHOR85
3190	.word	.LANCHOR86
3191	.word	.LANCHOR87
3192	.word	.LANCHOR88
3193	.word	.LANCHOR89
3194	.word	.LANCHOR90
3195	.word	.LANCHOR91
3196	.word	.LANCHOR80
3197	.word	.LANCHOR92
3198	.word	.LANCHOR93
3199	.word	.LANCHOR94
3200	.word	.LANCHOR95
3201	.word	.LANCHOR97
3202	.word	.LANCHOR98
3203	.word	.LANCHOR99
3204	.word	.LANCHOR72
3205	.word	.LANCHOR73
3206	.word	.LANCHOR100
3207	.word	.LANCHOR101
3208	.word	.LANCHOR102
3209	.word	.LANCHOR74
3210	.word	.LANCHOR76
3211	.word	.LANCHOR68
3212	.word	.LANCHOR71
3213	.word	.LANCHOR103
3214	.word	.LANCHOR104
3215	.word	.LANCHOR105
3216	.word	.LANCHOR23
3217	.word	.LANCHOR79
3218	.word	.LANCHOR66
3219	.word	.LANCHOR106
3220	.word	.LANCHOR107
3221	.word	.LANCHOR108
3222	.word	.LANCHOR64
3223	.word	.LANCHOR109
3224	.word	.LANCHOR110
3225	.word	.LANCHOR63
3226	.word	.LANCHOR111
3227	.word	.LANCHOR112
3228	.word	.LANCHOR12
3229	.word	.LANCHOR113
3230	.word	.LANCHOR114
3231	.word	.LANCHOR6
3232	.word	.LANCHOR115
3233	.word	.LANCHOR65
3234	.word	.LANCHOR117
3235	.word	33553920
3236	.word	.LANCHOR118
3237	.word	.LANCHOR43
3238	.word	.LANCHOR42
3239	.word	.LANCHOR119
3240	.word	.LANCHOR120
3241	.word	.LANCHOR1
3242	.word	.LANCHOR36
3243	.word	.LANCHOR121
3244	.word	.LANCHOR122
3245	.word	.LANCHOR123
3246	.word	.LANCHOR33
3247	.word	.LANCHOR32
3248	.word	.LANCHOR124
3249	.word	.LANCHOR125
3250	.word	.LANCHOR10
3251	.word	.LANCHOR55
3252	.word	.LANCHOR126
3253	.word	.LANCHOR127
3254	.word	.LANCHOR40
3255	.word	.LANCHOR17
3256	.word	.LANCHOR37
3257	.word	.LANCHOR3
3258	.word	.LANCHOR67
3259	.word	.LANCHOR24
3260	.word	.LANCHOR30
3261	.word	.LANCHOR116
3262	.word	.LANCHOR27
3263	.word	.LANCHOR28
3264.L380:
3265.L375:
3266	cmp	r2, r6
3267	bcc	.L376
3268	add	r3, r3, r2, lsl #2
3269	ldr	r2, .L382
3270	movs	r1, #0
3271	adds	r3, r3, #24
3272.L377:
3273	cmp	r3, r2
3274	bne	.L378
3275	movs	r0, #0
3276	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3277.L376:
3278	ldr	r5, [r3, #28]
3279	adds	r2, r2, #1
3280	add	r5, r5, r0
3281	add	r0, r0, r1
3282	str	r5, [r4, #4]!
3283	b	.L375
3284.L378:
3285	str	r1, [r3, #4]!
3286	b	.L377
3287.L383:
3288	.align	2
3289.L382:
3290	.word	.LANCHOR37+56
3291	.size	FtlMemInit, .-FtlMemInit
3292	.section	.text.FtlBbt2Bitmap,"ax",%progbits
3293	.align	1
3294	.global	FtlBbt2Bitmap
3295	.syntax unified
3296	.thumb
3297	.thumb_func
3298	.fpu softvfp
3299	.type	FtlBbt2Bitmap, %function
3300FtlBbt2Bitmap:
3301	@ args = 0, pretend = 0, frame = 0
3302	@ frame_needed = 0, uses_anonymous_args = 0
3303	ldr	r3, .L390
3304	push	{r4, r5, r6, r7, r8, lr}
3305	mov	r5, r0
3306	ldr	r7, .L390+4
3307	mov	r6, r1
3308	subs	r4, r5, #2
3309	addw	r5, r5, #1022
3310	ldrh	r2, [r3]
3311	movs	r1, #0
3312	ldr	r8, .L390+12
3313	mov	r0, r6
3314	lsls	r2, r2, #2
3315	bl	ftl_memset
3316.L387:
3317	ldrh	r3, [r4, #2]
3318	movw	r2, #65535
3319	cmp	r3, r2
3320	beq	.L384
3321	ldrh	r2, [r7]
3322	cmp	r2, r3
3323	bhi	.L386
3324	movs	r2, #74
3325	mov	r1, r8
3326	ldr	r0, .L390+8
3327	bl	printf
3328.L386:
3329	ldrh	r3, [r4, #2]!
3330	movs	r2, #1
3331	cmp	r5, r4
3332	lsr	r1, r3, #5
3333	and	r3, r3, #31
3334	lsl	r3, r2, r3
3335	ldr	r2, [r6, r1, lsl #2]
3336	orr	r2, r2, r3
3337	str	r2, [r6, r1, lsl #2]
3338	bne	.L387
3339.L384:
3340	pop	{r4, r5, r6, r7, r8, pc}
3341.L391:
3342	.align	2
3343.L390:
3344	.word	.LANCHOR127
3345	.word	.LANCHOR17
3346	.word	.LC1
3347	.word	.LANCHOR128
3348	.size	FtlBbt2Bitmap, .-FtlBbt2Bitmap
3349	.section	.text.FtlBbtMemInit,"ax",%progbits
3350	.align	1
3351	.global	FtlBbtMemInit
3352	.syntax unified
3353	.thumb
3354	.thumb_func
3355	.fpu softvfp
3356	.type	FtlBbtMemInit, %function
3357FtlBbtMemInit:
3358	@ args = 0, pretend = 0, frame = 0
3359	@ frame_needed = 0, uses_anonymous_args = 0
3360	@ link register save eliminated.
3361	ldr	r0, .L393
3362	movw	r3, #65535
3363	movs	r2, #16
3364	movs	r1, #255
3365	strh	r3, [r0]	@ movhi
3366	movs	r3, #0
3367	strh	r3, [r0, #6]	@ movhi
3368	adds	r0, r0, #12
3369	b	ftl_memset
3370.L394:
3371	.align	2
3372.L393:
3373	.word	.LANCHOR37
3374	.size	FtlBbtMemInit, .-FtlBbtMemInit
3375	.section	.text.FtlFreeSysBlkQueueInit,"ax",%progbits
3376	.align	1
3377	.global	FtlFreeSysBlkQueueInit
3378	.syntax unified
3379	.thumb
3380	.thumb_func
3381	.fpu softvfp
3382	.type	FtlFreeSysBlkQueueInit, %function
3383FtlFreeSysBlkQueueInit:
3384	@ args = 0, pretend = 0, frame = 0
3385	@ frame_needed = 0, uses_anonymous_args = 0
3386	ldr	r3, .L396
3387	mov	r2, #2048
3388	push	{r4, lr}
3389	movs	r4, #0
3390	mov	r1, r4
3391	strh	r4, [r3, #2]	@ movhi
3392	strh	r4, [r3, #4]	@ movhi
3393	strh	r4, [r3, #6]	@ movhi
3394	strh	r0, [r3], #8	@ movhi
3395	mov	r0, r3
3396	bl	ftl_memset
3397	mov	r0, r4
3398	pop	{r4, pc}
3399.L397:
3400	.align	2
3401.L396:
3402	.word	.LANCHOR38
3403	.size	FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
3404	.section	.text.ftl_free_no_use_map_blk,"ax",%progbits
3405	.align	1
3406	.global	ftl_free_no_use_map_blk
3407	.syntax unified
3408	.thumb
3409	.thumb_func
3410	.fpu softvfp
3411	.type	ftl_free_no_use_map_blk, %function
3412ftl_free_no_use_map_blk:
3413	@ args = 0, pretend = 0, frame = 8
3414	@ frame_needed = 0, uses_anonymous_args = 0
3415	ldrh	r2, [r0, #10]
3416	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
3417	mov	r4, r0
3418	ldr	r5, [r0, #20]
3419	movs	r1, #0
3420	ldr	r7, [r0, #12]
3421	lsls	r2, r2, #1
3422	ldr	r6, [r0, #24]
3423	mov	r0, r5
3424	bl	ftl_memset
3425	movs	r3, #0
3426.L399:
3427	ldrh	r1, [r4, #6]
3428	uxth	r2, r3
3429	cmp	r1, r2
3430	bhi	.L403
3431	ldr	r3, .L418
3432	movs	r6, #0
3433	mov	r10, r6
3434	ldrh	r2, [r3]
3435	ldrh	r3, [r4]
3436	strh	r2, [r5, r3, lsl #1]	@ movhi
3437	mov	r2, r6
3438	ldrh	fp, [r5]
3439.L404:
3440	ldrh	r3, [r4, #10]
3441	uxth	ip, r6
3442	cmp	r3, ip
3443	bhi	.L408
3444	mov	r0, r10
3445	add	sp, sp, #8
3446	@ sp needed
3447	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3448.L403:
3449	uxth	r2, r3
3450	ldr	r1, [r6, r2, lsl #2]
3451	movs	r2, #0
3452	ubfx	r1, r1, #10, #16
3453.L400:
3454	ldrh	ip, [r4, #10]
3455	uxth	r0, r2
3456	cmp	ip, r0
3457	bhi	.L402
3458	adds	r3, r3, #1
3459	b	.L399
3460.L402:
3461	uxth	r0, r2
3462	ldrh	ip, [r7, r0, lsl #1]
3463	cmp	ip, r1
3464	bne	.L401
3465	cbz	r1, .L401
3466	ldrh	ip, [r5, r0, lsl #1]
3467	add	ip, ip, #1
3468	strh	ip, [r5, r0, lsl #1]	@ movhi
3469.L401:
3470	adds	r2, r2, #1
3471	b	.L400
3472.L408:
3473	uxth	r1, r6
3474	ldrh	r3, [r5, r1, lsl #1]
3475	lsl	r8, r1, #1
3476	cmp	fp, r3
3477	bls	.L405
3478	ldrh	r0, [r7, r1, lsl #1]
3479	add	r8, r8, r7
3480	cbnz	r0, .L406
3481.L407:
3482	adds	r6, r6, #1
3483	b	.L404
3484.L405:
3485	cmp	r3, #0
3486	bne	.L407
3487	ldrh	r0, [r7, r1, lsl #1]
3488	add	r8, r8, r7
3489	cmp	r0, #0
3490	beq	.L407
3491.L409:
3492	movs	r1, #1
3493	str	r2, [sp, #4]
3494	bl	FtlFreeSysBlkQueueIn
3495	ldr	r2, [sp, #4]
3496	strh	r2, [r8]	@ movhi
3497	ldrh	r3, [r4, #8]
3498	subs	r3, r3, #1
3499	strh	r3, [r4, #8]	@ movhi
3500	b	.L407
3501.L406:
3502	mov	r10, ip
3503	mov	fp, r3
3504	cmp	r3, #0
3505	beq	.L409
3506	b	.L407
3507.L419:
3508	.align	2
3509.L418:
3510	.word	.LANCHOR20
3511	.size	ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
3512	.section	.text.FtlL2PDataInit,"ax",%progbits
3513	.align	1
3514	.global	FtlL2PDataInit
3515	.syntax unified
3516	.thumb
3517	.thumb_func
3518	.fpu softvfp
3519	.type	FtlL2PDataInit, %function
3520FtlL2PDataInit:
3521	@ args = 0, pretend = 0, frame = 0
3522	@ frame_needed = 0, uses_anonymous_args = 0
3523	push	{r4, r5, r6, r7, r8, lr}
3524	movs	r1, #0
3525	ldr	r5, .L423
3526	ldr	r4, .L423+4
3527	ldr	r2, [r5]
3528	ldr	r7, .L423+8
3529	ldr	r6, .L423+12
3530	ldr	r0, [r4]
3531	lsls	r2, r2, #1
3532	ldr	r8, .L423+44
3533	bl	ftl_memset
3534	ldrh	r3, [r7]
3535	movs	r1, #255
3536	ldrh	r2, [r6]
3537	ldr	r0, [r8]
3538	muls	r2, r3, r2
3539	bl	ftl_memset
3540	ldr	r3, .L423+16
3541	movw	r0, #65535
3542	ldrh	r1, [r6]
3543	ldr	ip, [r8]
3544	ldr	r2, [r3]
3545	movs	r3, #12
3546	ldrh	r7, [r7]
3547	mla	r3, r1, r3, r3
3548	adds	r1, r2, r3
3549	movs	r3, #0
3550	mov	lr, r3
3551.L421:
3552	adds	r2, r2, #12
3553	adds	r6, r3, r7
3554	cmp	r2, r1
3555	bne	.L422
3556	ldr	r3, .L423+20
3557	ldr	r2, [r5]
3558	strh	r0, [r3, #2]	@ movhi
3559	strh	r2, [r3, #10]	@ movhi
3560	movw	r2, #61634
3561	strh	r2, [r3, #4]	@ movhi
3562	ldr	r2, .L423+24
3563	strh	r0, [r3]	@ movhi
3564	ldrh	r2, [r2]
3565	strh	r2, [r3, #8]	@ movhi
3566	ldr	r2, .L423+28
3567	ldrh	r2, [r2]
3568	strh	r2, [r3, #6]	@ movhi
3569	ldr	r2, .L423+32
3570	ldr	r2, [r2]
3571	str	r2, [r3, #12]
3572	ldr	r2, .L423+36
3573	ldr	r2, [r2]
3574	str	r2, [r3, #16]
3575	ldr	r2, [r4]
3576	str	r2, [r3, #20]
3577	ldr	r2, .L423+40
3578	ldr	r2, [r2]
3579	str	r2, [r3, #24]
3580	pop	{r4, r5, r6, r7, r8, pc}
3581.L422:
3582	bic	r3, r3, #3
3583	str	lr, [r2, #-8]
3584	add	r3, r3, ip
3585	strh	r0, [r2, #-12]	@ movhi
3586	str	r3, [r2, #-4]
3587	mov	r3, r6
3588	b	.L421
3589.L424:
3590	.align	2
3591.L423:
3592	.word	.LANCHOR30
3593	.word	.LANCHOR120
3594	.word	.LANCHOR23
3595	.word	.LANCHOR33
3596	.word	.LANCHOR55
3597	.word	.LANCHOR129
3598	.word	.LANCHOR130
3599	.word	.LANCHOR32
3600	.word	.LANCHOR119
3601	.word	.LANCHOR125
3602	.word	.LANCHOR124
3603	.word	.LANCHOR126
3604	.size	FtlL2PDataInit, .-FtlL2PDataInit
3605	.section	.text.FtlVariablesInit,"ax",%progbits
3606	.align	1
3607	.global	FtlVariablesInit
3608	.syntax unified
3609	.thumb
3610	.thumb_func
3611	.fpu softvfp
3612	.type	FtlVariablesInit, %function
3613FtlVariablesInit:
3614	@ args = 0, pretend = 0, frame = 0
3615	@ frame_needed = 0, uses_anonymous_args = 0
3616	push	{r3, r4, r5, lr}
3617	movw	r2, #65535
3618	ldr	r3, .L426
3619	movs	r4, #0
3620	mov	r1, r4
3621	ldr	r5, .L426+4
3622	strh	r2, [r3]	@ movhi
3623	mov	r2, #-1
3624	ldr	r3, .L426+8
3625	str	r4, [r3]
3626	ldr	r3, .L426+12
3627	str	r4, [r3]
3628	ldr	r3, .L426+16
3629	str	r2, [r3]
3630	ldr	r3, .L426+20
3631	strh	r4, [r3]	@ movhi
3632	ldr	r3, .L426+24
3633	ldrh	r2, [r3]
3634	ldr	r3, .L426+28
3635	lsls	r2, r2, #1
3636	ldr	r0, [r3]
3637	bl	ftl_memset
3638	ldrh	r2, [r5]
3639	mov	r1, r4
3640	ldr	r3, .L426+32
3641	lsls	r2, r2, #1
3642	ldr	r0, [r3]
3643	bl	ftl_memset
3644	ldrh	r2, [r5]
3645	mov	r1, r4
3646	ldr	r3, .L426+36
3647	lsls	r2, r2, #1
3648	ldr	r0, [r3]
3649	bl	ftl_memset
3650	mov	r1, r4
3651	movs	r2, #48
3652	ldr	r0, .L426+40
3653	bl	ftl_memset
3654	mov	r2, #512
3655	mov	r1, r4
3656	ldr	r0, .L426+44
3657	bl	ftl_memset
3658	bl	FtlGcBufInit
3659	bl	FtlL2PDataInit
3660	mov	r0, r4
3661	pop	{r3, r4, r5, pc}
3662.L427:
3663	.align	2
3664.L426:
3665	.word	.LANCHOR131
3666	.word	.LANCHOR6
3667	.word	.LANCHOR132
3668	.word	.LANCHOR133
3669	.word	.LANCHOR134
3670	.word	.LANCHOR35
3671	.word	.LANCHOR27
3672	.word	.LANCHOR36
3673	.word	.LANCHOR43
3674	.word	.LANCHOR117
3675	.word	.LANCHOR39
3676	.word	.LANCHOR135
3677	.size	FtlVariablesInit, .-FtlVariablesInit
3678	.section	.text.SupperBlkListInit,"ax",%progbits
3679	.align	1
3680	.global	SupperBlkListInit
3681	.syntax unified
3682	.thumb
3683	.thumb_func
3684	.fpu softvfp
3685	.type	SupperBlkListInit, %function
3686SupperBlkListInit:
3687	@ args = 0, pretend = 0, frame = 16
3688	@ frame_needed = 0, uses_anonymous_args = 0
3689	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
3690	movs	r2, #6
3691	ldr	r3, .L439
3692	movs	r1, #0
3693	movs	r4, #0
3694	ldr	r6, .L439+4
3695	mov	r8, r4
3696	ldrh	r3, [r3]
3697	mov	r5, r4
3698	ldr	r0, [r6]
3699	mov	r10, r6
3700	muls	r2, r3, r2
3701	bl	ftl_memset
3702	ldr	r3, .L439+8
3703	ldr	r2, .L439+12
3704	str	r4, [r3]
3705	ldr	r3, .L439+16
3706	strh	r4, [r2]	@ movhi
3707	str	r2, [sp, #4]
3708	str	r4, [r3]
3709	ldr	r3, .L439+20
3710	str	r4, [r3]
3711	ldr	r3, .L439+24
3712	mov	fp, r3
3713	strh	r4, [r3]	@ movhi
3714.L429:
3715	ldr	r3, .L439+28
3716	uxth	r7, r4
3717	ldrh	r3, [r3]
3718	cmp	r7, r3
3719	bcs	.L436
3720	ldr	r3, .L439+32
3721	ldrh	r2, [r3]
3722	ldr	r3, .L439+36
3723	ldrh	r3, [r3]
3724	str	r3, [sp]
3725	movs	r3, #0
3726	mov	r6, r3
3727	b	.L437
3728.L431:
3729	str	r2, [sp, #12]
3730	mov	r1, r7
3731	ldr	r2, .L439+40
3732	str	r3, [sp, #8]
3733	ldrb	r0, [r2, r3]	@ zero_extendqisi2
3734	bl	V2P_block
3735	bl	FtlBbmIsBadBlock
3736	ldr	r3, [sp, #8]
3737	ldr	r2, [sp, #12]
3738	cbnz	r0, .L430
3739	ldr	r1, [sp]
3740	add	r6, r6, r1
3741	uxth	r6, r6
3742.L430:
3743	adds	r3, r3, #1
3744.L437:
3745	uxth	r1, r3
3746	cmp	r2, r1
3747	bhi	.L431
3748	uxth	r3, r4
3749	cbz	r6, .L432
3750	mov	r1, r6
3751	str	r3, [sp]
3752	mov	r0, #32768
3753	bl	__aeabi_idiv
3754	ldr	r3, [sp]
3755	uxth	r6, r0
3756.L433:
3757	ldr	r1, [r10]
3758	movs	r2, #6
3759	mla	r2, r2, r3, r1
3760	strh	r6, [r2, #4]	@ movhi
3761	ldr	r2, .L439+44
3762	ldrh	r2, [r2]
3763	cmp	r2, r7
3764	beq	.L434
3765	ldr	r2, .L439+48
3766	ldrh	r2, [r2]
3767	cmp	r2, r7
3768	beq	.L434
3769	ldr	r2, .L439+52
3770	ldrh	r2, [r2]
3771	cmp	r2, r7
3772	beq	.L434
3773	ldr	r2, .L439+56
3774	ldr	r2, [r2]
3775	ldrh	r3, [r2, r3, lsl #1]
3776	cbnz	r3, .L435
3777	add	r8, r8, #1
3778	mov	r0, r7
3779	uxth	r8, r8
3780	bl	INSERT_FREE_LIST
3781.L434:
3782	adds	r4, r4, #1
3783	b	.L429
3784.L432:
3785	ldr	r2, .L439+56
3786	movw	r1, #65535
3787	ldr	r2, [r2]
3788	strh	r1, [r2, r3, lsl #1]	@ movhi
3789	b	.L433
3790.L435:
3791	adds	r5, r5, #1
3792	mov	r0, r7
3793	uxth	r5, r5
3794	bl	INSERT_DATA_LIST
3795	b	.L434
3796.L436:
3797	ldr	r2, [sp, #4]
3798	strh	r8, [fp]	@ movhi
3799	strh	r5, [r2]	@ movhi
3800	add	r5, r5, r8
3801	cmp	r5, r3
3802	ble	.L438
3803	movw	r2, #2216
3804	ldr	r1, .L439+60
3805	ldr	r0, .L439+64
3806	bl	printf
3807.L438:
3808	movs	r0, #0
3809	add	sp, sp, #16
3810	@ sp needed
3811	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3812.L440:
3813	.align	2
3814.L439:
3815	.word	.LANCHOR6
3816	.word	.LANCHOR40
3817	.word	.LANCHOR47
3818	.word	.LANCHOR45
3819	.word	.LANCHOR41
3820	.word	.LANCHOR44
3821	.word	.LANCHOR48
3822	.word	.LANCHOR5
3823	.word	.LANCHOR3
3824	.word	.LANCHOR19
3825	.word	.LANCHOR13
3826	.word	.LANCHOR51
3827	.word	.LANCHOR52
3828	.word	.LANCHOR53
3829	.word	.LANCHOR42
3830	.word	.LANCHOR136
3831	.word	.LC1
3832	.size	SupperBlkListInit, .-SupperBlkListInit
3833	.section	.text.FtlGcPageVarInit,"ax",%progbits
3834	.align	1
3835	.global	FtlGcPageVarInit
3836	.syntax unified
3837	.thumb
3838	.thumb_func
3839	.fpu softvfp
3840	.type	FtlGcPageVarInit, %function
3841FtlGcPageVarInit:
3842	@ args = 0, pretend = 0, frame = 0
3843	@ frame_needed = 0, uses_anonymous_args = 0
3844	ldr	r2, .L442
3845	movs	r3, #0
3846	push	{r4, lr}
3847	movs	r1, #255
3848	ldr	r4, .L442+4
3849	strh	r3, [r2]	@ movhi
3850	ldr	r2, .L442+8
3851	strh	r3, [r2]	@ movhi
3852	ldrh	r2, [r4]
3853	ldr	r3, .L442+12
3854	lsls	r2, r2, #1
3855	ldr	r0, [r3]
3856	bl	ftl_memset
3857	ldrh	r3, [r4]
3858	movs	r2, #12
3859	movs	r1, #255
3860	muls	r2, r3, r2
3861	ldr	r3, .L442+16
3862	ldr	r0, [r3]
3863	bl	ftl_memset
3864	pop	{r4, lr}
3865	b	FtlGcBufInit
3866.L443:
3867	.align	2
3868.L442:
3869	.word	.LANCHOR69
3870	.word	.LANCHOR21
3871	.word	.LANCHOR70
3872	.word	.LANCHOR68
3873	.word	.LANCHOR71
3874	.size	FtlGcPageVarInit, .-FtlGcPageVarInit
3875	.section	.text.FlashGetBadBlockList,"ax",%progbits
3876	.align	1
3877	.global	FlashGetBadBlockList
3878	.syntax unified
3879	.thumb
3880	.thumb_func
3881	.fpu softvfp
3882	.type	FlashGetBadBlockList, %function
3883FlashGetBadBlockList:
3884	@ args = 0, pretend = 0, frame = 0
3885	@ frame_needed = 0, uses_anonymous_args = 0
3886	push	{r3, r4, r5, lr}
3887	mov	r2, #256
3888	mov	r5, r1
3889	movs	r1, #255
3890	mov	r4, r0
3891	bl	ftl_memset
3892	ldr	r3, .L451
3893	mov	r1, r5
3894	mov	r0, r4
3895	ldr	r3, [r3]
3896	blx	r3
3897	uxth	r0, r0
3898	cmp	r0, #50
3899	bls	.L445
3900	mov	r2, #256
3901	movs	r1, #255
3902	mov	r0, r4
3903	bl	ftl_memset
3904	movs	r0, #0
3905.L445:
3906	ldr	r3, .L451+4
3907	ldrh	r3, [r3, #14]
3908	cmp	r3, #4
3909	bne	.L450
3910	add	r1, r4, r0, lsl #1
3911	mov	r3, r4
3912.L447:
3913	cmp	r3, r1
3914	bne	.L448
3915.L450:
3916	pop	{r3, r4, r5, pc}
3917.L448:
3918	ldrh	r2, [r3]
3919	lsrs	r2, r2, #1
3920	strh	r2, [r3], #2	@ movhi
3921	b	.L447
3922.L452:
3923	.align	2
3924.L451:
3925	.word	.LANCHOR78
3926	.word	.LANCHOR0
3927	.size	FlashGetBadBlockList, .-FlashGetBadBlockList
3928	.section	.text.ftl_memcpy,"ax",%progbits
3929	.align	1
3930	.global	ftl_memcpy
3931	.syntax unified
3932	.thumb
3933	.thumb_func
3934	.fpu softvfp
3935	.type	ftl_memcpy, %function
3936ftl_memcpy:
3937	@ args = 0, pretend = 0, frame = 0
3938	@ frame_needed = 0, uses_anonymous_args = 0
3939	@ link register save eliminated.
3940	b	memcpy
3941	.size	ftl_memcpy, .-ftl_memcpy
3942	.section	.text.FlashReadPages,"ax",%progbits
3943	.align	1
3944	.global	FlashReadPages
3945	.syntax unified
3946	.thumb
3947	.thumb_func
3948	.fpu softvfp
3949	.type	FlashReadPages, %function
3950FlashReadPages:
3951	@ args = 0, pretend = 0, frame = 16
3952	@ frame_needed = 0, uses_anonymous_args = 0
3953	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
3954	mov	fp, r1
3955	ldr	r3, .L482
3956	mov	r4, r0
3957	mov	r10, #0
3958	ldrh	r2, [r3, #12]
3959	str	r3, [sp, #4]
3960	str	r2, [sp]
3961.L455:
3962	cmp	r10, fp
3963	bne	.L466
3964	movs	r0, #0
3965	add	sp, sp, #16
3966	@ sp needed
3967	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
3968.L466:
3969	ldr	r3, [r4, #8]
3970	cbz	r3, .L456
3971	ldr	r3, [r4, #12]
3972	cbnz	r3, .L457
3973.L456:
3974	movs	r2, #90
3975	ldr	r1, .L482+4
3976	ldr	r0, .L482+8
3977	bl	printf
3978.L457:
3979	add	r2, sp, #8
3980	add	r1, sp, #12
3981	ldr	r0, [r4, #4]
3982	bl	l2p_addr_tran.isra.0
3983	ldr	r0, [sp, #8]
3984	cmp	r0, #3
3985	bls	.L458
3986	mov	r3, #-1
3987	str	r3, [r4]
3988.L459:
3989	add	r10, r10, #1
3990	adds	r4, r4, #20
3991	b	.L455
3992.L458:
3993	ldr	r5, [r4, #8]
3994	uxtb	r0, r0
3995	ldr	r8, .L482+20
3996	ldr	r7, .L482+12
3997	tst	r5, #63
3998	ldr	r3, [r4, #12]
3999	it	ne
4000	ldrne	r5, [r8]
4001	ldr	r1, [sp, #12]
4002	ldr	r6, [r7, #12]
4003	mov	r2, r5
4004	blx	r6
4005	ldr	r3, [sp, #4]
4006	str	r0, [r4]
4007	ldrh	r3, [r3, #14]
4008	cmp	r3, #4
4009	bne	.L462
4010	ldr	r0, [sp]
4011	add	r2, r5, #2048
4012	ldr	r3, [r4, #12]
4013	ldr	r1, [sp, #12]
4014	ldr	r7, [r7, #12]
4015	adds	r3, r3, #8
4016	add	r1, r1, r0
4017	ldrb	r0, [sp, #8]	@ zero_extendqisi2
4018	blx	r7
4019	adds	r3, r0, #1
4020	beq	.L463
4021	ldr	r3, [r4, #12]
4022	ldr	r2, [r3, #12]
4023	adds	r2, r2, #1
4024	bne	.L464
4025	ldr	r2, [r3, #8]
4026	adds	r2, r2, #1
4027	bne	.L464
4028	ldr	r3, [r3]
4029	adds	r3, r3, #1
4030	beq	.L464
4031.L463:
4032	mov	r3, #-1
4033	str	r3, [r4]
4034.L464:
4035	ldr	r3, [r4]
4036	adds	r3, r3, #1
4037	beq	.L462
4038	cmp	r0, #256
4039	it	eq
4040	streq	r0, [r4]
4041.L462:
4042	ldr	r3, [r8]
4043	cmp	r5, r3
4044	bne	.L459
4045	ldr	r0, [r4, #8]
4046	cmp	r5, r0
4047	beq	.L459
4048	ldr	r3, .L482+16
4049	mov	r1, r5
4050	ldrh	r2, [r3]
4051	lsls	r2, r2, #9
4052	bl	ftl_memcpy
4053	b	.L459
4054.L483:
4055	.align	2
4056.L482:
4057	.word	.LANCHOR0
4058	.word	.LANCHOR137
4059	.word	.LC1
4060	.word	.LANCHOR78
4061	.word	.LANCHOR12
4062	.word	.LANCHOR111
4063	.size	FlashReadPages, .-FlashReadPages
4064	.section	.text.FtlLoadFactoryBbt,"ax",%progbits
4065	.align	1
4066	.global	FtlLoadFactoryBbt
4067	.syntax unified
4068	.thumb
4069	.thumb_func
4070	.fpu softvfp
4071	.type	FtlLoadFactoryBbt, %function
4072FtlLoadFactoryBbt:
4073	@ args = 0, pretend = 0, frame = 0
4074	@ frame_needed = 0, uses_anonymous_args = 0
4075	ldr	r3, .L494
4076	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4077	movs	r6, #0
4078	ldr	r5, .L494+4
4079	ldr	r3, [r3]
4080	ldr	r7, .L494+8
4081	ldr	r10, .L494+20
4082	str	r3, [r5, #8]
4083	ldr	r3, .L494+12
4084	ldr	r8, [r3]
4085	str	r8, [r5, #12]
4086.L485:
4087	ldr	r3, .L494+16
4088	ldrh	r3, [r3]
4089	cmp	r6, r3
4090	bcc	.L490
4091	movs	r0, #0
4092	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4093.L490:
4094	ldrh	r4, [r10]
4095	movw	r3, #65535
4096	ldr	fp, .L494+4
4097	strh	r3, [r7, #2]!	@ movhi
4098	subs	r4, r4, #1
4099	uxth	r4, r4
4100.L486:
4101	ldrh	r3, [r10]
4102	sub	r2, r3, #15
4103	cmp	r2, r4
4104	bgt	.L488
4105	mla	r3, r6, r3, r4
4106	movs	r2, #1
4107	mov	r1, r2
4108	mov	r0, fp
4109	lsls	r3, r3, #10
4110	str	r3, [r5, #4]
4111	bl	FlashReadPages
4112	ldr	r3, [r5]
4113	adds	r3, r3, #1
4114	beq	.L487
4115	ldrh	r2, [r8]
4116	movw	r3, #61664
4117	cmp	r2, r3
4118	bne	.L487
4119	strh	r4, [r7]	@ movhi
4120.L488:
4121	adds	r6, r6, #1
4122	b	.L485
4123.L487:
4124	subs	r4, r4, #1
4125	uxth	r4, r4
4126	b	.L486
4127.L495:
4128	.align	2
4129.L494:
4130	.word	.LANCHOR106
4131	.word	.LANCHOR138
4132	.word	.LANCHOR37+10
4133	.word	.LANCHOR114
4134	.word	.LANCHOR10
4135	.word	.LANCHOR17
4136	.size	FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
4137	.section	.text.FtlGetLastWrittenPage,"ax",%progbits
4138	.align	1
4139	.global	FtlGetLastWrittenPage
4140	.syntax unified
4141	.thumb
4142	.thumb_func
4143	.fpu softvfp
4144	.type	FtlGetLastWrittenPage, %function
4145FtlGetLastWrittenPage:
4146	@ args = 0, pretend = 0, frame = 88
4147	@ frame_needed = 0, uses_anonymous_args = 0
4148	cmp	r1, #1
4149	push	{r4, r5, r6, r7, r8, lr}
4150	it	eq
4151	ldreq	r3, .L508
4152	sub	sp, sp, #88
4153	lsl	r7, r0, #10
4154	mov	r2, r1
4155	it	ne
4156	ldrne	r3, .L508+4
4157	mov	r6, r1
4158	add	r0, sp, #4
4159	movs	r1, #1
4160	ldrh	r5, [r3]
4161	ldr	r3, .L508+8
4162	subs	r5, r5, #1
4163	ldr	r3, [r3]
4164	sxth	r5, r5
4165	str	r3, [sp, #12]
4166	add	r3, sp, #24
4167	str	r3, [sp, #16]
4168	orr	r3, r5, r7
4169	str	r3, [sp, #8]
4170	bl	FlashReadPages
4171	ldr	r3, [sp, #24]
4172	adds	r3, r3, #1
4173	bne	.L499
4174	mov	r8, #0
4175.L500:
4176	cmp	r8, r5
4177	ble	.L503
4178.L499:
4179	mov	r0, r5
4180	add	sp, sp, #88
4181	@ sp needed
4182	pop	{r4, r5, r6, r7, r8, pc}
4183.L503:
4184	add	r3, r8, r5
4185	mov	r2, r6
4186	add	r3, r3, r3, lsr #31
4187	movs	r1, #1
4188	add	r0, sp, #4
4189	asrs	r4, r3, #1
4190	sxth	r3, r4
4191	orrs	r3, r3, r7
4192	str	r3, [sp, #8]
4193	bl	FlashReadPages
4194	ldr	r3, [sp, #24]
4195	adds	r3, r3, #1
4196	bne	.L501
4197	ldr	r3, [sp, #28]
4198	adds	r3, r3, #1
4199	bne	.L501
4200	ldr	r3, [sp, #4]
4201	adds	r3, r3, #1
4202	beq	.L501
4203	subs	r4, r4, #1
4204	sxth	r5, r4
4205	b	.L500
4206.L501:
4207	adds	r4, r4, #1
4208	sxth	r8, r4
4209	b	.L500
4210.L509:
4211	.align	2
4212.L508:
4213	.word	.LANCHOR20
4214	.word	.LANCHOR19
4215	.word	.LANCHOR112
4216	.size	FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
4217	.section	.text.FtlScanSysBlk,"ax",%progbits
4218	.align	1
4219	.global	FtlScanSysBlk
4220	.syntax unified
4221	.thumb
4222	.thumb_func
4223	.fpu softvfp
4224	.type	FtlScanSysBlk, %function
4225FtlScanSysBlk:
4226	@ args = 0, pretend = 0, frame = 32
4227	@ frame_needed = 0, uses_anonymous_args = 0
4228	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4229	movs	r4, #0
4230	ldr	r5, .L591
4231	sub	sp, sp, #32
4232	mov	r1, r4
4233	ldr	r3, .L591+4
4234	ldr	r2, [r5]
4235	ldr	r6, .L591+8
4236	strh	r4, [r3]	@ movhi
4237	ldr	r3, .L591+12
4238	lsls	r2, r2, #2
4239	strh	r4, [r6]	@ movhi
4240	ldr	r7, .L591+16
4241	ldr	r0, [r3]
4242	bl	ftl_memset
4243	ldr	r2, [r5]
4244	mov	r1, r4
4245	ldr	r3, .L591+20
4246	lsls	r2, r2, #1
4247	ldr	r0, [r3]
4248	bl	ftl_memset
4249	ldrh	r2, [r7]
4250	mov	r1, r4
4251	ldr	r3, .L591+24
4252	lsls	r2, r2, #2
4253	ldr	r0, [r3]
4254	bl	ftl_memset
4255	ldrh	r2, [r7]
4256	mov	r1, r4
4257	ldr	r3, .L591+28
4258	lsls	r2, r2, #1
4259	ldr	r0, [r3]
4260	bl	ftl_memset
4261	movs	r2, #16
4262	movs	r1, #255
4263	ldr	r0, .L591+32
4264	bl	ftl_memset
4265	ldr	r3, .L591+36
4266	str	r6, [sp, #12]
4267	str	r5, [sp, #16]
4268	ldrh	r3, [r3]
4269	str	r3, [sp, #4]
4270.L511:
4271	ldr	r3, .L591+40
4272	ldr	r2, [sp, #4]
4273	ldrh	r3, [r3]
4274	cmp	r3, r2
4275	bls	.L552
4276	ldr	r3, .L591+44
4277	movs	r5, #0
4278	ldr	r1, .L591+48
4279	mov	fp, r5
4280	movs	r7, #20
4281	ldrh	r8, [r3]
4282	ldr	r3, .L591+52
4283	ldr	r2, [r1]
4284	ldr	r1, .L591+56
4285	ldr	r6, [r3]
4286	ldr	r3, .L591+60
4287	str	r2, [sp, #8]
4288	ldrh	r10, [r1]
4289	ldr	r3, [r3]
4290	ldr	r2, .L591+64
4291	b	.L553
4292.L513:
4293	ldrb	r0, [r2, r5]	@ zero_extendqisi2
4294	ldr	r1, [sp, #4]
4295	str	r3, [sp, #28]
4296	str	r2, [sp, #24]
4297	bl	V2P_block
4298	str	r0, [sp, #20]
4299	bl	FtlBbmIsBadBlock
4300	ldr	r2, [sp, #24]
4301	ldr	r3, [sp, #28]
4302	cbnz	r0, .L512
4303	ldr	r1, [sp, #20]
4304	mla	r0, r7, fp, r6
4305	ldr	r4, [sp, #8]
4306	lsls	r1, r1, #10
4307	str	r3, [r0, #8]
4308	str	r1, [r0, #4]
4309	mul	r1, r10, fp
4310	bic	r1, r1, #3
4311	add	r1, r1, r4
4312	str	r1, [r0, #12]
4313	add	r1, fp, #1
4314	uxth	fp, r1
4315.L512:
4316	adds	r5, r5, #1
4317.L553:
4318	uxth	r1, r5
4319	cmp	r8, r1
4320	bhi	.L513
4321	cmp	fp, #0
4322	bne	.L514
4323.L551:
4324	ldr	r3, [sp, #4]
4325	adds	r3, r3, #1
4326	uxth	r3, r3
4327	str	r3, [sp, #4]
4328	b	.L511
4329.L514:
4330	movs	r7, #0
4331	movs	r2, #1
4332	mov	r1, fp
4333	mov	r0, r6
4334	bl	FlashReadPages
4335.L515:
4336	uxth	r3, r7
4337	cmp	fp, r3
4338	bls	.L551
4339	ldr	r3, .L591+52
4340	mov	r8, #20
4341	mul	r8, r8, r7
4342	ldr	r3, [r3]
4343	add	r2, r3, r8
4344	ldr	r3, [r3, r8]
4345	ldr	r5, [r2, #4]
4346	ldr	r6, [r2, #12]
4347	adds	r3, r3, #1
4348	ubfx	r5, r5, #10, #16
4349	bne	.L518
4350	mov	r10, #16
4351.L520:
4352	ldr	r3, .L591+52
4353	movs	r2, #1
4354	mov	r1, r2
4355	ldr	r0, [r3]
4356	add	r0, r0, r8
4357	ldr	r3, [r0, #4]
4358	adds	r3, r3, #1
4359	str	r3, [r0, #4]
4360	bl	FlashReadPages
4361	ldrh	r2, [r6]
4362	movw	r3, #65535
4363	cmp	r2, r3
4364	ldr	r3, .L591+52
4365	ldr	r3, [r3]
4366	bne	.L517
4367	mov	r2, #-1
4368	str	r2, [r3, r8]
4369	ldr	r3, .L591+52
4370	ldr	r3, [r3]
4371	ldr	r3, [r3, r8]
4372	cmp	r3, r2
4373	bne	.L518
4374.L519:
4375	movs	r1, #1
4376	b	.L590
4377.L517:
4378	ldr	r3, [r3, r8]
4379	adds	r3, r3, #1
4380	bne	.L518
4381	add	r10, r10, #-1
4382	uxth	r10, r10
4383	cmp	r10, #0
4384	bne	.L520
4385	b	.L519
4386.L518:
4387	ldr	r3, .L591+68
4388	ldr	r2, [r3]
4389	ldr	r3, [r6, #4]
4390	adds	r1, r2, #1
4391	beq	.L521
4392	cmp	r2, r3
4393	bhi	.L522
4394.L521:
4395	adds	r2, r3, #1
4396	ittt	ne
4397	ldrne	r1, .L591+68
4398	addne	r2, r3, #1
4399	strne	r2, [r1]
4400.L522:
4401	ldrh	r2, [r6]
4402	movw	r1, #61604
4403	cmp	r2, r1
4404	beq	.L524
4405	bhi	.L525
4406	movw	r3, #61574
4407	cmp	r2, r3
4408	beq	.L526
4409.L523:
4410	adds	r7, r7, #1
4411	b	.L515
4412.L525:
4413	movw	r3, #61634
4414	cmp	r2, r3
4415	beq	.L527
4416	movw	r3, #65535
4417	cmp	r2, r3
4418	bne	.L523
4419	movs	r1, #0
4420.L590:
4421	mov	r0, r5
4422	bl	FtlFreeSysBlkQueueIn
4423	b	.L523
4424.L527:
4425	ldr	r3, .L591+8
4426	ldrh	r2, [r3]
4427	ldr	r3, .L591
4428	ldr	r3, [r3]
4429	cmp	r2, r3
4430	bls	.L529
4431	movw	r2, #1225
4432	ldr	r1, .L591+72
4433	ldr	r0, .L591+76
4434	bl	printf
4435.L529:
4436	ldr	r3, [sp, #16]
4437	ldr	r2, [sp, #12]
4438	ldr	r1, [r3]
4439	ldrh	r0, [r2]
4440	ldr	r2, .L591+12
4441	uxth	r10, r1
4442	ldr	ip, [r2]
4443	add	r3, r10, #-1
4444	sub	r10, r10, r0
4445	add	r10, r10, #-1
4446	sxth	r3, r3
4447	sxth	r10, r10
4448.L530:
4449	cmp	r3, r10
4450	bgt	.L536
4451	cmp	r3, #0
4452	bge	.L568
4453	b	.L523
4454.L536:
4455	ldr	r2, [ip, r3, lsl #2]
4456	add	r8, ip, r3, lsl #2
4457	ldr	r4, [r6, #4]
4458	cmp	r4, r2
4459	bls	.L531
4460	ldr	r2, [ip]
4461	cbnz	r2, .L532
4462	cmp	r1, r0
4463	ittt	ne
4464	ldrne	r2, .L591+8
4465	addne	r0, r0, #1
4466	strhne	r0, [r2]	@ movhi
4467.L532:
4468	ldr	r2, .L591+20
4469	uxth	r10, r3
4470	ldr	r0, [r2]
4471	movs	r2, #0
4472.L533:
4473	uxth	lr, r2
4474	sxth	r1, r2
4475	cmp	r10, lr
4476	bhi	.L534
4477	ldr	r2, [r6, #4]
4478	cmp	r3, #0
4479	str	r2, [r8]
4480	strh	r5, [r0, r3, lsl #1]	@ movhi
4481	blt	.L523
4482	ldr	r2, .L591+8
4483	ldrh	r0, [r2]
4484	ldr	r2, .L591
4485	ldr	r2, [r2]
4486	subs	r2, r2, r0
4487	subs	r2, r2, #1
4488	sxth	r2, r2
4489	cmp	r3, r2
4490	bgt	.L523
4491.L568:
4492	ldr	r2, .L591+8
4493	adds	r0, r0, #1
4494	strh	r0, [r2]	@ movhi
4495	ldr	r2, [r6, #4]
4496	str	r2, [ip, r3, lsl #2]
4497	ldr	r2, .L591+20
4498.L588:
4499	ldr	r2, [r2]
4500	strh	r5, [r2, r3, lsl #1]	@ movhi
4501	b	.L523
4502.L534:
4503	add	lr, ip, r1, lsl #2
4504	adds	r2, r2, #1
4505	ldr	r4, [lr, #4]
4506	add	lr, r0, r1, lsl #1
4507	ldrh	lr, [lr, #2]
4508	str	r4, [ip, r1, lsl #2]
4509	strh	lr, [r0, r1, lsl #1]	@ movhi
4510	b	.L533
4511.L531:
4512	subs	r3, r3, #1
4513	sxth	r3, r3
4514	b	.L530
4515.L592:
4516	.align	2
4517.L591:
4518	.word	.LANCHOR30
4519	.word	.LANCHOR35
4520	.word	.LANCHOR130
4521	.word	.LANCHOR125
4522	.word	.LANCHOR27
4523	.word	.LANCHOR119
4524	.word	.LANCHOR122
4525	.word	.LANCHOR36
4526	.word	.LANCHOR139
4527	.word	.LANCHOR5
4528	.word	.LANCHOR6
4529	.word	.LANCHOR3
4530	.word	.LANCHOR65
4531	.word	.LANCHOR103
4532	.word	.LANCHOR24
4533	.word	.LANCHOR64
4534	.word	.LANCHOR13
4535	.word	.LANCHOR82
4536	.word	.LANCHOR140
4537	.word	.LC1
4538.L526:
4539	ldr	r8, .L593+12
4540	ldr	r10, .L593+20
4541	ldrh	r2, [r8]
4542	ldrh	r3, [r10]
4543	cmp	r2, r3
4544	bls	.L539
4545	movw	r2, #1266
4546	ldr	r1, .L593
4547	ldr	r0, .L593+4
4548	bl	printf
4549.L539:
4550	ldr	r2, .L593+8
4551	ldrh	lr, [r10]
4552	ldrh	ip, [r8]
4553	ldr	r0, [r2]
4554	add	r10, lr, #-1
4555	sxth	r3, r10
4556	sub	r10, r10, ip
4557.L540:
4558	cmp	r3, r10
4559	ble	.L545
4560	ldr	r1, [r6, #4]
4561	add	r8, r0, r3, lsl #2
4562	ldr	r2, [r0, r3, lsl #2]
4563	cmp	r1, r2
4564	bls	.L541
4565	ldr	r2, [r0]
4566	cbnz	r2, .L542
4567	cmp	lr, ip
4568	ittt	ne
4569	ldrne	r2, .L593+12
4570	addne	ip, ip, #1
4571	strhne	ip, [r2]	@ movhi
4572.L542:
4573	ldr	r2, .L593+16
4574	uxth	r10, r3
4575	ldr	ip, [r2]
4576	movs	r2, #0
4577.L543:
4578	uxth	lr, r2
4579	sxth	r1, r2
4580	cmp	r10, lr
4581	bhi	.L544
4582	ldr	r2, [r6, #4]
4583	str	r2, [r8]
4584	strh	r5, [ip, r3, lsl #1]	@ movhi
4585.L545:
4586	cmp	r3, #0
4587	blt	.L523
4588	ldr	r2, .L593+20
4589	ldr	ip, .L593+12
4590	ldrh	r2, [r2]
4591	ldrh	r1, [ip]
4592	subs	r2, r2, #1
4593	subs	r2, r2, r1
4594	sxth	r2, r2
4595	cmp	r3, r2
4596	bgt	.L523
4597	ldr	r2, [r6, #4]
4598	adds	r1, r1, #1
4599	strh	r1, [ip]	@ movhi
4600	str	r2, [r0, r3, lsl #2]
4601	ldr	r2, .L593+16
4602	b	.L588
4603.L544:
4604	add	lr, r0, r1, lsl #2
4605	adds	r2, r2, #1
4606	ldr	r4, [lr, #4]
4607	add	lr, ip, r1, lsl #1
4608	ldrh	lr, [lr, #2]
4609	str	r4, [r0, r1, lsl #2]
4610	strh	lr, [ip, r1, lsl #1]	@ movhi
4611	b	.L543
4612.L541:
4613	subs	r3, r3, #1
4614	sxth	r3, r3
4615	b	.L540
4616.L524:
4617	ldr	r8, .L593+40
4618	movw	r2, #65535
4619	ldrh	r1, [r8]
4620	cmp	r1, r2
4621	bne	.L547
4622.L589:
4623	strh	r5, [r8]	@ movhi
4624	str	r3, [r8, #8]
4625	b	.L523
4626.L547:
4627	ldrh	r0, [r8, #4]
4628	cmp	r0, r2
4629	beq	.L548
4630	movs	r1, #1
4631	bl	FtlFreeSysBlkQueueIn
4632.L548:
4633	ldr	r3, [r6, #4]
4634	ldr	r2, [r8, #8]
4635	cmp	r2, r3
4636	bcs	.L549
4637	ldrh	r2, [r8]
4638	strh	r2, [r8, #4]	@ movhi
4639	b	.L589
4640.L549:
4641	strh	r5, [r8, #4]	@ movhi
4642	b	.L523
4643.L552:
4644	ldr	r3, .L593+24
4645	ldr	r2, [r3]
4646	ldrh	r3, [r2]
4647	cbz	r3, .L554
4648.L557:
4649	ldr	r3, .L593+16
4650	ldr	r4, [r3]
4651	ldrh	r2, [r4]
4652	cmp	r2, #0
4653	beq	.L555
4654.L556:
4655	ldr	r3, .L593+28
4656	ldrh	r2, [r3]
4657	ldr	r3, .L593+32
4658	ldr	r3, [r3]
4659	cmp	r2, r3
4660	bls	.L587
4661	movw	r2, #1391
4662	ldr	r1, .L593
4663	ldr	r0, .L593+4
4664	bl	printf
4665.L587:
4666	movs	r0, #0
4667	add	sp, sp, #32
4668	@ sp needed
4669	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
4670.L554:
4671	ldr	r1, .L593+28
4672	ldrh	r1, [r1]
4673	cmp	r1, #0
4674	beq	.L557
4675	ldr	r5, .L593+32
4676	ldr	r0, [r5]
4677.L558:
4678	sxth	r1, r3
4679	cmp	r1, r0
4680	bcs	.L557
4681	ldrh	r4, [r2, r1, lsl #1]
4682	adds	r3, r3, #1
4683	cmp	r4, #0
4684	beq	.L558
4685	ldr	r3, .L593+36
4686	movs	r6, #0
4687	ldr	r0, [r3]
4688	mov	r3, r1
4689.L559:
4690	ldr	r4, [r5]
4691	cmp	r3, r4
4692	bcs	.L557
4693	ldrh	r7, [r2, r3, lsl #1]
4694	subs	r4, r3, r1
4695	strh	r7, [r2, r4, lsl #1]	@ movhi
4696	ldr	r7, [r0, r3, lsl #2]
4697	str	r7, [r0, r4, lsl #2]
4698	strh	r6, [r2, r3, lsl #1]	@ movhi
4699	adds	r3, r3, #1
4700	sxth	r3, r3
4701	b	.L559
4702.L555:
4703	ldr	r3, .L593+12
4704	ldrh	r3, [r3]
4705	cmp	r3, #0
4706	beq	.L556
4707	ldr	r5, .L593+20
4708	ldrh	r1, [r5]
4709.L564:
4710	sxth	r3, r2
4711	cmp	r3, r1
4712	mov	r6, r3
4713	bge	.L556
4714	ldrh	r0, [r4, r3, lsl #1]
4715	adds	r2, r2, #1
4716	cmp	r0, #0
4717	beq	.L564
4718	ldr	r2, .L593+8
4719	movs	r0, #0
4720	ldr	r2, [r2]
4721.L565:
4722	ldrh	r1, [r5]
4723	cmp	r3, r1
4724	bge	.L556
4725	ldrh	r7, [r4, r3, lsl #1]
4726	subs	r1, r3, r6
4727	strh	r7, [r4, r1, lsl #1]	@ movhi
4728	ldr	r7, [r2, r3, lsl #2]
4729	str	r7, [r2, r1, lsl #2]
4730	adds	r1, r3, #1
4731	strh	r0, [r4, r3, lsl #1]	@ movhi
4732	sxth	r3, r1
4733	b	.L565
4734.L594:
4735	.align	2
4736.L593:
4737	.word	.LANCHOR140
4738	.word	.LC1
4739	.word	.LANCHOR122
4740	.word	.LANCHOR35
4741	.word	.LANCHOR36
4742	.word	.LANCHOR27
4743	.word	.LANCHOR119
4744	.word	.LANCHOR130
4745	.word	.LANCHOR30
4746	.word	.LANCHOR125
4747	.word	.LANCHOR139
4748	.size	FtlScanSysBlk, .-FtlScanSysBlk
4749	.section	.text.FtlLoadBbt,"ax",%progbits
4750	.align	1
4751	.global	FtlLoadBbt
4752	.syntax unified
4753	.thumb
4754	.thumb_func
4755	.fpu softvfp
4756	.type	FtlLoadBbt, %function
4757FtlLoadBbt:
4758	@ args = 0, pretend = 0, frame = 0
4759	@ frame_needed = 0, uses_anonymous_args = 0
4760	push	{r3, r4, r5, r6, r7, r8, r10, lr}
4761	ldr	r8, .L624+40
4762	ldr	r4, .L624
4763	ldr	r3, [r8]
4764	ldr	r7, .L624+4
4765	mov	r10, r4
4766	str	r3, [r4, #8]
4767	ldr	r3, .L624+8
4768	ldr	r6, [r3]
4769	str	r6, [r4, #12]
4770	bl	FtlBbtMemInit
4771	ldrh	r5, [r7]
4772	subs	r5, r5, #1
4773	uxth	r5, r5
4774.L596:
4775	ldrh	r3, [r7]
4776	subs	r3, r3, #15
4777	cmp	r3, r5
4778	bgt	.L599
4779	lsls	r3, r5, #10
4780	movs	r2, #1
4781	mov	r1, r2
4782	mov	r0, r10
4783	str	r3, [r4, #4]
4784	bl	FlashReadPages
4785	ldr	r3, [r4]
4786	adds	r3, r3, #1
4787	bne	.L597
4788	ldr	r3, [r4, #4]
4789	movs	r2, #1
4790	mov	r1, r2
4791	mov	r0, r10
4792	adds	r3, r3, #1
4793	str	r3, [r4, #4]
4794	bl	FlashReadPages
4795.L597:
4796	ldr	r3, [r4]
4797	adds	r3, r3, #1
4798	beq	.L598
4799	ldrh	r2, [r6]
4800	movw	r3, #61649
4801	cmp	r2, r3
4802	bne	.L598
4803	ldr	r3, .L624+12
4804	ldr	r2, [r6, #4]
4805	strh	r5, [r3]	@ movhi
4806	str	r2, [r3, #8]
4807	ldrh	r2, [r6, #8]
4808	strh	r2, [r3, #4]	@ movhi
4809.L599:
4810	ldr	r5, .L624+12
4811	movw	r2, #65535
4812	ldrh	r3, [r5]
4813	cmp	r3, r2
4814	beq	.L613
4815	ldrh	r3, [r5, #4]
4816	cmp	r3, r2
4817	beq	.L603
4818	lsls	r3, r3, #10
4819	movs	r2, #1
4820	mov	r1, r2
4821	ldr	r0, .L624
4822	str	r3, [r4, #4]
4823	bl	FlashReadPages
4824	ldr	r3, [r4]
4825	adds	r3, r3, #1
4826	beq	.L603
4827	ldrh	r2, [r6]
4828	movw	r3, #61649
4829	cmp	r2, r3
4830	bne	.L603
4831	ldr	r3, [r6, #4]
4832	ldr	r2, [r5, #8]
4833	cmp	r3, r2
4834	bls	.L603
4835	ldrh	r2, [r5, #4]
4836	str	r3, [r5, #8]
4837	ldrh	r3, [r6, #8]
4838	strh	r2, [r5]	@ movhi
4839	strh	r3, [r5, #4]	@ movhi
4840.L603:
4841	ldr	r10, .L624
4842	movs	r1, #1
4843	ldrh	r0, [r5]
4844	bl	FtlGetLastWrittenPage
4845	sxth	r7, r0
4846	adds	r0, r0, #1
4847	strh	r0, [r5, #2]	@ movhi
4848.L605:
4849	cmp	r7, #0
4850	bge	.L608
4851	movs	r2, #253
4852	ldr	r1, .L624+16
4853	ldr	r0, .L624+20
4854	bl	printf
4855.L607:
4856	ldrh	r3, [r6, #10]
4857	ldrh	r0, [r6, #12]
4858	strh	r3, [r5, #6]	@ movhi
4859	movw	r3, #65535
4860	cmp	r0, r3
4861	beq	.L610
4862	ldr	r3, .L624+24
4863	ldr	r2, [r3]
4864	cmp	r0, r2
4865	beq	.L610
4866	ldr	r3, .L624+28
4867	ldrh	r3, [r3]
4868	lsrs	r3, r3, #2
4869	cmp	r2, r3
4870	bcs	.L610
4871	cmp	r0, r3
4872	bcs	.L610
4873	bl	FtlSysBlkNumInit
4874.L610:
4875	ldr	r6, .L624+32
4876	movs	r5, #0
4877	ldr	r7, .L624+36
4878	ldr	r8, .L624+44
4879.L611:
4880	ldrh	r3, [r7]
4881	cmp	r5, r3
4882	bcc	.L612
4883	movs	r0, #0
4884	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
4885.L598:
4886	subs	r5, r5, #1
4887	uxth	r5, r5
4888	b	.L596
4889.L608:
4890	ldrh	r3, [r5]
4891	movs	r2, #1
4892	mov	r1, r2
4893	mov	r0, r10
4894	orr	r3, r7, r3, lsl #10
4895	str	r3, [r4, #4]
4896	ldr	r3, [r8]
4897	str	r3, [r4, #8]
4898	bl	FlashReadPages
4899	ldr	r3, [r4]
4900	adds	r3, r3, #1
4901	beq	.L606
4902	ldrh	r2, [r6]
4903	movw	r3, #61649
4904	cmp	r2, r3
4905	beq	.L607
4906.L606:
4907	subs	r7, r7, #1
4908	sxth	r7, r7
4909	b	.L605
4910.L612:
4911	ldrh	r2, [r8]
4912	ldr	r1, [r4, #8]
4913	ldr	r0, [r6, #4]!
4914	lsls	r2, r2, #2
4915	mla	r1, r5, r2, r1
4916	adds	r5, r5, #1
4917	bl	ftl_memcpy
4918	b	.L611
4919.L613:
4920	mov	r0, #-1
4921	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
4922.L625:
4923	.align	2
4924.L624:
4925	.word	.LANCHOR138
4926	.word	.LANCHOR17
4927	.word	.LANCHOR114
4928	.word	.LANCHOR37
4929	.word	.LANCHOR141
4930	.word	.LC1
4931	.word	.LANCHOR2
4932	.word	.LANCHOR6
4933	.word	.LANCHOR37+24
4934	.word	.LANCHOR10
4935	.word	.LANCHOR106
4936	.word	.LANCHOR127
4937	.size	FtlLoadBbt, .-FtlLoadBbt
4938	.section	.text.FlashProgPages,"ax",%progbits
4939	.align	1
4940	.global	FlashProgPages
4941	.syntax unified
4942	.thumb
4943	.thumb_func
4944	.fpu softvfp
4945	.type	FlashProgPages, %function
4946FlashProgPages:
4947	@ args = 0, pretend = 0, frame = 48
4948	@ frame_needed = 0, uses_anonymous_args = 0
4949	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4950	sub	sp, sp, #48
4951	str	r3, [sp, #12]
4952	mov	r10, r1
4953	mov	r4, r0
4954	mov	r5, r0
4955	ldr	r3, .L666
4956	mov	r8, #0
4957	ldr	fp, .L666+48
4958	str	r2, [sp, #8]
4959	ldrh	r3, [r3, #12]
4960	str	r3, [sp]
4961	lsls	r3, r3, #3
4962	str	r3, [sp, #4]
4963.L627:
4964	cmp	r8, r10
4965	bne	.L640
4966	ldr	r3, [sp, #12]
4967	cmp	r3, #0
4968	beq	.L658
4969	ldr	r6, .L666+4
4970	movs	r5, #0
4971.L642:
4972	cmp	r8, r5
4973	beq	.L658
4974	ldr	r7, .L666+8
4975	movs	r1, #0
4976	ldr	r2, [r6]
4977	add	r0, sp, #28
4978	ldr	r3, [r7]
4979	str	r1, [r2]
4980	str	r1, [r3]
4981	ldr	r1, [r4, #4]
4982	str	r2, [sp, #36]
4983	ldr	r2, [sp, #8]
4984	str	r1, [sp, #32]
4985	movs	r1, #1
4986	str	r3, [sp, #40]
4987	bl	FlashReadPages
4988	ldr	r10, [sp, #28]
4989	cmp	r10, #-1
4990	bne	.L643
4991	ldr	r1, [r4, #4]
4992	ldr	r0, .L666+12
4993	bl	printf
4994	str	r10, [r4]
4995.L643:
4996	ldr	r3, [r4, #12]
4997	cbz	r3, .L644
4998	ldr	r2, [r3]
4999	ldr	r3, [r7]
5000	ldr	r3, [r3]
5001	cmp	r2, r3
5002	beq	.L644
5003	ldr	r1, [r4, #4]
5004	ldr	r0, .L666+16
5005	bl	printf
5006	mov	r3, #-1
5007	str	r3, [r4]
5008.L644:
5009	ldr	r3, [r4, #8]
5010	cbz	r3, .L645
5011	ldr	r2, [r3]
5012	ldr	r3, [r6]
5013	ldr	r3, [r3]
5014	cmp	r2, r3
5015	beq	.L645
5016	ldr	r1, [r4, #4]
5017	ldr	r0, .L666+20
5018	bl	printf
5019	mov	r3, #-1
5020	str	r3, [r4]
5021.L645:
5022	adds	r5, r5, #1
5023	adds	r4, r4, #20
5024	b	.L642
5025.L640:
5026	ldr	r3, [r5, #8]
5027	cbz	r3, .L628
5028	ldr	r3, [r5, #12]
5029	cbnz	r3, .L629
5030.L628:
5031	movs	r2, #134
5032	ldr	r1, .L666+24
5033	ldr	r0, .L666+28
5034	bl	printf
5035.L629:
5036	add	r2, sp, #20
5037	add	r1, sp, #24
5038	ldr	r0, [r5, #4]
5039	bl	l2p_addr_tran.isra.0
5040	ldr	r6, [sp, #20]
5041	cmp	r6, #3
5042	bls	.L630
5043.L665:
5044	mov	r3, #-1
5045	str	r3, [r5]
5046	b	.L631
5047.L630:
5048	cbnz	r6, .L632
5049	ldr	r3, [sp, #24]
5050	ldr	r2, [sp, #4]
5051	cmp	r2, r3
5052	bls	.L632
5053	ldr	r5, .L666+24
5054	ldr	r7, .L666+32
5055	b	.L664
5056.L634:
5057	mov	r3, #-1
5058	ldr	r2, [r4, #-16]
5059	str	r3, [r4, #-20]
5060	mov	r1, r5
5061	mov	r0, r7
5062	adds	r6, r6, #1
5063	bl	printf
5064	movs	r3, #16
5065	movs	r2, #4
5066	ldr	r1, [r4, #-12]
5067	ldr	r0, .L666+36
5068	bl	rknand_print_hex
5069	movs	r3, #4
5070	ldr	r1, [r4, #-8]
5071	mov	r2, r3
5072	ldr	r0, .L666+40
5073	bl	rknand_print_hex
5074.L664:
5075	cmp	r6, r10
5076	add	r4, r4, #20
5077	bne	.L634
5078.L658:
5079	movs	r0, #0
5080	add	sp, sp, #48
5081	@ sp needed
5082	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5083.L632:
5084	ldr	r1, [r5, #8]
5085	lsls	r3, r1, #26
5086	beq	.L647
5087	ldr	r3, .L666+4
5088	ldr	r6, [r3]
5089	cmp	r1, r6
5090	beq	.L635
5091	ldr	r3, .L666+44
5092	mov	r0, r6
5093	ldrh	r2, [r3]
5094	lsls	r2, r2, #9
5095	bl	ftl_memcpy
5096.L635:
5097	ldr	r3, [r5, #12]
5098	mov	r2, r6
5099	ldr	r1, [sp, #24]
5100	ldrb	r0, [sp, #20]	@ zero_extendqisi2
5101	ldr	r7, [fp, #8]
5102	blx	r7
5103	cbnz	r0, .L636
5104	str	r0, [r5]
5105.L637:
5106	ldr	r3, .L666
5107	ldrh	r3, [r3, #14]
5108	cmp	r3, #4
5109	bne	.L631
5110	ldr	r0, [sp]
5111	add	r2, r6, #2048
5112	ldr	r3, [r5, #12]
5113	ldr	r1, [sp, #24]
5114	ldr	r6, [fp, #8]
5115	adds	r3, r3, #8
5116	add	r1, r1, r0
5117	ldrb	r0, [sp, #20]	@ zero_extendqisi2
5118	blx	r6
5119	cmp	r0, #0
5120	bne	.L665
5121.L631:
5122	add	r8, r8, #1
5123	adds	r5, r5, #20
5124	b	.L627
5125.L647:
5126	mov	r6, r1
5127	b	.L635
5128.L636:
5129	mov	r3, #-1
5130	str	r3, [r5]
5131	b	.L637
5132.L667:
5133	.align	2
5134.L666:
5135	.word	.LANCHOR0
5136	.word	.LANCHOR111
5137	.word	.LANCHOR113
5138	.word	.LC11
5139	.word	.LC12
5140	.word	.LC13
5141	.word	.LANCHOR142
5142	.word	.LC1
5143	.word	.LC6
5144	.word	.LC7
5145	.word	.LC8
5146	.word	.LANCHOR12
5147	.word	.LANCHOR78
5148	.size	FlashProgPages, .-FlashProgPages
5149	.section	.text.FtlLowFormatEraseBlock,"ax",%progbits
5150	.align	1
5151	.global	FtlLowFormatEraseBlock
5152	.syntax unified
5153	.thumb
5154	.thumb_func
5155	.fpu softvfp
5156	.type	FtlLowFormatEraseBlock, %function
5157FtlLowFormatEraseBlock:
5158	@ args = 0, pretend = 0, frame = 32
5159	@ frame_needed = 0, uses_anonymous_args = 0
5160	ldr	r3, .L711
5161	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5162	sub	sp, sp, #32
5163	ldr	r7, .L711+4
5164	mov	r8, #0
5165	mov	r6, r1
5166	mov	r5, r8
5167	str	r0, [r3]
5168	mov	r4, r8
5169	ldr	r3, .L711+8
5170	mov	fp, #20
5171	ldr	r10, [r7]
5172	str	r0, [sp, #4]
5173	ldrh	r3, [r3]
5174	str	r3, [sp, #12]
5175	ldr	r3, .L711+12
5176	ldr	r3, [r3]
5177	str	r3, [sp, #16]
5178	ldr	r3, .L711+16
5179	ldr	r3, [r3]
5180	str	r3, [sp, #20]
5181	ldr	r3, .L711+20
5182	ldrh	r3, [r3]
5183	str	r3, [sp, #24]
5184.L669:
5185	ldr	r3, [sp, #12]
5186	uxth	r2, r8
5187	cmp	r3, r2
5188	bhi	.L673
5189	cmp	r5, #0
5190	beq	.L668
5191	mov	r0, r10
5192	mov	r8, #0
5193	mov	r10, #20
5194	mov	r2, r5
5195	movs	r1, #0
5196	bl	FlashEraseBlocks
5197.L676:
5198	uxth	r3, r8
5199	cmp	r5, r3
5200	bhi	.L678
5201	cmp	r6, #0
5202	beq	.L694
5203	ldr	r3, .L711+24
5204	mov	r10, #1
5205	ldrh	r3, [r3]
5206	str	r3, [sp, #8]
5207.L679:
5208	movs	r7, #0
5209.L688:
5210	ldr	r3, .L711+8
5211	mov	r8, #0
5212	mov	r5, r8
5213	ldrh	r3, [r3]
5214	str	r3, [sp, #16]
5215	ldr	r3, .L711+4
5216	ldr	fp, [r3]
5217	ldr	r3, .L711+28
5218	ldr	r3, [r3]
5219	str	r3, [sp, #20]
5220	ldr	r3, .L711+12
5221	ldr	r3, [r3]
5222	str	r3, [sp, #24]
5223	ldr	r3, .L711+20
5224	ldrh	r3, [r3]
5225	str	r3, [sp, #28]
5226.L680:
5227	ldr	r3, [sp, #16]
5228	uxth	r2, r8
5229	cmp	r3, r2
5230	bhi	.L683
5231	cbz	r5, .L668
5232	mov	r0, fp
5233	ldr	fp, .L711+4
5234	movs	r3, #1
5235	mov	r2, r10
5236	mov	r1, r5
5237	mov	r8, #0
5238	bl	FlashProgPages
5239	movs	r3, #20
5240.L685:
5241	uxth	r2, r8
5242	cmp	r5, r2
5243	bhi	.L687
5244	adds	r7, r7, #1
5245	ldr	r2, [sp, #8]
5246	uxth	r3, r7
5247	cmp	r2, r3
5248	bhi	.L688
5249	ldr	r8, .L711+4
5250	movs	r7, #0
5251	mov	fp, #20
5252.L689:
5253	uxth	r3, r7
5254	cmp	r5, r3
5255	bhi	.L691
5256	ldr	r3, [sp, #4]
5257	cmp	r3, #63
5258	bls	.L692
5259	cbz	r6, .L668
5260.L692:
5261	ldr	r3, .L711+4
5262	mov	r2, r5
5263	mov	r1, r10
5264	ldr	r0, [r3]
5265	bl	FlashEraseBlocks
5266.L668:
5267	mov	r0, r4
5268	add	sp, sp, #32
5269	@ sp needed
5270	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5271.L673:
5272	mul	r2, fp, r8
5273	movs	r3, #0
5274	ldr	r1, [sp, #4]
5275	str	r3, [r10, r2]
5276	ldr	r3, .L711+32
5277	ldrb	r0, [r3, r8]	@ zero_extendqisi2
5278	bl	V2P_block
5279	str	r0, [sp, #8]
5280	cbz	r6, .L670
5281	bl	IsBlkInVendorPart
5282	cbnz	r0, .L671
5283.L670:
5284	ldr	r0, [sp, #8]
5285	bl	FtlBbmIsBadBlock
5286	cbnz	r0, .L672
5287	ldr	r3, [sp, #8]
5288	mla	r1, fp, r5, r10
5289	lsls	r2, r3, #10
5290	ldr	r3, [sp, #16]
5291	str	r2, [r1, #4]
5292	str	r3, [r1, #8]
5293	ldr	r3, [sp, #24]
5294	mul	r2, r3, r5
5295	ldr	r3, [sp, #20]
5296	adds	r5, r5, #1
5297	uxth	r5, r5
5298	bic	r2, r2, #3
5299	add	r2, r2, r3
5300	str	r2, [r1, #12]
5301.L671:
5302	add	r8, r8, #1
5303	b	.L669
5304.L672:
5305	adds	r4, r4, #1
5306	uxth	r4, r4
5307	b	.L671
5308.L678:
5309	mul	r3, r10, r8
5310	ldr	r2, [r7]
5311	adds	r1, r2, r3
5312	ldr	r3, [r2, r3]
5313	adds	r3, r3, #1
5314	bne	.L677
5315	ldr	r0, [r1, #4]
5316	adds	r4, r4, #1
5317	uxth	r4, r4
5318	ubfx	r0, r0, #10, #16
5319	bl	FtlBbmMapBadBlock
5320.L677:
5321	add	r8, r8, #1
5322	b	.L676
5323.L694:
5324	movs	r3, #2
5325	mov	r10, r6
5326	str	r3, [sp, #8]
5327	b	.L679
5328.L683:
5329	movs	r3, #20
5330	ldr	r1, [sp, #4]
5331	mul	r2, r3, r8
5332	movs	r3, #0
5333	str	r3, [fp, r2]
5334	ldr	r3, .L711+32
5335	ldrb	r0, [r3, r8]	@ zero_extendqisi2
5336	bl	V2P_block
5337	str	r0, [sp, #12]
5338	cbz	r6, .L681
5339	bl	IsBlkInVendorPart
5340	cbnz	r0, .L682
5341.L681:
5342	ldr	r0, [sp, #12]
5343	bl	FtlBbmIsBadBlock
5344	cbnz	r0, .L682
5345	movs	r3, #20
5346	mla	r1, r3, r5, fp
5347	ldr	r3, [sp, #12]
5348	add	r2, r7, r3, lsl #10
5349	ldr	r3, [sp, #20]
5350	str	r2, [r1, #4]
5351	str	r3, [r1, #8]
5352	ldr	r3, [sp, #28]
5353	mul	r2, r3, r5
5354	ldr	r3, [sp, #24]
5355	adds	r5, r5, #1
5356	uxth	r5, r5
5357	bic	r2, r2, #3
5358	add	r2, r2, r3
5359	str	r2, [r1, #12]
5360.L682:
5361	add	r8, r8, #1
5362	b	.L680
5363.L687:
5364	mul	r2, r3, r8
5365	ldr	r1, [fp]
5366	adds	r0, r1, r2
5367	ldr	r2, [r1, r2]
5368	cbz	r2, .L686
5369	ldr	r0, [r0, #4]
5370	adds	r4, r4, #1
5371	str	r3, [sp, #12]
5372	uxth	r4, r4
5373	ubfx	r0, r0, #10, #16
5374	bl	FtlBbmMapBadBlock
5375	ldr	r3, [sp, #12]
5376.L686:
5377	add	r8, r8, #1
5378	b	.L685
5379.L691:
5380	cbz	r6, .L690
5381	mul	r3, fp, r7
5382	ldr	r2, [r8]
5383	adds	r1, r2, r3
5384	ldr	r3, [r2, r3]
5385	cbnz	r3, .L690
5386	ldr	r0, [r1, #4]
5387	movs	r1, #1
5388	ubfx	r0, r0, #10, #16
5389	bl	FtlFreeSysBlkQueueIn
5390.L690:
5391	adds	r7, r7, #1
5392	b	.L689
5393.L712:
5394	.align	2
5395.L711:
5396	.word	.LANCHOR99
5397	.word	.LANCHOR79
5398	.word	.LANCHOR3
5399	.word	.LANCHOR110
5400	.word	.LANCHOR115
5401	.word	.LANCHOR24
5402	.word	.LANCHOR20
5403	.word	.LANCHOR109
5404	.word	.LANCHOR13
5405	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
5406	.section	.text.FlashTestBlk,"ax",%progbits
5407	.align	1
5408	.global	FlashTestBlk
5409	.syntax unified
5410	.thumb
5411	.thumb_func
5412	.fpu softvfp
5413	.type	FlashTestBlk, %function
5414FlashTestBlk:
5415	@ args = 0, pretend = 0, frame = 88
5416	@ frame_needed = 0, uses_anonymous_args = 0
5417	cmp	r0, #11
5418	push	{r4, r5, lr}
5419	mov	r5, r0
5420	sub	sp, sp, #92
5421	bls	.L716
5422	ldr	r4, .L718
5423	add	r0, sp, #24
5424	movs	r2, #32
5425	movs	r1, #165
5426	str	r0, [sp, #16]
5427	lsls	r5, r5, #10
5428	ldr	r3, [r4]
5429	str	r3, [sp, #12]
5430	bl	ftl_memset
5431	movs	r2, #8
5432	movs	r1, #90
5433	ldr	r0, [r4]
5434	bl	ftl_memset
5435	movs	r2, #1
5436	add	r0, sp, #4
5437	mov	r1, r2
5438	str	r5, [sp, #8]
5439	bl	FlashEraseBlocks
5440	movs	r3, #1
5441	add	r0, sp, #4
5442	mov	r2, r3
5443	mov	r1, r3
5444	bl	FlashProgPages
5445	ldr	r3, [sp, #4]
5446	cbnz	r3, .L717
5447	adds	r3, r5, #1
5448	add	r0, sp, #4
5449	str	r3, [sp, #8]
5450	movs	r3, #1
5451	mov	r2, r3
5452	mov	r1, r3
5453	bl	FlashProgPages
5454	ldr	r4, [sp, #4]
5455	adds	r4, r4, #0
5456	it	ne
5457	movne	r4, #1
5458	negs	r4, r4
5459.L715:
5460	movs	r2, #1
5461	movs	r1, #0
5462	add	r0, sp, #4
5463	str	r5, [sp, #8]
5464	bl	FlashEraseBlocks
5465.L713:
5466	mov	r0, r4
5467	add	sp, sp, #92
5468	@ sp needed
5469	pop	{r4, r5, pc}
5470.L717:
5471	mov	r4, #-1
5472	b	.L715
5473.L716:
5474	movs	r4, #0
5475	b	.L713
5476.L719:
5477	.align	2
5478.L718:
5479	.word	.LANCHOR112
5480	.size	FlashTestBlk, .-FlashTestBlk
5481	.section	.text.FtlBbmTblFlush,"ax",%progbits
5482	.align	1
5483	.global	FtlBbmTblFlush
5484	.syntax unified
5485	.thumb
5486	.thumb_func
5487	.fpu softvfp
5488	.type	FtlBbmTblFlush, %function
5489FtlBbmTblFlush:
5490	@ args = 0, pretend = 0, frame = 8
5491	@ frame_needed = 0, uses_anonymous_args = 0
5492	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
5493	movs	r4, #0
5494	ldr	r7, .L729
5495	movs	r1, #0
5496	ldr	r5, .L729+4
5497	ldr	r3, [r7]
5498	mov	fp, r7
5499	ldr	r8, .L729+48
5500	ldr	r6, .L729+8
5501	str	r3, [r5, #12]
5502	ldr	r7, .L729+12
5503	ldr	r3, .L729+16
5504	ldr	r10, .L729+52
5505	ldr	r0, [r8]
5506	ldrh	r2, [r3]
5507	str	r0, [r5, #8]
5508	bl	ftl_memset
5509.L721:
5510	ldrh	r3, [r7]
5511	cmp	r4, r3
5512	blt	.L722
5513	ldr	r6, [r5, #12]
5514	movs	r2, #16
5515	ldr	r4, .L729+20
5516	movs	r1, #255
5517	movs	r7, #0
5518	mov	r0, r6
5519	bl	ftl_memset
5520	movw	r3, #61649
5521	mov	r10, r4
5522	strh	r3, [r6]	@ movhi
5523	ldr	r3, [r4, #8]
5524	str	r7, [sp, #12]
5525	str	r3, [r6, #4]
5526	ldrh	r3, [r4]
5527	strh	r3, [r6, #2]	@ movhi
5528	ldrh	r3, [r4, #4]
5529	strh	r3, [r6, #8]	@ movhi
5530	ldrh	r3, [r4, #6]
5531	strh	r3, [r6, #10]	@ movhi
5532	ldr	r3, .L729+24
5533	ldr	r3, [r3]
5534	strh	r3, [r6, #12]	@ movhi
5535.L723:
5536	ldr	r3, [r8]
5537	ldrh	r2, [r4, #2]
5538	ldrh	r1, [r4]
5539	str	r3, [r5, #8]
5540	ldr	r3, [fp]
5541	ldrh	r0, [r6, #10]
5542	str	r3, [r5, #12]
5543	movs	r3, #0
5544	str	r3, [r5]
5545	orr	r3, r2, r1, lsl #10
5546	str	r3, [r5, #4]
5547	ldrh	r3, [r4, #4]
5548	str	r0, [sp]
5549	ldr	r0, .L729+28
5550	bl	printf
5551	ldr	r3, .L729+32
5552	ldrh	r2, [r4, #2]
5553	ldrh	r3, [r3]
5554	subs	r3, r3, #1
5555	cmp	r2, r3
5556	blt	.L724
5557	ldr	r3, [r4, #8]
5558	mov	r1, #0	@ movhi
5559	ldrh	r2, [r4]
5560	strh	r1, [r4, #2]	@ movhi
5561	adds	r3, r3, #1
5562	str	r3, [r4, #8]
5563	str	r3, [r6, #4]
5564	strh	r2, [r6, #8]	@ movhi
5565	ldrh	r3, [r4, #4]
5566	strh	r2, [r4, #4]	@ movhi
5567	ldr	r2, .L729+36
5568	strh	r3, [r4]	@ movhi
5569	lsls	r3, r3, #10
5570	ldr	r0, [r2]
5571	movs	r2, #1
5572	str	r3, [r5, #4]
5573	mov	r1, r2
5574	str	r3, [r0, #4]
5575	bl	FlashEraseBlocks
5576.L724:
5577	movs	r3, #1
5578	ldr	r0, .L729+4
5579	mov	r2, r3
5580	mov	r1, r3
5581	bl	FlashProgPages
5582	ldrh	r3, [r10, #2]
5583	adds	r3, r3, #1
5584	strh	r3, [r10, #2]	@ movhi
5585	ldr	r3, [r5]
5586	adds	r3, r3, #1
5587	bne	.L725
5588	adds	r7, r7, #1
5589	ldr	r1, [r5, #4]
5590	uxth	r7, r7
5591	ldr	r0, .L729+40
5592	bl	printf
5593	cmp	r7, #3
5594	bls	.L723
5595	mov	r2, r7
5596	ldr	r1, [r5, #4]
5597	ldr	r0, .L729+44
5598	bl	printf
5599.L727:
5600	b	.L727
5601.L722:
5602	ldrh	r2, [r10]
5603	ldr	r3, [r5, #8]
5604	ldr	r1, [r6, #4]!
5605	mul	r0, r2, r4
5606	lsls	r2, r2, #2
5607	adds	r4, r4, #1
5608	add	r0, r3, r0, lsl #2
5609	bl	ftl_memcpy
5610	b	.L721
5611.L728:
5612	movs	r3, #1
5613	str	r3, [sp, #12]
5614	b	.L723
5615.L725:
5616	ldr	r3, [sp, #12]
5617	cmp	r3, #0
5618	beq	.L728
5619	movs	r0, #0
5620	add	sp, sp, #16
5621	@ sp needed
5622	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5623.L730:
5624	.align	2
5625.L729:
5626	.word	.LANCHOR114
5627	.word	.LANCHOR138
5628	.word	.LANCHOR37+24
5629	.word	.LANCHOR10
5630	.word	.LANCHOR23
5631	.word	.LANCHOR37
5632	.word	.LANCHOR2
5633	.word	.LC14
5634	.word	.LANCHOR20
5635	.word	.LANCHOR79
5636	.word	.LC15
5637	.word	.LC16
5638	.word	.LANCHOR106
5639	.word	.LANCHOR127
5640	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
5641	.section	.text.allocate_data_superblock,"ax",%progbits
5642	.align	1
5643	.global	allocate_data_superblock
5644	.syntax unified
5645	.thumb
5646	.thumb_func
5647	.fpu softvfp
5648	.type	allocate_data_superblock, %function
5649allocate_data_superblock:
5650	@ args = 0, pretend = 0, frame = 8
5651	@ frame_needed = 0, uses_anonymous_args = 0
5652	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5653	mov	r4, r0
5654.L732:
5655	ldr	r3, .L771
5656	ldr	r8, .L771+68
5657	ldrh	r3, [r3]
5658	ldr	r10, .L771+72
5659	ldrh	r2, [r8]
5660	add	r3, r3, r2
5661	ldrh	r2, [r10]
5662	cmp	r3, r2
5663	ble	.L733
5664	movw	r2, #2661
5665	ldr	r1, .L771+4
5666	ldr	r0, .L771+8
5667	bl	printf
5668.L733:
5669	ldr	r3, .L771+12
5670	cmp	r4, r3
5671	bne	.L759
5672	ldr	r3, .L771
5673	ldr	r2, .L771+16
5674	ldrh	r3, [r3]
5675	ldr	r2, [r2]
5676	lsrs	r1, r3, #1
5677	muls	r2, r3, r2
5678	adds	r1, r1, #1
5679	add	r1, r1, r2, lsr #2
5680	uxth	r1, r1
5681	cbz	r1, .L734
5682	subs	r1, r1, #1
5683	uxth	r1, r1
5684.L734:
5685	ldr	r0, .L771+20
5686	bl	List_pop_index_node
5687	ldr	r3, .L771
5688	mov	r5, r0
5689	uxth	r7, r0
5690	ldrh	r3, [r3]
5691	cbnz	r3, .L735
5692	movw	r2, #2670
5693	ldr	r1, .L771+4
5694	ldr	r0, .L771+8
5695	bl	printf
5696.L735:
5697	ldr	r3, .L771
5698	ldr	r2, .L771
5699	ldrh	r3, [r3]
5700	subs	r3, r3, #1
5701	strh	r3, [r2]	@ movhi
5702	ldrh	r3, [r10]
5703	cmp	r3, r7
5704	bls	.L732
5705	uxth	r5, r5
5706	lsls	r3, r5, #1
5707	str	r3, [sp]
5708	ldr	r3, .L771+24
5709	ldr	r3, [r3]
5710	ldrh	r6, [r3, r5, lsl #1]
5711	cmp	r6, #0
5712	bne	.L732
5713	strh	r7, [r4]	@ movhi
5714	mov	r0, r4
5715	bl	make_superblock
5716	ldrb	r3, [r4, #7]	@ zero_extendqisi2
5717	cbnz	r3, .L737
5718	ldr	r3, .L771+24
5719	movw	r2, #65535
5720	mov	r0, r7
5721	ldr	r3, [r3]
5722	strh	r2, [r3, r5, lsl #1]	@ movhi
5723	bl	INSERT_DATA_LIST
5724	ldr	r3, .L771
5725	ldrh	r2, [r8]
5726	ldrh	r3, [r3]
5727	add	r3, r3, r2
5728	ldrh	r2, [r10]
5729	cmp	r3, r2
5730	ble	.L732
5731	movw	r2, #2684
5732	ldr	r1, .L771+4
5733	ldr	r0, .L771+8
5734	bl	printf
5735	b	.L732
5736.L759:
5737	movs	r1, #0
5738	b	.L734
5739.L737:
5740	ldr	r3, .L771
5741	ldrh	r2, [r8]
5742	ldrh	r3, [r3]
5743	add	r3, r3, r2
5744	ldrh	r2, [r10]
5745	cmp	r3, r2
5746	ble	.L739
5747	movw	r2, #2687
5748	ldr	r1, .L771+4
5749	ldr	r0, .L771+8
5750	bl	printf
5751.L739:
5752	ldr	r3, .L771+28
5753	add	lr, r4, #16
5754	ldr	r2, .L771+32
5755	mov	r8, #0
5756	ldr	ip, [r3]
5757	ldrh	r0, [r2]
5758	movs	r2, #20
5759	mov	r3, ip
5760	mla	r0, r2, r0, ip
5761.L740:
5762	cmp	r0, r3
5763	bne	.L742
5764	cbnz	r6, .L743
5765	movw	r2, #2698
5766	ldr	r1, .L771+4
5767	ldr	r0, .L771+8
5768	bl	printf
5769.L743:
5770	ldr	r3, .L771+36
5771	ldrh	r3, [r3]
5772	cmp	r3, r7
5773	bne	.L744
5774	movw	r2, #2700
5775	ldr	r1, .L771+4
5776	ldr	r0, .L771+8
5777	bl	printf
5778.L744:
5779	ldrb	r2, [r4, #8]	@ zero_extendqisi2
5780	ldr	r3, .L771+40
5781	ldr	fp, .L771+76
5782	ldr	r8, .L771+80
5783	ldr	r1, [r3]
5784	cmp	r2, #0
5785	bne	.L745
5786	ldrh	r2, [r1, r5, lsl #1]
5787	cmp	r2, #0
5788	beq	.L746
5789	ldr	r0, .L771+44
5790	ldrh	r0, [r0]
5791	add	r2, r2, r0
5792.L769:
5793	strh	r2, [r1, r5, lsl #1]	@ movhi
5794	mov	r0, r7
5795	ldr	r2, [fp]
5796	movs	r1, #0
5797	str	r3, [sp, #4]
5798	adds	r2, r2, #1
5799	str	r2, [fp]
5800	bl	ftl_set_blk_mode
5801.L770:
5802	ldr	r3, [sp, #4]
5803	ldr	r0, [fp]
5804	ldr	r3, [r3]
5805	ldrh	r1, [r3, r5, lsl #1]
5806	ldr	r3, .L771+48
5807	ldr	r2, [r3]
5808	cmp	r1, r2
5809	it	hi
5810	strhi	r1, [r3]
5811	ldr	r3, .L771+44
5812	ldrh	r1, [r10]
5813	ldrh	r2, [r3]
5814	ldr	r3, [r8]
5815	mla	r0, r0, r2, r3
5816	bl	__aeabi_uidiv
5817	ldr	r3, .L771+52
5818	ldr	ip, .L771+84
5819	str	r0, [r3]
5820	ldr	r3, .L771+56
5821	ldr	r2, [r3]
5822	ldr	r3, [r2, #16]
5823	adds	r3, r3, #1
5824	str	r3, [r2, #16]
5825	movs	r2, #20
5826	ldr	r3, .L771+28
5827	ldr	r0, [r3]
5828	adds	r3, r0, #4
5829	mla	r2, r2, r6, r0
5830	adds	r2, r2, #24
5831.L750:
5832	adds	r3, r3, #20
5833	cmp	r2, r3
5834	bne	.L751
5835	mov	r2, r6
5836	ldrb	r1, [r4, #8]	@ zero_extendqisi2
5837	mov	r8, #0
5838	bl	FlashEraseBlocks
5839	mov	r10, r8
5840	movs	r3, #20
5841.L752:
5842	uxth	r2, r8
5843	cmp	r6, r2
5844	bhi	.L754
5845	cmp	r10, #0
5846	beq	.L755
5847	mov	r0, r7
5848	bl	update_multiplier_value
5849	bl	FtlBbmTblFlush
5850.L755:
5851	ldrb	r2, [r4, #7]	@ zero_extendqisi2
5852	cmp	r2, #0
5853	bne	.L756
5854	ldr	r3, .L771+24
5855	movw	r2, #65535
5856	ldr	r3, [r3]
5857	strh	r2, [r3, r5, lsl #1]	@ movhi
5858	b	.L732
5859.L742:
5860	ldrh	r1, [lr], #2
5861	movw	fp, #65535
5862	str	r8, [r3, #8]
5863	str	r8, [r3, #12]
5864	cmp	r1, fp
5865	beq	.L741
5866	mla	fp, r2, r6, ip
5867	adds	r6, r6, #1
5868	lsls	r1, r1, #10
5869	uxth	r6, r6
5870	str	r1, [fp, #4]
5871.L741:
5872	adds	r3, r3, #20
5873	b	.L740
5874.L746:
5875	movs	r2, #2
5876	b	.L769
5877.L745:
5878	ldrh	r2, [r1, r5, lsl #1]
5879	mov	r0, r7
5880	str	r3, [sp, #4]
5881	adds	r2, r2, #1
5882	strh	r2, [r1, r5, lsl #1]	@ movhi
5883	ldr	r2, [r8]
5884	adds	r2, r2, #1
5885	str	r2, [r8]
5886	bl	ftl_set_blk_mode.part.6
5887	b	.L770
5888.L751:
5889	ldr	r1, [r3, #-20]
5890	and	r1, r1, ip
5891	str	r1, [r3, #-20]
5892	b	.L750
5893.L754:
5894	ldr	r1, .L771+28
5895	mul	r2, r3, r8
5896	ldr	r1, [r1]
5897	ldr	fp, [r1, r2]
5898	adds	r0, r1, r2
5899	cmp	fp, #-1
5900	bne	.L753
5901	ldr	r0, [r0, #4]
5902	add	r10, r10, #1
5903	str	r3, [sp, #4]
5904	ubfx	r0, r0, #10, #16
5905	bl	FtlBbmMapBadBlock
5906	add	r2, r4, r8, lsl #1
5907	ldr	r3, [sp, #4]
5908	strh	fp, [r2, #16]	@ movhi
5909	ldrb	r2, [r4, #7]	@ zero_extendqisi2
5910	subs	r2, r2, #1
5911	strb	r2, [r4, #7]
5912.L753:
5913	add	r8, r8, #1
5914	b	.L752
5915.L756:
5916	ldr	r3, .L771+60
5917	ldr	r1, .L771+64
5918	ldrh	r3, [r3]
5919	strh	r7, [r4]	@ movhi
5920	smulbb	r3, r3, r2
5921	movs	r2, #0
5922	strh	r2, [r4, #2]	@ movhi
5923	strb	r2, [r4, #6]
5924	ldr	r2, [r1]
5925	uxth	r3, r3
5926	strh	r3, [r4, #4]	@ movhi
5927	str	r2, [r4, #12]
5928	adds	r2, r2, #1
5929	str	r2, [r1]
5930	ldr	r2, .L771+24
5931	ldr	r1, [sp]
5932	ldr	r2, [r2]
5933	strh	r3, [r2, r1]	@ movhi
5934	ldrh	r3, [r4, #4]
5935	cbz	r3, .L757
5936	ldrb	r3, [r4, #7]	@ zero_extendqisi2
5937	cbnz	r3, .L758
5938.L757:
5939	movw	r2, #2753
5940	ldr	r1, .L771+4
5941	ldr	r0, .L771+8
5942	bl	printf
5943.L758:
5944	movs	r0, #0
5945	add	sp, sp, #8
5946	@ sp needed
5947	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5948.L772:
5949	.align	2
5950.L771:
5951	.word	.LANCHOR48
5952	.word	.LANCHOR143
5953	.word	.LC1
5954	.word	.LANCHOR53
5955	.word	.LANCHOR95
5956	.word	.LANCHOR47
5957	.word	.LANCHOR42
5958	.word	.LANCHOR79
5959	.word	.LANCHOR3
5960	.word	.LANCHOR144
5961	.word	.LANCHOR43
5962	.word	.LANCHOR14
5963	.word	.LANCHOR92
5964	.word	.LANCHOR145
5965	.word	.LANCHOR118
5966	.word	.LANCHOR19
5967	.word	.LANCHOR82
5968	.word	.LANCHOR45
5969	.word	.LANCHOR5
5970	.word	.LANCHOR90
5971	.word	.LANCHOR91
5972	.word	-1024
5973	.size	allocate_data_superblock, .-allocate_data_superblock
5974	.section	.text.FtlGcFreeBadSuperBlk,"ax",%progbits
5975	.align	1
5976	.global	FtlGcFreeBadSuperBlk
5977	.syntax unified
5978	.thumb
5979	.thumb_func
5980	.fpu softvfp
5981	.type	FtlGcFreeBadSuperBlk, %function
5982FtlGcFreeBadSuperBlk:
5983	@ args = 0, pretend = 0, frame = 8
5984	@ frame_needed = 0, uses_anonymous_args = 0
5985	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5986	mov	r10, r0
5987	ldr	r4, .L785
5988	ldrh	r3, [r4]
5989	cbz	r3, .L774
5990	ldr	r8, .L785+12
5991	movs	r7, #0
5992.L775:
5993	ldr	r3, .L785+4
5994	ldrh	r2, [r3]
5995	uxth	r3, r7
5996	cmp	r2, r3
5997	bhi	.L781
5998	bl	FtlGcReFreshBadBlk
5999.L774:
6000	movs	r0, #0
6001	add	sp, sp, #8
6002	@ sp needed
6003	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6004.L781:
6005	ldr	r2, .L785+8
6006	uxth	r3, r7
6007	mov	r1, r10
6008	mov	fp, #0
6009	ldrb	r0, [r2, r3]	@ zero_extendqisi2
6010	bl	V2P_block
6011	mov	r1, r0
6012.L776:
6013	ldrh	r3, [r4]
6014	uxth	r5, fp
6015	cmp	r3, r5
6016	bhi	.L780
6017	adds	r7, r7, #1
6018	b	.L775
6019.L780:
6020	uxth	r6, fp
6021	ldrh	r3, [r8, r6, lsl #1]
6022	cmp	r3, r1
6023	bne	.L777
6024	mov	r0, r1
6025	str	r1, [sp, #4]
6026	bl	FtlBbmMapBadBlock
6027	bl	FtlBbmTblFlush
6028	ldrh	r2, [r4]
6029	add	r3, r8, r6, lsl #1
6030	ldr	r1, [sp, #4]
6031.L778:
6032	cmp	r5, r2
6033	bcc	.L779
6034	subs	r2, r2, #1
6035	strh	r2, [r4]	@ movhi
6036.L777:
6037	add	fp, fp, #1
6038	b	.L776
6039.L779:
6040	ldrh	r0, [r3, #2]!
6041	adds	r5, r5, #1
6042	uxth	r5, r5
6043	strh	r0, [r3, #-2]	@ movhi
6044	b	.L778
6045.L786:
6046	.align	2
6047.L785:
6048	.word	.LANCHOR74
6049	.word	.LANCHOR3
6050	.word	.LANCHOR13
6051	.word	.LANCHOR75
6052	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
6053	.section	.text.update_vpc_list,"ax",%progbits
6054	.align	1
6055	.global	update_vpc_list
6056	.syntax unified
6057	.thumb
6058	.thumb_func
6059	.fpu softvfp
6060	.type	update_vpc_list, %function
6061update_vpc_list:
6062	@ args = 0, pretend = 0, frame = 0
6063	@ frame_needed = 0, uses_anonymous_args = 0
6064	push	{r3, r4, r5, lr}
6065	mov	r4, r0
6066	ldr	r3, .L797
6067	ldr	r3, [r3]
6068	ldrh	r3, [r3, r0, lsl #1]
6069	cmp	r3, #0
6070	bne	.L788
6071	ldr	r2, .L797+4
6072	ldrh	r1, [r2]
6073	cmp	r1, r0
6074	bne	.L789
6075	movw	r3, #65535
6076	strh	r3, [r2]	@ movhi
6077.L790:
6078	ldr	r5, .L797+8
6079	mov	r1, r4
6080	ldr	r0, .L797+12
6081	bl	List_remove_node
6082	ldrh	r3, [r5]
6083	cbnz	r3, .L792
6084	movw	r2, #2823
6085	ldr	r1, .L797+16
6086	ldr	r0, .L797+20
6087	bl	printf
6088.L792:
6089	ldrh	r3, [r5]
6090	mov	r0, r4
6091	subs	r3, r3, #1
6092	strh	r3, [r5]	@ movhi
6093	bl	free_data_superblock
6094	mov	r0, r4
6095	bl	FtlGcFreeBadSuperBlk
6096	ldr	r3, .L797+24
6097	ldrh	r2, [r5]
6098	ldrh	r3, [r3]
6099	add	r3, r3, r2
6100	ldr	r2, .L797+28
6101	ldrh	r2, [r2]
6102	cmp	r3, r2
6103	ble	.L796
6104	movw	r2, #2826
6105	ldr	r1, .L797+16
6106	ldr	r0, .L797+20
6107	bl	printf
6108.L796:
6109	movs	r3, #1
6110	b	.L787
6111.L789:
6112	ldr	r2, .L797+32
6113	ldrh	r2, [r2]
6114	cmp	r2, r0
6115	beq	.L787
6116	ldr	r2, .L797+36
6117	ldrh	r2, [r2]
6118	cmp	r2, r0
6119	beq	.L787
6120	ldr	r2, .L797+40
6121	ldrh	r2, [r2]
6122	cmp	r2, r0
6123	bne	.L790
6124.L787:
6125	mov	r0, r3
6126	pop	{r3, r4, r5, pc}
6127.L788:
6128	bl	List_update_data_list
6129	movs	r3, #0
6130	b	.L787
6131.L798:
6132	.align	2
6133.L797:
6134	.word	.LANCHOR42
6135	.word	.LANCHOR144
6136	.word	.LANCHOR45
6137	.word	.LANCHOR41
6138	.word	.LANCHOR146
6139	.word	.LC1
6140	.word	.LANCHOR48
6141	.word	.LANCHOR5
6142	.word	.LANCHOR51
6143	.word	.LANCHOR52
6144	.word	.LANCHOR53
6145	.size	update_vpc_list, .-update_vpc_list
6146	.section	.text.decrement_vpc_count,"ax",%progbits
6147	.align	1
6148	.global	decrement_vpc_count
6149	.syntax unified
6150	.thumb
6151	.thumb_func
6152	.fpu softvfp
6153	.type	decrement_vpc_count, %function
6154decrement_vpc_count:
6155	@ args = 0, pretend = 0, frame = 0
6156	@ frame_needed = 0, uses_anonymous_args = 0
6157	movw	r3, #65535
6158	push	{r4, r5, r6, lr}
6159	cmp	r0, r3
6160	mov	r4, r0
6161	beq	.L800
6162	ldr	r5, .L808
6163	ldr	r3, [r5]
6164	ldrh	r2, [r3, r0, lsl #1]
6165	cbnz	r2, .L801
6166	mov	r1, r0
6167	ldr	r0, .L808+4
6168	bl	printf
6169	ldr	r3, [r5]
6170	ldrh	r5, [r3, r4, lsl #1]
6171	cbz	r5, .L802
6172.L806:
6173	movs	r5, #0
6174.L799:
6175	mov	r0, r5
6176	pop	{r4, r5, r6, pc}
6177.L802:
6178	movw	r2, #2841
6179.L807:
6180	ldr	r1, .L808+8
6181	ldr	r0, .L808+12
6182	bl	printf
6183	b	.L799
6184.L801:
6185	subs	r2, r2, #1
6186	strh	r2, [r3, r0, lsl #1]	@ movhi
6187.L800:
6188	ldr	r6, .L808+16
6189	movw	r3, #65535
6190	ldrh	r0, [r6]
6191	cmp	r0, r3
6192	bne	.L804
6193	strh	r4, [r6]	@ movhi
6194	b	.L806
6195.L804:
6196	cmp	r4, r0
6197	beq	.L806
6198	bl	update_vpc_list
6199	ldr	r3, .L808+20
6200	adds	r5, r0, #0
6201	ldr	r2, .L808+24
6202	it	ne
6203	movne	r5, #1
6204	strh	r4, [r6]	@ movhi
6205	ldr	r3, [r3]
6206	ldr	r2, [r2]
6207	subs	r3, r3, r2
6208	asrs	r2, r3, #1
6209	ldr	r3, .L808+28
6210	muls	r3, r2, r3
6211	ldr	r2, .L808
6212	ldr	r2, [r2]
6213	uxth	r1, r3
6214	ldrh	r2, [r2, r1, lsl #1]
6215	cmp	r2, #0
6216	bne	.L799
6217	cmp	r4, r1
6218	beq	.L799
6219	movw	r2, #2857
6220	b	.L807
6221.L809:
6222	.align	2
6223.L808:
6224	.word	.LANCHOR42
6225	.word	.LC17
6226	.word	.LANCHOR147
6227	.word	.LC1
6228	.word	.LANCHOR131
6229	.word	.LANCHOR41
6230	.word	.LANCHOR40
6231	.word	-1431655765
6232	.size	decrement_vpc_count, .-decrement_vpc_count
6233	.section	.text.FtlSuperblockPowerLostFix,"ax",%progbits
6234	.align	1
6235	.global	FtlSuperblockPowerLostFix
6236	.syntax unified
6237	.thumb
6238	.thumb_func
6239	.fpu softvfp
6240	.type	FtlSuperblockPowerLostFix, %function
6241FtlSuperblockPowerLostFix:
6242	@ args = 0, pretend = 0, frame = 24
6243	@ frame_needed = 0, uses_anonymous_args = 0
6244	push	{r4, r5, r6, r7, r8, lr}
6245	mov	r3, #-1
6246	sub	sp, sp, #24
6247	ldr	r2, .L823
6248	movs	r6, #0
6249	mov	r4, r0
6250	str	r3, [sp, #20]
6251	ldr	r3, .L823+4
6252	ldr	r5, [r2]
6253	mvn	r2, #2
6254	ldr	r8, .L823+16
6255	ldr	r3, [r3]
6256	str	r5, [sp, #16]
6257	str	r3, [sp, #12]
6258	str	r2, [r5, #8]
6259	mvn	r2, #1
6260	str	r2, [r5, #12]
6261	ldrh	r2, [r0]
6262	strh	r6, [r5]	@ movhi
6263	strh	r2, [r5, #2]	@ movhi
6264	movw	r2, #61589
6265	str	r2, [r3]
6266	add	r2, r2, #304087040
6267	add	r2, r2, #1269760
6268	addw	r2, r2, #1507
6269	str	r2, [r3, #4]
6270	ldrh	r3, [r0, #4]
6271	tst	r3, #1
6272	ite	eq
6273	moveq	r7, #6
6274	movne	r7, #7
6275.L816:
6276	ldrh	r3, [r4, #4]
6277	cbnz	r3, .L812
6278.L813:
6279	ldr	r3, .L823+8
6280	ldrh	r1, [r4]
6281	ldrh	r0, [r4, #4]
6282	ldr	r2, [r3]
6283	ldrh	r3, [r2, r1, lsl #1]
6284	subs	r3, r3, r0
6285	strh	r3, [r2, r1, lsl #1]	@ movhi
6286	ldr	r3, .L823+12
6287	ldrh	r3, [r3]
6288	strh	r3, [r4, #2]	@ movhi
6289	movs	r3, #0
6290	strb	r3, [r4, #6]
6291	strh	r3, [r4, #4]	@ movhi
6292	add	sp, sp, #24
6293	@ sp needed
6294	pop	{r4, r5, r6, r7, r8, pc}
6295.L812:
6296	mov	r0, r4
6297	bl	get_new_active_ppa
6298	str	r0, [sp, #8]
6299	adds	r0, r0, #1
6300	beq	.L813
6301	ldr	r3, [r8]
6302	movs	r1, #1
6303	add	r0, sp, #4
6304	str	r3, [r5, #4]
6305	adds	r3, r3, #1
6306	adds	r2, r3, #1
6307	it	eq
6308	moveq	r3, r6
6309	str	r3, [r8]
6310	movs	r3, #0
6311	mov	r2, r3
6312	bl	FlashProgPages
6313	ldrh	r0, [r4]
6314	bl	decrement_vpc_count
6315	subs	r7, r7, #1
6316	bne	.L816
6317	b	.L813
6318.L824:
6319	.align	2
6320.L823:
6321	.word	.LANCHOR114
6322	.word	.LANCHOR106
6323	.word	.LANCHOR42
6324	.word	.LANCHOR19
6325	.word	.LANCHOR83
6326	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
6327	.section	.text.FtlMakeBbt,"ax",%progbits
6328	.align	1
6329	.global	FtlMakeBbt
6330	.syntax unified
6331	.thumb
6332	.thumb_func
6333	.fpu softvfp
6334	.type	FtlMakeBbt, %function
6335FtlMakeBbt:
6336	@ args = 0, pretend = 0, frame = 8
6337	@ frame_needed = 0, uses_anonymous_args = 0
6338	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6339	movs	r6, #0
6340	ldr	r7, .L844
6341	bl	FtlBbtMemInit
6342	sub	r8, r7, #18
6343	bl	FtlLoadFactoryBbt
6344.L826:
6345	ldr	r3, .L844+4
6346	ldrh	r3, [r3]
6347	cmp	r6, r3
6348	bcc	.L832
6349	ldr	r5, .L844+8
6350	movs	r4, #0
6351.L833:
6352	ldrh	r3, [r5]
6353	uxth	r0, r4
6354	adds	r4, r4, #1
6355	cmp	r3, r0
6356	bhi	.L834
6357	ldr	r4, .L844+12
6358	movw	r6, #65535
6359	ldrh	r5, [r4, #12]
6360	subs	r5, r5, #1
6361	uxth	r5, r5
6362.L835:
6363	ldrh	r3, [r4, #12]
6364	subs	r3, r3, #47
6365	cmp	r3, r5
6366	bgt	.L839
6367	mov	r0, r5
6368	bl	FtlBbmIsBadBlock
6369	cmp	r0, #1
6370	beq	.L836
6371	mov	r0, r5
6372	bl	FlashTestBlk
6373	cmp	r0, #0
6374	beq	.L837
6375	mov	r0, r5
6376	bl	FtlBbmMapBadBlock
6377.L836:
6378	subs	r5, r5, #1
6379	uxth	r5, r5
6380	b	.L835
6381.L832:
6382	ldr	r3, .L844+16
6383	ldr	r5, .L844+20
6384	ldrh	r2, [r8, #2]!
6385	ldr	r4, .L844+24
6386	ldr	r0, [r3]
6387	movw	r3, #65535
6388	ldr	r10, [r5]
6389	cmp	r2, r3
6390	mov	fp, r4
6391	ldr	r3, .L844+28
6392	str	r0, [r4, #8]
6393	str	r10, [r4, #12]
6394	beq	.L827
6395	ldrh	r5, [r3]
6396	mov	r0, r4
6397	str	r3, [sp]
6398	mla	r5, r6, r5, r2
6399	lsls	r2, r5, #10
6400	str	r2, [r4, #4]
6401	movs	r2, #1
6402	mov	r1, r2
6403	bl	FlashReadPages
6404	ldr	r3, [sp]
6405	ldr	r1, [r4, #8]
6406	ldr	r0, [r7]
6407	ldrh	r2, [r3]
6408	adds	r2, r2, #7
6409	asrs	r2, r2, #3
6410	bl	ftl_memcpy
6411.L828:
6412	uxth	r0, r5
6413	adds	r6, r6, #1
6414	adds	r7, r7, #4
6415	bl	FtlBbmMapBadBlock
6416	b	.L826
6417.L827:
6418	mov	r1, r6
6419	str	r3, [sp]
6420	bl	FlashGetBadBlockList
6421	ldr	r0, [r4, #8]
6422	ldr	r1, [r7]
6423	bl	FtlBbt2Bitmap
6424	ldr	r3, [sp]
6425	str	r5, [sp, #4]
6426	ldrh	r4, [r3]
6427	subs	r4, r4, #1
6428	uxth	r4, r4
6429.L829:
6430	ldr	r3, [sp]
6431	ldrh	r0, [r3]
6432	smlabb	r0, r0, r6, r4
6433	uxth	r0, r0
6434	bl	FtlBbmIsBadBlock
6435	cmp	r0, #1
6436	beq	.L830
6437	ldr	r3, [sp, #4]
6438	movs	r2, #16
6439	movs	r1, #0
6440	strh	r4, [r8]	@ movhi
6441	ldr	r0, [r3]
6442	bl	ftl_memset
6443	ldr	r3, .L844+16
6444	mov	r2, #4096
6445	movs	r1, #0
6446	ldr	r0, [r3]
6447	bl	ftl_memset
6448	ldr	r2, [sp]
6449	movw	r3, #61664
6450	strh	r3, [r10]	@ movhi
6451	movs	r3, #0
6452	str	r3, [r10, #4]
6453	ldrh	r5, [r2]
6454	ldrh	r3, [r8]
6455	ldr	r1, [r7]
6456	ldr	r0, [fp, #8]
6457	strh	r3, [r10, #2]	@ movhi
6458	mla	r5, r6, r5, r3
6459	lsls	r3, r5, #10
6460	str	r3, [fp, #4]
6461	ldr	r3, .L844+32
6462	ldrh	r2, [r3]
6463	lsls	r2, r2, #2
6464	bl	ftl_memcpy
6465	movs	r2, #1
6466	ldr	r0, .L844+24
6467	mov	r1, r2
6468	bl	FlashEraseBlocks
6469	movs	r3, #1
6470	ldr	r0, .L844+24
6471	mov	r2, r3
6472	mov	r1, r3
6473	bl	FlashProgPages
6474	ldr	r3, [fp]
6475	adds	r3, r3, #1
6476	bne	.L828
6477	uxth	r0, r5
6478	bl	FtlBbmMapBadBlock
6479	b	.L829
6480.L830:
6481	subs	r4, r4, #1
6482	uxth	r4, r4
6483	b	.L829
6484.L834:
6485	bl	FtlBbmMapBadBlock
6486	b	.L833
6487.L837:
6488	ldrh	r3, [r4]
6489	cmp	r3, r6
6490	bne	.L838
6491	strh	r5, [r4]	@ movhi
6492	b	.L836
6493.L838:
6494	strh	r5, [r4, #4]	@ movhi
6495.L839:
6496	ldr	r3, .L844+36
6497	movs	r5, #0
6498	str	r5, [r4, #8]
6499	movs	r1, #1
6500	movs	r2, #2
6501	strh	r5, [r4, #2]	@ movhi
6502	ldr	r0, [r3]
6503	ldrh	r3, [r4]
6504	lsls	r3, r3, #10
6505	str	r3, [r0, #4]
6506	ldrh	r3, [r4, #4]
6507	lsls	r3, r3, #10
6508	str	r3, [r0, #24]
6509	bl	FlashEraseBlocks
6510	ldrh	r0, [r4]
6511	bl	FtlBbmMapBadBlock
6512	ldrh	r0, [r4, #4]
6513	bl	FtlBbmMapBadBlock
6514	bl	FtlBbmTblFlush
6515	ldr	r3, [r4, #8]
6516	ldrh	r2, [r4, #4]
6517	strh	r5, [r4, #2]	@ movhi
6518	adds	r3, r3, #1
6519	str	r3, [r4, #8]
6520	ldrh	r3, [r4]
6521	strh	r2, [r4]	@ movhi
6522	strh	r3, [r4, #4]	@ movhi
6523	bl	FtlBbmTblFlush
6524	mov	r0, r5
6525	add	sp, sp, #8
6526	@ sp needed
6527	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6528.L845:
6529	.align	2
6530.L844:
6531	.word	.LANCHOR37+28
6532	.word	.LANCHOR10
6533	.word	.LANCHOR25
6534	.word	.LANCHOR37
6535	.word	.LANCHOR106
6536	.word	.LANCHOR114
6537	.word	.LANCHOR138
6538	.word	.LANCHOR17
6539	.word	.LANCHOR127
6540	.word	.LANCHOR79
6541	.size	FtlMakeBbt, .-FtlMakeBbt
6542	.section	.text.ftl_memcmp,"ax",%progbits
6543	.align	1
6544	.global	ftl_memcmp
6545	.syntax unified
6546	.thumb
6547	.thumb_func
6548	.fpu softvfp
6549	.type	ftl_memcmp, %function
6550ftl_memcmp:
6551	@ args = 0, pretend = 0, frame = 0
6552	@ frame_needed = 0, uses_anonymous_args = 0
6553	@ link register save eliminated.
6554	b	memcmp
6555	.size	ftl_memcmp, .-ftl_memcmp
6556	.section	.text.js_hash,"ax",%progbits
6557	.align	1
6558	.global	js_hash
6559	.syntax unified
6560	.thumb
6561	.thumb_func
6562	.fpu softvfp
6563	.type	js_hash, %function
6564js_hash:
6565	@ args = 0, pretend = 0, frame = 0
6566	@ frame_needed = 0, uses_anonymous_args = 0
6567	ldr	r3, .L850
6568	add	r1, r1, r0
6569	push	{r4, lr}
6570.L848:
6571	cmp	r0, r1
6572	bne	.L849
6573	mov	r0, r3
6574	pop	{r4, pc}
6575.L849:
6576	lsrs	r2, r3, #2
6577	ldrb	r4, [r0], #1	@ zero_extendqisi2
6578	add	r2, r2, r3, lsl #5
6579	add	r2, r2, r4
6580	eors	r3, r3, r2
6581	b	.L848
6582.L851:
6583	.align	2
6584.L850:
6585	.word	1204201446
6586	.size	js_hash, .-js_hash
6587	.section	.text.Ftl_write_map_blk_to_last_page,"ax",%progbits
6588	.align	1
6589	.global	Ftl_write_map_blk_to_last_page
6590	.syntax unified
6591	.thumb
6592	.thumb_func
6593	.fpu softvfp
6594	.type	Ftl_write_map_blk_to_last_page, %function
6595Ftl_write_map_blk_to_last_page:
6596	@ args = 0, pretend = 0, frame = 0
6597	@ frame_needed = 0, uses_anonymous_args = 0
6598	push	{r3, r4, r5, r6, r7, r8, r10, lr}
6599	movw	r2, #65535
6600	ldrh	r3, [r0]
6601	mov	r4, r0
6602	ldr	r5, [r0, #12]
6603	cmp	r3, r2
6604	bne	.L853
6605	ldrh	r3, [r0, #8]
6606	cbz	r3, .L854
6607	movw	r2, #641
6608	ldr	r1, .L862
6609	ldr	r0, .L862+4
6610	bl	printf
6611.L854:
6612	ldrh	r3, [r4, #8]
6613	adds	r3, r3, #1
6614	strh	r3, [r4, #8]	@ movhi
6615	bl	FtlFreeSysBlkQueueOut
6616	movs	r3, #0
6617	strh	r0, [r5]	@ movhi
6618	strh	r3, [r4, #2]	@ movhi
6619	strh	r3, [r4]	@ movhi
6620	ldr	r3, [r4, #28]
6621	adds	r3, r3, #1
6622	str	r3, [r4, #28]
6623.L855:
6624	movs	r0, #0
6625	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
6626.L853:
6627	ldrh	r7, [r5, r3, lsl #1]
6628	movs	r1, #255
6629	ldrh	r3, [r0, #2]
6630	ldr	r6, .L862+8
6631	ldr	r10, .L862+24
6632	ldr	r8, [r0, #24]
6633	orr	r3, r3, r7, lsl #10
6634	ldr	r0, [r10]
6635	str	r3, [r6, #4]
6636	ldr	r3, .L862+12
6637	str	r0, [r6, #8]
6638	ldr	r5, [r3]
6639	ldr	r3, [r4, #28]
6640	str	r5, [r6, #12]
6641	str	r3, [r5, #4]
6642	movw	r3, #64245
6643	strh	r3, [r5, #8]	@ movhi
6644	ldrh	r3, [r4, #4]
6645	strh	r7, [r5, #2]	@ movhi
6646	strh	r3, [r5]	@ movhi
6647	ldr	r3, .L862+16
6648	ldrh	r2, [r3]
6649	lsls	r2, r2, #3
6650	bl	ftl_memset
6651	ldrh	ip, [r4, #6]
6652	movs	r3, #0
6653	ldr	r1, [r10]
6654	mov	r2, r3
6655.L856:
6656	uxth	r0, r3
6657	cmp	ip, r0
6658	bhi	.L858
6659	ldr	r3, .L862+20
6660	ldr	r0, [r6, #8]
6661	ldrh	r1, [r3]
6662	bl	js_hash
6663	movs	r2, #1
6664	str	r0, [r5, #12]
6665	movs	r3, #0
6666	mov	r1, r2
6667	ldr	r0, .L862+8
6668	bl	FlashProgPages
6669	ldrh	r3, [r4, #2]
6670	mov	r0, r4
6671	adds	r3, r3, #1
6672	strh	r3, [r4, #2]	@ movhi
6673	bl	ftl_map_blk_gc
6674	b	.L855
6675.L858:
6676	ldr	r0, [r8, r3, lsl #2]
6677	cmp	r7, r0, lsr #10
6678	bne	.L857
6679	adds	r2, r2, #1
6680	uxth	r2, r2
6681	str	r3, [r1, r2, lsl #3]
6682	add	lr, r1, r2, lsl #3
6683	ldr	r0, [r8, r3, lsl #2]
6684	str	r0, [lr, #4]
6685.L857:
6686	adds	r3, r3, #1
6687	b	.L856
6688.L863:
6689	.align	2
6690.L862:
6691	.word	.LANCHOR148
6692	.word	.LC1
6693	.word	.LANCHOR138
6694	.word	.LANCHOR114
6695	.word	.LANCHOR20
6696	.word	.LANCHOR23
6697	.word	.LANCHOR106
6698	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
6699	.section	.text.FtlMapWritePage,"ax",%progbits
6700	.align	1
6701	.global	FtlMapWritePage
6702	.syntax unified
6703	.thumb
6704	.thumb_func
6705	.fpu softvfp
6706	.type	FtlMapWritePage, %function
6707FtlMapWritePage:
6708	@ args = 0, pretend = 0, frame = 8
6709	@ frame_needed = 0, uses_anonymous_args = 0
6710	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6711	mov	r4, r0
6712	ldr	r8, .L888+32
6713	mov	r7, r1
6714	movs	r6, #0
6715	str	r2, [sp]
6716	mov	fp, r8
6717.L865:
6718	ldr	r2, .L888
6719	ldr	r3, [r2]
6720	adds	r3, r3, #1
6721	str	r3, [r2]
6722	ldrh	r3, [r8]
6723	ldrh	r2, [r4, #2]
6724	subs	r3, r3, #1
6725	cmp	r2, r3
6726	bge	.L866
6727	ldrh	r2, [r4]
6728	movw	r3, #65535
6729	cmp	r2, r3
6730	bne	.L867
6731.L866:
6732	mov	r0, r4
6733	bl	Ftl_write_map_blk_to_last_page
6734.L867:
6735	ldrh	r2, [r4]
6736	ldr	r3, [r4, #12]
6737	ldrh	r3, [r3, r2, lsl #1]
6738	cbnz	r3, .L868
6739	mov	r2, #700
6740	ldr	r1, .L888+4
6741	ldr	r0, .L888+8
6742	bl	printf
6743.L868:
6744	ldrh	r2, [r4]
6745	ldrh	r3, [r4, #10]
6746	cmp	r2, r3
6747	bcc	.L869
6748	movw	r2, #701
6749	ldr	r1, .L888+4
6750	ldr	r0, .L888+8
6751	bl	printf
6752.L869:
6753	ldrh	r2, [r4]
6754	movs	r1, #0
6755	ldr	r3, [r4, #12]
6756	ldr	r5, .L888+12
6757	ldrh	r3, [r3, r2, lsl #1]
6758	ldrh	r2, [r4, #2]
6759	str	r3, [sp, #4]
6760	orr	r2, r2, r3, lsl #10
6761	ldr	r3, [sp]
6762	str	r2, [r5, #4]
6763	ldr	r2, .L888+16
6764	str	r3, [r5, #8]
6765	ldr	r0, [r2]
6766	movs	r2, #16
6767	str	r0, [r5, #12]
6768	bl	ftl_memset
6769	ldr	r1, [r4, #28]
6770	ldr	r10, [r5, #12]
6771	ldr	r3, [sp, #4]
6772	ldr	r0, [r5, #8]
6773	str	r1, [r10, #4]
6774	ldrh	r1, [r4, #4]
6775	strh	r3, [r10, #2]	@ movhi
6776	ldr	r3, .L888+20
6777	strh	r1, [r10]	@ movhi
6778	strh	r7, [r10, #8]	@ movhi
6779	ldrh	r1, [r3]
6780	bl	js_hash
6781	movs	r3, #1
6782	str	r0, [r10, #12]
6783	mov	r2, r3
6784	mov	r1, r3
6785	mov	r0, r5
6786	bl	FlashProgPages
6787	ldrh	r2, [r4, #2]
6788	ldr	r1, [r5]
6789	adds	r2, r2, #1
6790	uxth	r2, r2
6791	adds	r3, r1, #1
6792	strh	r2, [r4, #2]	@ movhi
6793	bne	.L870
6794	ldr	r1, [r5, #4]
6795	adds	r6, r6, #1
6796	ldr	r0, .L888+24
6797	uxth	r6, r6
6798	bl	printf
6799	ldrh	r2, [r4, #2]
6800	cmp	r2, #2
6801	ittt	ls
6802	ldrhls	r2, [fp]
6803	addls	r2, r2, #-1
6804	strhls	r2, [r4, #2]	@ movhi
6805	cmp	r6, #3
6806	bls	.L872
6807	mov	r2, r6
6808	ldr	r1, [r5, #4]
6809	ldr	r0, .L888+28
6810	bl	printf
6811.L873:
6812	b	.L873
6813.L872:
6814	ldr	r3, [r4, #32]
6815	cmp	r3, #0
6816	beq	.L865
6817.L887:
6818	b	.L887
6819.L870:
6820	cmp	r2, #1
6821	beq	.L876
6822	cmp	r1, #256
6823	beq	.L876
6824	ldr	r0, [r4, #36]
6825	cbz	r0, .L877
6826.L876:
6827	movs	r3, #0
6828	str	r3, [r4, #36]
6829	b	.L865
6830.L877:
6831	ldr	r2, [r5, #4]
6832	ldr	r3, [r4, #24]
6833	str	r2, [r3, r7, lsl #2]
6834	add	sp, sp, #8
6835	@ sp needed
6836	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6837.L889:
6838	.align	2
6839.L888:
6840	.word	.LANCHOR88
6841	.word	.LANCHOR149
6842	.word	.LC1
6843	.word	.LANCHOR138
6844	.word	.LANCHOR114
6845	.word	.LANCHOR23
6846	.word	.LC18
6847	.word	.LC19
6848	.word	.LANCHOR20
6849	.size	FtlMapWritePage, .-FtlMapWritePage
6850	.section	.text.load_l2p_region,"ax",%progbits
6851	.align	1
6852	.global	load_l2p_region
6853	.syntax unified
6854	.thumb
6855	.thumb_func
6856	.fpu softvfp
6857	.type	load_l2p_region, %function
6858load_l2p_region:
6859	@ args = 0, pretend = 0, frame = 8
6860	@ frame_needed = 0, uses_anonymous_args = 0
6861	ldr	r3, .L897
6862	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6863	mov	r5, r0
6864	mov	r10, r1
6865	ldrh	r2, [r3]
6866	str	r3, [sp, #4]
6867	cmp	r2, r0
6868	bcs	.L891
6869	movw	r2, #485
6870	ldr	r1, .L897+4
6871	ldr	r0, .L897+8
6872	bl	printf
6873.L891:
6874	ldr	fp, .L897+48
6875	movs	r4, #12
6876	ldr	r7, .L897+12
6877	ldr	r3, [fp]
6878	ldr	r8, [r3, r5, lsl #2]
6879	cmp	r8, #0
6880	bne	.L892
6881	mul	r4, r4, r10
6882	ldr	r2, [r7]
6883	movs	r1, #255
6884	adds	r0, r2, r4
6885	ldr	r2, .L897+16
6886	ldr	r0, [r0, #8]
6887	ldrh	r2, [r2]
6888	bl	ftl_memset
6889	ldr	r2, [r7]
6890	adds	r1, r2, r4
6891	strh	r5, [r2, r4]	@ movhi
6892	str	r8, [r1, #4]
6893.L893:
6894	movs	r0, #0
6895	add	sp, sp, #8
6896	@ sp needed
6897	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6898.L892:
6899	mul	r4, r4, r10
6900	ldr	r2, [r7]
6901	ldr	r6, .L897+20
6902	add	r2, r2, r4
6903	mov	r0, r6
6904	ldr	r2, [r2, #8]
6905	str	r8, [r6, #4]
6906	str	r2, [r6, #8]
6907	ldr	r2, .L897+24
6908	ldr	r2, [r2]
6909	str	r2, [r6, #12]
6910	movs	r2, #1
6911	mov	r1, r2
6912	bl	FlashReadPages
6913	ldr	r10, [r6, #12]
6914	ldrh	r2, [r10, #8]
6915	cmp	r2, r5
6916	beq	.L894
6917	mov	r2, r8
6918	mov	r1, r5
6919	ldr	r0, .L897+28
6920	bl	printf
6921	movs	r3, #4
6922	ldr	r1, [r6, #12]
6923	mov	r2, r3
6924	ldr	r0, .L897+32
6925	bl	rknand_print_hex
6926	ldr	r3, [sp, #4]
6927	movs	r2, #4
6928	ldr	r1, [fp]
6929	ldr	r0, .L897+36
6930	ldrh	r3, [r3]
6931	bl	rknand_print_hex
6932.L895:
6933	ldrh	r3, [r10, #8]
6934	cmp	r3, r5
6935	beq	.L896
6936	mov	r2, #508
6937	ldr	r1, .L897+4
6938	ldr	r0, .L897+8
6939	bl	printf
6940.L896:
6941	ldr	r3, [r7]
6942	movs	r1, #0
6943	adds	r2, r3, r4
6944	str	r1, [r2, #4]
6945	strh	r5, [r3, r4]	@ movhi
6946	b	.L893
6947.L894:
6948	ldr	r2, [r6]
6949	cmp	r2, #256
6950	bne	.L895
6951	mov	r2, r8
6952	mov	r1, r5
6953	ldr	r0, .L897+40
6954	bl	printf
6955	ldr	r3, [r7]
6956	mov	r1, r5
6957	ldr	r0, .L897+44
6958	add	r3, r3, r4
6959	ldr	r2, [r3, #8]
6960	bl	FtlMapWritePage
6961	b	.L895
6962.L898:
6963	.align	2
6964.L897:
6965	.word	.LANCHOR32
6966	.word	.LANCHOR150
6967	.word	.LC1
6968	.word	.LANCHOR55
6969	.word	.LANCHOR23
6970	.word	.LANCHOR138
6971	.word	.LANCHOR114
6972	.word	.LC20
6973	.word	.LC21
6974	.word	.LC22
6975	.word	.LC23
6976	.word	.LANCHOR129
6977	.word	.LANCHOR124
6978	.size	load_l2p_region, .-load_l2p_region
6979	.section	.text.ftl_map_blk_gc,"ax",%progbits
6980	.align	1
6981	.global	ftl_map_blk_gc
6982	.syntax unified
6983	.thumb
6984	.thumb_func
6985	.fpu softvfp
6986	.type	ftl_map_blk_gc, %function
6987ftl_map_blk_gc:
6988	@ args = 0, pretend = 0, frame = 8
6989	@ frame_needed = 0, uses_anonymous_args = 0
6990	ldr	r3, [r0, #24]
6991	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6992	mov	r4, r0
6993	ldr	r5, [r0, #12]
6994	str	r3, [sp]
6995	bl	ftl_free_no_use_map_blk
6996	ldrh	r3, [r4, #10]
6997	ldrh	r2, [r4, #8]
6998	subs	r3, r3, #5
6999	cmp	r2, r3
7000	blt	.L900
7001	uxth	r0, r0
7002	ldrh	r8, [r5, r0, lsl #1]
7003	cmp	r8, #0
7004	beq	.L900
7005	ldr	r3, [r4, #32]
7006	cbnz	r3, .L900
7007	movs	r2, #1
7008	str	r2, [r4, #32]
7009	strh	r3, [r5, r0, lsl #1]	@ movhi
7010	ldrh	r3, [r4, #8]
7011	ldrh	r2, [r4, #2]
7012	subs	r3, r3, #1
7013	strh	r3, [r4, #8]	@ movhi
7014	ldr	r3, .L915
7015	ldrh	r3, [r3]
7016	cmp	r2, r3
7017	bcc	.L901
7018	mov	r0, r4
7019	bl	ftl_map_blk_alloc_new_blk
7020.L901:
7021	ldr	r5, .L915+4
7022	movs	r6, #0
7023.L902:
7024	ldrh	r3, [r4, #6]
7025	uxth	r10, r6
7026	cmp	r3, r10
7027	bhi	.L909
7028	movs	r1, #1
7029	mov	r0, r8
7030	bl	FtlFreeSysBlkQueueIn
7031	movs	r3, #0
7032	str	r3, [r4, #32]
7033.L900:
7034	ldr	r3, .L915
7035	ldrh	r2, [r4, #2]
7036	ldrh	r3, [r3]
7037	cmp	r2, r3
7038	bcc	.L910
7039	mov	r0, r4
7040	bl	ftl_map_blk_alloc_new_blk
7041.L910:
7042	movs	r0, #0
7043	add	sp, sp, #8
7044	@ sp needed
7045	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7046.L909:
7047	ldr	r3, [sp]
7048	uxth	fp, r6
7049	add	r3, r3, fp, lsl #2
7050	str	r3, [sp, #4]
7051	ldr	r3, [sp]
7052	ldr	r2, [r3, fp, lsl #2]
7053	cmp	r8, r2, lsr #10
7054	bne	.L903
7055	ldr	r3, .L915+8
7056	str	r2, [r5, #4]
7057	movs	r2, #1
7058	ldr	r0, .L915+4
7059	ldr	r1, [r3]
7060	str	r1, [r5, #8]
7061	ldr	r1, .L915+12
7062	ldr	r7, [r1]
7063	mov	r1, r2
7064	str	r7, [r5, #12]
7065	bl	FlashReadPages
7066	ldrh	r2, [r7, #8]
7067	cmp	r2, r10
7068	beq	.L904
7069	movw	r2, #611
7070	ldr	r1, .L915+16
7071	ldr	r0, .L915+20
7072	bl	printf
7073.L904:
7074	ldr	r2, [r5]
7075	adds	r2, r2, #1
7076	bne	.L905
7077.L907:
7078	ldr	r2, [sp, #4]
7079	movs	r3, #0
7080	str	r3, [r2]
7081.L906:
7082	b	.L906
7083.L905:
7084	ldrh	r2, [r7, #8]
7085	cmp	r2, r10
7086	bne	.L907
7087	ldrh	r1, [r7]
7088	ldrh	r2, [r4, #4]
7089	cmp	r1, r2
7090	bne	.L907
7091	ldr	r2, [r5, #8]
7092	mov	r1, fp
7093	mov	r0, r4
7094	bl	FtlMapWritePage
7095.L903:
7096	adds	r6, r6, #1
7097	b	.L902
7098.L916:
7099	.align	2
7100.L915:
7101	.word	.LANCHOR20
7102	.word	.LANCHOR138
7103	.word	.LANCHOR107
7104	.word	.LANCHOR114
7105	.word	.LANCHOR151
7106	.word	.LC1
7107	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
7108	.section	.text.flush_l2p_region,"ax",%progbits
7109	.align	1
7110	.global	flush_l2p_region
7111	.syntax unified
7112	.thumb
7113	.thumb_func
7114	.fpu softvfp
7115	.type	flush_l2p_region, %function
7116flush_l2p_region:
7117	@ args = 0, pretend = 0, frame = 0
7118	@ frame_needed = 0, uses_anonymous_args = 0
7119	push	{r3, r4, r5, lr}
7120	movs	r4, #12
7121	ldr	r5, .L918
7122	muls	r4, r0, r4
7123	ldr	r0, .L918+4
7124	ldr	r3, [r5]
7125	adds	r2, r3, r4
7126	ldrh	r1, [r3, r4]
7127	ldr	r2, [r2, #8]
7128	bl	FtlMapWritePage
7129	ldr	r3, [r5]
7130	movs	r0, #0
7131	add	r4, r4, r3
7132	ldr	r3, [r4, #4]
7133	bic	r3, r3, #-2147483648
7134	str	r3, [r4, #4]
7135	pop	{r3, r4, r5, pc}
7136.L919:
7137	.align	2
7138.L918:
7139	.word	.LANCHOR55
7140	.word	.LANCHOR129
7141	.size	flush_l2p_region, .-flush_l2p_region
7142	.section	.text.l2p_flush,"ax",%progbits
7143	.align	1
7144	.global	l2p_flush
7145	.syntax unified
7146	.thumb
7147	.thumb_func
7148	.fpu softvfp
7149	.type	l2p_flush, %function
7150l2p_flush:
7151	@ args = 0, pretend = 0, frame = 0
7152	@ frame_needed = 0, uses_anonymous_args = 0
7153	push	{r4, r5, r6, lr}
7154	movs	r4, #0
7155	ldr	r5, .L924
7156	ldr	r6, .L924+4
7157.L921:
7158	ldrh	r3, [r5]
7159	uxth	r0, r4
7160	cmp	r3, r0
7161	bhi	.L923
7162	movs	r0, #0
7163	pop	{r4, r5, r6, pc}
7164.L923:
7165	ldr	r2, [r6]
7166	uxth	r3, r4
7167	movs	r1, #12
7168	mla	r3, r1, r3, r2
7169	ldr	r3, [r3, #4]
7170	cmp	r3, #0
7171	bge	.L922
7172	bl	flush_l2p_region
7173.L922:
7174	adds	r4, r4, #1
7175	b	.L921
7176.L925:
7177	.align	2
7178.L924:
7179	.word	.LANCHOR33
7180	.word	.LANCHOR55
7181	.size	l2p_flush, .-l2p_flush
7182	.section	.text.log2phys,"ax",%progbits
7183	.align	1
7184	.global	log2phys
7185	.syntax unified
7186	.thumb
7187	.thumb_func
7188	.fpu softvfp
7189	.type	log2phys, %function
7190log2phys:
7191	@ args = 0, pretend = 0, frame = 8
7192	@ frame_needed = 0, uses_anonymous_args = 0
7193	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7194	mov	r7, r2
7195	ldr	r4, .L939
7196	mov	r10, r0
7197	mov	r5, r1
7198	ldr	r3, .L939+4
7199	ldr	r2, [r4]
7200	ldrh	fp, [r3]
7201	cmp	r0, r2
7202	bcc	.L927
7203	movw	r2, #813
7204	ldr	r1, .L939+8
7205	ldr	r0, .L939+12
7206	bl	printf
7207.L927:
7208	ldr	r3, [r4]
7209	cmp	r10, r3
7210	bcs	.L928
7211	ldr	r3, .L939+16
7212	add	fp, fp, #7
7213	lsr	r6, r10, fp
7214	movs	r2, #0
7215	ldrh	r1, [r3]
7216	uxth	r6, r6
7217	ldr	r3, .L939+20
7218	ldr	r0, [r3]
7219	mov	r8, r3
7220	movs	r3, #12
7221.L929:
7222	uxth	r4, r2
7223	cmp	r4, r1
7224	bcc	.L934
7225	str	r3, [sp, #4]
7226	bl	select_l2p_ram_region
7227	ldr	r3, [sp, #4]
7228	mov	r4, r0
7229	ldr	r2, [r8]
7230	muls	r3, r0, r3
7231	adds	r1, r2, r3
7232	ldrh	r2, [r2, r3]
7233	movw	r3, #65535
7234	cmp	r2, r3
7235	beq	.L935
7236	ldr	r3, [r1, #4]
7237	cmp	r3, #0
7238	bge	.L935
7239	bl	flush_l2p_region
7240.L935:
7241	mov	r1, r4
7242	mov	r0, r6
7243	bl	load_l2p_region
7244	b	.L931
7245.L928:
7246	mov	r0, #-1
7247	cbnz	r7, .L926
7248	str	r0, [r5]
7249.L926:
7250	add	sp, sp, #8
7251	@ sp needed
7252	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7253.L934:
7254	adds	r2, r2, #1
7255	mla	ip, r3, r2, r0
7256	ldrh	ip, [ip, #-12]
7257	cmp	ip, r6
7258	bne	.L929
7259.L931:
7260	movs	r0, #1
7261	ldr	r2, [r8]
7262	lsl	r0, r0, fp
7263	movs	r3, #12
7264	subs	r0, r0, #1
7265	and	r0, r0, r10
7266	uxth	r0, r0
7267	mla	r3, r3, r4, r2
7268	cbnz	r7, .L932
7269	ldr	r3, [r3, #8]
7270	ldr	r3, [r3, r0, lsl #2]
7271	str	r3, [r5]
7272.L933:
7273	ldr	r2, [r8]
7274	movs	r3, #12
7275	mla	r4, r3, r4, r2
7276	ldr	r3, [r4, #4]
7277	adds	r2, r3, #1
7278	beq	.L937
7279	adds	r3, r3, #1
7280	str	r3, [r4, #4]
7281.L937:
7282	movs	r0, #0
7283	b	.L926
7284.L932:
7285	ldr	r1, [r5]
7286	ldr	r2, [r3, #8]
7287	str	r1, [r2, r0, lsl #2]
7288	ldr	r2, [r3, #4]
7289	orr	r2, r2, #-2147483648
7290	str	r2, [r3, #4]
7291	ldr	r3, .L939+24
7292	strh	r6, [r3]	@ movhi
7293	b	.L933
7294.L940:
7295	.align	2
7296.L939:
7297	.word	.LANCHOR152
7298	.word	.LANCHOR22
7299	.word	.LANCHOR153
7300	.word	.LC1
7301	.word	.LANCHOR33
7302	.word	.LANCHOR55
7303	.word	.LANCHOR56
7304	.size	log2phys, .-log2phys
7305	.section	.text.FtlReUsePrevPpa,"ax",%progbits
7306	.align	1
7307	.global	FtlReUsePrevPpa
7308	.syntax unified
7309	.thumb
7310	.thumb_func
7311	.fpu softvfp
7312	.type	FtlReUsePrevPpa, %function
7313FtlReUsePrevPpa:
7314	@ args = 0, pretend = 0, frame = 8
7315	@ frame_needed = 0, uses_anonymous_args = 0
7316	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7317	mov	r6, r0
7318	ldr	r5, .L951
7319	ubfx	r0, r1, #10, #16
7320	str	r1, [sp, #4]
7321	bl	P2V_block_in_plane
7322	ldr	r2, [r5]
7323	mov	r7, r0
7324	ldrh	r3, [r2, r0, lsl #1]
7325	cbnz	r3, .L942
7326	ldr	r2, .L951+4
7327	ldr	r4, [r2]
7328	cmp	r4, #0
7329	beq	.L943
7330	ldr	r2, .L951+8
7331	movw	lr, #65535
7332	ldr	ip, .L951+24
7333	ldr	r0, .L951+12
7334	ldr	r2, [r2]
7335	ldrh	r1, [r0]
7336	mov	r8, r0
7337	subs	r4, r4, r2
7338	asrs	r4, r4, #1
7339	mul	r4, ip, r4
7340	mov	ip, #6
7341	uxth	r4, r4
7342.L944:
7343	uxth	r0, r3
7344	cmp	r1, r0
7345	bls	.L943
7346	cmp	r4, r7
7347	bne	.L945
7348	mov	r1, r4
7349	ldr	r0, .L951+4
7350	bl	List_remove_node
7351	ldrh	r3, [r8]
7352	cbnz	r3, .L946
7353	movw	r2, #1733
7354	ldr	r1, .L951+16
7355	ldr	r0, .L951+20
7356	bl	printf
7357.L946:
7358	ldrh	r3, [r8]
7359	mov	r0, r4
7360	subs	r3, r3, #1
7361	strh	r3, [r8]	@ movhi
7362	bl	INSERT_DATA_LIST
7363	ldr	r2, [r5]
7364	ldrh	r3, [r2, r7, lsl #1]
7365.L942:
7366	adds	r3, r3, #1
7367	strh	r3, [r2, r7, lsl #1]	@ movhi
7368	b	.L943
7369.L945:
7370	mul	r4, ip, r4
7371	adds	r3, r3, #1
7372	ldrh	r4, [r2, r4]
7373	cmp	r4, lr
7374	bne	.L944
7375.L943:
7376	movs	r2, #1
7377	add	r1, sp, #4
7378	mov	r0, r6
7379	bl	log2phys
7380	add	sp, sp, #8
7381	@ sp needed
7382	pop	{r4, r5, r6, r7, r8, pc}
7383.L952:
7384	.align	2
7385.L951:
7386	.word	.LANCHOR42
7387	.word	.LANCHOR47
7388	.word	.LANCHOR40
7389	.word	.LANCHOR48
7390	.word	.LANCHOR154
7391	.word	.LC1
7392	.word	-1431655765
7393	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
7394	.section	.text.FtlRecoverySuperblock,"ax",%progbits
7395	.align	1
7396	.global	FtlRecoverySuperblock
7397	.syntax unified
7398	.thumb
7399	.thumb_func
7400	.fpu softvfp
7401	.type	FtlRecoverySuperblock, %function
7402FtlRecoverySuperblock:
7403	@ args = 0, pretend = 0, frame = 48
7404	@ frame_needed = 0, uses_anonymous_args = 0
7405	ldrh	r3, [r0]
7406	movw	r2, #65535
7407	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7408	mov	r8, r0
7409	sub	sp, sp, #48
7410	cmp	r3, r2
7411	beq	.L1081
7412	ldrh	r3, [r0, #2]
7413	str	r3, [sp, #4]
7414	ldrb	r3, [r0, #6]	@ zero_extendqisi2
7415	ldr	r1, [sp, #4]
7416	str	r3, [sp, #20]
7417	ldr	r3, .L1091
7418	ldrh	r3, [r3]
7419	cmp	r3, r1
7420	mov	r3, #0
7421	bne	.L956
7422	strh	r3, [r0, #4]	@ movhi
7423.L1089:
7424	strb	r3, [r8, #6]
7425.L1081:
7426	movs	r0, #0
7427	add	sp, sp, #48
7428	@ sp needed
7429	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7430.L956:
7431	ldrh	r0, [r0, #16]
7432.L957:
7433	cmp	r0, r2
7434	uxth	r5, r3
7435	add	r3, r3, #1
7436	beq	.L958
7437	movs	r1, #1
7438	bl	FtlGetLastWrittenPage
7439	mov	r4, r0
7440	adds	r0, r0, #1
7441	beq	.L959
7442	ldr	r3, .L1091+4
7443	movs	r2, #0
7444	mov	r5, r2
7445	movw	fp, #65535
7446	mov	r10, #20
7447	ldrh	ip, [r3]
7448	ldr	r3, .L1091+8
7449	ldr	r0, [r3]
7450	ldr	r3, .L1091+12
7451	ldr	r3, [r3]
7452	str	r3, [sp, #8]
7453	ldr	r3, .L1091+16
7454	ldrh	r7, [r3]
7455	ldr	r3, .L1091+20
7456	ldr	r3, [r3]
7457	str	r3, [sp, #12]
7458	ldr	r3, .L1091+24
7459	ldrh	lr, [r3]
7460	add	r3, r8, #16
7461	str	r3, [sp, #16]
7462	str	r3, [sp]
7463.L960:
7464	uxth	r3, r2
7465	cmp	ip, r3
7466	bhi	.L964
7467	movs	r2, #0
7468	mov	r1, r5
7469	bl	FlashReadPages
7470	ldr	r2, .L1091+28
7471	uxth	r1, r4
7472	movw	fp, #65535
7473	str	r1, [sp, #12]
7474	ldr	r3, [r2]
7475	subs	r3, r3, #1
7476	str	r3, [sp]
7477	ldr	r3, .L1091+8
7478	ldr	r10, [r3]
7479	movs	r3, #0
7480	mov	r7, r10
7481.L965:
7482	uxth	r1, r3
7483	cmp	r5, r1
7484	bhi	.L970
7485	bne	.L968
7486	adds	r3, r4, #1
7487	uxth	r3, r3
7488	str	r3, [sp, #8]
7489.L1082:
7490	ldr	r0, [r10, #4]
7491	ubfx	r0, r0, #10, #16
7492	bl	P2V_plane
7493	ldr	r3, .L1091
7494	mov	r10, r0
7495	ldr	r2, [sp, #8]
7496	ldrh	r3, [r3]
7497	cmp	r3, r2
7498	bne	.L972
7499	ldrh	r3, [sp, #8]
7500	strh	r3, [r8, #2]	@ movhi
7501	movs	r3, #0
7502	strb	r3, [r8, #6]
7503	strh	r3, [r8, #4]	@ movhi
7504.L972:
7505	ldr	r3, [sp, #8]
7506	ldr	r2, [sp, #4]
7507	cmp	r3, r2
7508	bne	.L973
7509	ldr	r3, [sp, #20]
7510	cmp	r10, r3
7511	bne	.L973
7512	ldr	r1, [sp, #8]
7513	mov	r2, r10
7514.L1090:
7515	mov	r0, r8
7516	bl	ftl_sb_update_avl_pages
7517	b	.L1081
7518.L958:
7519	uxth	r1, r3
7520	adds	r1, r1, #8
7521	ldrh	r0, [r8, r1, lsl #1]
7522	b	.L957
7523.L959:
7524	ldr	r3, [sp, #4]
7525	cbz	r3, .L961
7526	mov	r2, #1800
7527	ldr	r1, .L1091+32
7528	ldr	r0, .L1091+36
7529	bl	printf
7530.L961:
7531	ldr	r3, [sp, #20]
7532	cbz	r3, .L962
7533	cmp	r5, r3
7534	beq	.L962
7535	movw	r2, #1801
7536	ldr	r1, .L1091+32
7537	ldr	r0, .L1091+36
7538	bl	printf
7539.L962:
7540	movs	r3, #0
7541	strh	r3, [r8, #2]	@ movhi
7542	b	.L1089
7543.L964:
7544	ldr	r1, [sp]
7545	ldrh	r3, [r1], #2
7546	cmp	r3, fp
7547	str	r1, [sp]
7548	beq	.L963
7549	mla	r1, r10, r5, r0
7550	ldr	r6, [sp, #8]
7551	orr	r3, r4, r3, lsl #10
7552	str	r3, [r1, #4]
7553	mul	r3, r7, r5
7554	bic	r3, r3, #3
7555	add	r3, r3, r6
7556	ldr	r6, [sp, #12]
7557	str	r3, [r1, #8]
7558	mul	r3, lr, r5
7559	adds	r5, r5, #1
7560	uxth	r5, r5
7561	bic	r3, r3, #3
7562	add	r3, r3, r6
7563	str	r3, [r1, #12]
7564.L963:
7565	adds	r2, r2, #1
7566	b	.L960
7567.L970:
7568	ldr	r1, [r7]
7569	cbnz	r1, .L966
7570	ldr	r1, [r7, #12]
7571	ldr	r6, [r1, #4]
7572	str	r1, [sp, #8]
7573	adds	r1, r6, #1
7574	beq	.L967
7575	ldr	r1, [r2]
7576	mov	r0, r6
7577	bl	ftl_cmp_data_ver
7578	cbz	r0, .L967
7579	adds	r6, r6, #1
7580	str	r6, [r2]
7581.L967:
7582	ldr	r1, [sp, #8]
7583	ldr	r1, [r1]
7584	adds	r1, r1, #1
7585	bne	.L969
7586.L968:
7587	uxth	r2, r4
7588	uxth	r3, r3
7589	str	r2, [sp, #8]
7590	movs	r2, #20
7591	mla	r10, r2, r3, r10
7592	b	.L1082
7593.L966:
7594	ldr	fp, [sp, #12]
7595.L969:
7596	adds	r3, r3, #1
7597	adds	r7, r7, #20
7598	b	.L965
7599.L973:
7600	movw	r3, #65535
7601	cmp	fp, r3
7602	bne	.L974
7603	ldrb	r3, [r8, #8]	@ zero_extendqisi2
7604	cmp	r3, #0
7605	bne	.L975
7606.L974:
7607	ldr	r3, .L1091+40
7608	uxth	r6, r4
7609	uxth	r4, r4
7610	ldr	r7, .L1091+8
7611	ldr	r2, [r3]
7612	adds	r2, r2, #1
7613	itt	eq
7614	ldreq	r2, [sp]
7615	streq	r2, [r3]
7616	ldr	r3, [sp, #4]
7617	adds	r3, r3, #7
7618	cmp	r4, r3
7619	itet	gt
7620	subgt	r4, r6, #7
7621	ldrle	r4, [sp, #4]
7622	uxthgt	r4, r4
7623.L978:
7624	cmp	r4, r6
7625	bhi	.L988
7626	ldr	r3, .L1091+4
7627	movw	lr, #65535
7628	ldr	r0, [r7]
7629	mov	ip, #20
7630	ldrh	fp, [r3]
7631	ldr	r3, [sp, #16]
7632	str	r3, [sp, #12]
7633	movs	r3, #0
7634	mov	r5, r3
7635	b	.L989
7636.L980:
7637	ldr	r1, [sp, #12]
7638	ldrh	r2, [r1], #2
7639	cmp	r2, lr
7640	str	r1, [sp, #12]
7641	beq	.L979
7642	mla	r1, ip, r5, r0
7643	adds	r5, r5, #1
7644	orr	r2, r4, r2, lsl #10
7645	uxth	r5, r5
7646	str	r2, [r1, #4]
7647.L979:
7648	adds	r3, r3, #1
7649.L989:
7650	uxth	r2, r3
7651	cmp	fp, r2
7652	bhi	.L980
7653	mov	r1, r5
7654	movs	r2, #0
7655	bl	FlashReadPages
7656	ldr	r3, .L1091+40
7657	movs	r1, #20
7658	movs	r0, #0
7659	movw	ip, #65535
7660	ldr	r2, [r3]
7661	ldr	r3, [r7]
7662	mla	r5, r1, r5, r3
7663.L981:
7664	cmp	r5, r3
7665	bne	.L986
7666	cbz	r0, .L987
7667	ldr	r3, .L1091+40
7668	str	r2, [r3]
7669.L987:
7670	adds	r4, r4, #1
7671	uxth	r4, r4
7672	b	.L978
7673.L1092:
7674	.align	2
7675.L1091:
7676	.word	.LANCHOR19
7677	.word	.LANCHOR3
7678	.word	.LANCHOR103
7679	.word	.LANCHOR64
7680	.word	.LANCHOR23
7681	.word	.LANCHOR65
7682	.word	.LANCHOR24
7683	.word	.LANCHOR83
7684	.word	.LANCHOR155
7685	.word	.LC1
7686	.word	.LANCHOR134
7687.L986:
7688	ldr	r1, [r3]
7689	cmp	r1, #0
7690	beq	.L982
7691	cbz	r0, .L975
7692.L1083:
7693	ldr	r3, .L1093
7694	str	r2, [r3]
7695.L975:
7696	ldr	fp, [sp, #4]
7697	movs	r2, #1
7698	ldr	r6, .L1093+4
7699	ldr	r3, .L1093+8
7700	strh	r2, [r3]	@ movhi
7701.L990:
7702	ldr	r3, .L1093+12
7703	movw	lr, #65535
7704	ldr	r0, [r6]
7705	movs	r7, #20
7706	ldr	r1, [sp, #16]
7707	ldrh	r4, [r3]
7708	movs	r3, #0
7709	str	r3, [sp, #12]
7710.L991:
7711	uxth	r2, r3
7712	cmp	r4, r2
7713	bhi	.L993
7714	movs	r2, #0
7715	ldr	r1, [sp, #12]
7716	bl	FlashReadPages
7717	movs	r3, #0
7718.L1088:
7719	str	r3, [sp, #24]
7720	ldr	r2, [sp, #12]
7721	ldrh	r3, [sp, #24]
7722	cmp	r2, r3
7723	bhi	.L1024
7724	ldr	r3, .L1093+16
7725	add	fp, fp, #1
7726	uxth	fp, fp
7727	ldrh	r3, [r3]
7728	cmp	r3, fp
7729	bne	.L990
7730	ldr	r2, .L1093+12
7731	movw	r0, #65535
7732	movs	r3, #0
7733	strh	fp, [r8, #2]	@ movhi
7734	strh	r3, [r8, #4]	@ movhi
7735	ldrh	r2, [r2]
7736.L1025:
7737	uxth	r1, r3
7738	cmp	r1, r2
7739	bcs	.L1081
7740	ldr	r1, [sp, #16]
7741	ldrh	r4, [r1], #2
7742	cmp	r4, r0
7743	str	r1, [sp, #16]
7744	add	r1, r3, #1
7745	bne	.L1089
7746	mov	r3, r1
7747	b	.L1025
7748.L982:
7749	ldr	r1, [r3, #12]
7750	ldrh	lr, [r1]
7751	cmp	lr, ip
7752	beq	.L985
7753	ldr	r1, [r1, #4]
7754	cmp	r1, #-1
7755	itt	ne
7756	movne	r2, r1
7757	movne	r0, #1
7758.L985:
7759	adds	r3, r3, #20
7760	b	.L981
7761.L988:
7762	mov	r2, #-1
7763	b	.L1083
7764.L993:
7765	ldrh	r2, [r1], #2
7766	cmp	r2, lr
7767	beq	.L992
7768	ldr	r5, [sp, #12]
7769	orr	r2, fp, r2, lsl #10
7770	mla	ip, r7, r5, r0
7771	str	r2, [ip, #4]
7772	mov	r2, r5
7773	adds	r2, r2, #1
7774	uxth	r2, r2
7775	str	r2, [sp, #12]
7776.L992:
7777	adds	r3, r3, #1
7778	b	.L991
7779.L1024:
7780	ldr	r3, [sp, #24]
7781	movs	r5, #20
7782	muls	r5, r3, r5
7783	ldr	r3, [r6]
7784	str	r3, [sp, #28]
7785	adds	r7, r3, r5
7786	ldr	r4, [r7, #4]
7787	ubfx	r0, r4, #10, #16
7788	str	r4, [sp, #44]
7789	bl	P2V_plane
7790	ldr	r3, [sp, #4]
7791	cmp	fp, r3
7792	bcc	.L995
7793	ldr	r3, [sp, #28]
7794	bne	.L996
7795	ldr	r2, [sp, #20]
7796	cmp	r2, r0
7797	bhi	.L995
7798.L996:
7799	ldr	r2, [sp, #8]
7800	cmp	fp, r2
7801	bne	.L997
7802	cmp	r10, r0
7803	beq	.L998
7804.L997:
7805	ldr	r3, [r3, r5]
7806	adds	r3, r3, #1
7807	beq	.L999
7808	ldr	r3, [r7, #12]
7809	movw	r2, #61589
7810	ldrh	r1, [r3]
7811	cmp	r1, r2
7812	beq	.L1000
7813	ldrh	r0, [r8]
7814.L1086:
7815	bl	decrement_vpc_count
7816	b	.L995
7817.L1000:
7818	ldr	r2, [r3, #4]
7819	str	r2, [sp]
7820	adds	r2, r2, #1
7821	beq	.L1001
7822	ldr	r2, .L1093+20
7823	ldr	r0, [sp]
7824	ldr	r1, [r2]
7825	bl	ftl_cmp_data_ver
7826	cbz	r0, .L1001
7827	ldr	r1, [sp]
7828	adds	r1, r1, #1
7829	str	r1, [r2]
7830.L1001:
7831	ldr	r4, [r3, #8]
7832	add	r1, sp, #40
7833	ldr	r3, [r3, #12]
7834	movs	r2, #0
7835	mov	r0, r4
7836	str	r3, [sp, #36]
7837	bl	log2phys
7838	ldr	r3, .L1093
7839	ldr	r1, [r3]
7840	adds	r3, r1, #1
7841	beq	.L1002
7842	ldr	r0, [sp]
7843	bl	ftl_cmp_data_ver
7844	cmp	r0, #0
7845	beq	.L1002
7846	ldr	r3, [sp, #36]
7847	adds	r7, r3, #1
7848	beq	.L1003
7849	ldr	r0, [r6]
7850	movs	r2, #0
7851	movs	r1, #1
7852	add	r0, r0, r5
7853	str	r3, [r0, #4]
7854	ldr	r7, [r0, #12]
7855	bl	FlashReadPages
7856	ldr	r2, [r6]
7857	ldr	r1, [r2, r5]
7858	adds	r3, r2, r5
7859	adds	r1, r1, #1
7860	bne	.L1004
7861.L1005:
7862	mov	r3, #-1
7863	str	r3, [sp, #36]
7864.L1012:
7865	ldr	r7, [sp, #36]
7866	adds	r0, r7, #1
7867	beq	.L995
7868.L1028:
7869	ubfx	r0, r7, #10, #16
7870	bl	P2V_block_in_plane
7871	ldr	r3, .L1093+24
7872	mov	r4, r0
7873	ldrh	r3, [r3]
7874	cmp	r3, r0
7875	bhi	.L1020
7876	movw	r2, #2065
7877	ldr	r1, .L1093+28
7878	ldr	r0, .L1093+32
7879	bl	printf
7880.L1020:
7881	ldr	r3, .L1093+36
7882	ldr	r3, [r3]
7883	ldrh	r3, [r3, r4, lsl #1]
7884	cmp	r3, #0
7885	beq	.L1021
7886	mov	r0, r4
7887	b	.L1086
7888.L1003:
7889	ldr	r3, [sp, #44]
7890	ldr	r2, [sp, #40]
7891	cmp	r2, r3
7892	bne	.L995
7893	movs	r2, #1
7894	add	r1, sp, #36
7895	mov	r0, r4
7896	bl	log2phys
7897.L995:
7898	ldr	r3, [sp, #24]
7899	adds	r3, r3, #1
7900	b	.L1088
7901.L1004:
7902	ldr	r1, [r7, #8]
7903	cmp	r4, r1
7904	bne	.L1005
7905	ldr	r0, .L1093
7906	ldr	r1, [r7, #4]
7907	ldr	r0, [r0]
7908	str	r1, [sp, #28]
7909	bl	ftl_cmp_data_ver
7910	cmp	r0, #0
7911	beq	.L1005
7912	ldr	r1, [sp, #40]
7913	ldr	r0, [sp, #44]
7914	cmp	r1, r0
7915	bne	.L1007
7916.L1010:
7917	ldr	r1, [sp, #36]
7918	mov	r0, r4
7919	bl	FtlReUsePrevPpa
7920	b	.L1005
7921.L1007:
7922	ldr	r0, [sp, #36]
7923	cmp	r1, r0
7924	beq	.L1005
7925	adds	r0, r1, #1
7926	beq	.L1008
7927	str	r1, [r3, #4]
7928	movs	r2, #0
7929	movs	r1, #1
7930	mov	r0, r3
7931	ldr	r7, [r3, #12]
7932	bl	FlashReadPages
7933.L1009:
7934	ldr	r3, [r6]
7935	ldr	r3, [r3, r5]
7936	adds	r3, r3, #1
7937	beq	.L1010
7938	ldr	r3, [r7, #4]
7939	ldr	r2, .L1093
7940	mov	r1, r3
7941	ldr	r0, [r2]
7942	bl	ftl_cmp_data_ver
7943	cmp	r0, #0
7944	beq	.L1010
7945	mov	r1, r3
7946	ldr	r0, [sp, #28]
7947	bl	ftl_cmp_data_ver
7948	cmp	r0, #0
7949	beq	.L1005
7950	b	.L1010
7951.L1008:
7952	str	r1, [r2, r5]
7953	b	.L1009
7954.L1094:
7955	.align	2
7956.L1093:
7957	.word	.LANCHOR134
7958	.word	.LANCHOR103
7959	.word	.LANCHOR156
7960	.word	.LANCHOR3
7961	.word	.LANCHOR19
7962	.word	.LANCHOR83
7963	.word	.LANCHOR5
7964	.word	.LANCHOR155
7965	.word	.LC1
7966	.word	.LANCHOR42
7967.L1002:
7968	ldr	r3, [sp, #44]
7969	ldr	r2, [sp, #40]
7970	cmp	r2, r3
7971	beq	.L1012
7972	ldr	r2, .L1095
7973	ldr	r3, [sp, #36]
7974	ldr	r2, [r2]
7975	cmp	r2, r3, lsr #10
7976	bhi	.L1014
7977	adds	r3, r3, #1
7978.L1085:
7979	bne	.L995
7980	movs	r2, #1
7981	add	r1, sp, #44
7982	mov	r0, r4
7983	bl	log2phys
7984	ldr	r7, [sp, #40]
7985	adds	r5, r7, #1
7986	beq	.L1012
7987	ldr	r3, [sp, #36]
7988	cmp	r7, r3
7989	beq	.L1028
7990	ubfx	r0, r7, #10, #16
7991	bl	P2V_block_in_plane
7992	ldr	r3, .L1095+4
7993	ldrh	r3, [r3]
7994	cmp	r3, r0
7995	beq	.L1019
7996	ldr	r3, .L1095+8
7997	ldrh	r3, [r3]
7998	cmp	r3, r0
7999	beq	.L1019
8000	ldr	r3, .L1095+12
8001	ldrh	r3, [r3]
8002	cmp	r3, r0
8003	bne	.L1012
8004.L1019:
8005	ldr	r0, [r6]
8006	movs	r2, #0
8007	movs	r1, #1
8008	str	r7, [r0, #4]
8009	ldr	r5, [r0, #12]
8010	bl	FlashReadPages
8011	ldr	r3, [r6]
8012	ldr	r3, [r3]
8013	adds	r3, r3, #1
8014	beq	.L1012
8015	ldr	r1, [r5, #4]
8016	ldr	r0, [sp]
8017	bl	ftl_cmp_data_ver
8018	cmp	r0, #0
8019	bne	.L1012
8020	movs	r2, #1
8021	add	r1, sp, #40
8022	mov	r0, r4
8023	bl	log2phys
8024	b	.L1012
8025.L1014:
8026	ldr	r0, [r6]
8027	movs	r2, #0
8028	movs	r1, #1
8029	ldr	r5, [r0, #12]
8030	str	r3, [r0, #4]
8031	bl	FlashReadPages
8032	ldr	r3, [r5, #8]
8033	cmp	r4, r3
8034	bne	.L995
8035	ldrh	r2, [r5]
8036	movw	r3, #61589
8037	cmp	r2, r3
8038	b	.L1085
8039.L1021:
8040	mov	r1, r4
8041	ldr	r0, .L1095+16
8042	bl	printf
8043	b	.L995
8044.L999:
8045	ldr	r3, .L1095+20
8046	ldr	r3, [r3]
8047	cmp	r3, #31
8048	bhi	.L1022
8049	ldr	r2, .L1095+24
8050	str	r4, [r2, r3, lsl #2]
8051	adds	r3, r3, #1
8052	ldr	r2, .L1095+20
8053	str	r3, [r2]
8054.L1022:
8055	ldrh	r0, [r8]
8056	bl	decrement_vpc_count
8057	ldr	r3, .L1095+28
8058	ldr	r2, [r3]
8059	adds	r1, r2, #1
8060	bne	.L1023
8061	ldr	r2, [sp]
8062.L1087:
8063	str	r2, [r3]
8064	b	.L995
8065.L1023:
8066	ldr	r1, [sp]
8067	cmp	r1, r2
8068	bcs	.L995
8069	mov	r2, r1
8070	b	.L1087
8071.L998:
8072	strb	r10, [r8, #6]
8073	mov	r2, r10
8074	strh	fp, [r8, #2]	@ movhi
8075	mov	r1, fp
8076	b	.L1090
8077.L1096:
8078	.align	2
8079.L1095:
8080	.word	.LANCHOR8
8081	.word	.LANCHOR51
8082	.word	.LANCHOR52
8083	.word	.LANCHOR53
8084	.word	.LC24
8085	.word	.LANCHOR157
8086	.word	.LANCHOR158
8087	.word	.LANCHOR134
8088	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
8089	.section	.text.ftl_check_vpc,"ax",%progbits
8090	.align	1
8091	.global	ftl_check_vpc
8092	.syntax unified
8093	.thumb
8094	.thumb_func
8095	.fpu softvfp
8096	.type	ftl_check_vpc, %function
8097ftl_check_vpc:
8098	@ args = 0, pretend = 0, frame = 8
8099	@ frame_needed = 0, uses_anonymous_args = 0
8100	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
8101	movs	r4, #0
8102	ldr	r6, .L1121
8103	ldr	r5, .L1121+4
8104	ldr	r1, .L1121+8
8105	ldr	r0, .L1121+12
8106	bl	printf
8107	mov	r2, #8192
8108	movs	r1, #0
8109	ldr	r0, .L1121+4
8110	bl	ftl_memset
8111.L1098:
8112	ldr	r3, [r6]
8113	cmp	r4, r3
8114	bcc	.L1100
8115	ldr	r10, .L1121+48
8116	movs	r4, #0
8117	ldr	r7, .L1121+16
8118	mov	r6, r4
8119.L1101:
8120	ldrh	r2, [r10]
8121	uxth	r3, r4
8122	cmp	r2, r3
8123	bhi	.L1103
8124	ldr	r3, .L1121+20
8125	ldr	r4, [r3]
8126	cbz	r4, .L1104
8127	ldr	r3, .L1121+24
8128	mov	r8, #0
8129	ldr	r5, .L1121+28
8130	ldr	r10, .L1121+16
8131	ldrh	r7, [r3]
8132	ldr	r3, [r5]
8133	ldr	fp, .L1121+4
8134	subs	r4, r4, r3
8135	ldr	r3, .L1121+32
8136	asrs	r4, r4, #1
8137	muls	r4, r3, r4
8138	uxth	r4, r4
8139.L1105:
8140	uxth	r3, r8
8141	cmp	r7, r3
8142	bls	.L1104
8143	ldr	r3, [r10]
8144	ldrh	r2, [r3, r4, lsl #1]
8145	cbz	r2, .L1106
8146	movs	r6, #1
8147	ldrh	r3, [fp, r4, lsl #1]
8148	mov	r1, r4
8149	ldr	r0, .L1121+36
8150	bl	printf
8151.L1106:
8152	movs	r3, #6
8153	ldr	r2, [r5]
8154	muls	r4, r3, r4
8155	movw	r3, #65535
8156	add	r8, r8, #1
8157	ldrh	r4, [r2, r4]
8158	cmp	r4, r3
8159	bne	.L1105
8160.L1104:
8161	cbz	r6, .L1097
8162	movw	r2, #2389
8163	ldr	r1, .L1121+8
8164	ldr	r0, .L1121+40
8165	bl	printf
8166.L1097:
8167	add	sp, sp, #8
8168	@ sp needed
8169	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8170.L1100:
8171	movs	r2, #0
8172	add	r1, sp, #4
8173	mov	r0, r4
8174	bl	log2phys
8175	ldr	r0, [sp, #4]
8176	adds	r3, r0, #1
8177	beq	.L1099
8178	ubfx	r0, r0, #10, #16
8179	bl	P2V_block_in_plane
8180	ldrh	r3, [r5, r0, lsl #1]
8181	adds	r3, r3, #1
8182	strh	r3, [r5, r0, lsl #1]	@ movhi
8183.L1099:
8184	adds	r4, r4, #1
8185	b	.L1098
8186.L1103:
8187	ldr	r3, [r7]
8188	uxth	r5, r4
8189	ldr	r8, .L1121+4
8190	ldrh	r2, [r3, r5, lsl #1]
8191	ldrh	r3, [r8, r5, lsl #1]
8192	cmp	r2, r3
8193	beq	.L1102
8194	mov	r1, r5
8195	ldr	r0, .L1121+44
8196	bl	printf
8197	ldr	r3, [r7]
8198	movw	r2, #65535
8199	ldrh	r3, [r3, r5, lsl #1]
8200	cmp	r3, r2
8201	beq	.L1102
8202	ldrh	r2, [r8, r5, lsl #1]
8203	cmp	r2, r3
8204	it	hi
8205	movhi	r6, #1
8206.L1102:
8207	adds	r4, r4, #1
8208	b	.L1101
8209.L1122:
8210	.align	2
8211.L1121:
8212	.word	.LANCHOR152
8213	.word	check_vpc_table
8214	.word	.LANCHOR159
8215	.word	.LC25
8216	.word	.LANCHOR42
8217	.word	.LANCHOR47
8218	.word	.LANCHOR48
8219	.word	.LANCHOR40
8220	.word	-1431655765
8221	.word	.LC27
8222	.word	.LC1
8223	.word	.LC26
8224	.word	.LANCHOR5
8225	.size	ftl_check_vpc, .-ftl_check_vpc
8226	.section	.text.ftl_scan_all_data,"ax",%progbits
8227	.align	1
8228	.global	ftl_scan_all_data
8229	.syntax unified
8230	.thumb
8231	.thumb_func
8232	.fpu softvfp
8233	.type	ftl_scan_all_data, %function
8234ftl_scan_all_data:
8235	@ args = 0, pretend = 0, frame = 8
8236	@ frame_needed = 0, uses_anonymous_args = 0
8237	push	{r4, r5, r6, r7, r8, lr}
8238	movs	r5, #0
8239	ldr	r7, .L1137
8240	sub	sp, sp, #32
8241	movs	r1, #0
8242	ldr	r8, .L1137+24
8243	ldr	r0, .L1137+4
8244	bl	printf
8245.L1124:
8246	ldr	r3, [r7]
8247	cmp	r5, r3
8248	bcc	.L1130
8249	add	sp, sp, #32
8250	@ sp needed
8251	pop	{r4, r5, r6, r7, r8, pc}
8252.L1130:
8253	movs	r2, #0
8254	add	r1, sp, #28
8255	mov	r0, r5
8256	bl	log2phys
8257	ubfx	r3, r5, #0, #11
8258	cbnz	r3, .L1125
8259	ldr	r2, [sp, #28]
8260	mov	r1, r5
8261	mov	r0, r8
8262	bl	printf
8263.L1125:
8264	ldr	r3, [sp, #28]
8265	adds	r2, r3, #1
8266	beq	.L1127
8267	ldr	r4, .L1137+8
8268	movs	r2, #0
8269	movs	r1, #1
8270	str	r3, [r4, #4]
8271	mov	r0, r4
8272	ldr	r3, .L1137+12
8273	str	r5, [r4, #16]
8274	str	r2, [r4]
8275	ldr	r3, [r3]
8276	str	r3, [r4, #8]
8277	ldr	r3, .L1137+16
8278	ldr	r6, [r3]
8279	str	r6, [r4, #12]
8280	bl	FlashReadPages
8281	ldr	r3, [r4]
8282	cmp	r3, #256
8283	beq	.L1128
8284	adds	r3, r3, #1
8285	beq	.L1128
8286	ldr	r3, [r6, #8]
8287	cmp	r5, r3
8288	beq	.L1127
8289.L1128:
8290	ldr	r2, [r4, #8]
8291	ldr	r3, [r4, #12]
8292	ldr	r0, .L1137+20
8293	ldr	r1, [r2, #4]
8294	str	r1, [sp, #16]
8295	mov	r1, r5
8296	ldr	r2, [r2]
8297	str	r2, [sp, #12]
8298	ldr	r2, [r3, #12]
8299	str	r2, [sp, #8]
8300	ldr	r2, [r3, #8]
8301	str	r2, [sp, #4]
8302	ldr	r2, [r3, #4]
8303	str	r2, [sp]
8304	ldr	r2, [r4, #4]
8305	ldr	r3, [r3]
8306	bl	printf
8307.L1127:
8308	adds	r5, r5, #1
8309	b	.L1124
8310.L1138:
8311	.align	2
8312.L1137:
8313	.word	.LANCHOR152
8314	.word	.LC28
8315	.word	.LANCHOR138
8316	.word	.LANCHOR106
8317	.word	.LANCHOR114
8318	.word	.LC30
8319	.word	.LC29
8320	.size	ftl_scan_all_data, .-ftl_scan_all_data
8321	.section	.text.FtlGcScanTempBlk,"ax",%progbits
8322	.align	1
8323	.global	FtlGcScanTempBlk
8324	.syntax unified
8325	.thumb
8326	.thumb_func
8327	.fpu softvfp
8328	.type	FtlGcScanTempBlk, %function
8329FtlGcScanTempBlk:
8330	@ args = 0, pretend = 0, frame = 48
8331	@ frame_needed = 0, uses_anonymous_args = 0
8332	ldr	r3, .L1169
8333	movw	r2, #65535
8334	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8335	sub	sp, sp, #48
8336	mov	r4, r0
8337	ldrh	r5, [r3]
8338	str	r3, [sp, #20]
8339	cmp	r5, r2
8340	beq	.L1161
8341	cbnz	r5, .L1140
8342.L1141:
8343	bl	FtlGcPageVarInit
8344	b	.L1142
8345.L1161:
8346	movs	r5, #0
8347.L1140:
8348	ldr	r3, .L1169+4
8349	ldrh	r3, [r3]
8350	cmp	r3, r1
8351	beq	.L1141
8352.L1142:
8353	ldr	fp, .L1169+52
8354.L1143:
8355	ldrh	r2, [r4]
8356	movs	r3, #0
8357	strb	r3, [r4, #8]
8358	movw	r3, #65535
8359	cmp	r2, r3
8360	beq	.L1144
8361.L1160:
8362	ldr	r3, .L1169+8
8363	movs	r2, #0
8364	ldr	r0, [fp]
8365	mov	r10, r2
8366	movw	lr, #65535
8367	mov	r8, #20
8368	ldrh	r3, [r3]
8369	str	r3, [sp, #8]
8370	ldr	r3, .L1169+12
8371	ldr	r3, [r3]
8372	str	r3, [sp, #12]
8373	ldr	r3, .L1169+16
8374	ldrh	r3, [r3]
8375	str	r3, [sp, #16]
8376	ldr	r3, .L1169+20
8377	ldr	r7, [r3]
8378	ldr	r3, .L1169+24
8379	ldrh	ip, [r3]
8380	add	r3, r4, #16
8381	str	r3, [sp, #4]
8382.L1145:
8383	ldr	r1, [sp, #8]
8384	uxth	r3, r2
8385	cmp	r1, r3
8386	bhi	.L1147
8387	mov	r8, #0
8388	movs	r2, #0
8389	mov	r1, r10
8390	bl	FlashReadPages
8391.L1148:
8392	uxth	r3, r8
8393	cmp	r10, r3
8394	bhi	.L1159
8395	ldr	r3, .L1169+4
8396	adds	r5, r5, #1
8397	uxth	r5, r5
8398	ldrh	r3, [r3]
8399	cmp	r3, r5
8400	bhi	.L1160
8401.L1144:
8402	ldr	r2, [sp, #20]
8403	movw	r3, #65535
8404	mov	r0, r4
8405	strh	r5, [r4, #2]	@ movhi
8406	mov	r1, r5
8407	strh	r3, [r2]	@ movhi
8408	movs	r2, #0
8409	strb	r2, [r4, #6]
8410	bl	ftl_sb_update_avl_pages
8411	mov	r0, #-1
8412	add	sp, sp, #48
8413	@ sp needed
8414	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8415.L1147:
8416	ldr	r1, [sp, #4]
8417	ldrh	r3, [r1], #2
8418	cmp	r3, lr
8419	str	r1, [sp, #4]
8420	beq	.L1146
8421	mla	r1, r8, r10, r0
8422	orr	r3, r5, r3, lsl #10
8423	str	r3, [r1, #4]
8424	ldr	r3, [sp, #16]
8425	mul	r3, r3, r10
8426	bic	r3, r3, #3
8427	mov	r6, r3
8428	ldr	r3, [sp, #12]
8429	add	r6, r6, r3
8430	mul	r3, ip, r10
8431	str	r6, [r1, #8]
8432	bic	r3, r3, #3
8433	add	r3, r3, r7
8434	str	r3, [r1, #12]
8435	add	r3, r10, #1
8436	uxth	r10, r3
8437.L1146:
8438	adds	r2, r2, #1
8439	b	.L1145
8440.L1159:
8441	movs	r3, #20
8442	ldr	r1, [fp]
8443	mul	r3, r3, r8
8444	adds	r2, r1, r3
8445	ldr	r6, [r1, r3]
8446	ldr	r0, [r2, #4]
8447	str	r0, [sp, #4]
8448	cbnz	r6, .L1149
8449	ldr	r7, [r2, #12]
8450	movw	r2, #65535
8451	ldrh	r1, [r7]
8452	cmp	r1, r2
8453	beq	.L1149
8454	ldr	r2, .L1169+28
8455	ldr	r0, [r7, #8]
8456	ldr	r2, [r2]
8457	cmp	r0, r2
8458	bls	.L1151
8459.L1149:
8460	ldr	r3, .L1169+32
8461	movs	r1, #0
8462	ldrh	r2, [r4]
8463	movs	r5, #0
8464	ldr	r3, [r3]
8465	strh	r1, [r3, r2, lsl #1]	@ movhi
8466	ldrh	r0, [r4]
8467	bl	INSERT_FREE_LIST
8468	movw	r3, #65535
8469	strh	r3, [r4]	@ movhi
8470	bl	FtlGcPageVarInit
8471	b	.L1143
8472.L1151:
8473	mov	r2, r6
8474	add	r1, sp, #24
8475	str	r3, [sp, #8]
8476	bl	log2phys
8477	ldr	r2, [r7, #12]
8478	ldr	r1, [sp, #24]
8479	ldr	r3, [sp, #8]
8480	cmp	r2, r1
8481	beq	.L1153
8482.L1154:
8483	ldr	r2, [r7, #8]
8484	add	r8, r8, #1
8485	ldr	r1, [sp, #4]
8486	ldr	r0, [r7, #12]
8487	bl	FtlGcUpdatePage
8488	b	.L1148
8489.L1153:
8490	str	r3, [sp, #8]
8491	adds	r3, r2, #1
8492	beq	.L1154
8493	str	r2, [sp, #32]
8494	movs	r1, #1
8495	ldr	r2, .L1169+36
8496	add	r0, sp, #28
8497	ldr	r2, [r2]
8498	str	r2, [sp, #36]
8499	ldr	r2, .L1169+40
8500	ldr	r2, [r2]
8501	str	r2, [sp, #40]
8502	mov	r2, r6
8503	bl	FlashReadPages
8504	ldr	r2, .L1169+44
8505	ldr	r1, [fp]
8506	ldr	r3, [sp, #8]
8507	ldrh	r2, [r2]
8508	ldr	r0, [sp, #36]
8509	add	ip, r3, r1
8510	lsls	r2, r2, #7
8511.L1155:
8512	cmp	r6, r2
8513	beq	.L1154
8514	ldr	r1, [ip, #8]
8515	ldr	r3, [r0, r6, lsl #2]
8516	ldr	r1, [r1, r6, lsl #2]
8517	cmp	r1, r3
8518	beq	.L1156
8519	ldr	r2, [sp, #32]
8520	ldrh	r1, [r4]
8521	ldr	r0, .L1169+48
8522	bl	printf
8523	b	.L1149
8524.L1156:
8525	adds	r6, r6, #1
8526	b	.L1155
8527.L1170:
8528	.align	2
8529.L1169:
8530	.word	.LANCHOR160
8531	.word	.LANCHOR19
8532	.word	.LANCHOR3
8533	.word	.LANCHOR64
8534	.word	.LANCHOR23
8535	.word	.LANCHOR65
8536	.word	.LANCHOR24
8537	.word	.LANCHOR152
8538	.word	.LANCHOR42
8539	.word	.LANCHOR110
8540	.word	.LANCHOR115
8541	.word	.LANCHOR12
8542	.word	.LC31
8543	.word	.LANCHOR103
8544	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
8545	.section	.text.FtlVendorPartWrite,"ax",%progbits
8546	.align	1
8547	.global	FtlVendorPartWrite
8548	.syntax unified
8549	.thumb
8550	.thumb_func
8551	.fpu softvfp
8552	.type	FtlVendorPartWrite, %function
8553FtlVendorPartWrite:
8554	@ args = 0, pretend = 0, frame = 104
8555	@ frame_needed = 0, uses_anonymous_args = 0
8556	ldr	r3, .L1183
8557	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8558	sub	sp, sp, #104
8559	str	r2, [sp]
8560	adds	r2, r0, r1
8561	mov	r7, r0
8562	mov	r5, r1
8563	ldrh	r3, [r3]
8564	cmp	r2, r3
8565	bhi	.L1179
8566	ldr	r3, .L1183+4
8567	mov	r8, #0
8568	ldrh	r6, [r3]
8569	lsr	r6, r0, r6
8570	lsl	fp, r6, #2
8571.L1173:
8572	cbnz	r5, .L1178
8573.L1171:
8574	mov	r0, r8
8575	add	sp, sp, #104
8576	@ sp needed
8577	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8578.L1178:
8579	ldr	r3, .L1183+8
8580	mov	r0, r7
8581	ldr	r10, .L1183+24
8582	ldr	r3, [r3]
8583	ldr	r2, [r3, fp]
8584	ldr	r3, .L1183+12
8585	str	r2, [sp, #12]
8586	ldrh	r3, [r3]
8587	mov	r1, r3
8588	str	r3, [sp, #8]
8589	bl	__aeabi_uidivmod
8590	ldr	r3, [sp, #8]
8591	ldr	r2, [sp, #12]
8592	str	r1, [sp, #4]
8593	subs	r4, r3, r1
8594	uxth	r4, r4
8595	cmp	r5, r4
8596	it	cc
8597	uxthcc	r4, r5
8598	cbz	r2, .L1175
8599	cmp	r4, r3
8600	beq	.L1175
8601	ldr	r3, [r10]
8602	add	r0, sp, #20
8603	str	r2, [sp, #24]
8604	movs	r2, #1
8605	mov	r1, r2
8606	str	r3, [sp, #28]
8607	add	r3, sp, #40
8608	str	r3, [sp, #32]
8609	bl	FlashReadPages
8610.L1176:
8611	lsls	r3, r4, #9
8612	ldr	r0, [r10]
8613	subs	r5, r5, r4
8614	mov	r2, r3
8615	str	r3, [sp, #8]
8616	ldm	sp, {r1, r3}
8617	add	r7, r7, r4
8618	add	fp, fp, #4
8619	add	r0, r0, r3, lsl #9
8620	bl	ftl_memcpy
8621	ldr	r2, [r10]
8622	mov	r1, r6
8623	ldr	r0, .L1183+16
8624	adds	r6, r6, #1
8625	bl	FtlMapWritePage
8626	ldr	r3, [sp]
8627	adds	r0, r0, #1
8628	it	eq
8629	moveq	r8, #-1
8630	mov	r2, r3
8631	ldr	r3, [sp, #8]
8632	add	r2, r2, r3
8633	str	r2, [sp]
8634	b	.L1173
8635.L1175:
8636	ldr	r3, .L1183+20
8637	movs	r1, #0
8638	ldr	r0, [r10]
8639	ldrh	r2, [r3]
8640	bl	ftl_memset
8641	b	.L1176
8642.L1179:
8643	mov	r8, #-1
8644	b	.L1171
8645.L1184:
8646	.align	2
8647.L1183:
8648	.word	.LANCHOR16
8649	.word	.LANCHOR22
8650	.word	.LANCHOR123
8651	.word	.LANCHOR12
8652	.word	.LANCHOR161
8653	.word	.LANCHOR23
8654	.word	.LANCHOR108
8655	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
8656	.section	.text.Ftl_save_ext_data,"ax",%progbits
8657	.align	1
8658	.global	Ftl_save_ext_data
8659	.syntax unified
8660	.thumb
8661	.thumb_func
8662	.fpu softvfp
8663	.type	Ftl_save_ext_data, %function
8664Ftl_save_ext_data:
8665	@ args = 0, pretend = 0, frame = 0
8666	@ frame_needed = 0, uses_anonymous_args = 0
8667	@ link register save eliminated.
8668	ldr	r2, .L1187
8669	ldr	r3, .L1187+4
8670	ldr	r1, [r2]
8671	cmp	r1, r3
8672	bne	.L1185
8673	ldr	r3, .L1187+8
8674	movs	r1, #1
8675	movs	r0, #0
8676	str	r3, [r2, #4]
8677	ldr	r3, .L1187+12
8678	ldr	r3, [r3]
8679	str	r3, [r2, #88]
8680	ldr	r3, .L1187+16
8681	ldr	r3, [r3]
8682	str	r3, [r2, #92]
8683	ldr	r3, .L1187+20
8684	ldr	r3, [r3]
8685	str	r3, [r2, #8]
8686	ldr	r3, .L1187+24
8687	ldr	r3, [r3]
8688	str	r3, [r2, #12]
8689	ldr	r3, .L1187+28
8690	ldr	r3, [r3]
8691	str	r3, [r2, #16]
8692	ldr	r3, .L1187+32
8693	ldr	r3, [r3]
8694	str	r3, [r2, #20]
8695	ldr	r3, .L1187+36
8696	ldr	r3, [r3]
8697	str	r3, [r2, #28]
8698	ldr	r3, .L1187+40
8699	ldr	r3, [r3]
8700	str	r3, [r2, #32]
8701	ldr	r3, .L1187+44
8702	ldr	r3, [r3]
8703	str	r3, [r2, #36]
8704	ldr	r3, .L1187+48
8705	ldr	r3, [r3]
8706	str	r3, [r2, #40]
8707	ldr	r3, .L1187+52
8708	ldr	r3, [r3]
8709	str	r3, [r2, #44]
8710	ldr	r3, .L1187+56
8711	ldr	r3, [r3]
8712	str	r3, [r2, #48]
8713	b	FtlVendorPartWrite
8714.L1185:
8715	bx	lr
8716.L1188:
8717	.align	2
8718.L1187:
8719	.word	.LANCHOR135
8720	.word	1179929683
8721	.word	1342177352
8722	.word	.LANCHOR162
8723	.word	.LANCHOR163
8724	.word	.LANCHOR84
8725	.word	.LANCHOR85
8726	.word	.LANCHOR89
8727	.word	.LANCHOR88
8728	.word	.LANCHOR91
8729	.word	.LANCHOR80
8730	.word	.LANCHOR86
8731	.word	.LANCHOR87
8732	.word	.LANCHOR92
8733	.word	.LANCHOR93
8734	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
8735	.section	.text.FtlEctTblFlush,"ax",%progbits
8736	.align	1
8737	.global	FtlEctTblFlush
8738	.syntax unified
8739	.thumb
8740	.thumb_func
8741	.fpu softvfp
8742	.type	FtlEctTblFlush, %function
8743FtlEctTblFlush:
8744	@ args = 0, pretend = 0, frame = 0
8745	@ frame_needed = 0, uses_anonymous_args = 0
8746	ldr	r2, .L1194
8747	push	{r3, lr}
8748	ldrh	r3, [r2]
8749	cmp	r3, #31
8750	itett	ls
8751	addls	r3, r3, #1
8752	movhi	r3, #32
8753	strhls	r3, [r2]	@ movhi
8754	movls	r3, #1
8755	ldr	r2, .L1194+4
8756	cbnz	r0, .L1191
8757	ldr	r1, [r2]
8758	ldr	r0, [r1, #20]
8759	ldr	r1, [r1, #16]
8760	add	r3, r3, r0
8761	cmp	r1, r3
8762	bcc	.L1192
8763.L1191:
8764	ldr	r2, [r2]
8765	movs	r0, #64
8766	ldr	r3, [r2, #16]
8767	str	r3, [r2, #20]
8768	ldr	r3, .L1194+8
8769	str	r3, [r2]
8770	ldr	r3, .L1194+12
8771	ldrh	r1, [r3]
8772	lsls	r3, r1, #9
8773	str	r3, [r2, #12]
8774	ldr	r3, [r2, #8]
8775	adds	r3, r3, #1
8776	str	r3, [r2, #8]
8777	movs	r3, #0
8778	str	r3, [r2, #4]
8779	bl	FtlVendorPartWrite
8780	bl	Ftl_save_ext_data
8781.L1192:
8782	movs	r0, #0
8783	pop	{r3, pc}
8784.L1195:
8785	.align	2
8786.L1194:
8787	.word	.LANCHOR164
8788	.word	.LANCHOR118
8789	.word	1112818501
8790	.word	.LANCHOR116
8791	.size	FtlEctTblFlush, .-FtlEctTblFlush
8792	.section	.text.sftl_vendor_write,"ax",%progbits
8793	.align	1
8794	.global	sftl_vendor_write
8795	.syntax unified
8796	.thumb
8797	.thumb_func
8798	.fpu softvfp
8799	.type	sftl_vendor_write, %function
8800sftl_vendor_write:
8801	@ args = 0, pretend = 0, frame = 0
8802	@ frame_needed = 0, uses_anonymous_args = 0
8803	@ link register save eliminated.
8804	add	r0, r0, #256
8805	b	FtlVendorPartWrite
8806	.size	sftl_vendor_write, .-sftl_vendor_write
8807	.section	.text.FtlVendorPartRead,"ax",%progbits
8808	.align	1
8809	.global	FtlVendorPartRead
8810	.syntax unified
8811	.thumb
8812	.thumb_func
8813	.fpu softvfp
8814	.type	FtlVendorPartRead, %function
8815FtlVendorPartRead:
8816	@ args = 0, pretend = 0, frame = 104
8817	@ frame_needed = 0, uses_anonymous_args = 0
8818	ldr	r3, .L1207
8819	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8820	mov	r10, r2
8821	adds	r2, r0, r1
8822	sub	sp, sp, #104
8823	mov	r7, r0
8824	mov	r6, r1
8825	ldrh	r3, [r3]
8826	cmp	r2, r3
8827	bhi	.L1206
8828	ldr	r3, .L1207+4
8829	mov	r8, #0
8830	ldr	fp, .L1207+28
8831	ldrh	r5, [r3]
8832	lsr	r5, r0, r5
8833	lsls	r3, r5, #2
8834	str	r3, [sp]
8835.L1199:
8836	cbnz	r6, .L1205
8837.L1197:
8838	mov	r0, r8
8839	add	sp, sp, #104
8840	@ sp needed
8841	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8842.L1205:
8843	ldr	r3, .L1207+8
8844	mov	r0, r7
8845	ldr	r2, [sp]
8846	ldr	r3, [r3]
8847	ldr	r3, [r3, r2]
8848	ldr	r2, .L1207+12
8849	str	r3, [sp, #8]
8850	ldrh	r4, [r2]
8851	mov	r1, r4
8852	bl	__aeabi_uidivmod
8853	subs	r4, r4, r1
8854	ldr	r3, [sp, #8]
8855	uxth	r4, r4
8856	str	r1, [sp, #4]
8857	cmp	r6, r4
8858	it	cc
8859	uxthcc	r4, r6
8860	lsls	r2, r4, #9
8861	str	r2, [sp, #8]
8862	cmp	r3, #0
8863	beq	.L1201
8864	ldr	r2, [fp]
8865	add	r0, sp, #20
8866	str	r3, [sp, #24]
8867	str	r3, [sp, #12]
8868	str	r2, [sp, #28]
8869	add	r2, sp, #40
8870	str	r2, [sp, #32]
8871	movs	r2, #1
8872	mov	r1, r2
8873	bl	FlashReadPages
8874	ldr	r2, [sp, #20]
8875	ldr	r3, [sp, #12]
8876	adds	r2, r2, #1
8877	ldr	r2, .L1207+16
8878	it	eq
8879	moveq	r8, #-1
8880	ldr	r2, [r2]
8881	cmp	r2, #256
8882	bne	.L1203
8883	mov	r2, r3
8884	mov	r1, r5
8885	ldr	r0, .L1207+20
8886	bl	printf
8887	ldr	r2, [fp]
8888	mov	r1, r5
8889	ldr	r0, .L1207+24
8890	bl	FtlMapWritePage
8891.L1203:
8892	ldr	r1, [fp]
8893	lsls	r2, r4, #9
8894	ldr	r3, [sp, #4]
8895	mov	r0, r10
8896	add	r1, r1, r3, lsl #9
8897	bl	ftl_memcpy
8898.L1204:
8899	ldr	r3, [sp, #8]
8900	adds	r5, r5, #1
8901	subs	r6, r6, r4
8902	add	r7, r7, r4
8903	add	r10, r10, r3
8904	ldr	r3, [sp]
8905	adds	r3, r3, #4
8906	str	r3, [sp]
8907	b	.L1199
8908.L1201:
8909	lsls	r2, r4, #9
8910	mov	r1, r3
8911	mov	r0, r10
8912	bl	ftl_memset
8913	b	.L1204
8914.L1206:
8915	mov	r8, #-1
8916	b	.L1197
8917.L1208:
8918	.align	2
8919.L1207:
8920	.word	.LANCHOR16
8921	.word	.LANCHOR22
8922	.word	.LANCHOR123
8923	.word	.LANCHOR12
8924	.word	.LANCHOR138
8925	.word	.LC32
8926	.word	.LANCHOR161
8927	.word	.LANCHOR108
8928	.size	FtlVendorPartRead, .-FtlVendorPartRead
8929	.section	.text.FtlLoadEctTbl,"ax",%progbits
8930	.align	1
8931	.global	FtlLoadEctTbl
8932	.syntax unified
8933	.thumb
8934	.thumb_func
8935	.fpu softvfp
8936	.type	FtlLoadEctTbl, %function
8937FtlLoadEctTbl:
8938	@ args = 0, pretend = 0, frame = 0
8939	@ frame_needed = 0, uses_anonymous_args = 0
8940	push	{r3, r4, r5, lr}
8941	movs	r0, #64
8942	ldr	r4, .L1211
8943	ldr	r5, .L1211+4
8944	ldr	r2, [r4]
8945	ldrh	r1, [r5]
8946	bl	FtlVendorPartRead
8947	ldr	r3, [r4]
8948	ldr	r2, [r3]
8949	ldr	r3, .L1211+8
8950	cmp	r2, r3
8951	beq	.L1210
8952	ldr	r1, .L1211+12
8953	ldr	r0, .L1211+16
8954	bl	printf
8955	ldrh	r2, [r5]
8956	movs	r1, #0
8957	ldr	r0, [r4]
8958	lsls	r2, r2, #9
8959	bl	ftl_memset
8960.L1210:
8961	movs	r0, #0
8962	pop	{r3, r4, r5, pc}
8963.L1212:
8964	.align	2
8965.L1211:
8966	.word	.LANCHOR118
8967	.word	.LANCHOR116
8968	.word	1112818501
8969	.word	.LC33
8970	.word	.LC34
8971	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
8972	.section	.text.Ftl_load_ext_data,"ax",%progbits
8973	.align	1
8974	.global	Ftl_load_ext_data
8975	.syntax unified
8976	.thumb
8977	.thumb_func
8978	.fpu softvfp
8979	.type	Ftl_load_ext_data, %function
8980Ftl_load_ext_data:
8981	@ args = 0, pretend = 0, frame = 0
8982	@ frame_needed = 0, uses_anonymous_args = 0
8983	push	{r3, r4, r5, lr}
8984	movs	r1, #1
8985	ldr	r4, .L1216
8986	movs	r0, #0
8987	ldr	r5, .L1216+4
8988	mov	r2, r4
8989	bl	FtlVendorPartRead
8990	ldr	r3, [r4]
8991	cmp	r3, r5
8992	beq	.L1214
8993	mov	r2, #512
8994	movs	r1, #0
8995	mov	r0, r4
8996	bl	ftl_memset
8997	str	r5, [r4]
8998.L1214:
8999	ldr	r3, [r4]
9000	cmp	r3, r5
9001	ldr	r3, .L1216+8
9002	bne	.L1215
9003	ldr	r1, [r4, #88]
9004	ldr	r2, .L1216+12
9005	str	r1, [r2]
9006	ldr	r1, [r4, #92]
9007	ldr	r2, .L1216+16
9008	str	r1, [r2]
9009	ldr	r1, [r4, #8]
9010	ldr	r2, .L1216+20
9011	str	r1, [r2]
9012	ldr	r1, [r4, #12]
9013	ldr	r2, .L1216+24
9014	str	r1, [r2]
9015	ldr	r1, [r4, #16]
9016	ldr	r2, .L1216+28
9017	str	r1, [r2]
9018	ldr	r1, [r4, #20]
9019	ldr	r2, .L1216+32
9020	str	r1, [r2]
9021	ldr	r2, [r4, #28]
9022	ldr	r1, [r4, #32]
9023	str	r2, [r3]
9024	ldr	r2, .L1216+36
9025	str	r1, [r2]
9026	ldr	r1, [r4, #36]
9027	ldr	r2, .L1216+40
9028	str	r1, [r2]
9029	ldr	r1, [r4, #40]
9030	ldr	r2, .L1216+44
9031	str	r1, [r2]
9032	ldr	r1, [r4, #44]
9033	ldr	r2, .L1216+48
9034	str	r1, [r2]
9035	ldr	r1, [r4, #48]
9036	ldr	r2, .L1216+52
9037	str	r1, [r2]
9038.L1215:
9039	ldr	r1, .L1216+56
9040	ldr	r2, .L1216+60
9041	ldr	r3, [r3]
9042	ldr	r0, [r1]
9043	ldrh	r2, [r2]
9044	ldr	r1, .L1216+64
9045	mla	r0, r0, r2, r3
9046	ldrh	r1, [r1]
9047	bl	__aeabi_uidiv
9048	ldr	r3, .L1216+68
9049	str	r0, [r3]
9050	pop	{r3, r4, r5, pc}
9051.L1217:
9052	.align	2
9053.L1216:
9054	.word	.LANCHOR135
9055	.word	1179929683
9056	.word	.LANCHOR91
9057	.word	.LANCHOR162
9058	.word	.LANCHOR163
9059	.word	.LANCHOR84
9060	.word	.LANCHOR85
9061	.word	.LANCHOR89
9062	.word	.LANCHOR88
9063	.word	.LANCHOR80
9064	.word	.LANCHOR86
9065	.word	.LANCHOR87
9066	.word	.LANCHOR92
9067	.word	.LANCHOR93
9068	.word	.LANCHOR90
9069	.word	.LANCHOR14
9070	.word	.LANCHOR5
9071	.word	.LANCHOR145
9072	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
9073	.section	.text.sftl_vendor_read,"ax",%progbits
9074	.align	1
9075	.global	sftl_vendor_read
9076	.syntax unified
9077	.thumb
9078	.thumb_func
9079	.fpu softvfp
9080	.type	sftl_vendor_read, %function
9081sftl_vendor_read:
9082	@ args = 0, pretend = 0, frame = 0
9083	@ frame_needed = 0, uses_anonymous_args = 0
9084	@ link register save eliminated.
9085	add	r0, r0, #256
9086	b	FtlVendorPartRead
9087	.size	sftl_vendor_read, .-sftl_vendor_read
9088	.section	.text.FtlMapBlkWriteDump_data,"ax",%progbits
9089	.align	1
9090	.global	FtlMapBlkWriteDump_data
9091	.syntax unified
9092	.thumb
9093	.thumb_func
9094	.fpu softvfp
9095	.type	FtlMapBlkWriteDump_data, %function
9096FtlMapBlkWriteDump_data:
9097	@ args = 0, pretend = 0, frame = 0
9098	@ frame_needed = 0, uses_anonymous_args = 0
9099	push	{r3, r4, r5, r6, r7, r8, r10, lr}
9100	mov	r4, r0
9101	ldr	r3, [r0, #36]
9102	cmp	r3, #0
9103	beq	.L1219
9104	movs	r3, #0
9105	ldr	r5, .L1231
9106	str	r3, [r0, #36]
9107	ldr	r3, .L1231+4
9108	ldrh	r6, [r0, #6]
9109	mov	r7, r5
9110	ldr	r10, [r0, #24]
9111	ldr	r3, [r3]
9112	str	r3, [r5, #8]
9113	ldr	r3, .L1231+8
9114	ldr	r8, [r3]
9115	ldrh	r3, [r0, #2]
9116	str	r8, [r5, #12]
9117	cbz	r3, .L1221
9118	ldr	r2, .L1231+12
9119	ldrh	r2, [r2]
9120	subs	r2, r2, #1
9121	cmp	r3, r2
9122	bge	.L1221
9123	ldrh	r2, [r0]
9124	movw	r1, #65535
9125	cmp	r2, r1
9126	beq	.L1221
9127	ldr	r1, [r0, #12]
9128	subs	r3, r3, #1
9129	mov	r0, r5
9130	ldrh	r2, [r1, r2, lsl #1]
9131	orr	r3, r3, r2, lsl #10
9132	movs	r2, #1
9133	mov	r1, r2
9134	str	r3, [r5, #4]
9135	bl	FlashReadPages
9136	ldr	r3, [r5]
9137	adds	r3, r3, #1
9138	beq	.L1221
9139	ldr	r3, [r4, #24]
9140	ldrh	r1, [r8, #8]
9141	ldr	r2, [r3, r1, lsl #2]
9142	ldr	r3, [r5, #4]
9143	cmp	r2, r3
9144	bne	.L1221
9145	ldr	r2, [r5, #8]
9146.L1230:
9147	mov	r0, r4
9148	pop	{r3, r4, r5, r6, r7, r8, r10, lr}
9149	b	FtlMapWritePage
9150.L1221:
9151	subs	r6, r6, #1
9152	uxth	r6, r6
9153	ldr	r3, [r10, r6, lsl #2]
9154	str	r3, [r7, #4]
9155	cbz	r3, .L1222
9156	movs	r2, #1
9157	ldr	r0, .L1231
9158	mov	r1, r2
9159	bl	FlashReadPages
9160.L1223:
9161	ldr	r2, [r7, #8]
9162	mov	r1, r6
9163	b	.L1230
9164.L1222:
9165	ldr	r3, .L1231+16
9166	movs	r1, #255
9167	ldr	r0, [r7, #8]
9168	ldrh	r2, [r3]
9169	bl	ftl_memset
9170	b	.L1223
9171.L1219:
9172	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
9173.L1232:
9174	.align	2
9175.L1231:
9176	.word	.LANCHOR138
9177	.word	.LANCHOR107
9178	.word	.LANCHOR114
9179	.word	.LANCHOR20
9180	.word	.LANCHOR23
9181	.size	FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
9182	.section	.text.FtlVpcTblFlush,"ax",%progbits
9183	.align	1
9184	.global	FtlVpcTblFlush
9185	.syntax unified
9186	.thumb
9187	.thumb_func
9188	.fpu softvfp
9189	.type	FtlVpcTblFlush, %function
9190FtlVpcTblFlush:
9191	@ args = 0, pretend = 0, frame = 8
9192	@ frame_needed = 0, uses_anonymous_args = 0
9193	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
9194	mov	r10, #0
9195	ldr	r5, .L1248
9196	ldr	r3, .L1248+4
9197	ldr	fp, .L1248+76
9198	ldr	r6, .L1248+8
9199	ldr	r7, [r3]
9200	ldr	r0, [fp]
9201	ldrh	r3, [r5]
9202	str	r7, [r6, #12]
9203	str	r0, [r6, #8]
9204	strh	r3, [r7, #2]	@ movhi
9205	movw	r3, #61604
9206	ldr	r4, .L1248+12
9207	strh	r3, [r7]	@ movhi
9208	ldr	r2, .L1248+16
9209	ldr	r3, [r5, #8]
9210	ldr	ip, .L1248+80
9211	str	r10, [r7, #8]
9212	str	r3, [r7, #4]
9213	stm	r4, {r2, ip}
9214	ldrh	r2, [r5, #6]
9215	str	r10, [r7, #12]
9216	ldr	r8, .L1248+84
9217	strh	r2, [r4, #8]	@ movhi
9218	ldr	r2, .L1248+20
9219	ldr	r3, .L1248+24
9220	ldrh	r2, [r2]
9221	strb	r2, [r4, #10]
9222	ldr	r2, .L1248+28
9223	ldrh	r1, [r2]
9224	ldrh	ip, [r2, #2]
9225	strh	r1, [r4, #14]	@ movhi
9226	ldrb	r1, [r2, #6]	@ zero_extendqisi2
9227	ldrb	r2, [r2, #8]	@ zero_extendqisi2
9228	strb	r2, [r4, #11]
9229	orr	r1, r1, ip, lsl #6
9230	ldr	r2, .L1248+32
9231	strh	r1, [r4, #16]	@ movhi
9232	ldrh	r1, [r2]
9233	ldrh	ip, [r2, #2]
9234	strh	r1, [r4, #18]	@ movhi
9235	ldrb	r1, [r2, #6]	@ zero_extendqisi2
9236	ldrb	r2, [r2, #8]	@ zero_extendqisi2
9237	strb	r2, [r4, #12]
9238	orr	r1, r1, ip, lsl #6
9239	ldr	r2, .L1248+36
9240	strh	r1, [r4, #20]	@ movhi
9241	ldrh	r1, [r2]
9242	ldrh	ip, [r2, #2]
9243	strh	r1, [r4, #22]	@ movhi
9244	ldrb	r1, [r2, #6]	@ zero_extendqisi2
9245	ldrb	r2, [r2, #8]	@ zero_extendqisi2
9246	strb	r2, [r4, #13]
9247	orr	r1, r1, ip, lsl #6
9248	ldr	r2, .L1248+40
9249	strh	r1, [r4, #24]	@ movhi
9250	movs	r1, #255
9251	ldr	r2, [r2]
9252	str	r2, [r4, #32]
9253	ldr	r2, [r8]
9254	str	r2, [r4, #40]
9255	ldr	r2, .L1248+44
9256	ldr	r2, [r2]
9257	str	r2, [r4, #36]
9258	ldrh	r2, [r3]
9259	bl	ftl_memset
9260	mov	r1, r4
9261	ldr	r4, .L1248+48
9262	movs	r2, #48
9263	ldr	r0, [r6, #8]
9264	bl	ftl_memcpy
9265	ldrh	r2, [r4]
9266	ldr	r0, [r6, #8]
9267	ldr	r1, .L1248+52
9268	lsls	r2, r2, #1
9269	adds	r0, r0, #48
9270	ldr	r1, [r1]
9271	bl	ftl_memcpy
9272	ldrh	r0, [r4]
9273	ldr	r1, .L1248+56
9274	ldr	r4, [r6, #8]
9275	lsrs	r2, r0, #3
9276	adds	r0, r0, #24
9277	lsls	r0, r0, #1
9278	ldr	r1, [r1]
9279	adds	r2, r2, #4
9280	bic	r0, r0, #3
9281	add	r0, r0, r4
9282	mov	r4, r10
9283	bl	ftl_memcpy
9284	mov	r0, r10
9285	ldr	r10, .L1248+4
9286	bl	FtlUpdateVaildLpn
9287	movw	r3, #65535
9288	str	r3, [sp]
9289	ldr	r3, .L1248+24
9290	str	r3, [sp, #4]
9291.L1234:
9292	ldr	r3, [fp]
9293	ldrh	r1, [r5, #2]
9294	ldrh	r2, [r5]
9295	str	r3, [r6, #8]
9296	ldr	r3, [r10]
9297	str	r3, [r6, #12]
9298	orr	r3, r1, r2, lsl #10
9299	str	r3, [r6, #4]
9300	ldr	r3, .L1248+60
9301	ldrh	r3, [r3]
9302	subs	r3, r3, #1
9303	cmp	r1, r3
9304	blt	.L1235
9305	ldrh	r3, [r5, #4]
9306	strh	r2, [r5, #4]	@ movhi
9307	str	r3, [sp]
9308	movs	r3, #0
9309	strh	r3, [r5, #2]	@ movhi
9310	bl	FtlFreeSysBlkQueueOut
9311	ldr	r3, [r8]
9312	strh	r0, [r5]	@ movhi
9313	adds	r2, r3, #1
9314	str	r3, [r5, #8]
9315	str	r2, [r8]
9316	lsls	r2, r0, #10
9317	str	r2, [r6, #4]
9318	str	r3, [r7, #4]
9319	strh	r0, [r7, #2]	@ movhi
9320.L1235:
9321	ldr	r3, [sp, #4]
9322	ldr	r0, [fp]
9323	ldrh	r1, [r3]
9324	bl	js_hash
9325	movs	r3, #1
9326	str	r0, [r7, #12]
9327	mov	r2, r3
9328	mov	r1, r3
9329	ldr	r0, .L1248+8
9330	bl	FlashProgPages
9331	ldrh	r3, [r5, #2]
9332	ldr	r2, [r6]
9333	adds	r3, r3, #1
9334	uxth	r3, r3
9335	adds	r1, r2, #1
9336	strh	r3, [r5, #2]	@ movhi
9337	bne	.L1236
9338	cmp	r3, #1
9339	bne	.L1237
9340	movw	r2, #1138
9341	ldr	r1, .L1248+64
9342	ldr	r0, .L1248+68
9343	bl	printf
9344.L1237:
9345	ldrh	r3, [r5, #2]
9346	adds	r4, r4, #1
9347	uxth	r4, r4
9348	cmp	r3, #1
9349	itttt	eq
9350	ldreq	r3, .L1248+60
9351	ldrheq	r3, [r3]
9352	addeq	r3, r3, #-1
9353	strheq	r3, [r5, #2]	@ movhi
9354	cmp	r4, #3
9355	bls	.L1234
9356	mov	r2, r4
9357	ldr	r1, [r6, #4]
9358	ldr	r0, .L1248+72
9359	bl	printf
9360.L1240:
9361	b	.L1240
9362.L1236:
9363	cmp	r3, #1
9364	beq	.L1234
9365	cmp	r2, #256
9366	beq	.L1234
9367	ldr	r2, [sp]
9368	movw	r3, #65535
9369	cmp	r2, r3
9370	beq	.L1241
9371	movs	r1, #1
9372	mov	r0, r2
9373	bl	FtlFreeSysBlkQueueIn
9374.L1241:
9375	movs	r0, #0
9376	add	sp, sp, #8
9377	@ sp needed
9378	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9379.L1249:
9380	.align	2
9381.L1248:
9382	.word	.LANCHOR139
9383	.word	.LANCHOR114
9384	.word	.LANCHOR138
9385	.word	.LANCHOR39
9386	.word	1179929683
9387	.word	.LANCHOR10
9388	.word	.LANCHOR23
9389	.word	.LANCHOR51
9390	.word	.LANCHOR52
9391	.word	.LANCHOR53
9392	.word	.LANCHOR90
9393	.word	.LANCHOR83
9394	.word	.LANCHOR5
9395	.word	.LANCHOR42
9396	.word	.LANCHOR1
9397	.word	.LANCHOR20
9398	.word	.LANCHOR165
9399	.word	.LC1
9400	.word	.LC35
9401	.word	.LANCHOR106
9402	.word	1342177352
9403	.word	.LANCHOR82
9404	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
9405	.section	.text.FtlSysFlush,"ax",%progbits
9406	.align	1
9407	.global	FtlSysFlush
9408	.syntax unified
9409	.thumb
9410	.thumb_func
9411	.fpu softvfp
9412	.type	FtlSysFlush, %function
9413FtlSysFlush:
9414	@ args = 0, pretend = 0, frame = 0
9415	@ frame_needed = 0, uses_anonymous_args = 0
9416	push	{r3, lr}
9417	bl	l2p_flush
9418	movs	r0, #1
9419	bl	FtlEctTblFlush
9420	bl	FtlVpcTblFlush
9421	movs	r0, #0
9422	pop	{r3, pc}
9423	.size	FtlSysFlush, .-FtlSysFlush
9424	.section	.text.sftl_deinit,"ax",%progbits
9425	.align	1
9426	.global	sftl_deinit
9427	.syntax unified
9428	.thumb
9429	.thumb_func
9430	.fpu softvfp
9431	.type	sftl_deinit, %function
9432sftl_deinit:
9433	@ args = 0, pretend = 0, frame = 0
9434	@ frame_needed = 0, uses_anonymous_args = 0
9435	push	{r3, lr}
9436	ldr	r3, .L1253
9437	ldr	r3, [r3]
9438	cmp	r3, #1
9439	bne	.L1252
9440	bl	FtlSysFlush
9441.L1252:
9442	movs	r0, #0
9443	pop	{r3, pc}
9444.L1254:
9445	.align	2
9446.L1253:
9447	.word	.LANCHOR166
9448	.size	sftl_deinit, .-sftl_deinit
9449	.section	.text.FtlDiscard,"ax",%progbits
9450	.align	1
9451	.global	FtlDiscard
9452	.syntax unified
9453	.thumb
9454	.thumb_func
9455	.fpu softvfp
9456	.type	FtlDiscard, %function
9457FtlDiscard:
9458	@ args = 0, pretend = 0, frame = 8
9459	@ frame_needed = 0, uses_anonymous_args = 0
9460	ldr	r3, .L1270
9461	adds	r2, r0, r1
9462	push	{r0, r1, r4, r5, r6, r7, r8, lr}
9463	mov	r7, r0
9464	mov	r5, r1
9465	ldr	r3, [r3]
9466	cmp	r2, r3
9467	bhi	.L1263
9468	cmp	r1, #31
9469	bhi	.L1257
9470.L1262:
9471	movs	r0, #0
9472.L1255:
9473	add	sp, sp, #8
9474	@ sp needed
9475	pop	{r4, r5, r6, r7, r8, pc}
9476.L1257:
9477	ldr	r8, .L1270+12
9478	ldrh	r4, [r8]
9479	mov	r1, r4
9480	bl	__aeabi_uidiv
9481	smulbb	r3, r0, r4
9482	mov	r6, r0
9483	subs	r7, r7, r3
9484	uxth	r7, r7
9485	cbz	r7, .L1258
9486	subs	r4, r4, r7
9487	adds	r6, r6, #1
9488	cmp	r4, r5
9489	it	cs
9490	movcs	r4, r5
9491	uxth	r4, r4
9492	subs	r5, r5, r4
9493.L1258:
9494	ldr	r4, .L1270+4
9495	mov	r3, #-1
9496	ldr	r7, .L1270+8
9497	str	r3, [sp, #4]
9498.L1259:
9499	ldrh	r3, [r8]
9500	cmp	r5, r3
9501	bcs	.L1261
9502	ldr	r3, .L1270+4
9503	ldr	r2, [r3]
9504	cmp	r2, #32
9505	bls	.L1262
9506	movs	r4, #0
9507	str	r4, [r3]
9508	bl	l2p_flush
9509	bl	FtlVpcTblFlush
9510	b	.L1262
9511.L1261:
9512	movs	r2, #0
9513	mov	r1, sp
9514	mov	r0, r6
9515	bl	log2phys
9516	ldr	r3, [sp]
9517	adds	r3, r3, #1
9518	beq	.L1260
9519	ldr	r3, [r4]
9520	movs	r2, #1
9521	add	r1, sp, #4
9522	mov	r0, r6
9523	adds	r3, r3, #1
9524	str	r3, [r4]
9525	ldr	r3, [r7]
9526	adds	r3, r3, #1
9527	str	r3, [r7]
9528	bl	log2phys
9529	ldr	r0, [sp]
9530	ubfx	r0, r0, #10, #16
9531	bl	P2V_block_in_plane
9532	bl	decrement_vpc_count
9533.L1260:
9534	ldrh	r3, [r8]
9535	adds	r6, r6, #1
9536	subs	r5, r5, r3
9537	b	.L1259
9538.L1263:
9539	mov	r0, #-1
9540	b	.L1255
9541.L1271:
9542	.align	2
9543.L1270:
9544	.word	.LANCHOR34
9545	.word	.LANCHOR167
9546	.word	.LANCHOR86
9547	.word	.LANCHOR12
9548	.size	FtlDiscard, .-FtlDiscard
9549	.section	.text.allocate_new_data_superblock,"ax",%progbits
9550	.align	1
9551	.global	allocate_new_data_superblock
9552	.syntax unified
9553	.thumb
9554	.thumb_func
9555	.fpu softvfp
9556	.type	allocate_new_data_superblock, %function
9557allocate_new_data_superblock:
9558	@ args = 0, pretend = 0, frame = 0
9559	@ frame_needed = 0, uses_anonymous_args = 0
9560	ldr	r3, .L1282
9561	push	{r4, r5, r6, lr}
9562	mov	r6, r0
9563	ldrh	r4, [r0]
9564	ldrh	r3, [r3]
9565	cmp	r3, r4
9566	bcs	.L1273
9567	movw	r2, #2760
9568	ldr	r1, .L1282+4
9569	ldr	r0, .L1282+8
9570	bl	printf
9571.L1273:
9572	movw	r3, #65535
9573	cmp	r4, r3
9574	beq	.L1274
9575	ldr	r3, .L1282+12
9576	mov	r0, r4
9577	ldr	r3, [r3]
9578	ldrh	r3, [r3, r4, lsl #1]
9579	cbz	r3, .L1275
9580	bl	INSERT_DATA_LIST
9581.L1274:
9582	ldr	r5, .L1282+16
9583	movw	r2, #65535
9584	movs	r3, #1
9585	strb	r3, [r6, #8]
9586	ldrh	r0, [r5]
9587	cmp	r0, r2
9588	beq	.L1276
9589	cmp	r4, r0
9590	bne	.L1277
9591	ldr	r3, .L1282+12
9592	ldr	r3, [r3]
9593	ldrh	r3, [r3, r0, lsl #1]
9594	cbz	r3, .L1278
9595.L1277:
9596	bl	update_vpc_list
9597.L1278:
9598	movw	r3, #65535
9599	strh	r3, [r5]	@ movhi
9600.L1276:
9601	mov	r0, r6
9602	bl	allocate_data_superblock
9603	bl	l2p_flush
9604	movs	r0, #0
9605	bl	FtlEctTblFlush
9606	bl	FtlVpcTblFlush
9607	movs	r0, #0
9608	pop	{r4, r5, r6, pc}
9609.L1275:
9610	bl	INSERT_FREE_LIST
9611	b	.L1274
9612.L1283:
9613	.align	2
9614.L1282:
9615	.word	.LANCHOR5
9616	.word	.LANCHOR168
9617	.word	.LC1
9618	.word	.LANCHOR42
9619	.word	.LANCHOR131
9620	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
9621	.section	.text.FtlProgPages,"ax",%progbits
9622	.align	1
9623	.global	FtlProgPages
9624	.syntax unified
9625	.thumb
9626	.thumb_func
9627	.fpu softvfp
9628	.type	FtlProgPages, %function
9629FtlProgPages:
9630	@ args = 0, pretend = 0, frame = 8
9631	@ frame_needed = 0, uses_anonymous_args = 0
9632	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
9633	movs	r6, #0
9634	ldr	r8, .L1298+24
9635	mov	r4, r3
9636	movs	r2, #0
9637	mov	r5, r0
9638	ldrb	r3, [r3, #9]	@ zero_extendqisi2
9639	mov	r10, r1
9640	bl	FlashProgPages
9641.L1285:
9642	cmp	r6, r10
9643	beq	.L1292
9644	ldr	r7, .L1298
9645	b	.L1293
9646.L1288:
9647	ldr	r0, [r5, #4]
9648	ubfx	r0, r0, #10, #16
9649	bl	P2V_block_in_plane
9650	ldrh	r3, [r4]
9651	cmp	r3, r0
9652	bne	.L1286
9653	ldr	r1, [r8]
9654	ldrh	r0, [r4, #4]
9655	ldrh	r2, [r1, r3, lsl #1]
9656	subs	r2, r2, r0
9657	strh	r2, [r1, r3, lsl #1]	@ movhi
9658	ldrh	r3, [r7]
9659	strh	r3, [r4, #2]	@ movhi
9660	movs	r3, #0
9661	strb	r3, [r4, #6]
9662	strh	r3, [r4, #4]	@ movhi
9663.L1286:
9664	ldrh	r3, [r4, #4]
9665	cbnz	r3, .L1287
9666	mov	r0, r4
9667	bl	allocate_new_data_superblock
9668.L1287:
9669	ldr	r2, .L1298+4
9670	ldr	r3, [r2, #96]
9671	adds	r3, r3, #1
9672	str	r3, [r2, #96]
9673	ldr	r0, [r5, #4]
9674	ubfx	r0, r0, #10, #16
9675	bl	FtlGcMarkBadPhyBlk
9676	mov	r0, r4
9677	bl	get_new_active_ppa
9678	movs	r2, #0
9679	str	r0, [r5, #4]
9680	str	r0, [sp, #4]
9681	movs	r1, #1
9682	ldrb	r3, [r4, #9]	@ zero_extendqisi2
9683	mov	r0, r5
9684	bl	FlashProgPages
9685.L1293:
9686	ldr	r3, [r5]
9687	adds	r3, r3, #1
9688	beq	.L1288
9689	ldr	r3, .L1298+8
9690	ldrb	r2, [r4, #6]	@ zero_extendqisi2
9691	ldrh	r3, [r3]
9692	cmp	r2, r3
9693	bcc	.L1289
9694	mov	r2, #960
9695	ldr	r1, .L1298+12
9696	ldr	r0, .L1298+16
9697	bl	printf
9698.L1289:
9699	ldr	r3, [r5, #4]
9700	add	r1, sp, #8
9701	movs	r2, #1
9702	ldr	r0, [r5, #16]
9703	str	r3, [r1, #-4]!
9704	bl	log2phys
9705	ldr	r3, [r5, #12]
9706	ldr	fp, [r3, #12]
9707	ubfx	r0, fp, #10, #16
9708	bl	P2V_block_in_plane
9709	cmp	fp, #-1
9710	mov	r7, r0
9711	beq	.L1290
9712	ldr	r3, [r8]
9713	ldrh	r2, [r3, r0, lsl #1]
9714	cbnz	r2, .L1291
9715	mov	r1, r0
9716	ldr	r0, .L1298+20
9717	bl	printf
9718.L1291:
9719	mov	r0, r7
9720	bl	decrement_vpc_count
9721.L1290:
9722	adds	r6, r6, #1
9723	adds	r5, r5, #20
9724	b	.L1285
9725.L1292:
9726	ldr	r3, .L1298+8
9727	ldrb	r2, [r4, #6]	@ zero_extendqisi2
9728	ldrh	r3, [r3]
9729	cmp	r2, r3
9730	bcc	.L1284
9731	movw	r2, #975
9732	ldr	r1, .L1298+12
9733	ldr	r0, .L1298+16
9734	bl	printf
9735.L1284:
9736	add	sp, sp, #8
9737	@ sp needed
9738	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9739.L1299:
9740	.align	2
9741.L1298:
9742	.word	.LANCHOR19
9743	.word	.LANCHOR135
9744	.word	.LANCHOR3
9745	.word	.LANCHOR169
9746	.word	.LC1
9747	.word	.LC36
9748	.word	.LANCHOR42
9749	.size	FtlProgPages, .-FtlProgPages
9750	.section	.text.FtlGcFreeTempBlock,"ax",%progbits
9751	.align	1
9752	.global	FtlGcFreeTempBlock
9753	.syntax unified
9754	.thumb
9755	.thumb_func
9756	.fpu softvfp
9757	.type	FtlGcFreeTempBlock, %function
9758FtlGcFreeTempBlock:
9759	@ args = 0, pretend = 0, frame = 16
9760	@ frame_needed = 0, uses_anonymous_args = 0
9761	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
9762	movw	r3, #65535
9763	ldr	r0, .L1319
9764	ldr	r5, .L1319+4
9765	ldrh	r6, [r0]
9766	mov	r4, r0
9767	cmp	r6, r3
9768	beq	.L1301
9769	ldr	r3, .L1319+8
9770	ldrh	r1, [r3]
9771	bl	FtlGcScanTempBlk
9772	str	r0, [sp, #12]
9773	adds	r0, r0, #1
9774	beq	.L1301
9775	ldr	r3, .L1319+12
9776	ldr	r2, [r3]
9777	ldrh	r3, [r2, r6, lsl #1]
9778	cmp	r3, #4
9779	bls	.L1302
9780	subs	r3, r3, #5
9781	movs	r0, #1
9782	strh	r3, [r2, r6, lsl #1]	@ movhi
9783	bl	FtlEctTblFlush
9784.L1302:
9785	ldr	r3, [r5]
9786	cbnz	r3, .L1303
9787	ldr	r2, .L1319+16
9788	ldr	r0, [sp, #12]
9789	ldr	r3, [r2, #96]
9790	ubfx	r0, r0, #10, #16
9791	adds	r3, r3, #1
9792	str	r3, [r2, #96]
9793	bl	FtlBbmMapBadBlock
9794	bl	FtlBbmTblFlush
9795.L1303:
9796	movs	r0, #1
9797	movs	r3, #0
9798	str	r3, [r5]
9799.L1300:
9800	add	sp, sp, #16
9801	@ sp needed
9802	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9803.L1301:
9804	ldrh	r2, [r4]
9805	movs	r3, #0
9806	str	r3, [r5]
9807	movw	r3, #65535
9808	cmp	r2, r3
9809	bne	.L1305
9810.L1314:
9811	movs	r0, #0
9812	b	.L1300
9813.L1305:
9814	ldr	r6, .L1319+8
9815	ldrb	r0, [r4, #7]	@ zero_extendqisi2
9816	ldr	r5, .L1319+20
9817	ldrh	r2, [r6]
9818	ldrh	r1, [r5]
9819	muls	r2, r0, r2
9820	cmp	r1, r2
9821	beq	.L1306
9822	movs	r2, #162
9823	ldr	r1, .L1319+24
9824	ldr	r0, .L1319+28
9825	bl	printf
9826.L1306:
9827	ldrh	r6, [r6]
9828	ldrb	r3, [r4, #7]	@ zero_extendqisi2
9829	ldr	r2, .L1319+32
9830	ldrh	r0, [r4]
9831	ldr	fp, .L1319+64
9832	smulbb	r3, r3, r6
9833	ldr	r1, [r2]
9834	movs	r6, #0
9835	str	r2, [sp, #4]
9836	strh	r3, [r1, r0, lsl #1]	@ movhi
9837	ldr	r1, .L1319+36
9838	ldrh	r3, [r5]
9839	ldr	r0, [r1]
9840	add	r3, r3, r0
9841	str	r3, [r1]
9842.L1307:
9843	ldrh	r2, [r5]
9844	uxth	r3, r6
9845	cmp	r2, r3
9846	bhi	.L1311
9847	movw	r0, #65535
9848	bl	decrement_vpc_count
9849	ldr	r3, [sp, #4]
9850	ldrh	r0, [r4]
9851	ldr	r3, [r3]
9852	ldrh	r3, [r3, r0, lsl #1]
9853	cmp	r3, #0
9854	beq	.L1312
9855	bl	INSERT_DATA_LIST
9856.L1313:
9857	ldr	r3, .L1319+40
9858	movw	r6, #65535
9859	strh	r6, [r4]	@ movhi
9860	movs	r4, #0
9861	strh	r4, [r5]	@ movhi
9862	strh	r4, [r3]	@ movhi
9863	bl	l2p_flush
9864	bl	FtlVpcTblFlush
9865	ldr	r3, .L1319+44
9866	strh	r6, [r3]	@ movhi
9867	ldr	r3, .L1319+48
9868	ldrh	r2, [r3]
9869	ldr	r3, .L1319+52
9870	ldrh	r3, [r3]
9871	add	r3, r3, r3, lsl #1
9872	cmp	r2, r3, asr #2
9873	ble	.L1314
9874	ldr	r3, .L1319+56
9875	movs	r2, #20
9876	mov	r0, r4
9877	strh	r2, [r3]	@ movhi
9878	b	.L1300
9879.L1311:
9880	uxth	r3, r6
9881	movs	r7, #12
9882	ldr	r2, [fp]
9883	muls	r7, r3, r7
9884	ldr	r3, .L1319+60
9885	ldr	r8, [r3]
9886	add	r10, r8, r7
9887	ldr	r1, [r10, #8]
9888	cmp	r1, r2
9889	bcc	.L1308
9890	movs	r2, #168
9891	ldr	r1, .L1319+24
9892	ldr	r0, .L1319+28
9893	bl	printf
9894.L1308:
9895	movs	r2, #0
9896	add	r1, sp, #12
9897	ldr	r0, [r10, #8]
9898	bl	log2phys
9899	ldr	r2, [sp, #12]
9900	ldr	r0, [r8, r7]
9901	cmp	r0, r2
9902	bne	.L1309
9903	ubfx	r0, r0, #10, #16
9904	bl	P2V_block_in_plane
9905	movs	r2, #1
9906	mov	r7, r0
9907	add	r1, r10, #4
9908	ldr	r0, [r10, #8]
9909	bl	log2phys
9910	mov	r0, r7
9911.L1318:
9912	bl	decrement_vpc_count
9913.L1310:
9914	adds	r6, r6, #1
9915	b	.L1307
9916.L1309:
9917	ldr	r3, [r10, #4]
9918	cmp	r2, r3
9919	beq	.L1310
9920	ldrh	r0, [r4]
9921	b	.L1318
9922.L1312:
9923	bl	INSERT_FREE_LIST
9924	b	.L1313
9925.L1320:
9926	.align	2
9927.L1319:
9928	.word	.LANCHOR53
9929	.word	.LANCHOR133
9930	.word	.LANCHOR19
9931	.word	.LANCHOR43
9932	.word	.LANCHOR135
9933	.word	.LANCHOR70
9934	.word	.LANCHOR170
9935	.word	.LC1
9936	.word	.LANCHOR42
9937	.word	.LANCHOR84
9938	.word	.LANCHOR69
9939	.word	.LANCHOR144
9940	.word	.LANCHOR48
9941	.word	.LANCHOR171
9942	.word	.LANCHOR100
9943	.word	.LANCHOR71
9944	.word	.LANCHOR152
9945	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
9946	.section	.text.FtlGcPageRecovery,"ax",%progbits
9947	.align	1
9948	.global	FtlGcPageRecovery
9949	.syntax unified
9950	.thumb
9951	.thumb_func
9952	.fpu softvfp
9953	.type	FtlGcPageRecovery, %function
9954FtlGcPageRecovery:
9955	@ args = 0, pretend = 0, frame = 0
9956	@ frame_needed = 0, uses_anonymous_args = 0
9957	push	{r3, r4, r5, lr}
9958	ldr	r4, .L1323
9959	ldr	r5, .L1323+4
9960	ldrh	r1, [r4]
9961	mov	r0, r5
9962	bl	FtlGcScanTempBlk
9963	ldrh	r2, [r5, #2]
9964	ldrh	r3, [r4]
9965	cmp	r2, r3
9966	bcc	.L1321
9967	ldr	r0, .L1323+8
9968	bl	FtlMapBlkWriteDump_data
9969	movs	r0, #0
9970	bl	FtlGcFreeTempBlock
9971	ldr	r3, .L1323+12
9972	movs	r2, #0
9973	str	r2, [r3]
9974.L1321:
9975	pop	{r3, r4, r5, pc}
9976.L1324:
9977	.align	2
9978.L1323:
9979	.word	.LANCHOR19
9980	.word	.LANCHOR53
9981	.word	.LANCHOR129
9982	.word	.LANCHOR133
9983	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
9984	.section	.text.FtlPowerLostRecovery,"ax",%progbits
9985	.align	1
9986	.global	FtlPowerLostRecovery
9987	.syntax unified
9988	.thumb
9989	.thumb_func
9990	.fpu softvfp
9991	.type	FtlPowerLostRecovery, %function
9992FtlPowerLostRecovery:
9993	@ args = 0, pretend = 0, frame = 0
9994	@ frame_needed = 0, uses_anonymous_args = 0
9995	push	{r3, r4, r5, lr}
9996	movs	r4, #0
9997	ldr	r5, .L1326
9998	ldr	r3, .L1326+4
9999	mov	r0, r5
10000	str	r4, [r3]
10001	bl	FtlRecoverySuperblock
10002	mov	r0, r5
10003	ldr	r5, .L1326+8
10004	bl	FtlSlcSuperblockCheck
10005	mov	r0, r5
10006	bl	FtlRecoverySuperblock
10007	mov	r0, r5
10008	bl	FtlSlcSuperblockCheck
10009	bl	FtlGcPageRecovery
10010	movw	r0, #65535
10011	bl	decrement_vpc_count
10012	mov	r0, r4
10013	pop	{r3, r4, r5, pc}
10014.L1327:
10015	.align	2
10016.L1326:
10017	.word	.LANCHOR51
10018	.word	.LANCHOR157
10019	.word	.LANCHOR52
10020	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
10021	.section	.text.Ftl_gc_temp_data_write_back,"ax",%progbits
10022	.align	1
10023	.global	Ftl_gc_temp_data_write_back
10024	.syntax unified
10025	.thumb
10026	.thumb_func
10027	.fpu softvfp
10028	.type	Ftl_gc_temp_data_write_back, %function
10029Ftl_gc_temp_data_write_back:
10030	@ args = 0, pretend = 0, frame = 0
10031	@ frame_needed = 0, uses_anonymous_args = 0
10032	push	{r3, r4, r5, r6, r7, lr}
10033	movs	r3, #0
10034	ldr	r4, .L1335
10035	movs	r6, #0
10036	movs	r7, #20
10037	mov	r2, r3
10038	ldr	r5, .L1335+4
10039	ldr	r1, [r4]
10040	ldr	r0, [r5]
10041	bl	FlashProgPages
10042.L1329:
10043	ldr	r1, [r4]
10044	uxth	r3, r6
10045	cmp	r1, r3
10046	bhi	.L1332
10047	ldr	r0, [r5]
10048	bl	FtlGcBufFree
10049	ldr	r3, .L1335+8
10050	movs	r0, #0
10051	str	r0, [r4]
10052	ldrh	r3, [r3, #4]
10053	cbnz	r3, .L1328
10054	movs	r0, #1
10055	bl	FtlGcFreeTempBlock
10056	b	.L1334
10057.L1332:
10058	muls	r3, r7, r3
10059	ldr	r2, [r5]
10060	adds	r6, r6, #1
10061	adds	r1, r2, r3
10062	ldr	r2, [r2, r3]
10063	adds	r3, r2, #1
10064	bne	.L1330
10065	ldr	r3, .L1335+8
10066	movs	r5, #0
10067	ldr	r0, .L1335+12
10068	ldrh	r4, [r3]
10069	ldr	r0, [r0]
10070	strh	r5, [r0, r4, lsl #1]	@ movhi
10071	strh	r2, [r3]	@ movhi
10072	ldr	r2, .L1335+16
10073	ldr	r0, [r1, #4]
10074	ldr	r3, [r2, #96]
10075	ubfx	r0, r0, #10, #16
10076	adds	r3, r3, #1
10077	str	r3, [r2, #96]
10078	bl	FtlBbmMapBadBlock
10079	bl	FtlBbmTblFlush
10080	bl	FtlGcPageVarInit
10081.L1334:
10082	movs	r0, #1
10083.L1328:
10084	pop	{r3, r4, r5, r6, r7, pc}
10085.L1330:
10086	ldr	r3, [r1, #12]
10087	ldr	r1, [r1, #4]
10088	ldr	r2, [r3, #8]
10089	ldr	r0, [r3, #12]
10090	bl	FtlGcUpdatePage
10091	b	.L1329
10092.L1336:
10093	.align	2
10094.L1335:
10095	.word	.LANCHOR62
10096	.word	.LANCHOR104
10097	.word	.LANCHOR53
10098	.word	.LANCHOR42
10099	.word	.LANCHOR135
10100	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
10101	.section	.text.Ftl_get_new_temp_ppa,"ax",%progbits
10102	.align	1
10103	.global	Ftl_get_new_temp_ppa
10104	.syntax unified
10105	.thumb
10106	.thumb_func
10107	.fpu softvfp
10108	.type	Ftl_get_new_temp_ppa, %function
10109Ftl_get_new_temp_ppa:
10110	@ args = 0, pretend = 0, frame = 0
10111	@ frame_needed = 0, uses_anonymous_args = 0
10112	push	{r3, r4, r5, lr}
10113	movw	r3, #65535
10114	ldr	r4, .L1340
10115	ldrh	r2, [r4]
10116	cmp	r2, r3
10117	beq	.L1338
10118	ldrh	r3, [r4, #4]
10119	cbnz	r3, .L1339
10120.L1338:
10121	movs	r0, #0
10122	movs	r5, #0
10123	bl	FtlGcFreeTempBlock
10124	ldr	r0, .L1340
10125	strb	r5, [r4, #8]
10126	bl	allocate_data_superblock
10127	ldr	r3, .L1340+4
10128	strh	r5, [r3]	@ movhi
10129	ldr	r3, .L1340+8
10130	strh	r5, [r3]	@ movhi
10131	bl	l2p_flush
10132	mov	r0, r5
10133	bl	FtlEctTblFlush
10134	bl	FtlVpcTblFlush
10135.L1339:
10136	ldr	r0, .L1340
10137	pop	{r3, r4, r5, lr}
10138	b	get_new_active_ppa
10139.L1341:
10140	.align	2
10141.L1340:
10142	.word	.LANCHOR53
10143	.word	.LANCHOR69
10144	.word	.LANCHOR70
10145	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
10146	.section	.text.rk_ftl_garbage_collect,"ax",%progbits
10147	.align	1
10148	.global	rk_ftl_garbage_collect
10149	.syntax unified
10150	.thumb
10151	.thumb_func
10152	.fpu softvfp
10153	.type	rk_ftl_garbage_collect, %function
10154rk_ftl_garbage_collect:
10155	@ args = 0, pretend = 0, frame = 40
10156	@ frame_needed = 0, uses_anonymous_args = 0
10157	ldr	r3, .L1424
10158	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10159	sub	sp, sp, #40
10160	str	r0, [sp, #20]
10161	ldr	r0, [r3]
10162	cmp	r0, #0
10163	bne	.L1394
10164	ldr	r3, .L1424+4
10165	ldrh	r3, [r3]
10166	cmp	r3, #47
10167	bls	.L1342
10168	ldr	r3, .L1424+8
10169	movw	r4, #65535
10170	ldrh	r0, [r3]
10171	cmp	r0, r4
10172	beq	.L1344
10173	ldr	r1, .L1424+12
10174	ldrh	r2, [r1]
10175	cmp	r2, r4
10176	itt	eq
10177	strheq	r0, [r1]	@ movhi
10178	strheq	r2, [r3]	@ movhi
10179.L1344:
10180	ldr	r3, [sp, #20]
10181	cmp	r3, #0
10182	bne	.L1396
10183	ldr	r3, .L1424+16
10184	ldrh	r3, [r3]
10185	cmp	r3, #24
10186	bhi	.L1397
10187	ldr	r2, .L1424+20
10188	cmp	r3, #16
10189	ldrh	r4, [r2]
10190	bls	.L1347
10191	lsrs	r4, r4, #5
10192.L1346:
10193	ldr	r2, .L1424+24
10194	ldrh	r1, [r2]
10195	cmp	r1, r3
10196	mov	r1, r2
10197	bcs	.L1350
10198	ldr	r3, .L1424+28
10199	movw	r0, #65535
10200	ldrh	r3, [r3]
10201	cmp	r3, r0
10202	bne	.L1351
10203	ldr	r0, .L1424+12
10204	ldrh	r0, [r0]
10205	cmp	r0, r3
10206	bne	.L1351
10207	ldr	r3, .L1424+32
10208	ldrh	r0, [r3]
10209	cbnz	r0, .L1352
10210	ldr	r3, .L1424+36
10211	ldr	r4, .L1424+40
10212	ldr	r3, [r3]
10213	ldr	r4, [r4]
10214	add	r3, r3, r3, lsl #1
10215	cmp	r4, r3, lsr #2
10216	bcs	.L1353
10217.L1352:
10218	ldr	r3, .L1424+44
10219	ldrh	r3, [r3]
10220	add	r3, r3, r3, lsl #1
10221	asrs	r3, r3, #2
10222	strh	r3, [r1]	@ movhi
10223.L1354:
10224	ldr	r3, .L1424+48
10225	movs	r2, #0
10226	str	r2, [r3]
10227.L1342:
10228	add	sp, sp, #40
10229	@ sp needed
10230	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10231.L1347:
10232	cmp	r3, #12
10233	bls	.L1348
10234	lsrs	r4, r4, #4
10235	b	.L1346
10236.L1348:
10237	cmp	r3, #8
10238	bls	.L1346
10239	lsrs	r4, r4, #2
10240	b	.L1346
10241.L1397:
10242	movs	r4, #1
10243	b	.L1346
10244.L1353:
10245	movs	r3, #18
10246	strh	r3, [r2]	@ movhi
10247	b	.L1354
10248.L1351:
10249	ldr	r3, .L1424+44
10250	ldrh	r3, [r3]
10251	add	r3, r3, r3, lsl #1
10252	asrs	r3, r3, #2
10253	strh	r3, [r1]	@ movhi
10254.L1350:
10255	ldr	r3, .L1424+52
10256	ldrh	r3, [r3]
10257	cbz	r3, .L1345
10258	adds	r4, r4, #32
10259	uxth	r4, r4
10260.L1345:
10261	ldr	r5, .L1424+56
10262	movw	r3, #65535
10263	ldrh	r2, [r5]
10264	cmp	r2, r3
10265	bne	.L1357
10266	ldr	r3, .L1424+12
10267	ldrh	r1, [r3]
10268	cmp	r1, r2
10269	beq	.L1358
10270	ldr	r0, .L1424+60
10271	ldr	r0, [r0]
10272	ldrh	r1, [r0, r1, lsl #1]
10273	cbnz	r1, .L1359
10274	strh	r2, [r3]	@ movhi
10275.L1359:
10276	ldrh	r2, [r3]
10277	strh	r2, [r5]	@ movhi
10278	movw	r2, #65535
10279	strh	r2, [r3]	@ movhi
10280.L1358:
10281	ldrh	r0, [r5]
10282	movw	r6, #65535
10283	movs	r3, #0
10284	strb	r3, [r5, #8]
10285	cmp	r0, r6
10286	beq	.L1357
10287	bl	IsBlkInGcList
10288	cbz	r0, .L1361
10289	strh	r6, [r5]	@ movhi
10290.L1361:
10291	ldrh	r2, [r5]
10292	movw	r3, #65535
10293	cmp	r2, r3
10294	beq	.L1357
10295	ldr	r0, .L1424+56
10296	bl	make_superblock
10297	ldr	r2, .L1424+64
10298	movs	r3, #0
10299	strh	r3, [r5, #2]	@ movhi
10300	strb	r3, [r5, #6]
10301	strh	r3, [r2]	@ movhi
10302	ldr	r3, .L1424+60
10303	ldrh	r2, [r5]
10304	ldr	r3, [r3]
10305	ldrh	r2, [r3, r2, lsl #1]
10306	ldr	r3, .L1424+68
10307	strh	r2, [r3]	@ movhi
10308.L1357:
10309	ldr	r2, .L1424+72
10310	ldrh	r3, [r5]
10311	ldrh	r2, [r2]
10312	cmp	r2, r3
10313	beq	.L1362
10314	ldr	r2, .L1424+76
10315	ldrh	r2, [r2]
10316	cmp	r2, r3
10317	bne	.L1363
10318.L1362:
10319	movw	r3, #65535
10320	strh	r3, [r5]	@ movhi
10321.L1363:
10322	ldr	r5, .L1424+56
10323	mov	r6, r5
10324.L1393:
10325	ldrh	r2, [r5]
10326	movw	r3, #65535
10327	cmp	r2, r3
10328	bne	.L1364
10329	ldr	fp, .L1424+88
10330	movs	r2, #0
10331	ldr	r3, .L1424+48
10332	mov	r8, fp
10333	str	r2, [r3]
10334.L1365:
10335	ldrh	r7, [fp]
10336	mov	r0, r7
10337	bl	List_get_gc_head_node
10338	uxth	r3, r0
10339	movw	r1, #65535
10340	cmp	r3, r1
10341	strh	r3, [r6]	@ movhi
10342	bne	.L1366
10343	movs	r3, #0
10344	movs	r0, #8
10345	strh	r3, [fp]	@ movhi
10346	b	.L1342
10347.L1396:
10348	movs	r4, #1
10349	b	.L1345
10350.L1366:
10351	str	r0, [sp, #8]
10352	mov	r0, r3
10353	str	r3, [sp, #4]
10354	adds	r7, r7, #1
10355	bl	IsBlkInGcList
10356	ldr	r3, [sp, #4]
10357	ldr	r2, [sp, #8]
10358	cbz	r0, .L1367
10359	strh	r7, [fp]	@ movhi
10360	b	.L1365
10361.L1367:
10362	uxth	r0, r2
10363	ldr	r2, .L1424+20
10364	ldr	r10, .L1424+60
10365	uxth	r7, r7
10366	ldrh	lr, [r2]
10367	ldr	r2, .L1424+80
10368	ldr	r1, [r10]
10369	strh	r7, [fp]	@ movhi
10370	ldrh	r2, [r2]
10371	ldrh	ip, [r1, r0, lsl #1]
10372	mul	r2, r2, lr
10373	cmp	ip, r2, asr #1
10374	bgt	.L1369
10375	cmp	r7, #48
10376	bls	.L1370
10377	cmp	ip, #8
10378	bls	.L1370
10379	ldr	r7, .L1424+84
10380	ldrh	r7, [r7]
10381	cmp	r7, #35
10382	bhi	.L1370
10383.L1369:
10384	movs	r7, #0
10385	strh	r7, [r8]	@ movhi
10386.L1370:
10387	ldrh	r1, [r1, r0, lsl #1]
10388	cmp	r2, r1
10389	bgt	.L1371
10390	ldrh	r2, [r8]
10391	cmp	r2, #3
10392	bhi	.L1371
10393	movw	r3, #65535
10394	strh	r3, [r6]	@ movhi
10395	movs	r3, #0
10396	strh	r3, [r8]	@ movhi
10397.L1423:
10398	ldr	r3, .L1424+32
10399	ldrh	r0, [r3]
10400	b	.L1342
10401.L1371:
10402	cbnz	r1, .L1372
10403	movw	r0, #65535
10404	bl	decrement_vpc_count
10405	ldrh	r3, [r8]
10406	adds	r3, r3, #1
10407	strh	r3, [r8]	@ movhi
10408	b	.L1365
10409.L1425:
10410	.align	2
10411.L1424:
10412	.word	.LANCHOR94
10413	.word	.LANCHOR45
10414	.word	.LANCHOR73
10415	.word	.LANCHOR72
10416	.word	.LANCHOR48
10417	.word	.LANCHOR19
10418	.word	.LANCHOR100
10419	.word	.LANCHOR53
10420	.word	.LANCHOR172
10421	.word	.LANCHOR152
10422	.word	.LANCHOR59
10423	.word	.LANCHOR171
10424	.word	.LANCHOR95
10425	.word	.LANCHOR74
10426	.word	.LANCHOR144
10427	.word	.LANCHOR42
10428	.word	.LANCHOR173
10429	.word	.LANCHOR174
10430	.word	.LANCHOR51
10431	.word	.LANCHOR52
10432	.word	.LANCHOR3
10433	.word	.LANCHOR69
10434	.word	.LANCHOR102
10435.L1372:
10436	movs	r2, #0
10437	strb	r2, [r6, #8]
10438	ldr	r2, .L1426
10439	ldrh	r2, [r2]
10440	cmp	r2, r3
10441	bne	.L1373
10442	mov	r2, #700
10443	ldr	r1, .L1426+4
10444	ldr	r0, .L1426+8
10445	bl	printf
10446.L1373:
10447	ldr	r3, .L1426+12
10448	ldrh	r2, [r6]
10449	ldrh	r3, [r3]
10450	cmp	r2, r3
10451	bne	.L1374
10452	movw	r2, #701
10453	ldr	r1, .L1426+4
10454	ldr	r0, .L1426+8
10455	bl	printf
10456.L1374:
10457	ldr	r3, .L1426+16
10458	ldrh	r2, [r6]
10459	ldrh	r3, [r3]
10460	cmp	r2, r3
10461	bne	.L1375
10462	movw	r2, #702
10463	ldr	r1, .L1426+4
10464	ldr	r0, .L1426+8
10465	bl	printf
10466.L1375:
10467	mov	r0, r5
10468	bl	make_superblock
10469	ldr	r2, .L1426+20
10470	movs	r3, #0
10471	ldrh	r1, [r6]
10472	strh	r3, [r2]	@ movhi
10473	ldr	r2, [r10]
10474	ldrh	r1, [r2, r1, lsl #1]
10475	ldr	r2, .L1426+24
10476	strh	r3, [r6, #2]	@ movhi
10477	strb	r3, [r6, #6]
10478	strh	r1, [r2]	@ movhi
10479.L1364:
10480	ldr	r3, .L1426+28
10481	movs	r2, #1
10482	str	r2, [r3]
10483	ldr	r3, .L1426+32
10484	ldrh	r3, [r3]
10485	str	r3, [sp, #12]
10486	ldr	r3, [sp, #20]
10487	cbz	r3, .L1376
10488	ldr	r3, .L1426+36
10489	ldr	r2, [sp, #12]
10490	ldrh	r1, [r6]
10491	ldrh	r3, [r3]
10492	muls	r3, r2, r3
10493	ldr	r2, .L1426+40
10494	ldr	r2, [r2]
10495	ldrh	r2, [r2, r1, lsl #1]
10496	subs	r3, r3, r2
10497	it	mi
10498	addmi	r3, r3, #3
10499	add	r4, r4, r3, asr #2
10500	uxth	r4, r4
10501.L1376:
10502	ldrh	r3, [r6, #2]
10503	ldr	r1, [sp, #12]
10504	ldr	fp, .L1426+64
10505	adds	r2, r3, r4
10506	cmp	r2, r1
10507	itt	gt
10508	movgt	r2, r1
10509	subgt	r4, r2, r3
10510	mov	r3, #0
10511	it	gt
10512	uxthgt	r4, r4
10513	str	r3, [sp, #8]
10514.L1379:
10515	ldrh	r3, [sp, #8]
10516	cmp	r4, r3
10517	bls	.L1387
10518	ldr	r3, .L1426+36
10519	movw	r10, #65535
10520	ldrh	r1, [r5, #2]
10521	mov	ip, #20
10522	ldr	r0, [fp]
10523	ldrh	lr, [r3]
10524	ldr	r3, [sp, #8]
10525	ldr	r7, .L1426+44
10526	adds	r3, r1, r3
10527	str	r3, [sp, #16]
10528	movs	r3, #0
10529	str	r3, [sp, #4]
10530	b	.L1388
10531.L1381:
10532	ldrh	r2, [r7, #2]!
10533	cmp	r2, r10
10534	beq	.L1380
10535	ldr	r1, [sp, #4]
10536	mla	r8, ip, r1, r0
10537	ldr	r1, [sp, #16]
10538	orr	r2, r1, r2, lsl #10
10539	str	r2, [r8, #4]
10540	ldr	r2, [sp, #4]
10541	adds	r2, r2, #1
10542	uxth	r2, r2
10543	str	r2, [sp, #4]
10544.L1380:
10545	adds	r3, r3, #1
10546.L1388:
10547	uxth	r2, r3
10548	cmp	lr, r2
10549	bhi	.L1381
10550	ldrb	r2, [r5, #8]	@ zero_extendqisi2
10551	ldr	r1, [sp, #4]
10552	bl	FlashReadPages
10553	movs	r3, #0
10554.L1422:
10555	str	r3, [sp, #16]
10556	ldr	r2, [sp, #4]
10557	ldrh	r3, [sp, #16]
10558	cmp	r2, r3
10559	bhi	.L1386
10560	ldr	r3, [sp, #8]
10561	adds	r3, r3, #1
10562	str	r3, [sp, #8]
10563	b	.L1379
10564.L1386:
10565	ldr	r3, [sp, #16]
10566	movs	r7, #20
10567	muls	r7, r3, r7
10568	ldr	r3, [fp]
10569	adds	r2, r3, r7
10570	ldr	r3, [r3, r7]
10571	adds	r3, r3, #1
10572	beq	.L1383
10573	ldr	r8, [r2, #12]
10574	movw	r3, #61589
10575	ldrh	r2, [r8]
10576	cmp	r2, r3
10577	bne	.L1383
10578	ldr	r10, [r8, #8]
10579	cmp	r10, #-1
10580	bne	.L1384
10581	mov	r2, #736
10582	ldr	r1, .L1426+4
10583	ldr	r0, .L1426+8
10584	bl	printf
10585.L1384:
10586	movs	r2, #0
10587	add	r1, sp, #36
10588	mov	r0, r10
10589	bl	log2phys
10590	ldr	r0, [fp]
10591	ldr	r3, [sp, #36]
10592	add	r0, r0, r7
10593	ldr	r2, [r0, #4]
10594	cmp	r2, r3
10595	bne	.L1383
10596	ldr	r2, .L1426+20
10597	ldr	r10, .L1426+56
10598	ldr	r1, .L1426+48
10599	ldrh	r3, [r2]
10600	str	r1, [sp, #28]
10601	adds	r3, r3, #1
10602	strh	r3, [r2]	@ movhi
10603	ldr	r2, [r1]
10604	movs	r1, #20
10605	ldr	r3, [r10]
10606	mla	r3, r1, r3, r2
10607	ldr	r2, [r0, #16]
10608	str	r2, [r3, #16]
10609	str	r3, [sp, #24]
10610	bl	Ftl_get_new_temp_ppa
10611	ldr	r3, [sp, #24]
10612	ldr	r1, [sp, #28]
10613	str	r0, [r3, #4]
10614	ldr	r2, [r1]
10615	movs	r1, #20
10616	ldr	r3, [r10]
10617	ldr	r0, [fp]
10618	mla	r2, r1, r3, r2
10619	add	r0, r0, r7
10620	ldr	r7, .L1426+16
10621	ldr	r1, [r0, #8]
10622	adds	r3, r3, #1
10623	str	r1, [r2, #8]
10624	ldr	r1, [r0, #12]
10625	str	r1, [r2, #12]
10626	movs	r1, #1
10627	ldr	r2, [sp, #36]
10628	str	r2, [r8, #12]
10629	ldrh	r2, [r7]
10630	strh	r2, [r8, #2]	@ movhi
10631	ldr	r2, .L1426+52
10632	str	r3, [r10]
10633	ldr	r2, [r2]
10634	str	r2, [r8, #4]
10635	bl	FtlGcBufAlloc
10636	ldrb	r2, [r7, #7]	@ zero_extendqisi2
10637	ldr	r3, [r10]
10638	cmp	r2, r3
10639	beq	.L1385
10640	ldrh	r3, [r7, #4]
10641	cbnz	r3, .L1383
10642.L1385:
10643	bl	Ftl_gc_temp_data_write_back
10644	cbz	r0, .L1383
10645	ldr	r3, .L1426+28
10646	movs	r2, #0
10647	str	r2, [r3]
10648	b	.L1423
10649.L1383:
10650	ldr	r3, [sp, #16]
10651	adds	r3, r3, #1
10652	b	.L1422
10653.L1387:
10654	ldrh	r3, [r5, #2]
10655	add	r4, r4, r3
10656	ldr	r3, [sp, #12]
10657	uxth	r4, r4
10658	cmp	r3, r4
10659	strh	r4, [r5, #2]	@ movhi
10660	ldr	r4, .L1426+28
10661	bhi	.L1389
10662	ldr	r3, .L1426+56
10663	ldr	r3, [r3]
10664	cbz	r3, .L1390
10665	bl	Ftl_gc_temp_data_write_back
10666	cbz	r0, .L1390
10667	movs	r3, #0
10668	str	r3, [r4]
10669	b	.L1423
10670.L1390:
10671	ldr	r3, .L1426+20
10672	ldrh	r1, [r3]
10673	cbnz	r1, .L1391
10674	ldr	r3, .L1426+40
10675	ldrh	r2, [r5]
10676	ldr	r3, [r3]
10677	ldrh	r0, [r3, r2, lsl #1]
10678	cbz	r0, .L1391
10679	strh	r1, [r3, r2, lsl #1]	@ movhi
10680	ldrh	r0, [r5]
10681	bl	update_vpc_list
10682	bl	l2p_flush
10683	bl	FtlVpcTblFlush
10684.L1391:
10685	movw	r3, #65535
10686	strh	r3, [r5]	@ movhi
10687.L1389:
10688	movs	r3, #0
10689	str	r3, [r4]
10690	ldr	r3, .L1426+60
10691	ldrh	r0, [r3]
10692	cmp	r0, #2
10693	bhi	.L1392
10694	ldr	r3, .L1426+32
10695	ldrh	r4, [r3]
10696	b	.L1393
10697.L1392:
10698	adds	r0, r0, #1
10699	b	.L1342
10700.L1394:
10701	movs	r0, #0
10702	b	.L1342
10703.L1427:
10704	.align	2
10705.L1426:
10706	.word	.LANCHOR51
10707	.word	.LANCHOR175
10708	.word	.LC1
10709	.word	.LANCHOR52
10710	.word	.LANCHOR53
10711	.word	.LANCHOR173
10712	.word	.LANCHOR174
10713	.word	.LANCHOR94
10714	.word	.LANCHOR19
10715	.word	.LANCHOR3
10716	.word	.LANCHOR42
10717	.word	.LANCHOR144+14
10718	.word	.LANCHOR104
10719	.word	.LANCHOR83
10720	.word	.LANCHOR62
10721	.word	.LANCHOR48
10722	.word	.LANCHOR66
10723	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
10724	.section	.text.FtlRead,"ax",%progbits
10725	.align	1
10726	.global	FtlRead
10727	.syntax unified
10728	.thumb
10729	.thumb_func
10730	.fpu softvfp
10731	.type	FtlRead, %function
10732FtlRead:
10733	@ args = 0, pretend = 0, frame = 56
10734	@ frame_needed = 0, uses_anonymous_args = 0
10735	cmp	r0, #16
10736	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10737	sub	sp, sp, #56
10738	mov	r6, r1
10739	mov	r8, r3
10740	str	r2, [sp, #24]
10741	bne	.L1429
10742	mov	r2, r3
10743	ldr	r1, [sp, #24]
10744	add	r0, r6, #256
10745	bl	FtlVendorPartRead
10746	str	r0, [sp, #4]
10747.L1428:
10748	ldr	r0, [sp, #4]
10749	add	sp, sp, #56
10750	@ sp needed
10751	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10752.L1429:
10753	ldr	r3, [sp, #24]
10754	adds	r3, r1, r3
10755	str	r3, [sp, #12]
10756	ldr	r3, .L1461
10757	ldr	r2, [sp, #12]
10758	ldr	r3, [r3]
10759	cmp	r2, r3
10760	bhi	.L1450
10761	ldr	r3, .L1461+4
10762	ldr	r3, [r3]
10763	adds	r4, r3, #1
10764	beq	.L1451
10765	ldr	r3, .L1461+8
10766	mov	r0, r6
10767	movs	r7, #0
10768	mov	r5, r7
10769	ldrh	r4, [r3]
10770	mov	r1, r4
10771	bl	__aeabi_uidiv
10772	ldr	r3, [sp, #12]
10773	mov	r1, r4
10774	str	r0, [sp, #16]
10775	subs	r0, r3, #1
10776	bl	__aeabi_uidiv
10777	ldr	r3, [sp, #16]
10778	ldr	r2, .L1461+12
10779	ldr	r1, [sp, #24]
10780	rsb	r3, r3, #1
10781	ldr	r4, [sp, #16]
10782	add	r3, r3, r0
10783	str	r0, [sp, #20]
10784	str	r3, [sp, #8]
10785	ldr	r3, [r2]
10786	str	r7, [sp, #32]
10787	str	r7, [sp, #28]
10788	add	r3, r3, r1
10789	ldr	r1, [sp, #8]
10790	str	r3, [r2]
10791	ldr	r2, .L1461+16
10792	str	r7, [sp, #4]
10793	ldr	r3, [r2]
10794	add	r3, r3, r1
10795	str	r3, [r2]
10796.L1431:
10797	ldr	r3, [sp, #8]
10798	cbnz	r3, .L1448
10799	ldr	r3, .L1461+20
10800	ldrh	r3, [r3]
10801	cbnz	r3, .L1449
10802	ldr	r3, .L1461+24
10803	ldrh	r3, [r3]
10804	cmp	r3, #31
10805	bhi	.L1428
10806.L1449:
10807	movs	r1, #1
10808	movs	r0, #0
10809	bl	rk_ftl_garbage_collect
10810	b	.L1428
10811.L1448:
10812	movs	r2, #0
10813	add	r1, sp, #52
10814	mov	r0, r4
10815	bl	log2phys
10816	ldr	r3, [sp, #52]
10817	adds	r0, r3, #1
10818	bne	.L1432
10819	ldr	fp, .L1461+8
10820	mov	r10, #0
10821.L1433:
10822	ldrh	r0, [fp]
10823	cmp	r10, r0
10824	bcc	.L1435
10825.L1436:
10826	ldr	r3, [sp, #8]
10827	adds	r4, r4, #1
10828	subs	r3, r3, #1
10829	str	r3, [sp, #8]
10830	beq	.L1440
10831	ldr	r3, .L1461+28
10832	ldrh	r3, [r3]
10833	cmp	r5, r3, lsl #2
10834	bne	.L1431
10835.L1440:
10836	cmp	r5, #0
10837	beq	.L1431
10838	ldr	r3, .L1461+32
10839	movs	r2, #0
10840	mov	r1, r5
10841	mov	r10, #0
10842	ldr	r0, [r3]
10843	bl	FlashReadPages
10844	lsls	r3, r7, #9
10845	str	r3, [sp, #44]
10846	ldr	r3, [sp, #28]
10847	lsls	r3, r3, #9
10848	str	r3, [sp, #36]
10849	ldr	r3, [sp, #32]
10850	lsls	r3, r3, #9
10851	str	r3, [sp, #40]
10852.L1447:
10853	movs	r3, #20
10854	mul	fp, r3, r10
10855	ldr	r3, .L1461+32
10856	ldr	r2, [r3]
10857	ldr	r3, [sp, #16]
10858	add	r2, r2, fp
10859	ldr	r1, [r2, #16]
10860	cmp	r3, r1
10861	bne	.L1442
10862	ldr	r1, [r2, #8]
10863	ldr	r2, .L1461+36
10864	ldr	r2, [r2]
10865	cmp	r1, r2
10866	bne	.L1443
10867	ldr	r3, [sp, #36]
10868	mov	r0, r8
10869	ldr	r2, [sp, #40]
10870	add	r1, r1, r3
10871.L1460:
10872	bl	ftl_memcpy
10873.L1443:
10874	ldr	r3, .L1461+32
10875	ldr	r3, [r3]
10876	add	r2, r3, fp
10877	ldr	r3, [r3, fp]
10878	ldr	r0, [r2, #12]
10879	ldr	r1, [r2, #16]
10880	ldr	r0, [r0, #8]
10881	cmp	r1, r0
10882	itttt	ne
10883	ldrne	r0, .L1461+40
10884	ldrne	r1, [r0, #72]
10885	addne	r1, r1, #1
10886	strne	r1, [r0, #72]
10887	adds	r1, r3, #1
10888	bne	.L1445
10889	ldr	r1, .L1461+40
10890	str	r3, [sp, #4]
10891	ldr	r2, [r1, #72]
10892	adds	r2, r2, #1
10893	str	r2, [r1, #72]
10894.L1446:
10895	add	r10, r10, #1
10896	cmp	r5, r10
10897	bne	.L1447
10898	movs	r5, #0
10899	b	.L1431
10900.L1435:
10901	mla	r0, r0, r4, r10
10902	cmp	r6, r0
10903	bhi	.L1434
10904	ldr	r3, [sp, #12]
10905	cmp	r3, r0
10906	bls	.L1434
10907	subs	r0, r0, r6
10908	mov	r2, #512
10909	movs	r1, #0
10910	add	r0, r8, r0, lsl #9
10911	bl	ftl_memset
10912.L1434:
10913	add	r10, r10, #1
10914	b	.L1433
10915.L1432:
10916	ldr	r2, .L1461+32
10917	mov	r10, #20
10918	ldr	r2, [r2]
10919	mla	r10, r10, r5, r2
10920	str	r3, [r10, #4]
10921	ldr	r3, [sp, #16]
10922	cmp	r4, r3
10923	ldr	r3, .L1461+8
10924	bne	.L1437
10925	ldr	r2, .L1461+36
10926	mov	r0, r6
10927	ldrh	fp, [r3]
10928	ldr	r2, [r2]
10929	mov	r1, fp
10930	str	r2, [r10, #8]
10931	bl	__aeabi_uidivmod
10932	ldr	r2, [sp, #24]
10933	sub	r3, fp, r1
10934	str	r1, [sp, #28]
10935	cmp	r3, r2
10936	it	cs
10937	movcs	r3, r2
10938	cmp	fp, r3
10939	str	r3, [sp, #32]
10940	bne	.L1438
10941	str	r8, [r10, #8]
10942.L1438:
10943	ldr	r3, .L1461+44
10944	ldr	r2, .L1461+48
10945	str	r4, [r10, #16]
10946	ldrh	r3, [r3]
10947	ldr	r2, [r2]
10948	muls	r3, r5, r3
10949	adds	r5, r5, #1
10950	bic	r3, r3, #3
10951	add	r3, r3, r2
10952	str	r3, [r10, #12]
10953	b	.L1436
10954.L1437:
10955	ldr	r2, [sp, #20]
10956	cmp	r4, r2
10957	bne	.L1439
10958	ldr	r2, .L1461+52
10959	ldr	r1, [sp, #12]
10960	ldr	r2, [r2]
10961	str	r2, [r10, #8]
10962	ldrh	r2, [r3]
10963	mul	r3, r2, r4
10964	subs	r7, r1, r3
10965	cmp	r2, r7
10966	bne	.L1438
10967.L1459:
10968	subs	r3, r3, r6
10969	add	r3, r8, r3, lsl #9
10970	str	r3, [r10, #8]
10971	b	.L1438
10972.L1439:
10973	ldrh	r3, [r3]
10974	muls	r3, r4, r3
10975	b	.L1459
10976.L1442:
10977	ldr	r3, [sp, #20]
10978	cmp	r3, r1
10979	bne	.L1443
10980	ldr	r3, .L1461+52
10981	ldr	r1, [r2, #8]
10982	ldr	r2, [r3]
10983	cmp	r1, r2
10984	bne	.L1443
10985	ldr	r2, .L1461+8
10986	ldr	r3, [sp, #20]
10987	ldrh	r0, [r2]
10988	ldr	r2, [sp, #44]
10989	muls	r0, r3, r0
10990	subs	r0, r0, r6
10991	add	r0, r8, r0, lsl #9
10992	b	.L1460
10993.L1445:
10994	cmp	r3, #256
10995	bne	.L1446
10996	ldr	r0, [r2, #4]
10997	ubfx	r0, r0, #10, #16
10998	bl	P2V_block_in_plane
10999	bl	FtlGcRefreshBlock
11000	b	.L1446
11001.L1450:
11002	mov	r3, #-1
11003.L1451:
11004	str	r3, [sp, #4]
11005	b	.L1428
11006.L1462:
11007	.align	2
11008.L1461:
11009	.word	.LANCHOR34
11010	.word	.LANCHOR166
11011	.word	.LANCHOR12
11012	.word	.LANCHOR163
11013	.word	.LANCHOR89
11014	.word	.LANCHOR74
11015	.word	.LANCHOR48
11016	.word	.LANCHOR3
11017	.word	.LANCHOR103
11018	.word	.LANCHOR109
11019	.word	.LANCHOR135
11020	.word	.LANCHOR24
11021	.word	.LANCHOR115
11022	.word	.LANCHOR110
11023	.size	FtlRead, .-FtlRead
11024	.section	.text.sftl_read,"ax",%progbits
11025	.align	1
11026	.global	sftl_read
11027	.syntax unified
11028	.thumb
11029	.thumb_func
11030	.fpu softvfp
11031	.type	sftl_read, %function
11032sftl_read:
11033	@ args = 0, pretend = 0, frame = 0
11034	@ frame_needed = 0, uses_anonymous_args = 0
11035	@ link register save eliminated.
11036	mov	r3, r2
11037	mov	r2, r1
11038	mov	r1, r0
11039	movs	r0, #0
11040	b	FtlRead
11041	.size	sftl_read, .-sftl_read
11042	.section	.text.FtlWrite,"ax",%progbits
11043	.align	1
11044	.global	FtlWrite
11045	.syntax unified
11046	.thumb
11047	.thumb_func
11048	.fpu softvfp
11049	.type	FtlWrite, %function
11050FtlWrite:
11051	@ args = 0, pretend = 0, frame = 72
11052	@ frame_needed = 0, uses_anonymous_args = 0
11053	cmp	r0, #16
11054	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11055	sub	sp, sp, #72
11056	str	r1, [sp, #4]
11057	str	r2, [sp, #20]
11058	str	r3, [sp, #16]
11059	bne	.L1465
11060	mov	r2, r3
11061	ldr	r3, [sp, #4]
11062	ldr	r1, [sp, #20]
11063	add	r0, r3, #256
11064	bl	FtlVendorPartWrite
11065.L1464:
11066	add	sp, sp, #72
11067	@ sp needed
11068	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11069.L1465:
11070	ldr	r3, [sp, #4]
11071	ldr	r2, [sp, #20]
11072	adds	r4, r3, r2
11073	ldr	r3, .L1508
11074	ldr	r3, [r3]
11075	cmp	r4, r3
11076	bhi	.L1498
11077	ldr	r3, .L1508+4
11078	ldr	r0, [r3]
11079	adds	r5, r0, #1
11080	beq	.L1464
11081	ldr	r3, .L1508+8
11082	mov	r2, #2048
11083	ldr	r0, [sp, #4]
11084	ldr	r7, .L1508+12
11085	str	r2, [r3]
11086	ldr	r3, .L1508+16
11087	ldrh	r5, [r3]
11088	mov	r1, r5
11089	bl	__aeabi_uidiv
11090	mov	r1, r5
11091	str	r0, [sp, #12]
11092	subs	r0, r4, #1
11093	bl	__aeabi_uidiv
11094	ldr	r2, [sp, #12]
11095	ldr	r1, [sp, #20]
11096	ldr	r5, [sp, #12]
11097	subs	r3, r0, r2
11098	ldr	r2, .L1508+20
11099	str	r3, [sp, #32]
11100	adds	r3, r3, #1
11101	str	r3, [sp, #8]
11102	ldr	r3, [r2]
11103	str	r0, [sp, #28]
11104	add	r3, r3, r1
11105	ldr	r1, [sp, #8]
11106	str	r3, [r2]
11107	ldr	r2, .L1508+24
11108	ldr	r3, [r2]
11109	add	r3, r3, r1
11110	str	r3, [r2]
11111.L1467:
11112	ldr	r3, [sp, #8]
11113	cbnz	r3, .L1493
11114	ldr	r5, .L1508+28
11115	mov	r0, r3
11116	ldr	r1, [sp, #32]
11117	bl	rk_ftl_garbage_collect
11118	ldrh	r2, [r5]
11119	cmp	r2, #5
11120	bls	.L1494
11121.L1496:
11122	movs	r0, #0
11123	b	.L1464
11124.L1493:
11125	ldr	r4, .L1508+32
11126	ldrb	r2, [r7, #6]	@ zero_extendqisi2
11127	ldrh	r3, [r4]
11128	cmp	r2, r3
11129	bcc	.L1468
11130	mov	r2, #1016
11131	ldr	r1, .L1508+36
11132	ldr	r0, .L1508+40
11133	bl	printf
11134.L1468:
11135	ldrh	r3, [r7, #4]
11136	cbnz	r3, .L1469
11137	mov	r0, r7
11138	bl	allocate_new_data_superblock
11139.L1469:
11140	ldrb	r3, [r7, #7]	@ zero_extendqisi2
11141	ldrh	r2, [r7, #4]
11142	lsls	r3, r3, #2
11143	cmp	r3, r2
11144	it	cs
11145	movcs	r3, r2
11146	ldr	r2, [sp, #8]
11147	cmp	r3, r2
11148	it	cs
11149	movcs	r3, r2
11150	ldrb	r2, [r7, #6]	@ zero_extendqisi2
11151	str	r3, [sp, #44]
11152	ldrh	r3, [r4]
11153	cmp	r2, r3
11154	bcc	.L1470
11155	movw	r2, #1049
11156	ldr	r1, .L1508+36
11157	ldr	r0, .L1508+40
11158	bl	printf
11159.L1470:
11160	ldr	r8, .L1508+44
11161	mov	fp, #0
11162.L1471:
11163	ldr	r3, [sp, #44]
11164	cmp	fp, r3
11165	bne	.L1491
11166.L1472:
11167	ldr	r0, .L1508+44
11168	mov	r3, r7
11169	movs	r2, #0
11170	mov	r1, fp
11171	ldr	r0, [r0]
11172	bl	FtlProgPages
11173	ldr	r3, [sp, #8]
11174	cmp	fp, r3
11175	bls	.L1492
11176	movw	r2, #1126
11177	ldr	r1, .L1508+36
11178	ldr	r0, .L1508+40
11179	bl	printf
11180.L1492:
11181	ldr	r3, [sp, #8]
11182	sub	r3, r3, fp
11183	str	r3, [sp, #8]
11184	b	.L1467
11185.L1491:
11186	ldrh	r2, [r7, #4]
11187	cmp	r2, #0
11188	beq	.L1472
11189	movs	r2, #0
11190	add	r1, sp, #48
11191	mov	r0, r5
11192	movs	r6, #20
11193	bl	log2phys
11194	mov	r0, r7
11195	mul	r6, r6, fp
11196	bl	get_new_active_ppa
11197	ldr	r2, .L1508+48
11198	ldr	r1, [r8]
11199	ldrh	r2, [r2]
11200	add	r1, r1, r6
11201	str	r0, [r1, #4]
11202	str	r5, [r1, #16]
11203	mul	r0, r2, fp
11204	bic	r3, r0, #3
11205	ldr	r0, .L1508+52
11206	str	r3, [sp, #36]
11207	ldr	r3, [r0]
11208	ldr	r0, [sp, #36]
11209	str	r3, [sp, #40]
11210	add	r10, r3, r0
11211	str	r10, [r1, #12]
11212	mov	r0, r10
11213	movs	r1, #0
11214	bl	ftl_memset
11215	ldr	r3, [sp, #12]
11216	ldr	r2, .L1508+16
11217	cmp	r5, r3
11218	beq	.L1473
11219	ldr	r3, [sp, #28]
11220	cmp	r5, r3
11221	bne	.L1504
11222	ldrh	r2, [r2]
11223	ldr	r3, [sp, #4]
11224	ldr	r1, [sp, #20]
11225	smulbb	r2, r2, r5
11226	adds	r4, r3, r1
11227	movs	r3, #0
11228	subs	r4, r4, r2
11229	str	r3, [sp, #24]
11230	uxth	r4, r4
11231	b	.L1476
11232.L1473:
11233	ldrh	r4, [r2]
11234	ldr	r0, [sp, #4]
11235	mov	r1, r4
11236	bl	__aeabi_uidivmod
11237	ldr	r3, [sp, #20]
11238	subs	r4, r4, r1
11239	str	r1, [sp, #24]
11240	cmp	r4, r3
11241	it	cs
11242	movcs	r4, r3
11243.L1476:
11244	ldr	r2, .L1508+16
11245	ldr	r3, [sp, #12]
11246	ldrh	r2, [r2]
11247	cmp	r4, r2
11248	ldr	r2, [r8]
11249	bne	.L1477
11250	cmp	r5, r3
11251	add	r6, r6, r2
11252	ittet	ne
11253	mulne	r4, r4, r5
11254	ldrne	r3, [sp, #4]
11255	ldreq	r3, [sp, #16]
11256	subne	r4, r4, r3
11257	itett	ne
11258	ldrne	r3, [sp, #16]
11259	streq	r3, [r6, #8]
11260	addne	r4, r3, r4, lsl #9
11261	strne	r4, [r6, #8]
11262.L1479:
11263	ldr	r2, .L1508+32
11264	ldrb	r1, [r7, #6]	@ zero_extendqisi2
11265	ldrh	r2, [r2]
11266	cmp	r1, r2
11267	bcc	.L1488
11268	movw	r2, #1117
11269	ldr	r1, .L1508+36
11270	ldr	r0, .L1508+40
11271	bl	printf
11272.L1488:
11273	ldr	r3, [sp, #40]
11274	movw	r2, #61589
11275	ldr	r1, [sp, #36]
11276	add	fp, fp, #1
11277	strh	r2, [r3, r1]	@ movhi
11278	ldr	r1, .L1508+56
11279	str	r5, [r10, #8]
11280	adds	r5, r5, #1
11281	ldr	r2, [r1]
11282	str	r2, [r10, #4]
11283	adds	r2, r2, #1
11284	adds	r3, r2, #1
11285	it	eq
11286	moveq	r2, #0
11287	str	r2, [r1]
11288	ldr	r2, [sp, #48]
11289	str	r2, [r10, #12]
11290	ldrh	r2, [r7]
11291	strh	r2, [r10, #2]	@ movhi
11292	b	.L1471
11293.L1477:
11294	cmp	r5, r3
11295	add	r2, r2, r6
11296	ite	eq
11297	ldreq	r1, .L1508+60
11298	ldrne	r1, .L1508+64
11299	ldr	r1, [r1]
11300	str	r1, [r2, #8]
11301	ldr	r2, [sp, #48]
11302	adds	r1, r2, #1
11303	beq	.L1482
11304	str	r2, [sp, #56]
11305	add	r0, sp, #52
11306	ldr	r2, [r8]
11307	str	r5, [sp, #68]
11308	add	r2, r2, r6
11309	ldr	r1, [r2, #8]
11310	ldr	r2, [r2, #12]
11311	str	r1, [sp, #60]
11312	movs	r1, #1
11313	str	r2, [sp, #64]
11314	movs	r2, #0
11315	bl	FlashReadPages
11316	ldr	r2, [sp, #52]
11317	adds	r2, r2, #1
11318	bne	.L1483
11319	ldr	r1, .L1508+68
11320	ldr	r2, [r1, #72]
11321	adds	r2, r2, #1
11322	str	r2, [r1, #72]
11323.L1486:
11324	ldr	r3, [sp, #12]
11325	lsls	r2, r4, #9
11326	cmp	r5, r3
11327	bne	.L1487
11328	ldr	r1, [r8]
11329	ldr	r3, [sp, #24]
11330	add	r6, r6, r1
11331	ldr	r1, [sp, #16]
11332	ldr	r0, [r6, #8]
11333	add	r0, r0, r3, lsl #9
11334.L1506:
11335	bl	ftl_memcpy
11336	b	.L1479
11337.L1483:
11338	ldr	r1, [r10, #8]
11339	cmp	r5, r1
11340	beq	.L1485
11341	ldr	r0, .L1508+68
11342	ldr	r2, [r0, #72]
11343	adds	r2, r2, #1
11344	str	r2, [r0, #72]
11345	mov	r2, r5
11346	ldr	r0, .L1508+72
11347	bl	printf
11348.L1485:
11349	ldr	r2, [r10, #8]
11350	cmp	r5, r2
11351	beq	.L1486
11352	movw	r2, #1102
11353	ldr	r1, .L1508+36
11354	ldr	r0, .L1508+40
11355	bl	printf
11356	b	.L1486
11357.L1482:
11358	ldr	r2, [r8]
11359	movs	r1, #0
11360	adds	r0, r2, r6
11361	ldr	r2, .L1508+76
11362	ldr	r0, [r0, #8]
11363	ldrh	r2, [r2]
11364	bl	ftl_memset
11365	b	.L1486
11366.L1487:
11367	ldr	r1, .L1508+16
11368	ldr	r3, [sp, #4]
11369	ldr	r0, [r8]
11370	ldrh	r1, [r1]
11371	add	r6, r6, r0
11372	ldr	r0, [r6, #8]
11373	muls	r1, r5, r1
11374	subs	r1, r1, r3
11375	ldr	r3, [sp, #16]
11376	add	r1, r3, r1, lsl #9
11377	b	.L1506
11378.L1509:
11379	.align	2
11380.L1508:
11381	.word	.LANCHOR34
11382	.word	.LANCHOR166
11383	.word	.LANCHOR176
11384	.word	.LANCHOR51
11385	.word	.LANCHOR12
11386	.word	.LANCHOR162
11387	.word	.LANCHOR85
11388	.word	.LANCHOR48
11389	.word	.LANCHOR3
11390	.word	.LANCHOR177
11391	.word	.LC1
11392	.word	.LANCHOR105
11393	.word	.LANCHOR24
11394	.word	.LANCHOR115
11395	.word	.LANCHOR83
11396	.word	.LANCHOR109
11397	.word	.LANCHOR110
11398	.word	.LANCHOR135
11399	.word	.LC37
11400	.word	.LANCHOR23
11401.L1504:
11402	ldrh	r2, [r2]
11403	ldr	r3, [sp, #4]
11404	ldr	r1, [r8]
11405	muls	r2, r5, r2
11406	add	r6, r6, r1
11407	subs	r2, r2, r3
11408	ldr	r3, [sp, #16]
11409	add	r2, r3, r2, lsl #9
11410	str	r2, [r6, #8]
11411	b	.L1479
11412.L1494:
11413	ldr	r6, .L1510
11414	mov	r4, #256
11415	ldr	r7, .L1510+4
11416.L1497:
11417	ldrh	r3, [r6]
11418	movw	r2, #65535
11419	cmp	r3, r2
11420	bne	.L1495
11421	ldrh	r2, [r7]
11422	cmp	r2, r3
11423	bne	.L1495
11424	movs	r0, #0
11425	bl	List_get_gc_head_node
11426	uxth	r0, r0
11427	bl	FtlGcRefreshBlock
11428.L1495:
11429	ldr	r2, .L1510+8
11430	movs	r3, #128
11431	movs	r1, #1
11432	mov	r0, r1
11433	strh	r3, [r2]	@ movhi
11434	ldr	r2, .L1510+12
11435	strh	r3, [r2]	@ movhi
11436	bl	rk_ftl_garbage_collect
11437	movs	r1, #1
11438	movs	r0, #0
11439	bl	rk_ftl_garbage_collect
11440	ldrh	r3, [r5]
11441	cmp	r3, #2
11442	bhi	.L1496
11443	subs	r4, r4, #1
11444	bne	.L1497
11445	b	.L1496
11446.L1498:
11447	mov	r0, #-1
11448	b	.L1464
11449.L1511:
11450	.align	2
11451.L1510:
11452	.word	.LANCHOR144
11453	.word	.LANCHOR72
11454	.word	.LANCHOR101
11455	.word	.LANCHOR100
11456	.size	FtlWrite, .-FtlWrite
11457	.section	.text.sftl_gc,"ax",%progbits
11458	.align	1
11459	.global	sftl_gc
11460	.syntax unified
11461	.thumb
11462	.thumb_func
11463	.fpu softvfp
11464	.type	sftl_gc, %function
11465sftl_gc:
11466	@ args = 0, pretend = 0, frame = 0
11467	@ frame_needed = 0, uses_anonymous_args = 0
11468	@ link register save eliminated.
11469	movs	r1, #1
11470	mov	r0, r1
11471	b	rk_ftl_garbage_collect
11472	.size	sftl_gc, .-sftl_gc
11473	.section	.text.FtlLoadSysInfo,"ax",%progbits
11474	.align	1
11475	.global	FtlLoadSysInfo
11476	.syntax unified
11477	.thumb
11478	.thumb_func
11479	.fpu softvfp
11480	.type	FtlLoadSysInfo, %function
11481FtlLoadSysInfo:
11482	@ args = 0, pretend = 0, frame = 8
11483	@ frame_needed = 0, uses_anonymous_args = 0
11484	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11485	movs	r1, #0
11486	ldr	r8, .L1540+144
11487	sub	sp, sp, #24
11488	ldr	r7, .L1540
11489	ldr	r3, [r8]
11490	ldr	r4, .L1540+4
11491	ldr	fp, .L1540+148
11492	ldrh	r2, [r7]
11493	ldr	r5, .L1540+8
11494	str	r3, [r4, #8]
11495	ldr	r6, .L1540+12
11496	ldr	r3, [fp]
11497	lsls	r2, r2, #1
11498	ldr	r0, [r5]
11499	str	r3, [r4, #12]
11500	bl	ftl_memset
11501	ldrh	r0, [r6]
11502	movw	r3, #65535
11503	str	r5, [sp, #16]
11504	cmp	r0, r3
11505	bne	.L1514
11506.L1525:
11507	mov	r0, #-1
11508.L1513:
11509	add	sp, sp, #24
11510	@ sp needed
11511	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11512.L1514:
11513	movs	r1, #1
11514	bl	FtlGetLastWrittenPage
11515	ldrsh	r10, [r6]
11516	sxth	r5, r0
11517	adds	r0, r0, #1
11518	strh	r0, [r6, #2]	@ movhi
11519.L1516:
11520	cmp	r5, #0
11521	bge	.L1522
11522	movw	r2, #1465
11523	ldr	r1, .L1540+16
11524	ldr	r0, .L1540+20
11525	bl	printf
11526	b	.L1521
11527.L1522:
11528	orr	r3, r5, r10, lsl #10
11529	movs	r2, #1
11530	mov	r1, r2
11531	ldr	r0, .L1540+4
11532	str	r3, [r4, #4]
11533	ldr	r3, [r8]
11534	str	r3, [r4, #8]
11535	bl	FlashReadPages
11536	ldr	r3, [r4, #12]
11537	ldr	r3, [r3, #12]
11538	str	r3, [sp, #20]
11539	cbz	r3, .L1517
11540	ldr	r2, .L1540+24
11541	ldr	r0, [r4, #8]
11542	ldrh	r1, [r2]
11543	bl	js_hash
11544	ldr	r3, [sp, #20]
11545	cmp	r3, r0
11546	beq	.L1517
11547	str	r0, [sp, #8]
11548	mov	r2, r10
11549	str	r3, [sp, #4]
11550	ldrh	r3, [r6, #4]
11551	ldr	r1, .L1540+16
11552	ldr	r0, .L1540+28
11553	str	r3, [sp]
11554	mov	r3, r5
11555	bl	printf
11556	cbnz	r5, .L1518
11557	ldrh	r3, [r6, #4]
11558	cmp	r10, r3
11559	beq	.L1518
11560	sxth	r10, r3
11561	ldr	r3, .L1540+32
11562	ldrh	r5, [r3]
11563.L1520:
11564	subs	r5, r5, #1
11565	sxth	r5, r5
11566	b	.L1516
11567.L1518:
11568	mov	r3, #-1
11569	str	r3, [r4]
11570.L1517:
11571	ldr	r3, [r4]
11572	adds	r3, r3, #1
11573	beq	.L1520
11574	ldr	r3, [r8]
11575	ldr	r2, .L1540+36
11576	ldr	r3, [r3]
11577	cmp	r3, r2
11578	bne	.L1520
11579	ldr	r3, [fp]
11580	ldrh	r2, [r3]
11581	movw	r3, #61604
11582	cmp	r2, r3
11583	bne	.L1520
11584.L1521:
11585	ldr	r2, .L1540+24
11586	ldrh	r3, [r7]
11587	ldrh	r2, [r2]
11588	adds	r3, r3, #24
11589	cmp	r2, r3, lsl #1
11590	bcs	.L1524
11591	movw	r2, #1467
11592	ldr	r1, .L1540+16
11593	ldr	r0, .L1540+20
11594	bl	printf
11595.L1524:
11596	ldr	r5, .L1540+40
11597	movs	r2, #48
11598	ldr	r1, [r4, #8]
11599	mov	r0, r5
11600	bl	ftl_memcpy
11601	ldrh	r2, [r7]
11602	ldr	r1, [r4, #8]
11603	ldr	r3, [sp, #16]
11604	lsls	r2, r2, #1
11605	adds	r1, r1, #48
11606	ldr	r0, [r3]
11607	bl	ftl_memcpy
11608	ldrh	r1, [r7]
11609	ldr	r3, [r4, #8]
11610	mov	r4, r5
11611	lsrs	r2, r1, #3
11612	adds	r1, r1, #24
11613	lsls	r1, r1, #1
11614	adds	r2, r2, #4
11615	bic	r1, r1, #3
11616	add	r1, r1, r3
11617	ldr	r3, .L1540+44
11618	ldr	r0, [r3]
11619	bl	ftl_memcpy
11620	ldr	r2, [r5]
11621	ldr	r3, .L1540+36
11622	cmp	r2, r3
11623	bne	.L1525
11624	ldr	r3, .L1540+48
11625	ldrb	r2, [r4, #10]	@ zero_extendqisi2
11626	ldrh	r5, [r5, #8]
11627	ldrh	r3, [r3]
11628	strh	r5, [r6, #6]	@ movhi
11629	cmp	r2, r3
11630	bne	.L1525
11631	ldr	r3, .L1540+52
11632	ldr	r2, .L1540+56
11633	str	r5, [r3]
11634	ldr	r3, .L1540+60
11635	ldrh	r3, [r3]
11636	muls	r3, r5, r3
11637	str	r3, [r2]
11638	ldr	r2, .L1540+64
11639	ldrh	r2, [r2]
11640	muls	r3, r2, r3
11641	ldr	r2, .L1540+68
11642	str	r3, [r2]
11643	ldr	r3, .L1540+72
11644	ldr	r6, [r3]
11645	ldr	r3, .L1540+76
11646	ldrh	r0, [r3, #6]
11647	ldr	r3, .L1540+80
11648	subs	r0, r6, r0
11649	ldrh	r1, [r3]
11650	subs	r0, r0, r5
11651	bl	__aeabi_uidiv
11652	ldr	r3, .L1540+84
11653	cmp	r5, r6
11654	strh	r0, [r3]	@ movhi
11655	bls	.L1526
11656	movw	r2, #1489
11657	ldr	r1, .L1540+16
11658	ldr	r0, .L1540+20
11659	bl	printf
11660.L1526:
11661	ldrh	r2, [r4, #16]
11662	ldr	r3, .L1540+88
11663	ldrh	ip, [r4, #14]
11664	ldr	r7, .L1540+92
11665	lsrs	r1, r2, #6
11666	and	r2, r2, #63
11667	strb	r2, [r3, #6]
11668	ldrb	r2, [r4, #11]	@ zero_extendqisi2
11669	strh	r1, [r3, #2]	@ movhi
11670	ldr	r1, .L1540+96
11671	strb	r2, [r3, #8]
11672	ldrh	r2, [r4, #18]
11673	strh	ip, [r3]	@ movhi
11674	movw	r3, #65535
11675	strh	r3, [r7]	@ movhi
11676	movs	r3, #0
11677	strh	r2, [r1]	@ movhi
11678	ldrh	r2, [r4, #20]
11679	strh	r3, [r7, #2]	@ movhi
11680	strb	r3, [r7, #6]
11681	strb	r3, [r7, #8]
11682	lsrs	r5, r2, #6
11683	and	r2, r2, #63
11684	strb	r2, [r1, #6]
11685	ldrb	r2, [r4, #12]	@ zero_extendqisi2
11686	strh	r5, [r1, #2]	@ movhi
11687	ldrh	r5, [r4, #22]
11688	strb	r2, [r1, #8]
11689	ldr	r2, .L1540+100
11690	strh	r5, [r2]	@ movhi
11691	ldrh	r5, [r4, #24]
11692	lsrs	r6, r5, #6
11693	and	r5, r5, #63
11694	strb	r5, [r2, #6]
11695	ldrb	r5, [r4, #13]	@ zero_extendqisi2
11696	strh	r6, [r2, #2]	@ movhi
11697	ldr	r6, [r4, #32]
11698	strb	r5, [r2, #8]
11699	ldr	r5, .L1540+104
11700	str	r3, [r5]
11701	ldr	r5, .L1540+108
11702	str	r3, [r5]
11703	ldr	r5, .L1540+112
11704	str	r3, [r5]
11705	ldr	r5, .L1540+116
11706	str	r3, [r5]
11707	ldr	r5, .L1540+120
11708	str	r6, [r5]
11709	mov	r6, r1
11710	ldr	r5, .L1540+124
11711	str	r3, [r5]
11712	ldr	r5, .L1540+128
11713	str	r3, [r5]
11714	ldr	r5, .L1540+132
11715	ldr	lr, [r4, #40]
11716	str	r3, [r5]
11717	ldr	r3, .L1540+136
11718	ldr	r5, [r3]
11719	cmp	lr, r5
11720	mov	r5, r2
11721	it	hi
11722	strhi	lr, [r3]
11723	ldr	r3, .L1540+140
11724	ldr	r2, [r4, #36]
11725	ldr	r1, [r3]
11726	cmp	r2, r1
11727	it	hi
11728	strhi	r2, [r3]
11729	movw	r3, #65535
11730	cmp	ip, r3
11731	beq	.L1529
11732	ldr	r0, .L1540+88
11733	bl	make_superblock
11734.L1529:
11735	ldrh	r2, [r6]
11736	movw	r3, #65535
11737	cmp	r2, r3
11738	beq	.L1530
11739	ldr	r0, .L1540+96
11740	bl	make_superblock
11741.L1530:
11742	ldrh	r2, [r5]
11743	movw	r3, #65535
11744	cmp	r2, r3
11745	beq	.L1531
11746	ldr	r0, .L1540+100
11747	bl	make_superblock
11748.L1531:
11749	ldrh	r2, [r7]
11750	movw	r3, #65535
11751	cmp	r2, r3
11752	beq	.L1532
11753	ldr	r0, .L1540+92
11754	bl	make_superblock
11755.L1532:
11756	movs	r0, #0
11757	b	.L1513
11758.L1541:
11759	.align	2
11760.L1540:
11761	.word	.LANCHOR5
11762	.word	.LANCHOR138
11763	.word	.LANCHOR42
11764	.word	.LANCHOR139
11765	.word	.LANCHOR178
11766	.word	.LC1
11767	.word	.LANCHOR23
11768	.word	.LC38
11769	.word	.LANCHOR20
11770	.word	1179929683
11771	.word	.LANCHOR39
11772	.word	.LANCHOR1
11773	.word	.LANCHOR10
11774	.word	.LANCHOR179
11775	.word	.LANCHOR152
11776	.word	.LANCHOR19
11777	.word	.LANCHOR12
11778	.word	.LANCHOR34
11779	.word	.LANCHOR7
11780	.word	.LANCHOR37
11781	.word	.LANCHOR3
11782	.word	.LANCHOR171
11783	.word	.LANCHOR51
11784	.word	.LANCHOR144
11785	.word	.LANCHOR52
11786	.word	.LANCHOR53
11787	.word	.LANCHOR84
11788	.word	.LANCHOR85
11789	.word	.LANCHOR89
11790	.word	.LANCHOR88
11791	.word	.LANCHOR90
11792	.word	.LANCHOR91
11793	.word	.LANCHOR92
11794	.word	.LANCHOR87
11795	.word	.LANCHOR82
11796	.word	.LANCHOR83
11797	.word	.LANCHOR106
11798	.word	.LANCHOR114
11799	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
11800	.section	.text.FtlMapTblRecovery,"ax",%progbits
11801	.align	1
11802	.global	FtlMapTblRecovery
11803	.syntax unified
11804	.thumb
11805	.thumb_func
11806	.fpu softvfp
11807	.type	FtlMapTblRecovery, %function
11808FtlMapTblRecovery:
11809	@ args = 0, pretend = 0, frame = 32
11810	@ frame_needed = 0, uses_anonymous_args = 0
11811	ldr	r3, [r0, #24]
11812	movs	r1, #0
11813	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11814	sub	sp, sp, #40
11815	mov	r4, r0
11816	ldr	r8, [r0, #12]
11817	movs	r7, #0
11818	str	r3, [sp, #8]
11819	ldr	r3, [r0, #16]
11820	ldr	r6, .L1577
11821	str	r3, [sp, #24]
11822	ldrh	r3, [r0, #6]
11823	str	r3, [sp, #12]
11824	ldrh	r3, [r0, #8]
11825	ldr	r0, [sp, #8]
11826	str	r3, [sp, #16]
11827	ldr	r3, [sp, #12]
11828	lsls	r2, r3, #2
11829	bl	ftl_memset
11830	ldr	r3, .L1577+4
11831	str	r7, [r4, #32]
11832	str	r7, [r4, #28]
11833	ldr	r2, [r3]
11834	str	r3, [sp, #20]
11835	str	r2, [r6, #8]
11836	ldr	r2, .L1577+8
11837	ldr	fp, [r2]
11838	movw	r2, #65535
11839	str	fp, [r6, #12]
11840	strh	r2, [r4]	@ movhi
11841	strh	r2, [r4, #2]	@ movhi
11842	movs	r2, #1
11843	str	r2, [r4, #36]
11844.L1543:
11845	ldr	r3, [sp, #16]
11846	sxth	r5, r7
11847	cmp	r5, r3
11848	bge	.L1562
11849	ldr	r3, [sp, #16]
11850	subs	r3, r3, #1
11851	cmp	r5, r3
11852	bne	.L1544
11853	movs	r1, #1
11854	ldrh	r0, [r8, r5, lsl #1]
11855	bl	FtlGetLastWrittenPage
11856	sxth	r3, r0
11857	ldr	r6, .L1577
11858	add	r10, r8, r5, lsl #1
11859	strh	r7, [r4]	@ movhi
11860	str	r3, [sp, #16]
11861	movs	r7, #0
11862	ldr	r3, [sp, #24]
11863	adds	r0, r0, #1
11864	strh	r0, [r4, #2]	@ movhi
11865	ldr	r3, [r3, r5, lsl #2]
11866	str	r3, [r4, #28]
11867.L1545:
11868	ldr	r3, [sp, #16]
11869	sxth	r8, r7
11870	cmp	r8, r3
11871	ble	.L1548
11872.L1562:
11873	mov	r0, r4
11874	bl	ftl_free_no_use_map_blk
11875	ldr	r3, .L1577+12
11876	ldrh	r2, [r4, #2]
11877	ldrh	r3, [r3]
11878	cmp	r2, r3
11879	bne	.L1550
11880	mov	r0, r4
11881	bl	ftl_map_blk_alloc_new_blk
11882.L1550:
11883	mov	r0, r4
11884	bl	ftl_map_blk_gc
11885	mov	r0, r4
11886	bl	ftl_map_blk_gc
11887	movs	r0, #0
11888	add	sp, sp, #40
11889	@ sp needed
11890	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11891.L1548:
11892	ldrh	r2, [r10]
11893	ldr	r0, .L1577
11894	orr	r2, r8, r2, lsl #10
11895	str	r2, [r6, #4]
11896	movs	r2, #1
11897	mov	r1, r2
11898	bl	FlashReadPages
11899	ldr	r2, [r6, #12]
11900	ldr	r2, [r2, #12]
11901	str	r2, [sp, #20]
11902	cbz	r2, .L1546
11903	ldr	r3, .L1577+16
11904	ldr	r0, [r6, #8]
11905	ldrh	r1, [r3]
11906	bl	js_hash
11907	ldr	r2, [sp, #20]
11908	cmp	r2, r0
11909	beq	.L1546
11910	str	r0, [sp, #4]
11911	mov	r3, r8
11912	str	r2, [sp]
11913	mov	r2, r5
11914	ldr	r1, .L1577+20
11915	ldr	r0, .L1577+24
11916	bl	printf
11917	mov	r3, #-1
11918	str	r3, [r6]
11919.L1546:
11920	ldr	r3, [r6]
11921	adds	r3, r3, #1
11922	beq	.L1547
11923	ldrh	r3, [fp, #8]
11924	ldr	r2, [sp, #12]
11925	cmp	r2, r3
11926	bls	.L1547
11927	ldrh	r1, [fp]
11928	ldrh	r2, [r4, #4]
11929	cmp	r1, r2
11930	ittt	eq
11931	ldreq	r2, [r6, #4]
11932	ldreq	r1, [sp, #8]
11933	streq	r2, [r1, r3, lsl #2]
11934.L1547:
11935	adds	r7, r7, #1
11936	b	.L1545
11937.L1544:
11938	ldr	r3, [sp, #20]
11939	ldr	r10, .L1577+12
11940	ldrh	r2, [r8, r5, lsl #1]
11941	ldr	r3, [r3]
11942	ldr	r0, .L1577
11943	str	r3, [r6, #8]
11944	add	r3, r8, r5, lsl #1
11945	str	r3, [sp, #28]
11946	ldrh	r3, [r10]
11947	subs	r3, r3, #1
11948	orr	r3, r3, r2, lsl #10
11949	movs	r2, #1
11950	mov	r1, r2
11951	str	r3, [r6, #4]
11952	bl	FlashReadPages
11953	ldr	r3, [r6]
11954	adds	r3, r3, #1
11955	beq	.L1564
11956	ldrh	r2, [fp]
11957	ldrh	r3, [r4, #4]
11958	cmp	r2, r3
11959	bne	.L1564
11960	ldrh	r2, [fp, #8]
11961	movw	r3, #64245
11962	cmp	r2, r3
11963	beq	.L1552
11964.L1564:
11965	mov	r10, #0
11966.L1553:
11967	ldr	r2, .L1577+12
11968	sxth	r3, r10
11969	ldrh	r2, [r2]
11970	cmp	r3, r2
11971	bge	.L1560
11972	ldr	r2, [sp, #28]
11973	ldr	r0, .L1577
11974	str	r3, [sp, #36]
11975	ldrh	r2, [r2]
11976	orr	r2, r3, r2, lsl #10
11977	str	r2, [r6, #4]
11978	movs	r2, #1
11979	mov	r1, r2
11980	bl	FlashReadPages
11981	ldr	r2, [r6, #12]
11982	ldr	r2, [r2, #12]
11983	str	r2, [sp, #32]
11984	cbz	r2, .L1557
11985	ldr	r1, .L1577+16
11986	ldr	r0, [r6, #8]
11987	ldrh	r1, [r1]
11988	bl	js_hash
11989	ldr	r2, [sp, #32]
11990	cmp	r2, r0
11991	beq	.L1557
11992	str	r0, [sp, #4]
11993	str	r2, [sp]
11994	mov	r2, r5
11995	ldr	r3, [sp, #36]
11996	ldr	r1, .L1577+20
11997	ldr	r0, .L1577+28
11998	bl	printf
11999	mov	r3, #-1
12000	str	r3, [r6]
12001.L1557:
12002	ldr	r3, [r6]
12003	adds	r3, r3, #1
12004	beq	.L1558
12005	ldrh	r3, [fp, #8]
12006	ldr	r2, [sp, #12]
12007	cmp	r2, r3
12008	bls	.L1558
12009	ldrh	r1, [fp]
12010	ldrh	r2, [r4, #4]
12011	cmp	r1, r2
12012	ittt	eq
12013	ldreq	r2, [r6, #4]
12014	ldreq	r1, [sp, #8]
12015	streq	r2, [r1, r3, lsl #2]
12016.L1558:
12017	add	r10, r10, #1
12018	b	.L1553
12019.L1552:
12020	ldr	r3, [sp, #20]
12021	movs	r1, #0
12022	ldrh	r2, [r10]
12023	ldr	r0, [r3]
12024	add	lr, r2, #-1
12025.L1554:
12026	sxth	r3, r1
12027	cmp	r3, lr
12028	blt	.L1556
12029.L1560:
12030	adds	r7, r7, #1
12031	b	.L1543
12032.L1556:
12033	lsls	r5, r3, #3
12034	ldr	r3, [r0, r3, lsl #3]
12035	ldr	r2, [sp, #12]
12036	uxth	ip, r3
12037	cmp	r2, ip
12038	bls	.L1555
12039	add	r5, r5, r0
12040	ldr	r2, [sp, #8]
12041	ldr	r5, [r5, #4]
12042	str	r5, [r2, ip, lsl #2]
12043.L1555:
12044	adds	r1, r1, #1
12045	b	.L1554
12046.L1578:
12047	.align	2
12048.L1577:
12049	.word	.LANCHOR138
12050	.word	.LANCHOR106
12051	.word	.LANCHOR114
12052	.word	.LANCHOR20
12053	.word	.LANCHOR23
12054	.word	.LANCHOR180
12055	.word	.LC39
12056	.word	.LC40
12057	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
12058	.section	.text.FtlLoadVonderInfo,"ax",%progbits
12059	.align	1
12060	.global	FtlLoadVonderInfo
12061	.syntax unified
12062	.thumb
12063	.thumb_func
12064	.fpu softvfp
12065	.type	FtlLoadVonderInfo, %function
12066FtlLoadVonderInfo:
12067	@ args = 0, pretend = 0, frame = 0
12068	@ frame_needed = 0, uses_anonymous_args = 0
12069	push	{r3, lr}
12070	ldr	r3, .L1580
12071	ldr	r0, .L1580+4
12072	ldrh	r3, [r3]
12073	strh	r3, [r0, #10]	@ movhi
12074	movw	r3, #61574
12075	strh	r3, [r0, #4]	@ movhi
12076	ldr	r3, .L1580+8
12077	ldrh	r3, [r3]
12078	strh	r3, [r0, #8]	@ movhi
12079	ldr	r3, .L1580+12
12080	ldrh	r3, [r3]
12081	strh	r3, [r0, #6]	@ movhi
12082	ldr	r3, .L1580+16
12083	ldr	r3, [r3]
12084	str	r3, [r0, #12]
12085	ldr	r3, .L1580+20
12086	ldr	r3, [r3]
12087	str	r3, [r0, #16]
12088	ldr	r3, .L1580+24
12089	ldr	r3, [r3]
12090	str	r3, [r0, #20]
12091	ldr	r3, .L1580+28
12092	ldr	r3, [r3]
12093	str	r3, [r0, #24]
12094	bl	FtlMapTblRecovery
12095	movs	r0, #0
12096	pop	{r3, pc}
12097.L1581:
12098	.align	2
12099.L1580:
12100	.word	.LANCHOR27
12101	.word	.LANCHOR161
12102	.word	.LANCHOR35
12103	.word	.LANCHOR28
12104	.word	.LANCHOR36
12105	.word	.LANCHOR122
12106	.word	.LANCHOR121
12107	.word	.LANCHOR123
12108	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
12109	.section	.text.FtlLoadMapInfo,"ax",%progbits
12110	.align	1
12111	.global	FtlLoadMapInfo
12112	.syntax unified
12113	.thumb
12114	.thumb_func
12115	.fpu softvfp
12116	.type	FtlLoadMapInfo, %function
12117FtlLoadMapInfo:
12118	@ args = 0, pretend = 0, frame = 0
12119	@ frame_needed = 0, uses_anonymous_args = 0
12120	push	{r3, lr}
12121	bl	FtlL2PDataInit
12122	ldr	r0, .L1583
12123	bl	FtlMapTblRecovery
12124	movs	r0, #0
12125	pop	{r3, pc}
12126.L1584:
12127	.align	2
12128.L1583:
12129	.word	.LANCHOR129
12130	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
12131	.section	.text.FtlSysBlkInit,"ax",%progbits
12132	.align	1
12133	.global	FtlSysBlkInit
12134	.syntax unified
12135	.thumb
12136	.thumb_func
12137	.fpu softvfp
12138	.type	FtlSysBlkInit, %function
12139FtlSysBlkInit:
12140	@ args = 0, pretend = 0, frame = 0
12141	@ frame_needed = 0, uses_anonymous_args = 0
12142	push	{r3, r4, r5, r6, r7, lr}
12143	movs	r3, #0
12144	ldr	r4, .L1598
12145	strh	r3, [r4]	@ movhi
12146	ldr	r3, .L1598+4
12147	ldrh	r0, [r3]
12148	bl	FtlFreeSysBlkQueueInit
12149	bl	FtlScanSysBlk
12150	ldr	r3, .L1598+8
12151	ldrh	r2, [r3]
12152	movw	r3, #65535
12153	cmp	r2, r3
12154	bne	.L1586
12155.L1588:
12156	mov	r6, #-1
12157.L1585:
12158	mov	r0, r6
12159	pop	{r3, r4, r5, r6, r7, pc}
12160.L1586:
12161	bl	FtlLoadSysInfo
12162	mov	r6, r0
12163	cmp	r0, #0
12164	bne	.L1588
12165	bl	FtlLoadMapInfo
12166	bl	FtlLoadVonderInfo
12167	bl	Ftl_load_ext_data
12168	bl	FtlLoadEctTbl
12169	bl	FtlFreeSysBLkSort
12170	bl	SupperBlkListInit
12171	bl	FtlPowerLostRecovery
12172	movs	r0, #1
12173	bl	FtlUpdateVaildLpn
12174	ldr	r3, .L1598+12
12175	movs	r0, #12
12176	ldrh	r1, [r3]
12177	ldr	r3, .L1598+16
12178	ldr	r2, [r3]
12179	mov	r3, r6
12180.L1589:
12181	cmp	r3, r1
12182	bge	.L1594
12183	mla	r5, r0, r3, r2
12184	ldr	r5, [r5, #4]
12185	cmp	r5, #0
12186	bge	.L1590
12187.L1594:
12188	ldr	r0, .L1598+20
12189	cmp	r3, r1
12190	ldr	r2, [r0]
12191	add	r2, r2, #32
12192	str	r2, [r0]
12193	bge	.L1596
12194.L1591:
12195	ldr	r5, .L1598+24
12196	ldr	r4, .L1598+28
12197	mov	r0, r5
12198	bl	FtlSuperblockPowerLostFix
12199	mov	r0, r4
12200	bl	FtlSuperblockPowerLostFix
12201	ldr	r3, .L1598+32
12202	ldrh	r1, [r5]
12203	ldrh	r0, [r5, #4]
12204	ldr	r2, [r3]
12205	ldrh	r3, [r2, r1, lsl #1]
12206	subs	r3, r3, r0
12207	ldr	r0, .L1598+36
12208	strh	r3, [r2, r1, lsl #1]	@ movhi
12209	ldrh	r7, [r4, #4]
12210	ldrh	r3, [r0]
12211	strh	r3, [r5, #2]	@ movhi
12212	movs	r3, #0
12213	strb	r3, [r5, #6]
12214	strh	r3, [r5, #4]	@ movhi
12215	ldrh	r5, [r4]
12216	ldrh	r1, [r2, r5, lsl #1]
12217	subs	r1, r1, r7
12218	strh	r1, [r2, r5, lsl #1]	@ movhi
12219	ldrh	r2, [r0]
12220	strb	r3, [r4, #6]
12221	strh	r3, [r4, #4]	@ movhi
12222	strh	r2, [r4, #2]	@ movhi
12223	ldr	r2, .L1598+40
12224	ldrh	r3, [r2, #30]
12225	adds	r3, r3, #1
12226	strh	r3, [r2, #30]	@ movhi
12227	bl	l2p_flush
12228	bl	FtlVpcTblFlush
12229.L1597:
12230	bl	FtlVpcTblFlush
12231	b	.L1585
12232.L1590:
12233	adds	r3, r3, #1
12234	b	.L1589
12235.L1596:
12236	ldrh	r3, [r4]
12237	cmp	r3, #0
12238	bne	.L1591
12239	bl	l2p_flush
12240	b	.L1597
12241.L1599:
12242	.align	2
12243.L1598:
12244	.word	.LANCHOR156
12245	.word	.LANCHOR4
12246	.word	.LANCHOR139
12247	.word	.LANCHOR33
12248	.word	.LANCHOR55
12249	.word	.LANCHOR83
12250	.word	.LANCHOR51
12251	.word	.LANCHOR52
12252	.word	.LANCHOR42
12253	.word	.LANCHOR19
12254	.word	.LANCHOR39
12255	.size	FtlSysBlkInit, .-FtlSysBlkInit
12256	.section	.text.ftl_low_format,"ax",%progbits
12257	.align	1
12258	.global	ftl_low_format
12259	.syntax unified
12260	.thumb
12261	.thumb_func
12262	.fpu softvfp
12263	.type	ftl_low_format, %function
12264ftl_low_format:
12265	@ args = 0, pretend = 0, frame = 16
12266	@ frame_needed = 0, uses_anonymous_args = 0
12267	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
12268	movs	r3, #0
12269	ldr	r6, .L1624
12270	ldr	r2, .L1624+4
12271	ldr	r5, .L1624+8
12272	ldrh	r0, [r6]
12273	str	r3, [r2]
12274	str	r3, [r5]
12275	bl	FtlFreeSysBlkQueueInit
12276	bl	FtlLoadBbt
12277	cbz	r0, .L1601
12278	bl	FtlMakeBbt
12279.L1601:
12280	ldr	r3, .L1624+12
12281	ldr	r2, .L1624+16
12282	ldr	ip, .L1624+100
12283	ldrh	r1, [r3]
12284	ldr	r4, [r2]
12285	ldr	r2, .L1624+20
12286	str	r3, [sp, #4]
12287	lsls	r1, r1, #7
12288	ldr	r7, [r2]
12289	movs	r2, #0
12290.L1602:
12291	uxth	r3, r2
12292	adds	r2, r2, #1
12293	cmp	r3, r1
12294	blt	.L1603
12295	ldr	r3, .L1624+24
12296	movs	r7, #0
12297	ldr	r10, .L1624+104
12298	ldrh	r4, [r3]
12299	mov	r8, r3
12300	mov	fp, r10
12301.L1604:
12302	ldrh	r3, [r10]
12303	cmp	r3, r4
12304	bhi	.L1605
12305	ldr	r4, .L1624+28
12306	subs	r3, r7, #2
12307	ldrh	r1, [r4]
12308	cmp	r3, r1, lsl #1
12309	bgt	.L1606
12310.L1610:
12311	movs	r6, #0
12312	mov	r7, r6
12313.L1607:
12314	ldrh	r3, [r8]
12315	uxth	r0, r6
12316	adds	r6, r6, #1
12317	cmp	r3, r0
12318	bhi	.L1611
12319	ldrh	r2, [fp]
12320	ldr	r3, .L1624+32
12321	ldrh	r4, [r4]
12322	ldr	r6, .L1624+36
12323	str	r2, [r3]
12324	ldr	r3, .L1624+40
12325	mov	r1, r4
12326	ldr	r2, [r3]
12327	mov	r0, r2
12328	str	r2, [sp, #12]
12329	bl	__aeabi_uidiv
12330	ubfx	r10, r0, #5, #16
12331	mov	r3, r0
12332	str	r0, [r6]
12333	add	r1, r10, #36
12334	ldr	r0, .L1624+44
12335	strh	r1, [r0]	@ movhi
12336	movs	r1, #24
12337	muls	r1, r4, r1
12338	str	r0, [sp]
12339	cmp	r7, r1
12340	ble	.L1612
12341	ldr	r2, [sp, #12]
12342	mov	r1, r4
12343	str	r3, [sp, #8]
12344	subs	r0, r2, r7
12345	bl	__aeabi_uidiv
12346	ldr	r3, [sp]
12347	str	r0, [r6]
12348	lsrs	r0, r0, #5
12349	adds	r0, r0, #24
12350	strh	r0, [r3]	@ movhi
12351	ldr	r3, [sp, #8]
12352.L1612:
12353	ldr	r2, .L1624+48
12354	ldrh	r2, [r2]
12355	cbz	r2, .L1614
12356	ldr	r1, .L1624+44
12357	ldrh	r0, [r1]
12358	add	r0, r0, r2, lsr #1
12359	strh	r0, [r1]	@ movhi
12360	mul	r0, r4, r2
12361	cmp	r7, r0
12362	itttt	lt
12363	addlt	r2, r2, #32
12364	strlt	r3, [r6]
12365	addlt	r2, r2, r10
12366	strhlt	r2, [r1]	@ movhi
12367.L1614:
12368	ldr	r3, [sp]
12369	ldr	r7, .L1624+52
12370	ldr	r10, .L1624+108
12371	ldrh	r2, [r3]
12372	ldr	r3, [r6]
12373	subs	r3, r3, r2
12374	muls	r4, r3, r4
12375	ldr	r3, .L1624+56
12376	ldrh	r3, [r3]
12377	str	r4, [r7]
12378	muls	r4, r3, r4
12379	ldr	r3, [sp, #4]
12380	ldrh	r3, [r3]
12381	str	r4, [r6]
12382	ldr	r6, .L1624+60
12383	muls	r4, r3, r4
12384	ldr	r3, .L1624+64
12385	str	r4, [r3]
12386	movw	r4, #65535
12387	bl	FtlBbmTblFlush
12388	ldrh	r2, [fp]
12389	movs	r1, #0
12390	ldr	r0, [r10]
12391	lsls	r2, r2, #1
12392	bl	ftl_memset
12393	ldr	r2, .L1624+68
12394	movs	r3, #0
12395	strh	r3, [r6, #2]	@ movhi
12396	movs	r1, #255
12397	strb	r3, [r6, #6]
12398	str	r3, [r2]
12399	ldr	r2, .L1624+72
12400	strh	r3, [r6]	@ movhi
12401	strh	r3, [r2, #2]	@ movhi
12402	strb	r3, [r2, #6]
12403	strb	r3, [r2, #8]
12404	movs	r3, #1
12405	strh	r4, [r2]	@ movhi
12406	ldrh	r2, [r8]
12407	mov	r8, r10
12408	strb	r3, [r6, #8]
12409	mov	r10, r6
12410	ldr	r3, .L1624+76
12411	lsrs	r2, r2, #3
12412	ldr	r0, [r3]
12413	bl	ftl_memset
12414.L1616:
12415	mov	r0, r10
12416	bl	make_superblock
12417	ldrb	r3, [r6, #7]	@ zero_extendqisi2
12418	ldrh	r2, [r6]
12419	cmp	r3, #0
12420	bne	.L1617
12421	ldr	r3, [r8]
12422	strh	r4, [r3, r2, lsl #1]	@ movhi
12423	ldrh	r3, [r6]
12424	adds	r3, r3, #1
12425	strh	r3, [r6]	@ movhi
12426	b	.L1616
12427.L1603:
12428	mvns	r0, r3
12429	orr	r0, r3, r0, lsl #16
12430	str	r0, [r4, r3, lsl #2]
12431	str	ip, [r7, r3, lsl #2]
12432	b	.L1602
12433.L1605:
12434	mov	r0, r4
12435	movs	r1, #1
12436	bl	FtlLowFormatEraseBlock
12437	adds	r4, r4, #1
12438	add	r7, r7, r0
12439	uxth	r7, r7
12440	uxth	r4, r4
12441	b	.L1604
12442.L1606:
12443	mov	r0, r7
12444	bl	__aeabi_uidiv
12445	ldr	r3, .L1624+80
12446	ldr	r3, [r3]
12447	add	r0, r0, r3
12448	uxth	r0, r0
12449	bl	FtlSysBlkNumInit
12450	ldrh	r0, [r6]
12451	bl	FtlFreeSysBlkQueueInit
12452	ldrh	r6, [r8]
12453.L1608:
12454	ldrh	r3, [fp]
12455	cmp	r3, r6
12456	bls	.L1610
12457	mov	r0, r6
12458	movs	r1, #1
12459	adds	r6, r6, #1
12460	bl	FtlLowFormatEraseBlock
12461	uxth	r6, r6
12462	b	.L1608
12463.L1611:
12464	movs	r1, #0
12465	bl	FtlLowFormatEraseBlock
12466	add	r7, r7, r0
12467	uxth	r7, r7
12468	b	.L1607
12469.L1617:
12470	ldr	r3, [r5]
12471	ldrh	r1, [r6, #4]
12472	ldr	r4, .L1624+84
12473	str	r3, [r6, #12]
12474	adds	r3, r3, #1
12475	str	r3, [r5]
12476	ldr	r3, [r8]
12477	mov	r10, r4
12478	strh	r1, [r3, r2, lsl #1]	@ movhi
12479	movs	r3, #0
12480	strh	r3, [r4, #2]	@ movhi
12481	strb	r3, [r4, #6]
12482	ldrh	r3, [r6]
12483	movw	r6, #65535
12484	adds	r3, r3, #1
12485	strh	r3, [r4]	@ movhi
12486	movs	r3, #1
12487	strb	r3, [r4, #8]
12488.L1618:
12489	mov	r0, r10
12490	bl	make_superblock
12491	ldrb	r3, [r4, #7]	@ zero_extendqisi2
12492	ldrh	r2, [r4]
12493	cbnz	r3, .L1619
12494	ldr	r3, [r8]
12495	strh	r6, [r3, r2, lsl #1]	@ movhi
12496	ldrh	r3, [r4]
12497	adds	r3, r3, #1
12498	strh	r3, [r4]	@ movhi
12499	b	.L1618
12500.L1619:
12501	ldr	r3, [r5]
12502	ldrh	r1, [r4, #4]
12503	str	r3, [r4, #12]
12504	adds	r3, r3, #1
12505	str	r3, [r5]
12506	movw	r4, #65535
12507	ldr	r3, [r8]
12508	strh	r1, [r3, r2, lsl #1]	@ movhi
12509	ldr	r3, .L1624+88
12510	strh	r4, [r3]	@ movhi
12511	bl	FtlFreeSysBlkQueueOut
12512	ldr	r3, .L1624+92
12513	movs	r2, #0
12514	strh	r2, [r3, #2]	@ movhi
12515	ldr	r2, [r7]
12516	strh	r0, [r3]	@ movhi
12517	strh	r4, [r3, #4]	@ movhi
12518	strh	r2, [r3, #6]	@ movhi
12519	ldr	r2, [r5]
12520	str	r2, [r3, #8]
12521	adds	r2, r2, #1
12522	str	r2, [r5]
12523	bl	FtlVpcTblFlush
12524	bl	FtlSysBlkInit
12525	cbnz	r0, .L1620
12526	ldr	r3, .L1624+96
12527	movs	r2, #1
12528	str	r2, [r3]
12529.L1620:
12530	movs	r0, #0
12531	add	sp, sp, #16
12532	@ sp needed
12533	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12534.L1625:
12535	.align	2
12536.L1624:
12537	.word	.LANCHOR4
12538	.word	.LANCHOR83
12539	.word	.LANCHOR82
12540	.word	.LANCHOR12
12541	.word	.LANCHOR109
12542	.word	.LANCHOR110
12543	.word	.LANCHOR5
12544	.word	.LANCHOR3
12545	.word	.LANCHOR99
12546	.word	.LANCHOR152
12547	.word	.LANCHOR7
12548	.word	.LANCHOR171
12549	.word	.LANCHOR15
12550	.word	.LANCHOR179
12551	.word	.LANCHOR19
12552	.word	.LANCHOR51
12553	.word	.LANCHOR34
12554	.word	.LANCHOR59
12555	.word	.LANCHOR144
12556	.word	.LANCHOR1
12557	.word	.LANCHOR31
12558	.word	.LANCHOR52
12559	.word	.LANCHOR53
12560	.word	.LANCHOR139
12561	.word	.LANCHOR166
12562	.word	168778952
12563	.word	.LANCHOR6
12564	.word	.LANCHOR42
12565	.size	ftl_low_format, .-ftl_low_format
12566	.section	.text.sftl_init,"ax",%progbits
12567	.align	1
12568	.global	sftl_init
12569	.syntax unified
12570	.thumb
12571	.thumb_func
12572	.fpu softvfp
12573	.type	sftl_init, %function
12574sftl_init:
12575	@ args = 0, pretend = 0, frame = 0
12576	@ frame_needed = 0, uses_anonymous_args = 0
12577	push	{r4, r5, r6, lr}
12578	mov	r3, #-1
12579	ldr	r4, .L1643
12580	movs	r6, #0
12581	ldr	r1, .L1643+4
12582	ldr	r0, .L1643+8
12583	str	r3, [r4]
12584	bl	printf
12585	ldr	r0, .L1643+12
12586	bl	FtlConstantsInit
12587	ldr	r5, .L1643+16
12588	bl	FtlMemInit
12589	bl	FtlVariablesInit
12590	ldr	r3, .L1643+20
12591	ldrh	r0, [r3]
12592	bl	FtlFreeSysBlkQueueInit
12593.L1627:
12594	bl	FtlLoadBbt
12595	cbz	r0, .L1628
12596.L1642:
12597	ldr	r3, [r5]
12598	cmp	r3, #1
12599	bne	.L1627
12600	str	r6, [r5]
12601	bl	ftl_low_format
12602	b	.L1627
12603.L1628:
12604	bl	FtlSysBlkInit
12605	cmp	r0, #0
12606	bne	.L1642
12607	movs	r3, #1
12608	str	r3, [r4]
12609	ldr	r3, .L1643+24
12610	ldrh	r3, [r3]
12611	cmp	r3, #15
12612	bhi	.L1640
12613	movw	r4, #8129
12614.L1634:
12615	movs	r1, #1
12616	movs	r0, #0
12617	bl	rk_ftl_garbage_collect
12618	subs	r4, r4, #1
12619	bne	.L1634
12620.L1640:
12621	movs	r0, #0
12622	pop	{r4, r5, r6, pc}
12623.L1644:
12624	.align	2
12625.L1643:
12626	.word	.LANCHOR166
12627	.word	.LC41
12628	.word	.LC34
12629	.word	.LANCHOR0
12630	.word	.LANCHOR181
12631	.word	.LANCHOR4
12632	.word	.LANCHOR48
12633	.size	sftl_init, .-sftl_init
12634	.section	.text.FtlWriteToIDB,"ax",%progbits
12635	.align	1
12636	.global	FtlWriteToIDB
12637	.syntax unified
12638	.thumb
12639	.thumb_func
12640	.fpu softvfp
12641	.type	FtlWriteToIDB, %function
12642FtlWriteToIDB:
12643	@ args = 0, pretend = 0, frame = 104
12644	@ frame_needed = 0, uses_anonymous_args = 0
12645	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12646	add	r8, r1, r0
12647	add	r10, r8, #-1
12648	sub	sp, sp, #112
12649	cmp	r10, #63
12650	mov	r4, r0
12651	mov	r6, r1
12652	mov	r7, r2
12653	ldr	r5, .L1715
12654	bls	.L1646
12655	cmp	r0, #576
12656	bcc	.L1647
12657.L1646:
12658	ldr	r3, [r5]
12659	cbnz	r3, .L1648
12660.L1714:
12661	movs	r4, #0
12662	b	.L1645
12663.L1648:
12664	ldr	r3, .L1715+4
12665	ldr	r3, [r3]
12666	ldr	r2, [r3]
12667	str	r3, [sp, #12]
12668	ldr	r3, .L1715+8
12669	cmp	r2, r3
12670	bne	.L1650
12671	ldr	r3, .L1715+12
12672	movs	r2, #0
12673	ldrh	r1, [r3, #10]
12674	ldr	r3, [sp, #12]
12675	add	r0, r3, #262144
12676	movw	r3, #65535
12677.L1654:
12678	ldr	r4, [r0, #-4]
12679	cbnz	r4, .L1651
12680	ldr	r4, [sp, #12]
12681	subs	r3, r3, #1
12682	ldr	r4, [r4, r2, lsl #2]
12683	adds	r2, r2, #1
12684	cmp	r2, #4096
12685	it	hi
12686	movhi	r2, #0
12687	cmp	r3, #4096
12688	str	r4, [r0, #-4]!
12689	bne	.L1654
12690	mov	r3, #512
12691	b	.L1711
12692.L1651:
12693	adds	r3, r3, #127
12694	lsrs	r3, r3, #7
12695.L1711:
12696	str	r3, [sp, #16]
12697	lsls	r1, r1, #2
12698	ldr	r3, [sp, #16]
12699	uxth	r1, r1
12700	ldr	r4, .L1715+16
12701	adds	r0, r3, #4
12702	bl	__aeabi_uidiv
12703	adds	r3, r0, #1
12704	str	r3, [sp, #24]
12705	ldr	r3, [sp, #16]
12706	lsls	r3, r3, #7
12707	str	r3, [sp, #36]
12708	movs	r3, #0
12709	mov	r10, r3
12710	str	r3, [sp, #20]
12711.L1676:
12712	ldr	r3, .L1715+20
12713	mov	r2, #512
12714	movs	r1, #0
12715	ldr	r0, [r3]
12716	bl	memset
12717	ldr	r3, .L1715+12
12718	ldrh	r6, [r3, #10]
12719	ldr	r3, [r4, #16]
12720	mul	fp, r10, r6
12721	cmp	r3, #0
12722	beq	.L1684
12723	ldr	r3, [r4, #20]
12724	cmp	r3, #0
12725	ite	eq
12726	moveq	r3, #6
12727	movne	r3, #9
12728.L1712:
12729	str	r3, [sp, #28]
12730	mov	r1, fp
12731	ldr	r3, .L1715+16
12732	movs	r0, #0
12733	ldr	r3, [r3, #4]
12734	blx	r3
12735	ldr	r3, [sp, #24]
12736	cmp	r3, #1
12737	beq	.L1656
12738	ldr	r3, .L1715+16
12739	add	r1, r6, fp
12740	movs	r0, #0
12741	ldr	r3, [r3, #4]
12742	blx	r3
12743.L1656:
12744	ldr	r3, [sp, #28]
12745	cmp	r3, #9
12746	bne	.L1686
12747	ldr	r3, .L1715+20
12748	mov	r2, #1024
12749	movs	r1, #0
12750	ldr	r5, [r3]
12751	mov	r0, r5
12752	bl	ftl_memset
12753	movs	r2, #4
12754	ldr	r3, .L1715+24
12755	strb	r2, [r5, #17]
12756	movs	r1, #12
12757	ldr	r2, .L1715+12
12758	adds	r0, r5, r1
12759	str	r3, [r5]
12760	movs	r3, #0
12761	str	r1, [r5, #4]
12762	ldrh	r2, [r2, #10]
12763	str	r3, [r5, #12]
12764	strb	r3, [r5, #16]
12765	strh	r2, [r5, #18]	@ movhi
12766	movs	r2, #16
12767	strb	r3, [r5, #20]
12768	strb	r2, [r5, #21]
12769	strh	r3, [r5, #22]	@ movhi
12770	bl	js_hash
12771	str	r0, [r5, #8]
12772.L1657:
12773	ldr	r3, [sp, #24]
12774	mov	r8, fp
12775	muls	r3, r6, r3
12776	movs	r6, #0
12777	str	r3, [sp, #40]
12778	ldr	r3, [sp, #12]
12779	str	r3, [sp, #32]
12780.L1658:
12781	ldr	r3, [sp, #40]
12782	cmp	r6, r3
12783	beq	.L1665
12784	ldr	r3, [sp, #28]
12785	cmp	r3, #9
12786	itet	ne
12787	addne	r3, fp, r6
12788	addeq	r3, r8, #1
12789	lslne	r3, r3, #2
12790	str	r3, [sp, #48]
12791	movw	r3, #61424
12792	str	r3, [sp, #52]
12793	cmp	r6, #0
12794	bne	.L1661
12795	ldr	r3, [sp, #28]
12796	cmp	r3, #9
12797	bne	.L1661
12798	ldr	r3, [r4, #16]
12799	movs	r0, #70
12800	blx	r3
12801	add	r3, sp, #48
12802	mov	r2, r5
12803	mov	r1, fp
12804	mov	r0, r6
12805	ldr	r7, [r4, #8]
12806	blx	r7
12807	ldr	r2, .L1715+12
12808	str	r0, [sp, #44]
12809	ldr	r3, [r4, #16]
12810	ldrb	r0, [r2, #22]	@ zero_extendqisi2
12811	blx	r3
12812	ldr	r2, [sp, #44]
12813	adds	r2, r2, #1
12814	bne	.L1662
12815.L1665:
12816	ldr	r3, .L1715+20
12817	ldr	r2, [r4, #16]
12818	ldr	r6, [r3]
12819	ldr	r3, .L1715+12
12820	ldrb	r3, [r3, #14]	@ zero_extendqisi2
12821	str	r3, [sp, #28]
12822	ldr	r3, .L1715+12
12823	ldrh	r3, [r3, #10]
12824	mul	r8, r10, r3
12825	cmp	r2, #0
12826	bne	.L1663
12827	mov	fp, #6
12828.L1664:
12829	ldr	r2, [sp, #24]
12830	movs	r5, #0
12831	muls	r3, r2, r3
12832	str	r3, [sp, #32]
12833.L1667:
12834	ldr	r3, [sp, #32]
12835	cmp	r5, r3
12836	beq	.L1671
12837	cmp	r5, #0
12838	bne	.L1668
12839	cmp	fp, #9
12840	bne	.L1668
12841	ldr	r3, [r4, #16]
12842	movs	r0, #70
12843	blx	r3
12844	ldr	r3, [r4, #20]
12845	movs	r0, #2
12846	blx	r3
12847	mov	r2, r6
12848	mov	r1, r8
12849	add	r3, sp, #48
12850	mov	r0, r5
12851	ldr	r7, [r4, #12]
12852	blx	r7
12853	ldr	r3, [r4, #20]
12854	ldr	r0, [sp, #28]
12855	blx	r3
12856	ldr	r2, .L1715+12
12857	ldr	r3, [r4, #16]
12858	ldrb	r0, [r2, #22]	@ zero_extendqisi2
12859	blx	r3
12860	ldr	r3, [r6]
12861	ldr	r2, .L1715+24
12862	cmp	r3, r2
12863	beq	.L1669
12864.L1671:
12865	ldr	r3, .L1715+20
12866	movs	r5, #0
12867	ldr	r1, [sp, #12]
12868	ldr	r0, [r3]
12869.L1670:
12870	mov	r8, r1
12871	ldr	r2, [r0, r5, lsl #2]
12872	ldr	r3, [r8]
12873	lsls	r6, r5, #2
12874	adds	r1, r1, #4
12875	cmp	r2, r3
12876	beq	.L1673
12877	mov	r2, #512
12878	movs	r1, #0
12879	bl	memset
12880	ldr	r3, .L1715+20
12881	mov	r1, r10
12882	ldr	r0, .L1715+28
12883	ldr	r2, [r3]
12884	str	r5, [sp]
12885	ldr	r3, [r8]
12886	ldr	r2, [r2, r6]
12887	bl	printf
12888	ldr	r3, .L1715+12
12889	movs	r0, #0
12890	ldrh	r1, [r3, #10]
12891	ldr	r3, [r4, #4]
12892	mul	r1, r10, r1
12893	blx	r3
12894.L1674:
12895	ldr	r3, [sp, #24]
12896	add	r10, r10, r3
12897	cmp	r10, #15
12898	bls	.L1676
12899	ldr	r3, [sp, #20]
12900	cbnz	r3, .L1677
12901.L1650:
12902	mov	r3, #-1
12903	str	r3, [sp, #16]
12904.L1677:
12905	ldr	r3, .L1715
12906	movs	r2, #0
12907	ldr	r4, [sp, #16]
12908	str	r2, [r3]
12909	ldr	r3, .L1715+4
12910	ldr	r0, [r3]
12911	bl	free
12912	ldr	r3, .L1715+20
12913	ldr	r0, [r3]
12914	bl	free
12915.L1645:
12916	mov	r0, r4
12917	add	sp, sp, #112
12918	@ sp needed
12919	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12920.L1684:
12921	movs	r3, #6
12922	b	.L1712
12923.L1686:
12924	movs	r5, #0
12925	b	.L1657
12926.L1661:
12927	add	r3, sp, #48
12928	ldr	r2, [sp, #32]
12929	mov	r1, r8
12930	movs	r0, #0
12931	ldr	r7, [r4, #8]
12932	blx	r7
12933	adds	r0, r0, #1
12934	beq	.L1665
12935	ldr	r3, [sp, #32]
12936	add	r3, r3, #2048
12937	str	r3, [sp, #32]
12938.L1662:
12939	adds	r6, r6, #1
12940	add	r8, r8, #1
12941	b	.L1658
12942.L1663:
12943	ldr	r2, [r4, #20]
12944	cmp	r2, #0
12945	ite	eq
12946	moveq	fp, #6
12947	movne	fp, #9
12948	b	.L1664
12949.L1668:
12950	add	r3, sp, #48
12951	mov	r2, r6
12952	add	r1, r8, r5
12953	movs	r0, #0
12954	ldr	r7, [r4, #12]
12955	blx	r7
12956	adds	r0, r0, #1
12957	beq	.L1671
12958	ldr	r2, [sp, #52]
12959	movw	r3, #61424
12960	cmp	r2, r3
12961	bne	.L1671
12962	add	r6, r6, #2048
12963.L1669:
12964	adds	r5, r5, #1
12965	b	.L1667
12966.L1716:
12967	.align	2
12968.L1715:
12969	.word	.LANCHOR182
12970	.word	.LANCHOR183
12971	.word	-52655045
12972	.word	.LANCHOR0
12973	.word	.LANCHOR78
12974	.word	.LANCHOR184
12975	.word	1179535694
12976	.word	.LC42
12977.L1673:
12978	ldr	r3, [sp, #36]
12979	adds	r5, r5, #1
12980	cmp	r5, r3
12981	bne	.L1670
12982	ldr	r3, [sp, #20]
12983	adds	r3, r3, #1
12984	cmp	r3, #5
12985	str	r3, [sp, #20]
12986	bls	.L1674
12987	b	.L1677
12988.L1647:
12989	cmp	r0, #64
12990	bne	.L1678
12991	ldr	fp, .L1717+4
12992	mov	r0, #262144
12993	bl	ftl_malloc
12994	str	r0, [fp]
12995	mov	r0, #262144
12996	bl	ftl_malloc
12997	ldr	r3, .L1717
12998	str	r0, [r3]
12999	ldr	r3, [fp]
13000	cbz	r3, .L1679
13001	cbz	r0, .L1679
13002	movs	r2, #1
13003	movs	r1, #0
13004	str	r2, [r5]
13005	mov	r0, r3
13006	mov	r2, #262144
13007	bl	ftl_memset
13008.L1678:
13009	ldr	r3, [r5]
13010	cmp	r3, #0
13011	beq	.L1714
13012	ldr	r3, .L1717+4
13013	cmp	r4, #63
13014	iteee	hi
13015	ldrhi	r5, .L1717+8
13016	rsbls	r4, r4, #64
13017	subls	r6, r6, r4
13018	addls	r7, r7, r4, lsl #9
13019	ldr	r1, [r3]
13020	mov	r2, #262144
13021	it	hi
13022	addhi	r5, r5, r4
13023	ldr	r0, .L1717+12
13024	ite	ls
13025	movls	r5, r1
13026	addhi	r5, r1, r5, lsl #9
13027	cmp	r10, #576
13028	itt	cs
13029	subcs	r6, r6, r8
13030	subcs	r6, r6, #446
13031	mov	r3, r5
13032	str	r6, [sp]
13033	bl	printf
13034	lsls	r2, r6, #9
13035	mov	r1, r7
13036	mov	r0, r5
13037	bl	ftl_memcpy
13038	b	.L1714
13039.L1679:
13040	ldr	r1, .L1717+16
13041	ldr	r0, .L1717+20
13042	bl	printf
13043	b	.L1678
13044.L1718:
13045	.align	2
13046.L1717:
13047	.word	.LANCHOR184
13048	.word	.LANCHOR183
13049	.word	8388544
13050	.word	.LC44
13051	.word	.LANCHOR185
13052	.word	.LC43
13053	.size	FtlWriteToIDB, .-FtlWriteToIDB
13054	.section	.text.sftl_write,"ax",%progbits
13055	.align	1
13056	.global	sftl_write
13057	.syntax unified
13058	.thumb
13059	.thumb_func
13060	.fpu softvfp
13061	.type	sftl_write, %function
13062sftl_write:
13063	@ args = 0, pretend = 0, frame = 0
13064	@ frame_needed = 0, uses_anonymous_args = 0
13065	push	{r4, r5, r6, lr}
13066	mov	r5, r1
13067	mov	r6, r2
13068	mov	r4, r0
13069	bl	FtlWriteToIDB
13070	mov	r3, r6
13071	mov	r2, r5
13072	mov	r1, r4
13073	movs	r0, #0
13074	pop	{r4, r5, r6, lr}
13075	b	FtlWrite
13076	.size	sftl_write, .-sftl_write
13077	.global	g_nand_ops
13078	.global	g_nand_phy_info
13079	.global	gc_ink_free_return_value
13080	.global	check_vpc_table
13081	.global	FtlUpdateVaildLpnCount
13082	.global	g_ect_tbl_power_up_flush
13083	.global	power_up_flag
13084	.global	low_format_en
13085	.global	gFtlInitStatus
13086	.global	DeviceCapacity
13087	.global	g_power_lost_recovery_flag
13088	.global	c_mlc_erase_count_value
13089	.global	g_recovery_ppa_tbl
13090	.global	g_recovery_page_min_ver
13091	.global	g_recovery_page_num
13092	.global	sftl_nand_check_spare_buf
13093	.global	sftl_temp_buf
13094	.global	sftl_nand_check_buf
13095	.global	g_cur_erase_blk
13096	.global	g_gc_skip_write_count
13097	.global	g_gc_head_data_block_count
13098	.global	g_gc_head_data_block
13099	.global	g_ftl_nand_free_count
13100	.global	g_in_swl_replace
13101	.global	g_in_gc_progress
13102	.global	g_max_erase_count
13103	.global	g_totle_sys_slc_erase_count
13104	.global	g_totle_slc_erase_count
13105	.global	g_min_erase_count
13106	.global	g_totle_avg_erase_count
13107	.global	g_totle_mlc_erase_count
13108	.global	g_totle_l2p_write_count
13109	.global	g_totle_cache_write_count
13110	.global	g_tmp_data_superblock_id
13111	.global	g_totle_read_page_count
13112	.global	g_totle_discard_page_count
13113	.global	g_totle_read_sector
13114	.global	g_totle_write_sector
13115	.global	g_totle_write_page_count
13116	.global	g_totle_gc_page_count
13117	.global	g_gc_blk_index
13118	.global	g_gc_merge_free_blk_threshold
13119	.global	g_gc_free_blk_threshold
13120	.global	g_gc_bad_block_temp_tbl
13121	.global	g_gc_bad_block_gc_index
13122	.global	g_gc_bad_block_temp_num
13123	.global	g_gc_next_blk_1
13124	.global	g_gc_next_blk
13125	.global	g_gc_cur_blk_max_valid_pages
13126	.global	g_gc_cur_blk_valid_pages
13127	.global	g_gc_page_offset
13128	.global	g_gc_blk_num
13129	.global	p_gc_blk_tbl
13130	.global	p_gc_page_info
13131	.global	g_sys_ext_data
13132	.global	g_sys_save_data
13133	.global	gp_last_act_superblock
13134	.global	g_gc_superblock
13135	.global	g_gc_temp_superblock
13136	.global	g_buffer_superblock
13137	.global	g_active_superblock
13138	.global	g_num_data_superblocks
13139	.global	g_num_free_superblocks
13140	.global	p_data_block_list_tail
13141	.global	p_data_block_list_head
13142	.global	p_free_data_block_list_head
13143	.global	p_data_block_list_table
13144	.global	g_l2p_last_update_region_id
13145	.global	p_l2p_map_buf
13146	.global	p_l2p_ram_map
13147	.global	g_totle_vendor_block
13148	.global	p_vendor_region_ppn_table
13149	.global	p_vendor_block_ver_table
13150	.global	p_vendor_block_valid_page_count
13151	.global	p_vendor_block_table
13152	.global	g_totle_map_block
13153	.global	p_map_region_ppn_table
13154	.global	p_map_block_ver_table
13155	.global	p_map_block_valid_page_count
13156	.global	p_map_block_table
13157	.global	p_blk_mode_table
13158	.global	p_valid_page_count_check_table
13159	.global	p_valid_page_count_table
13160	.global	g_totle_swl_count
13161	.global	p_swl_mul_table
13162	.global	p_erase_count_table
13163	.global	g_ect_tbl_info_size
13164	.global	gp_ect_tbl_info
13165	.global	g_gc_num_req
13166	.global	c_gc_page_buf_num
13167	.global	gp_gc_page_buf_info
13168	.global	p_gc_data_buf
13169	.global	p_gc_spare_buf
13170	.global	p_io_spare_buf
13171	.global	p_io_data_buf_1
13172	.global	p_io_data_buf_0
13173	.global	p_sys_spare_buf
13174	.global	p_vendor_data_buf
13175	.global	p_sys_data_buf_1
13176	.global	p_sys_data_buf
13177	.global	p_plane_order_table
13178	.global	req_gc_dst
13179	.global	req_gc
13180	.global	req_erase
13181	.global	req_prgm
13182	.global	req_read
13183	.global	req_sys
13184	.global	gVendorBlkInfo
13185	.global	gL2pMapInfo
13186	.global	gSysFreeQueue
13187	.global	gSysInfo
13188	.global	gBbtInfo
13189	.global	g_MaxLbn
13190	.global	g_VaildLpn
13191	.global	g_MaxLpn
13192	.global	g_MaxLbaSector
13193	.global	g_GlobalDataVersion
13194	.global	g_GlobalSysVersion
13195	.global	ftl_gc_temp_power_lost_recovery_flag
13196	.global	c_ftl_nand_max_data_blks
13197	.global	c_ftl_nand_data_op_blks_per_plane
13198	.global	c_ftl_nand_data_blks_per_plane
13199	.global	c_ftl_nand_max_sys_blks
13200	.global	c_ftl_nand_init_sys_blks_per_plane
13201	.global	c_ftl_nand_sys_blks_per_plane
13202	.global	c_ftl_vendor_part_size
13203	.global	c_ftl_nand_max_vendor_blks
13204	.global	c_ftl_nand_max_map_blks
13205	.global	c_ftl_nand_map_blks_per_plane
13206	.global	c_ftl_nand_vendor_region_num
13207	.global	c_ftl_nand_l2pmap_ram_region_num
13208	.global	c_ftl_nand_map_region_num
13209	.global	c_ftl_nand_totle_phy_blks
13210	.global	c_ftl_nand_reserved_blks
13211	.global	c_ftl_nand_byte_pre_oob
13212	.global	c_ftl_nand_byte_pre_page
13213	.global	c_ftl_nand_sec_pre_page_shift
13214	.global	c_ftl_nand_sec_pre_page
13215	.global	c_ftl_nand_page_pre_super_blk
13216	.global	c_ftl_nand_page_pre_slc_blk
13217	.global	c_ftl_nand_page_pre_blk
13218	.global	c_ftl_nand_bbm_buf_size
13219	.global	c_ftl_nand_ext_blk_pre_plane
13220	.global	c_ftl_nand_blk_pre_plane
13221	.global	c_ftl_nand_planes_num
13222	.global	c_ftl_nand_blks_per_die_shift
13223	.global	c_ftl_nand_blks_per_die
13224	.global	c_ftl_nand_planes_per_die
13225	.global	c_ftl_nand_die_num
13226	.global	c_ftl_nand_type
13227	.section	.bss.DeviceCapacity,"aw",%nobits
13228	.align	2
13229	.set	.LANCHOR26,. + 0
13230	.type	DeviceCapacity, %object
13231	.size	DeviceCapacity, 4
13232DeviceCapacity:
13233	.space	4
13234	.section	.bss.FtlUpdateVaildLpnCount,"aw",%nobits
13235	.align	1
13236	.set	.LANCHOR58,. + 0
13237	.type	FtlUpdateVaildLpnCount, %object
13238	.size	FtlUpdateVaildLpnCount, 2
13239FtlUpdateVaildLpnCount:
13240	.space	2
13241	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",%nobits
13242	.align	1
13243	.set	.LANCHOR127,. + 0
13244	.type	c_ftl_nand_bbm_buf_size, %object
13245	.size	c_ftl_nand_bbm_buf_size, 2
13246c_ftl_nand_bbm_buf_size:
13247	.space	2
13248	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",%nobits
13249	.align	1
13250	.set	.LANCHOR6,. + 0
13251	.type	c_ftl_nand_blk_pre_plane, %object
13252	.size	c_ftl_nand_blk_pre_plane, 2
13253c_ftl_nand_blk_pre_plane:
13254	.space	2
13255	.section	.bss.c_ftl_nand_blks_per_die,"aw",%nobits
13256	.align	1
13257	.set	.LANCHOR17,. + 0
13258	.type	c_ftl_nand_blks_per_die, %object
13259	.size	c_ftl_nand_blks_per_die, 2
13260c_ftl_nand_blks_per_die:
13261	.space	2
13262	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits
13263	.align	1
13264	.set	.LANCHOR18,. + 0
13265	.type	c_ftl_nand_blks_per_die_shift, %object
13266	.size	c_ftl_nand_blks_per_die_shift, 2
13267c_ftl_nand_blks_per_die_shift:
13268	.space	2
13269	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",%nobits
13270	.align	1
13271	.set	.LANCHOR24,. + 0
13272	.type	c_ftl_nand_byte_pre_oob, %object
13273	.size	c_ftl_nand_byte_pre_oob, 2
13274c_ftl_nand_byte_pre_oob:
13275	.space	2
13276	.section	.bss.c_ftl_nand_byte_pre_page,"aw",%nobits
13277	.align	1
13278	.set	.LANCHOR23,. + 0
13279	.type	c_ftl_nand_byte_pre_page, %object
13280	.size	c_ftl_nand_byte_pre_page, 2
13281c_ftl_nand_byte_pre_page:
13282	.space	2
13283	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits
13284	.align	1
13285	.set	.LANCHOR5,. + 0
13286	.type	c_ftl_nand_data_blks_per_plane, %object
13287	.size	c_ftl_nand_data_blks_per_plane, 2
13288c_ftl_nand_data_blks_per_plane:
13289	.space	2
13290	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits
13291	.align	1
13292	.set	.LANCHOR171,. + 0
13293	.type	c_ftl_nand_data_op_blks_per_plane, %object
13294	.size	c_ftl_nand_data_op_blks_per_plane, 2
13295c_ftl_nand_data_op_blks_per_plane:
13296	.space	2
13297	.section	.bss.c_ftl_nand_die_num,"aw",%nobits
13298	.align	1
13299	.set	.LANCHOR10,. + 0
13300	.type	c_ftl_nand_die_num, %object
13301	.size	c_ftl_nand_die_num, 2
13302c_ftl_nand_die_num:
13303	.space	2
13304	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits
13305	.align	1
13306	.set	.LANCHOR15,. + 0
13307	.type	c_ftl_nand_ext_blk_pre_plane, %object
13308	.size	c_ftl_nand_ext_blk_pre_plane, 2
13309c_ftl_nand_ext_blk_pre_plane:
13310	.space	2
13311	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits
13312	.align	2
13313	.set	.LANCHOR31,. + 0
13314	.type	c_ftl_nand_init_sys_blks_per_plane, %object
13315	.size	c_ftl_nand_init_sys_blks_per_plane, 4
13316c_ftl_nand_init_sys_blks_per_plane:
13317	.space	4
13318	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits
13319	.align	1
13320	.set	.LANCHOR33,. + 0
13321	.type	c_ftl_nand_l2pmap_ram_region_num, %object
13322	.size	c_ftl_nand_l2pmap_ram_region_num, 2
13323c_ftl_nand_l2pmap_ram_region_num:
13324	.space	2
13325	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits
13326	.align	1
13327	.set	.LANCHOR29,. + 0
13328	.type	c_ftl_nand_map_blks_per_plane, %object
13329	.size	c_ftl_nand_map_blks_per_plane, 2
13330c_ftl_nand_map_blks_per_plane:
13331	.space	2
13332	.section	.bss.c_ftl_nand_map_region_num,"aw",%nobits
13333	.align	1
13334	.set	.LANCHOR32,. + 0
13335	.type	c_ftl_nand_map_region_num, %object
13336	.size	c_ftl_nand_map_region_num, 2
13337c_ftl_nand_map_region_num:
13338	.space	2
13339	.section	.bss.c_ftl_nand_max_data_blks,"aw",%nobits
13340	.align	2
13341	.set	.LANCHOR7,. + 0
13342	.type	c_ftl_nand_max_data_blks, %object
13343	.size	c_ftl_nand_max_data_blks, 4
13344c_ftl_nand_max_data_blks:
13345	.space	4
13346	.section	.bss.c_ftl_nand_max_map_blks,"aw",%nobits
13347	.align	2
13348	.set	.LANCHOR30,. + 0
13349	.type	c_ftl_nand_max_map_blks, %object
13350	.size	c_ftl_nand_max_map_blks, 4
13351c_ftl_nand_max_map_blks:
13352	.space	4
13353	.section	.bss.c_ftl_nand_max_sys_blks,"aw",%nobits
13354	.align	2
13355	.set	.LANCHOR4,. + 0
13356	.type	c_ftl_nand_max_sys_blks, %object
13357	.size	c_ftl_nand_max_sys_blks, 4
13358c_ftl_nand_max_sys_blks:
13359	.space	4
13360	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",%nobits
13361	.align	1
13362	.set	.LANCHOR27,. + 0
13363	.type	c_ftl_nand_max_vendor_blks, %object
13364	.size	c_ftl_nand_max_vendor_blks, 2
13365c_ftl_nand_max_vendor_blks:
13366	.space	2
13367	.section	.bss.c_ftl_nand_page_pre_blk,"aw",%nobits
13368	.align	1
13369	.set	.LANCHOR19,. + 0
13370	.type	c_ftl_nand_page_pre_blk, %object
13371	.size	c_ftl_nand_page_pre_blk, 2
13372c_ftl_nand_page_pre_blk:
13373	.space	2
13374	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits
13375	.align	1
13376	.set	.LANCHOR20,. + 0
13377	.type	c_ftl_nand_page_pre_slc_blk, %object
13378	.size	c_ftl_nand_page_pre_slc_blk, 2
13379c_ftl_nand_page_pre_slc_blk:
13380	.space	2
13381	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits
13382	.align	1
13383	.set	.LANCHOR21,. + 0
13384	.type	c_ftl_nand_page_pre_super_blk, %object
13385	.size	c_ftl_nand_page_pre_super_blk, 2
13386c_ftl_nand_page_pre_super_blk:
13387	.space	2
13388	.section	.bss.c_ftl_nand_planes_num,"aw",%nobits
13389	.align	1
13390	.set	.LANCHOR3,. + 0
13391	.type	c_ftl_nand_planes_num, %object
13392	.size	c_ftl_nand_planes_num, 2
13393c_ftl_nand_planes_num:
13394	.space	2
13395	.section	.bss.c_ftl_nand_planes_per_die,"aw",%nobits
13396	.align	1
13397	.set	.LANCHOR11,. + 0
13398	.type	c_ftl_nand_planes_per_die, %object
13399	.size	c_ftl_nand_planes_per_die, 2
13400c_ftl_nand_planes_per_die:
13401	.space	2
13402	.section	.bss.c_ftl_nand_reserved_blks,"aw",%nobits
13403	.align	1
13404	.set	.LANCHOR25,. + 0
13405	.type	c_ftl_nand_reserved_blks, %object
13406	.size	c_ftl_nand_reserved_blks, 2
13407c_ftl_nand_reserved_blks:
13408	.space	2
13409	.section	.bss.c_ftl_nand_sec_pre_page,"aw",%nobits
13410	.align	1
13411	.set	.LANCHOR12,. + 0
13412	.type	c_ftl_nand_sec_pre_page, %object
13413	.size	c_ftl_nand_sec_pre_page, 2
13414c_ftl_nand_sec_pre_page:
13415	.space	2
13416	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits
13417	.align	1
13418	.set	.LANCHOR22,. + 0
13419	.type	c_ftl_nand_sec_pre_page_shift, %object
13420	.size	c_ftl_nand_sec_pre_page_shift, 2
13421c_ftl_nand_sec_pre_page_shift:
13422	.space	2
13423	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits
13424	.align	2
13425	.set	.LANCHOR2,. + 0
13426	.type	c_ftl_nand_sys_blks_per_plane, %object
13427	.size	c_ftl_nand_sys_blks_per_plane, 4
13428c_ftl_nand_sys_blks_per_plane:
13429	.space	4
13430	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",%nobits
13431	.align	2
13432	.set	.LANCHOR8,. + 0
13433	.type	c_ftl_nand_totle_phy_blks, %object
13434	.size	c_ftl_nand_totle_phy_blks, 4
13435c_ftl_nand_totle_phy_blks:
13436	.space	4
13437	.section	.bss.c_ftl_nand_type,"aw",%nobits
13438	.align	1
13439	.set	.LANCHOR9,. + 0
13440	.type	c_ftl_nand_type, %object
13441	.size	c_ftl_nand_type, 2
13442c_ftl_nand_type:
13443	.space	2
13444	.section	.bss.c_ftl_nand_vendor_region_num,"aw",%nobits
13445	.align	1
13446	.set	.LANCHOR28,. + 0
13447	.type	c_ftl_nand_vendor_region_num, %object
13448	.size	c_ftl_nand_vendor_region_num, 2
13449c_ftl_nand_vendor_region_num:
13450	.space	2
13451	.section	.bss.c_ftl_vendor_part_size,"aw",%nobits
13452	.align	1
13453	.set	.LANCHOR16,. + 0
13454	.type	c_ftl_vendor_part_size, %object
13455	.size	c_ftl_vendor_part_size, 2
13456c_ftl_vendor_part_size:
13457	.space	2
13458	.section	.bss.c_gc_page_buf_num,"aw",%nobits
13459	.align	2
13460	.set	.LANCHOR67,. + 0
13461	.type	c_gc_page_buf_num, %object
13462	.size	c_gc_page_buf_num, 4
13463c_gc_page_buf_num:
13464	.space	4
13465	.section	.bss.c_mlc_erase_count_value,"aw",%nobits
13466	.align	1
13467	.set	.LANCHOR14,. + 0
13468	.type	c_mlc_erase_count_value, %object
13469	.size	c_mlc_erase_count_value, 2
13470c_mlc_erase_count_value:
13471	.space	2
13472	.section	.bss.check_vpc_table,"aw",%nobits
13473	.align	1
13474	.type	check_vpc_table, %object
13475	.size	check_vpc_table, 16384
13476check_vpc_table:
13477	.space	16384
13478	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits
13479	.align	2
13480	.set	.LANCHOR133,. + 0
13481	.type	ftl_gc_temp_power_lost_recovery_flag, %object
13482	.size	ftl_gc_temp_power_lost_recovery_flag, 4
13483ftl_gc_temp_power_lost_recovery_flag:
13484	.space	4
13485	.section	.bss.gBbtInfo,"aw",%nobits
13486	.align	2
13487	.set	.LANCHOR37,. + 0
13488	.type	gBbtInfo, %object
13489	.size	gBbtInfo, 60
13490gBbtInfo:
13491	.space	60
13492	.section	.bss.gL2pMapInfo,"aw",%nobits
13493	.align	2
13494	.set	.LANCHOR129,. + 0
13495	.type	gL2pMapInfo, %object
13496	.size	gL2pMapInfo, 44
13497gL2pMapInfo:
13498	.space	44
13499	.section	.bss.gSysFreeQueue,"aw",%nobits
13500	.align	1
13501	.set	.LANCHOR38,. + 0
13502	.type	gSysFreeQueue, %object
13503	.size	gSysFreeQueue, 2056
13504gSysFreeQueue:
13505	.space	2056
13506	.section	.bss.gSysInfo,"aw",%nobits
13507	.align	2
13508	.set	.LANCHOR139,. + 0
13509	.type	gSysInfo, %object
13510	.size	gSysInfo, 16
13511gSysInfo:
13512	.space	16
13513	.section	.bss.gVendorBlkInfo,"aw",%nobits
13514	.align	2
13515	.set	.LANCHOR161,. + 0
13516	.type	gVendorBlkInfo, %object
13517	.size	gVendorBlkInfo, 44
13518gVendorBlkInfo:
13519	.space	44
13520	.section	.bss.g_GlobalDataVersion,"aw",%nobits
13521	.align	2
13522	.set	.LANCHOR83,. + 0
13523	.type	g_GlobalDataVersion, %object
13524	.size	g_GlobalDataVersion, 4
13525g_GlobalDataVersion:
13526	.space	4
13527	.section	.bss.g_GlobalSysVersion,"aw",%nobits
13528	.align	2
13529	.set	.LANCHOR82,. + 0
13530	.type	g_GlobalSysVersion, %object
13531	.size	g_GlobalSysVersion, 4
13532g_GlobalSysVersion:
13533	.space	4
13534	.section	.bss.g_MaxLbaSector,"aw",%nobits
13535	.align	2
13536	.set	.LANCHOR34,. + 0
13537	.type	g_MaxLbaSector, %object
13538	.size	g_MaxLbaSector, 4
13539g_MaxLbaSector:
13540	.space	4
13541	.section	.bss.g_MaxLbn,"aw",%nobits
13542	.align	2
13543	.set	.LANCHOR179,. + 0
13544	.type	g_MaxLbn, %object
13545	.size	g_MaxLbn, 4
13546g_MaxLbn:
13547	.space	4
13548	.section	.bss.g_MaxLpn,"aw",%nobits
13549	.align	2
13550	.set	.LANCHOR152,. + 0
13551	.type	g_MaxLpn, %object
13552	.size	g_MaxLpn, 4
13553g_MaxLpn:
13554	.space	4
13555	.section	.bss.g_VaildLpn,"aw",%nobits
13556	.align	2
13557	.set	.LANCHOR59,. + 0
13558	.type	g_VaildLpn, %object
13559	.size	g_VaildLpn, 4
13560g_VaildLpn:
13561	.space	4
13562	.section	.bss.g_active_superblock,"aw",%nobits
13563	.align	2
13564	.set	.LANCHOR51,. + 0
13565	.type	g_active_superblock, %object
13566	.size	g_active_superblock, 48
13567g_active_superblock:
13568	.space	48
13569	.section	.bss.g_buffer_superblock,"aw",%nobits
13570	.align	2
13571	.set	.LANCHOR52,. + 0
13572	.type	g_buffer_superblock, %object
13573	.size	g_buffer_superblock, 48
13574g_buffer_superblock:
13575	.space	48
13576	.section	.bss.g_cur_erase_blk,"aw",%nobits
13577	.align	2
13578	.set	.LANCHOR99,. + 0
13579	.type	g_cur_erase_blk, %object
13580	.size	g_cur_erase_blk, 4
13581g_cur_erase_blk:
13582	.space	4
13583	.section	.bss.g_ect_tbl_info_size,"aw",%nobits
13584	.align	1
13585	.set	.LANCHOR116,. + 0
13586	.type	g_ect_tbl_info_size, %object
13587	.size	g_ect_tbl_info_size, 2
13588g_ect_tbl_info_size:
13589	.space	2
13590	.section	.bss.g_ect_tbl_power_up_flush,"aw",%nobits
13591	.align	1
13592	.set	.LANCHOR164,. + 0
13593	.type	g_ect_tbl_power_up_flush, %object
13594	.size	g_ect_tbl_power_up_flush, 2
13595g_ect_tbl_power_up_flush:
13596	.space	2
13597	.section	.bss.g_ftl_nand_free_count,"aw",%nobits
13598	.align	2
13599	.set	.LANCHOR176,. + 0
13600	.type	g_ftl_nand_free_count, %object
13601	.size	g_ftl_nand_free_count, 4
13602g_ftl_nand_free_count:
13603	.space	4
13604	.section	.bss.g_gc_bad_block_gc_index,"aw",%nobits
13605	.align	1
13606	.set	.LANCHOR76,. + 0
13607	.type	g_gc_bad_block_gc_index, %object
13608	.size	g_gc_bad_block_gc_index, 2
13609g_gc_bad_block_gc_index:
13610	.space	2
13611	.section	.bss.g_gc_bad_block_temp_num,"aw",%nobits
13612	.align	1
13613	.set	.LANCHOR74,. + 0
13614	.type	g_gc_bad_block_temp_num, %object
13615	.size	g_gc_bad_block_temp_num, 2
13616g_gc_bad_block_temp_num:
13617	.space	2
13618	.section	.bss.g_gc_bad_block_temp_tbl,"aw",%nobits
13619	.align	1
13620	.set	.LANCHOR75,. + 0
13621	.type	g_gc_bad_block_temp_tbl, %object
13622	.size	g_gc_bad_block_temp_tbl, 34
13623g_gc_bad_block_temp_tbl:
13624	.space	34
13625	.section	.bss.g_gc_blk_index,"aw",%nobits
13626	.align	1
13627	.set	.LANCHOR102,. + 0
13628	.type	g_gc_blk_index, %object
13629	.size	g_gc_blk_index, 2
13630g_gc_blk_index:
13631	.space	2
13632	.section	.bss.g_gc_blk_num,"aw",%nobits
13633	.align	1
13634	.set	.LANCHOR69,. + 0
13635	.type	g_gc_blk_num, %object
13636	.size	g_gc_blk_num, 2
13637g_gc_blk_num:
13638	.space	2
13639	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits
13640	.align	1
13641	.set	.LANCHOR174,. + 0
13642	.type	g_gc_cur_blk_max_valid_pages, %object
13643	.size	g_gc_cur_blk_max_valid_pages, 2
13644g_gc_cur_blk_max_valid_pages:
13645	.space	2
13646	.section	.bss.g_gc_cur_blk_valid_pages,"aw",%nobits
13647	.align	1
13648	.set	.LANCHOR173,. + 0
13649	.type	g_gc_cur_blk_valid_pages, %object
13650	.size	g_gc_cur_blk_valid_pages, 2
13651g_gc_cur_blk_valid_pages:
13652	.space	2
13653	.section	.bss.g_gc_free_blk_threshold,"aw",%nobits
13654	.align	1
13655	.set	.LANCHOR100,. + 0
13656	.type	g_gc_free_blk_threshold, %object
13657	.size	g_gc_free_blk_threshold, 2
13658g_gc_free_blk_threshold:
13659	.space	2
13660	.section	.bss.g_gc_head_data_block,"aw",%nobits
13661	.align	2
13662	.set	.LANCHOR96,. + 0
13663	.type	g_gc_head_data_block, %object
13664	.size	g_gc_head_data_block, 4
13665g_gc_head_data_block:
13666	.space	4
13667	.section	.bss.g_gc_head_data_block_count,"aw",%nobits
13668	.align	2
13669	.set	.LANCHOR97,. + 0
13670	.type	g_gc_head_data_block_count, %object
13671	.size	g_gc_head_data_block_count, 4
13672g_gc_head_data_block_count:
13673	.space	4
13674	.section	.bss.g_gc_merge_free_blk_threshold,"aw",%nobits
13675	.align	1
13676	.set	.LANCHOR101,. + 0
13677	.type	g_gc_merge_free_blk_threshold, %object
13678	.size	g_gc_merge_free_blk_threshold, 2
13679g_gc_merge_free_blk_threshold:
13680	.space	2
13681	.section	.bss.g_gc_next_blk,"aw",%nobits
13682	.align	1
13683	.set	.LANCHOR72,. + 0
13684	.type	g_gc_next_blk, %object
13685	.size	g_gc_next_blk, 2
13686g_gc_next_blk:
13687	.space	2
13688	.section	.bss.g_gc_next_blk_1,"aw",%nobits
13689	.align	1
13690	.set	.LANCHOR73,. + 0
13691	.type	g_gc_next_blk_1, %object
13692	.size	g_gc_next_blk_1, 2
13693g_gc_next_blk_1:
13694	.space	2
13695	.section	.bss.g_gc_num_req,"aw",%nobits
13696	.align	2
13697	.set	.LANCHOR62,. + 0
13698	.type	g_gc_num_req, %object
13699	.size	g_gc_num_req, 4
13700g_gc_num_req:
13701	.space	4
13702	.section	.bss.g_gc_page_offset,"aw",%nobits
13703	.align	1
13704	.set	.LANCHOR70,. + 0
13705	.type	g_gc_page_offset, %object
13706	.size	g_gc_page_offset, 2
13707g_gc_page_offset:
13708	.space	2
13709	.section	.bss.g_gc_skip_write_count,"aw",%nobits
13710	.align	2
13711	.set	.LANCHOR98,. + 0
13712	.type	g_gc_skip_write_count, %object
13713	.size	g_gc_skip_write_count, 4
13714g_gc_skip_write_count:
13715	.space	4
13716	.section	.bss.g_gc_superblock,"aw",%nobits
13717	.align	2
13718	.set	.LANCHOR144,. + 0
13719	.type	g_gc_superblock, %object
13720	.size	g_gc_superblock, 48
13721g_gc_superblock:
13722	.space	48
13723	.section	.bss.g_gc_temp_superblock,"aw",%nobits
13724	.align	2
13725	.set	.LANCHOR53,. + 0
13726	.type	g_gc_temp_superblock, %object
13727	.size	g_gc_temp_superblock, 48
13728g_gc_temp_superblock:
13729	.space	48
13730	.section	.bss.g_in_gc_progress,"aw",%nobits
13731	.align	2
13732	.set	.LANCHOR94,. + 0
13733	.type	g_in_gc_progress, %object
13734	.size	g_in_gc_progress, 4
13735g_in_gc_progress:
13736	.space	4
13737	.section	.bss.g_in_swl_replace,"aw",%nobits
13738	.align	2
13739	.set	.LANCHOR95,. + 0
13740	.type	g_in_swl_replace, %object
13741	.size	g_in_swl_replace, 4
13742g_in_swl_replace:
13743	.space	4
13744	.section	.bss.g_l2p_last_update_region_id,"aw",%nobits
13745	.align	1
13746	.set	.LANCHOR56,. + 0
13747	.type	g_l2p_last_update_region_id, %object
13748	.size	g_l2p_last_update_region_id, 2
13749g_l2p_last_update_region_id:
13750	.space	2
13751	.section	.bss.g_max_erase_count,"aw",%nobits
13752	.align	2
13753	.set	.LANCHOR92,. + 0
13754	.type	g_max_erase_count, %object
13755	.size	g_max_erase_count, 4
13756g_max_erase_count:
13757	.space	4
13758	.section	.bss.g_min_erase_count,"aw",%nobits
13759	.align	2
13760	.set	.LANCHOR93,. + 0
13761	.type	g_min_erase_count, %object
13762	.size	g_min_erase_count, 4
13763g_min_erase_count:
13764	.space	4
13765	.section	.bss.g_nand_ops,"aw",%nobits
13766	.align	2
13767	.set	.LANCHOR78,. + 0
13768	.type	g_nand_ops, %object
13769	.size	g_nand_ops, 24
13770g_nand_ops:
13771	.space	24
13772	.section	.bss.g_nand_phy_info,"aw",%nobits
13773	.align	1
13774	.set	.LANCHOR0,. + 0
13775	.type	g_nand_phy_info, %object
13776	.size	g_nand_phy_info, 24
13777g_nand_phy_info:
13778	.space	24
13779	.section	.bss.g_num_data_superblocks,"aw",%nobits
13780	.align	1
13781	.set	.LANCHOR45,. + 0
13782	.type	g_num_data_superblocks, %object
13783	.size	g_num_data_superblocks, 2
13784g_num_data_superblocks:
13785	.space	2
13786	.section	.bss.g_num_free_superblocks,"aw",%nobits
13787	.align	1
13788	.set	.LANCHOR48,. + 0
13789	.type	g_num_free_superblocks, %object
13790	.size	g_num_free_superblocks, 2
13791g_num_free_superblocks:
13792	.space	2
13793	.section	.bss.g_power_lost_recovery_flag,"aw",%nobits
13794	.align	1
13795	.set	.LANCHOR156,. + 0
13796	.type	g_power_lost_recovery_flag, %object
13797	.size	g_power_lost_recovery_flag, 2
13798g_power_lost_recovery_flag:
13799	.space	2
13800	.section	.bss.g_recovery_page_min_ver,"aw",%nobits
13801	.align	2
13802	.set	.LANCHOR134,. + 0
13803	.type	g_recovery_page_min_ver, %object
13804	.size	g_recovery_page_min_ver, 4
13805g_recovery_page_min_ver:
13806	.space	4
13807	.section	.bss.g_recovery_page_num,"aw",%nobits
13808	.align	2
13809	.set	.LANCHOR157,. + 0
13810	.type	g_recovery_page_num, %object
13811	.size	g_recovery_page_num, 4
13812g_recovery_page_num:
13813	.space	4
13814	.section	.bss.g_recovery_ppa_tbl,"aw",%nobits
13815	.align	2
13816	.set	.LANCHOR158,. + 0
13817	.type	g_recovery_ppa_tbl, %object
13818	.size	g_recovery_ppa_tbl, 128
13819g_recovery_ppa_tbl:
13820	.space	128
13821	.section	.bss.g_sys_ext_data,"aw",%nobits
13822	.align	2
13823	.set	.LANCHOR135,. + 0
13824	.type	g_sys_ext_data, %object
13825	.size	g_sys_ext_data, 512
13826g_sys_ext_data:
13827	.space	512
13828	.section	.bss.g_sys_save_data,"aw",%nobits
13829	.align	2
13830	.set	.LANCHOR39,. + 0
13831	.type	g_sys_save_data, %object
13832	.size	g_sys_save_data, 48
13833g_sys_save_data:
13834	.space	48
13835	.section	.bss.g_tmp_data_superblock_id,"aw",%nobits
13836	.align	1
13837	.set	.LANCHOR131,. + 0
13838	.type	g_tmp_data_superblock_id, %object
13839	.size	g_tmp_data_superblock_id, 2
13840g_tmp_data_superblock_id:
13841	.space	2
13842	.section	.bss.g_totle_avg_erase_count,"aw",%nobits
13843	.align	2
13844	.set	.LANCHOR145,. + 0
13845	.type	g_totle_avg_erase_count, %object
13846	.size	g_totle_avg_erase_count, 4
13847g_totle_avg_erase_count:
13848	.space	4
13849	.section	.bss.g_totle_cache_write_count,"aw",%nobits
13850	.align	2
13851	.set	.LANCHOR87,. + 0
13852	.type	g_totle_cache_write_count, %object
13853	.size	g_totle_cache_write_count, 4
13854g_totle_cache_write_count:
13855	.space	4
13856	.section	.bss.g_totle_discard_page_count,"aw",%nobits
13857	.align	2
13858	.set	.LANCHOR86,. + 0
13859	.type	g_totle_discard_page_count, %object
13860	.size	g_totle_discard_page_count, 4
13861g_totle_discard_page_count:
13862	.space	4
13863	.section	.bss.g_totle_gc_page_count,"aw",%nobits
13864	.align	2
13865	.set	.LANCHOR84,. + 0
13866	.type	g_totle_gc_page_count, %object
13867	.size	g_totle_gc_page_count, 4
13868g_totle_gc_page_count:
13869	.space	4
13870	.section	.bss.g_totle_l2p_write_count,"aw",%nobits
13871	.align	2
13872	.set	.LANCHOR88,. + 0
13873	.type	g_totle_l2p_write_count, %object
13874	.size	g_totle_l2p_write_count, 4
13875g_totle_l2p_write_count:
13876	.space	4
13877	.section	.bss.g_totle_map_block,"aw",%nobits
13878	.align	1
13879	.set	.LANCHOR130,. + 0
13880	.type	g_totle_map_block, %object
13881	.size	g_totle_map_block, 2
13882g_totle_map_block:
13883	.space	2
13884	.section	.bss.g_totle_mlc_erase_count,"aw",%nobits
13885	.align	2
13886	.set	.LANCHOR90,. + 0
13887	.type	g_totle_mlc_erase_count, %object
13888	.size	g_totle_mlc_erase_count, 4
13889g_totle_mlc_erase_count:
13890	.space	4
13891	.section	.bss.g_totle_read_page_count,"aw",%nobits
13892	.align	2
13893	.set	.LANCHOR89,. + 0
13894	.type	g_totle_read_page_count, %object
13895	.size	g_totle_read_page_count, 4
13896g_totle_read_page_count:
13897	.space	4
13898	.section	.bss.g_totle_read_sector,"aw",%nobits
13899	.align	2
13900	.set	.LANCHOR163,. + 0
13901	.type	g_totle_read_sector, %object
13902	.size	g_totle_read_sector, 4
13903g_totle_read_sector:
13904	.space	4
13905	.section	.bss.g_totle_slc_erase_count,"aw",%nobits
13906	.align	2
13907	.set	.LANCHOR91,. + 0
13908	.type	g_totle_slc_erase_count, %object
13909	.size	g_totle_slc_erase_count, 4
13910g_totle_slc_erase_count:
13911	.space	4
13912	.section	.bss.g_totle_swl_count,"aw",%nobits
13913	.align	2
13914	.set	.LANCHOR132,. + 0
13915	.type	g_totle_swl_count, %object
13916	.size	g_totle_swl_count, 4
13917g_totle_swl_count:
13918	.space	4
13919	.section	.bss.g_totle_sys_slc_erase_count,"aw",%nobits
13920	.align	2
13921	.set	.LANCHOR80,. + 0
13922	.type	g_totle_sys_slc_erase_count, %object
13923	.size	g_totle_sys_slc_erase_count, 4
13924g_totle_sys_slc_erase_count:
13925	.space	4
13926	.section	.bss.g_totle_vendor_block,"aw",%nobits
13927	.align	1
13928	.set	.LANCHOR35,. + 0
13929	.type	g_totle_vendor_block, %object
13930	.size	g_totle_vendor_block, 2
13931g_totle_vendor_block:
13932	.space	2
13933	.section	.bss.g_totle_write_page_count,"aw",%nobits
13934	.align	2
13935	.set	.LANCHOR85,. + 0
13936	.type	g_totle_write_page_count, %object
13937	.size	g_totle_write_page_count, 4
13938g_totle_write_page_count:
13939	.space	4
13940	.section	.bss.g_totle_write_sector,"aw",%nobits
13941	.align	2
13942	.set	.LANCHOR162,. + 0
13943	.type	g_totle_write_sector, %object
13944	.size	g_totle_write_sector, 4
13945g_totle_write_sector:
13946	.space	4
13947	.section	.bss.gc_discard_updated,"aw",%nobits
13948	.align	2
13949	.set	.LANCHOR167,. + 0
13950	.type	gc_discard_updated, %object
13951	.size	gc_discard_updated, 4
13952gc_discard_updated:
13953	.space	4
13954	.section	.bss.gc_ink_free_return_value,"aw",%nobits
13955	.align	1
13956	.set	.LANCHOR172,. + 0
13957	.type	gc_ink_free_return_value, %object
13958	.size	gc_ink_free_return_value, 2
13959gc_ink_free_return_value:
13960	.space	2
13961	.section	.bss.gp_ect_tbl_info,"aw",%nobits
13962	.align	2
13963	.set	.LANCHOR118,. + 0
13964	.type	gp_ect_tbl_info, %object
13965	.size	gp_ect_tbl_info, 4
13966gp_ect_tbl_info:
13967	.space	4
13968	.section	.bss.gp_flash_check_buf,"aw",%nobits
13969	.align	2
13970	.set	.LANCHOR184,. + 0
13971	.type	gp_flash_check_buf, %object
13972	.size	gp_flash_check_buf, 4
13973gp_flash_check_buf:
13974	.space	4
13975	.section	.bss.gp_gc_page_buf_info,"aw",%nobits
13976	.align	2
13977	.set	.LANCHOR63,. + 0
13978	.type	gp_gc_page_buf_info, %object
13979	.size	gp_gc_page_buf_info, 4
13980gp_gc_page_buf_info:
13981	.space	4
13982	.section	.bss.gp_last_act_superblock,"aw",%nobits
13983	.align	2
13984	.type	gp_last_act_superblock, %object
13985	.size	gp_last_act_superblock, 4
13986gp_last_act_superblock:
13987	.space	4
13988	.section	.bss.idb_buf,"aw",%nobits
13989	.align	2
13990	.set	.LANCHOR183,. + 0
13991	.type	idb_buf, %object
13992	.size	idb_buf, 4
13993idb_buf:
13994	.space	4
13995	.section	.bss.idb_need_write_back,"aw",%nobits
13996	.align	2
13997	.set	.LANCHOR182,. + 0
13998	.type	idb_need_write_back, %object
13999	.size	idb_need_write_back, 4
14000idb_need_write_back:
14001	.space	4
14002	.section	.bss.low_format_en,"aw",%nobits
14003	.align	2
14004	.set	.LANCHOR181,. + 0
14005	.type	low_format_en, %object
14006	.size	low_format_en, 4
14007low_format_en:
14008	.space	4
14009	.section	.bss.p_blk_mode_table,"aw",%nobits
14010	.align	2
14011	.set	.LANCHOR1,. + 0
14012	.type	p_blk_mode_table, %object
14013	.size	p_blk_mode_table, 4
14014p_blk_mode_table:
14015	.space	4
14016	.section	.bss.p_data_block_list_head,"aw",%nobits
14017	.align	2
14018	.set	.LANCHOR41,. + 0
14019	.type	p_data_block_list_head, %object
14020	.size	p_data_block_list_head, 4
14021p_data_block_list_head:
14022	.space	4
14023	.section	.bss.p_data_block_list_table,"aw",%nobits
14024	.align	2
14025	.set	.LANCHOR40,. + 0
14026	.type	p_data_block_list_table, %object
14027	.size	p_data_block_list_table, 4
14028p_data_block_list_table:
14029	.space	4
14030	.section	.bss.p_data_block_list_tail,"aw",%nobits
14031	.align	2
14032	.set	.LANCHOR44,. + 0
14033	.type	p_data_block_list_tail, %object
14034	.size	p_data_block_list_tail, 4
14035p_data_block_list_tail:
14036	.space	4
14037	.section	.bss.p_erase_count_table,"aw",%nobits
14038	.align	2
14039	.set	.LANCHOR43,. + 0
14040	.type	p_erase_count_table, %object
14041	.size	p_erase_count_table, 4
14042p_erase_count_table:
14043	.space	4
14044	.section	.bss.p_free_data_block_list_head,"aw",%nobits
14045	.align	2
14046	.set	.LANCHOR47,. + 0
14047	.type	p_free_data_block_list_head, %object
14048	.size	p_free_data_block_list_head, 4
14049p_free_data_block_list_head:
14050	.space	4
14051	.section	.bss.p_gc_blk_tbl,"aw",%nobits
14052	.align	2
14053	.set	.LANCHOR68,. + 0
14054	.type	p_gc_blk_tbl, %object
14055	.size	p_gc_blk_tbl, 4
14056p_gc_blk_tbl:
14057	.space	4
14058	.section	.bss.p_gc_data_buf,"aw",%nobits
14059	.align	2
14060	.set	.LANCHOR64,. + 0
14061	.type	p_gc_data_buf, %object
14062	.size	p_gc_data_buf, 4
14063p_gc_data_buf:
14064	.space	4
14065	.section	.bss.p_gc_page_info,"aw",%nobits
14066	.align	2
14067	.set	.LANCHOR71,. + 0
14068	.type	p_gc_page_info, %object
14069	.size	p_gc_page_info, 4
14070p_gc_page_info:
14071	.space	4
14072	.section	.bss.p_gc_spare_buf,"aw",%nobits
14073	.align	2
14074	.set	.LANCHOR65,. + 0
14075	.type	p_gc_spare_buf, %object
14076	.size	p_gc_spare_buf, 4
14077p_gc_spare_buf:
14078	.space	4
14079	.section	.bss.p_io_data_buf_0,"aw",%nobits
14080	.align	2
14081	.set	.LANCHOR109,. + 0
14082	.type	p_io_data_buf_0, %object
14083	.size	p_io_data_buf_0, 4
14084p_io_data_buf_0:
14085	.space	4
14086	.section	.bss.p_io_data_buf_1,"aw",%nobits
14087	.align	2
14088	.set	.LANCHOR110,. + 0
14089	.type	p_io_data_buf_1, %object
14090	.size	p_io_data_buf_1, 4
14091p_io_data_buf_1:
14092	.space	4
14093	.section	.bss.p_io_spare_buf,"aw",%nobits
14094	.align	2
14095	.set	.LANCHOR115,. + 0
14096	.type	p_io_spare_buf, %object
14097	.size	p_io_spare_buf, 4
14098p_io_spare_buf:
14099	.space	4
14100	.section	.bss.p_l2p_map_buf,"aw",%nobits
14101	.align	2
14102	.set	.LANCHOR126,. + 0
14103	.type	p_l2p_map_buf, %object
14104	.size	p_l2p_map_buf, 4
14105p_l2p_map_buf:
14106	.space	4
14107	.section	.bss.p_l2p_ram_map,"aw",%nobits
14108	.align	2
14109	.set	.LANCHOR55,. + 0
14110	.type	p_l2p_ram_map, %object
14111	.size	p_l2p_ram_map, 4
14112p_l2p_ram_map:
14113	.space	4
14114	.section	.bss.p_map_block_table,"aw",%nobits
14115	.align	2
14116	.set	.LANCHOR119,. + 0
14117	.type	p_map_block_table, %object
14118	.size	p_map_block_table, 4
14119p_map_block_table:
14120	.space	4
14121	.section	.bss.p_map_block_valid_page_count,"aw",%nobits
14122	.align	2
14123	.set	.LANCHOR120,. + 0
14124	.type	p_map_block_valid_page_count, %object
14125	.size	p_map_block_valid_page_count, 4
14126p_map_block_valid_page_count:
14127	.space	4
14128	.section	.bss.p_map_block_ver_table,"aw",%nobits
14129	.align	2
14130	.set	.LANCHOR125,. + 0
14131	.type	p_map_block_ver_table, %object
14132	.size	p_map_block_ver_table, 4
14133p_map_block_ver_table:
14134	.space	4
14135	.section	.bss.p_map_region_ppn_table,"aw",%nobits
14136	.align	2
14137	.set	.LANCHOR124,. + 0
14138	.type	p_map_region_ppn_table, %object
14139	.size	p_map_region_ppn_table, 4
14140p_map_region_ppn_table:
14141	.space	4
14142	.section	.bss.p_plane_order_table,"aw",%nobits
14143	.set	.LANCHOR13,. + 0
14144	.type	p_plane_order_table, %object
14145	.size	p_plane_order_table, 32
14146p_plane_order_table:
14147	.space	32
14148	.section	.bss.p_swl_mul_table,"aw",%nobits
14149	.align	2
14150	.set	.LANCHOR117,. + 0
14151	.type	p_swl_mul_table, %object
14152	.size	p_swl_mul_table, 4
14153p_swl_mul_table:
14154	.space	4
14155	.section	.bss.p_sys_data_buf,"aw",%nobits
14156	.align	2
14157	.set	.LANCHOR106,. + 0
14158	.type	p_sys_data_buf, %object
14159	.size	p_sys_data_buf, 4
14160p_sys_data_buf:
14161	.space	4
14162	.section	.bss.p_sys_data_buf_1,"aw",%nobits
14163	.align	2
14164	.set	.LANCHOR107,. + 0
14165	.type	p_sys_data_buf_1, %object
14166	.size	p_sys_data_buf_1, 4
14167p_sys_data_buf_1:
14168	.space	4
14169	.section	.bss.p_sys_spare_buf,"aw",%nobits
14170	.align	2
14171	.set	.LANCHOR114,. + 0
14172	.type	p_sys_spare_buf, %object
14173	.size	p_sys_spare_buf, 4
14174p_sys_spare_buf:
14175	.space	4
14176	.section	.bss.p_valid_page_count_check_table,"aw",%nobits
14177	.align	2
14178	.type	p_valid_page_count_check_table, %object
14179	.size	p_valid_page_count_check_table, 4
14180p_valid_page_count_check_table:
14181	.space	4
14182	.section	.bss.p_valid_page_count_table,"aw",%nobits
14183	.align	2
14184	.set	.LANCHOR42,. + 0
14185	.type	p_valid_page_count_table, %object
14186	.size	p_valid_page_count_table, 4
14187p_valid_page_count_table:
14188	.space	4
14189	.section	.bss.p_vendor_block_table,"aw",%nobits
14190	.align	2
14191	.set	.LANCHOR36,. + 0
14192	.type	p_vendor_block_table, %object
14193	.size	p_vendor_block_table, 4
14194p_vendor_block_table:
14195	.space	4
14196	.section	.bss.p_vendor_block_valid_page_count,"aw",%nobits
14197	.align	2
14198	.set	.LANCHOR121,. + 0
14199	.type	p_vendor_block_valid_page_count, %object
14200	.size	p_vendor_block_valid_page_count, 4
14201p_vendor_block_valid_page_count:
14202	.space	4
14203	.section	.bss.p_vendor_block_ver_table,"aw",%nobits
14204	.align	2
14205	.set	.LANCHOR122,. + 0
14206	.type	p_vendor_block_ver_table, %object
14207	.size	p_vendor_block_ver_table, 4
14208p_vendor_block_ver_table:
14209	.space	4
14210	.section	.bss.p_vendor_data_buf,"aw",%nobits
14211	.align	2
14212	.set	.LANCHOR108,. + 0
14213	.type	p_vendor_data_buf, %object
14214	.size	p_vendor_data_buf, 4
14215p_vendor_data_buf:
14216	.space	4
14217	.section	.bss.p_vendor_region_ppn_table,"aw",%nobits
14218	.align	2
14219	.set	.LANCHOR123,. + 0
14220	.type	p_vendor_region_ppn_table, %object
14221	.size	p_vendor_region_ppn_table, 4
14222p_vendor_region_ppn_table:
14223	.space	4
14224	.section	.bss.req_erase,"aw",%nobits
14225	.align	2
14226	.set	.LANCHOR79,. + 0
14227	.type	req_erase, %object
14228	.size	req_erase, 4
14229req_erase:
14230	.space	4
14231	.section	.bss.req_gc,"aw",%nobits
14232	.align	2
14233	.set	.LANCHOR66,. + 0
14234	.type	req_gc, %object
14235	.size	req_gc, 4
14236req_gc:
14237	.space	4
14238	.section	.bss.req_gc_dst,"aw",%nobits
14239	.align	2
14240	.set	.LANCHOR104,. + 0
14241	.type	req_gc_dst, %object
14242	.size	req_gc_dst, 4
14243req_gc_dst:
14244	.space	4
14245	.section	.bss.req_prgm,"aw",%nobits
14246	.align	2
14247	.set	.LANCHOR105,. + 0
14248	.type	req_prgm, %object
14249	.size	req_prgm, 4
14250req_prgm:
14251	.space	4
14252	.section	.bss.req_read,"aw",%nobits
14253	.align	2
14254	.set	.LANCHOR103,. + 0
14255	.type	req_read, %object
14256	.size	req_read, 4
14257req_read:
14258	.space	4
14259	.section	.bss.req_sys,"aw",%nobits
14260	.align	2
14261	.set	.LANCHOR138,. + 0
14262	.type	req_sys, %object
14263	.size	req_sys, 20
14264req_sys:
14265	.space	20
14266	.section	.bss.sftl_nand_check_buf,"aw",%nobits
14267	.align	2
14268	.set	.LANCHOR111,. + 0
14269	.type	sftl_nand_check_buf, %object
14270	.size	sftl_nand_check_buf, 4
14271sftl_nand_check_buf:
14272	.space	4
14273	.section	.bss.sftl_nand_check_spare_buf,"aw",%nobits
14274	.align	2
14275	.set	.LANCHOR113,. + 0
14276	.type	sftl_nand_check_spare_buf, %object
14277	.size	sftl_nand_check_spare_buf, 4
14278sftl_nand_check_spare_buf:
14279	.space	4
14280	.section	.bss.sftl_temp_buf,"aw",%nobits
14281	.align	2
14282	.set	.LANCHOR112,. + 0
14283	.type	sftl_temp_buf, %object
14284	.size	sftl_temp_buf, 4
14285sftl_temp_buf:
14286	.space	4
14287	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits
14288	.align	1
14289	.set	.LANCHOR160,. + 0
14290	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
14291	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
14292ftl_gc_temp_block_bops_scan_page_addr:
14293	.short	-1
14294	.section	.data.gFtlInitStatus,"aw",%progbits
14295	.align	2
14296	.set	.LANCHOR166,. + 0
14297	.type	gFtlInitStatus, %object
14298	.size	gFtlInitStatus, 4
14299gFtlInitStatus:
14300	.word	-1
14301	.section	.data.power_up_flag,"aw",%progbits
14302	.align	2
14303	.type	power_up_flag, %object
14304	.size	power_up_flag, 4
14305power_up_flag:
14306	.word	1
14307	.section	.rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1
14308.LC6:
14309	.ascii	"%s: addr: %x is in id block!!!!!!!!!!\012\000"
14310.LC7:
14311	.ascii	"not free: w: d:\000"
14312.LC8:
14313	.ascii	"not free: w: s:\000"
14314	.section	.rodata.FlashProgPages.str1.1,"aMS",%progbits,1
14315.LC11:
14316	.ascii	"prog read error: = %x\012\000"
14317.LC12:
14318	.ascii	"prog read s error: = %x %x %x\012\000"
14319.LC13:
14320	.ascii	"prog read d error: = %x %x %x\012\000"
14321	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1
14322.LC0:
14323	.ascii	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
14324	.ascii	"\000"
14325	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1
14326.LC14:
14327	.ascii	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
14328.LC15:
14329	.ascii	"FtlBbmTblFlush error:%x\012\000"
14330.LC16:
14331	.ascii	"FtlBbmTblFlush error = %x error count = %d\012\000"
14332	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1
14333.LC9:
14334	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
14335	.ascii	"\000"
14336	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1
14337.LC31:
14338	.ascii	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
14339	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1
14340.LC33:
14341	.ascii	"no ect\000"
14342.LC34:
14343	.ascii	"%s\012\000"
14344	.section	.rodata.FtlLoadSysInfo.str1.1,"aMS",%progbits,1
14345.LC38:
14346	.ascii	"%s hash error this.id =%x page =%x pre_id =%x hash "
14347	.ascii	"=%x hash_r =%x\012\000"
14348	.section	.rodata.FtlMapTblRecovery.str1.1,"aMS",%progbits,1
14349.LC39:
14350	.ascii	"%s last blk_id =%x page =%x hash error hash =%x has"
14351	.ascii	"h_r =%x\012\000"
14352.LC40:
14353	.ascii	"%s scan blk_id =%x page =%x hash error hash =%x has"
14354	.ascii	"h_r =%x\012\000"
14355	.section	.rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1
14356.LC18:
14357	.ascii	"FtlMapWritePage error = %x \012\000"
14358.LC19:
14359	.ascii	"FtlMapWritePage error = %x error count = %d\012\000"
14360	.section	.rodata.FtlProgPages.str1.1,"aMS",%progbits,1
14361.LC36:
14362	.ascii	"Ftlwrite decrement_vpc_count %x = %d\012\000"
14363	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1
14364.LC24:
14365	.ascii	"spuer block %x vpn is 0\012 \000"
14366	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1
14367.LC32:
14368	.ascii	"FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
14369	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1
14370.LC35:
14371	.ascii	"FtlVpcTblFlush error = %x error count = %d\012\000"
14372	.section	.rodata.FtlWrite.str1.1,"aMS",%progbits,1
14373.LC37:
14374	.ascii	"FtlWrite: lpa error:%x %x\012\000"
14375	.section	.rodata.FtlWriteToIDB.str1.1,"aMS",%progbits,1
14376.LC42:
14377	.ascii	"write_idblock fail! %x %x %x %x\012\000"
14378.LC43:
14379	.ascii	"%s idb buffer alloc fail\012\000"
14380.LC44:
14381	.ascii	"%p %x %p %x\012\000"
14382	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1
14383.LC1:
14384	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
14385	.section	.rodata.__func__.10015,"a",%progbits
14386	.set	.LANCHOR175,. + 0
14387	.type	__func__.10015, %object
14388	.size	__func__.10015, 23
14389__func__.10015:
14390	.ascii	"rk_ftl_garbage_collect\000"
14391	.section	.rodata.__func__.10277,"a",%progbits
14392	.set	.LANCHOR137,. + 0
14393	.type	__func__.10277, %object
14394	.size	__func__.10277, 15
14395__func__.10277:
14396	.ascii	"FlashReadPages\000"
14397	.section	.rodata.__func__.10296,"a",%progbits
14398	.set	.LANCHOR142,. + 0
14399	.type	__func__.10296, %object
14400	.size	__func__.10296, 15
14401__func__.10296:
14402	.ascii	"FlashProgPages\000"
14403	.section	.rodata.__func__.10320,"a",%progbits
14404	.set	.LANCHOR77,. + 0
14405	.type	__func__.10320, %object
14406	.size	__func__.10320, 17
14407__func__.10320:
14408	.ascii	"FlashEraseBlocks\000"
14409	.section	.rodata.__func__.10435,"a",%progbits
14410	.set	.LANCHOR185,. + 0
14411	.type	__func__.10435, %object
14412	.size	__func__.10435, 14
14413__func__.10435:
14414	.ascii	"FtlWriteToIDB\000"
14415	.section	.rodata.__func__.8940,"a",%progbits
14416	.set	.LANCHOR169,. + 0
14417	.type	__func__.8940, %object
14418	.size	__func__.8940, 13
14419__func__.8940:
14420	.ascii	"FtlProgPages\000"
14421	.section	.rodata.__func__.8968,"a",%progbits
14422	.set	.LANCHOR177,. + 0
14423	.type	__func__.8968, %object
14424	.size	__func__.8968, 9
14425__func__.8968:
14426	.ascii	"FtlWrite\000"
14427	.section	.rodata.__func__.9043,"a",%progbits
14428	.set	.LANCHOR128,. + 0
14429	.type	__func__.9043, %object
14430	.size	__func__.9043, 14
14431__func__.9043:
14432	.ascii	"FtlBbt2Bitmap\000"
14433	.section	.rodata.__func__.9078,"a",%progbits
14434	.set	.LANCHOR141,. + 0
14435	.type	__func__.9078, %object
14436	.size	__func__.9078, 11
14437__func__.9078:
14438	.ascii	"FtlLoadBbt\000"
14439	.section	.rodata.__func__.9193,"a",%progbits
14440	.set	.LANCHOR49,. + 0
14441	.type	__func__.9193, %object
14442	.size	__func__.9193, 17
14443__func__.9193:
14444	.ascii	"INSERT_FREE_LIST\000"
14445	.section	.rodata.__func__.9198,"a",%progbits
14446	.set	.LANCHOR46,. + 0
14447	.type	__func__.9198, %object
14448	.size	__func__.9198, 17
14449__func__.9198:
14450	.ascii	"INSERT_DATA_LIST\000"
14451	.section	.rodata.__func__.9229,"a",%progbits
14452	.set	.LANCHOR50,. + 0
14453	.type	__func__.9229, %object
14454	.size	__func__.9229, 17
14455__func__.9229:
14456	.ascii	"List_remove_node\000"
14457	.section	.rodata.__func__.9261,"a",%progbits
14458	.set	.LANCHOR54,. + 0
14459	.type	__func__.9261, %object
14460	.size	__func__.9261, 22
14461__func__.9261:
14462	.ascii	"List_update_data_list\000"
14463	.section	.rodata.__func__.9270,"a",%progbits
14464	.set	.LANCHOR150,. + 0
14465	.type	__func__.9270, %object
14466	.size	__func__.9270, 16
14467__func__.9270:
14468	.ascii	"load_l2p_region\000"
14469	.section	.rodata.__func__.9303,"a",%progbits
14470	.set	.LANCHOR81,. + 0
14471	.type	__func__.9303, %object
14472	.size	__func__.9303, 26
14473__func__.9303:
14474	.ascii	"ftl_map_blk_alloc_new_blk\000"
14475	.section	.rodata.__func__.9314,"a",%progbits
14476	.set	.LANCHOR151,. + 0
14477	.type	__func__.9314, %object
14478	.size	__func__.9314, 15
14479__func__.9314:
14480	.ascii	"ftl_map_blk_gc\000"
14481	.section	.rodata.__func__.9329,"a",%progbits
14482	.set	.LANCHOR148,. + 0
14483	.type	__func__.9329, %object
14484	.size	__func__.9329, 31
14485__func__.9329:
14486	.ascii	"Ftl_write_map_blk_to_last_page\000"
14487	.section	.rodata.__func__.9343,"a",%progbits
14488	.set	.LANCHOR149,. + 0
14489	.type	__func__.9343, %object
14490	.size	__func__.9343, 16
14491__func__.9343:
14492	.ascii	"FtlMapWritePage\000"
14493	.section	.rodata.__func__.9368,"a",%progbits
14494	.set	.LANCHOR57,. + 0
14495	.type	__func__.9368, %object
14496	.size	__func__.9368, 22
14497__func__.9368:
14498	.ascii	"select_l2p_ram_region\000"
14499	.section	.rodata.__func__.9385,"a",%progbits
14500	.set	.LANCHOR153,. + 0
14501	.type	__func__.9385, %object
14502	.size	__func__.9385, 9
14503__func__.9385:
14504	.ascii	"log2phys\000"
14505	.section	.rodata.__func__.9449,"a",%progbits
14506	.set	.LANCHOR165,. + 0
14507	.type	__func__.9449, %object
14508	.size	__func__.9449, 15
14509__func__.9449:
14510	.ascii	"FtlVpcTblFlush\000"
14511	.section	.rodata.__func__.9471,"a",%progbits
14512	.set	.LANCHOR140,. + 0
14513	.type	__func__.9471, %object
14514	.size	__func__.9471, 14
14515__func__.9471:
14516	.ascii	"FtlScanSysBlk\000"
14517	.section	.rodata.__func__.9527,"a",%progbits
14518	.set	.LANCHOR178,. + 0
14519	.type	__func__.9527, %object
14520	.size	__func__.9527, 15
14521__func__.9527:
14522	.ascii	"FtlLoadSysInfo\000"
14523	.section	.rodata.__func__.9549,"a",%progbits
14524	.set	.LANCHOR180,. + 0
14525	.type	__func__.9549, %object
14526	.size	__func__.9549, 18
14527__func__.9549:
14528	.ascii	"FtlMapTblRecovery\000"
14529	.section	.rodata.__func__.9595,"a",%progbits
14530	.set	.LANCHOR154,. + 0
14531	.type	__func__.9595, %object
14532	.size	__func__.9595, 16
14533__func__.9595:
14534	.ascii	"FtlReUsePrevPpa\000"
14535	.section	.rodata.__func__.9629,"a",%progbits
14536	.set	.LANCHOR155,. + 0
14537	.type	__func__.9629, %object
14538	.size	__func__.9629, 22
14539__func__.9629:
14540	.ascii	"FtlRecoverySuperblock\000"
14541	.section	.rodata.__func__.9686,"a",%progbits
14542	.set	.LANCHOR60,. + 0
14543	.type	__func__.9686, %object
14544	.size	__func__.9686, 16
14545__func__.9686:
14546	.ascii	"make_superblock\000"
14547	.section	.rodata.__func__.9707,"a",%progbits
14548	.set	.LANCHOR136,. + 0
14549	.type	__func__.9707, %object
14550	.size	__func__.9707, 18
14551__func__.9707:
14552	.ascii	"SupperBlkListInit\000"
14553	.section	.rodata.__func__.9734,"a",%progbits
14554	.set	.LANCHOR159,. + 0
14555	.type	__func__.9734, %object
14556	.size	__func__.9734, 14
14557__func__.9734:
14558	.ascii	"ftl_check_vpc\000"
14559	.section	.rodata.__func__.9799,"a",%progbits
14560	.set	.LANCHOR143,. + 0
14561	.type	__func__.9799, %object
14562	.size	__func__.9799, 25
14563__func__.9799:
14564	.ascii	"allocate_data_superblock\000"
14565	.section	.rodata.__func__.9820,"a",%progbits
14566	.set	.LANCHOR168,. + 0
14567	.type	__func__.9820, %object
14568	.size	__func__.9820, 29
14569__func__.9820:
14570	.ascii	"allocate_new_data_superblock\000"
14571	.section	.rodata.__func__.9827,"a",%progbits
14572	.set	.LANCHOR61,. + 0
14573	.type	__func__.9827, %object
14574	.size	__func__.9827, 19
14575__func__.9827:
14576	.ascii	"get_new_active_ppa\000"
14577	.section	.rodata.__func__.9840,"a",%progbits
14578	.set	.LANCHOR146,. + 0
14579	.type	__func__.9840, %object
14580	.size	__func__.9840, 16
14581__func__.9840:
14582	.ascii	"update_vpc_list\000"
14583	.section	.rodata.__func__.9847,"a",%progbits
14584	.set	.LANCHOR147,. + 0
14585	.type	__func__.9847, %object
14586	.size	__func__.9847, 20
14587__func__.9847:
14588	.ascii	"decrement_vpc_count\000"
14589	.section	.rodata.__func__.9917,"a",%progbits
14590	.set	.LANCHOR170,. + 0
14591	.type	__func__.9917, %object
14592	.size	__func__.9917, 19
14593__func__.9917:
14594	.ascii	"FtlGcFreeTempBlock\000"
14595	.section	.rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1
14596.LC17:
14597	.ascii	"decrement_vpc_count %x = %d\012\000"
14598	.section	.rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1
14599.LC25:
14600	.ascii	"...%s enter...\012\000"
14601.LC26:
14602	.ascii	"FtlCheckVpc2 %x = %x  %x\012\000"
14603.LC27:
14604	.ascii	"free blk vpc error %x = %x  %x\012\000"
14605	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1
14606.LC10:
14607	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
14608	.section	.rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1
14609.LC28:
14610	.ascii	"ftl_scan_all_data = %x\012\000"
14611.LC29:
14612	.ascii	"scan lpa = %x ppa= %x\012\000"
14613.LC30:
14614	.ascii	"lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
14615	.ascii	"\000"
14616	.section	.rodata.load_l2p_region.str1.1,"aMS",%progbits,1
14617.LC20:
14618	.ascii	"region_id = %x phyAddr = %x\012\000"
14619.LC21:
14620	.ascii	"spare:\000"
14621.LC22:
14622	.ascii	"map_ppn:\000"
14623.LC23:
14624	.ascii	"load_l2p_region refresh = %x phyAddr = %x\012\000"
14625	.section	.rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
14626.LC2:
14627	.ascii	"%s 0x%x:\000"
14628.LC3:
14629	.ascii	"%x \000"
14630.LC4:
14631	.ascii	"%02x \000"
14632.LC5:
14633	.ascii	"\012\000"
14634	.section	.rodata.sftl_init.str1.1,"aMS",%progbits,1
14635.LC41:
14636	.ascii	"SFTL version: 5.0.50 20181227\000"
14637	.hidden	free
14638