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