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