xref: /rk3399_rockchip-uboot/drivers/rkflash/rk_sftl_arm_v7.S (revision e336ce4ee5ef2987a9bbe744a80e85c309b2dceb)
1/*
2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
3 *
4 * SPDX-License-Identifier:    GPL-2.0
5 * date: 2020-09-25
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	movw	r2, #789
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, #2150
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, #2785
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, #2786
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, #2787
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, #2810
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, #2212
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	movw	r2, #1225
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, #1266
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, #1391
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, .L665
4885	push	{r4, r5, r6, r7, r8, r10, fp, lr}
4886	sub	sp, sp, #48
4887	ldr	fp, .L665+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, #12]
4894	str	r3, [sp, #4]
4895	lsls	r3, r3, #3
4896	str	r3, [sp, #8]
4897.L628:
4898	cmp	r8, r10
4899	bne	.L641
4900	ldr	r6, .L665+4
4901	movs	r5, #0
4902.L642:
4903	cmp	r8, r5
4904	beq	.L663
4905	ldr	r7, .L665+8
4906	movs	r1, #0
4907	ldr	r2, [r6]
4908	add	r0, sp, #28
4909	ldr	r3, [r7]
4910	str	r1, [r2]
4911	str	r1, [r3]
4912	ldr	r1, [r4, #4]
4913	str	r2, [sp, #36]
4914	ldr	r2, [sp, #12]
4915	str	r1, [sp, #32]
4916	movs	r1, #1
4917	str	r3, [sp, #40]
4918	bl	FlashReadPages
4919	ldr	r10, [sp, #28]
4920	cmp	r10, #-1
4921	bne	.L643
4922	ldr	r1, [r4, #4]
4923	ldr	r0, .L665+12
4924	bl	printf
4925	str	r10, [r4]
4926.L643:
4927	ldr	r10, [sp, #28]
4928	cmp	r10, #256
4929	bne	.L644
4930	ldr	r1, [r4, #4]
4931	ldr	r0, .L665+16
4932	bl	printf
4933	str	r10, [r4]
4934.L644:
4935	ldr	r3, [r4, #12]
4936	cbz	r3, .L645
4937	ldr	r2, [r3]
4938	ldr	r3, [r7]
4939	ldr	r3, [r3]
4940	cmp	r2, r3
4941	beq	.L645
4942	ldr	r1, [r4, #4]
4943	ldr	r0, .L665+20
4944	bl	printf
4945	mov	r3, #-1
4946	str	r3, [r4]
4947.L645:
4948	ldr	r3, [r4, #8]
4949	cbz	r3, .L646
4950	ldr	r2, [r3]
4951	ldr	r3, [r6]
4952	ldr	r3, [r3]
4953	cmp	r2, r3
4954	beq	.L646
4955	ldr	r1, [r4, #4]
4956	ldr	r0, .L665+24
4957	bl	printf
4958	mov	r3, #-1
4959	str	r3, [r4]
4960.L646:
4961	adds	r5, r5, #1
4962	adds	r4, r4, #20
4963	b	.L642
4964.L641:
4965	ldr	r3, [r5, #8]
4966	cbz	r3, .L629
4967	ldr	r3, [r5, #12]
4968	cbnz	r3, .L630
4969.L629:
4970	movs	r2, #142
4971	ldr	r1, .L665+28
4972	ldr	r0, .L665+32
4973	bl	printf
4974.L630:
4975	add	r2, sp, #20
4976	add	r1, sp, #24
4977	ldr	r0, [r5, #4]
4978	bl	l2p_addr_tran.isra.0
4979	ldr	r6, [sp, #20]
4980	cmp	r6, #3
4981	bls	.L631
4982.L664:
4983	mov	r3, #-1
4984	str	r3, [r5]
4985	b	.L632
4986.L631:
4987	cbnz	r6, .L633
4988	ldr	r3, [sp, #24]
4989	ldr	r2, [sp, #8]
4990	cmp	r2, r3
4991	bls	.L633
4992	ldr	r5, .L665+28
4993	ldr	r7, .L665+36
4994	b	.L662
4995.L635:
4996	mov	r3, #-1
4997	ldr	r2, [r4, #-16]
4998	str	r3, [r4, #-20]
4999	mov	r1, r5
5000	mov	r0, r7
5001	adds	r6, r6, #1
5002	bl	printf
5003	movs	r3, #16
5004	movs	r2, #4
5005	ldr	r1, [r4, #-12]
5006	ldr	r0, .L665+40
5007	bl	rknand_print_hex
5008	movs	r3, #4
5009	ldr	r1, [r4, #-8]
5010	mov	r2, r3
5011	ldr	r0, .L665+44
5012	bl	rknand_print_hex
5013.L662:
5014	cmp	r6, r10
5015	add	r4, r4, #20
5016	bne	.L635
5017.L663:
5018	movs	r0, #0
5019	add	sp, sp, #48
5020	@ sp needed
5021	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5022.L633:
5023	ldr	r1, [r5, #8]
5024	lsls	r3, r1, #26
5025	beq	.L649
5026	ldr	r3, .L665+4
5027	ldr	r6, [r3]
5028	cmp	r1, r6
5029	beq	.L636
5030	ldr	r3, .L665+48
5031	mov	r0, r6
5032	ldrh	r2, [r3]
5033	lsls	r2, r2, #9
5034	bl	ftl_memcpy
5035.L636:
5036	ldr	r3, [r5, #12]
5037	mov	r2, r6
5038	ldr	r1, [sp, #24]
5039	ldrb	r0, [sp, #20]	@ zero_extendqisi2
5040	ldr	r7, [fp, #8]
5041	blx	r7
5042	cbnz	r0, .L637
5043	str	r0, [r5]
5044.L638:
5045	ldr	r3, .L665
5046	ldrh	r3, [r3, #14]
5047	cmp	r3, #4
5048	bne	.L632
5049	ldr	r0, [sp, #4]
5050	add	r2, r6, #2048
5051	ldr	r3, [r5, #12]
5052	ldr	r1, [sp, #24]
5053	ldr	r6, [fp, #8]
5054	adds	r3, r3, #8
5055	add	r1, r1, r0
5056	ldrb	r0, [sp, #20]	@ zero_extendqisi2
5057	blx	r6
5058	cmp	r0, #0
5059	bne	.L664
5060.L632:
5061	add	r8, r8, #1
5062	adds	r5, r5, #20
5063	b	.L628
5064.L649:
5065	mov	r6, r1
5066	b	.L636
5067.L637:
5068	mov	r3, #-1
5069	str	r3, [r5]
5070	b	.L638
5071.L666:
5072	.align	2
5073.L665:
5074	.word	.LANCHOR0
5075	.word	.LANCHOR110
5076	.word	.LANCHOR112
5077	.word	.LC14
5078	.word	.LC15
5079	.word	.LC16
5080	.word	.LC17
5081	.word	.LANCHOR141
5082	.word	.LC1
5083	.word	.LC6
5084	.word	.LC7
5085	.word	.LC8
5086	.word	.LANCHOR11
5087	.word	.LANCHOR77
5088	.size	FlashProgPages, .-FlashProgPages
5089	.section	.text.FtlLowFormatEraseBlock,"ax",%progbits
5090	.align	1
5091	.global	FtlLowFormatEraseBlock
5092	.syntax unified
5093	.thumb
5094	.thumb_func
5095	.fpu softvfp
5096	.type	FtlLowFormatEraseBlock, %function
5097FtlLowFormatEraseBlock:
5098	@ args = 0, pretend = 0, frame = 32
5099	@ frame_needed = 0, uses_anonymous_args = 0
5100	ldr	r3, .L710
5101	push	{r4, r5, r6, r7, r8, r10, fp, lr}
5102	sub	sp, sp, #32
5103	ldr	r7, .L710+4
5104	mov	r8, #0
5105	mov	r6, r1
5106	mov	r5, r8
5107	str	r0, [r3]
5108	mov	r4, r8
5109	ldr	r3, .L710+8
5110	mov	fp, #20
5111	ldr	r10, [r7]
5112	str	r0, [sp, #4]
5113	ldrh	r3, [r3]
5114	str	r3, [sp, #12]
5115	ldr	r3, .L710+12
5116	ldr	r3, [r3]
5117	str	r3, [sp, #16]
5118	ldr	r3, .L710+16
5119	ldr	r3, [r3]
5120	str	r3, [sp, #20]
5121	ldr	r3, .L710+20
5122	ldrh	r3, [r3]
5123	str	r3, [sp, #24]
5124.L668:
5125	ldr	r3, [sp, #12]
5126	uxth	r2, r8
5127	cmp	r3, r2
5128	bhi	.L672
5129	cmp	r5, #0
5130	beq	.L667
5131	mov	r0, r10
5132	mov	r8, #0
5133	mov	r10, #20
5134	mov	r2, r5
5135	movs	r1, #0
5136	bl	FlashEraseBlocks
5137.L675:
5138	uxth	r3, r8
5139	cmp	r5, r3
5140	bhi	.L677
5141	cmp	r6, #0
5142	beq	.L693
5143	ldr	r3, .L710+24
5144	mov	r10, #1
5145	ldrh	r3, [r3]
5146	str	r3, [sp, #8]
5147.L678:
5148	movs	r7, #0
5149.L687:
5150	ldr	r3, .L710+8
5151	mov	r8, #0
5152	mov	r5, r8
5153	ldrh	r3, [r3]
5154	str	r3, [sp, #16]
5155	ldr	r3, .L710+4
5156	ldr	fp, [r3]
5157	ldr	r3, .L710+28
5158	ldr	r3, [r3]
5159	str	r3, [sp, #20]
5160	ldr	r3, .L710+12
5161	ldr	r3, [r3]
5162	str	r3, [sp, #24]
5163	ldr	r3, .L710+20
5164	ldrh	r3, [r3]
5165	str	r3, [sp, #28]
5166.L679:
5167	ldr	r3, [sp, #16]
5168	uxth	r2, r8
5169	cmp	r3, r2
5170	bhi	.L682
5171	cbz	r5, .L667
5172	mov	r0, fp
5173	ldr	fp, .L710+4
5174	movs	r3, #1
5175	mov	r2, r10
5176	mov	r1, r5
5177	mov	r8, #0
5178	bl	FlashProgPages
5179	movs	r3, #20
5180.L684:
5181	uxth	r2, r8
5182	cmp	r5, r2
5183	bhi	.L686
5184	adds	r7, r7, #1
5185	ldr	r2, [sp, #8]
5186	uxth	r3, r7
5187	cmp	r2, r3
5188	bhi	.L687
5189	ldr	r8, .L710+4
5190	movs	r7, #0
5191	mov	fp, #20
5192.L688:
5193	uxth	r3, r7
5194	cmp	r5, r3
5195	bhi	.L690
5196	ldr	r3, [sp, #4]
5197	cmp	r3, #63
5198	bls	.L691
5199	cbz	r6, .L667
5200.L691:
5201	ldr	r3, .L710+4
5202	mov	r2, r5
5203	mov	r1, r10
5204	ldr	r0, [r3]
5205	bl	FlashEraseBlocks
5206.L667:
5207	mov	r0, r4
5208	add	sp, sp, #32
5209	@ sp needed
5210	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5211.L672:
5212	mul	r2, fp, r8
5213	movs	r3, #0
5214	ldr	r1, [sp, #4]
5215	str	r3, [r10, r2]
5216	ldr	r3, .L710+32
5217	ldrb	r0, [r3, r8]	@ zero_extendqisi2
5218	bl	V2P_block
5219	str	r0, [sp, #8]
5220	cbz	r6, .L669
5221	bl	IsBlkInVendorPart
5222	cbnz	r0, .L670
5223.L669:
5224	ldr	r0, [sp, #8]
5225	bl	FtlBbmIsBadBlock
5226	cbnz	r0, .L671
5227	ldr	r3, [sp, #8]
5228	mla	r1, fp, r5, r10
5229	lsls	r2, r3, #10
5230	ldr	r3, [sp, #16]
5231	str	r2, [r1, #4]
5232	str	r3, [r1, #8]
5233	ldr	r3, [sp, #24]
5234	mul	r2, r3, r5
5235	ldr	r3, [sp, #20]
5236	adds	r5, r5, #1
5237	uxth	r5, r5
5238	bic	r2, r2, #3
5239	add	r2, r2, r3
5240	str	r2, [r1, #12]
5241.L670:
5242	add	r8, r8, #1
5243	b	.L668
5244.L671:
5245	adds	r4, r4, #1
5246	uxth	r4, r4
5247	b	.L670
5248.L677:
5249	mul	r3, r10, r8
5250	ldr	r2, [r7]
5251	adds	r1, r2, r3
5252	ldr	r3, [r2, r3]
5253	adds	r3, r3, #1
5254	bne	.L676
5255	ldr	r0, [r1, #4]
5256	adds	r4, r4, #1
5257	uxth	r4, r4
5258	ubfx	r0, r0, #10, #16
5259	bl	FtlBbmMapBadBlock
5260.L676:
5261	add	r8, r8, #1
5262	b	.L675
5263.L693:
5264	movs	r3, #2
5265	mov	r10, r6
5266	str	r3, [sp, #8]
5267	b	.L678
5268.L682:
5269	movs	r3, #20
5270	ldr	r1, [sp, #4]
5271	mul	r2, r3, r8
5272	movs	r3, #0
5273	str	r3, [fp, r2]
5274	ldr	r3, .L710+32
5275	ldrb	r0, [r3, r8]	@ zero_extendqisi2
5276	bl	V2P_block
5277	str	r0, [sp, #12]
5278	cbz	r6, .L680
5279	bl	IsBlkInVendorPart
5280	cbnz	r0, .L681
5281.L680:
5282	ldr	r0, [sp, #12]
5283	bl	FtlBbmIsBadBlock
5284	cbnz	r0, .L681
5285	movs	r3, #20
5286	mla	r1, r3, r5, fp
5287	ldr	r3, [sp, #12]
5288	add	r2, r7, r3, lsl #10
5289	ldr	r3, [sp, #20]
5290	str	r2, [r1, #4]
5291	str	r3, [r1, #8]
5292	ldr	r3, [sp, #28]
5293	mul	r2, r3, r5
5294	ldr	r3, [sp, #24]
5295	adds	r5, r5, #1
5296	uxth	r5, r5
5297	bic	r2, r2, #3
5298	add	r2, r2, r3
5299	str	r2, [r1, #12]
5300.L681:
5301	add	r8, r8, #1
5302	b	.L679
5303.L686:
5304	mul	r2, r3, r8
5305	ldr	r1, [fp]
5306	adds	r0, r1, r2
5307	ldr	r2, [r1, r2]
5308	cbz	r2, .L685
5309	ldr	r0, [r0, #4]
5310	adds	r4, r4, #1
5311	str	r3, [sp, #12]
5312	uxth	r4, r4
5313	ubfx	r0, r0, #10, #16
5314	bl	FtlBbmMapBadBlock
5315	ldr	r3, [sp, #12]
5316.L685:
5317	add	r8, r8, #1
5318	b	.L684
5319.L690:
5320	cbz	r6, .L689
5321	mul	r3, fp, r7
5322	ldr	r2, [r8]
5323	adds	r1, r2, r3
5324	ldr	r3, [r2, r3]
5325	cbnz	r3, .L689
5326	ldr	r0, [r1, #4]
5327	movs	r1, #1
5328	ubfx	r0, r0, #10, #16
5329	bl	FtlFreeSysBlkQueueIn
5330.L689:
5331	adds	r7, r7, #1
5332	b	.L688
5333.L711:
5334	.align	2
5335.L710:
5336	.word	.LANCHOR98
5337	.word	.LANCHOR78
5338	.word	.LANCHOR2
5339	.word	.LANCHOR109
5340	.word	.LANCHOR114
5341	.word	.LANCHOR23
5342	.word	.LANCHOR19
5343	.word	.LANCHOR108
5344	.word	.LANCHOR12
5345	.size	FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
5346	.section	.text.FlashTestBlk,"ax",%progbits
5347	.align	1
5348	.global	FlashTestBlk
5349	.syntax unified
5350	.thumb
5351	.thumb_func
5352	.fpu softvfp
5353	.type	FlashTestBlk, %function
5354FlashTestBlk:
5355	@ args = 0, pretend = 0, frame = 88
5356	@ frame_needed = 0, uses_anonymous_args = 0
5357	cmp	r0, #11
5358	push	{r4, r5, lr}
5359	mov	r5, r0
5360	sub	sp, sp, #92
5361	bls	.L715
5362	ldr	r4, .L717
5363	add	r0, sp, #24
5364	movs	r2, #32
5365	movs	r1, #165
5366	str	r0, [sp, #16]
5367	lsls	r5, r5, #10
5368	ldr	r3, [r4]
5369	str	r3, [sp, #12]
5370	bl	ftl_memset
5371	movs	r2, #8
5372	movs	r1, #90
5373	ldr	r0, [r4]
5374	bl	ftl_memset
5375	movs	r2, #1
5376	add	r0, sp, #4
5377	mov	r1, r2
5378	str	r5, [sp, #8]
5379	bl	FlashEraseBlocks
5380	movs	r3, #1
5381	add	r0, sp, #4
5382	mov	r2, r3
5383	mov	r1, r3
5384	bl	FlashProgPages
5385	ldr	r3, [sp, #4]
5386	cbnz	r3, .L716
5387	adds	r3, r5, #1
5388	add	r0, sp, #4
5389	str	r3, [sp, #8]
5390	movs	r3, #1
5391	mov	r2, r3
5392	mov	r1, r3
5393	bl	FlashProgPages
5394	ldr	r4, [sp, #4]
5395	adds	r4, r4, #0
5396	it	ne
5397	movne	r4, #1
5398	negs	r4, r4
5399.L714:
5400	movs	r2, #1
5401	movs	r1, #0
5402	add	r0, sp, #4
5403	str	r5, [sp, #8]
5404	bl	FlashEraseBlocks
5405.L712:
5406	mov	r0, r4
5407	add	sp, sp, #92
5408	@ sp needed
5409	pop	{r4, r5, pc}
5410.L716:
5411	mov	r4, #-1
5412	b	.L714
5413.L715:
5414	movs	r4, #0
5415	b	.L712
5416.L718:
5417	.align	2
5418.L717:
5419	.word	.LANCHOR111
5420	.size	FlashTestBlk, .-FlashTestBlk
5421	.section	.text.FtlBbmTblFlush,"ax",%progbits
5422	.align	1
5423	.global	FtlBbmTblFlush
5424	.syntax unified
5425	.thumb
5426	.thumb_func
5427	.fpu softvfp
5428	.type	FtlBbmTblFlush, %function
5429FtlBbmTblFlush:
5430	@ args = 0, pretend = 0, frame = 8
5431	@ frame_needed = 0, uses_anonymous_args = 0
5432	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
5433	movs	r1, #0
5434	ldr	r7, .L733
5435	movs	r4, #0
5436	ldr	r5, .L733+4
5437	ldr	r3, [r7]
5438	ldr	fp, .L733+52
5439	ldr	r6, .L733+8
5440	str	r3, [r5, #12]
5441	ldr	r3, .L733+12
5442	ldr	r0, [fp]
5443	ldr	r8, .L733+56
5444	ldrh	r2, [r3]
5445	str	r0, [r5, #8]
5446	bl	ftl_memset
5447	str	r7, [sp, #12]
5448	ldr	r7, .L733+16
5449.L720:
5450	ldrh	r3, [r7]
5451	cmp	r4, r3
5452	blt	.L721
5453	ldr	r6, [r5, #12]
5454	movs	r2, #16
5455	ldr	r4, .L733+20
5456	movs	r1, #255
5457	movs	r7, #0
5458	mov	r0, r6
5459	mov	r8, r7
5460	bl	ftl_memset
5461	movw	r3, #61649
5462	mov	r10, r4
5463	strh	r3, [r6]	@ movhi
5464	ldr	r3, [r4, #8]
5465	str	r3, [r6, #4]
5466	ldrh	r3, [r4]
5467	strh	r3, [r6, #2]	@ movhi
5468	ldrh	r3, [r4, #4]
5469	strh	r3, [r6, #8]	@ movhi
5470	ldrh	r3, [r4, #6]
5471	strh	r3, [r6, #10]	@ movhi
5472	ldr	r3, .L733+24
5473	ldr	r3, [r3]
5474	strh	r3, [r6, #12]	@ movhi
5475	ldr	r3, .L733+28
5476	ldr	r3, [r3]
5477	strh	r3, [r6, #14]	@ movhi
5478.L722:
5479	ldr	r3, [fp]
5480	ldrh	r2, [r4, #2]
5481	ldrh	r1, [r4]
5482	str	r3, [r5, #8]
5483	ldr	r3, [sp, #12]
5484	ldrh	r0, [r6, #10]
5485	ldr	r3, [r3]
5486	str	r3, [r5, #12]
5487	movs	r3, #0
5488	str	r3, [r5]
5489	orr	r3, r2, r1, lsl #10
5490	str	r3, [r5, #4]
5491	ldrh	r3, [r4, #4]
5492	str	r0, [sp]
5493	ldr	r0, .L733+32
5494	bl	printf
5495	ldr	r3, .L733+36
5496	ldrh	r2, [r4, #2]
5497	ldrh	r3, [r3]
5498	subs	r3, r3, #1
5499	cmp	r2, r3
5500	blt	.L723
5501	ldr	r3, [r4, #8]
5502	mov	r1, #0	@ movhi
5503	ldrh	r2, [r4]
5504	strh	r1, [r4, #2]	@ movhi
5505	adds	r3, r3, #1
5506	str	r3, [r4, #8]
5507	str	r3, [r6, #4]
5508	strh	r2, [r6, #8]	@ movhi
5509	ldrh	r3, [r4, #4]
5510	strh	r2, [r4, #4]	@ movhi
5511	ldr	r2, .L733+40
5512	strh	r3, [r4]	@ movhi
5513	lsls	r3, r3, #10
5514	ldr	r0, [r2]
5515	movs	r2, #1
5516	str	r3, [r5, #4]
5517	mov	r1, r2
5518	str	r3, [r0, #4]
5519	bl	FlashEraseBlocks
5520.L723:
5521	movs	r3, #1
5522	ldr	r0, .L733+4
5523	mov	r2, r3
5524	mov	r1, r3
5525	bl	FlashProgPages
5526	ldrh	r3, [r10, #2]
5527	adds	r3, r3, #1
5528	strh	r3, [r10, #2]	@ movhi
5529	ldr	r3, [r5]
5530	adds	r2, r3, #1
5531	bne	.L724
5532	adds	r7, r7, #1
5533	ldr	r1, [r5, #4]
5534	uxth	r7, r7
5535	ldr	r0, .L733+44
5536	bl	printf
5537	cmp	r7, #3
5538	bls	.L722
5539	mov	r2, r7
5540	ldr	r1, [r5, #4]
5541	ldr	r0, .L733+48
5542	bl	printf
5543.L726:
5544	b	.L726
5545.L721:
5546	ldrh	r2, [r8]
5547	ldr	r3, [r5, #8]
5548	ldr	r1, [r6, #4]!
5549	mul	r0, r2, r4
5550	lsls	r2, r2, #2
5551	adds	r4, r4, #1
5552	add	r0, r3, r0, lsl #2
5553	bl	ftl_memcpy
5554	b	.L720
5555.L724:
5556	add	r8, r8, #1
5557	cmp	r8, #1
5558	beq	.L722
5559	cmp	r3, #256
5560	beq	.L722
5561	movs	r0, #0
5562	add	sp, sp, #16
5563	@ sp needed
5564	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5565.L734:
5566	.align	2
5567.L733:
5568	.word	.LANCHOR113
5569	.word	.LANCHOR137
5570	.word	.LANCHOR36+24
5571	.word	.LANCHOR22
5572	.word	.LANCHOR9
5573	.word	.LANCHOR36
5574	.word	.LANCHOR1
5575	.word	.LANCHOR142
5576	.word	.LC18
5577	.word	.LANCHOR19
5578	.word	.LANCHOR78
5579	.word	.LC19
5580	.word	.LC20
5581	.word	.LANCHOR105
5582	.word	.LANCHOR126
5583	.size	FtlBbmTblFlush, .-FtlBbmTblFlush
5584	.section	.text.allocate_data_superblock,"ax",%progbits
5585	.align	1
5586	.global	allocate_data_superblock
5587	.syntax unified
5588	.thumb
5589	.thumb_func
5590	.fpu softvfp
5591	.type	allocate_data_superblock, %function
5592allocate_data_superblock:
5593	@ args = 0, pretend = 0, frame = 8
5594	@ frame_needed = 0, uses_anonymous_args = 0
5595	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5596	mov	r4, r0
5597	ldr	r10, .L774
5598.L736:
5599	ldr	r3, .L774
5600	ldr	r8, .L774+80
5601	ldr	r7, .L774+4
5602	ldrh	r3, [r3]
5603	ldrh	r2, [r8]
5604	add	r3, r3, r2
5605	ldrh	r2, [r7]
5606	cmp	r3, r2
5607	ble	.L737
5608	movw	r2, #2660
5609	ldr	r1, .L774+8
5610	ldr	r0, .L774+12
5611	bl	printf
5612.L737:
5613	ldr	r3, .L774+16
5614	cmp	r4, r3
5615	bne	.L763
5616	ldr	r2, .L774+20
5617	ldrh	r3, [r10]
5618	ldr	r2, [r2]
5619	lsrs	r1, r3, #1
5620	muls	r2, r3, r2
5621	adds	r1, r1, #1
5622	add	r1, r1, r2, lsr #2
5623	uxth	r1, r1
5624	cbz	r1, .L738
5625	subs	r1, r1, #1
5626	uxth	r1, r1
5627.L738:
5628	ldr	r0, .L774+24
5629	bl	List_pop_index_node
5630	ldrh	r3, [r10]
5631	mov	r5, r0
5632	uxth	fp, r0
5633	cbnz	r3, .L739
5634	movw	r2, #2669
5635	ldr	r1, .L774+8
5636	ldr	r0, .L774+12
5637	bl	printf
5638.L739:
5639	ldrh	r3, [r10]
5640	subs	r3, r3, #1
5641	strh	r3, [r10]	@ movhi
5642	ldrh	r3, [r7]
5643	cmp	r3, fp
5644	bls	.L736
5645	uxth	r5, r5
5646	lsls	r3, r5, #1
5647	str	r3, [sp]
5648	ldr	r3, .L774+28
5649	ldr	r3, [r3]
5650	ldrh	r6, [r3, r5, lsl #1]
5651	cmp	r6, #0
5652	bne	.L736
5653	strh	fp, [r4]	@ movhi
5654	mov	r0, r4
5655	bl	make_superblock
5656	ldrb	r3, [r4, #7]	@ zero_extendqisi2
5657	cbnz	r3, .L741
5658	ldr	r3, .L774+28
5659	movw	r2, #65535
5660	mov	r0, fp
5661	ldr	r3, [r3]
5662	strh	r2, [r3, r5, lsl #1]	@ movhi
5663	bl	INSERT_DATA_LIST
5664	ldrh	r2, [r8]
5665	ldrh	r3, [r10]
5666	add	r3, r3, r2
5667	ldrh	r2, [r7]
5668	cmp	r3, r2
5669	ble	.L736
5670	movw	r2, #2683
5671	ldr	r1, .L774+8
5672	ldr	r0, .L774+12
5673	bl	printf
5674	b	.L736
5675.L763:
5676	movs	r1, #0
5677	b	.L738
5678.L741:
5679	ldrh	r2, [r8]
5680	ldrh	r3, [r10]
5681	add	r3, r3, r2
5682	ldrh	r2, [r7]
5683	cmp	r3, r2
5684	ble	.L743
5685	movw	r2, #2686
5686	ldr	r1, .L774+8
5687	ldr	r0, .L774+12
5688	bl	printf
5689.L743:
5690	ldr	r3, .L774+32
5691	add	lr, r4, #16
5692	ldr	r2, .L774+36
5693	mov	r8, #0
5694	ldr	ip, [r3]
5695	ldrh	r0, [r2]
5696	movs	r2, #20
5697	str	r2, [sp, #4]
5698	mov	r3, ip
5699	mla	r0, r2, r0, ip
5700.L744:
5701	cmp	r0, r3
5702	bne	.L746
5703	cbnz	r6, .L747
5704	movw	r2, #2697
5705	ldr	r1, .L774+8
5706	ldr	r0, .L774+12
5707	bl	printf
5708.L747:
5709	ldr	r3, .L774+40
5710	ldrh	r3, [r3]
5711	cmp	r3, fp
5712	bne	.L748
5713	movw	r2, #2699
5714	ldr	r1, .L774+8
5715	ldr	r0, .L774+12
5716	bl	printf
5717.L748:
5718	ldrb	r3, [r4, #8]	@ zero_extendqisi2
5719	ldr	r0, .L774+44
5720	ldr	ip, .L774+84
5721	ldr	r1, .L774+48
5722	ldr	r2, .L774+52
5723	ldr	lr, [r0]
5724	cmp	r3, #0
5725	bne	.L749
5726	ldrh	r3, [lr, r5, lsl #1]
5727	cmp	r3, #0
5728	beq	.L750
5729	ldrh	r8, [ip]
5730	add	r3, r3, r8
5731.L773:
5732	strh	r3, [lr, r5, lsl #1]	@ movhi
5733	ldr	r3, [r1]
5734	adds	r3, r3, #1
5735	str	r3, [r1]
5736.L752:
5737	ldr	r3, [r0]
5738	ldr	r0, .L774+56
5739	ldrh	lr, [r3, r5, lsl #1]
5740	ldr	r3, [r0]
5741	cmp	lr, r3
5742	ldr	r3, [r2]
5743	it	hi
5744	strhi	lr, [r0]
5745	ldrh	r0, [ip]
5746	ldr	ip, [r1]
5747	ldrh	r1, [r7]
5748	ldr	r7, .L774+60
5749	mla	r0, ip, r0, r3
5750	bl	__aeabi_uidiv
5751	ldr	r3, .L774+64
5752	str	r0, [r3]
5753	ldr	r3, .L774+68
5754	ldr	r2, [r3]
5755	ldr	r3, [r2, #16]
5756	adds	r3, r3, #1
5757	str	r3, [r2, #16]
5758	movs	r2, #20
5759	ldr	r3, .L774+32
5760	ldr	r0, [r3]
5761	adds	r3, r0, #4
5762	mla	r2, r2, r6, r0
5763	adds	r2, r2, #24
5764.L754:
5765	adds	r3, r3, #20
5766	cmp	r2, r3
5767	bne	.L755
5768	movs	r7, #0
5769	mov	r2, r6
5770	mov	r8, r7
5771	ldrb	r1, [r4, #8]	@ zero_extendqisi2
5772	bl	FlashEraseBlocks
5773.L756:
5774	uxth	r3, r7
5775	cmp	r6, r3
5776	bhi	.L758
5777	cmp	r8, #0
5778	beq	.L759
5779	mov	r0, fp
5780	bl	update_multiplier_value
5781	bl	FtlBbmTblFlush
5782.L759:
5783	ldrb	r2, [r4, #7]	@ zero_extendqisi2
5784	cmp	r2, #0
5785	bne	.L760
5786	ldr	r3, .L774+28
5787	movw	r2, #65535
5788	ldr	r3, [r3]
5789	strh	r2, [r3, r5, lsl #1]	@ movhi
5790	b	.L736
5791.L746:
5792	ldrh	r1, [lr], #2
5793	movw	r2, #65535
5794	str	r8, [r3, #8]
5795	str	r8, [r3, #12]
5796	cmp	r1, r2
5797	beq	.L745
5798	ldr	r2, [sp, #4]
5799	lsls	r1, r1, #10
5800	mla	r2, r2, r6, ip
5801	adds	r6, r6, #1
5802	uxth	r6, r6
5803	str	r1, [r2, #4]
5804.L745:
5805	adds	r3, r3, #20
5806	b	.L744
5807.L750:
5808	movs	r3, #2
5809	b	.L773
5810.L749:
5811	ldrh	r3, [lr, r5, lsl #1]
5812	adds	r3, r3, #1
5813	strh	r3, [lr, r5, lsl #1]	@ movhi
5814	ldr	r3, [r2]
5815	adds	r3, r3, #1
5816	str	r3, [r2]
5817	b	.L752
5818.L755:
5819	ldr	r1, [r3, #-20]
5820	ands	r1, r1, r7
5821	str	r1, [r3, #-20]
5822	b	.L754
5823.L758:
5824	ldr	r2, .L774+32
5825	movs	r3, #20
5826	muls	r3, r7, r3
5827	ldr	r2, [r2]
5828	adds	r1, r2, r3
5829	ldr	r2, [r2, r3]
5830	adds	r3, r2, #1
5831	bne	.L757
5832	ldr	r0, [r1, #4]
5833	add	r8, r8, #1
5834	str	r2, [sp, #4]
5835	ubfx	r0, r0, #10, #16
5836	bl	FtlBbmMapBadBlock
5837	ldr	r2, [sp, #4]
5838	add	r3, r4, r7, lsl #1
5839	strh	r2, [r3, #16]	@ movhi
5840	ldrb	r3, [r4, #7]	@ zero_extendqisi2
5841	subs	r3, r3, #1
5842	strb	r3, [r4, #7]
5843.L757:
5844	adds	r7, r7, #1
5845	b	.L756
5846.L760:
5847	ldr	r3, .L774+72
5848	ldr	r1, .L774+76
5849	ldrh	r3, [r3]
5850	strh	fp, [r4]	@ movhi
5851	smulbb	r3, r3, r2
5852	movs	r2, #0
5853	strh	r2, [r4, #2]	@ movhi
5854	strb	r2, [r4, #6]
5855	ldr	r2, [r1]
5856	uxth	r3, r3
5857	strh	r3, [r4, #4]	@ movhi
5858	str	r2, [r4, #12]
5859	adds	r2, r2, #1
5860	str	r2, [r1]
5861	ldr	r2, .L774+28
5862	ldr	r1, [sp]
5863	ldr	r2, [r2]
5864	strh	r3, [r2, r1]	@ movhi
5865	ldrh	r3, [r4, #4]
5866	cbz	r3, .L761
5867	ldrb	r3, [r4, #7]	@ zero_extendqisi2
5868	cbnz	r3, .L762
5869.L761:
5870	mov	r2, #2752
5871	ldr	r1, .L774+8
5872	ldr	r0, .L774+12
5873	bl	printf
5874.L762:
5875	movs	r0, #0
5876	add	sp, sp, #8
5877	@ sp needed
5878	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5879.L775:
5880	.align	2
5881.L774:
5882	.word	.LANCHOR47
5883	.word	.LANCHOR4
5884	.word	.LANCHOR143
5885	.word	.LC1
5886	.word	.LANCHOR52
5887	.word	.LANCHOR94
5888	.word	.LANCHOR45
5889	.word	.LANCHOR41
5890	.word	.LANCHOR78
5891	.word	.LANCHOR2
5892	.word	.LANCHOR144
5893	.word	.LANCHOR46
5894	.word	.LANCHOR89
5895	.word	.LANCHOR90
5896	.word	.LANCHOR91
5897	.word	-1024
5898	.word	.LANCHOR142
5899	.word	.LANCHOR117
5900	.word	.LANCHOR18
5901	.word	.LANCHOR81
5902	.word	.LANCHOR43
5903	.word	.LANCHOR13
5904	.size	allocate_data_superblock, .-allocate_data_superblock
5905	.section	.text.FtlGcFreeBadSuperBlk,"ax",%progbits
5906	.align	1
5907	.global	FtlGcFreeBadSuperBlk
5908	.syntax unified
5909	.thumb
5910	.thumb_func
5911	.fpu softvfp
5912	.type	FtlGcFreeBadSuperBlk, %function
5913FtlGcFreeBadSuperBlk:
5914	@ args = 0, pretend = 0, frame = 8
5915	@ frame_needed = 0, uses_anonymous_args = 0
5916	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
5917	mov	r10, r0
5918	ldr	r4, .L788
5919	ldrh	r3, [r4]
5920	cbz	r3, .L777
5921	ldr	r8, .L788+12
5922	movs	r7, #0
5923.L778:
5924	ldr	r3, .L788+4
5925	ldrh	r2, [r3]
5926	uxth	r3, r7
5927	cmp	r2, r3
5928	bhi	.L784
5929	bl	FtlGcReFreshBadBlk
5930.L777:
5931	movs	r0, #0
5932	add	sp, sp, #8
5933	@ sp needed
5934	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
5935.L784:
5936	ldr	r2, .L788+8
5937	uxth	r3, r7
5938	mov	r1, r10
5939	mov	fp, #0
5940	ldrb	r0, [r2, r3]	@ zero_extendqisi2
5941	bl	V2P_block
5942	mov	r1, r0
5943.L779:
5944	ldrh	r3, [r4]
5945	uxth	r5, fp
5946	cmp	r3, r5
5947	bhi	.L783
5948	adds	r7, r7, #1
5949	b	.L778
5950.L783:
5951	uxth	r6, fp
5952	ldrh	r3, [r8, r6, lsl #1]
5953	cmp	r3, r1
5954	bne	.L780
5955	mov	r0, r1
5956	str	r1, [sp, #4]
5957	bl	FtlBbmMapBadBlock
5958	bl	FtlBbmTblFlush
5959	ldrh	r2, [r4]
5960	add	r3, r8, r6, lsl #1
5961	ldr	r1, [sp, #4]
5962.L781:
5963	cmp	r5, r2
5964	bcc	.L782
5965	subs	r2, r2, #1
5966	strh	r2, [r4]	@ movhi
5967.L780:
5968	add	fp, fp, #1
5969	b	.L779
5970.L782:
5971	ldrh	r0, [r3, #2]!
5972	adds	r5, r5, #1
5973	uxth	r5, r5
5974	strh	r0, [r3, #-2]	@ movhi
5975	b	.L781
5976.L789:
5977	.align	2
5978.L788:
5979	.word	.LANCHOR73
5980	.word	.LANCHOR2
5981	.word	.LANCHOR12
5982	.word	.LANCHOR74
5983	.size	FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
5984	.section	.text.update_vpc_list,"ax",%progbits
5985	.align	1
5986	.global	update_vpc_list
5987	.syntax unified
5988	.thumb
5989	.thumb_func
5990	.fpu softvfp
5991	.type	update_vpc_list, %function
5992update_vpc_list:
5993	@ args = 0, pretend = 0, frame = 0
5994	@ frame_needed = 0, uses_anonymous_args = 0
5995	push	{r3, r4, r5, lr}
5996	mov	r4, r0
5997	ldr	r3, .L802
5998	ldr	r3, [r3]
5999	ldrh	r3, [r3, r0, lsl #1]
6000	cmp	r3, #0
6001	bne	.L791
6002	ldr	r3, .L802+4
6003	ldrh	r2, [r3]
6004	cmp	r2, r0
6005	itt	eq
6006	movweq	r2, #65535
6007	strheq	r2, [r3]	@ movhi
6008	ldr	r3, .L802+8
6009	ldrh	r2, [r3]
6010	cmp	r2, r0
6011	itt	eq
6012	movweq	r2, #65535
6013	strheq	r2, [r3]	@ movhi
6014	ldr	r3, .L802+12
6015	ldrh	r2, [r3]
6016	cmp	r2, r0
6017	bne	.L794
6018	movw	r2, #65535
6019	strh	r2, [r3]	@ movhi
6020.L795:
6021	ldr	r5, .L802+16
6022	mov	r1, r4
6023	ldr	r0, .L802+20
6024	bl	List_remove_node
6025	ldrh	r3, [r5]
6026	cbnz	r3, .L797
6027	movw	r2, #2828
6028	ldr	r1, .L802+24
6029	ldr	r0, .L802+28
6030	bl	printf
6031.L797:
6032	ldrh	r3, [r5]
6033	mov	r0, r4
6034	subs	r3, r3, #1
6035	strh	r3, [r5]	@ movhi
6036	bl	free_data_superblock
6037	mov	r0, r4
6038	bl	FtlGcFreeBadSuperBlk
6039	ldr	r3, .L802+32
6040	ldrh	r2, [r5]
6041	ldrh	r3, [r3]
6042	add	r3, r3, r2
6043	ldr	r2, .L802+36
6044	ldrh	r2, [r2]
6045	cmp	r3, r2
6046	ble	.L801
6047	movw	r2, #2831
6048	ldr	r1, .L802+24
6049	ldr	r0, .L802+28
6050	bl	printf
6051.L801:
6052	movs	r0, #1
6053	pop	{r3, r4, r5, pc}
6054.L794:
6055	ldr	r3, .L802+40
6056	ldrh	r3, [r3]
6057	cmp	r3, r0
6058	beq	.L800
6059	ldr	r3, .L802+44
6060	ldrh	r3, [r3]
6061	cmp	r3, r0
6062	beq	.L800
6063	ldr	r3, .L802+48
6064	ldrh	r3, [r3]
6065	cmp	r3, r0
6066	bne	.L795
6067.L800:
6068	movs	r0, #0
6069	pop	{r3, r4, r5, pc}
6070.L791:
6071	bl	List_update_data_list
6072	b	.L800
6073.L803:
6074	.align	2
6075.L802:
6076	.word	.LANCHOR41
6077	.word	.LANCHOR71
6078	.word	.LANCHOR72
6079	.word	.LANCHOR144
6080	.word	.LANCHOR43
6081	.word	.LANCHOR40
6082	.word	.LANCHOR145
6083	.word	.LC1
6084	.word	.LANCHOR47
6085	.word	.LANCHOR4
6086	.word	.LANCHOR50
6087	.word	.LANCHOR51
6088	.word	.LANCHOR52
6089	.size	update_vpc_list, .-update_vpc_list
6090	.section	.text.decrement_vpc_count,"ax",%progbits
6091	.align	1
6092	.global	decrement_vpc_count
6093	.syntax unified
6094	.thumb
6095	.thumb_func
6096	.fpu softvfp
6097	.type	decrement_vpc_count, %function
6098decrement_vpc_count:
6099	@ args = 0, pretend = 0, frame = 0
6100	@ frame_needed = 0, uses_anonymous_args = 0
6101	movw	r3, #65535
6102	push	{r4, r5, r6, lr}
6103	cmp	r0, r3
6104	mov	r4, r0
6105	beq	.L805
6106	ldr	r5, .L813
6107	ldr	r3, [r5]
6108	ldrh	r2, [r3, r0, lsl #1]
6109	cbnz	r2, .L806
6110	mov	r1, r0
6111	ldr	r0, .L813+4
6112	bl	printf
6113	ldr	r3, [r5]
6114	ldrh	r5, [r3, r4, lsl #1]
6115	cbz	r5, .L807
6116.L811:
6117	movs	r5, #0
6118.L804:
6119	mov	r0, r5
6120	pop	{r4, r5, r6, pc}
6121.L807:
6122	movw	r2, #2846
6123.L812:
6124	ldr	r1, .L813+8
6125	ldr	r0, .L813+12
6126	bl	printf
6127	b	.L804
6128.L806:
6129	subs	r2, r2, #1
6130	strh	r2, [r3, r0, lsl #1]	@ movhi
6131.L805:
6132	ldr	r6, .L813+16
6133	movw	r3, #65535
6134	ldrh	r0, [r6]
6135	cmp	r0, r3
6136	bne	.L809
6137	strh	r4, [r6]	@ movhi
6138	b	.L811
6139.L809:
6140	cmp	r4, r0
6141	beq	.L811
6142	bl	update_vpc_list
6143	ldr	r3, .L813+20
6144	adds	r5, r0, #0
6145	ldr	r2, .L813+24
6146	it	ne
6147	movne	r5, #1
6148	strh	r4, [r6]	@ movhi
6149	ldr	r3, [r3]
6150	ldr	r2, [r2]
6151	subs	r3, r3, r2
6152	asrs	r2, r3, #1
6153	ldr	r3, .L813+28
6154	muls	r3, r2, r3
6155	ldr	r2, .L813
6156	ldr	r2, [r2]
6157	uxth	r1, r3
6158	ldrh	r2, [r2, r1, lsl #1]
6159	cmp	r2, #0
6160	bne	.L804
6161	cmp	r4, r1
6162	beq	.L804
6163	movw	r2, #2862
6164	b	.L812
6165.L814:
6166	.align	2
6167.L813:
6168	.word	.LANCHOR41
6169	.word	.LC21
6170	.word	.LANCHOR146
6171	.word	.LC1
6172	.word	.LANCHOR130
6173	.word	.LANCHOR40
6174	.word	.LANCHOR39
6175	.word	-1431655765
6176	.size	decrement_vpc_count, .-decrement_vpc_count
6177	.section	.text.FtlSuperblockPowerLostFix,"ax",%progbits
6178	.align	1
6179	.global	FtlSuperblockPowerLostFix
6180	.syntax unified
6181	.thumb
6182	.thumb_func
6183	.fpu softvfp
6184	.type	FtlSuperblockPowerLostFix, %function
6185FtlSuperblockPowerLostFix:
6186	@ args = 0, pretend = 0, frame = 24
6187	@ frame_needed = 0, uses_anonymous_args = 0
6188	push	{r4, r5, r6, r7, r8, lr}
6189	mov	r3, #-1
6190	sub	sp, sp, #24
6191	ldr	r2, .L828
6192	movs	r6, #0
6193	mov	r4, r0
6194	str	r3, [sp, #20]
6195	ldr	r3, .L828+4
6196	ldr	r5, [r2]
6197	mvn	r2, #2
6198	ldr	r8, .L828+16
6199	ldr	r3, [r3]
6200	str	r5, [sp, #16]
6201	str	r3, [sp, #12]
6202	str	r2, [r5, #8]
6203	mvn	r2, #1
6204	str	r2, [r5, #12]
6205	ldrh	r2, [r0]
6206	strh	r6, [r5]	@ movhi
6207	strh	r2, [r5, #2]	@ movhi
6208	movw	r2, #61589
6209	str	r2, [r3]
6210	add	r2, r2, #304087040
6211	add	r2, r2, #1269760
6212	addw	r2, r2, #1507
6213	str	r2, [r3, #4]
6214	ldrh	r3, [r0, #4]
6215	tst	r3, #1
6216	ite	eq
6217	moveq	r7, #6
6218	movne	r7, #7
6219.L821:
6220	ldrh	r3, [r4, #4]
6221	cbnz	r3, .L817
6222.L818:
6223	ldr	r3, .L828+8
6224	ldrh	r1, [r4]
6225	ldrh	r0, [r4, #4]
6226	ldr	r2, [r3]
6227	ldrh	r3, [r2, r1, lsl #1]
6228	subs	r3, r3, r0
6229	strh	r3, [r2, r1, lsl #1]	@ movhi
6230	ldr	r3, .L828+12
6231	ldrh	r3, [r3]
6232	strh	r3, [r4, #2]	@ movhi
6233	movs	r3, #0
6234	strb	r3, [r4, #6]
6235	strh	r3, [r4, #4]	@ movhi
6236	add	sp, sp, #24
6237	@ sp needed
6238	pop	{r4, r5, r6, r7, r8, pc}
6239.L817:
6240	mov	r0, r4
6241	bl	get_new_active_ppa
6242	str	r0, [sp, #8]
6243	adds	r0, r0, #1
6244	beq	.L818
6245	ldr	r3, [r8]
6246	movs	r1, #1
6247	add	r0, sp, #4
6248	str	r3, [r5, #4]
6249	adds	r3, r3, #1
6250	adds	r2, r3, #1
6251	it	eq
6252	moveq	r3, r6
6253	str	r3, [r8]
6254	movs	r3, #0
6255	mov	r2, r3
6256	bl	FlashProgPages
6257	ldrh	r0, [r4]
6258	bl	decrement_vpc_count
6259	subs	r7, r7, #1
6260	bne	.L821
6261	b	.L818
6262.L829:
6263	.align	2
6264.L828:
6265	.word	.LANCHOR113
6266	.word	.LANCHOR105
6267	.word	.LANCHOR41
6268	.word	.LANCHOR18
6269	.word	.LANCHOR82
6270	.size	FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
6271	.section	.text.FtlMakeBbt,"ax",%progbits
6272	.align	1
6273	.global	FtlMakeBbt
6274	.syntax unified
6275	.thumb
6276	.thumb_func
6277	.fpu softvfp
6278	.type	FtlMakeBbt, %function
6279FtlMakeBbt:
6280	@ args = 0, pretend = 0, frame = 8
6281	@ frame_needed = 0, uses_anonymous_args = 0
6282	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6283	movs	r6, #0
6284	ldr	r7, .L849
6285	bl	FtlBbtMemInit
6286	sub	r8, r7, #18
6287	bl	FtlLoadFactoryBbt
6288.L831:
6289	ldr	r3, .L849+4
6290	ldrh	r3, [r3]
6291	cmp	r6, r3
6292	bcc	.L837
6293	ldr	r5, .L849+8
6294	movs	r4, #0
6295.L838:
6296	ldrh	r3, [r5]
6297	uxth	r0, r4
6298	adds	r4, r4, #1
6299	cmp	r3, r0
6300	bhi	.L839
6301	ldr	r4, .L849+12
6302	movw	r6, #65535
6303	ldrh	r5, [r4, #12]
6304	subs	r5, r5, #1
6305	uxth	r5, r5
6306.L840:
6307	ldrh	r3, [r4, #12]
6308	subs	r3, r3, #47
6309	cmp	r3, r5
6310	bgt	.L844
6311	mov	r0, r5
6312	bl	FtlBbmIsBadBlock
6313	cmp	r0, #1
6314	beq	.L841
6315	mov	r0, r5
6316	bl	FlashTestBlk
6317	cmp	r0, #0
6318	beq	.L842
6319	mov	r0, r5
6320	bl	FtlBbmMapBadBlock
6321.L841:
6322	subs	r5, r5, #1
6323	uxth	r5, r5
6324	b	.L840
6325.L837:
6326	ldr	r3, .L849+16
6327	ldr	r5, .L849+20
6328	ldrh	r2, [r8, #2]!
6329	ldr	r4, .L849+24
6330	ldr	r0, [r3]
6331	movw	r3, #65535
6332	ldr	r10, [r5]
6333	cmp	r2, r3
6334	mov	fp, r4
6335	ldr	r3, .L849+28
6336	str	r0, [r4, #8]
6337	str	r10, [r4, #12]
6338	beq	.L832
6339	ldrh	r5, [r3]
6340	mov	r0, r4
6341	str	r3, [sp]
6342	mla	r5, r6, r5, r2
6343	lsls	r2, r5, #10
6344	str	r2, [r4, #4]
6345	movs	r2, #1
6346	mov	r1, r2
6347	bl	FlashReadPages
6348	ldr	r3, [sp]
6349	ldr	r1, [r4, #8]
6350	ldr	r0, [r7]
6351	ldrh	r2, [r3]
6352	adds	r2, r2, #7
6353	asrs	r2, r2, #3
6354	bl	ftl_memcpy
6355.L833:
6356	uxth	r0, r5
6357	adds	r6, r6, #1
6358	adds	r7, r7, #4
6359	bl	FtlBbmMapBadBlock
6360	b	.L831
6361.L832:
6362	mov	r1, r6
6363	str	r3, [sp]
6364	bl	FlashGetBadBlockList
6365	ldr	r0, [r4, #8]
6366	ldr	r1, [r7]
6367	bl	FtlBbt2Bitmap
6368	ldr	r3, [sp]
6369	str	r5, [sp, #4]
6370	ldrh	r4, [r3]
6371	subs	r4, r4, #1
6372	uxth	r4, r4
6373.L834:
6374	ldr	r3, [sp]
6375	ldrh	r0, [r3]
6376	smlabb	r0, r0, r6, r4
6377	uxth	r0, r0
6378	bl	FtlBbmIsBadBlock
6379	cmp	r0, #1
6380	beq	.L835
6381	ldr	r3, [sp, #4]
6382	movs	r2, #16
6383	movs	r1, #0
6384	strh	r4, [r8]	@ movhi
6385	ldr	r0, [r3]
6386	bl	ftl_memset
6387	ldr	r3, .L849+16
6388	mov	r2, #4096
6389	movs	r1, #0
6390	ldr	r0, [r3]
6391	bl	ftl_memset
6392	ldr	r2, [sp]
6393	movw	r3, #61664
6394	strh	r3, [r10]	@ movhi
6395	movs	r3, #0
6396	str	r3, [r10, #4]
6397	ldrh	r5, [r2]
6398	ldrh	r3, [r8]
6399	ldr	r1, [r7]
6400	ldr	r0, [fp, #8]
6401	strh	r3, [r10, #2]	@ movhi
6402	mla	r5, r6, r5, r3
6403	lsls	r3, r5, #10
6404	str	r3, [fp, #4]
6405	ldr	r3, .L849+32
6406	ldrh	r2, [r3]
6407	lsls	r2, r2, #2
6408	bl	ftl_memcpy
6409	movs	r2, #1
6410	ldr	r0, .L849+24
6411	mov	r1, r2
6412	bl	FlashEraseBlocks
6413	movs	r3, #1
6414	ldr	r0, .L849+24
6415	mov	r2, r3
6416	mov	r1, r3
6417	bl	FlashProgPages
6418	ldr	r3, [fp]
6419	adds	r3, r3, #1
6420	bne	.L833
6421	uxth	r0, r5
6422	bl	FtlBbmMapBadBlock
6423	b	.L834
6424.L835:
6425	subs	r4, r4, #1
6426	uxth	r4, r4
6427	b	.L834
6428.L839:
6429	bl	FtlBbmMapBadBlock
6430	b	.L838
6431.L842:
6432	ldrh	r3, [r4]
6433	cmp	r3, r6
6434	bne	.L843
6435	strh	r5, [r4]	@ movhi
6436	b	.L841
6437.L843:
6438	strh	r5, [r4, #4]	@ movhi
6439.L844:
6440	ldr	r3, .L849+36
6441	movs	r5, #0
6442	str	r5, [r4, #8]
6443	movs	r1, #1
6444	movs	r2, #2
6445	strh	r5, [r4, #2]	@ movhi
6446	ldr	r0, [r3]
6447	ldrh	r3, [r4]
6448	lsls	r3, r3, #10
6449	str	r3, [r0, #4]
6450	ldrh	r3, [r4, #4]
6451	lsls	r3, r3, #10
6452	str	r3, [r0, #24]
6453	bl	FlashEraseBlocks
6454	ldrh	r0, [r4]
6455	bl	FtlBbmMapBadBlock
6456	ldrh	r0, [r4, #4]
6457	bl	FtlBbmMapBadBlock
6458	bl	FtlBbmTblFlush
6459	ldr	r3, [r4, #8]
6460	ldrh	r2, [r4, #4]
6461	strh	r5, [r4, #2]	@ movhi
6462	adds	r3, r3, #1
6463	str	r3, [r4, #8]
6464	ldrh	r3, [r4]
6465	strh	r2, [r4]	@ movhi
6466	strh	r3, [r4, #4]	@ movhi
6467	bl	FtlBbmTblFlush
6468	mov	r0, r5
6469	add	sp, sp, #8
6470	@ sp needed
6471	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6472.L850:
6473	.align	2
6474.L849:
6475	.word	.LANCHOR36+28
6476	.word	.LANCHOR9
6477	.word	.LANCHOR24
6478	.word	.LANCHOR36
6479	.word	.LANCHOR105
6480	.word	.LANCHOR113
6481	.word	.LANCHOR137
6482	.word	.LANCHOR16
6483	.word	.LANCHOR126
6484	.word	.LANCHOR78
6485	.size	FtlMakeBbt, .-FtlMakeBbt
6486	.section	.text.ftl_memcmp,"ax",%progbits
6487	.align	1
6488	.global	ftl_memcmp
6489	.syntax unified
6490	.thumb
6491	.thumb_func
6492	.fpu softvfp
6493	.type	ftl_memcmp, %function
6494ftl_memcmp:
6495	@ args = 0, pretend = 0, frame = 0
6496	@ frame_needed = 0, uses_anonymous_args = 0
6497	@ link register save eliminated.
6498	b	memcmp
6499	.size	ftl_memcmp, .-ftl_memcmp
6500	.section	.text.js_hash,"ax",%progbits
6501	.align	1
6502	.global	js_hash
6503	.syntax unified
6504	.thumb
6505	.thumb_func
6506	.fpu softvfp
6507	.type	js_hash, %function
6508js_hash:
6509	@ args = 0, pretend = 0, frame = 0
6510	@ frame_needed = 0, uses_anonymous_args = 0
6511	ldr	r3, .L855
6512	add	r1, r1, r0
6513	push	{r4, lr}
6514.L853:
6515	cmp	r0, r1
6516	bne	.L854
6517	mov	r0, r3
6518	pop	{r4, pc}
6519.L854:
6520	lsrs	r2, r3, #2
6521	ldrb	r4, [r0], #1	@ zero_extendqisi2
6522	add	r2, r2, r3, lsl #5
6523	add	r2, r2, r4
6524	eors	r3, r3, r2
6525	b	.L853
6526.L856:
6527	.align	2
6528.L855:
6529	.word	1204201446
6530	.size	js_hash, .-js_hash
6531	.section	.text.Ftl_write_map_blk_to_last_page,"ax",%progbits
6532	.align	1
6533	.global	Ftl_write_map_blk_to_last_page
6534	.syntax unified
6535	.thumb
6536	.thumb_func
6537	.fpu softvfp
6538	.type	Ftl_write_map_blk_to_last_page, %function
6539Ftl_write_map_blk_to_last_page:
6540	@ args = 0, pretend = 0, frame = 0
6541	@ frame_needed = 0, uses_anonymous_args = 0
6542	push	{r3, r4, r5, r6, r7, r8, r10, lr}
6543	movw	r2, #65535
6544	ldrh	r3, [r0]
6545	mov	r4, r0
6546	ldr	r5, [r0, #12]
6547	cmp	r3, r2
6548	bne	.L858
6549	ldrh	r3, [r0, #8]
6550	cbz	r3, .L859
6551	movw	r2, #641
6552	ldr	r1, .L867
6553	ldr	r0, .L867+4
6554	bl	printf
6555.L859:
6556	ldrh	r3, [r4, #8]
6557	adds	r3, r3, #1
6558	strh	r3, [r4, #8]	@ movhi
6559	bl	FtlFreeSysBlkQueueOut
6560	movs	r3, #0
6561	strh	r0, [r5]	@ movhi
6562	strh	r3, [r4, #2]	@ movhi
6563	strh	r3, [r4]	@ movhi
6564	ldr	r3, [r4, #28]
6565	adds	r3, r3, #1
6566	str	r3, [r4, #28]
6567.L860:
6568	movs	r0, #0
6569	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
6570.L858:
6571	ldrh	r7, [r5, r3, lsl #1]
6572	movs	r1, #255
6573	ldrh	r3, [r0, #2]
6574	ldr	r6, .L867+8
6575	ldr	r10, .L867+24
6576	ldr	r8, [r0, #24]
6577	orr	r3, r3, r7, lsl #10
6578	ldr	r0, [r10]
6579	str	r3, [r6, #4]
6580	ldr	r3, .L867+12
6581	str	r0, [r6, #8]
6582	ldr	r5, [r3]
6583	ldr	r3, [r4, #28]
6584	str	r5, [r6, #12]
6585	str	r3, [r5, #4]
6586	movw	r3, #64245
6587	strh	r3, [r5, #8]	@ movhi
6588	ldrh	r3, [r4, #4]
6589	strh	r7, [r5, #2]	@ movhi
6590	strh	r3, [r5]	@ movhi
6591	ldr	r3, .L867+16
6592	ldrh	r2, [r3]
6593	lsls	r2, r2, #3
6594	bl	ftl_memset
6595	ldrh	ip, [r4, #6]
6596	movs	r3, #0
6597	ldr	r1, [r10]
6598	mov	r2, r3
6599.L861:
6600	uxth	r0, r3
6601	cmp	ip, r0
6602	bhi	.L863
6603	ldr	r3, .L867+20
6604	ldr	r0, [r6, #8]
6605	ldrh	r1, [r3]
6606	bl	js_hash
6607	movs	r2, #1
6608	str	r0, [r5, #12]
6609	movs	r3, #0
6610	mov	r1, r2
6611	ldr	r0, .L867+8
6612	bl	FlashProgPages
6613	ldrh	r3, [r4, #2]
6614	mov	r0, r4
6615	adds	r3, r3, #1
6616	strh	r3, [r4, #2]	@ movhi
6617	bl	ftl_map_blk_gc
6618	b	.L860
6619.L863:
6620	ldr	r0, [r8, r3, lsl #2]
6621	cmp	r7, r0, lsr #10
6622	bne	.L862
6623	adds	r2, r2, #1
6624	uxth	r2, r2
6625	str	r3, [r1, r2, lsl #3]
6626	add	lr, r1, r2, lsl #3
6627	ldr	r0, [r8, r3, lsl #2]
6628	str	r0, [lr, #4]
6629.L862:
6630	adds	r3, r3, #1
6631	b	.L861
6632.L868:
6633	.align	2
6634.L867:
6635	.word	.LANCHOR147
6636	.word	.LC1
6637	.word	.LANCHOR137
6638	.word	.LANCHOR113
6639	.word	.LANCHOR19
6640	.word	.LANCHOR22
6641	.word	.LANCHOR105
6642	.size	Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
6643	.section	.text.FtlMapWritePage,"ax",%progbits
6644	.align	1
6645	.global	FtlMapWritePage
6646	.syntax unified
6647	.thumb
6648	.thumb_func
6649	.fpu softvfp
6650	.type	FtlMapWritePage, %function
6651FtlMapWritePage:
6652	@ args = 0, pretend = 0, frame = 8
6653	@ frame_needed = 0, uses_anonymous_args = 0
6654	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6655	mov	r4, r0
6656	ldr	r8, .L893+32
6657	mov	r7, r1
6658	movs	r6, #0
6659	str	r2, [sp]
6660	mov	fp, r8
6661.L870:
6662	ldr	r2, .L893
6663	ldr	r3, [r2]
6664	adds	r3, r3, #1
6665	str	r3, [r2]
6666	ldrh	r3, [r8]
6667	ldrh	r2, [r4, #2]
6668	subs	r3, r3, #1
6669	cmp	r2, r3
6670	bge	.L871
6671	ldrh	r2, [r4]
6672	movw	r3, #65535
6673	cmp	r2, r3
6674	bne	.L872
6675.L871:
6676	mov	r0, r4
6677	bl	Ftl_write_map_blk_to_last_page
6678.L872:
6679	ldrh	r2, [r4]
6680	ldr	r3, [r4, #12]
6681	ldrh	r3, [r3, r2, lsl #1]
6682	cbnz	r3, .L873
6683	mov	r2, #700
6684	ldr	r1, .L893+4
6685	ldr	r0, .L893+8
6686	bl	printf
6687.L873:
6688	ldrh	r2, [r4]
6689	ldrh	r3, [r4, #10]
6690	cmp	r2, r3
6691	bcc	.L874
6692	movw	r2, #701
6693	ldr	r1, .L893+4
6694	ldr	r0, .L893+8
6695	bl	printf
6696.L874:
6697	ldrh	r2, [r4]
6698	movs	r1, #0
6699	ldr	r3, [r4, #12]
6700	ldr	r5, .L893+12
6701	ldrh	r3, [r3, r2, lsl #1]
6702	ldrh	r2, [r4, #2]
6703	str	r3, [sp, #4]
6704	orr	r2, r2, r3, lsl #10
6705	ldr	r3, [sp]
6706	str	r2, [r5, #4]
6707	ldr	r2, .L893+16
6708	str	r3, [r5, #8]
6709	ldr	r0, [r2]
6710	movs	r2, #16
6711	str	r0, [r5, #12]
6712	bl	ftl_memset
6713	ldr	r1, [r4, #28]
6714	ldr	r10, [r5, #12]
6715	ldr	r3, [sp, #4]
6716	ldr	r0, [r5, #8]
6717	str	r1, [r10, #4]
6718	ldrh	r1, [r4, #4]
6719	strh	r3, [r10, #2]	@ movhi
6720	ldr	r3, .L893+20
6721	strh	r1, [r10]	@ movhi
6722	strh	r7, [r10, #8]	@ movhi
6723	ldrh	r1, [r3]
6724	bl	js_hash
6725	movs	r3, #1
6726	str	r0, [r10, #12]
6727	mov	r2, r3
6728	mov	r1, r3
6729	mov	r0, r5
6730	bl	FlashProgPages
6731	ldrh	r2, [r4, #2]
6732	ldr	r1, [r5]
6733	adds	r2, r2, #1
6734	uxth	r2, r2
6735	adds	r3, r1, #1
6736	strh	r2, [r4, #2]	@ movhi
6737	bne	.L875
6738	ldr	r1, [r5, #4]
6739	adds	r6, r6, #1
6740	ldr	r0, .L893+24
6741	uxth	r6, r6
6742	bl	printf
6743	ldrh	r2, [r4, #2]
6744	cmp	r2, #2
6745	ittt	ls
6746	ldrhls	r2, [fp]
6747	addls	r2, r2, #-1
6748	strhls	r2, [r4, #2]	@ movhi
6749	cmp	r6, #3
6750	bls	.L877
6751	mov	r2, r6
6752	ldr	r1, [r5, #4]
6753	ldr	r0, .L893+28
6754	bl	printf
6755.L878:
6756	b	.L878
6757.L877:
6758	ldr	r3, [r4, #32]
6759	cmp	r3, #0
6760	beq	.L870
6761.L892:
6762	b	.L892
6763.L875:
6764	cmp	r2, #1
6765	beq	.L881
6766	cmp	r1, #256
6767	beq	.L881
6768	ldr	r0, [r4, #36]
6769	cbz	r0, .L882
6770.L881:
6771	movs	r3, #0
6772	str	r3, [r4, #36]
6773	b	.L870
6774.L882:
6775	ldr	r2, [r5, #4]
6776	ldr	r3, [r4, #24]
6777	str	r2, [r3, r7, lsl #2]
6778	add	sp, sp, #8
6779	@ sp needed
6780	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6781.L894:
6782	.align	2
6783.L893:
6784	.word	.LANCHOR87
6785	.word	.LANCHOR148
6786	.word	.LC1
6787	.word	.LANCHOR137
6788	.word	.LANCHOR113
6789	.word	.LANCHOR22
6790	.word	.LC22
6791	.word	.LC23
6792	.word	.LANCHOR19
6793	.size	FtlMapWritePage, .-FtlMapWritePage
6794	.section	.text.load_l2p_region,"ax",%progbits
6795	.align	1
6796	.global	load_l2p_region
6797	.syntax unified
6798	.thumb
6799	.thumb_func
6800	.fpu softvfp
6801	.type	load_l2p_region, %function
6802load_l2p_region:
6803	@ args = 0, pretend = 0, frame = 8
6804	@ frame_needed = 0, uses_anonymous_args = 0
6805	ldr	r3, .L902
6806	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6807	mov	r5, r0
6808	mov	r10, r1
6809	ldrh	r2, [r3]
6810	str	r3, [sp, #4]
6811	cmp	r2, r0
6812	bcs	.L896
6813	movw	r2, #485
6814	ldr	r1, .L902+4
6815	ldr	r0, .L902+8
6816	bl	printf
6817.L896:
6818	ldr	fp, .L902+48
6819	movs	r4, #12
6820	ldr	r7, .L902+12
6821	ldr	r3, [fp]
6822	ldr	r8, [r3, r5, lsl #2]
6823	cmp	r8, #0
6824	bne	.L897
6825	mul	r4, r4, r10
6826	ldr	r2, [r7]
6827	movs	r1, #255
6828	adds	r0, r2, r4
6829	ldr	r2, .L902+16
6830	ldr	r0, [r0, #8]
6831	ldrh	r2, [r2]
6832	bl	ftl_memset
6833	ldr	r2, [r7]
6834	adds	r1, r2, r4
6835	strh	r5, [r2, r4]	@ movhi
6836	str	r8, [r1, #4]
6837.L898:
6838	movs	r0, #0
6839	add	sp, sp, #8
6840	@ sp needed
6841	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6842.L897:
6843	mul	r4, r4, r10
6844	ldr	r2, [r7]
6845	ldr	r6, .L902+20
6846	add	r2, r2, r4
6847	mov	r0, r6
6848	ldr	r2, [r2, #8]
6849	str	r8, [r6, #4]
6850	str	r2, [r6, #8]
6851	ldr	r2, .L902+24
6852	ldr	r2, [r2]
6853	str	r2, [r6, #12]
6854	movs	r2, #1
6855	mov	r1, r2
6856	bl	FlashReadPages
6857	ldr	r10, [r6, #12]
6858	ldrh	r2, [r10, #8]
6859	cmp	r2, r5
6860	beq	.L899
6861	mov	r2, r8
6862	mov	r1, r5
6863	ldr	r0, .L902+28
6864	bl	printf
6865	movs	r3, #4
6866	ldr	r1, [r6, #12]
6867	mov	r2, r3
6868	ldr	r0, .L902+32
6869	bl	rknand_print_hex
6870	ldr	r3, [sp, #4]
6871	movs	r2, #4
6872	ldr	r1, [fp]
6873	ldr	r0, .L902+36
6874	ldrh	r3, [r3]
6875	bl	rknand_print_hex
6876.L900:
6877	ldrh	r3, [r10, #8]
6878	cmp	r3, r5
6879	beq	.L901
6880	mov	r2, #508
6881	ldr	r1, .L902+4
6882	ldr	r0, .L902+8
6883	bl	printf
6884.L901:
6885	ldr	r3, [r7]
6886	movs	r1, #0
6887	adds	r2, r3, r4
6888	str	r1, [r2, #4]
6889	strh	r5, [r3, r4]	@ movhi
6890	b	.L898
6891.L899:
6892	ldr	r2, [r6]
6893	cmp	r2, #256
6894	bne	.L900
6895	mov	r2, r8
6896	mov	r1, r5
6897	ldr	r0, .L902+40
6898	bl	printf
6899	ldr	r3, [r7]
6900	mov	r1, r5
6901	ldr	r0, .L902+44
6902	add	r3, r3, r4
6903	ldr	r2, [r3, #8]
6904	bl	FtlMapWritePage
6905	b	.L900
6906.L903:
6907	.align	2
6908.L902:
6909	.word	.LANCHOR31
6910	.word	.LANCHOR149
6911	.word	.LC1
6912	.word	.LANCHOR54
6913	.word	.LANCHOR22
6914	.word	.LANCHOR137
6915	.word	.LANCHOR113
6916	.word	.LC24
6917	.word	.LC13
6918	.word	.LC25
6919	.word	.LC26
6920	.word	.LANCHOR128
6921	.word	.LANCHOR123
6922	.size	load_l2p_region, .-load_l2p_region
6923	.section	.text.ftl_map_blk_gc,"ax",%progbits
6924	.align	1
6925	.global	ftl_map_blk_gc
6926	.syntax unified
6927	.thumb
6928	.thumb_func
6929	.fpu softvfp
6930	.type	ftl_map_blk_gc, %function
6931ftl_map_blk_gc:
6932	@ args = 0, pretend = 0, frame = 8
6933	@ frame_needed = 0, uses_anonymous_args = 0
6934	ldr	r3, [r0, #24]
6935	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
6936	mov	r4, r0
6937	ldr	r5, [r0, #12]
6938	str	r3, [sp]
6939	bl	ftl_free_no_use_map_blk
6940	ldrh	r3, [r4, #10]
6941	ldrh	r2, [r4, #8]
6942	subs	r3, r3, #5
6943	cmp	r2, r3
6944	blt	.L905
6945	uxth	r0, r0
6946	ldrh	r8, [r5, r0, lsl #1]
6947	cmp	r8, #0
6948	beq	.L905
6949	ldr	r3, [r4, #32]
6950	cbnz	r3, .L905
6951	movs	r2, #1
6952	str	r2, [r4, #32]
6953	strh	r3, [r5, r0, lsl #1]	@ movhi
6954	ldrh	r3, [r4, #8]
6955	ldrh	r2, [r4, #2]
6956	subs	r3, r3, #1
6957	strh	r3, [r4, #8]	@ movhi
6958	ldr	r3, .L920
6959	ldrh	r3, [r3]
6960	cmp	r2, r3
6961	bcc	.L906
6962	mov	r0, r4
6963	bl	ftl_map_blk_alloc_new_blk
6964.L906:
6965	ldr	r5, .L920+4
6966	movs	r6, #0
6967.L907:
6968	ldrh	r3, [r4, #6]
6969	uxth	r10, r6
6970	cmp	r3, r10
6971	bhi	.L914
6972	movs	r1, #1
6973	mov	r0, r8
6974	bl	FtlFreeSysBlkQueueIn
6975	movs	r3, #0
6976	str	r3, [r4, #32]
6977.L905:
6978	ldr	r3, .L920
6979	ldrh	r2, [r4, #2]
6980	ldrh	r3, [r3]
6981	cmp	r2, r3
6982	bcc	.L915
6983	mov	r0, r4
6984	bl	ftl_map_blk_alloc_new_blk
6985.L915:
6986	movs	r0, #0
6987	add	sp, sp, #8
6988	@ sp needed
6989	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
6990.L914:
6991	ldr	r3, [sp]
6992	uxth	fp, r6
6993	add	r3, r3, fp, lsl #2
6994	str	r3, [sp, #4]
6995	ldr	r3, [sp]
6996	ldr	r2, [r3, fp, lsl #2]
6997	cmp	r8, r2, lsr #10
6998	bne	.L908
6999	ldr	r3, .L920+8
7000	str	r2, [r5, #4]
7001	movs	r2, #1
7002	ldr	r0, .L920+4
7003	ldr	r1, [r3]
7004	str	r1, [r5, #8]
7005	ldr	r1, .L920+12
7006	ldr	r7, [r1]
7007	mov	r1, r2
7008	str	r7, [r5, #12]
7009	bl	FlashReadPages
7010	ldrh	r2, [r7, #8]
7011	cmp	r2, r10
7012	beq	.L909
7013	movw	r2, #611
7014	ldr	r1, .L920+16
7015	ldr	r0, .L920+20
7016	bl	printf
7017.L909:
7018	ldr	r2, [r5]
7019	adds	r2, r2, #1
7020	bne	.L910
7021.L912:
7022	ldr	r2, [sp, #4]
7023	movs	r3, #0
7024	str	r3, [r2]
7025.L911:
7026	b	.L911
7027.L910:
7028	ldrh	r2, [r7, #8]
7029	cmp	r2, r10
7030	bne	.L912
7031	ldrh	r1, [r7]
7032	ldrh	r2, [r4, #4]
7033	cmp	r1, r2
7034	bne	.L912
7035	ldr	r2, [r5, #8]
7036	mov	r1, fp
7037	mov	r0, r4
7038	bl	FtlMapWritePage
7039.L908:
7040	adds	r6, r6, #1
7041	b	.L907
7042.L921:
7043	.align	2
7044.L920:
7045	.word	.LANCHOR19
7046	.word	.LANCHOR137
7047	.word	.LANCHOR106
7048	.word	.LANCHOR113
7049	.word	.LANCHOR150
7050	.word	.LC1
7051	.size	ftl_map_blk_gc, .-ftl_map_blk_gc
7052	.section	.text.flush_l2p_region,"ax",%progbits
7053	.align	1
7054	.global	flush_l2p_region
7055	.syntax unified
7056	.thumb
7057	.thumb_func
7058	.fpu softvfp
7059	.type	flush_l2p_region, %function
7060flush_l2p_region:
7061	@ args = 0, pretend = 0, frame = 0
7062	@ frame_needed = 0, uses_anonymous_args = 0
7063	push	{r3, r4, r5, lr}
7064	movs	r4, #12
7065	ldr	r5, .L923
7066	muls	r4, r0, r4
7067	ldr	r0, .L923+4
7068	ldr	r3, [r5]
7069	adds	r2, r3, r4
7070	ldrh	r1, [r3, r4]
7071	ldr	r2, [r2, #8]
7072	bl	FtlMapWritePage
7073	ldr	r3, [r5]
7074	movs	r0, #0
7075	add	r4, r4, r3
7076	ldr	r3, [r4, #4]
7077	bic	r3, r3, #-2147483648
7078	str	r3, [r4, #4]
7079	pop	{r3, r4, r5, pc}
7080.L924:
7081	.align	2
7082.L923:
7083	.word	.LANCHOR54
7084	.word	.LANCHOR128
7085	.size	flush_l2p_region, .-flush_l2p_region
7086	.section	.text.l2p_flush,"ax",%progbits
7087	.align	1
7088	.global	l2p_flush
7089	.syntax unified
7090	.thumb
7091	.thumb_func
7092	.fpu softvfp
7093	.type	l2p_flush, %function
7094l2p_flush:
7095	@ args = 0, pretend = 0, frame = 0
7096	@ frame_needed = 0, uses_anonymous_args = 0
7097	push	{r4, r5, r6, lr}
7098	movs	r4, #0
7099	ldr	r5, .L929
7100	ldr	r6, .L929+4
7101.L926:
7102	ldrh	r3, [r5]
7103	uxth	r0, r4
7104	cmp	r3, r0
7105	bhi	.L928
7106	movs	r0, #0
7107	pop	{r4, r5, r6, pc}
7108.L928:
7109	ldr	r2, [r6]
7110	uxth	r3, r4
7111	movs	r1, #12
7112	mla	r3, r1, r3, r2
7113	ldr	r3, [r3, #4]
7114	cmp	r3, #0
7115	bge	.L927
7116	bl	flush_l2p_region
7117.L927:
7118	adds	r4, r4, #1
7119	b	.L926
7120.L930:
7121	.align	2
7122.L929:
7123	.word	.LANCHOR32
7124	.word	.LANCHOR54
7125	.size	l2p_flush, .-l2p_flush
7126	.section	.text.log2phys,"ax",%progbits
7127	.align	1
7128	.global	log2phys
7129	.syntax unified
7130	.thumb
7131	.thumb_func
7132	.fpu softvfp
7133	.type	log2phys, %function
7134log2phys:
7135	@ args = 0, pretend = 0, frame = 8
7136	@ frame_needed = 0, uses_anonymous_args = 0
7137	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
7138	mov	r7, r2
7139	ldr	r4, .L944
7140	mov	r10, r0
7141	mov	r5, r1
7142	ldr	r3, .L944+4
7143	ldr	r2, [r4]
7144	ldrh	fp, [r3]
7145	cmp	r0, r2
7146	bcc	.L932
7147	movw	r2, #813
7148	ldr	r1, .L944+8
7149	ldr	r0, .L944+12
7150	bl	printf
7151.L932:
7152	ldr	r3, [r4]
7153	cmp	r10, r3
7154	bcs	.L933
7155	ldr	r3, .L944+16
7156	add	fp, fp, #7
7157	lsr	r6, r10, fp
7158	movs	r2, #0
7159	ldrh	r1, [r3]
7160	uxth	r6, r6
7161	ldr	r3, .L944+20
7162	ldr	r0, [r3]
7163	mov	r8, r3
7164	movs	r3, #12
7165.L934:
7166	uxth	r4, r2
7167	cmp	r4, r1
7168	bcc	.L939
7169	str	r3, [sp, #4]
7170	bl	select_l2p_ram_region
7171	ldr	r3, [sp, #4]
7172	mov	r4, r0
7173	ldr	r2, [r8]
7174	muls	r3, r0, r3
7175	adds	r1, r2, r3
7176	ldrh	r2, [r2, r3]
7177	movw	r3, #65535
7178	cmp	r2, r3
7179	beq	.L940
7180	ldr	r3, [r1, #4]
7181	cmp	r3, #0
7182	bge	.L940
7183	bl	flush_l2p_region
7184.L940:
7185	mov	r1, r4
7186	mov	r0, r6
7187	bl	load_l2p_region
7188	b	.L936
7189.L933:
7190	mov	r0, #-1
7191	cbnz	r7, .L931
7192	str	r0, [r5]
7193.L931:
7194	add	sp, sp, #8
7195	@ sp needed
7196	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7197.L939:
7198	adds	r2, r2, #1
7199	mla	ip, r3, r2, r0
7200	ldrh	ip, [ip, #-12]
7201	cmp	ip, r6
7202	bne	.L934
7203.L936:
7204	movs	r0, #1
7205	ldr	r2, [r8]
7206	lsl	r0, r0, fp
7207	movs	r3, #12
7208	subs	r0, r0, #1
7209	and	r0, r0, r10
7210	uxth	r0, r0
7211	mla	r3, r3, r4, r2
7212	cbnz	r7, .L937
7213	ldr	r3, [r3, #8]
7214	ldr	r3, [r3, r0, lsl #2]
7215	str	r3, [r5]
7216.L938:
7217	ldr	r2, [r8]
7218	movs	r3, #12
7219	mla	r4, r3, r4, r2
7220	ldr	r3, [r4, #4]
7221	adds	r2, r3, #1
7222	beq	.L942
7223	adds	r3, r3, #1
7224	str	r3, [r4, #4]
7225.L942:
7226	movs	r0, #0
7227	b	.L931
7228.L937:
7229	ldr	r1, [r5]
7230	ldr	r2, [r3, #8]
7231	str	r1, [r2, r0, lsl #2]
7232	ldr	r2, [r3, #4]
7233	orr	r2, r2, #-2147483648
7234	str	r2, [r3, #4]
7235	ldr	r3, .L944+24
7236	strh	r6, [r3]	@ movhi
7237	b	.L938
7238.L945:
7239	.align	2
7240.L944:
7241	.word	.LANCHOR151
7242	.word	.LANCHOR21
7243	.word	.LANCHOR152
7244	.word	.LC1
7245	.word	.LANCHOR32
7246	.word	.LANCHOR54
7247	.word	.LANCHOR55
7248	.size	log2phys, .-log2phys
7249	.section	.text.FtlReUsePrevPpa,"ax",%progbits
7250	.align	1
7251	.global	FtlReUsePrevPpa
7252	.syntax unified
7253	.thumb
7254	.thumb_func
7255	.fpu softvfp
7256	.type	FtlReUsePrevPpa, %function
7257FtlReUsePrevPpa:
7258	@ args = 0, pretend = 0, frame = 8
7259	@ frame_needed = 0, uses_anonymous_args = 0
7260	push	{r0, r1, r4, r5, r6, r7, r8, lr}
7261	mov	r6, r0
7262	ldr	r5, .L956
7263	ubfx	r0, r1, #10, #16
7264	str	r1, [sp, #4]
7265	bl	P2V_block_in_plane
7266	ldr	r2, [r5]
7267	mov	r7, r0
7268	ldrh	r3, [r2, r0, lsl #1]
7269	cbnz	r3, .L947
7270	ldr	r2, .L956+4
7271	ldr	r4, [r2]
7272	cmp	r4, #0
7273	beq	.L948
7274	ldr	r2, .L956+8
7275	movw	lr, #65535
7276	ldr	ip, .L956+24
7277	ldr	r0, .L956+12
7278	ldr	r2, [r2]
7279	ldrh	r1, [r0]
7280	mov	r8, r0
7281	subs	r4, r4, r2
7282	asrs	r4, r4, #1
7283	mul	r4, ip, r4
7284	mov	ip, #6
7285	uxth	r4, r4
7286.L949:
7287	uxth	r0, r3
7288	cmp	r1, r0
7289	bls	.L948
7290	cmp	r4, r7
7291	bne	.L950
7292	mov	r1, r4
7293	ldr	r0, .L956+4
7294	bl	List_remove_node
7295	ldrh	r3, [r8]
7296	cbnz	r3, .L951
7297	movw	r2, #1735
7298	ldr	r1, .L956+16
7299	ldr	r0, .L956+20
7300	bl	printf
7301.L951:
7302	ldrh	r3, [r8]
7303	mov	r0, r4
7304	subs	r3, r3, #1
7305	strh	r3, [r8]	@ movhi
7306	bl	INSERT_DATA_LIST
7307	ldr	r2, [r5]
7308	ldrh	r3, [r2, r7, lsl #1]
7309.L947:
7310	adds	r3, r3, #1
7311	strh	r3, [r2, r7, lsl #1]	@ movhi
7312	b	.L948
7313.L950:
7314	mul	r4, ip, r4
7315	adds	r3, r3, #1
7316	ldrh	r4, [r2, r4]
7317	cmp	r4, lr
7318	bne	.L949
7319.L948:
7320	movs	r2, #1
7321	add	r1, sp, #4
7322	mov	r0, r6
7323	bl	log2phys
7324	add	sp, sp, #8
7325	@ sp needed
7326	pop	{r4, r5, r6, r7, r8, pc}
7327.L957:
7328	.align	2
7329.L956:
7330	.word	.LANCHOR41
7331	.word	.LANCHOR45
7332	.word	.LANCHOR39
7333	.word	.LANCHOR47
7334	.word	.LANCHOR153
7335	.word	.LC1
7336	.word	-1431655765
7337	.size	FtlReUsePrevPpa, .-FtlReUsePrevPpa
7338	.section	.text.FtlRecoverySuperblock,"ax",%progbits
7339	.align	1
7340	.global	FtlRecoverySuperblock
7341	.syntax unified
7342	.thumb
7343	.thumb_func
7344	.fpu softvfp
7345	.type	FtlRecoverySuperblock, %function
7346FtlRecoverySuperblock:
7347	@ args = 0, pretend = 0, frame = 48
7348	@ frame_needed = 0, uses_anonymous_args = 0
7349	ldrh	r3, [r0]
7350	movw	r2, #65535
7351	push	{r4, r5, r6, r7, r8, r10, fp, lr}
7352	mov	r8, r0
7353	sub	sp, sp, #48
7354	cmp	r3, r2
7355	beq	.L1090
7356	ldrh	r3, [r0, #2]
7357	str	r3, [sp, #4]
7358	ldrb	r3, [r0, #6]	@ zero_extendqisi2
7359	ldr	r1, [sp, #4]
7360	str	r3, [sp, #20]
7361	ldr	r3, .L1099
7362	ldrh	r3, [r3]
7363	cmp	r3, r1
7364	mov	r3, #0
7365	bne	.L961
7366	strh	r3, [r0, #4]	@ movhi
7367.L1097:
7368	strb	r3, [r8, #6]
7369.L1090:
7370	movs	r0, #0
7371	add	sp, sp, #48
7372	@ sp needed
7373	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
7374.L961:
7375	ldrh	r0, [r0, #16]
7376.L962:
7377	cmp	r0, r2
7378	uxth	r5, r3
7379	add	r3, r3, #1
7380	beq	.L963
7381	movs	r1, #1
7382	bl	FtlGetLastWrittenPage
7383	mov	r4, r0
7384	adds	r0, r0, #1
7385	beq	.L964
7386	ldr	r3, .L1099+4
7387	movs	r2, #0
7388	mov	r5, r2
7389	movw	fp, #65535
7390	mov	r10, #20
7391	ldrh	ip, [r3]
7392	ldr	r3, .L1099+8
7393	ldr	r0, [r3]
7394	ldr	r3, .L1099+12
7395	ldr	r3, [r3]
7396	str	r3, [sp, #8]
7397	ldr	r3, .L1099+16
7398	ldrh	r7, [r3]
7399	ldr	r3, .L1099+20
7400	ldr	r3, [r3]
7401	str	r3, [sp, #12]
7402	ldr	r3, .L1099+24
7403	ldrh	lr, [r3]
7404	add	r3, r8, #16
7405	str	r3, [sp, #16]
7406	str	r3, [sp]
7407.L965:
7408	uxth	r3, r2
7409	cmp	ip, r3
7410	bhi	.L969
7411	movs	r2, #0
7412	mov	r1, r5
7413	bl	FlashReadPages
7414	ldr	r2, .L1099+28
7415	uxth	r1, r4
7416	movw	fp, #65535
7417	str	r1, [sp, #12]
7418	ldr	r3, [r2]
7419	subs	r3, r3, #1
7420	str	r3, [sp]
7421	ldr	r3, .L1099+8
7422	ldr	r10, [r3]
7423	movs	r3, #0
7424	mov	r7, r10
7425.L970:
7426	uxth	r1, r3
7427	cmp	r5, r1
7428	bhi	.L975
7429	bne	.L973
7430	adds	r3, r4, #1
7431	uxth	r3, r3
7432	str	r3, [sp, #8]
7433.L1091:
7434	ldr	r0, [r10, #4]
7435	ubfx	r0, r0, #10, #16
7436	bl	P2V_plane
7437	ldr	r3, .L1099
7438	mov	r10, r0
7439	ldr	r2, [sp, #8]
7440	ldrh	r3, [r3]
7441	cmp	r3, r2
7442	bne	.L977
7443	ldrh	r3, [sp, #8]
7444	strh	r3, [r8, #2]	@ movhi
7445	movs	r3, #0
7446	strb	r3, [r8, #6]
7447	strh	r3, [r8, #4]	@ movhi
7448.L977:
7449	ldr	r3, [sp, #8]
7450	ldr	r2, [sp, #4]
7451	cmp	r3, r2
7452	bne	.L978
7453	ldr	r3, [sp, #20]
7454	cmp	r10, r3
7455	bne	.L978
7456	ldr	r1, [sp, #8]
7457	mov	r2, r10
7458.L1098:
7459	mov	r0, r8
7460	bl	ftl_sb_update_avl_pages
7461	b	.L1090
7462.L963:
7463	uxth	r1, r3
7464	adds	r1, r1, #8
7465	ldrh	r0, [r8, r1, lsl #1]
7466	b	.L962
7467.L964:
7468	ldr	r3, [sp, #4]
7469	cbz	r3, .L966
7470	movw	r2, #1802
7471	ldr	r1, .L1099+32
7472	ldr	r0, .L1099+36
7473	bl	printf
7474.L966:
7475	ldr	r3, [sp, #20]
7476	cbz	r3, .L967
7477	cmp	r5, r3
7478	beq	.L967
7479	movw	r2, #1803
7480	ldr	r1, .L1099+32
7481	ldr	r0, .L1099+36
7482	bl	printf
7483.L967:
7484	movs	r3, #0
7485	strh	r3, [r8, #2]	@ movhi
7486	b	.L1097
7487.L969:
7488	ldr	r1, [sp]
7489	ldrh	r3, [r1], #2
7490	cmp	r3, fp
7491	str	r1, [sp]
7492	beq	.L968
7493	mla	r1, r10, r5, r0
7494	ldr	r6, [sp, #8]
7495	orr	r3, r4, r3, lsl #10
7496	str	r3, [r1, #4]
7497	mul	r3, r7, r5
7498	bic	r3, r3, #3
7499	add	r3, r3, r6
7500	ldr	r6, [sp, #12]
7501	str	r3, [r1, #8]
7502	mul	r3, lr, r5
7503	adds	r5, r5, #1
7504	uxth	r5, r5
7505	bic	r3, r3, #3
7506	add	r3, r3, r6
7507	str	r3, [r1, #12]
7508.L968:
7509	adds	r2, r2, #1
7510	b	.L965
7511.L975:
7512	ldr	r1, [r7]
7513	cbnz	r1, .L971
7514	ldr	r1, [r7, #12]
7515	ldr	r6, [r1, #4]
7516	str	r1, [sp, #8]
7517	adds	r1, r6, #1
7518	beq	.L972
7519	ldr	r1, [r2]
7520	mov	r0, r6
7521	bl	ftl_cmp_data_ver
7522	cbz	r0, .L972
7523	adds	r6, r6, #1
7524	str	r6, [r2]
7525.L972:
7526	ldr	r1, [sp, #8]
7527	ldr	r1, [r1]
7528	adds	r1, r1, #1
7529	bne	.L974
7530.L973:
7531	uxth	r2, r4
7532	uxth	r3, r3
7533	str	r2, [sp, #8]
7534	movs	r2, #20
7535	mla	r10, r2, r3, r10
7536	b	.L1091
7537.L971:
7538	ldr	fp, [sp, #12]
7539.L974:
7540	adds	r3, r3, #1
7541	adds	r7, r7, #20
7542	b	.L970
7543.L978:
7544	movw	r3, #65535
7545	cmp	fp, r3
7546	bne	.L979
7547	ldrb	r3, [r8, #8]	@ zero_extendqisi2
7548	cmp	r3, #0
7549	bne	.L980
7550.L979:
7551	ldr	r3, .L1099+40
7552	uxth	r6, r4
7553	uxth	r4, r4
7554	ldr	r7, .L1099+8
7555	ldr	r2, [r3]
7556	adds	r2, r2, #1
7557	itt	eq
7558	ldreq	r2, [sp]
7559	streq	r2, [r3]
7560	ldr	r3, [sp, #4]
7561	adds	r3, r3, #7
7562	cmp	r4, r3
7563	itet	gt
7564	subgt	r4, r6, #7
7565	ldrle	r4, [sp, #4]
7566	uxthgt	r4, r4
7567.L983:
7568	cmp	r4, r6
7569	bhi	.L993
7570	ldr	r3, .L1099+4
7571	movw	lr, #65535
7572	ldr	r0, [r7]
7573	mov	ip, #20
7574	ldrh	fp, [r3]
7575	ldr	r3, [sp, #16]
7576	str	r3, [sp, #12]
7577	movs	r3, #0
7578	mov	r5, r3
7579	b	.L994
7580.L985:
7581	ldr	r1, [sp, #12]
7582	ldrh	r2, [r1], #2
7583	cmp	r2, lr
7584	str	r1, [sp, #12]
7585	beq	.L984
7586	mla	r1, ip, r5, r0
7587	adds	r5, r5, #1
7588	orr	r2, r4, r2, lsl #10
7589	uxth	r5, r5
7590	str	r2, [r1, #4]
7591.L984:
7592	adds	r3, r3, #1
7593.L994:
7594	uxth	r2, r3
7595	cmp	fp, r2
7596	bhi	.L985
7597	mov	r1, r5
7598	movs	r2, #0
7599	bl	FlashReadPages
7600	ldr	r3, .L1099+40
7601	movs	r1, #20
7602	movs	r0, #0
7603	movw	ip, #65535
7604	ldr	r2, [r3]
7605	ldr	r3, [r7]
7606	mla	r5, r1, r5, r3
7607.L986:
7608	cmp	r5, r3
7609	bne	.L991
7610	cbz	r0, .L992
7611	ldr	r3, .L1099+40
7612	str	r2, [r3]
7613.L992:
7614	adds	r4, r4, #1
7615	uxth	r4, r4
7616	b	.L983
7617.L1100:
7618	.align	2
7619.L1099:
7620	.word	.LANCHOR18
7621	.word	.LANCHOR2
7622	.word	.LANCHOR102
7623	.word	.LANCHOR63
7624	.word	.LANCHOR22
7625	.word	.LANCHOR64
7626	.word	.LANCHOR23
7627	.word	.LANCHOR82
7628	.word	.LANCHOR154
7629	.word	.LC1
7630	.word	.LANCHOR133
7631.L991:
7632	ldr	r1, [r3]
7633	cmp	r1, #0
7634	beq	.L987
7635	cbz	r0, .L980
7636.L1092:
7637	ldr	r3, .L1101
7638	str	r2, [r3]
7639.L980:
7640	ldr	fp, [sp, #4]
7641	movs	r2, #1
7642	ldr	r6, .L1101+4
7643	ldr	r3, .L1101+8
7644	strh	r2, [r3]	@ movhi
7645.L995:
7646	ldr	r3, .L1101+12
7647	movw	lr, #65535
7648	ldr	r0, [r6]
7649	movs	r7, #20
7650	ldr	r1, [sp, #16]
7651	ldrh	r4, [r3]
7652	movs	r3, #0
7653	str	r3, [sp, #12]
7654.L996:
7655	uxth	r2, r3
7656	cmp	r4, r2
7657	bhi	.L998
7658	movs	r2, #0
7659	ldr	r1, [sp, #12]
7660	bl	FlashReadPages
7661	movs	r3, #0
7662.L1096:
7663	str	r3, [sp, #24]
7664	ldr	r2, [sp, #12]
7665	ldrh	r3, [sp, #24]
7666	cmp	r2, r3
7667	bhi	.L1027
7668	ldr	r3, .L1101+16
7669	add	fp, fp, #1
7670	uxth	fp, fp
7671	ldrh	r3, [r3]
7672	cmp	r3, fp
7673	bne	.L995
7674	ldr	r2, .L1101+12
7675	movw	r0, #65535
7676	movs	r3, #0
7677	strh	fp, [r8, #2]	@ movhi
7678	strh	r3, [r8, #4]	@ movhi
7679	ldrh	r2, [r2]
7680.L1028:
7681	uxth	r1, r3
7682	cmp	r1, r2
7683	bcs	.L1090
7684	ldr	r1, [sp, #16]
7685	ldrh	r4, [r1], #2
7686	cmp	r4, r0
7687	str	r1, [sp, #16]
7688	add	r1, r3, #1
7689	bne	.L1097
7690	mov	r3, r1
7691	b	.L1028
7692.L987:
7693	ldr	r1, [r3, #12]
7694	ldrh	lr, [r1]
7695	cmp	lr, ip
7696	beq	.L990
7697	ldr	r1, [r1, #4]
7698	cmp	r1, #-1
7699	itt	ne
7700	movne	r2, r1
7701	movne	r0, #1
7702.L990:
7703	adds	r3, r3, #20
7704	b	.L986
7705.L993:
7706	mov	r2, #-1
7707	b	.L1092
7708.L998:
7709	ldrh	r2, [r1], #2
7710	cmp	r2, lr
7711	beq	.L997
7712	ldr	r5, [sp, #12]
7713	orr	r2, fp, r2, lsl #10
7714	mla	ip, r7, r5, r0
7715	str	r2, [ip, #4]
7716	mov	r2, r5
7717	adds	r2, r2, #1
7718	uxth	r2, r2
7719	str	r2, [sp, #12]
7720.L997:
7721	adds	r3, r3, #1
7722	b	.L996
7723.L1027:
7724	ldr	r3, [sp, #24]
7725	movs	r5, #20
7726	muls	r5, r3, r5
7727	ldr	r3, [r6]
7728	str	r3, [sp, #28]
7729	adds	r7, r3, r5
7730	ldr	r4, [r7, #4]
7731	ubfx	r0, r4, #10, #16
7732	str	r4, [sp, #44]
7733	bl	P2V_plane
7734	ldr	r3, [sp, #4]
7735	cmp	fp, r3
7736	bcc	.L1000
7737	ldr	r3, [sp, #28]
7738	bne	.L1001
7739	ldr	r2, [sp, #20]
7740	cmp	r2, r0
7741	bhi	.L1000
7742.L1001:
7743	ldr	r2, [sp, #8]
7744	cmp	fp, r2
7745	bne	.L1002
7746	cmp	r10, r0
7747	beq	.L1003
7748.L1002:
7749	ldr	r3, [r3, r5]
7750	adds	r3, r3, #1
7751	beq	.L1004
7752	ldr	r3, [r7, #12]
7753	movw	r2, #61589
7754	ldrh	r1, [r3]
7755	cmp	r1, r2
7756	beq	.L1005
7757	ldrh	r0, [r8]
7758.L1093:
7759	bl	decrement_vpc_count
7760	b	.L1000
7761.L1005:
7762	ldr	r2, [r3, #4]
7763	str	r2, [sp]
7764	adds	r2, r2, #1
7765	beq	.L1006
7766	ldr	r2, .L1101+20
7767	ldr	r0, [sp]
7768	ldr	r1, [r2]
7769	bl	ftl_cmp_data_ver
7770	cbz	r0, .L1006
7771	ldr	r1, [sp]
7772	adds	r1, r1, #1
7773	str	r1, [r2]
7774.L1006:
7775	ldr	r4, [r3, #8]
7776	add	r1, sp, #40
7777	ldr	r3, [r3, #12]
7778	movs	r2, #0
7779	mov	r0, r4
7780	str	r3, [sp, #36]
7781	bl	log2phys
7782	ldr	r3, .L1101
7783	ldr	r1, [r3]
7784	adds	r3, r1, #1
7785	beq	.L1007
7786	ldr	r0, [sp]
7787	bl	ftl_cmp_data_ver
7788	cmp	r0, #0
7789	beq	.L1007
7790	ldr	r3, [sp, #36]
7791	adds	r7, r3, #1
7792	beq	.L1008
7793	ldr	r0, [r6]
7794	movs	r2, #0
7795	movs	r1, #1
7796	add	r0, r0, r5
7797	str	r3, [r0, #4]
7798	ldr	r7, [r0, #12]
7799	bl	FlashReadPages
7800	ldr	r2, [r6]
7801	ldr	r1, [r2, r5]
7802	adds	r3, r2, r5
7803	adds	r1, r1, #1
7804	bne	.L1009
7805.L1010:
7806	mov	r3, #-1
7807	str	r3, [sp, #36]
7808.L1017:
7809	ldr	r7, [sp, #36]
7810	adds	r0, r7, #1
7811	beq	.L1000
7812.L1031:
7813	ubfx	r0, r7, #10, #16
7814	bl	P2V_block_in_plane
7815	ldr	r3, .L1101+24
7816	mov	r4, r0
7817	ldrh	r3, [r3]
7818	cmp	r3, r0
7819	bhi	.L1023
7820	movw	r2, #2059
7821	ldr	r1, .L1101+28
7822	ldr	r0, .L1101+32
7823	bl	printf
7824.L1023:
7825	ldr	r3, .L1101+36
7826	ldr	r3, [r3]
7827	ldrh	r3, [r3, r4, lsl #1]
7828	cmp	r3, #0
7829	beq	.L1024
7830	mov	r0, r4
7831	b	.L1093
7832.L1008:
7833	ldr	r3, [sp, #44]
7834	ldr	r2, [sp, #40]
7835	cmp	r2, r3
7836	bne	.L1000
7837	movs	r2, #1
7838	add	r1, sp, #36
7839	mov	r0, r4
7840	bl	log2phys
7841.L1000:
7842	ldr	r3, [sp, #24]
7843	adds	r3, r3, #1
7844	b	.L1096
7845.L1009:
7846	ldr	r1, [r7, #8]
7847	cmp	r4, r1
7848	bne	.L1010
7849	ldr	r0, .L1101
7850	ldr	r1, [r7, #4]
7851	ldr	r0, [r0]
7852	str	r1, [sp, #28]
7853	bl	ftl_cmp_data_ver
7854	cmp	r0, #0
7855	beq	.L1010
7856	ldr	r1, [sp, #40]
7857	ldr	r0, [sp, #44]
7858	cmp	r1, r0
7859	bne	.L1012
7860.L1015:
7861	ldr	r1, [sp, #36]
7862	mov	r0, r4
7863	bl	FtlReUsePrevPpa
7864	b	.L1010
7865.L1012:
7866	ldr	r0, [sp, #36]
7867	cmp	r1, r0
7868	beq	.L1010
7869	adds	r0, r1, #1
7870	beq	.L1013
7871	str	r1, [r3, #4]
7872	movs	r2, #0
7873	movs	r1, #1
7874	mov	r0, r3
7875	ldr	r7, [r3, #12]
7876	bl	FlashReadPages
7877.L1014:
7878	ldr	r3, [r6]
7879	ldr	r3, [r3, r5]
7880	adds	r3, r3, #1
7881	beq	.L1015
7882	ldr	r3, [r7, #4]
7883	ldr	r2, .L1101
7884	mov	r1, r3
7885	ldr	r0, [r2]
7886	bl	ftl_cmp_data_ver
7887	cmp	r0, #0
7888	beq	.L1015
7889	mov	r1, r3
7890	ldr	r0, [sp, #28]
7891	bl	ftl_cmp_data_ver
7892	cmp	r0, #0
7893	beq	.L1010
7894	b	.L1015
7895.L1013:
7896	str	r1, [r2, r5]
7897	b	.L1014
7898.L1007:
7899	ldr	r3, [sp, #44]
7900	ldr	r2, [sp, #40]
7901	cmp	r2, r3
7902	beq	.L1017
7903	ldr	r1, [sp, #36]
7904	adds	r7, r1, #1
7905	beq	.L1019
7906	ldr	r3, .L1101+40
7907	ldr	r3, [r3]
7908	cmp	r3, r1, lsr #10
7909	bhi	.L1019
7910	ldr	r0, .L1101+44
7911.L1095:
7912	bl	printf
7913	b	.L1000
7914.L1102:
7915	.align	2
7916.L1101:
7917	.word	.LANCHOR133
7918	.word	.LANCHOR102
7919	.word	.LANCHOR155
7920	.word	.LANCHOR2
7921	.word	.LANCHOR18
7922	.word	.LANCHOR82
7923	.word	.LANCHOR4
7924	.word	.LANCHOR154
7925	.word	.LC1
7926	.word	.LANCHOR41
7927	.word	.LANCHOR7
7928	.word	.LC27
7929.L1019:
7930	movs	r2, #1
7931	add	r1, sp, #44
7932	mov	r0, r4
7933	bl	log2phys
7934	ldr	r7, [sp, #40]
7935	adds	r5, r7, #1
7936	beq	.L1017
7937	ldr	r3, [sp, #36]
7938	cmp	r7, r3
7939	beq	.L1031
7940	ubfx	r0, r7, #10, #16
7941	bl	P2V_block_in_plane
7942	ldr	r3, .L1103
7943	ldrh	r3, [r3]
7944	cmp	r3, r0
7945	beq	.L1022
7946	ldr	r3, .L1103+4
7947	ldrh	r3, [r3]
7948	cmp	r3, r0
7949	beq	.L1022
7950	ldr	r3, .L1103+8
7951	ldrh	r3, [r3]
7952	cmp	r3, r0
7953	bne	.L1017
7954.L1022:
7955	ldr	r0, [r6]
7956	movs	r2, #0
7957	movs	r1, #1
7958	str	r7, [r0, #4]
7959	ldr	r5, [r0, #12]
7960	bl	FlashReadPages
7961	ldr	r3, [r6]
7962	ldr	r3, [r3]
7963	adds	r3, r3, #1
7964	beq	.L1017
7965	ldr	r1, [r5, #4]
7966	ldr	r0, [sp]
7967	bl	ftl_cmp_data_ver
7968	cmp	r0, #0
7969	bne	.L1017
7970	movs	r2, #1
7971	add	r1, sp, #40
7972	mov	r0, r4
7973	bl	log2phys
7974	b	.L1017
7975.L1024:
7976	mov	r1, r4
7977	ldr	r0, .L1103+12
7978	b	.L1095
7979.L1004:
7980	ldr	r3, .L1103+16
7981	ldr	r3, [r3]
7982	cmp	r3, #31
7983	bhi	.L1025
7984	ldr	r2, .L1103+20
7985	str	r4, [r2, r3, lsl #2]
7986	adds	r3, r3, #1
7987	ldr	r2, .L1103+16
7988	str	r3, [r2]
7989.L1025:
7990	ldrh	r0, [r8]
7991	bl	decrement_vpc_count
7992	ldr	r3, .L1103+24
7993	ldr	r2, [r3]
7994	adds	r1, r2, #1
7995	bne	.L1026
7996	ldr	r2, [sp]
7997.L1094:
7998	str	r2, [r3]
7999	b	.L1000
8000.L1026:
8001	ldr	r1, [sp]
8002	cmp	r1, r2
8003	bcs	.L1000
8004	mov	r2, r1
8005	b	.L1094
8006.L1003:
8007	strb	r10, [r8, #6]
8008	mov	r2, r10
8009	strh	fp, [r8, #2]	@ movhi
8010	mov	r1, fp
8011	b	.L1098
8012.L1104:
8013	.align	2
8014.L1103:
8015	.word	.LANCHOR50
8016	.word	.LANCHOR51
8017	.word	.LANCHOR52
8018	.word	.LC28
8019	.word	.LANCHOR156
8020	.word	.LANCHOR157
8021	.word	.LANCHOR133
8022	.size	FtlRecoverySuperblock, .-FtlRecoverySuperblock
8023	.section	.text.ftl_check_vpc,"ax",%progbits
8024	.align	1
8025	.global	ftl_check_vpc
8026	.syntax unified
8027	.thumb
8028	.thumb_func
8029	.fpu softvfp
8030	.type	ftl_check_vpc, %function
8031ftl_check_vpc:
8032	@ args = 0, pretend = 0, frame = 8
8033	@ frame_needed = 0, uses_anonymous_args = 0
8034	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
8035	movs	r4, #0
8036	ldr	r6, .L1129
8037	ldr	r5, .L1129+4
8038	ldr	r1, .L1129+8
8039	ldr	r0, .L1129+12
8040	bl	printf
8041	mov	r2, #8192
8042	movs	r1, #0
8043	ldr	r0, .L1129+4
8044	bl	ftl_memset
8045.L1106:
8046	ldr	r3, [r6]
8047	cmp	r4, r3
8048	bcc	.L1108
8049	ldr	r10, .L1129+48
8050	movs	r4, #0
8051	ldr	r7, .L1129+16
8052	mov	r6, r4
8053.L1109:
8054	ldrh	r2, [r10]
8055	uxth	r3, r4
8056	cmp	r2, r3
8057	bhi	.L1111
8058	ldr	r3, .L1129+20
8059	ldr	r4, [r3]
8060	cbz	r4, .L1112
8061	ldr	r3, .L1129+24
8062	mov	r8, #0
8063	ldr	r5, .L1129+28
8064	ldr	r10, .L1129+16
8065	ldrh	r7, [r3]
8066	ldr	r3, [r5]
8067	ldr	fp, .L1129+4
8068	subs	r4, r4, r3
8069	ldr	r3, .L1129+32
8070	asrs	r4, r4, #1
8071	muls	r4, r3, r4
8072	uxth	r4, r4
8073.L1113:
8074	uxth	r3, r8
8075	cmp	r7, r3
8076	bls	.L1112
8077	ldr	r3, [r10]
8078	ldrh	r2, [r3, r4, lsl #1]
8079	cbz	r2, .L1114
8080	movs	r6, #1
8081	ldrh	r3, [fp, r4, lsl #1]
8082	mov	r1, r4
8083	ldr	r0, .L1129+36
8084	bl	printf
8085.L1114:
8086	movs	r3, #6
8087	ldr	r2, [r5]
8088	muls	r4, r3, r4
8089	movw	r3, #65535
8090	add	r8, r8, #1
8091	ldrh	r4, [r2, r4]
8092	cmp	r4, r3
8093	bne	.L1113
8094.L1112:
8095	cbz	r6, .L1105
8096	movw	r2, #2387
8097	ldr	r1, .L1129+8
8098	ldr	r0, .L1129+40
8099	bl	printf
8100.L1105:
8101	add	sp, sp, #8
8102	@ sp needed
8103	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8104.L1108:
8105	movs	r2, #0
8106	add	r1, sp, #4
8107	mov	r0, r4
8108	bl	log2phys
8109	ldr	r0, [sp, #4]
8110	adds	r3, r0, #1
8111	beq	.L1107
8112	ubfx	r0, r0, #10, #16
8113	bl	P2V_block_in_plane
8114	ldrh	r3, [r5, r0, lsl #1]
8115	adds	r3, r3, #1
8116	strh	r3, [r5, r0, lsl #1]	@ movhi
8117.L1107:
8118	adds	r4, r4, #1
8119	b	.L1106
8120.L1111:
8121	ldr	r3, [r7]
8122	uxth	r5, r4
8123	ldr	r8, .L1129+4
8124	ldrh	r2, [r3, r5, lsl #1]
8125	ldrh	r3, [r8, r5, lsl #1]
8126	cmp	r2, r3
8127	beq	.L1110
8128	mov	r1, r5
8129	ldr	r0, .L1129+44
8130	bl	printf
8131	ldr	r3, [r7]
8132	movw	r2, #65535
8133	ldrh	r3, [r3, r5, lsl #1]
8134	cmp	r3, r2
8135	beq	.L1110
8136	ldrh	r2, [r8, r5, lsl #1]
8137	cmp	r2, r3
8138	it	hi
8139	movhi	r6, #1
8140.L1110:
8141	adds	r4, r4, #1
8142	b	.L1109
8143.L1130:
8144	.align	2
8145.L1129:
8146	.word	.LANCHOR151
8147	.word	check_vpc_table
8148	.word	.LANCHOR158
8149	.word	.LC29
8150	.word	.LANCHOR41
8151	.word	.LANCHOR45
8152	.word	.LANCHOR47
8153	.word	.LANCHOR39
8154	.word	-1431655765
8155	.word	.LC31
8156	.word	.LC1
8157	.word	.LC30
8158	.word	.LANCHOR4
8159	.size	ftl_check_vpc, .-ftl_check_vpc
8160	.section	.text.ftl_scan_all_data,"ax",%progbits
8161	.align	1
8162	.global	ftl_scan_all_data
8163	.syntax unified
8164	.thumb
8165	.thumb_func
8166	.fpu softvfp
8167	.type	ftl_scan_all_data, %function
8168ftl_scan_all_data:
8169	@ args = 0, pretend = 0, frame = 8
8170	@ frame_needed = 0, uses_anonymous_args = 0
8171	push	{r4, r5, r6, r7, r8, lr}
8172	movs	r5, #0
8173	ldr	r7, .L1145
8174	sub	sp, sp, #32
8175	movs	r1, #0
8176	ldr	r8, .L1145+24
8177	ldr	r0, .L1145+4
8178	bl	printf
8179.L1132:
8180	ldr	r3, [r7]
8181	cmp	r5, r3
8182	bcc	.L1138
8183	add	sp, sp, #32
8184	@ sp needed
8185	pop	{r4, r5, r6, r7, r8, pc}
8186.L1138:
8187	movs	r2, #0
8188	add	r1, sp, #28
8189	mov	r0, r5
8190	bl	log2phys
8191	ubfx	r3, r5, #0, #11
8192	cbnz	r3, .L1133
8193	ldr	r2, [sp, #28]
8194	mov	r1, r5
8195	mov	r0, r8
8196	bl	printf
8197.L1133:
8198	ldr	r3, [sp, #28]
8199	adds	r2, r3, #1
8200	beq	.L1135
8201	ldr	r4, .L1145+8
8202	movs	r2, #0
8203	movs	r1, #1
8204	str	r3, [r4, #4]
8205	mov	r0, r4
8206	ldr	r3, .L1145+12
8207	str	r5, [r4, #16]
8208	str	r2, [r4]
8209	ldr	r3, [r3]
8210	str	r3, [r4, #8]
8211	ldr	r3, .L1145+16
8212	ldr	r6, [r3]
8213	str	r6, [r4, #12]
8214	bl	FlashReadPages
8215	ldr	r3, [r4]
8216	cmp	r3, #256
8217	beq	.L1136
8218	adds	r3, r3, #1
8219	beq	.L1136
8220	ldr	r3, [r6, #8]
8221	cmp	r5, r3
8222	beq	.L1135
8223.L1136:
8224	ldr	r2, [r4, #8]
8225	ldr	r3, [r4, #12]
8226	ldr	r0, .L1145+20
8227	ldr	r1, [r2, #4]
8228	str	r1, [sp, #16]
8229	mov	r1, r5
8230	ldr	r2, [r2]
8231	str	r2, [sp, #12]
8232	ldr	r2, [r3, #12]
8233	str	r2, [sp, #8]
8234	ldr	r2, [r3, #8]
8235	str	r2, [sp, #4]
8236	ldr	r2, [r3, #4]
8237	str	r2, [sp]
8238	ldr	r2, [r4, #4]
8239	ldr	r3, [r3]
8240	bl	printf
8241.L1135:
8242	adds	r5, r5, #1
8243	b	.L1132
8244.L1146:
8245	.align	2
8246.L1145:
8247	.word	.LANCHOR151
8248	.word	.LC32
8249	.word	.LANCHOR137
8250	.word	.LANCHOR105
8251	.word	.LANCHOR113
8252	.word	.LC34
8253	.word	.LC33
8254	.size	ftl_scan_all_data, .-ftl_scan_all_data
8255	.section	.text.FtlGcScanTempBlk,"ax",%progbits
8256	.align	1
8257	.global	FtlGcScanTempBlk
8258	.syntax unified
8259	.thumb
8260	.thumb_func
8261	.fpu softvfp
8262	.type	FtlGcScanTempBlk, %function
8263FtlGcScanTempBlk:
8264	@ args = 0, pretend = 0, frame = 48
8265	@ frame_needed = 0, uses_anonymous_args = 0
8266	ldr	r3, .L1179
8267	movw	r2, #65535
8268	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8269	sub	sp, sp, #48
8270	mov	r4, r0
8271	ldrh	r5, [r3]
8272	str	r3, [sp, #20]
8273	cmp	r5, r2
8274	beq	.L1169
8275	cbnz	r5, .L1148
8276.L1149:
8277	bl	FtlGcPageVarInit
8278	b	.L1150
8279.L1169:
8280	movs	r5, #0
8281.L1148:
8282	ldr	r3, .L1179+4
8283	ldrh	r3, [r3]
8284	cmp	r3, r1
8285	beq	.L1149
8286.L1150:
8287	ldr	fp, .L1179+56
8288.L1166:
8289	ldrh	r2, [r4]
8290	movs	r3, #0
8291	strb	r3, [r4, #8]
8292	movw	r3, #65535
8293	cmp	r2, r3
8294	beq	.L1151
8295.L1168:
8296	ldr	r3, .L1179+8
8297	movs	r2, #0
8298	ldr	r0, [fp]
8299	mov	r10, r2
8300	movw	lr, #65535
8301	mov	r8, #20
8302	ldrh	r3, [r3]
8303	str	r3, [sp, #8]
8304	ldr	r3, .L1179+12
8305	ldr	r3, [r3]
8306	str	r3, [sp, #12]
8307	ldr	r3, .L1179+16
8308	ldrh	r3, [r3]
8309	str	r3, [sp, #16]
8310	ldr	r3, .L1179+20
8311	ldr	r7, [r3]
8312	ldr	r3, .L1179+24
8313	ldrh	ip, [r3]
8314	add	r3, r4, #16
8315	str	r3, [sp, #4]
8316.L1152:
8317	ldr	r1, [sp, #8]
8318	uxth	r3, r2
8319	cmp	r1, r3
8320	bhi	.L1154
8321	mov	r8, #0
8322	movs	r2, #0
8323	mov	r1, r10
8324	bl	FlashReadPages
8325.L1155:
8326	uxth	r3, r8
8327	cmp	r10, r3
8328	bhi	.L1167
8329	ldr	r3, .L1179+4
8330	adds	r5, r5, #1
8331	uxth	r5, r5
8332	ldrh	r3, [r3]
8333	cmp	r3, r5
8334	bhi	.L1168
8335.L1151:
8336	ldr	r2, [sp, #20]
8337	movw	r3, #65535
8338	mov	r0, r4
8339	strh	r5, [r4, #2]	@ movhi
8340	mov	r1, r5
8341	strh	r3, [r2]	@ movhi
8342	movs	r2, #0
8343	strb	r2, [r4, #6]
8344	bl	ftl_sb_update_avl_pages
8345	mov	r0, #-1
8346	add	sp, sp, #48
8347	@ sp needed
8348	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8349.L1154:
8350	ldr	r1, [sp, #4]
8351	ldrh	r3, [r1], #2
8352	cmp	r3, lr
8353	str	r1, [sp, #4]
8354	beq	.L1153
8355	mla	r1, r8, r10, r0
8356	orr	r3, r5, r3, lsl #10
8357	str	r3, [r1, #4]
8358	ldr	r3, [sp, #16]
8359	mul	r3, r3, r10
8360	bic	r3, r3, #3
8361	mov	r6, r3
8362	ldr	r3, [sp, #12]
8363	add	r6, r6, r3
8364	mul	r3, ip, r10
8365	str	r6, [r1, #8]
8366	bic	r3, r3, #3
8367	add	r3, r3, r7
8368	str	r3, [r1, #12]
8369	add	r3, r10, #1
8370	uxth	r10, r3
8371.L1153:
8372	adds	r2, r2, #1
8373	b	.L1152
8374.L1167:
8375	movs	r3, #20
8376	ldr	r2, [fp]
8377	mul	r3, r3, r8
8378	adds	r1, r2, r3
8379	ldr	r6, [r2, r3]
8380	ldr	r0, [r1, #4]
8381	ldr	r7, [r1, #12]
8382	str	r0, [sp, #4]
8383	cmp	r6, #0
8384	bne	.L1156
8385	ldrh	r1, [r7]
8386	movw	r2, #65535
8387	cmp	r1, r2
8388	beq	.L1177
8389	ldr	r2, .L1179+28
8390	ldr	r0, [r7, #8]
8391	ldr	r2, [r2]
8392	cmp	r0, r2
8393	bls	.L1158
8394.L1177:
8395	ldr	r3, .L1179+32
8396	movs	r1, #0
8397	ldrh	r2, [r4]
8398	movs	r5, #0
8399	ldr	r3, [r3]
8400	strh	r1, [r3, r2, lsl #1]	@ movhi
8401	ldrh	r0, [r4]
8402	bl	INSERT_FREE_LIST
8403	ldr	r2, .L1179+36
8404	movw	r3, #65535
8405	strh	r3, [r4]	@ movhi
8406	strh	r3, [r2]	@ movhi
8407	bl	FtlGcPageVarInit
8408	b	.L1166
8409.L1158:
8410	mov	r2, r6
8411	add	r1, sp, #24
8412	str	r3, [sp, #8]
8413	bl	log2phys
8414	ldr	r2, [r7, #12]
8415	ldr	r1, [sp, #24]
8416	ldr	r3, [sp, #8]
8417	cmp	r2, r1
8418	beq	.L1160
8419.L1162:
8420	ldr	r2, [r7, #8]
8421.L1178:
8422	ldr	r1, [sp, #4]
8423	add	r8, r8, #1
8424	ldr	r0, [r7, #12]
8425	bl	FtlGcUpdatePage
8426	b	.L1155
8427.L1160:
8428	str	r3, [sp, #8]
8429	adds	r3, r2, #1
8430	beq	.L1162
8431	str	r2, [sp, #32]
8432	movs	r1, #1
8433	ldr	r2, .L1179+40
8434	add	r0, sp, #28
8435	ldr	r2, [r2]
8436	str	r2, [sp, #36]
8437	ldr	r2, .L1179+44
8438	ldr	r2, [r2]
8439	str	r2, [sp, #40]
8440	mov	r2, r6
8441	bl	FlashReadPages
8442	ldr	r2, .L1179+48
8443	ldr	r1, [fp]
8444	ldr	r3, [sp, #8]
8445	ldrh	r2, [r2]
8446	ldr	r0, [sp, #36]
8447	add	ip, r3, r1
8448	lsls	r2, r2, #7
8449.L1163:
8450	cmp	r6, r2
8451	beq	.L1162
8452	ldr	r1, [ip, #8]
8453	ldr	r3, [r0, r6, lsl #2]
8454	ldr	r1, [r1, r6, lsl #2]
8455	cmp	r1, r3
8456	beq	.L1164
8457	ldr	r2, [sp, #32]
8458	ldrh	r1, [r4]
8459	ldr	r0, .L1179+52
8460	bl	printf
8461	b	.L1177
8462.L1164:
8463	adds	r6, r6, #1
8464	b	.L1163
8465.L1156:
8466	mov	r2, #-1
8467	b	.L1178
8468.L1180:
8469	.align	2
8470.L1179:
8471	.word	.LANCHOR159
8472	.word	.LANCHOR18
8473	.word	.LANCHOR2
8474	.word	.LANCHOR63
8475	.word	.LANCHOR22
8476	.word	.LANCHOR64
8477	.word	.LANCHOR23
8478	.word	.LANCHOR151
8479	.word	.LANCHOR41
8480	.word	.LANCHOR144
8481	.word	.LANCHOR109
8482	.word	.LANCHOR114
8483	.word	.LANCHOR11
8484	.word	.LC35
8485	.word	.LANCHOR102
8486	.size	FtlGcScanTempBlk, .-FtlGcScanTempBlk
8487	.section	.text.FtlVendorPartWrite,"ax",%progbits
8488	.align	1
8489	.global	FtlVendorPartWrite
8490	.syntax unified
8491	.thumb
8492	.thumb_func
8493	.fpu softvfp
8494	.type	FtlVendorPartWrite, %function
8495FtlVendorPartWrite:
8496	@ args = 0, pretend = 0, frame = 104
8497	@ frame_needed = 0, uses_anonymous_args = 0
8498	ldr	r3, .L1193
8499	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8500	sub	sp, sp, #104
8501	str	r2, [sp]
8502	adds	r2, r0, r1
8503	mov	r7, r0
8504	mov	r5, r1
8505	ldrh	r3, [r3]
8506	cmp	r2, r3
8507	bhi	.L1189
8508	ldr	r3, .L1193+4
8509	mov	r8, #0
8510	ldrh	r6, [r3]
8511	lsr	r6, r0, r6
8512	lsl	fp, r6, #2
8513.L1183:
8514	cbnz	r5, .L1188
8515.L1181:
8516	mov	r0, r8
8517	add	sp, sp, #104
8518	@ sp needed
8519	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8520.L1188:
8521	ldr	r3, .L1193+8
8522	mov	r0, r7
8523	ldr	r10, .L1193+24
8524	ldr	r3, [r3]
8525	ldr	r2, [r3, fp]
8526	ldr	r3, .L1193+12
8527	str	r2, [sp, #12]
8528	ldrh	r3, [r3]
8529	mov	r1, r3
8530	str	r3, [sp, #8]
8531	bl	__aeabi_uidivmod
8532	ldr	r3, [sp, #8]
8533	ldr	r2, [sp, #12]
8534	str	r1, [sp, #4]
8535	subs	r4, r3, r1
8536	uxth	r4, r4
8537	cmp	r5, r4
8538	it	cc
8539	uxthcc	r4, r5
8540	cbz	r2, .L1185
8541	cmp	r4, r3
8542	beq	.L1185
8543	ldr	r3, [r10]
8544	add	r0, sp, #20
8545	str	r2, [sp, #24]
8546	movs	r2, #1
8547	mov	r1, r2
8548	str	r3, [sp, #28]
8549	add	r3, sp, #40
8550	str	r3, [sp, #32]
8551	bl	FlashReadPages
8552.L1186:
8553	lsls	r3, r4, #9
8554	ldr	r0, [r10]
8555	subs	r5, r5, r4
8556	mov	r2, r3
8557	str	r3, [sp, #8]
8558	ldm	sp, {r1, r3}
8559	add	r7, r7, r4
8560	add	fp, fp, #4
8561	add	r0, r0, r3, lsl #9
8562	bl	ftl_memcpy
8563	ldr	r2, [r10]
8564	mov	r1, r6
8565	ldr	r0, .L1193+16
8566	adds	r6, r6, #1
8567	bl	FtlMapWritePage
8568	ldr	r3, [sp]
8569	adds	r0, r0, #1
8570	it	eq
8571	moveq	r8, #-1
8572	mov	r2, r3
8573	ldr	r3, [sp, #8]
8574	add	r2, r2, r3
8575	str	r2, [sp]
8576	b	.L1183
8577.L1185:
8578	ldr	r3, .L1193+20
8579	movs	r1, #0
8580	ldr	r0, [r10]
8581	ldrh	r2, [r3]
8582	bl	ftl_memset
8583	b	.L1186
8584.L1189:
8585	mov	r8, #-1
8586	b	.L1181
8587.L1194:
8588	.align	2
8589.L1193:
8590	.word	.LANCHOR15
8591	.word	.LANCHOR21
8592	.word	.LANCHOR122
8593	.word	.LANCHOR11
8594	.word	.LANCHOR160
8595	.word	.LANCHOR22
8596	.word	.LANCHOR107
8597	.size	FtlVendorPartWrite, .-FtlVendorPartWrite
8598	.section	.text.Ftl_save_ext_data,"ax",%progbits
8599	.align	1
8600	.global	Ftl_save_ext_data
8601	.syntax unified
8602	.thumb
8603	.thumb_func
8604	.fpu softvfp
8605	.type	Ftl_save_ext_data, %function
8606Ftl_save_ext_data:
8607	@ args = 0, pretend = 0, frame = 0
8608	@ frame_needed = 0, uses_anonymous_args = 0
8609	@ link register save eliminated.
8610	ldr	r2, .L1197
8611	ldr	r3, .L1197+4
8612	ldr	r1, [r2]
8613	cmp	r1, r3
8614	bne	.L1195
8615	ldr	r3, .L1197+8
8616	movs	r1, #1
8617	movs	r0, #0
8618	str	r3, [r2, #4]
8619	ldr	r3, .L1197+12
8620	ldr	r3, [r3]
8621	str	r3, [r2, #88]
8622	ldr	r3, .L1197+16
8623	ldr	r3, [r3]
8624	str	r3, [r2, #92]
8625	ldr	r3, .L1197+20
8626	ldr	r3, [r3]
8627	str	r3, [r2, #8]
8628	ldr	r3, .L1197+24
8629	ldr	r3, [r3]
8630	str	r3, [r2, #12]
8631	ldr	r3, .L1197+28
8632	ldr	r3, [r3]
8633	str	r3, [r2, #16]
8634	ldr	r3, .L1197+32
8635	ldr	r3, [r3]
8636	str	r3, [r2, #20]
8637	ldr	r3, .L1197+36
8638	ldr	r3, [r3]
8639	str	r3, [r2, #28]
8640	ldr	r3, .L1197+40
8641	ldr	r3, [r3]
8642	str	r3, [r2, #32]
8643	ldr	r3, .L1197+44
8644	ldr	r3, [r3]
8645	str	r3, [r2, #36]
8646	ldr	r3, .L1197+48
8647	ldr	r3, [r3]
8648	str	r3, [r2, #40]
8649	ldr	r3, .L1197+52
8650	ldr	r3, [r3]
8651	str	r3, [r2, #44]
8652	ldr	r3, .L1197+56
8653	ldr	r3, [r3]
8654	str	r3, [r2, #48]
8655	b	FtlVendorPartWrite
8656.L1195:
8657	bx	lr
8658.L1198:
8659	.align	2
8660.L1197:
8661	.word	.LANCHOR134
8662	.word	1179929683
8663	.word	1342177365
8664	.word	.LANCHOR161
8665	.word	.LANCHOR162
8666	.word	.LANCHOR83
8667	.word	.LANCHOR84
8668	.word	.LANCHOR88
8669	.word	.LANCHOR87
8670	.word	.LANCHOR90
8671	.word	.LANCHOR79
8672	.word	.LANCHOR85
8673	.word	.LANCHOR86
8674	.word	.LANCHOR91
8675	.word	.LANCHOR92
8676	.size	Ftl_save_ext_data, .-Ftl_save_ext_data
8677	.section	.text.FtlEctTblFlush,"ax",%progbits
8678	.align	1
8679	.global	FtlEctTblFlush
8680	.syntax unified
8681	.thumb
8682	.thumb_func
8683	.fpu softvfp
8684	.type	FtlEctTblFlush, %function
8685FtlEctTblFlush:
8686	@ args = 0, pretend = 0, frame = 0
8687	@ frame_needed = 0, uses_anonymous_args = 0
8688	ldr	r2, .L1204
8689	push	{r3, lr}
8690	ldrh	r3, [r2]
8691	cmp	r3, #31
8692	itett	ls
8693	addls	r3, r3, #1
8694	movhi	r3, #32
8695	strhls	r3, [r2]	@ movhi
8696	movls	r3, #1
8697	ldr	r2, .L1204+4
8698	cbnz	r0, .L1201
8699	ldr	r1, [r2]
8700	ldr	r0, [r1, #20]
8701	ldr	r1, [r1, #16]
8702	add	r3, r3, r0
8703	cmp	r1, r3
8704	bcc	.L1202
8705.L1201:
8706	ldr	r2, [r2]
8707	movs	r0, #64
8708	ldr	r3, [r2, #16]
8709	str	r3, [r2, #20]
8710	ldr	r3, .L1204+8
8711	str	r3, [r2]
8712	ldr	r3, .L1204+12
8713	ldrh	r1, [r3]
8714	lsls	r3, r1, #9
8715	str	r3, [r2, #12]
8716	ldr	r3, [r2, #8]
8717	adds	r3, r3, #1
8718	str	r3, [r2, #8]
8719	movs	r3, #0
8720	str	r3, [r2, #4]
8721	bl	FtlVendorPartWrite
8722	bl	Ftl_save_ext_data
8723.L1202:
8724	movs	r0, #0
8725	pop	{r3, pc}
8726.L1205:
8727	.align	2
8728.L1204:
8729	.word	.LANCHOR163
8730	.word	.LANCHOR117
8731	.word	1112818501
8732	.word	.LANCHOR115
8733	.size	FtlEctTblFlush, .-FtlEctTblFlush
8734	.section	.text.sftl_vendor_write,"ax",%progbits
8735	.align	1
8736	.global	sftl_vendor_write
8737	.syntax unified
8738	.thumb
8739	.thumb_func
8740	.fpu softvfp
8741	.type	sftl_vendor_write, %function
8742sftl_vendor_write:
8743	@ args = 0, pretend = 0, frame = 0
8744	@ frame_needed = 0, uses_anonymous_args = 0
8745	@ link register save eliminated.
8746	add	r0, r0, #256
8747	b	FtlVendorPartWrite
8748	.size	sftl_vendor_write, .-sftl_vendor_write
8749	.section	.text.FtlVendorPartRead,"ax",%progbits
8750	.align	1
8751	.global	FtlVendorPartRead
8752	.syntax unified
8753	.thumb
8754	.thumb_func
8755	.fpu softvfp
8756	.type	FtlVendorPartRead, %function
8757FtlVendorPartRead:
8758	@ args = 0, pretend = 0, frame = 104
8759	@ frame_needed = 0, uses_anonymous_args = 0
8760	ldr	r3, .L1217
8761	push	{r4, r5, r6, r7, r8, r10, fp, lr}
8762	mov	r10, r2
8763	adds	r2, r0, r1
8764	sub	sp, sp, #104
8765	mov	r7, r0
8766	mov	r6, r1
8767	ldrh	r3, [r3]
8768	cmp	r2, r3
8769	bhi	.L1216
8770	ldr	r3, .L1217+4
8771	mov	r8, #0
8772	ldr	fp, .L1217+28
8773	ldrh	r5, [r3]
8774	lsr	r5, r0, r5
8775	lsls	r3, r5, #2
8776	str	r3, [sp]
8777.L1209:
8778	cbnz	r6, .L1215
8779.L1207:
8780	mov	r0, r8
8781	add	sp, sp, #104
8782	@ sp needed
8783	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
8784.L1215:
8785	ldr	r3, .L1217+8
8786	mov	r0, r7
8787	ldr	r2, [sp]
8788	ldr	r3, [r3]
8789	ldr	r3, [r3, r2]
8790	ldr	r2, .L1217+12
8791	str	r3, [sp, #8]
8792	ldrh	r4, [r2]
8793	mov	r1, r4
8794	bl	__aeabi_uidivmod
8795	subs	r4, r4, r1
8796	ldr	r3, [sp, #8]
8797	uxth	r4, r4
8798	str	r1, [sp, #4]
8799	cmp	r6, r4
8800	it	cc
8801	uxthcc	r4, r6
8802	lsls	r2, r4, #9
8803	str	r2, [sp, #8]
8804	cmp	r3, #0
8805	beq	.L1211
8806	ldr	r2, [fp]
8807	add	r0, sp, #20
8808	str	r3, [sp, #24]
8809	str	r3, [sp, #12]
8810	str	r2, [sp, #28]
8811	add	r2, sp, #40
8812	str	r2, [sp, #32]
8813	movs	r2, #1
8814	mov	r1, r2
8815	bl	FlashReadPages
8816	ldr	r2, [sp, #20]
8817	ldr	r3, [sp, #12]
8818	adds	r2, r2, #1
8819	ldr	r2, .L1217+16
8820	it	eq
8821	moveq	r8, #-1
8822	ldr	r2, [r2]
8823	cmp	r2, #256
8824	bne	.L1213
8825	mov	r2, r3
8826	mov	r1, r5
8827	ldr	r0, .L1217+20
8828	bl	printf
8829	ldr	r2, [fp]
8830	mov	r1, r5
8831	ldr	r0, .L1217+24
8832	bl	FtlMapWritePage
8833.L1213:
8834	ldr	r1, [fp]
8835	lsls	r2, r4, #9
8836	ldr	r3, [sp, #4]
8837	mov	r0, r10
8838	add	r1, r1, r3, lsl #9
8839	bl	ftl_memcpy
8840.L1214:
8841	ldr	r3, [sp, #8]
8842	adds	r5, r5, #1
8843	subs	r6, r6, r4
8844	add	r7, r7, r4
8845	add	r10, r10, r3
8846	ldr	r3, [sp]
8847	adds	r3, r3, #4
8848	str	r3, [sp]
8849	b	.L1209
8850.L1211:
8851	lsls	r2, r4, #9
8852	mov	r1, r3
8853	mov	r0, r10
8854	bl	ftl_memset
8855	b	.L1214
8856.L1216:
8857	mov	r8, #-1
8858	b	.L1207
8859.L1218:
8860	.align	2
8861.L1217:
8862	.word	.LANCHOR15
8863	.word	.LANCHOR21
8864	.word	.LANCHOR122
8865	.word	.LANCHOR11
8866	.word	.LANCHOR137
8867	.word	.LC36
8868	.word	.LANCHOR160
8869	.word	.LANCHOR107
8870	.size	FtlVendorPartRead, .-FtlVendorPartRead
8871	.section	.text.FtlLoadEctTbl,"ax",%progbits
8872	.align	1
8873	.global	FtlLoadEctTbl
8874	.syntax unified
8875	.thumb
8876	.thumb_func
8877	.fpu softvfp
8878	.type	FtlLoadEctTbl, %function
8879FtlLoadEctTbl:
8880	@ args = 0, pretend = 0, frame = 0
8881	@ frame_needed = 0, uses_anonymous_args = 0
8882	push	{r3, r4, r5, lr}
8883	movs	r0, #64
8884	ldr	r4, .L1221
8885	ldr	r5, .L1221+4
8886	ldr	r2, [r4]
8887	ldrh	r1, [r5]
8888	bl	FtlVendorPartRead
8889	ldr	r3, [r4]
8890	ldr	r2, [r3]
8891	ldr	r3, .L1221+8
8892	cmp	r2, r3
8893	beq	.L1220
8894	ldr	r1, .L1221+12
8895	ldr	r0, .L1221+16
8896	bl	printf
8897	ldrh	r2, [r5]
8898	movs	r1, #0
8899	ldr	r0, [r4]
8900	lsls	r2, r2, #9
8901	bl	ftl_memset
8902.L1220:
8903	movs	r0, #0
8904	pop	{r3, r4, r5, pc}
8905.L1222:
8906	.align	2
8907.L1221:
8908	.word	.LANCHOR117
8909	.word	.LANCHOR115
8910	.word	1112818501
8911	.word	.LC37
8912	.word	.LC38
8913	.size	FtlLoadEctTbl, .-FtlLoadEctTbl
8914	.section	.text.Ftl_load_ext_data,"ax",%progbits
8915	.align	1
8916	.global	Ftl_load_ext_data
8917	.syntax unified
8918	.thumb
8919	.thumb_func
8920	.fpu softvfp
8921	.type	Ftl_load_ext_data, %function
8922Ftl_load_ext_data:
8923	@ args = 0, pretend = 0, frame = 0
8924	@ frame_needed = 0, uses_anonymous_args = 0
8925	push	{r3, r4, r5, lr}
8926	movs	r1, #1
8927	ldr	r4, .L1226
8928	movs	r0, #0
8929	ldr	r5, .L1226+4
8930	mov	r2, r4
8931	bl	FtlVendorPartRead
8932	ldr	r3, [r4]
8933	cmp	r3, r5
8934	beq	.L1224
8935	mov	r2, #512
8936	movs	r1, #0
8937	mov	r0, r4
8938	bl	ftl_memset
8939	str	r5, [r4]
8940.L1224:
8941	ldr	r3, [r4]
8942	cmp	r3, r5
8943	ldr	r3, .L1226+8
8944	bne	.L1225
8945	ldr	r1, [r4, #88]
8946	ldr	r2, .L1226+12
8947	str	r1, [r2]
8948	ldr	r1, [r4, #92]
8949	ldr	r2, .L1226+16
8950	str	r1, [r2]
8951	ldr	r1, [r4, #8]
8952	ldr	r2, .L1226+20
8953	str	r1, [r2]
8954	ldr	r1, [r4, #12]
8955	ldr	r2, .L1226+24
8956	str	r1, [r2]
8957	ldr	r1, [r4, #16]
8958	ldr	r2, .L1226+28
8959	str	r1, [r2]
8960	ldr	r1, [r4, #20]
8961	ldr	r2, .L1226+32
8962	str	r1, [r2]
8963	ldr	r2, [r4, #28]
8964	ldr	r1, [r4, #32]
8965	str	r2, [r3]
8966	ldr	r2, .L1226+36
8967	str	r1, [r2]
8968	ldr	r1, [r4, #36]
8969	ldr	r2, .L1226+40
8970	str	r1, [r2]
8971	ldr	r1, [r4, #40]
8972	ldr	r2, .L1226+44
8973	str	r1, [r2]
8974	ldr	r1, [r4, #44]
8975	ldr	r2, .L1226+48
8976	str	r1, [r2]
8977	ldr	r1, [r4, #48]
8978	ldr	r2, .L1226+52
8979	str	r1, [r2]
8980.L1225:
8981	ldr	r1, .L1226+56
8982	ldr	r2, .L1226+60
8983	ldr	r3, [r3]
8984	ldr	r0, [r1]
8985	ldrh	r2, [r2]
8986	ldr	r1, .L1226+64
8987	mla	r0, r0, r2, r3
8988	ldrh	r1, [r1]
8989	bl	__aeabi_uidiv
8990	ldr	r3, .L1226+68
8991	str	r0, [r3]
8992	pop	{r3, r4, r5, pc}
8993.L1227:
8994	.align	2
8995.L1226:
8996	.word	.LANCHOR134
8997	.word	1179929683
8998	.word	.LANCHOR90
8999	.word	.LANCHOR161
9000	.word	.LANCHOR162
9001	.word	.LANCHOR83
9002	.word	.LANCHOR84
9003	.word	.LANCHOR88
9004	.word	.LANCHOR87
9005	.word	.LANCHOR79
9006	.word	.LANCHOR85
9007	.word	.LANCHOR86
9008	.word	.LANCHOR91
9009	.word	.LANCHOR92
9010	.word	.LANCHOR89
9011	.word	.LANCHOR13
9012	.word	.LANCHOR4
9013	.word	.LANCHOR142
9014	.size	Ftl_load_ext_data, .-Ftl_load_ext_data
9015	.section	.text.sftl_vendor_read,"ax",%progbits
9016	.align	1
9017	.global	sftl_vendor_read
9018	.syntax unified
9019	.thumb
9020	.thumb_func
9021	.fpu softvfp
9022	.type	sftl_vendor_read, %function
9023sftl_vendor_read:
9024	@ args = 0, pretend = 0, frame = 0
9025	@ frame_needed = 0, uses_anonymous_args = 0
9026	@ link register save eliminated.
9027	add	r0, r0, #256
9028	b	FtlVendorPartRead
9029	.size	sftl_vendor_read, .-sftl_vendor_read
9030	.section	.text.FtlMapBlkWriteDump_data,"ax",%progbits
9031	.align	1
9032	.global	FtlMapBlkWriteDump_data
9033	.syntax unified
9034	.thumb
9035	.thumb_func
9036	.fpu softvfp
9037	.type	FtlMapBlkWriteDump_data, %function
9038FtlMapBlkWriteDump_data:
9039	@ args = 0, pretend = 0, frame = 0
9040	@ frame_needed = 0, uses_anonymous_args = 0
9041	push	{r3, r4, r5, r6, r7, r8, r10, lr}
9042	mov	r4, r0
9043	ldr	r3, [r0, #36]
9044	cmp	r3, #0
9045	beq	.L1229
9046	movs	r3, #0
9047	ldr	r5, .L1241
9048	str	r3, [r0, #36]
9049	ldr	r3, .L1241+4
9050	ldrh	r6, [r0, #6]
9051	mov	r7, r5
9052	ldr	r10, [r0, #24]
9053	ldr	r3, [r3]
9054	str	r3, [r5, #8]
9055	ldr	r3, .L1241+8
9056	ldr	r8, [r3]
9057	ldrh	r3, [r0, #2]
9058	str	r8, [r5, #12]
9059	cbz	r3, .L1231
9060	ldr	r2, .L1241+12
9061	ldrh	r2, [r2]
9062	subs	r2, r2, #1
9063	cmp	r3, r2
9064	bge	.L1231
9065	ldrh	r2, [r0]
9066	movw	r1, #65535
9067	cmp	r2, r1
9068	beq	.L1231
9069	ldr	r1, [r0, #12]
9070	subs	r3, r3, #1
9071	mov	r0, r5
9072	ldrh	r2, [r1, r2, lsl #1]
9073	orr	r3, r3, r2, lsl #10
9074	movs	r2, #1
9075	mov	r1, r2
9076	str	r3, [r5, #4]
9077	bl	FlashReadPages
9078	ldr	r3, [r5]
9079	adds	r3, r3, #1
9080	beq	.L1231
9081	ldr	r3, [r4, #24]
9082	ldrh	r1, [r8, #8]
9083	ldr	r2, [r3, r1, lsl #2]
9084	ldr	r3, [r5, #4]
9085	cmp	r2, r3
9086	bne	.L1231
9087	ldr	r2, [r5, #8]
9088.L1240:
9089	mov	r0, r4
9090	pop	{r3, r4, r5, r6, r7, r8, r10, lr}
9091	b	FtlMapWritePage
9092.L1231:
9093	subs	r6, r6, #1
9094	uxth	r6, r6
9095	ldr	r3, [r10, r6, lsl #2]
9096	str	r3, [r7, #4]
9097	cbz	r3, .L1232
9098	movs	r2, #1
9099	ldr	r0, .L1241
9100	mov	r1, r2
9101	bl	FlashReadPages
9102.L1233:
9103	ldr	r2, [r7, #8]
9104	mov	r1, r6
9105	b	.L1240
9106.L1232:
9107	ldr	r3, .L1241+16
9108	movs	r1, #255
9109	ldr	r0, [r7, #8]
9110	ldrh	r2, [r3]
9111	bl	ftl_memset
9112	b	.L1233
9113.L1229:
9114	pop	{r3, r4, r5, r6, r7, r8, r10, pc}
9115.L1242:
9116	.align	2
9117.L1241:
9118	.word	.LANCHOR137
9119	.word	.LANCHOR106
9120	.word	.LANCHOR113
9121	.word	.LANCHOR19
9122	.word	.LANCHOR22
9123	.size	FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
9124	.section	.text.FtlVpcTblFlush,"ax",%progbits
9125	.align	1
9126	.global	FtlVpcTblFlush
9127	.syntax unified
9128	.thumb
9129	.thumb_func
9130	.fpu softvfp
9131	.type	FtlVpcTblFlush, %function
9132FtlVpcTblFlush:
9133	@ args = 0, pretend = 0, frame = 8
9134	@ frame_needed = 0, uses_anonymous_args = 0
9135	push	{r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
9136	mov	r8, #0
9137	ldr	r3, .L1258
9138	ldr	r5, .L1258+4
9139	ldr	fp, .L1258+72
9140	ldr	r0, [r3]
9141	ldr	r6, .L1258+8
9142	ldr	r7, [fp]
9143	ldrh	r2, [r5]
9144	str	r0, [r6, #8]
9145	str	r7, [r6, #12]
9146	strh	r2, [r7, #2]	@ movhi
9147	movw	r2, #61604
9148	strh	r2, [r7]	@ movhi
9149	ldr	r2, [r5, #8]
9150	ldr	r4, .L1258+12
9151	ldr	ip, .L1258+76
9152	str	r2, [r7, #4]
9153	ldr	r2, .L1258+16
9154	str	r8, [r7, #8]
9155	str	r8, [r7, #12]
9156	stm	r4, {r2, ip}
9157	ldrh	r2, [r5, #6]
9158	str	r3, [sp]
9159	ldr	r10, .L1258+80
9160	strh	r2, [r4, #8]	@ movhi
9161	ldr	r2, .L1258+20
9162	ldr	r3, .L1258+24
9163	ldrh	r2, [r2]
9164	strb	r2, [r4, #10]
9165	ldr	r2, .L1258+28
9166	ldrh	r1, [r2]
9167	ldrh	ip, [r2, #2]
9168	strh	r1, [r4, #14]	@ movhi
9169	ldrb	r1, [r2, #6]	@ zero_extendqisi2
9170	ldrb	r2, [r2, #8]	@ zero_extendqisi2
9171	strb	r2, [r4, #11]
9172	orr	r1, r1, ip, lsl #6
9173	ldr	r2, .L1258+32
9174	strh	r1, [r4, #16]	@ movhi
9175	ldrh	r1, [r2]
9176	ldrh	ip, [r2, #2]
9177	strh	r1, [r4, #18]	@ movhi
9178	ldrb	r1, [r2, #6]	@ zero_extendqisi2
9179	ldrb	r2, [r2, #8]	@ zero_extendqisi2
9180	orr	r1, r1, ip, lsl #6
9181	strh	r1, [r4, #20]	@ movhi
9182	strb	r2, [r4, #12]
9183	ldr	r2, .L1258+36
9184	ldrh	r1, [r2]
9185	ldrh	ip, [r2, #2]
9186	strh	r1, [r4, #22]	@ movhi
9187	ldrb	r1, [r2, #6]	@ zero_extendqisi2
9188	ldrb	r2, [r2, #8]	@ zero_extendqisi2
9189	strb	r2, [r4, #13]
9190	orr	r1, r1, ip, lsl #6
9191	ldr	r2, .L1258+40
9192	strh	r1, [r4, #24]	@ movhi
9193	movs	r1, #255
9194	ldr	r2, [r2]
9195	str	r2, [r4, #32]
9196	ldr	r2, [r10]
9197	str	r2, [r4, #40]
9198	ldr	r2, .L1258+44
9199	ldr	r2, [r2]
9200	str	r2, [r4, #36]
9201	ldrh	r2, [r3]
9202	bl	ftl_memset
9203	mov	r1, r4
9204	movs	r2, #48
9205	ldr	r0, [r6, #8]
9206	movw	r4, #65535
9207	bl	ftl_memcpy
9208	ldr	r2, .L1258+48
9209	ldr	r0, [r6, #8]
9210	ldr	r1, .L1258+52
9211	ldrh	r2, [r2]
9212	adds	r0, r0, #48
9213	ldr	r1, [r1]
9214	lsls	r2, r2, #1
9215	bl	ftl_memcpy
9216	mov	r0, r8
9217	bl	FtlUpdateVaildLpn
9218	ldr	r3, .L1258+24
9219	str	r3, [sp, #4]
9220.L1244:
9221	ldr	r3, [sp]
9222	ldrh	r1, [r5, #2]
9223	ldrh	r2, [r5]
9224	ldr	r3, [r3]
9225	str	r3, [r6, #8]
9226	ldr	r3, [fp]
9227	str	r3, [r6, #12]
9228	orr	r3, r1, r2, lsl #10
9229	str	r3, [r6, #4]
9230	ldr	r3, .L1258+56
9231	ldrh	r3, [r3]
9232	subs	r3, r3, #1
9233	cmp	r1, r3
9234	blt	.L1245
9235	movs	r3, #0
9236	ldrh	r4, [r5, #4]
9237	strh	r3, [r5, #2]	@ movhi
9238	strh	r2, [r5, #4]	@ movhi
9239	bl	FtlFreeSysBlkQueueOut
9240	ldr	r3, [r10]
9241	strh	r0, [r5]	@ movhi
9242	adds	r2, r3, #1
9243	str	r3, [r5, #8]
9244	str	r2, [r10]
9245	lsls	r2, r0, #10
9246	str	r2, [r6, #4]
9247	str	r3, [r7, #4]
9248	strh	r0, [r7, #2]	@ movhi
9249.L1245:
9250	ldr	r3, [sp, #4]
9251	ldrh	r1, [r3]
9252	ldr	r3, [sp]
9253	ldr	r0, [r3]
9254	bl	js_hash
9255	movs	r3, #1
9256	str	r0, [r7, #12]
9257	mov	r2, r3
9258	mov	r1, r3
9259	ldr	r0, .L1258+8
9260	bl	FlashProgPages
9261	ldrh	r3, [r5, #2]
9262	ldr	r2, [r6]
9263	adds	r3, r3, #1
9264	uxth	r3, r3
9265	adds	r1, r2, #1
9266	strh	r3, [r5, #2]	@ movhi
9267	bne	.L1246
9268	cmp	r3, #1
9269	bne	.L1247
9270	movw	r2, #1138
9271	ldr	r1, .L1258+60
9272	ldr	r0, .L1258+64
9273	bl	printf
9274.L1247:
9275	ldrh	r3, [r5, #2]
9276	add	r8, r8, #1
9277	uxth	r8, r8
9278	cmp	r3, #1
9279	itttt	eq
9280	ldreq	r3, .L1258+56
9281	ldrheq	r3, [r3]
9282	addeq	r3, r3, #-1
9283	strheq	r3, [r5, #2]	@ movhi
9284	cmp	r8, #3
9285	bls	.L1244
9286	mov	r2, r8
9287	ldr	r1, [r6, #4]
9288	ldr	r0, .L1258+68
9289	bl	printf
9290.L1250:
9291	b	.L1250
9292.L1246:
9293	cmp	r3, #1
9294	beq	.L1244
9295	cmp	r2, #256
9296	beq	.L1244
9297	movw	r3, #65535
9298	cmp	r4, r3
9299	beq	.L1251
9300	movs	r1, #1
9301	mov	r0, r4
9302	bl	FtlFreeSysBlkQueueIn
9303.L1251:
9304	movs	r0, #0
9305	add	sp, sp, #8
9306	@ sp needed
9307	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9308.L1259:
9309	.align	2
9310.L1258:
9311	.word	.LANCHOR105
9312	.word	.LANCHOR138
9313	.word	.LANCHOR137
9314	.word	.LANCHOR38
9315	.word	1179929683
9316	.word	.LANCHOR9
9317	.word	.LANCHOR22
9318	.word	.LANCHOR50
9319	.word	.LANCHOR51
9320	.word	.LANCHOR52
9321	.word	.LANCHOR89
9322	.word	.LANCHOR82
9323	.word	.LANCHOR4
9324	.word	.LANCHOR41
9325	.word	.LANCHOR19
9326	.word	.LANCHOR164
9327	.word	.LC1
9328	.word	.LC39
9329	.word	.LANCHOR113
9330	.word	1342177365
9331	.word	.LANCHOR81
9332	.size	FtlVpcTblFlush, .-FtlVpcTblFlush
9333	.section	.text.FtlSysFlush,"ax",%progbits
9334	.align	1
9335	.global	FtlSysFlush
9336	.syntax unified
9337	.thumb
9338	.thumb_func
9339	.fpu softvfp
9340	.type	FtlSysFlush, %function
9341FtlSysFlush:
9342	@ args = 0, pretend = 0, frame = 0
9343	@ frame_needed = 0, uses_anonymous_args = 0
9344	push	{r3, lr}
9345	bl	l2p_flush
9346	movs	r0, #1
9347	bl	FtlEctTblFlush
9348	bl	FtlVpcTblFlush
9349	movs	r0, #0
9350	pop	{r3, pc}
9351	.size	FtlSysFlush, .-FtlSysFlush
9352	.section	.text.sftl_deinit,"ax",%progbits
9353	.align	1
9354	.global	sftl_deinit
9355	.syntax unified
9356	.thumb
9357	.thumb_func
9358	.fpu softvfp
9359	.type	sftl_deinit, %function
9360sftl_deinit:
9361	@ args = 0, pretend = 0, frame = 0
9362	@ frame_needed = 0, uses_anonymous_args = 0
9363	push	{r3, lr}
9364	ldr	r3, .L1263
9365	ldr	r3, [r3]
9366	cmp	r3, #1
9367	bne	.L1262
9368	bl	FtlSysFlush
9369.L1262:
9370	movs	r0, #0
9371	pop	{r3, pc}
9372.L1264:
9373	.align	2
9374.L1263:
9375	.word	.LANCHOR165
9376	.size	sftl_deinit, .-sftl_deinit
9377	.section	.text.FtlDiscard,"ax",%progbits
9378	.align	1
9379	.global	FtlDiscard
9380	.syntax unified
9381	.thumb
9382	.thumb_func
9383	.fpu softvfp
9384	.type	FtlDiscard, %function
9385FtlDiscard:
9386	@ args = 0, pretend = 0, frame = 8
9387	@ frame_needed = 0, uses_anonymous_args = 0
9388	ldr	r3, .L1282
9389	push	{r0, r1, r4, r5, r6, r7, r8, lr}
9390	mov	r6, r0
9391	mov	r4, r1
9392	ldr	r3, [r3]
9393	cmp	r3, r0
9394	bls	.L1275
9395	cmp	r3, r1
9396	bcc	.L1275
9397	adds	r2, r0, r1
9398	cmp	r3, r2
9399	bcc	.L1275
9400	cmp	r1, #31
9401	bhi	.L1267
9402.L1272:
9403	movs	r0, #0
9404.L1265:
9405	add	sp, sp, #8
9406	@ sp needed
9407	pop	{r4, r5, r6, r7, r8, pc}
9408.L1267:
9409	ldr	r8, .L1282+12
9410	ldrh	r5, [r8]
9411	mov	r1, r5
9412	bl	__aeabi_uidiv
9413	smulbb	r3, r0, r5
9414	mov	r7, r0
9415	subs	r6, r6, r3
9416	uxth	r6, r6
9417	cbz	r6, .L1268
9418	subs	r5, r5, r6
9419	adds	r7, r7, #1
9420	cmp	r5, r4
9421	it	cs
9422	movcs	r5, r4
9423	uxth	r5, r5
9424	subs	r4, r4, r5
9425.L1268:
9426	ldr	r5, .L1282+4
9427	mov	r3, #-1
9428	ldr	r6, .L1282+8
9429	str	r3, [sp, #4]
9430.L1269:
9431	ldrh	r3, [r8]
9432	cmp	r4, r3
9433	bcs	.L1271
9434	ldr	r3, .L1282+4
9435	ldr	r2, [r3]
9436	cmp	r2, #32
9437	bls	.L1272
9438	movs	r4, #0
9439	str	r4, [r3]
9440	bl	l2p_flush
9441	bl	FtlVpcTblFlush
9442	b	.L1272
9443.L1271:
9444	movs	r2, #0
9445	mov	r1, sp
9446	mov	r0, r7
9447	bl	log2phys
9448	ldr	r3, [sp]
9449	adds	r3, r3, #1
9450	beq	.L1270
9451	ldr	r3, [r5]
9452	movs	r2, #1
9453	add	r1, sp, #4
9454	mov	r0, r7
9455	adds	r3, r3, #1
9456	str	r3, [r5]
9457	ldr	r3, [r6]
9458	adds	r3, r3, #1
9459	str	r3, [r6]
9460	bl	log2phys
9461	ldr	r0, [sp]
9462	ubfx	r0, r0, #10, #16
9463	bl	P2V_block_in_plane
9464	bl	decrement_vpc_count
9465.L1270:
9466	ldrh	r3, [r8]
9467	adds	r7, r7, #1
9468	subs	r4, r4, r3
9469	b	.L1269
9470.L1275:
9471	mov	r0, #-1
9472	b	.L1265
9473.L1283:
9474	.align	2
9475.L1282:
9476	.word	.LANCHOR33
9477	.word	.LANCHOR166
9478	.word	.LANCHOR85
9479	.word	.LANCHOR11
9480	.size	FtlDiscard, .-FtlDiscard
9481	.section	.text.allocate_new_data_superblock,"ax",%progbits
9482	.align	1
9483	.global	allocate_new_data_superblock
9484	.syntax unified
9485	.thumb
9486	.thumb_func
9487	.fpu softvfp
9488	.type	allocate_new_data_superblock, %function
9489allocate_new_data_superblock:
9490	@ args = 0, pretend = 0, frame = 0
9491	@ frame_needed = 0, uses_anonymous_args = 0
9492	ldr	r3, .L1294
9493	push	{r4, r5, r6, lr}
9494	mov	r6, r0
9495	ldrh	r4, [r0]
9496	ldrh	r3, [r3]
9497	cmp	r3, r4
9498	bcs	.L1285
9499	movw	r2, #2759
9500	ldr	r1, .L1294+4
9501	ldr	r0, .L1294+8
9502	bl	printf
9503.L1285:
9504	movw	r3, #65535
9505	cmp	r4, r3
9506	beq	.L1286
9507	ldr	r3, .L1294+12
9508	mov	r0, r4
9509	ldr	r3, [r3]
9510	ldrh	r3, [r3, r4, lsl #1]
9511	cbz	r3, .L1287
9512	bl	INSERT_DATA_LIST
9513.L1286:
9514	ldr	r5, .L1294+16
9515	movw	r2, #65535
9516	movs	r3, #1
9517	strb	r3, [r6, #8]
9518	ldrh	r0, [r5]
9519	cmp	r0, r2
9520	beq	.L1288
9521	cmp	r4, r0
9522	bne	.L1289
9523	ldr	r3, .L1294+12
9524	ldr	r3, [r3]
9525	ldrh	r3, [r3, r0, lsl #1]
9526	cbz	r3, .L1290
9527.L1289:
9528	bl	update_vpc_list
9529.L1290:
9530	movw	r3, #65535
9531	strh	r3, [r5]	@ movhi
9532.L1288:
9533	mov	r0, r6
9534	bl	allocate_data_superblock
9535	bl	l2p_flush
9536	movs	r0, #0
9537	bl	FtlEctTblFlush
9538	bl	FtlVpcTblFlush
9539	movs	r0, #0
9540	pop	{r4, r5, r6, pc}
9541.L1287:
9542	bl	INSERT_FREE_LIST
9543	b	.L1286
9544.L1295:
9545	.align	2
9546.L1294:
9547	.word	.LANCHOR4
9548	.word	.LANCHOR167
9549	.word	.LC1
9550	.word	.LANCHOR41
9551	.word	.LANCHOR130
9552	.size	allocate_new_data_superblock, .-allocate_new_data_superblock
9553	.section	.text.FtlProgPages,"ax",%progbits
9554	.align	1
9555	.global	FtlProgPages
9556	.syntax unified
9557	.thumb
9558	.thumb_func
9559	.fpu softvfp
9560	.type	FtlProgPages, %function
9561FtlProgPages:
9562	@ args = 0, pretend = 0, frame = 16
9563	@ frame_needed = 0, uses_anonymous_args = 0
9564	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
9565	movs	r6, #0
9566	ldr	r10, .L1315+20
9567	mov	r5, r3
9568	movs	r2, #0
9569	mov	r4, r0
9570	ldr	fp, .L1315
9571	mov	r8, r1
9572	ldrb	r3, [r3, #9]	@ zero_extendqisi2
9573	bl	FlashProgPages
9574.L1297:
9575	cmp	r6, r8
9576	bne	.L1304
9577	ldr	r3, .L1315
9578	ldrb	r2, [r5, #6]	@ zero_extendqisi2
9579	ldrh	r3, [r3]
9580	cmp	r2, r3
9581	bcc	.L1296
9582	mov	r2, #1000
9583	ldr	r1, .L1315+4
9584	ldr	r0, .L1315+8
9585	bl	printf
9586.L1296:
9587	add	sp, sp, #16
9588	@ sp needed
9589	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9590.L1299:
9591	ldr	r1, [r4, #4]
9592	mov	r0, r10
9593	bl	printf
9594	ldr	r0, [r4, #4]
9595	ubfx	r0, r0, #10, #16
9596	bl	P2V_block_in_plane
9597	bl	decrement_vpc_count
9598	ldrh	r3, [r5, #4]
9599	cbnz	r3, .L1298
9600	mov	r0, r5
9601	bl	allocate_new_data_superblock
9602.L1298:
9603	mov	r0, r5
9604	bl	get_new_active_ppa
9605	movs	r2, #0
9606	str	r0, [r4, #4]
9607	str	r0, [sp, #12]
9608	movs	r1, #1
9609	ldrb	r3, [r5, #9]	@ zero_extendqisi2
9610	mov	r0, r4
9611	bl	FlashProgPages
9612.L1304:
9613	ldr	r2, [r4]
9614	adds	r3, r2, #1
9615	beq	.L1299
9616	cmp	r2, #256
9617	beq	.L1299
9618	ldrb	r2, [r5, #6]	@ zero_extendqisi2
9619	ldrh	r3, [fp]
9620	cmp	r2, r3
9621	bcc	.L1300
9622	movw	r2, #985
9623	ldr	r1, .L1315+4
9624	ldr	r0, .L1315+8
9625	bl	printf
9626.L1300:
9627	ldr	r3, [r4, #4]
9628	add	r1, sp, #16
9629	movs	r2, #1
9630	ldr	r0, [r4, #16]
9631	str	r3, [r1, #-4]!
9632	bl	log2phys
9633	ldr	r3, [r4, #12]
9634	ldr	r3, [r3, #12]
9635	ubfx	r0, r3, #10, #16
9636	str	r3, [sp, #4]
9637	bl	P2V_block_in_plane
9638	ldr	r3, [sp, #4]
9639	mov	r7, r0
9640	adds	r3, r3, #1
9641	beq	.L1301
9642	ldr	r3, .L1315+12
9643	ldr	r3, [r3]
9644	ldrh	r2, [r3, r0, lsl #1]
9645	cbnz	r2, .L1302
9646	mov	r1, r0
9647	ldr	r0, .L1315+16
9648	bl	printf
9649.L1302:
9650	mov	r0, r7
9651	bl	decrement_vpc_count
9652.L1301:
9653	adds	r6, r6, #1
9654	adds	r4, r4, #20
9655	b	.L1297
9656.L1316:
9657	.align	2
9658.L1315:
9659	.word	.LANCHOR2
9660	.word	.LANCHOR168
9661	.word	.LC1
9662	.word	.LANCHOR41
9663	.word	.LC41
9664	.word	.LC40
9665	.size	FtlProgPages, .-FtlProgPages
9666	.section	.text.FtlGcFreeTempBlock,"ax",%progbits
9667	.align	1
9668	.global	FtlGcFreeTempBlock
9669	.syntax unified
9670	.thumb
9671	.thumb_func
9672	.fpu softvfp
9673	.type	FtlGcFreeTempBlock, %function
9674FtlGcFreeTempBlock:
9675	@ args = 0, pretend = 0, frame = 16
9676	@ frame_needed = 0, uses_anonymous_args = 0
9677	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
9678	movw	r3, #65535
9679	ldr	r4, .L1332
9680	ldrh	r2, [r4]
9681	cmp	r2, r3
9682	beq	.L1318
9683	ldr	r3, .L1332+4
9684	mov	r0, r4
9685	ldrh	r1, [r3]
9686	bl	FtlGcScanTempBlk
9687	str	r0, [sp, #12]
9688.L1318:
9689	ldr	r3, .L1332+8
9690	movs	r2, #0
9691	str	r2, [r3]
9692	movw	r3, #65535
9693	ldrh	r2, [r4]
9694	cmp	r2, r3
9695	beq	.L1320
9696	ldr	r6, .L1332+4
9697	ldrb	r0, [r4, #7]	@ zero_extendqisi2
9698	ldr	r5, .L1332+12
9699	ldrh	r2, [r6]
9700	ldrh	r1, [r5]
9701	muls	r2, r0, r2
9702	cmp	r1, r2
9703	beq	.L1321
9704	movs	r2, #164
9705	ldr	r1, .L1332+16
9706	ldr	r0, .L1332+20
9707	bl	printf
9708.L1321:
9709	ldrh	r6, [r6]
9710	ldrb	r3, [r4, #7]	@ zero_extendqisi2
9711	ldr	r2, .L1332+24
9712	ldrh	r0, [r4]
9713	ldr	fp, .L1332+56
9714	smulbb	r3, r3, r6
9715	ldr	r1, [r2]
9716	movs	r6, #0
9717	mov	r10, r2
9718	strh	r3, [r1, r0, lsl #1]	@ movhi
9719	ldr	r1, .L1332+28
9720	ldrh	r3, [r5]
9721	ldr	r0, [r1]
9722	add	r3, r3, r0
9723	str	r3, [r1]
9724.L1322:
9725	ldrh	r2, [r5]
9726	uxth	r3, r6
9727	cmp	r2, r3
9728	bhi	.L1326
9729	movw	r0, #65535
9730	bl	decrement_vpc_count
9731	ldrh	r0, [r4]
9732	ldr	r3, [r10]
9733	ldrh	r3, [r3, r0, lsl #1]
9734	cmp	r3, #0
9735	beq	.L1327
9736	bl	INSERT_DATA_LIST
9737.L1328:
9738	ldr	r2, .L1332+32
9739	movs	r3, #0
9740	movw	r6, #65535
9741	strh	r3, [r5]	@ movhi
9742	strh	r6, [r4]	@ movhi
9743	strh	r3, [r2]	@ movhi
9744	bl	l2p_flush
9745	bl	FtlVpcTblFlush
9746	ldr	r3, .L1332+36
9747	strh	r6, [r3]	@ movhi
9748	ldr	r3, .L1332+40
9749	ldrh	r2, [r3]
9750	ldr	r3, .L1332+44
9751	ldrh	r3, [r3]
9752	add	r3, r3, r3, lsl #1
9753	cmp	r2, r3, asr #2
9754	ittt	gt
9755	ldrgt	r3, .L1332+48
9756	movgt	r2, #20
9757	strhgt	r2, [r3]	@ movhi
9758.L1320:
9759	movs	r0, #0
9760	add	sp, sp, #16
9761	@ sp needed
9762	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
9763.L1326:
9764	uxth	r3, r6
9765	mov	r8, #12
9766	ldr	r2, [fp]
9767	mul	r8, r8, r3
9768	ldr	r3, .L1332+52
9769	ldr	r3, [r3]
9770	add	r7, r3, r8
9771	ldr	r0, [r7, #8]
9772	cmp	r0, r2
9773	bcc	.L1323
9774.L1330:
9775	ldrh	r0, [r4]
9776	b	.L1331
9777.L1323:
9778	movs	r2, #0
9779	add	r1, sp, #12
9780	str	r3, [sp, #4]
9781	bl	log2phys
9782	ldr	r3, [sp, #4]
9783	ldr	r2, [sp, #12]
9784	ldr	r0, [r3, r8]
9785	cmp	r0, r2
9786	bne	.L1325
9787	ubfx	r0, r0, #10, #16
9788	bl	P2V_block_in_plane
9789	movs	r2, #1
9790	mov	r8, r0
9791	adds	r1, r7, #4
9792	ldr	r0, [r7, #8]
9793	bl	log2phys
9794	mov	r0, r8
9795.L1331:
9796	bl	decrement_vpc_count
9797	b	.L1324
9798.L1325:
9799	ldr	r3, [r7, #4]
9800	cmp	r2, r3
9801	bne	.L1330
9802.L1324:
9803	adds	r6, r6, #1
9804	b	.L1322
9805.L1327:
9806	bl	INSERT_FREE_LIST
9807	b	.L1328
9808.L1333:
9809	.align	2
9810.L1332:
9811	.word	.LANCHOR52
9812	.word	.LANCHOR18
9813	.word	.LANCHOR132
9814	.word	.LANCHOR69
9815	.word	.LANCHOR169
9816	.word	.LC1
9817	.word	.LANCHOR41
9818	.word	.LANCHOR83
9819	.word	.LANCHOR68
9820	.word	.LANCHOR144
9821	.word	.LANCHOR47
9822	.word	.LANCHOR170
9823	.word	.LANCHOR99
9824	.word	.LANCHOR70
9825	.word	.LANCHOR151
9826	.size	FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
9827	.section	.text.FtlGcPageRecovery,"ax",%progbits
9828	.align	1
9829	.global	FtlGcPageRecovery
9830	.syntax unified
9831	.thumb
9832	.thumb_func
9833	.fpu softvfp
9834	.type	FtlGcPageRecovery, %function
9835FtlGcPageRecovery:
9836	@ args = 0, pretend = 0, frame = 0
9837	@ frame_needed = 0, uses_anonymous_args = 0
9838	push	{r3, r4, r5, lr}
9839	ldr	r4, .L1336
9840	ldr	r5, .L1336+4
9841	ldrh	r1, [r4]
9842	mov	r0, r5
9843	bl	FtlGcScanTempBlk
9844	ldrh	r2, [r5, #2]
9845	ldrh	r3, [r4]
9846	cmp	r2, r3
9847	bcc	.L1334
9848	ldr	r0, .L1336+8
9849	bl	FtlMapBlkWriteDump_data
9850	movs	r0, #0
9851	bl	FtlGcFreeTempBlock
9852	ldr	r3, .L1336+12
9853	movs	r2, #0
9854	str	r2, [r3]
9855.L1334:
9856	pop	{r3, r4, r5, pc}
9857.L1337:
9858	.align	2
9859.L1336:
9860	.word	.LANCHOR18
9861	.word	.LANCHOR52
9862	.word	.LANCHOR128
9863	.word	.LANCHOR132
9864	.size	FtlGcPageRecovery, .-FtlGcPageRecovery
9865	.section	.text.FtlPowerLostRecovery,"ax",%progbits
9866	.align	1
9867	.global	FtlPowerLostRecovery
9868	.syntax unified
9869	.thumb
9870	.thumb_func
9871	.fpu softvfp
9872	.type	FtlPowerLostRecovery, %function
9873FtlPowerLostRecovery:
9874	@ args = 0, pretend = 0, frame = 0
9875	@ frame_needed = 0, uses_anonymous_args = 0
9876	push	{r3, r4, r5, lr}
9877	movs	r4, #0
9878	ldr	r5, .L1339
9879	ldr	r3, .L1339+4
9880	mov	r0, r5
9881	str	r4, [r3]
9882	bl	FtlRecoverySuperblock
9883	mov	r0, r5
9884	ldr	r5, .L1339+8
9885	bl	FtlSlcSuperblockCheck
9886	mov	r0, r5
9887	bl	FtlRecoverySuperblock
9888	mov	r0, r5
9889	bl	FtlSlcSuperblockCheck
9890	bl	FtlGcPageRecovery
9891	movw	r0, #65535
9892	bl	decrement_vpc_count
9893	mov	r0, r4
9894	pop	{r3, r4, r5, pc}
9895.L1340:
9896	.align	2
9897.L1339:
9898	.word	.LANCHOR50
9899	.word	.LANCHOR156
9900	.word	.LANCHOR51
9901	.size	FtlPowerLostRecovery, .-FtlPowerLostRecovery
9902	.section	.text.Ftl_gc_temp_data_write_back,"ax",%progbits
9903	.align	1
9904	.global	Ftl_gc_temp_data_write_back
9905	.syntax unified
9906	.thumb
9907	.thumb_func
9908	.fpu softvfp
9909	.type	Ftl_gc_temp_data_write_back, %function
9910Ftl_gc_temp_data_write_back:
9911	@ args = 0, pretend = 0, frame = 0
9912	@ frame_needed = 0, uses_anonymous_args = 0
9913	push	{r3, r4, r5, r6, r7, lr}
9914	movs	r3, #0
9915	ldr	r4, .L1349
9916	movs	r6, #0
9917	movs	r7, #20
9918	mov	r2, r3
9919	ldr	r5, .L1349+4
9920	ldr	r1, [r4]
9921	ldr	r0, [r5]
9922	bl	FlashProgPages
9923.L1342:
9924	ldr	r1, [r4]
9925	uxth	r3, r6
9926	cmp	r1, r3
9927	bhi	.L1345
9928	ldr	r0, [r5]
9929	bl	FtlGcBufFree
9930	ldr	r3, .L1349+8
9931	movs	r0, #0
9932	str	r0, [r4]
9933	ldrh	r3, [r3, #4]
9934	cbnz	r3, .L1341
9935	movs	r0, #1
9936	bl	FtlGcFreeTempBlock
9937	movs	r0, #1
9938.L1341:
9939	pop	{r3, r4, r5, r6, r7, pc}
9940.L1345:
9941	muls	r3, r7, r3
9942	ldr	r2, [r5]
9943	adds	r6, r6, #1
9944	adds	r1, r2, r3
9945	ldr	r2, [r2, r3]
9946	ldr	r0, [r1, #12]
9947	ldr	r1, [r1, #4]
9948	adds	r3, r2, #1
9949	it	ne
9950	ldrne	r2, [r0, #8]
9951	ldr	r0, [r0, #12]
9952	bl	FtlGcUpdatePage
9953	b	.L1342
9954.L1350:
9955	.align	2
9956.L1349:
9957	.word	.LANCHOR61
9958	.word	.LANCHOR103
9959	.word	.LANCHOR52
9960	.size	Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
9961	.section	.text.Ftl_get_new_temp_ppa,"ax",%progbits
9962	.align	1
9963	.global	Ftl_get_new_temp_ppa
9964	.syntax unified
9965	.thumb
9966	.thumb_func
9967	.fpu softvfp
9968	.type	Ftl_get_new_temp_ppa, %function
9969Ftl_get_new_temp_ppa:
9970	@ args = 0, pretend = 0, frame = 0
9971	@ frame_needed = 0, uses_anonymous_args = 0
9972	push	{r3, r4, r5, lr}
9973	movw	r3, #65535
9974	ldr	r4, .L1354
9975	ldrh	r2, [r4]
9976	cmp	r2, r3
9977	beq	.L1352
9978	ldrh	r3, [r4, #4]
9979	cbnz	r3, .L1353
9980.L1352:
9981	movs	r0, #0
9982	movs	r5, #0
9983	bl	FtlGcFreeTempBlock
9984	ldr	r0, .L1354
9985	strb	r5, [r4, #8]
9986	bl	allocate_data_superblock
9987	ldr	r3, .L1354+4
9988	strh	r5, [r3]	@ movhi
9989	ldr	r3, .L1354+8
9990	strh	r5, [r3]	@ movhi
9991	bl	l2p_flush
9992	mov	r0, r5
9993	bl	FtlEctTblFlush
9994	bl	FtlVpcTblFlush
9995.L1353:
9996	ldr	r0, .L1354
9997	pop	{r3, r4, r5, lr}
9998	b	get_new_active_ppa
9999.L1355:
10000	.align	2
10001.L1354:
10002	.word	.LANCHOR52
10003	.word	.LANCHOR68
10004	.word	.LANCHOR69
10005	.size	Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
10006	.section	.text.rk_ftl_garbage_collect,"ax",%progbits
10007	.align	1
10008	.global	rk_ftl_garbage_collect
10009	.syntax unified
10010	.thumb
10011	.thumb_func
10012	.fpu softvfp
10013	.type	rk_ftl_garbage_collect, %function
10014rk_ftl_garbage_collect:
10015	@ args = 0, pretend = 0, frame = 40
10016	@ frame_needed = 0, uses_anonymous_args = 0
10017	ldr	r3, .L1446
10018	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10019	sub	sp, sp, #48
10020	str	r0, [sp, #28]
10021	ldr	r0, [r3]
10022	cmp	r0, #0
10023	bne	.L1413
10024	ldr	r3, .L1446+4
10025	ldrh	r3, [r3]
10026	cmp	r3, #47
10027	bls	.L1356
10028	ldr	r3, .L1446+8
10029	movw	r4, #65535
10030	ldrh	r0, [r3]
10031	cmp	r0, r4
10032	beq	.L1358
10033	ldr	r1, .L1446+12
10034	ldrh	r2, [r1]
10035	cmp	r2, r4
10036	itt	eq
10037	strheq	r0, [r1]	@ movhi
10038	strheq	r2, [r3]	@ movhi
10039.L1358:
10040	ldr	r3, [sp, #28]
10041	cmp	r3, #0
10042	bne	.L1415
10043	ldr	r3, .L1446+16
10044	ldrh	r3, [r3]
10045	cmp	r3, #24
10046	bhi	.L1416
10047	ldr	r2, .L1446+20
10048	cmp	r3, #16
10049	ldrh	r4, [r2]
10050	bls	.L1361
10051	lsrs	r4, r4, #5
10052.L1360:
10053	ldr	r2, .L1446+24
10054	ldrh	r1, [r2]
10055	cmp	r1, r3
10056	mov	r1, r2
10057	bcs	.L1364
10058	ldr	r3, .L1446+28
10059	movw	r0, #65535
10060	ldrh	r3, [r3]
10061	cmp	r3, r0
10062	bne	.L1365
10063	ldr	r0, .L1446+12
10064	ldrh	r0, [r0]
10065	cmp	r0, r3
10066	bne	.L1365
10067	ldr	r3, .L1446+32
10068	ldrh	r0, [r3]
10069	cbnz	r0, .L1366
10070	ldr	r3, .L1446+36
10071	ldr	r4, .L1446+40
10072	ldr	r3, [r3]
10073	ldr	r4, [r4]
10074	add	r3, r3, r3, lsl #1
10075	cmp	r4, r3, lsr #2
10076	bcs	.L1367
10077.L1366:
10078	ldr	r3, .L1446+44
10079	ldrh	r3, [r3]
10080	add	r3, r3, r3, lsl #1
10081	asrs	r3, r3, #2
10082	strh	r3, [r1]	@ movhi
10083.L1368:
10084	ldr	r3, .L1446+48
10085	movs	r2, #0
10086	str	r2, [r3]
10087.L1356:
10088	add	sp, sp, #48
10089	@ sp needed
10090	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10091.L1361:
10092	cmp	r3, #12
10093	bls	.L1362
10094	lsrs	r4, r4, #4
10095	b	.L1360
10096.L1362:
10097	cmp	r3, #8
10098	bls	.L1360
10099	lsrs	r4, r4, #2
10100	b	.L1360
10101.L1416:
10102	movs	r4, #1
10103	b	.L1360
10104.L1367:
10105	movs	r3, #18
10106	strh	r3, [r2]	@ movhi
10107	b	.L1368
10108.L1365:
10109	ldr	r3, .L1446+44
10110	ldrh	r3, [r3]
10111	add	r3, r3, r3, lsl #1
10112	asrs	r3, r3, #2
10113	strh	r3, [r1]	@ movhi
10114.L1364:
10115	ldr	r3, .L1446+52
10116	ldrh	r3, [r3]
10117	cbz	r3, .L1359
10118	adds	r4, r4, #32
10119	uxth	r4, r4
10120.L1359:
10121	ldr	r5, .L1446+56
10122	movw	r3, #65535
10123	ldrh	r2, [r5]
10124	cmp	r2, r3
10125	bne	.L1371
10126	ldr	r3, .L1446+12
10127	ldrh	r1, [r3]
10128	cmp	r1, r2
10129	beq	.L1372
10130	ldr	r0, .L1446+60
10131	ldr	r0, [r0]
10132	ldrh	r1, [r0, r1, lsl #1]
10133	cbnz	r1, .L1373
10134	strh	r2, [r3]	@ movhi
10135.L1373:
10136	ldrh	r2, [r3]
10137	strh	r2, [r5]	@ movhi
10138	movw	r2, #65535
10139	strh	r2, [r3]	@ movhi
10140.L1372:
10141	ldrh	r0, [r5]
10142	movw	r6, #65535
10143	movs	r3, #0
10144	strb	r3, [r5, #8]
10145	cmp	r0, r6
10146	beq	.L1371
10147	bl	IsBlkInGcList
10148	cbz	r0, .L1375
10149	strh	r6, [r5]	@ movhi
10150.L1375:
10151	ldrh	r2, [r5]
10152	movw	r3, #65535
10153	cmp	r2, r3
10154	beq	.L1371
10155	ldr	r0, .L1446+56
10156	bl	make_superblock
10157	ldr	r2, .L1446+64
10158	movs	r3, #0
10159	strh	r3, [r5, #2]	@ movhi
10160	strb	r3, [r5, #6]
10161	strh	r3, [r2]	@ movhi
10162	ldr	r3, .L1446+60
10163	ldrh	r2, [r5]
10164	ldr	r3, [r3]
10165	ldrh	r2, [r3, r2, lsl #1]
10166	ldr	r3, .L1446+68
10167	strh	r2, [r3]	@ movhi
10168.L1371:
10169	ldr	r2, .L1446+72
10170	ldrh	r3, [r5]
10171	ldrh	r2, [r2]
10172	cmp	r2, r3
10173	beq	.L1376
10174	ldr	r2, .L1446+76
10175	ldrh	r2, [r2]
10176	cmp	r2, r3
10177	beq	.L1376
10178	ldr	r2, .L1446+28
10179	ldrh	r2, [r2]
10180	cmp	r2, r3
10181	bne	.L1377
10182.L1376:
10183	movw	r3, #65535
10184	strh	r3, [r5]	@ movhi
10185.L1377:
10186	ldr	r5, .L1446+56
10187	mov	r6, r5
10188.L1412:
10189	ldrh	r2, [r5]
10190	movw	r3, #65535
10191	cmp	r2, r3
10192	bne	.L1378
10193	ldr	fp, .L1446+88
10194	movs	r2, #0
10195	ldr	r3, .L1446+48
10196	mov	r8, fp
10197	str	r2, [r3]
10198.L1379:
10199	ldrh	r7, [fp]
10200	mov	r0, r7
10201	bl	List_get_gc_head_node
10202	uxth	r3, r0
10203	movw	r1, #65535
10204	cmp	r3, r1
10205	strh	r3, [r6]	@ movhi
10206	bne	.L1380
10207	movs	r3, #0
10208	movs	r0, #8
10209	strh	r3, [fp]	@ movhi
10210	b	.L1356
10211.L1415:
10212	movs	r4, #1
10213	b	.L1359
10214.L1380:
10215	str	r0, [sp, #16]
10216	mov	r0, r3
10217	str	r3, [sp, #12]
10218	adds	r7, r7, #1
10219	bl	IsBlkInGcList
10220	ldr	r3, [sp, #12]
10221	ldr	r2, [sp, #16]
10222	cbz	r0, .L1381
10223	strh	r7, [fp]	@ movhi
10224	b	.L1379
10225.L1381:
10226	uxth	r0, r2
10227	ldr	r2, .L1446+20
10228	ldr	r10, .L1446+60
10229	uxth	r7, r7
10230	ldrh	lr, [r2]
10231	ldr	r2, .L1446+80
10232	ldr	r1, [r10]
10233	strh	r7, [fp]	@ movhi
10234	ldrh	r2, [r2]
10235	ldrh	ip, [r1, r0, lsl #1]
10236	mul	r2, r2, lr
10237	cmp	ip, r2, asr #1
10238	bgt	.L1383
10239	cmp	r7, #48
10240	bls	.L1384
10241	cmp	ip, #8
10242	bls	.L1384
10243	ldr	r7, .L1446+84
10244	ldrh	r7, [r7]
10245	cmp	r7, #35
10246	bhi	.L1384
10247.L1383:
10248	movs	r7, #0
10249	strh	r7, [r8]	@ movhi
10250.L1384:
10251	ldrh	r1, [r1, r0, lsl #1]
10252	cmp	r2, r1
10253	bgt	.L1385
10254	ldrh	r2, [r8]
10255	cmp	r2, #3
10256	bhi	.L1385
10257	movw	r3, #65535
10258	strh	r3, [r6]	@ movhi
10259	movs	r3, #0
10260	strh	r3, [r8]	@ movhi
10261.L1445:
10262	ldr	r3, .L1446+32
10263	ldrh	r0, [r3]
10264	b	.L1356
10265.L1385:
10266	cbnz	r1, .L1386
10267	movw	r0, #65535
10268	bl	decrement_vpc_count
10269	ldrh	r3, [r8]
10270	adds	r3, r3, #1
10271	strh	r3, [r8]	@ movhi
10272	b	.L1379
10273.L1447:
10274	.align	2
10275.L1446:
10276	.word	.LANCHOR93
10277	.word	.LANCHOR43
10278	.word	.LANCHOR72
10279	.word	.LANCHOR71
10280	.word	.LANCHOR47
10281	.word	.LANCHOR18
10282	.word	.LANCHOR99
10283	.word	.LANCHOR52
10284	.word	.LANCHOR171
10285	.word	.LANCHOR151
10286	.word	.LANCHOR58
10287	.word	.LANCHOR170
10288	.word	.LANCHOR94
10289	.word	.LANCHOR73
10290	.word	.LANCHOR144
10291	.word	.LANCHOR41
10292	.word	.LANCHOR172
10293	.word	.LANCHOR173
10294	.word	.LANCHOR50
10295	.word	.LANCHOR51
10296	.word	.LANCHOR2
10297	.word	.LANCHOR68
10298	.word	.LANCHOR101
10299.L1386:
10300	movs	r2, #0
10301	strb	r2, [r6, #8]
10302	ldr	r2, .L1448
10303	ldrh	r2, [r2]
10304	cmp	r2, r3
10305	bne	.L1387
10306	movw	r2, #717
10307	ldr	r1, .L1448+4
10308	ldr	r0, .L1448+8
10309	bl	printf
10310.L1387:
10311	ldr	r3, .L1448+12
10312	ldrh	r2, [r6]
10313	ldrh	r3, [r3]
10314	cmp	r2, r3
10315	bne	.L1388
10316	movw	r2, #718
10317	ldr	r1, .L1448+4
10318	ldr	r0, .L1448+8
10319	bl	printf
10320.L1388:
10321	ldr	r3, .L1448+16
10322	ldrh	r2, [r6]
10323	ldrh	r3, [r3]
10324	cmp	r2, r3
10325	bne	.L1389
10326	movw	r2, #719
10327	ldr	r1, .L1448+4
10328	ldr	r0, .L1448+8
10329	bl	printf
10330.L1389:
10331	mov	r0, r5
10332	bl	make_superblock
10333	ldr	r2, .L1448+20
10334	movs	r3, #0
10335	ldrh	r1, [r6]
10336	strh	r3, [r2]	@ movhi
10337	ldr	r2, [r10]
10338	ldrh	r1, [r2, r1, lsl #1]
10339	ldr	r2, .L1448+24
10340	strh	r3, [r6, #2]	@ movhi
10341	strb	r3, [r6, #6]
10342	strh	r1, [r2]	@ movhi
10343.L1378:
10344	ldr	r3, .L1448+28
10345	movs	r2, #1
10346	str	r2, [r3]
10347	ldr	r3, .L1448+32
10348	ldrh	r3, [r3]
10349	str	r3, [sp, #16]
10350	ldr	r3, [sp, #28]
10351	cbz	r3, .L1390
10352	ldr	r3, .L1448+36
10353	ldr	r2, [sp, #16]
10354	ldrh	r1, [r6]
10355	ldrh	r3, [r3]
10356	muls	r3, r2, r3
10357	ldr	r2, .L1448+40
10358	ldr	r2, [r2]
10359	ldrh	r2, [r2, r1, lsl #1]
10360	subs	r3, r3, r2
10361	it	mi
10362	addmi	r3, r3, #3
10363	add	r4, r4, r3, asr #2
10364	uxth	r4, r4
10365.L1390:
10366	ldrh	r3, [r6, #2]
10367	ldr	r1, [sp, #16]
10368	ldr	fp, .L1448+64
10369	adds	r2, r3, r4
10370	cmp	r2, r1
10371	itt	gt
10372	movgt	r2, r1
10373	subgt	r4, r2, r3
10374	mov	r3, #0
10375	it	gt
10376	uxthgt	r4, r4
10377	str	r3, [sp, #24]
10378.L1393:
10379	ldrh	r3, [sp, #24]
10380	cmp	r4, r3
10381	bls	.L1401
10382	ldr	r3, .L1448+36
10383	movw	r10, #65535
10384	ldrh	r1, [r5, #2]
10385	mov	ip, #20
10386	ldr	r0, [fp]
10387	ldrh	lr, [r3]
10388	ldr	r3, [sp, #24]
10389	ldr	r7, .L1448+44
10390	adds	r3, r1, r3
10391	str	r3, [sp, #20]
10392	movs	r3, #0
10393	str	r3, [sp, #12]
10394	b	.L1402
10395.L1395:
10396	ldrh	r2, [r7, #2]!
10397	cmp	r2, r10
10398	beq	.L1394
10399	ldr	r1, [sp, #12]
10400	mla	r8, ip, r1, r0
10401	ldr	r1, [sp, #20]
10402	orr	r2, r1, r2, lsl #10
10403	str	r2, [r8, #4]
10404	ldr	r2, [sp, #12]
10405	adds	r2, r2, #1
10406	uxth	r2, r2
10407	str	r2, [sp, #12]
10408.L1394:
10409	adds	r3, r3, #1
10410.L1402:
10411	uxth	r2, r3
10412	cmp	lr, r2
10413	bhi	.L1395
10414	ldrb	r2, [r5, #8]	@ zero_extendqisi2
10415	ldr	r1, [sp, #12]
10416	bl	FlashReadPages
10417	movs	r3, #0
10418.L1444:
10419	str	r3, [sp, #20]
10420	ldr	r2, [sp, #12]
10421	ldrh	r3, [sp, #20]
10422	cmp	r2, r3
10423	bhi	.L1400
10424	ldr	r3, [sp, #24]
10425	adds	r3, r3, #1
10426	str	r3, [sp, #24]
10427	b	.L1393
10428.L1400:
10429	ldr	r3, [sp, #20]
10430	movs	r7, #20
10431	muls	r7, r3, r7
10432	ldr	r3, [fp]
10433	adds	r2, r3, r7
10434	ldr	r3, [r3, r7]
10435	adds	r3, r3, #1
10436	beq	.L1397
10437	ldr	r8, [r2, #12]
10438	movw	r3, #61589
10439	ldrh	r2, [r8]
10440	cmp	r2, r3
10441	bne	.L1397
10442	ldr	r10, [r8, #8]
10443	cmp	r10, #-1
10444	bne	.L1398
10445	movw	r2, #753
10446	ldr	r1, .L1448+4
10447	ldr	r0, .L1448+8
10448	bl	printf
10449.L1398:
10450	movs	r2, #0
10451	add	r1, sp, #40
10452	mov	r0, r10
10453	bl	log2phys
10454	ldr	r0, [fp]
10455	ldr	r3, [sp, #40]
10456	add	r0, r0, r7
10457	ldr	r2, [r0, #4]
10458	cmp	r2, r3
10459	bne	.L1397
10460	ldr	r2, .L1448+20
10461	ldr	r10, .L1448+60
10462	ldr	r1, .L1448+48
10463	ldrh	r3, [r2]
10464	str	r1, [sp, #36]
10465	adds	r3, r3, #1
10466	strh	r3, [r2]	@ movhi
10467	ldr	r2, [r1]
10468	movs	r1, #20
10469	ldr	r3, [r10]
10470	mla	r3, r1, r3, r2
10471	ldr	r2, [r0, #16]
10472	str	r2, [r3, #16]
10473	str	r3, [sp, #32]
10474	bl	Ftl_get_new_temp_ppa
10475	ldr	r3, [sp, #32]
10476	ldr	r1, [sp, #36]
10477	str	r0, [r3, #4]
10478	ldr	r2, [r1]
10479	movs	r1, #20
10480	ldr	r3, [r10]
10481	ldr	r0, [fp]
10482	mla	r2, r1, r3, r2
10483	add	r0, r0, r7
10484	ldr	r7, .L1448+16
10485	ldr	r1, [r0, #8]
10486	adds	r3, r3, #1
10487	str	r1, [r2, #8]
10488	ldr	r1, [r0, #12]
10489	str	r1, [r2, #12]
10490	movs	r1, #1
10491	ldr	r2, [sp, #40]
10492	str	r2, [r8, #12]
10493	ldrh	r2, [r7]
10494	strh	r2, [r8, #2]	@ movhi
10495	ldr	r2, .L1448+52
10496	str	r3, [r10]
10497	ldr	r2, [r2]
10498	str	r2, [r8, #4]
10499	bl	FtlGcBufAlloc
10500	ldrb	r2, [r7, #7]	@ zero_extendqisi2
10501	ldr	r3, [r10]
10502	cmp	r2, r3
10503	beq	.L1399
10504	ldrh	r3, [r7, #4]
10505	cbnz	r3, .L1397
10506.L1399:
10507	bl	Ftl_gc_temp_data_write_back
10508	cbz	r0, .L1397
10509	ldr	r3, .L1448+28
10510	movs	r2, #0
10511	movw	r1, #65535
10512	str	r2, [r3]
10513	ldr	r3, .L1448+56
10514	strh	r1, [r3]	@ movhi
10515	strh	r2, [r3, #2]	@ movhi
10516	b	.L1445
10517.L1397:
10518	ldr	r3, [sp, #20]
10519	adds	r3, r3, #1
10520	b	.L1444
10521.L1401:
10522	ldrh	r3, [r5, #2]
10523	add	r4, r4, r3
10524	ldr	r3, [sp, #16]
10525	uxth	r4, r4
10526	cmp	r3, r4
10527	strh	r4, [r5, #2]	@ movhi
10528	bhi	.L1403
10529	ldr	r3, .L1448+60
10530	ldr	r3, [r3]
10531	cbz	r3, .L1404
10532	bl	Ftl_gc_temp_data_write_back
10533	cbz	r0, .L1404
10534	ldr	r3, .L1448+28
10535	movs	r2, #0
10536	str	r2, [r3]
10537	b	.L1445
10538.L1449:
10539	.align	2
10540.L1448:
10541	.word	.LANCHOR50
10542	.word	.LANCHOR174
10543	.word	.LC1
10544	.word	.LANCHOR51
10545	.word	.LANCHOR52
10546	.word	.LANCHOR172
10547	.word	.LANCHOR173
10548	.word	.LANCHOR93
10549	.word	.LANCHOR18
10550	.word	.LANCHOR2
10551	.word	.LANCHOR41
10552	.word	.LANCHOR144+14
10553	.word	.LANCHOR103
10554	.word	.LANCHOR82
10555	.word	.LANCHOR144
10556	.word	.LANCHOR61
10557	.word	.LANCHOR65
10558.L1404:
10559	ldr	r3, .L1450
10560	ldrh	r4, [r3]
10561	cmp	r4, #0
10562	bne	.L1405
10563	ldr	r8, .L1450+28
10564	ldrh	r1, [r5]
10565	ldr	r3, [r8]
10566	ldrh	r3, [r3, r1, lsl #1]
10567	cmp	r3, #0
10568	beq	.L1405
10569	ldr	r0, .L1450+4
10570	ldr	r10, .L1450+32
10571	ldrh	r2, [r5, #2]
10572	ldrh	r0, [r0]
10573	str	r3, [sp]
10574	mov	r3, r4
10575	str	r0, [sp, #4]
10576	ldr	r0, .L1450+8
10577	bl	printf
10578.L1406:
10579	ldr	r3, [r10]
10580	cmp	r4, r3
10581	bcs	.L1408
10582	movs	r2, #0
10583	add	r1, sp, #44
10584	mov	r0, r4
10585	bl	log2phys
10586	ldr	r7, [sp, #44]
10587	adds	r3, r7, #1
10588	beq	.L1407
10589	ubfx	r0, r7, #10, #16
10590	bl	P2V_block_in_plane
10591	ldrh	r3, [r5]
10592	cmp	r3, r0
10593	bne	.L1407
10594	mov	r2, r7
10595	mov	r1, r4
10596	ldr	r0, .L1450+12
10597	bl	printf
10598.L1408:
10599	ldr	r3, [r10]
10600	cmp	r4, r3
10601	bcc	.L1405
10602	ldrh	r2, [r5]
10603	movs	r1, #0
10604	ldr	r3, [r8]
10605	strh	r1, [r3, r2, lsl #1]	@ movhi
10606	ldrh	r0, [r5]
10607	bl	update_vpc_list
10608	bl	l2p_flush
10609	bl	FtlVpcTblFlush
10610.L1405:
10611	movw	r3, #65535
10612	strh	r3, [r5]	@ movhi
10613.L1403:
10614	ldr	r3, .L1450+16
10615	movs	r2, #0
10616	str	r2, [r3]
10617	ldr	r3, .L1450+20
10618	ldrh	r0, [r3]
10619	cmp	r0, #2
10620	bhi	.L1411
10621	ldr	r3, .L1450+24
10622	ldrh	r4, [r3]
10623	b	.L1412
10624.L1407:
10625	adds	r4, r4, #1
10626	b	.L1406
10627.L1411:
10628	adds	r0, r0, #1
10629	b	.L1356
10630.L1413:
10631	movs	r0, #0
10632	b	.L1356
10633.L1451:
10634	.align	2
10635.L1450:
10636	.word	.LANCHOR172
10637	.word	.LANCHOR173
10638	.word	.LC42
10639	.word	.LC43
10640	.word	.LANCHOR93
10641	.word	.LANCHOR47
10642	.word	.LANCHOR18
10643	.word	.LANCHOR41
10644	.word	.LANCHOR151
10645	.size	rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
10646	.section	.text.FtlRead,"ax",%progbits
10647	.align	1
10648	.global	FtlRead
10649	.syntax unified
10650	.thumb
10651	.thumb_func
10652	.fpu softvfp
10653	.type	FtlRead, %function
10654FtlRead:
10655	@ args = 0, pretend = 0, frame = 56
10656	@ frame_needed = 0, uses_anonymous_args = 0
10657	cmp	r0, #16
10658	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10659	sub	sp, sp, #56
10660	mov	r5, r1
10661	mov	r10, r3
10662	str	r2, [sp, #4]
10663	bne	.L1453
10664	mov	r2, r3
10665	ldr	r1, [sp, #4]
10666	add	r0, r5, #256
10667	bl	FtlVendorPartRead
10668	mov	r4, r0
10669.L1452:
10670	mov	r0, r4
10671	add	sp, sp, #56
10672	@ sp needed
10673	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10674.L1453:
10675	ldr	r3, .L1487
10676	ldr	r3, [r3]
10677	cmp	r1, r3
10678	bcs	.L1476
10679	ldr	r2, [sp, #4]
10680	cmp	r2, r3
10681	bhi	.L1476
10682	adds	r2, r1, r2
10683	cmp	r3, r2
10684	str	r2, [sp, #12]
10685	bcc	.L1476
10686	ldr	r3, .L1487+4
10687	ldr	r4, [r3]
10688	adds	r6, r4, #1
10689	beq	.L1452
10690	ldr	r3, .L1487+8
10691	mov	r0, r5
10692	mov	r8, #0
10693	mov	r7, r8
10694	ldrh	r4, [r3]
10695	mov	r1, r4
10696	bl	__aeabi_uidiv
10697	ldr	r3, [sp, #12]
10698	mov	r1, r4
10699	str	r0, [sp, #16]
10700	mov	r4, r8
10701	subs	r0, r3, #1
10702	bl	__aeabi_uidiv
10703	ldr	r3, [sp, #16]
10704	ldr	r2, .L1487+12
10705	ldr	r1, [sp, #4]
10706	rsb	r3, r3, #1
10707	ldr	r6, [sp, #16]
10708	add	r3, r3, r0
10709	str	r0, [sp, #20]
10710	str	r3, [sp, #8]
10711	ldr	r3, [r2]
10712	str	r8, [sp, #28]
10713	str	r8, [sp, #24]
10714	add	r3, r3, r1
10715	ldr	r1, [sp, #8]
10716	str	r3, [r2]
10717	ldr	r2, .L1487+16
10718	ldr	r3, [r2]
10719	add	r3, r3, r1
10720	str	r3, [r2]
10721.L1455:
10722	ldr	r3, [sp, #8]
10723	cbnz	r3, .L1472
10724	ldr	r3, .L1487+20
10725	ldrh	r3, [r3]
10726	cbnz	r3, .L1473
10727	ldr	r3, .L1487+24
10728	ldrh	r3, [r3]
10729	cmp	r3, #31
10730	bhi	.L1452
10731.L1473:
10732	movs	r1, #1
10733	movs	r0, #0
10734	bl	rk_ftl_garbage_collect
10735	b	.L1452
10736.L1472:
10737	movs	r2, #0
10738	add	r1, sp, #52
10739	mov	r0, r6
10740	bl	log2phys
10741	ldr	r3, [sp, #52]
10742	adds	r0, r3, #1
10743	bne	.L1456
10744	ldr	r3, .L1487+8
10745	mov	fp, #0
10746.L1457:
10747	ldrh	r0, [r3]
10748	cmp	fp, r0
10749	bcc	.L1459
10750.L1460:
10751	ldr	r3, [sp, #8]
10752	adds	r6, r6, #1
10753	subs	r3, r3, #1
10754	str	r3, [sp, #8]
10755	beq	.L1464
10756	ldr	r3, .L1487+28
10757	ldrh	r3, [r3]
10758	cmp	r7, r3, lsl #2
10759	bne	.L1455
10760.L1464:
10761	cmp	r7, #0
10762	beq	.L1455
10763	ldr	r3, .L1487+32
10764	movs	r2, #0
10765	mov	r1, r7
10766	mov	fp, #0
10767	ldr	r0, [r3]
10768	bl	FlashReadPages
10769	lsl	r3, r8, #9
10770	str	r3, [sp, #44]
10771	ldr	r3, [sp, #24]
10772	lsls	r3, r3, #9
10773	str	r3, [sp, #36]
10774	ldr	r3, [sp, #28]
10775	lsls	r3, r3, #9
10776	str	r3, [sp, #40]
10777.L1471:
10778	movs	r3, #20
10779	mul	r3, r3, fp
10780	str	r3, [sp, #32]
10781	ldr	r3, .L1487+32
10782	ldr	r2, [r3]
10783	ldr	r3, [sp, #32]
10784	add	r2, r2, r3
10785	ldr	r3, [sp, #16]
10786	ldr	r1, [r2, #16]
10787	cmp	r3, r1
10788	bne	.L1466
10789	ldr	r1, [r2, #8]
10790	ldr	r2, .L1487+36
10791	ldr	r2, [r2]
10792	cmp	r1, r2
10793	bne	.L1467
10794	ldr	r3, [sp, #36]
10795	mov	r0, r10
10796	ldr	r2, [sp, #40]
10797	add	r1, r1, r3
10798.L1486:
10799	bl	ftl_memcpy
10800.L1467:
10801	ldr	r3, .L1487+32
10802	ldr	r2, [sp, #32]
10803	ldr	r3, [r3]
10804	adds	r2, r3, r2
10805	ldr	r0, [r2, #12]
10806	ldr	r1, [r2, #16]
10807	ldr	r0, [r0, #8]
10808	cmp	r1, r0
10809	itttt	ne
10810	ldrne	r0, .L1487+40
10811	ldrne	r1, [r0, #72]
10812	addne	r1, r1, #1
10813	strne	r1, [r0, #72]
10814	ldr	r1, [sp, #32]
10815	ldr	r3, [r3, r1]
10816	adds	r1, r3, #1
10817	bne	.L1469
10818	ldr	r1, .L1487+40
10819	mov	r4, r3
10820	ldr	r2, [r1, #72]
10821	adds	r2, r2, #1
10822	str	r2, [r1, #72]
10823.L1470:
10824	add	fp, fp, #1
10825	cmp	r7, fp
10826	bne	.L1471
10827	movs	r7, #0
10828	b	.L1455
10829.L1459:
10830	mla	r0, r0, r6, fp
10831	cmp	r5, r0
10832	bhi	.L1458
10833	ldr	r2, [sp, #12]
10834	cmp	r2, r0
10835	bls	.L1458
10836	subs	r0, r0, r5
10837	mov	r2, #512
10838	movs	r1, #0
10839	add	r0, r10, r0, lsl #9
10840	str	r3, [sp, #32]
10841	bl	ftl_memset
10842	ldr	r3, [sp, #32]
10843.L1458:
10844	add	fp, fp, #1
10845	b	.L1457
10846.L1456:
10847	ldr	r2, .L1487+32
10848	mov	fp, #20
10849	ldr	r2, [r2]
10850	mla	fp, fp, r7, r2
10851	str	r3, [fp, #4]
10852	ldr	r3, [sp, #16]
10853	cmp	r6, r3
10854	ldr	r3, .L1487+8
10855	bne	.L1461
10856	ldr	r2, .L1487+36
10857	mov	r0, r5
10858	ldrh	r3, [r3]
10859	ldr	r2, [r2]
10860	mov	r1, r3
10861	str	r3, [sp, #28]
10862	str	r2, [fp, #8]
10863	bl	__aeabi_uidivmod
10864	ldr	r3, [sp, #28]
10865	str	r1, [sp, #24]
10866	subs	r2, r3, r1
10867	ldr	r1, [sp, #4]
10868	cmp	r2, r1
10869	it	cs
10870	movcs	r2, r1
10871	cmp	r3, r2
10872	str	r2, [sp, #28]
10873	bne	.L1462
10874	str	r10, [fp, #8]
10875.L1462:
10876	ldr	r3, .L1487+44
10877	ldr	r2, .L1487+48
10878	str	r6, [fp, #16]
10879	ldrh	r3, [r3]
10880	ldr	r2, [r2]
10881	muls	r3, r7, r3
10882	adds	r7, r7, #1
10883	bic	r3, r3, #3
10884	add	r3, r3, r2
10885	str	r3, [fp, #12]
10886	b	.L1460
10887.L1461:
10888	ldr	r2, [sp, #20]
10889	cmp	r6, r2
10890	bne	.L1463
10891	ldr	r2, .L1487+52
10892	ldr	r1, [sp, #12]
10893	ldr	r2, [r2]
10894	str	r2, [fp, #8]
10895	ldrh	r2, [r3]
10896	mul	r3, r2, r6
10897	sub	r8, r1, r3
10898	cmp	r2, r8
10899	bne	.L1462
10900.L1485:
10901	subs	r3, r3, r5
10902	add	r3, r10, r3, lsl #9
10903	str	r3, [fp, #8]
10904	b	.L1462
10905.L1463:
10906	ldrh	r3, [r3]
10907	muls	r3, r6, r3
10908	b	.L1485
10909.L1466:
10910	ldr	r3, [sp, #20]
10911	cmp	r3, r1
10912	bne	.L1467
10913	ldr	r3, .L1487+52
10914	ldr	r1, [r2, #8]
10915	ldr	r2, [r3]
10916	cmp	r1, r2
10917	bne	.L1467
10918	ldr	r2, .L1487+8
10919	ldr	r3, [sp, #20]
10920	ldrh	r0, [r2]
10921	ldr	r2, [sp, #44]
10922	muls	r0, r3, r0
10923	subs	r0, r0, r5
10924	add	r0, r10, r0, lsl #9
10925	b	.L1486
10926.L1469:
10927	cmp	r3, #256
10928	bne	.L1470
10929	ldr	r0, [r2, #4]
10930	ubfx	r0, r0, #10, #16
10931	bl	P2V_block_in_plane
10932	bl	FtlGcRefreshBlock
10933	b	.L1470
10934.L1476:
10935	mov	r4, #-1
10936	b	.L1452
10937.L1488:
10938	.align	2
10939.L1487:
10940	.word	.LANCHOR33
10941	.word	.LANCHOR165
10942	.word	.LANCHOR11
10943	.word	.LANCHOR162
10944	.word	.LANCHOR88
10945	.word	.LANCHOR73
10946	.word	.LANCHOR47
10947	.word	.LANCHOR2
10948	.word	.LANCHOR102
10949	.word	.LANCHOR108
10950	.word	.LANCHOR134
10951	.word	.LANCHOR23
10952	.word	.LANCHOR114
10953	.word	.LANCHOR109
10954	.size	FtlRead, .-FtlRead
10955	.section	.text.sftl_read,"ax",%progbits
10956	.align	1
10957	.global	sftl_read
10958	.syntax unified
10959	.thumb
10960	.thumb_func
10961	.fpu softvfp
10962	.type	sftl_read, %function
10963sftl_read:
10964	@ args = 0, pretend = 0, frame = 0
10965	@ frame_needed = 0, uses_anonymous_args = 0
10966	@ link register save eliminated.
10967	mov	r3, r2
10968	mov	r2, r1
10969	mov	r1, r0
10970	movs	r0, #0
10971	b	FtlRead
10972	.size	sftl_read, .-sftl_read
10973	.section	.text.FtlWrite,"ax",%progbits
10974	.align	1
10975	.global	FtlWrite
10976	.syntax unified
10977	.thumb
10978	.thumb_func
10979	.fpu softvfp
10980	.type	FtlWrite, %function
10981FtlWrite:
10982	@ args = 0, pretend = 0, frame = 72
10983	@ frame_needed = 0, uses_anonymous_args = 0
10984	cmp	r0, #16
10985	push	{r4, r5, r6, r7, r8, r10, fp, lr}
10986	sub	sp, sp, #72
10987	mov	r10, r1
10988	str	r2, [sp, #16]
10989	str	r3, [sp, #20]
10990	bne	.L1491
10991	mov	r2, r3
10992	ldr	r1, [sp, #16]
10993	add	r0, r10, #256
10994	bl	FtlVendorPartWrite
10995.L1490:
10996	add	sp, sp, #72
10997	@ sp needed
10998	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
10999.L1491:
11000	ldr	r3, .L1537
11001	ldr	r3, [r3]
11002	cmp	r1, r3
11003	bcs	.L1526
11004	ldr	r2, [sp, #16]
11005	cmp	r2, r3
11006	bhi	.L1526
11007	adds	r4, r1, r2
11008	cmp	r3, r4
11009	bcc	.L1526
11010	ldr	r3, .L1537+4
11011	ldr	r0, [r3]
11012	adds	r1, r0, #1
11013	beq	.L1490
11014	ldr	r3, .L1537+8
11015	mov	r2, #2048
11016	mov	r0, r10
11017	ldr	r7, .L1537+12
11018	str	r2, [r3]
11019	ldr	r3, .L1537+16
11020	ldrh	r5, [r3]
11021	mov	r1, r5
11022	bl	__aeabi_uidiv
11023	mov	r1, r5
11024	str	r0, [sp, #12]
11025	subs	r0, r4, #1
11026	bl	__aeabi_uidiv
11027	ldr	r2, [sp, #12]
11028	ldr	r1, [sp, #16]
11029	ldr	r5, [sp, #12]
11030	subs	r3, r0, r2
11031	ldr	r2, .L1537+20
11032	str	r3, [sp, #32]
11033	adds	r3, r3, #1
11034	str	r3, [sp, #8]
11035	ldr	r3, [r2]
11036	str	r0, [sp, #28]
11037	add	r3, r3, r1
11038	ldr	r1, [sp, #8]
11039	str	r3, [r2]
11040	ldr	r2, .L1537+24
11041	ldr	r3, [r2]
11042	add	r3, r3, r1
11043	str	r3, [r2]
11044.L1493:
11045	ldr	r3, [sp, #8]
11046	cbnz	r3, .L1519
11047	ldr	r5, .L1537+28
11048	mov	r0, r3
11049	ldr	r1, [sp, #32]
11050	bl	rk_ftl_garbage_collect
11051	ldrh	r2, [r5]
11052	cmp	r2, #5
11053	bls	.L1520
11054.L1522:
11055	movs	r0, #0
11056	b	.L1490
11057.L1519:
11058	ldr	r4, .L1537+32
11059	ldrb	r2, [r7, #6]	@ zero_extendqisi2
11060	ldrh	r3, [r4]
11061	cmp	r2, r3
11062	bcc	.L1494
11063	movw	r2, #1041
11064	ldr	r1, .L1537+36
11065	ldr	r0, .L1537+40
11066	bl	printf
11067.L1494:
11068	ldrh	r3, [r7, #4]
11069	cbnz	r3, .L1495
11070	mov	r0, r7
11071	bl	allocate_new_data_superblock
11072.L1495:
11073	ldrb	r3, [r7, #7]	@ zero_extendqisi2
11074	ldrh	r2, [r7, #4]
11075	lsls	r3, r3, #2
11076	cmp	r3, r2
11077	it	cs
11078	movcs	r3, r2
11079	ldr	r2, [sp, #8]
11080	cmp	r3, r2
11081	it	cs
11082	movcs	r3, r2
11083	ldrb	r2, [r7, #6]	@ zero_extendqisi2
11084	str	r3, [sp, #44]
11085	ldrh	r3, [r4]
11086	cmp	r2, r3
11087	bcc	.L1496
11088	movw	r2, #1074
11089	ldr	r1, .L1537+36
11090	ldr	r0, .L1537+40
11091	bl	printf
11092.L1496:
11093	ldr	r8, .L1537+44
11094	movs	r3, #0
11095	str	r3, [sp, #4]
11096.L1497:
11097	ldr	r3, [sp, #4]
11098	ldr	r2, [sp, #44]
11099	cmp	r3, r2
11100	bne	.L1517
11101.L1498:
11102	ldr	r0, .L1537+44
11103	mov	r3, r7
11104	movs	r2, #0
11105	ldr	r1, [sp, #4]
11106	ldr	r0, [r0]
11107	bl	FtlProgPages
11108	ldr	r3, [sp, #4]
11109	ldr	r2, [sp, #8]
11110	cmp	r3, r2
11111	bls	.L1518
11112	mov	r2, #1152
11113	ldr	r1, .L1537+36
11114	ldr	r0, .L1537+40
11115	bl	printf
11116.L1518:
11117	ldr	r3, [sp, #8]
11118	ldr	r2, [sp, #4]
11119	subs	r3, r3, r2
11120	str	r3, [sp, #8]
11121	b	.L1493
11122.L1517:
11123	ldrh	r3, [r7, #4]
11124	cmp	r3, #0
11125	beq	.L1498
11126	movs	r2, #0
11127	add	r1, sp, #48
11128	mov	r0, r5
11129	movs	r6, #20
11130	bl	log2phys
11131	mov	r0, r7
11132	bl	get_new_active_ppa
11133	ldr	r2, .L1537+48
11134	ldr	r1, [sp, #4]
11135	ldr	r3, [sp, #4]
11136	ldrh	r2, [r2]
11137	muls	r6, r3, r6
11138	ldr	r3, [r8]
11139	muls	r1, r2, r1
11140	add	r3, r3, r6
11141	str	r0, [r3, #4]
11142	bic	r1, r1, #3
11143	str	r5, [r3, #16]
11144	str	r1, [sp, #36]
11145	ldr	r1, .L1537+52
11146	ldr	r0, [sp, #36]
11147	ldr	r1, [r1]
11148	add	fp, r1, r0
11149	str	r1, [sp, #40]
11150	str	fp, [r3, #12]
11151	movs	r1, #0
11152	mov	r0, fp
11153	bl	ftl_memset
11154	ldr	r3, [sp, #12]
11155	ldr	r2, .L1537+16
11156	cmp	r5, r3
11157	beq	.L1499
11158	ldr	r3, [sp, #28]
11159	cmp	r5, r3
11160	bne	.L1532
11161	ldrh	r2, [r2]
11162	ldr	r3, [sp, #16]
11163	smulbb	r2, r2, r5
11164	add	r4, r10, r3
11165	movs	r3, #0
11166	str	r3, [sp, #24]
11167	subs	r4, r4, r2
11168	uxth	r4, r4
11169	b	.L1502
11170.L1499:
11171	ldrh	r4, [r2]
11172	mov	r0, r10
11173	mov	r1, r4
11174	bl	__aeabi_uidivmod
11175	ldr	r3, [sp, #16]
11176	subs	r4, r4, r1
11177	str	r1, [sp, #24]
11178	cmp	r4, r3
11179	it	cs
11180	movcs	r4, r3
11181.L1502:
11182	ldr	r3, .L1537+16
11183	ldrh	r3, [r3]
11184	cmp	r4, r3
11185	ldr	r3, [sp, #12]
11186	bne	.L1503
11187	cmp	r5, r3
11188	ldr	r3, [r8]
11189	add	r6, r6, r3
11190	bne	.L1504
11191	ldr	r3, [sp, #20]
11192.L1534:
11193	str	r3, [r6, #8]
11194	b	.L1505
11195.L1504:
11196	muls	r4, r5, r4
11197	ldr	r3, [sp, #20]
11198	sub	r4, r4, r10
11199	add	r4, r3, r4, lsl #9
11200	str	r4, [r6, #8]
11201.L1505:
11202	ldr	r3, .L1537+32
11203	ldrb	r2, [r7, #6]	@ zero_extendqisi2
11204	ldrh	r3, [r3]
11205	cmp	r2, r3
11206	bcc	.L1514
11207	movw	r2, #1143
11208	ldr	r1, .L1537+36
11209	ldr	r0, .L1537+40
11210	bl	printf
11211.L1514:
11212	ldr	r2, [sp, #40]
11213	movw	r3, #61589
11214	ldr	r1, [sp, #36]
11215	strh	r3, [r2, r1]	@ movhi
11216	ldr	r2, .L1537+56
11217	str	r5, [fp, #8]
11218	adds	r5, r5, #1
11219	ldr	r3, [r2]
11220	str	r3, [fp, #4]
11221	adds	r3, r3, #1
11222	adds	r1, r3, #1
11223	it	eq
11224	moveq	r3, #0
11225	str	r3, [r2]
11226	ldr	r3, [sp, #48]
11227	str	r3, [fp, #12]
11228	ldrh	r3, [r7]
11229	strh	r3, [fp, #2]	@ movhi
11230	ldr	r3, [sp, #4]
11231	adds	r3, r3, #1
11232	str	r3, [sp, #4]
11233	b	.L1497
11234.L1503:
11235	cmp	r5, r3
11236	ldr	r3, [r8]
11237	ite	eq
11238	ldreq	r2, .L1537+60
11239	ldrne	r2, .L1537+64
11240	add	r3, r3, r6
11241	ldr	r2, [r2]
11242	str	r2, [r3, #8]
11243	ldr	r3, [sp, #48]
11244	adds	r2, r3, #1
11245	beq	.L1508
11246	str	r3, [sp, #56]
11247	movs	r1, #1
11248	ldr	r3, [r8]
11249	add	r0, sp, #52
11250	str	r5, [sp, #68]
11251	add	r3, r3, r6
11252	ldr	r2, [r3, #8]
11253	ldr	r3, [r3, #12]
11254	str	r2, [sp, #60]
11255	movs	r2, #0
11256	str	r3, [sp, #64]
11257	bl	FlashReadPages
11258	ldr	r3, [sp, #52]
11259	adds	r0, r3, #1
11260	bne	.L1509
11261	ldr	r1, .L1537+68
11262	ldr	r0, .L1537+72
11263	ldr	r2, [r1, #72]
11264	adds	r2, r2, #1
11265	str	r2, [r1, #72]
11266	mov	r2, r5
11267	ldr	r1, [fp, #8]
11268	bl	printf
11269.L1512:
11270	ldr	r3, [sp, #12]
11271	lsls	r2, r4, #9
11272	cmp	r5, r3
11273	bne	.L1513
11274	ldr	r3, [r8]
11275	ldr	r1, [sp, #20]
11276	add	r6, r6, r3
11277	ldr	r3, [sp, #24]
11278	ldr	r0, [r6, #8]
11279	add	r0, r0, r3, lsl #9
11280.L1535:
11281	bl	ftl_memcpy
11282	b	.L1505
11283.L1509:
11284	ldr	r1, [fp, #8]
11285	cmp	r5, r1
11286	beq	.L1511
11287	ldr	r2, .L1537+68
11288	ldr	r0, .L1537+76
11289	ldr	r3, [r2, #72]
11290	adds	r3, r3, #1
11291	str	r3, [r2, #72]
11292	mov	r2, r5
11293	bl	printf
11294.L1511:
11295	ldr	r3, [fp, #8]
11296	cmp	r5, r3
11297	beq	.L1512
11298	mov	r2, #1128
11299	ldr	r1, .L1537+36
11300	ldr	r0, .L1537+40
11301	bl	printf
11302	b	.L1512
11303.L1538:
11304	.align	2
11305.L1537:
11306	.word	.LANCHOR33
11307	.word	.LANCHOR165
11308	.word	.LANCHOR175
11309	.word	.LANCHOR50
11310	.word	.LANCHOR11
11311	.word	.LANCHOR161
11312	.word	.LANCHOR84
11313	.word	.LANCHOR47
11314	.word	.LANCHOR2
11315	.word	.LANCHOR176
11316	.word	.LC1
11317	.word	.LANCHOR104
11318	.word	.LANCHOR23
11319	.word	.LANCHOR114
11320	.word	.LANCHOR82
11321	.word	.LANCHOR108
11322	.word	.LANCHOR109
11323	.word	.LANCHOR134
11324	.word	.LC44
11325	.word	.LC45
11326.L1508:
11327	ldr	r3, [r8]
11328	movs	r1, #0
11329	ldr	r2, .L1539
11330	add	r3, r3, r6
11331	ldrh	r2, [r2]
11332	ldr	r0, [r3, #8]
11333	bl	ftl_memset
11334	b	.L1512
11335.L1513:
11336	ldr	r3, .L1539+4
11337	ldrh	r1, [r3]
11338	ldr	r3, [r8]
11339	muls	r1, r5, r1
11340	add	r6, r6, r3
11341	ldr	r3, [sp, #20]
11342	ldr	r0, [r6, #8]
11343	sub	r1, r1, r10
11344	add	r1, r3, r1, lsl #9
11345	b	.L1535
11346.L1532:
11347	ldr	r3, [r8]
11348	add	r6, r6, r3
11349	ldrh	r3, [r2]
11350	ldr	r2, [sp, #20]
11351	muls	r3, r5, r3
11352	sub	r3, r3, r10
11353	add	r3, r2, r3, lsl #9
11354	b	.L1534
11355.L1520:
11356	ldr	r6, .L1539+8
11357	mov	r4, #256
11358	ldr	r7, .L1539+12
11359.L1523:
11360	ldrh	r3, [r6]
11361	movw	r2, #65535
11362	cmp	r3, r2
11363	bne	.L1521
11364	ldrh	r2, [r7]
11365	cmp	r2, r3
11366	bne	.L1521
11367	movs	r0, #0
11368	bl	List_get_gc_head_node
11369	uxth	r0, r0
11370	bl	FtlGcRefreshBlock
11371.L1521:
11372	ldr	r2, .L1539+16
11373	movs	r3, #128
11374	movs	r1, #1
11375	mov	r0, r1
11376	strh	r3, [r2]	@ movhi
11377	ldr	r2, .L1539+20
11378	strh	r3, [r2]	@ movhi
11379	bl	rk_ftl_garbage_collect
11380	movs	r1, #1
11381	movs	r0, #0
11382	bl	rk_ftl_garbage_collect
11383	ldrh	r3, [r5]
11384	cmp	r3, #2
11385	bhi	.L1522
11386	subs	r4, r4, #1
11387	bne	.L1523
11388	b	.L1522
11389.L1526:
11390	mov	r0, #-1
11391	b	.L1490
11392.L1540:
11393	.align	2
11394.L1539:
11395	.word	.LANCHOR22
11396	.word	.LANCHOR11
11397	.word	.LANCHOR144
11398	.word	.LANCHOR71
11399	.word	.LANCHOR100
11400	.word	.LANCHOR99
11401	.size	FtlWrite, .-FtlWrite
11402	.section	.text.sftl_gc,"ax",%progbits
11403	.align	1
11404	.global	sftl_gc
11405	.syntax unified
11406	.thumb
11407	.thumb_func
11408	.fpu softvfp
11409	.type	sftl_gc, %function
11410sftl_gc:
11411	@ args = 0, pretend = 0, frame = 0
11412	@ frame_needed = 0, uses_anonymous_args = 0
11413	@ link register save eliminated.
11414	movs	r1, #1
11415	mov	r0, r1
11416	b	rk_ftl_garbage_collect
11417	.size	sftl_gc, .-sftl_gc
11418	.section	.text.FtlLoadSysInfo,"ax",%progbits
11419	.align	1
11420	.global	FtlLoadSysInfo
11421	.syntax unified
11422	.thumb
11423	.thumb_func
11424	.fpu softvfp
11425	.type	FtlLoadSysInfo, %function
11426FtlLoadSysInfo:
11427	@ args = 0, pretend = 0, frame = 8
11428	@ frame_needed = 0, uses_anonymous_args = 0
11429	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11430	movs	r1, #0
11431	ldr	r8, .L1572+140
11432	sub	sp, sp, #24
11433	ldr	r7, .L1572
11434	ldr	r3, [r8]
11435	ldr	r4, .L1572+4
11436	ldr	fp, .L1572+144
11437	ldrh	r2, [r7]
11438	ldr	r5, .L1572+8
11439	str	r3, [r4, #8]
11440	ldr	r6, .L1572+12
11441	ldr	r3, [fp]
11442	lsls	r2, r2, #1
11443	ldr	r0, [r5]
11444	str	r3, [r4, #12]
11445	bl	ftl_memset
11446	ldrh	r0, [r6]
11447	movw	r3, #65535
11448	str	r5, [sp, #16]
11449	cmp	r0, r3
11450	bne	.L1543
11451.L1554:
11452	mov	r0, #-1
11453.L1542:
11454	add	sp, sp, #24
11455	@ sp needed
11456	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11457.L1543:
11458	movs	r1, #1
11459	bl	FtlGetLastWrittenPage
11460	ldrsh	r10, [r6]
11461	sxth	r5, r0
11462	adds	r0, r0, #1
11463	strh	r0, [r6, #2]	@ movhi
11464.L1545:
11465	cmp	r5, #0
11466	bge	.L1551
11467	movw	r2, #1467
11468	ldr	r1, .L1572+16
11469	ldr	r0, .L1572+20
11470	bl	printf
11471	b	.L1550
11472.L1551:
11473	orr	r3, r5, r10, lsl #10
11474	movs	r2, #1
11475	mov	r1, r2
11476	ldr	r0, .L1572+4
11477	str	r3, [r4, #4]
11478	ldr	r3, [r8]
11479	str	r3, [r4, #8]
11480	bl	FlashReadPages
11481	ldr	r3, [r4, #12]
11482	ldr	r3, [r3, #12]
11483	str	r3, [sp, #20]
11484	cbz	r3, .L1546
11485	ldr	r2, [r4]
11486	adds	r2, r2, #1
11487	beq	.L1546
11488	ldr	r2, .L1572+24
11489	ldr	r0, [r4, #8]
11490	ldrh	r1, [r2]
11491	bl	js_hash
11492	ldr	r3, [sp, #20]
11493	cmp	r3, r0
11494	beq	.L1546
11495	str	r0, [sp, #8]
11496	mov	r2, r10
11497	str	r3, [sp, #4]
11498	ldrh	r3, [r6, #4]
11499	ldr	r1, .L1572+16
11500	ldr	r0, .L1572+28
11501	str	r3, [sp]
11502	mov	r3, r5
11503	bl	printf
11504	cbnz	r5, .L1547
11505	ldrh	r3, [r6, #4]
11506	cmp	r10, r3
11507	beq	.L1547
11508	sxth	r10, r3
11509	ldr	r3, .L1572+32
11510	ldrh	r5, [r3]
11511.L1549:
11512	subs	r5, r5, #1
11513	sxth	r5, r5
11514	b	.L1545
11515.L1547:
11516	mov	r3, #-1
11517	str	r3, [r4]
11518.L1546:
11519	ldr	r3, [r4]
11520	adds	r3, r3, #1
11521	beq	.L1549
11522	ldr	r3, [r8]
11523	ldr	r2, .L1572+36
11524	ldr	r3, [r3]
11525	cmp	r3, r2
11526	bne	.L1549
11527	ldr	r3, [fp]
11528	ldrh	r2, [r3]
11529	movw	r3, #61604
11530	cmp	r2, r3
11531	bne	.L1549
11532.L1550:
11533	ldr	r2, .L1572+24
11534	ldrh	r3, [r7]
11535	ldrh	r2, [r2]
11536	adds	r3, r3, #24
11537	cmp	r2, r3, lsl #1
11538	bcs	.L1553
11539	movw	r2, #1469
11540	ldr	r1, .L1572+16
11541	ldr	r0, .L1572+20
11542	bl	printf
11543.L1553:
11544	ldr	r5, .L1572+40
11545	movs	r2, #48
11546	ldr	r1, [r4, #8]
11547	mov	r0, r5
11548	bl	ftl_memcpy
11549	ldrh	r2, [r7]
11550	ldr	r1, [r4, #8]
11551	mov	r4, r5
11552	ldr	r3, [sp, #16]
11553	lsls	r2, r2, #1
11554	adds	r1, r1, #48
11555	ldr	r0, [r3]
11556	bl	ftl_memcpy
11557	ldr	r2, [r5]
11558	ldr	r3, .L1572+36
11559	cmp	r2, r3
11560	bne	.L1554
11561	ldr	r3, .L1572+44
11562	ldrb	r2, [r4, #10]	@ zero_extendqisi2
11563	ldrh	r5, [r5, #8]
11564	ldrh	r3, [r3]
11565	strh	r5, [r6, #6]	@ movhi
11566	cmp	r2, r3
11567	bne	.L1554
11568	ldr	r3, .L1572+48
11569	ldr	r2, .L1572+52
11570	str	r5, [r3]
11571	ldr	r3, .L1572+56
11572	ldrh	r3, [r3]
11573	muls	r3, r5, r3
11574	str	r3, [r2]
11575	ldr	r2, .L1572+60
11576	ldrh	r2, [r2]
11577	muls	r3, r2, r3
11578	ldr	r2, .L1572+64
11579	str	r3, [r2]
11580	ldr	r3, .L1572+68
11581	ldr	r6, [r3]
11582	ldr	r3, .L1572+72
11583	ldrh	r0, [r3, #6]
11584	ldr	r3, .L1572+76
11585	subs	r0, r6, r0
11586	ldrh	r1, [r3]
11587	subs	r0, r0, r5
11588	bl	__aeabi_uidiv
11589	ldr	r3, .L1572+80
11590	cmp	r5, r6
11591	strh	r0, [r3]	@ movhi
11592	bls	.L1555
11593	movw	r2, #1491
11594	ldr	r1, .L1572+16
11595	ldr	r0, .L1572+20
11596	bl	printf
11597.L1555:
11598	ldrh	r2, [r4, #16]
11599	ldr	r3, .L1572+84
11600	ldrh	ip, [r4, #14]
11601	ldr	r7, .L1572+88
11602	lsrs	r1, r2, #6
11603	and	r2, r2, #63
11604	strb	r2, [r3, #6]
11605	ldrb	r2, [r4, #11]	@ zero_extendqisi2
11606	strh	r1, [r3, #2]	@ movhi
11607	ldr	r1, .L1572+92
11608	strb	r2, [r3, #8]
11609	ldrh	r2, [r4, #18]
11610	strh	ip, [r3]	@ movhi
11611	movw	r3, #65535
11612	strh	r3, [r7]	@ movhi
11613	movs	r3, #0
11614	strh	r2, [r1]	@ movhi
11615	ldrh	r2, [r4, #20]
11616	strh	r3, [r7, #2]	@ movhi
11617	strb	r3, [r7, #6]
11618	strb	r3, [r7, #8]
11619	lsrs	r5, r2, #6
11620	and	r2, r2, #63
11621	strb	r2, [r1, #6]
11622	ldrb	r2, [r4, #12]	@ zero_extendqisi2
11623	strh	r5, [r1, #2]	@ movhi
11624	ldrh	r5, [r4, #22]
11625	strb	r2, [r1, #8]
11626	ldr	r2, .L1572+96
11627	strh	r5, [r2]	@ movhi
11628	ldrh	r5, [r4, #24]
11629	lsrs	r6, r5, #6
11630	and	r5, r5, #63
11631	strb	r5, [r2, #6]
11632	ldrb	r5, [r4, #13]	@ zero_extendqisi2
11633	strh	r6, [r2, #2]	@ movhi
11634	ldr	r6, [r4, #32]
11635	strb	r5, [r2, #8]
11636	ldr	r5, .L1572+100
11637	str	r3, [r5]
11638	ldr	r5, .L1572+104
11639	str	r3, [r5]
11640	ldr	r5, .L1572+108
11641	str	r3, [r5]
11642	ldr	r5, .L1572+112
11643	str	r3, [r5]
11644	ldr	r5, .L1572+116
11645	str	r6, [r5]
11646	mov	r6, r1
11647	ldr	r5, .L1572+120
11648	str	r3, [r5]
11649	ldr	r5, .L1572+124
11650	str	r3, [r5]
11651	ldr	r5, .L1572+128
11652	ldr	lr, [r4, #40]
11653	str	r3, [r5]
11654	ldr	r3, .L1572+132
11655	ldr	r5, [r3]
11656	cmp	lr, r5
11657	mov	r5, r2
11658	it	hi
11659	strhi	lr, [r3]
11660	ldr	r3, .L1572+136
11661	ldr	r2, [r4, #36]
11662	ldr	r1, [r3]
11663	cmp	r2, r1
11664	it	hi
11665	strhi	r2, [r3]
11666	movw	r3, #65535
11667	cmp	ip, r3
11668	beq	.L1558
11669	ldr	r0, .L1572+84
11670	bl	make_superblock
11671.L1558:
11672	ldrh	r2, [r6]
11673	movw	r3, #65535
11674	cmp	r2, r3
11675	beq	.L1559
11676	ldr	r0, .L1572+92
11677	bl	make_superblock
11678.L1559:
11679	ldrh	r2, [r5]
11680	movw	r3, #65535
11681	cmp	r2, r3
11682	beq	.L1560
11683	ldr	r0, .L1572+96
11684	bl	make_superblock
11685.L1560:
11686	ldrh	r2, [r7]
11687	movw	r3, #65535
11688	cmp	r2, r3
11689	beq	.L1561
11690	ldr	r0, .L1572+88
11691	bl	make_superblock
11692.L1561:
11693	movs	r0, #0
11694	b	.L1542
11695.L1573:
11696	.align	2
11697.L1572:
11698	.word	.LANCHOR4
11699	.word	.LANCHOR137
11700	.word	.LANCHOR41
11701	.word	.LANCHOR138
11702	.word	.LANCHOR177
11703	.word	.LC1
11704	.word	.LANCHOR22
11705	.word	.LC46
11706	.word	.LANCHOR19
11707	.word	1179929683
11708	.word	.LANCHOR38
11709	.word	.LANCHOR9
11710	.word	.LANCHOR178
11711	.word	.LANCHOR151
11712	.word	.LANCHOR18
11713	.word	.LANCHOR11
11714	.word	.LANCHOR33
11715	.word	.LANCHOR6
11716	.word	.LANCHOR36
11717	.word	.LANCHOR2
11718	.word	.LANCHOR170
11719	.word	.LANCHOR50
11720	.word	.LANCHOR144
11721	.word	.LANCHOR51
11722	.word	.LANCHOR52
11723	.word	.LANCHOR83
11724	.word	.LANCHOR84
11725	.word	.LANCHOR88
11726	.word	.LANCHOR87
11727	.word	.LANCHOR89
11728	.word	.LANCHOR90
11729	.word	.LANCHOR91
11730	.word	.LANCHOR86
11731	.word	.LANCHOR81
11732	.word	.LANCHOR82
11733	.word	.LANCHOR105
11734	.word	.LANCHOR113
11735	.size	FtlLoadSysInfo, .-FtlLoadSysInfo
11736	.section	.text.FtlMapTblRecovery,"ax",%progbits
11737	.align	1
11738	.global	FtlMapTblRecovery
11739	.syntax unified
11740	.thumb
11741	.thumb_func
11742	.fpu softvfp
11743	.type	FtlMapTblRecovery, %function
11744FtlMapTblRecovery:
11745	@ args = 0, pretend = 0, frame = 32
11746	@ frame_needed = 0, uses_anonymous_args = 0
11747	ldr	r3, [r0, #24]
11748	movs	r1, #0
11749	push	{r4, r5, r6, r7, r8, r10, fp, lr}
11750	sub	sp, sp, #40
11751	mov	r4, r0
11752	ldr	r8, [r0, #12]
11753	movs	r7, #0
11754	str	r3, [sp, #8]
11755	ldr	r3, [r0, #16]
11756	ldr	r6, .L1615
11757	str	r3, [sp, #24]
11758	ldrh	r3, [r0, #6]
11759	str	r3, [sp, #12]
11760	ldrh	r3, [r0, #8]
11761	ldr	r0, [sp, #8]
11762	str	r3, [sp, #16]
11763	ldr	r3, [sp, #12]
11764	lsls	r2, r3, #2
11765	bl	ftl_memset
11766	ldr	r3, .L1615+4
11767	str	r7, [r4, #32]
11768	str	r7, [r4, #28]
11769	ldr	r2, [r3]
11770	str	r3, [sp, #20]
11771	str	r2, [r6, #8]
11772	ldr	r2, .L1615+8
11773	ldr	fp, [r2]
11774	movw	r2, #65535
11775	str	fp, [r6, #12]
11776	strh	r2, [r4]	@ movhi
11777	strh	r2, [r4, #2]	@ movhi
11778	movs	r2, #1
11779	str	r2, [r4, #36]
11780.L1575:
11781	ldr	r3, [sp, #16]
11782	sxth	r5, r7
11783	cmp	r5, r3
11784	bge	.L1594
11785	ldr	r3, [sp, #16]
11786	subs	r3, r3, #1
11787	cmp	r5, r3
11788	bne	.L1576
11789	movs	r1, #1
11790	ldrh	r0, [r8, r5, lsl #1]
11791	bl	FtlGetLastWrittenPage
11792	sxth	r3, r0
11793	ldr	r6, .L1615
11794	add	r10, r8, r5, lsl #1
11795	strh	r7, [r4]	@ movhi
11796	str	r3, [sp, #16]
11797	movs	r7, #0
11798	ldr	r3, [sp, #24]
11799	adds	r0, r0, #1
11800	strh	r0, [r4, #2]	@ movhi
11801	ldr	r3, [r3, r5, lsl #2]
11802	str	r3, [r4, #28]
11803.L1577:
11804	ldr	r3, [sp, #16]
11805	sxth	r8, r7
11806	cmp	r8, r3
11807	ble	.L1580
11808.L1594:
11809	mov	r0, r4
11810	bl	ftl_free_no_use_map_blk
11811	ldr	r3, .L1615+12
11812	ldrh	r2, [r4, #2]
11813	ldrh	r3, [r3]
11814	cmp	r2, r3
11815	bne	.L1582
11816	mov	r0, r4
11817	bl	ftl_map_blk_alloc_new_blk
11818.L1582:
11819	mov	r0, r4
11820	bl	ftl_map_blk_gc
11821	mov	r0, r4
11822	bl	ftl_map_blk_gc
11823	movs	r0, #0
11824	add	sp, sp, #40
11825	@ sp needed
11826	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
11827.L1580:
11828	ldrh	r2, [r10]
11829	ldr	r0, .L1615
11830	orr	r2, r8, r2, lsl #10
11831	str	r2, [r6, #4]
11832	movs	r2, #1
11833	mov	r1, r2
11834	bl	FlashReadPages
11835	ldr	r2, [r6, #12]
11836	ldr	r2, [r2, #12]
11837	str	r2, [sp, #20]
11838	cbz	r2, .L1578
11839	ldr	r1, [r6]
11840	adds	r1, r1, #1
11841	beq	.L1578
11842	ldr	r3, .L1615+16
11843	ldr	r0, [r6, #8]
11844	ldrh	r1, [r3]
11845	bl	js_hash
11846	ldr	r2, [sp, #20]
11847	cmp	r2, r0
11848	beq	.L1578
11849	str	r0, [sp, #4]
11850	mov	r3, r8
11851	str	r2, [sp]
11852	mov	r2, r5
11853	ldr	r1, .L1615+20
11854	ldr	r0, .L1615+24
11855	bl	printf
11856	mov	r3, #-1
11857	str	r3, [r6]
11858.L1578:
11859	ldr	r3, [r6]
11860	adds	r3, r3, #1
11861	beq	.L1579
11862	ldrh	r3, [fp, #8]
11863	ldr	r2, [sp, #12]
11864	cmp	r2, r3
11865	bls	.L1579
11866	ldrh	r1, [fp]
11867	ldrh	r2, [r4, #4]
11868	cmp	r1, r2
11869	ittt	eq
11870	ldreq	r2, [r6, #4]
11871	ldreq	r1, [sp, #8]
11872	streq	r2, [r1, r3, lsl #2]
11873.L1579:
11874	adds	r7, r7, #1
11875	b	.L1577
11876.L1576:
11877	ldr	r3, [sp, #20]
11878	ldr	r10, .L1615+12
11879	ldrh	r2, [r8, r5, lsl #1]
11880	ldr	r3, [r3]
11881	ldr	r0, .L1615
11882	str	r3, [r6, #8]
11883	add	r3, r8, r5, lsl #1
11884	str	r3, [sp, #28]
11885	ldrh	r3, [r10]
11886	subs	r3, r3, #1
11887	orr	r3, r3, r2, lsl #10
11888	movs	r2, #1
11889	mov	r1, r2
11890	str	r3, [r6, #4]
11891	bl	FlashReadPages
11892	ldr	r3, [r6]
11893	adds	r3, r3, #1
11894	beq	.L1596
11895	ldrh	r2, [fp]
11896	ldrh	r3, [r4, #4]
11897	cmp	r2, r3
11898	bne	.L1596
11899	ldrh	r2, [fp, #8]
11900	movw	r3, #64245
11901	cmp	r2, r3
11902	beq	.L1584
11903.L1596:
11904	mov	r10, #0
11905.L1585:
11906	ldr	r2, .L1615+12
11907	sxth	r3, r10
11908	ldrh	r2, [r2]
11909	cmp	r3, r2
11910	bge	.L1592
11911	ldr	r2, [sp, #28]
11912	ldr	r0, .L1615
11913	str	r3, [sp, #36]
11914	ldrh	r2, [r2]
11915	orr	r2, r3, r2, lsl #10
11916	str	r2, [r6, #4]
11917	movs	r2, #1
11918	mov	r1, r2
11919	bl	FlashReadPages
11920	ldr	r2, [r6, #12]
11921	ldr	r2, [r2, #12]
11922	str	r2, [sp, #32]
11923	cbz	r2, .L1589
11924	ldr	r1, [r6]
11925	adds	r1, r1, #1
11926	beq	.L1589
11927	ldr	r1, .L1615+16
11928	ldr	r0, [r6, #8]
11929	ldrh	r1, [r1]
11930	bl	js_hash
11931	ldr	r2, [sp, #32]
11932	cmp	r2, r0
11933	beq	.L1589
11934	str	r0, [sp, #4]
11935	str	r2, [sp]
11936	mov	r2, r5
11937	ldr	r3, [sp, #36]
11938	ldr	r1, .L1615+20
11939	ldr	r0, .L1615+28
11940	bl	printf
11941	mov	r3, #-1
11942	str	r3, [r6]
11943.L1589:
11944	ldr	r3, [r6]
11945	adds	r3, r3, #1
11946	beq	.L1590
11947	ldrh	r3, [fp, #8]
11948	ldr	r2, [sp, #12]
11949	cmp	r2, r3
11950	bls	.L1590
11951	ldrh	r1, [fp]
11952	ldrh	r2, [r4, #4]
11953	cmp	r1, r2
11954	ittt	eq
11955	ldreq	r2, [r6, #4]
11956	ldreq	r1, [sp, #8]
11957	streq	r2, [r1, r3, lsl #2]
11958.L1590:
11959	add	r10, r10, #1
11960	b	.L1585
11961.L1584:
11962	ldr	r3, [sp, #20]
11963	movs	r1, #0
11964	ldrh	r2, [r10]
11965	ldr	r0, [r3]
11966	add	lr, r2, #-1
11967.L1586:
11968	sxth	r3, r1
11969	cmp	r3, lr
11970	blt	.L1588
11971.L1592:
11972	adds	r7, r7, #1
11973	b	.L1575
11974.L1588:
11975	lsls	r5, r3, #3
11976	ldr	r3, [r0, r3, lsl #3]
11977	ldr	r2, [sp, #12]
11978	uxth	ip, r3
11979	cmp	r2, ip
11980	bls	.L1587
11981	add	r5, r5, r0
11982	ldr	r2, [sp, #8]
11983	ldr	r5, [r5, #4]
11984	str	r5, [r2, ip, lsl #2]
11985.L1587:
11986	adds	r1, r1, #1
11987	b	.L1586
11988.L1616:
11989	.align	2
11990.L1615:
11991	.word	.LANCHOR137
11992	.word	.LANCHOR105
11993	.word	.LANCHOR113
11994	.word	.LANCHOR19
11995	.word	.LANCHOR22
11996	.word	.LANCHOR179
11997	.word	.LC47
11998	.word	.LC48
11999	.size	FtlMapTblRecovery, .-FtlMapTblRecovery
12000	.section	.text.FtlLoadVonderInfo,"ax",%progbits
12001	.align	1
12002	.global	FtlLoadVonderInfo
12003	.syntax unified
12004	.thumb
12005	.thumb_func
12006	.fpu softvfp
12007	.type	FtlLoadVonderInfo, %function
12008FtlLoadVonderInfo:
12009	@ args = 0, pretend = 0, frame = 0
12010	@ frame_needed = 0, uses_anonymous_args = 0
12011	push	{r3, lr}
12012	ldr	r3, .L1618
12013	ldr	r0, .L1618+4
12014	ldrh	r3, [r3]
12015	strh	r3, [r0, #10]	@ movhi
12016	movw	r3, #61574
12017	strh	r3, [r0, #4]	@ movhi
12018	ldr	r3, .L1618+8
12019	ldrh	r3, [r3]
12020	strh	r3, [r0, #8]	@ movhi
12021	ldr	r3, .L1618+12
12022	ldrh	r3, [r3]
12023	strh	r3, [r0, #6]	@ movhi
12024	ldr	r3, .L1618+16
12025	ldr	r3, [r3]
12026	str	r3, [r0, #12]
12027	ldr	r3, .L1618+20
12028	ldr	r3, [r3]
12029	str	r3, [r0, #16]
12030	ldr	r3, .L1618+24
12031	ldr	r3, [r3]
12032	str	r3, [r0, #20]
12033	ldr	r3, .L1618+28
12034	ldr	r3, [r3]
12035	str	r3, [r0, #24]
12036	bl	FtlMapTblRecovery
12037	movs	r0, #0
12038	pop	{r3, pc}
12039.L1619:
12040	.align	2
12041.L1618:
12042	.word	.LANCHOR26
12043	.word	.LANCHOR160
12044	.word	.LANCHOR34
12045	.word	.LANCHOR27
12046	.word	.LANCHOR35
12047	.word	.LANCHOR121
12048	.word	.LANCHOR120
12049	.word	.LANCHOR122
12050	.size	FtlLoadVonderInfo, .-FtlLoadVonderInfo
12051	.section	.text.FtlLoadMapInfo,"ax",%progbits
12052	.align	1
12053	.global	FtlLoadMapInfo
12054	.syntax unified
12055	.thumb
12056	.thumb_func
12057	.fpu softvfp
12058	.type	FtlLoadMapInfo, %function
12059FtlLoadMapInfo:
12060	@ args = 0, pretend = 0, frame = 0
12061	@ frame_needed = 0, uses_anonymous_args = 0
12062	push	{r3, lr}
12063	bl	FtlL2PDataInit
12064	ldr	r0, .L1621
12065	bl	FtlMapTblRecovery
12066	movs	r0, #0
12067	pop	{r3, pc}
12068.L1622:
12069	.align	2
12070.L1621:
12071	.word	.LANCHOR128
12072	.size	FtlLoadMapInfo, .-FtlLoadMapInfo
12073	.section	.text.FtlSysBlkInit,"ax",%progbits
12074	.align	1
12075	.global	FtlSysBlkInit
12076	.syntax unified
12077	.thumb
12078	.thumb_func
12079	.fpu softvfp
12080	.type	FtlSysBlkInit, %function
12081FtlSysBlkInit:
12082	@ args = 0, pretend = 0, frame = 0
12083	@ frame_needed = 0, uses_anonymous_args = 0
12084	push	{r3, r4, r5, r6, r7, lr}
12085	movs	r3, #0
12086	ldr	r4, .L1636
12087	strh	r3, [r4]	@ movhi
12088	ldr	r3, .L1636+4
12089	ldrh	r0, [r3]
12090	bl	FtlFreeSysBlkQueueInit
12091	bl	FtlScanSysBlk
12092	ldr	r3, .L1636+8
12093	ldrh	r2, [r3]
12094	movw	r3, #65535
12095	cmp	r2, r3
12096	bne	.L1624
12097.L1626:
12098	mov	r6, #-1
12099.L1623:
12100	mov	r0, r6
12101	pop	{r3, r4, r5, r6, r7, pc}
12102.L1624:
12103	bl	FtlLoadSysInfo
12104	mov	r6, r0
12105	cmp	r0, #0
12106	bne	.L1626
12107	bl	FtlLoadMapInfo
12108	bl	FtlLoadVonderInfo
12109	bl	Ftl_load_ext_data
12110	bl	FtlLoadEctTbl
12111	bl	FtlFreeSysBLkSort
12112	bl	SupperBlkListInit
12113	bl	FtlPowerLostRecovery
12114	movs	r0, #1
12115	bl	FtlUpdateVaildLpn
12116	ldr	r3, .L1636+12
12117	movs	r0, #12
12118	ldrh	r1, [r3]
12119	ldr	r3, .L1636+16
12120	ldr	r2, [r3]
12121	mov	r3, r6
12122.L1627:
12123	cmp	r3, r1
12124	bge	.L1632
12125	mla	r5, r0, r3, r2
12126	ldr	r5, [r5, #4]
12127	cmp	r5, #0
12128	bge	.L1628
12129.L1632:
12130	ldr	r0, .L1636+20
12131	cmp	r3, r1
12132	ldr	r2, [r0]
12133	add	r2, r2, #32
12134	str	r2, [r0]
12135	bge	.L1634
12136.L1629:
12137	ldr	r5, .L1636+24
12138	ldr	r4, .L1636+28
12139	mov	r0, r5
12140	bl	FtlSuperblockPowerLostFix
12141	mov	r0, r4
12142	bl	FtlSuperblockPowerLostFix
12143	ldr	r3, .L1636+32
12144	ldrh	r1, [r5]
12145	ldrh	r0, [r5, #4]
12146	ldr	r2, [r3]
12147	ldrh	r3, [r2, r1, lsl #1]
12148	subs	r3, r3, r0
12149	ldr	r0, .L1636+36
12150	strh	r3, [r2, r1, lsl #1]	@ movhi
12151	ldrh	r7, [r4, #4]
12152	ldrh	r3, [r0]
12153	strh	r3, [r5, #2]	@ movhi
12154	movs	r3, #0
12155	strb	r3, [r5, #6]
12156	strh	r3, [r5, #4]	@ movhi
12157	ldrh	r5, [r4]
12158	ldrh	r1, [r2, r5, lsl #1]
12159	subs	r1, r1, r7
12160	strh	r1, [r2, r5, lsl #1]	@ movhi
12161	ldrh	r2, [r0]
12162	strb	r3, [r4, #6]
12163	strh	r3, [r4, #4]	@ movhi
12164	strh	r2, [r4, #2]	@ movhi
12165	ldr	r2, .L1636+40
12166	ldrh	r3, [r2, #30]
12167	adds	r3, r3, #1
12168	strh	r3, [r2, #30]	@ movhi
12169	bl	l2p_flush
12170	bl	FtlVpcTblFlush
12171.L1635:
12172	bl	FtlVpcTblFlush
12173	b	.L1623
12174.L1628:
12175	adds	r3, r3, #1
12176	b	.L1627
12177.L1634:
12178	ldrh	r3, [r4]
12179	cmp	r3, #0
12180	bne	.L1629
12181	bl	l2p_flush
12182	b	.L1635
12183.L1637:
12184	.align	2
12185.L1636:
12186	.word	.LANCHOR155
12187	.word	.LANCHOR3
12188	.word	.LANCHOR138
12189	.word	.LANCHOR32
12190	.word	.LANCHOR54
12191	.word	.LANCHOR82
12192	.word	.LANCHOR50
12193	.word	.LANCHOR51
12194	.word	.LANCHOR41
12195	.word	.LANCHOR18
12196	.word	.LANCHOR38
12197	.size	FtlSysBlkInit, .-FtlSysBlkInit
12198	.section	.text.ftl_low_format,"ax",%progbits
12199	.align	1
12200	.global	ftl_low_format
12201	.syntax unified
12202	.thumb
12203	.thumb_func
12204	.fpu softvfp
12205	.type	ftl_low_format, %function
12206ftl_low_format:
12207	@ args = 0, pretend = 0, frame = 16
12208	@ frame_needed = 0, uses_anonymous_args = 0
12209	push	{r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
12210	movs	r3, #0
12211	ldr	r2, .L1662
12212	ldr	r4, .L1662+4
12213	str	r3, [r2]
12214	ldr	r5, .L1662+8
12215	ldr	r2, .L1662+12
12216	mov	r8, r4
12217	ldrh	r0, [r4]
12218	str	r3, [r5]
12219	str	r3, [r2]
12220	bl	FtlFreeSysBlkQueueInit
12221	bl	FtlLoadBbt
12222	cbz	r0, .L1639
12223	bl	FtlMakeBbt
12224.L1639:
12225	ldr	r3, .L1662+16
12226	ldr	r2, .L1662+20
12227	ldr	r7, .L1662+24
12228	ldrh	r1, [r3]
12229	ldr	r4, [r2]
12230	ldr	r2, .L1662+28
12231	str	r3, [sp, #4]
12232	lsls	r1, r1, #7
12233	ldr	r6, [r2]
12234	movs	r2, #0
12235.L1640:
12236	uxth	r3, r2
12237	adds	r2, r2, #1
12238	cmp	r3, r1
12239	blt	.L1641
12240	ldr	r7, .L1662+32
12241	mov	r10, #0
12242	ldr	r6, .L1662+36
12243	ldrh	r4, [r7]
12244	mov	fp, r6
12245.L1642:
12246	ldrh	r3, [r6]
12247	cmp	r3, r4
12248	bhi	.L1643
12249	ldr	r6, .L1662+40
12250	sub	r3, r10, #2
12251	ldrh	r1, [r6]
12252	cmp	r3, r1, lsl #1
12253	bgt	.L1644
12254.L1648:
12255	movs	r4, #0
12256	mov	r8, r4
12257.L1645:
12258	ldrh	r3, [r7]
12259	uxth	r0, r4
12260	adds	r4, r4, #1
12261	cmp	r3, r0
12262	bhi	.L1649
12263	ldrh	r2, [fp]
12264	ldr	r3, .L1662+44
12265	ldrh	r4, [r6]
12266	ldr	r6, .L1662+48
12267	str	r2, [r3]
12268	ldr	r3, .L1662+52
12269	mov	r1, r4
12270	ldr	r7, .L1662+56
12271	ldr	r2, [r3]
12272	mov	r0, r2
12273	str	r2, [sp, #12]
12274	bl	__aeabi_uidiv
12275	ubfx	r10, r0, #5, #16
12276	mov	r3, r0
12277	add	r1, r10, #36
12278	str	r0, [r7]
12279	strh	r1, [r6]	@ movhi
12280	movs	r1, #24
12281	muls	r1, r4, r1
12282	cmp	r8, r1
12283	ble	.L1650
12284	ldr	r2, [sp, #12]
12285	mov	r1, r4
12286	str	r0, [sp, #8]
12287	sub	r0, r2, r8
12288	bl	__aeabi_uidiv
12289	ldr	r3, [sp, #8]
12290	str	r0, [r7]
12291	lsrs	r0, r0, #5
12292	adds	r0, r0, #24
12293	strh	r0, [r6]	@ movhi
12294.L1650:
12295	ldr	r2, .L1662+60
12296	ldrh	r2, [r2]
12297	cbz	r2, .L1652
12298	ldrh	r1, [r6]
12299	add	r1, r1, r2, lsr #1
12300	strh	r1, [r6]	@ movhi
12301	mul	r1, r4, r2
12302	cmp	r8, r1
12303	itttt	lt
12304	addlt	r2, r2, #32
12305	strlt	r3, [r7]
12306	addlt	r2, r2, r10
12307	strhlt	r2, [r6]	@ movhi
12308.L1652:
12309	ldrh	r2, [r6]
12310	ldr	r3, [r7]
12311	ldr	r6, .L1662+64
12312	subs	r3, r3, r2
12313	muls	r4, r3, r4
12314	ldr	r3, .L1662+68
12315	ldrh	r3, [r3]
12316	str	r4, [r6]
12317	muls	r4, r3, r4
12318	ldr	r3, [sp, #4]
12319	ldrh	r3, [r3]
12320	str	r4, [r7]
12321	ldr	r7, .L1662+72
12322	muls	r4, r3, r4
12323	ldr	r3, .L1662+76
12324	str	r4, [r3]
12325	bl	FtlBbmTblFlush
12326	ldrh	r2, [fp]
12327	movs	r1, #0
12328	ldr	r0, [r7]
12329	ldr	r4, .L1662+80
12330	lsls	r2, r2, #1
12331	mov	r10, r4
12332	bl	ftl_memset
12333	ldr	r2, .L1662+84
12334	movs	r3, #0
12335	movw	r1, #65535
12336	strh	r3, [r4, #2]	@ movhi
12337	mov	r8, r1
12338	strb	r3, [r4, #6]
12339	str	r3, [r2]
12340	ldr	r2, .L1662+88
12341	strh	r3, [r4]	@ movhi
12342	strh	r3, [r2, #2]	@ movhi
12343	strb	r3, [r2, #6]
12344	strb	r3, [r2, #8]
12345	movs	r3, #1
12346	strh	r1, [r2]	@ movhi
12347	strb	r3, [r4, #8]
12348.L1654:
12349	mov	r0, r10
12350	bl	make_superblock
12351	ldrb	r3, [r4, #7]	@ zero_extendqisi2
12352	ldrh	r2, [r4]
12353	cmp	r3, #0
12354	bne	.L1655
12355	ldr	r3, [r7]
12356	strh	r8, [r3, r2, lsl #1]	@ movhi
12357	ldrh	r3, [r4]
12358	adds	r3, r3, #1
12359	strh	r3, [r4]	@ movhi
12360	b	.L1654
12361.L1641:
12362	mvns	r0, r3
12363	orr	r0, r3, r0, lsl #16
12364	str	r0, [r4, r3, lsl #2]
12365	str	r7, [r6, r3, lsl #2]
12366	b	.L1640
12367.L1643:
12368	mov	r0, r4
12369	movs	r1, #1
12370	bl	FtlLowFormatEraseBlock
12371	adds	r4, r4, #1
12372	add	r10, r10, r0
12373	uxth	r10, r10
12374	uxth	r4, r4
12375	b	.L1642
12376.L1644:
12377	mov	r0, r10
12378	bl	__aeabi_uidiv
12379	ldr	r3, .L1662+92
12380	ldr	r3, [r3]
12381	add	r0, r0, r3
12382	uxth	r0, r0
12383	bl	FtlSysBlkNumInit
12384	ldrh	r0, [r8]
12385	bl	FtlFreeSysBlkQueueInit
12386	ldrh	r4, [r7]
12387.L1646:
12388	ldrh	r3, [fp]
12389	cmp	r3, r4
12390	bls	.L1648
12391	mov	r0, r4
12392	movs	r1, #1
12393	adds	r4, r4, #1
12394	bl	FtlLowFormatEraseBlock
12395	uxth	r4, r4
12396	b	.L1646
12397.L1649:
12398	movs	r1, #0
12399	bl	FtlLowFormatEraseBlock
12400	add	r8, r8, r0
12401	uxth	r8, r8
12402	b	.L1645
12403.L1655:
12404	ldr	r3, [r5]
12405	movw	r8, #65535
12406	ldrh	r1, [r4, #4]
12407	str	r3, [r4, #12]
12408	adds	r3, r3, #1
12409	str	r3, [r5]
12410	ldr	r3, [r7]
12411	strh	r1, [r3, r2, lsl #1]	@ movhi
12412	movs	r2, #0
12413	ldr	r3, .L1662+96
12414	strh	r2, [r3, #2]	@ movhi
12415	mov	r10, r3
12416	strb	r2, [r3, #6]
12417	ldrh	r2, [r4]
12418	mov	r4, r3
12419	adds	r2, r2, #1
12420	strh	r2, [r3]	@ movhi
12421	movs	r2, #1
12422	strb	r2, [r3, #8]
12423.L1656:
12424	mov	r0, r10
12425	bl	make_superblock
12426	ldrb	r3, [r4, #7]	@ zero_extendqisi2
12427	ldrh	r2, [r4]
12428	cbnz	r3, .L1657
12429	ldr	r3, [r7]
12430	strh	r8, [r3, r2, lsl #1]	@ movhi
12431	ldrh	r3, [r4]
12432	adds	r3, r3, #1
12433	strh	r3, [r4]	@ movhi
12434	b	.L1656
12435.L1657:
12436	ldr	r3, [r5]
12437	ldrh	r1, [r4, #4]
12438	str	r3, [r4, #12]
12439	adds	r3, r3, #1
12440	str	r3, [r5]
12441	movw	r4, #65535
12442	ldr	r3, [r7]
12443	strh	r1, [r3, r2, lsl #1]	@ movhi
12444	ldr	r3, .L1662+100
12445	strh	r4, [r3]	@ movhi
12446	bl	FtlFreeSysBlkQueueOut
12447	ldr	r3, .L1662+104
12448	movs	r2, #0
12449	strh	r2, [r3, #2]	@ movhi
12450	ldr	r2, [r6]
12451	strh	r0, [r3]	@ movhi
12452	strh	r4, [r3, #4]	@ movhi
12453	strh	r2, [r3, #6]	@ movhi
12454	ldr	r2, [r5]
12455	str	r2, [r3, #8]
12456	adds	r2, r2, #1
12457	str	r2, [r5]
12458	bl	FtlVpcTblFlush
12459	bl	FtlSysBlkInit
12460	cbnz	r0, .L1658
12461	ldr	r3, .L1662+108
12462	movs	r2, #1
12463	str	r2, [r3]
12464.L1658:
12465	movs	r0, #0
12466	add	sp, sp, #16
12467	@ sp needed
12468	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12469.L1663:
12470	.align	2
12471.L1662:
12472	.word	.LANCHOR82
12473	.word	.LANCHOR3
12474	.word	.LANCHOR81
12475	.word	.LANCHOR142
12476	.word	.LANCHOR11
12477	.word	.LANCHOR108
12478	.word	168778952
12479	.word	.LANCHOR109
12480	.word	.LANCHOR4
12481	.word	.LANCHOR5
12482	.word	.LANCHOR2
12483	.word	.LANCHOR98
12484	.word	.LANCHOR170
12485	.word	.LANCHOR6
12486	.word	.LANCHOR151
12487	.word	.LANCHOR14
12488	.word	.LANCHOR178
12489	.word	.LANCHOR18
12490	.word	.LANCHOR41
12491	.word	.LANCHOR33
12492	.word	.LANCHOR50
12493	.word	.LANCHOR58
12494	.word	.LANCHOR144
12495	.word	.LANCHOR30
12496	.word	.LANCHOR51
12497	.word	.LANCHOR52
12498	.word	.LANCHOR138
12499	.word	.LANCHOR165
12500	.size	ftl_low_format, .-ftl_low_format
12501	.section	.text.sftl_init,"ax",%progbits
12502	.align	1
12503	.global	sftl_init
12504	.syntax unified
12505	.thumb
12506	.thumb_func
12507	.fpu softvfp
12508	.type	sftl_init, %function
12509sftl_init:
12510	@ args = 0, pretend = 0, frame = 0
12511	@ frame_needed = 0, uses_anonymous_args = 0
12512	push	{r4, r5, r6, lr}
12513	mov	r3, #-1
12514	ldr	r4, .L1676
12515	movs	r6, #0
12516	ldr	r1, .L1676+4
12517	ldr	r0, .L1676+8
12518	str	r3, [r4]
12519	bl	printf
12520	ldr	r0, .L1676+12
12521	bl	FtlConstantsInit
12522	ldr	r5, .L1676+16
12523	bl	FtlMemInit
12524	bl	FtlVariablesInit
12525	ldr	r3, .L1676+20
12526	ldrh	r0, [r3]
12527	bl	FtlFreeSysBlkQueueInit
12528.L1665:
12529	bl	FtlLoadBbt
12530	cbz	r0, .L1666
12531.L1675:
12532	ldr	r3, [r5]
12533	cmp	r3, #1
12534	bne	.L1665
12535	str	r6, [r5]
12536	bl	ftl_low_format
12537	b	.L1665
12538.L1666:
12539	bl	FtlSysBlkInit
12540	cmp	r0, #0
12541	bne	.L1675
12542	movs	r3, #1
12543	str	r3, [r4]
12544	pop	{r4, r5, r6, pc}
12545.L1677:
12546	.align	2
12547.L1676:
12548	.word	.LANCHOR165
12549	.word	.LC49
12550	.word	.LC38
12551	.word	.LANCHOR0
12552	.word	.LANCHOR180
12553	.word	.LANCHOR3
12554	.size	sftl_init, .-sftl_init
12555	.section	.text.FtlWriteToIDB,"ax",%progbits
12556	.align	1
12557	.global	FtlWriteToIDB
12558	.syntax unified
12559	.thumb
12560	.thumb_func
12561	.fpu softvfp
12562	.type	FtlWriteToIDB, %function
12563FtlWriteToIDB:
12564	@ args = 0, pretend = 0, frame = 96
12565	@ frame_needed = 0, uses_anonymous_args = 0
12566	push	{r4, r5, r6, r7, r8, r10, fp, lr}
12567	adds	r7, r1, r0
12568	add	r8, r7, #-1
12569	sub	sp, sp, #104
12570	cmp	r8, #63
12571	mov	r4, r0
12572	mov	r5, r1
12573	mov	r6, r2
12574	ldr	r10, .L1746+16
12575	bls	.L1679
12576	cmp	r0, #576
12577	bcc	.L1680
12578.L1679:
12579	ldr	r3, [r10]
12580	cbnz	r3, .L1681
12581.L1745:
12582	movs	r4, #0
12583	b	.L1678
12584.L1681:
12585	ldr	r3, .L1746
12586	ldr	fp, [r3]
12587	ldr	r3, .L1746+4
12588	ldr	r2, [fp]
12589	cmp	r2, r3
12590	bne	.L1683
12591	ldr	r3, .L1746+8
12592	add	r0, fp, #260096
12593	movs	r2, #0
12594	ldrh	r1, [r3, #10]
12595	movw	r3, #65023
12596.L1687:
12597	ldr	r4, [r0, #-4]!
12598	cbnz	r4, .L1684
12599	ldr	r4, [fp, r2, lsl #2]
12600	adds	r2, r2, #1
12601	cmp	r2, #4096
12602	add	r3, r3, #-1
12603	it	hi
12604	movhi	r2, #0
12605	cmp	r3, #4096
12606	str	r4, [r0, #2048]
12607	bne	.L1687
12608	mov	r3, #512
12609	b	.L1742
12610.L1684:
12611	adds	r3, r3, #127
12612	lsrs	r3, r3, #7
12613.L1742:
12614	str	r3, [sp, #8]
12615	lsls	r1, r1, #2
12616	ldr	r3, [sp, #8]
12617	uxth	r1, r1
12618	adds	r0, r3, #4
12619	bl	__aeabi_uidiv
12620	adds	r3, r0, #1
12621	ldr	r1, [sp, #8]
12622	mov	r2, r3
12623	ldr	r0, .L1746+12
12624	str	r3, [sp, #16]
12625	bl	printf
12626	ldr	r3, [sp, #8]
12627	lsls	r3, r3, #7
12628	str	r3, [sp, #32]
12629	movs	r3, #0
12630	str	r3, [sp, #20]
12631.L1744:
12632	str	r3, [sp, #12]
12633	ldr	r2, [sp, #12]
12634	ldr	r3, [sp, #16]
12635	add	r3, r3, r2
12636	cmp	r3, #8
12637	str	r3, [sp, #28]
12638	bls	.L1710
12639	ldr	r3, [sp, #20]
12640	cbnz	r3, .L1711
12641.L1683:
12642	mov	r3, #-1
12643	str	r3, [sp, #8]
12644.L1711:
12645	ldr	r3, .L1746+16
12646	movs	r2, #0
12647	ldr	r4, [sp, #8]
12648	str	r2, [r3]
12649	ldr	r3, .L1746
12650	ldr	r0, [r3]
12651	bl	free
12652	ldr	r3, .L1746+20
12653	ldr	r0, [r3]
12654	bl	free
12655.L1678:
12656	mov	r0, r4
12657	add	sp, sp, #104
12658	@ sp needed
12659	pop	{r4, r5, r6, r7, r8, r10, fp, pc}
12660.L1710:
12661	ldr	r3, .L1746+20
12662	mov	r2, #512
12663	movs	r1, #0
12664	ldr	r0, [r3]
12665	bl	memset
12666	ldr	r3, .L1746+8
12667	ldrh	r5, [r3, #10]
12668	ldr	r3, [sp, #12]
12669	muls	r3, r5, r3
12670	str	r3, [sp, #24]
12671	ldr	r3, .L1746+24
12672	ldr	r2, [r3, #16]
12673	cmp	r2, #0
12674	beq	.L1718
12675	ldr	r3, [r3, #20]
12676	cmp	r3, #0
12677	ite	eq
12678	moveq	r6, #6
12679	movne	r6, #9
12680.L1689:
12681	ldr	r7, [sp, #24]
12682	movs	r4, #0
12683	ldr	r8, .L1746+24
12684.L1690:
12685	mov	r1, r7
12686	ldr	r3, [r8, #4]
12687	movs	r0, #0
12688	adds	r4, r4, #1
12689	blx	r3
12690	ldr	r3, [sp, #16]
12691	add	r7, r7, r5
12692	cmp	r3, r4
12693	bhi	.L1690
12694	cmp	r6, #9
12695	bne	.L1720
12696	ldr	r3, .L1746+20
12697	mov	r2, #1024
12698	movs	r1, #0
12699	ldr	r4, [r3]
12700	mov	r0, r4
12701	bl	ftl_memset
12702	movs	r2, #4
12703	ldr	r3, .L1746+28
12704	strb	r2, [r4, #17]
12705	movs	r1, #12
12706	ldr	r2, .L1746+8
12707	adds	r0, r4, r1
12708	str	r3, [r4]
12709	movs	r3, #0
12710	str	r1, [r4, #4]
12711	ldrh	r2, [r2, #10]
12712	str	r3, [r4, #12]
12713	strb	r3, [r4, #16]
12714	strh	r2, [r4, #18]	@ movhi
12715	movs	r2, #16
12716	strb	r3, [r4, #20]
12717	strb	r2, [r4, #21]
12718	strh	r3, [r4, #22]	@ movhi
12719	bl	js_hash
12720	str	r0, [r4, #8]
12721.L1691:
12722	ldr	r3, [sp, #16]
12723	mov	r10, fp
12724	ldr	r8, .L1746+24
12725	muls	r3, r5, r3
12726	movs	r5, #0
12727	str	r3, [sp, #36]
12728.L1692:
12729	ldr	r3, [sp, #36]
12730	cmp	r5, r3
12731	beq	.L1699
12732	cmp	r6, #9
12733	ite	ne
12734	lslne	r3, r5, #2
12735	addeq	r3, r5, #1
12736	str	r3, [sp, #40]
12737	movw	r3, #61424
12738	str	r3, [sp, #44]
12739	cmp	r5, #0
12740	bne	.L1695
12741	cmp	r6, #9
12742	bne	.L1695
12743	ldr	r3, [r8, #16]
12744	movs	r0, #70
12745	blx	r3
12746	ldr	r7, [r8, #8]
12747	add	r3, sp, #40
12748	mov	r2, r4
12749	ldr	r1, [sp, #24]
12750	mov	r0, r5
12751	blx	r7
12752	ldr	r2, .L1746+8
12753	mov	r7, r0
12754	ldr	r3, [r8, #16]
12755	ldrb	r0, [r2, #22]	@ zero_extendqisi2
12756	blx	r3
12757	adds	r7, r7, #1
12758	bne	.L1696
12759.L1699:
12760	ldr	r3, .L1746+20
12761	ldr	r7, [r3]
12762	ldr	r3, .L1746+8
12763	ldrb	r2, [r3, #14]	@ zero_extendqisi2
12764	ldrh	r3, [r3, #10]
12765	str	r2, [sp, #24]
12766	ldr	r2, [sp, #12]
12767	mul	r10, r3, r2
12768	ldr	r2, .L1746+24
12769	ldr	r1, [r2, #16]
12770	cmp	r1, #0
12771	bne	.L1697
12772	mov	r8, #6
12773.L1698:
12774	ldr	r2, [sp, #16]
12775	movs	r4, #0
12776	ldr	r5, .L1746+24
12777	muls	r3, r2, r3
12778	str	r3, [sp, #36]
12779.L1701:
12780	ldr	r3, [sp, #36]
12781	cmp	r4, r3
12782	beq	.L1705
12783	cmp	r4, #0
12784	bne	.L1702
12785	cmp	r8, #9
12786	bne	.L1702
12787	ldr	r3, [r5, #16]
12788	movs	r0, #70
12789	blx	r3
12790	ldr	r3, [r5, #20]
12791	movs	r0, #2
12792	blx	r3
12793	mov	r2, r7
12794	mov	r1, r10
12795	add	r3, sp, #40
12796	mov	r0, r4
12797	ldr	r6, [r5, #12]
12798	blx	r6
12799	ldr	r3, [r5, #20]
12800	ldr	r0, [sp, #24]
12801	blx	r3
12802	ldr	r2, .L1746+8
12803	ldr	r3, [r5, #16]
12804	ldrb	r0, [r2, #22]	@ zero_extendqisi2
12805	blx	r3
12806	ldr	r3, [r7]
12807	ldr	r2, .L1746+28
12808	cmp	r3, r2
12809	beq	.L1703
12810.L1705:
12811	ldr	r3, .L1746+20
12812	mov	r1, fp
12813	movs	r4, #0
12814	ldr	r0, [r3]
12815.L1704:
12816	mov	r6, r1
12817	ldr	r2, [r0, r4, lsl #2]
12818	ldr	r3, [r6]
12819	lsls	r5, r4, #2
12820	adds	r1, r1, #4
12821	cmp	r2, r3
12822	beq	.L1707
12823	mov	r2, #512
12824	movs	r1, #0
12825	bl	memset
12826	ldr	r3, .L1746+20
12827	ldr	r1, [sp, #12]
12828	ldr	r0, .L1746+32
12829	ldr	r2, [r3]
12830	str	r4, [sp]
12831	ldr	r3, [r6]
12832	ldr	r2, [r2, r5]
12833	bl	printf
12834	ldr	r3, .L1746+8
12835	movs	r0, #0
12836	ldr	r2, [sp, #12]
12837	ldrh	r1, [r3, #10]
12838	ldr	r3, .L1746+24
12839	muls	r2, r1, r2
12840	ldr	r3, [r3, #4]
12841	mov	r1, r2
12842	blx	r3
12843.L1708:
12844	ldr	r3, [sp, #28]
12845	b	.L1744
12846.L1718:
12847	movs	r6, #6
12848	b	.L1689
12849.L1720:
12850	movs	r4, #0
12851	b	.L1691
12852.L1695:
12853	ldr	r1, [sp, #24]
12854	add	r3, sp, #40
12855	ldr	r7, [r8, #8]
12856	mov	r2, r10
12857	movs	r0, #0
12858	add	r1, r1, r5
12859	blx	r7
12860	adds	r0, r0, #1
12861	beq	.L1699
12862	add	r10, r10, #2048
12863.L1696:
12864	adds	r5, r5, #1
12865	b	.L1692
12866.L1697:
12867	ldr	r2, [r2, #20]
12868	cmp	r2, #0
12869	ite	eq
12870	moveq	r8, #6
12871	movne	r8, #9
12872	b	.L1698
12873.L1702:
12874	add	r3, sp, #40
12875	mov	r2, r7
12876	add	r1, r10, r4
12877	movs	r0, #0
12878	ldr	r6, [r5, #12]
12879	blx	r6
12880	adds	r0, r0, #1
12881	beq	.L1705
12882	ldr	r2, [sp, #44]
12883	movw	r3, #61424
12884	cmp	r2, r3
12885	bne	.L1705
12886	add	r7, r7, #2048
12887.L1703:
12888	adds	r4, r4, #1
12889	b	.L1701
12890.L1707:
12891	ldr	r3, [sp, #32]
12892	adds	r4, r4, #1
12893	cmp	r4, r3
12894	bne	.L1704
12895	ldr	r3, [sp, #20]
12896	adds	r3, r3, #1
12897	cmp	r3, #5
12898	str	r3, [sp, #20]
12899	bls	.L1708
12900	b	.L1711
12901.L1747:
12902	.align	2
12903.L1746:
12904	.word	.LANCHOR182
12905	.word	-52655045
12906	.word	.LANCHOR0
12907	.word	.LC50
12908	.word	.LANCHOR181
12909	.word	.LANCHOR183
12910	.word	.LANCHOR77
12911	.word	1179535694
12912	.word	.LC51
12913.L1680:
12914	cmp	r0, #64
12915	bne	.L1712
12916	ldr	fp, .L1748+4
12917	mov	r0, #262144
12918	bl	ftl_malloc
12919	str	r0, [fp]
12920	mov	r0, #262144
12921	bl	ftl_malloc
12922	ldr	r3, .L1748
12923	str	r0, [r3]
12924	ldr	r3, [fp]
12925	cbz	r3, .L1713
12926	cbz	r0, .L1713
12927	movs	r2, #1
12928	movs	r1, #0
12929	str	r2, [r10]
12930	mov	r0, r3
12931	mov	r2, #262144
12932	bl	ftl_memset
12933.L1712:
12934	ldr	r3, [r10]
12935	cmp	r3, #0
12936	beq	.L1745
12937	ldr	r3, .L1748+4
12938	cmp	r4, #63
12939	itett	ls
12940	rsbls	r1, r4, #64
12941	movhi	r1, r6
12942	subls	r5, r5, r1
12943	addls	r1, r6, r1, lsl #9
12944	ldr	r0, [r3]
12945	ittt	hi
12946	ldrhi	r3, .L1748+8
12947	addhi	r3, r3, r4
12948	addhi	r0, r0, r3, lsl #9
12949	cmp	r8, #576
12950	itt	cs
12951	subcs	r5, r5, r7
12952	subcs	r5, r5, #446
12953	lsls	r2, r5, #9
12954	bl	ftl_memcpy
12955	b	.L1745
12956.L1713:
12957	ldr	r1, .L1748+12
12958	ldr	r0, .L1748+16
12959	bl	printf
12960	b	.L1712
12961.L1749:
12962	.align	2
12963.L1748:
12964	.word	.LANCHOR183
12965	.word	.LANCHOR182
12966	.word	8388544
12967	.word	.LANCHOR184
12968	.word	.LC52
12969	.size	FtlWriteToIDB, .-FtlWriteToIDB
12970	.section	.text.sftl_write,"ax",%progbits
12971	.align	1
12972	.global	sftl_write
12973	.syntax unified
12974	.thumb
12975	.thumb_func
12976	.fpu softvfp
12977	.type	sftl_write, %function
12978sftl_write:
12979	@ args = 0, pretend = 0, frame = 0
12980	@ frame_needed = 0, uses_anonymous_args = 0
12981	push	{r4, r5, r6, lr}
12982	mov	r6, r0
12983	mov	r4, r1
12984	mov	r5, r2
12985	add	r6, r6, r4
12986	bl	FtlWriteToIDB
12987.L1751:
12988	cmp	r4, #256
12989	sub	r1, r6, r4
12990	mov	r3, r5
12991	bhi	.L1753
12992	mov	r2, r4
12993	movs	r0, #0
12994	pop	{r4, r5, r6, lr}
12995	b	FtlWrite
12996.L1753:
12997	mov	r2, #256
12998	movs	r0, #0
12999	bl	FtlWrite
13000	cbnz	r0, .L1750
13001	add	r5, r5, #131072
13002	sub	r4, r4, #256
13003	b	.L1751
13004.L1750:
13005	pop	{r4, r5, r6, pc}
13006	.size	sftl_write, .-sftl_write
13007	.global	g_nand_ops
13008	.global	g_nand_phy_info
13009	.global	gc_ink_free_return_value
13010	.global	check_vpc_table
13011	.global	FtlUpdateVaildLpnCount
13012	.global	g_ect_tbl_power_up_flush
13013	.global	power_up_flag
13014	.global	low_format_en
13015	.global	gFtlInitStatus
13016	.global	DeviceCapacity
13017	.global	g_power_lost_recovery_flag
13018	.global	c_mlc_erase_count_value
13019	.global	g_recovery_ppa_tbl
13020	.global	g_recovery_page_min_ver
13021	.global	g_recovery_page_num
13022	.global	sftl_nand_check_spare_buf
13023	.global	sftl_temp_buf
13024	.global	sftl_nand_check_buf
13025	.global	g_cur_erase_blk
13026	.global	g_gc_skip_write_count
13027	.global	g_gc_head_data_block_count
13028	.global	g_gc_head_data_block
13029	.global	g_ftl_nand_free_count
13030	.global	g_in_swl_replace
13031	.global	g_in_gc_progress
13032	.global	g_max_erase_count
13033	.global	g_totle_sys_slc_erase_count
13034	.global	g_totle_slc_erase_count
13035	.global	g_min_erase_count
13036	.global	g_totle_avg_erase_count
13037	.global	g_totle_mlc_erase_count
13038	.global	g_totle_l2p_write_count
13039	.global	g_totle_cache_write_count
13040	.global	g_tmp_data_superblock_id
13041	.global	g_totle_read_page_count
13042	.global	g_totle_discard_page_count
13043	.global	g_totle_read_sector
13044	.global	g_totle_write_sector
13045	.global	g_totle_write_page_count
13046	.global	g_totle_gc_page_count
13047	.global	g_gc_blk_index
13048	.global	g_gc_merge_free_blk_threshold
13049	.global	g_gc_free_blk_threshold
13050	.global	g_gc_bad_block_temp_tbl
13051	.global	g_gc_bad_block_gc_index
13052	.global	g_gc_bad_block_temp_num
13053	.global	g_gc_next_blk_1
13054	.global	g_gc_next_blk
13055	.global	g_gc_cur_blk_max_valid_pages
13056	.global	g_gc_cur_blk_valid_pages
13057	.global	g_gc_page_offset
13058	.global	g_gc_blk_num
13059	.global	p_gc_blk_tbl
13060	.global	p_gc_page_info
13061	.global	g_sys_ext_data
13062	.global	g_sys_save_data
13063	.global	gp_last_act_superblock
13064	.global	g_gc_superblock
13065	.global	g_gc_temp_superblock
13066	.global	g_buffer_superblock
13067	.global	g_active_superblock
13068	.global	g_num_data_superblocks
13069	.global	g_num_free_superblocks
13070	.global	p_data_block_list_tail
13071	.global	p_data_block_list_head
13072	.global	p_free_data_block_list_head
13073	.global	p_data_block_list_table
13074	.global	g_l2p_last_update_region_id
13075	.global	p_l2p_map_buf
13076	.global	p_l2p_ram_map
13077	.global	g_totle_vendor_block
13078	.global	p_vendor_region_ppn_table
13079	.global	p_vendor_block_ver_table
13080	.global	p_vendor_block_valid_page_count
13081	.global	p_vendor_block_table
13082	.global	g_totle_map_block
13083	.global	p_map_region_ppn_table
13084	.global	p_map_block_ver_table
13085	.global	p_map_block_valid_page_count
13086	.global	p_map_block_table
13087	.global	p_valid_page_count_check_table
13088	.global	p_valid_page_count_table
13089	.global	g_totle_swl_count
13090	.global	p_swl_mul_table
13091	.global	p_erase_count_table
13092	.global	g_ect_tbl_info_size
13093	.global	gp_ect_tbl_info
13094	.global	g_gc_num_req
13095	.global	c_gc_page_buf_num
13096	.global	gp_gc_page_buf_info
13097	.global	p_gc_data_buf
13098	.global	p_gc_spare_buf
13099	.global	p_io_spare_buf
13100	.global	p_io_data_buf_1
13101	.global	p_io_data_buf_0
13102	.global	p_sys_spare_buf
13103	.global	p_vendor_data_buf
13104	.global	p_sys_data_buf_1
13105	.global	p_sys_data_buf
13106	.global	p_plane_order_table
13107	.global	req_gc_dst
13108	.global	req_gc
13109	.global	req_erase
13110	.global	req_prgm
13111	.global	req_read
13112	.global	req_sys
13113	.global	gVendorBlkInfo
13114	.global	gL2pMapInfo
13115	.global	gSysFreeQueue
13116	.global	gSysInfo
13117	.global	gBbtInfo
13118	.global	g_MaxLbn
13119	.global	g_VaildLpn
13120	.global	g_MaxLpn
13121	.global	g_MaxLbaSector
13122	.global	g_GlobalDataVersion
13123	.global	g_GlobalSysVersion
13124	.global	ftl_gc_temp_power_lost_recovery_flag
13125	.global	c_ftl_nand_max_data_blks
13126	.global	c_ftl_nand_data_op_blks_per_plane
13127	.global	c_ftl_nand_data_blks_per_plane
13128	.global	c_ftl_nand_max_sys_blks
13129	.global	c_ftl_nand_init_sys_blks_per_plane
13130	.global	c_ftl_nand_sys_blks_per_plane
13131	.global	c_ftl_vendor_part_size
13132	.global	c_ftl_nand_max_vendor_blks
13133	.global	c_ftl_nand_max_map_blks
13134	.global	c_ftl_nand_map_blks_per_plane
13135	.global	c_ftl_nand_vendor_region_num
13136	.global	c_ftl_nand_l2pmap_ram_region_num
13137	.global	c_ftl_nand_map_region_num
13138	.global	c_ftl_nand_totle_phy_blks
13139	.global	c_ftl_nand_reserved_blks
13140	.global	c_ftl_nand_byte_pre_oob
13141	.global	c_ftl_nand_byte_pre_page
13142	.global	c_ftl_nand_sec_pre_page_shift
13143	.global	c_ftl_nand_sec_pre_page
13144	.global	c_ftl_nand_page_pre_super_blk
13145	.global	c_ftl_nand_page_pre_slc_blk
13146	.global	c_ftl_nand_page_pre_blk
13147	.global	c_ftl_nand_bbm_buf_size
13148	.global	c_ftl_nand_ext_blk_pre_plane
13149	.global	c_ftl_nand_blk_pre_plane
13150	.global	c_ftl_nand_planes_num
13151	.global	c_ftl_nand_blks_per_die_shift
13152	.global	c_ftl_nand_blks_per_die
13153	.global	c_ftl_nand_planes_per_die
13154	.global	c_ftl_nand_die_num
13155	.global	c_ftl_nand_type
13156	.section	.bss.DeviceCapacity,"aw",%nobits
13157	.align	2
13158	.set	.LANCHOR25,. + 0
13159	.type	DeviceCapacity, %object
13160	.size	DeviceCapacity, 4
13161DeviceCapacity:
13162	.space	4
13163	.section	.bss.FtlUpdateVaildLpnCount,"aw",%nobits
13164	.align	1
13165	.set	.LANCHOR57,. + 0
13166	.type	FtlUpdateVaildLpnCount, %object
13167	.size	FtlUpdateVaildLpnCount, 2
13168FtlUpdateVaildLpnCount:
13169	.space	2
13170	.section	.bss.c_ftl_nand_bbm_buf_size,"aw",%nobits
13171	.align	1
13172	.set	.LANCHOR126,. + 0
13173	.type	c_ftl_nand_bbm_buf_size, %object
13174	.size	c_ftl_nand_bbm_buf_size, 2
13175c_ftl_nand_bbm_buf_size:
13176	.space	2
13177	.section	.bss.c_ftl_nand_blk_pre_plane,"aw",%nobits
13178	.align	1
13179	.set	.LANCHOR5,. + 0
13180	.type	c_ftl_nand_blk_pre_plane, %object
13181	.size	c_ftl_nand_blk_pre_plane, 2
13182c_ftl_nand_blk_pre_plane:
13183	.space	2
13184	.section	.bss.c_ftl_nand_blks_per_die,"aw",%nobits
13185	.align	1
13186	.set	.LANCHOR16,. + 0
13187	.type	c_ftl_nand_blks_per_die, %object
13188	.size	c_ftl_nand_blks_per_die, 2
13189c_ftl_nand_blks_per_die:
13190	.space	2
13191	.section	.bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits
13192	.align	1
13193	.set	.LANCHOR17,. + 0
13194	.type	c_ftl_nand_blks_per_die_shift, %object
13195	.size	c_ftl_nand_blks_per_die_shift, 2
13196c_ftl_nand_blks_per_die_shift:
13197	.space	2
13198	.section	.bss.c_ftl_nand_byte_pre_oob,"aw",%nobits
13199	.align	1
13200	.set	.LANCHOR23,. + 0
13201	.type	c_ftl_nand_byte_pre_oob, %object
13202	.size	c_ftl_nand_byte_pre_oob, 2
13203c_ftl_nand_byte_pre_oob:
13204	.space	2
13205	.section	.bss.c_ftl_nand_byte_pre_page,"aw",%nobits
13206	.align	1
13207	.set	.LANCHOR22,. + 0
13208	.type	c_ftl_nand_byte_pre_page, %object
13209	.size	c_ftl_nand_byte_pre_page, 2
13210c_ftl_nand_byte_pre_page:
13211	.space	2
13212	.section	.bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits
13213	.align	1
13214	.set	.LANCHOR4,. + 0
13215	.type	c_ftl_nand_data_blks_per_plane, %object
13216	.size	c_ftl_nand_data_blks_per_plane, 2
13217c_ftl_nand_data_blks_per_plane:
13218	.space	2
13219	.section	.bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits
13220	.align	1
13221	.set	.LANCHOR170,. + 0
13222	.type	c_ftl_nand_data_op_blks_per_plane, %object
13223	.size	c_ftl_nand_data_op_blks_per_plane, 2
13224c_ftl_nand_data_op_blks_per_plane:
13225	.space	2
13226	.section	.bss.c_ftl_nand_die_num,"aw",%nobits
13227	.align	1
13228	.set	.LANCHOR9,. + 0
13229	.type	c_ftl_nand_die_num, %object
13230	.size	c_ftl_nand_die_num, 2
13231c_ftl_nand_die_num:
13232	.space	2
13233	.section	.bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits
13234	.align	1
13235	.set	.LANCHOR14,. + 0
13236	.type	c_ftl_nand_ext_blk_pre_plane, %object
13237	.size	c_ftl_nand_ext_blk_pre_plane, 2
13238c_ftl_nand_ext_blk_pre_plane:
13239	.space	2
13240	.section	.bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits
13241	.align	2
13242	.set	.LANCHOR30,. + 0
13243	.type	c_ftl_nand_init_sys_blks_per_plane, %object
13244	.size	c_ftl_nand_init_sys_blks_per_plane, 4
13245c_ftl_nand_init_sys_blks_per_plane:
13246	.space	4
13247	.section	.bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits
13248	.align	1
13249	.set	.LANCHOR32,. + 0
13250	.type	c_ftl_nand_l2pmap_ram_region_num, %object
13251	.size	c_ftl_nand_l2pmap_ram_region_num, 2
13252c_ftl_nand_l2pmap_ram_region_num:
13253	.space	2
13254	.section	.bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits
13255	.align	1
13256	.set	.LANCHOR28,. + 0
13257	.type	c_ftl_nand_map_blks_per_plane, %object
13258	.size	c_ftl_nand_map_blks_per_plane, 2
13259c_ftl_nand_map_blks_per_plane:
13260	.space	2
13261	.section	.bss.c_ftl_nand_map_region_num,"aw",%nobits
13262	.align	1
13263	.set	.LANCHOR31,. + 0
13264	.type	c_ftl_nand_map_region_num, %object
13265	.size	c_ftl_nand_map_region_num, 2
13266c_ftl_nand_map_region_num:
13267	.space	2
13268	.section	.bss.c_ftl_nand_max_data_blks,"aw",%nobits
13269	.align	2
13270	.set	.LANCHOR6,. + 0
13271	.type	c_ftl_nand_max_data_blks, %object
13272	.size	c_ftl_nand_max_data_blks, 4
13273c_ftl_nand_max_data_blks:
13274	.space	4
13275	.section	.bss.c_ftl_nand_max_map_blks,"aw",%nobits
13276	.align	2
13277	.set	.LANCHOR29,. + 0
13278	.type	c_ftl_nand_max_map_blks, %object
13279	.size	c_ftl_nand_max_map_blks, 4
13280c_ftl_nand_max_map_blks:
13281	.space	4
13282	.section	.bss.c_ftl_nand_max_sys_blks,"aw",%nobits
13283	.align	2
13284	.set	.LANCHOR3,. + 0
13285	.type	c_ftl_nand_max_sys_blks, %object
13286	.size	c_ftl_nand_max_sys_blks, 4
13287c_ftl_nand_max_sys_blks:
13288	.space	4
13289	.section	.bss.c_ftl_nand_max_vendor_blks,"aw",%nobits
13290	.align	1
13291	.set	.LANCHOR26,. + 0
13292	.type	c_ftl_nand_max_vendor_blks, %object
13293	.size	c_ftl_nand_max_vendor_blks, 2
13294c_ftl_nand_max_vendor_blks:
13295	.space	2
13296	.section	.bss.c_ftl_nand_page_pre_blk,"aw",%nobits
13297	.align	1
13298	.set	.LANCHOR18,. + 0
13299	.type	c_ftl_nand_page_pre_blk, %object
13300	.size	c_ftl_nand_page_pre_blk, 2
13301c_ftl_nand_page_pre_blk:
13302	.space	2
13303	.section	.bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits
13304	.align	1
13305	.set	.LANCHOR19,. + 0
13306	.type	c_ftl_nand_page_pre_slc_blk, %object
13307	.size	c_ftl_nand_page_pre_slc_blk, 2
13308c_ftl_nand_page_pre_slc_blk:
13309	.space	2
13310	.section	.bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits
13311	.align	1
13312	.set	.LANCHOR20,. + 0
13313	.type	c_ftl_nand_page_pre_super_blk, %object
13314	.size	c_ftl_nand_page_pre_super_blk, 2
13315c_ftl_nand_page_pre_super_blk:
13316	.space	2
13317	.section	.bss.c_ftl_nand_planes_num,"aw",%nobits
13318	.align	1
13319	.set	.LANCHOR2,. + 0
13320	.type	c_ftl_nand_planes_num, %object
13321	.size	c_ftl_nand_planes_num, 2
13322c_ftl_nand_planes_num:
13323	.space	2
13324	.section	.bss.c_ftl_nand_planes_per_die,"aw",%nobits
13325	.align	1
13326	.set	.LANCHOR10,. + 0
13327	.type	c_ftl_nand_planes_per_die, %object
13328	.size	c_ftl_nand_planes_per_die, 2
13329c_ftl_nand_planes_per_die:
13330	.space	2
13331	.section	.bss.c_ftl_nand_reserved_blks,"aw",%nobits
13332	.align	1
13333	.set	.LANCHOR24,. + 0
13334	.type	c_ftl_nand_reserved_blks, %object
13335	.size	c_ftl_nand_reserved_blks, 2
13336c_ftl_nand_reserved_blks:
13337	.space	2
13338	.section	.bss.c_ftl_nand_sec_pre_page,"aw",%nobits
13339	.align	1
13340	.set	.LANCHOR11,. + 0
13341	.type	c_ftl_nand_sec_pre_page, %object
13342	.size	c_ftl_nand_sec_pre_page, 2
13343c_ftl_nand_sec_pre_page:
13344	.space	2
13345	.section	.bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits
13346	.align	1
13347	.set	.LANCHOR21,. + 0
13348	.type	c_ftl_nand_sec_pre_page_shift, %object
13349	.size	c_ftl_nand_sec_pre_page_shift, 2
13350c_ftl_nand_sec_pre_page_shift:
13351	.space	2
13352	.section	.bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits
13353	.align	2
13354	.set	.LANCHOR1,. + 0
13355	.type	c_ftl_nand_sys_blks_per_plane, %object
13356	.size	c_ftl_nand_sys_blks_per_plane, 4
13357c_ftl_nand_sys_blks_per_plane:
13358	.space	4
13359	.section	.bss.c_ftl_nand_totle_phy_blks,"aw",%nobits
13360	.align	2
13361	.set	.LANCHOR7,. + 0
13362	.type	c_ftl_nand_totle_phy_blks, %object
13363	.size	c_ftl_nand_totle_phy_blks, 4
13364c_ftl_nand_totle_phy_blks:
13365	.space	4
13366	.section	.bss.c_ftl_nand_type,"aw",%nobits
13367	.align	1
13368	.set	.LANCHOR8,. + 0
13369	.type	c_ftl_nand_type, %object
13370	.size	c_ftl_nand_type, 2
13371c_ftl_nand_type:
13372	.space	2
13373	.section	.bss.c_ftl_nand_vendor_region_num,"aw",%nobits
13374	.align	1
13375	.set	.LANCHOR27,. + 0
13376	.type	c_ftl_nand_vendor_region_num, %object
13377	.size	c_ftl_nand_vendor_region_num, 2
13378c_ftl_nand_vendor_region_num:
13379	.space	2
13380	.section	.bss.c_ftl_vendor_part_size,"aw",%nobits
13381	.align	1
13382	.set	.LANCHOR15,. + 0
13383	.type	c_ftl_vendor_part_size, %object
13384	.size	c_ftl_vendor_part_size, 2
13385c_ftl_vendor_part_size:
13386	.space	2
13387	.section	.bss.c_gc_page_buf_num,"aw",%nobits
13388	.align	2
13389	.set	.LANCHOR66,. + 0
13390	.type	c_gc_page_buf_num, %object
13391	.size	c_gc_page_buf_num, 4
13392c_gc_page_buf_num:
13393	.space	4
13394	.section	.bss.c_mlc_erase_count_value,"aw",%nobits
13395	.align	1
13396	.set	.LANCHOR13,. + 0
13397	.type	c_mlc_erase_count_value, %object
13398	.size	c_mlc_erase_count_value, 2
13399c_mlc_erase_count_value:
13400	.space	2
13401	.section	.bss.check_vpc_table,"aw",%nobits
13402	.align	1
13403	.type	check_vpc_table, %object
13404	.size	check_vpc_table, 16384
13405check_vpc_table:
13406	.space	16384
13407	.section	.bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits
13408	.align	2
13409	.set	.LANCHOR132,. + 0
13410	.type	ftl_gc_temp_power_lost_recovery_flag, %object
13411	.size	ftl_gc_temp_power_lost_recovery_flag, 4
13412ftl_gc_temp_power_lost_recovery_flag:
13413	.space	4
13414	.section	.bss.gBbtInfo,"aw",%nobits
13415	.align	2
13416	.set	.LANCHOR36,. + 0
13417	.type	gBbtInfo, %object
13418	.size	gBbtInfo, 60
13419gBbtInfo:
13420	.space	60
13421	.section	.bss.gL2pMapInfo,"aw",%nobits
13422	.align	2
13423	.set	.LANCHOR128,. + 0
13424	.type	gL2pMapInfo, %object
13425	.size	gL2pMapInfo, 44
13426gL2pMapInfo:
13427	.space	44
13428	.section	.bss.gSysFreeQueue,"aw",%nobits
13429	.align	1
13430	.set	.LANCHOR37,. + 0
13431	.type	gSysFreeQueue, %object
13432	.size	gSysFreeQueue, 2056
13433gSysFreeQueue:
13434	.space	2056
13435	.section	.bss.gSysInfo,"aw",%nobits
13436	.align	2
13437	.set	.LANCHOR138,. + 0
13438	.type	gSysInfo, %object
13439	.size	gSysInfo, 16
13440gSysInfo:
13441	.space	16
13442	.section	.bss.gVendorBlkInfo,"aw",%nobits
13443	.align	2
13444	.set	.LANCHOR160,. + 0
13445	.type	gVendorBlkInfo, %object
13446	.size	gVendorBlkInfo, 44
13447gVendorBlkInfo:
13448	.space	44
13449	.section	.bss.g_GlobalDataVersion,"aw",%nobits
13450	.align	2
13451	.set	.LANCHOR82,. + 0
13452	.type	g_GlobalDataVersion, %object
13453	.size	g_GlobalDataVersion, 4
13454g_GlobalDataVersion:
13455	.space	4
13456	.section	.bss.g_GlobalSysVersion,"aw",%nobits
13457	.align	2
13458	.set	.LANCHOR81,. + 0
13459	.type	g_GlobalSysVersion, %object
13460	.size	g_GlobalSysVersion, 4
13461g_GlobalSysVersion:
13462	.space	4
13463	.section	.bss.g_MaxLbaSector,"aw",%nobits
13464	.align	2
13465	.set	.LANCHOR33,. + 0
13466	.type	g_MaxLbaSector, %object
13467	.size	g_MaxLbaSector, 4
13468g_MaxLbaSector:
13469	.space	4
13470	.section	.bss.g_MaxLbn,"aw",%nobits
13471	.align	2
13472	.set	.LANCHOR178,. + 0
13473	.type	g_MaxLbn, %object
13474	.size	g_MaxLbn, 4
13475g_MaxLbn:
13476	.space	4
13477	.section	.bss.g_MaxLpn,"aw",%nobits
13478	.align	2
13479	.set	.LANCHOR151,. + 0
13480	.type	g_MaxLpn, %object
13481	.size	g_MaxLpn, 4
13482g_MaxLpn:
13483	.space	4
13484	.section	.bss.g_VaildLpn,"aw",%nobits
13485	.align	2
13486	.set	.LANCHOR58,. + 0
13487	.type	g_VaildLpn, %object
13488	.size	g_VaildLpn, 4
13489g_VaildLpn:
13490	.space	4
13491	.section	.bss.g_active_superblock,"aw",%nobits
13492	.align	2
13493	.set	.LANCHOR50,. + 0
13494	.type	g_active_superblock, %object
13495	.size	g_active_superblock, 48
13496g_active_superblock:
13497	.space	48
13498	.section	.bss.g_buffer_superblock,"aw",%nobits
13499	.align	2
13500	.set	.LANCHOR51,. + 0
13501	.type	g_buffer_superblock, %object
13502	.size	g_buffer_superblock, 48
13503g_buffer_superblock:
13504	.space	48
13505	.section	.bss.g_cur_erase_blk,"aw",%nobits
13506	.align	2
13507	.set	.LANCHOR98,. + 0
13508	.type	g_cur_erase_blk, %object
13509	.size	g_cur_erase_blk, 4
13510g_cur_erase_blk:
13511	.space	4
13512	.section	.bss.g_ect_tbl_info_size,"aw",%nobits
13513	.align	1
13514	.set	.LANCHOR115,. + 0
13515	.type	g_ect_tbl_info_size, %object
13516	.size	g_ect_tbl_info_size, 2
13517g_ect_tbl_info_size:
13518	.space	2
13519	.section	.bss.g_ect_tbl_power_up_flush,"aw",%nobits
13520	.align	1
13521	.set	.LANCHOR163,. + 0
13522	.type	g_ect_tbl_power_up_flush, %object
13523	.size	g_ect_tbl_power_up_flush, 2
13524g_ect_tbl_power_up_flush:
13525	.space	2
13526	.section	.bss.g_ftl_nand_free_count,"aw",%nobits
13527	.align	2
13528	.set	.LANCHOR175,. + 0
13529	.type	g_ftl_nand_free_count, %object
13530	.size	g_ftl_nand_free_count, 4
13531g_ftl_nand_free_count:
13532	.space	4
13533	.section	.bss.g_gc_bad_block_gc_index,"aw",%nobits
13534	.align	1
13535	.set	.LANCHOR75,. + 0
13536	.type	g_gc_bad_block_gc_index, %object
13537	.size	g_gc_bad_block_gc_index, 2
13538g_gc_bad_block_gc_index:
13539	.space	2
13540	.section	.bss.g_gc_bad_block_temp_num,"aw",%nobits
13541	.align	1
13542	.set	.LANCHOR73,. + 0
13543	.type	g_gc_bad_block_temp_num, %object
13544	.size	g_gc_bad_block_temp_num, 2
13545g_gc_bad_block_temp_num:
13546	.space	2
13547	.section	.bss.g_gc_bad_block_temp_tbl,"aw",%nobits
13548	.align	1
13549	.set	.LANCHOR74,. + 0
13550	.type	g_gc_bad_block_temp_tbl, %object
13551	.size	g_gc_bad_block_temp_tbl, 34
13552g_gc_bad_block_temp_tbl:
13553	.space	34
13554	.section	.bss.g_gc_blk_index,"aw",%nobits
13555	.align	1
13556	.set	.LANCHOR101,. + 0
13557	.type	g_gc_blk_index, %object
13558	.size	g_gc_blk_index, 2
13559g_gc_blk_index:
13560	.space	2
13561	.section	.bss.g_gc_blk_num,"aw",%nobits
13562	.align	1
13563	.set	.LANCHOR68,. + 0
13564	.type	g_gc_blk_num, %object
13565	.size	g_gc_blk_num, 2
13566g_gc_blk_num:
13567	.space	2
13568	.section	.bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits
13569	.align	1
13570	.set	.LANCHOR173,. + 0
13571	.type	g_gc_cur_blk_max_valid_pages, %object
13572	.size	g_gc_cur_blk_max_valid_pages, 2
13573g_gc_cur_blk_max_valid_pages:
13574	.space	2
13575	.section	.bss.g_gc_cur_blk_valid_pages,"aw",%nobits
13576	.align	1
13577	.set	.LANCHOR172,. + 0
13578	.type	g_gc_cur_blk_valid_pages, %object
13579	.size	g_gc_cur_blk_valid_pages, 2
13580g_gc_cur_blk_valid_pages:
13581	.space	2
13582	.section	.bss.g_gc_free_blk_threshold,"aw",%nobits
13583	.align	1
13584	.set	.LANCHOR99,. + 0
13585	.type	g_gc_free_blk_threshold, %object
13586	.size	g_gc_free_blk_threshold, 2
13587g_gc_free_blk_threshold:
13588	.space	2
13589	.section	.bss.g_gc_head_data_block,"aw",%nobits
13590	.align	2
13591	.set	.LANCHOR95,. + 0
13592	.type	g_gc_head_data_block, %object
13593	.size	g_gc_head_data_block, 4
13594g_gc_head_data_block:
13595	.space	4
13596	.section	.bss.g_gc_head_data_block_count,"aw",%nobits
13597	.align	2
13598	.set	.LANCHOR96,. + 0
13599	.type	g_gc_head_data_block_count, %object
13600	.size	g_gc_head_data_block_count, 4
13601g_gc_head_data_block_count:
13602	.space	4
13603	.section	.bss.g_gc_merge_free_blk_threshold,"aw",%nobits
13604	.align	1
13605	.set	.LANCHOR100,. + 0
13606	.type	g_gc_merge_free_blk_threshold, %object
13607	.size	g_gc_merge_free_blk_threshold, 2
13608g_gc_merge_free_blk_threshold:
13609	.space	2
13610	.section	.bss.g_gc_next_blk,"aw",%nobits
13611	.align	1
13612	.set	.LANCHOR71,. + 0
13613	.type	g_gc_next_blk, %object
13614	.size	g_gc_next_blk, 2
13615g_gc_next_blk:
13616	.space	2
13617	.section	.bss.g_gc_next_blk_1,"aw",%nobits
13618	.align	1
13619	.set	.LANCHOR72,. + 0
13620	.type	g_gc_next_blk_1, %object
13621	.size	g_gc_next_blk_1, 2
13622g_gc_next_blk_1:
13623	.space	2
13624	.section	.bss.g_gc_num_req,"aw",%nobits
13625	.align	2
13626	.set	.LANCHOR61,. + 0
13627	.type	g_gc_num_req, %object
13628	.size	g_gc_num_req, 4
13629g_gc_num_req:
13630	.space	4
13631	.section	.bss.g_gc_page_offset,"aw",%nobits
13632	.align	1
13633	.set	.LANCHOR69,. + 0
13634	.type	g_gc_page_offset, %object
13635	.size	g_gc_page_offset, 2
13636g_gc_page_offset:
13637	.space	2
13638	.section	.bss.g_gc_skip_write_count,"aw",%nobits
13639	.align	2
13640	.set	.LANCHOR97,. + 0
13641	.type	g_gc_skip_write_count, %object
13642	.size	g_gc_skip_write_count, 4
13643g_gc_skip_write_count:
13644	.space	4
13645	.section	.bss.g_gc_superblock,"aw",%nobits
13646	.align	2
13647	.set	.LANCHOR144,. + 0
13648	.type	g_gc_superblock, %object
13649	.size	g_gc_superblock, 48
13650g_gc_superblock:
13651	.space	48
13652	.section	.bss.g_gc_temp_superblock,"aw",%nobits
13653	.align	2
13654	.set	.LANCHOR52,. + 0
13655	.type	g_gc_temp_superblock, %object
13656	.size	g_gc_temp_superblock, 48
13657g_gc_temp_superblock:
13658	.space	48
13659	.section	.bss.g_in_gc_progress,"aw",%nobits
13660	.align	2
13661	.set	.LANCHOR93,. + 0
13662	.type	g_in_gc_progress, %object
13663	.size	g_in_gc_progress, 4
13664g_in_gc_progress:
13665	.space	4
13666	.section	.bss.g_in_swl_replace,"aw",%nobits
13667	.align	2
13668	.set	.LANCHOR94,. + 0
13669	.type	g_in_swl_replace, %object
13670	.size	g_in_swl_replace, 4
13671g_in_swl_replace:
13672	.space	4
13673	.section	.bss.g_l2p_last_update_region_id,"aw",%nobits
13674	.align	1
13675	.set	.LANCHOR55,. + 0
13676	.type	g_l2p_last_update_region_id, %object
13677	.size	g_l2p_last_update_region_id, 2
13678g_l2p_last_update_region_id:
13679	.space	2
13680	.section	.bss.g_max_erase_count,"aw",%nobits
13681	.align	2
13682	.set	.LANCHOR91,. + 0
13683	.type	g_max_erase_count, %object
13684	.size	g_max_erase_count, 4
13685g_max_erase_count:
13686	.space	4
13687	.section	.bss.g_min_erase_count,"aw",%nobits
13688	.align	2
13689	.set	.LANCHOR92,. + 0
13690	.type	g_min_erase_count, %object
13691	.size	g_min_erase_count, 4
13692g_min_erase_count:
13693	.space	4
13694	.section	.bss.g_nand_ops,"aw",%nobits
13695	.align	2
13696	.set	.LANCHOR77,. + 0
13697	.type	g_nand_ops, %object
13698	.size	g_nand_ops, 24
13699g_nand_ops:
13700	.space	24
13701	.section	.bss.g_nand_phy_info,"aw",%nobits
13702	.align	1
13703	.set	.LANCHOR0,. + 0
13704	.type	g_nand_phy_info, %object
13705	.size	g_nand_phy_info, 24
13706g_nand_phy_info:
13707	.space	24
13708	.section	.bss.g_num_data_superblocks,"aw",%nobits
13709	.align	1
13710	.set	.LANCHOR43,. + 0
13711	.type	g_num_data_superblocks, %object
13712	.size	g_num_data_superblocks, 2
13713g_num_data_superblocks:
13714	.space	2
13715	.section	.bss.g_num_free_superblocks,"aw",%nobits
13716	.align	1
13717	.set	.LANCHOR47,. + 0
13718	.type	g_num_free_superblocks, %object
13719	.size	g_num_free_superblocks, 2
13720g_num_free_superblocks:
13721	.space	2
13722	.section	.bss.g_power_lost_recovery_flag,"aw",%nobits
13723	.align	1
13724	.set	.LANCHOR155,. + 0
13725	.type	g_power_lost_recovery_flag, %object
13726	.size	g_power_lost_recovery_flag, 2
13727g_power_lost_recovery_flag:
13728	.space	2
13729	.section	.bss.g_recovery_page_min_ver,"aw",%nobits
13730	.align	2
13731	.set	.LANCHOR133,. + 0
13732	.type	g_recovery_page_min_ver, %object
13733	.size	g_recovery_page_min_ver, 4
13734g_recovery_page_min_ver:
13735	.space	4
13736	.section	.bss.g_recovery_page_num,"aw",%nobits
13737	.align	2
13738	.set	.LANCHOR156,. + 0
13739	.type	g_recovery_page_num, %object
13740	.size	g_recovery_page_num, 4
13741g_recovery_page_num:
13742	.space	4
13743	.section	.bss.g_recovery_ppa_tbl,"aw",%nobits
13744	.align	2
13745	.set	.LANCHOR157,. + 0
13746	.type	g_recovery_ppa_tbl, %object
13747	.size	g_recovery_ppa_tbl, 128
13748g_recovery_ppa_tbl:
13749	.space	128
13750	.section	.bss.g_sys_ext_data,"aw",%nobits
13751	.align	2
13752	.set	.LANCHOR134,. + 0
13753	.type	g_sys_ext_data, %object
13754	.size	g_sys_ext_data, 512
13755g_sys_ext_data:
13756	.space	512
13757	.section	.bss.g_sys_save_data,"aw",%nobits
13758	.align	2
13759	.set	.LANCHOR38,. + 0
13760	.type	g_sys_save_data, %object
13761	.size	g_sys_save_data, 48
13762g_sys_save_data:
13763	.space	48
13764	.section	.bss.g_tmp_data_superblock_id,"aw",%nobits
13765	.align	1
13766	.set	.LANCHOR130,. + 0
13767	.type	g_tmp_data_superblock_id, %object
13768	.size	g_tmp_data_superblock_id, 2
13769g_tmp_data_superblock_id:
13770	.space	2
13771	.section	.bss.g_totle_avg_erase_count,"aw",%nobits
13772	.align	2
13773	.set	.LANCHOR142,. + 0
13774	.type	g_totle_avg_erase_count, %object
13775	.size	g_totle_avg_erase_count, 4
13776g_totle_avg_erase_count:
13777	.space	4
13778	.section	.bss.g_totle_cache_write_count,"aw",%nobits
13779	.align	2
13780	.set	.LANCHOR86,. + 0
13781	.type	g_totle_cache_write_count, %object
13782	.size	g_totle_cache_write_count, 4
13783g_totle_cache_write_count:
13784	.space	4
13785	.section	.bss.g_totle_discard_page_count,"aw",%nobits
13786	.align	2
13787	.set	.LANCHOR85,. + 0
13788	.type	g_totle_discard_page_count, %object
13789	.size	g_totle_discard_page_count, 4
13790g_totle_discard_page_count:
13791	.space	4
13792	.section	.bss.g_totle_gc_page_count,"aw",%nobits
13793	.align	2
13794	.set	.LANCHOR83,. + 0
13795	.type	g_totle_gc_page_count, %object
13796	.size	g_totle_gc_page_count, 4
13797g_totle_gc_page_count:
13798	.space	4
13799	.section	.bss.g_totle_l2p_write_count,"aw",%nobits
13800	.align	2
13801	.set	.LANCHOR87,. + 0
13802	.type	g_totle_l2p_write_count, %object
13803	.size	g_totle_l2p_write_count, 4
13804g_totle_l2p_write_count:
13805	.space	4
13806	.section	.bss.g_totle_map_block,"aw",%nobits
13807	.align	1
13808	.set	.LANCHOR129,. + 0
13809	.type	g_totle_map_block, %object
13810	.size	g_totle_map_block, 2
13811g_totle_map_block:
13812	.space	2
13813	.section	.bss.g_totle_mlc_erase_count,"aw",%nobits
13814	.align	2
13815	.set	.LANCHOR89,. + 0
13816	.type	g_totle_mlc_erase_count, %object
13817	.size	g_totle_mlc_erase_count, 4
13818g_totle_mlc_erase_count:
13819	.space	4
13820	.section	.bss.g_totle_read_page_count,"aw",%nobits
13821	.align	2
13822	.set	.LANCHOR88,. + 0
13823	.type	g_totle_read_page_count, %object
13824	.size	g_totle_read_page_count, 4
13825g_totle_read_page_count:
13826	.space	4
13827	.section	.bss.g_totle_read_sector,"aw",%nobits
13828	.align	2
13829	.set	.LANCHOR162,. + 0
13830	.type	g_totle_read_sector, %object
13831	.size	g_totle_read_sector, 4
13832g_totle_read_sector:
13833	.space	4
13834	.section	.bss.g_totle_slc_erase_count,"aw",%nobits
13835	.align	2
13836	.set	.LANCHOR90,. + 0
13837	.type	g_totle_slc_erase_count, %object
13838	.size	g_totle_slc_erase_count, 4
13839g_totle_slc_erase_count:
13840	.space	4
13841	.section	.bss.g_totle_swl_count,"aw",%nobits
13842	.align	2
13843	.set	.LANCHOR131,. + 0
13844	.type	g_totle_swl_count, %object
13845	.size	g_totle_swl_count, 4
13846g_totle_swl_count:
13847	.space	4
13848	.section	.bss.g_totle_sys_slc_erase_count,"aw",%nobits
13849	.align	2
13850	.set	.LANCHOR79,. + 0
13851	.type	g_totle_sys_slc_erase_count, %object
13852	.size	g_totle_sys_slc_erase_count, 4
13853g_totle_sys_slc_erase_count:
13854	.space	4
13855	.section	.bss.g_totle_vendor_block,"aw",%nobits
13856	.align	1
13857	.set	.LANCHOR34,. + 0
13858	.type	g_totle_vendor_block, %object
13859	.size	g_totle_vendor_block, 2
13860g_totle_vendor_block:
13861	.space	2
13862	.section	.bss.g_totle_write_page_count,"aw",%nobits
13863	.align	2
13864	.set	.LANCHOR84,. + 0
13865	.type	g_totle_write_page_count, %object
13866	.size	g_totle_write_page_count, 4
13867g_totle_write_page_count:
13868	.space	4
13869	.section	.bss.g_totle_write_sector,"aw",%nobits
13870	.align	2
13871	.set	.LANCHOR161,. + 0
13872	.type	g_totle_write_sector, %object
13873	.size	g_totle_write_sector, 4
13874g_totle_write_sector:
13875	.space	4
13876	.section	.bss.gc_discard_updated,"aw",%nobits
13877	.align	2
13878	.set	.LANCHOR166,. + 0
13879	.type	gc_discard_updated, %object
13880	.size	gc_discard_updated, 4
13881gc_discard_updated:
13882	.space	4
13883	.section	.bss.gc_ink_free_return_value,"aw",%nobits
13884	.align	1
13885	.set	.LANCHOR171,. + 0
13886	.type	gc_ink_free_return_value, %object
13887	.size	gc_ink_free_return_value, 2
13888gc_ink_free_return_value:
13889	.space	2
13890	.section	.bss.gp_ect_tbl_info,"aw",%nobits
13891	.align	2
13892	.set	.LANCHOR117,. + 0
13893	.type	gp_ect_tbl_info, %object
13894	.size	gp_ect_tbl_info, 4
13895gp_ect_tbl_info:
13896	.space	4
13897	.section	.bss.gp_flash_check_buf,"aw",%nobits
13898	.align	2
13899	.set	.LANCHOR183,. + 0
13900	.type	gp_flash_check_buf, %object
13901	.size	gp_flash_check_buf, 4
13902gp_flash_check_buf:
13903	.space	4
13904	.section	.bss.gp_gc_page_buf_info,"aw",%nobits
13905	.align	2
13906	.set	.LANCHOR62,. + 0
13907	.type	gp_gc_page_buf_info, %object
13908	.size	gp_gc_page_buf_info, 4
13909gp_gc_page_buf_info:
13910	.space	4
13911	.section	.bss.gp_last_act_superblock,"aw",%nobits
13912	.align	2
13913	.type	gp_last_act_superblock, %object
13914	.size	gp_last_act_superblock, 4
13915gp_last_act_superblock:
13916	.space	4
13917	.section	.bss.idb_buf,"aw",%nobits
13918	.align	2
13919	.set	.LANCHOR182,. + 0
13920	.type	idb_buf, %object
13921	.size	idb_buf, 4
13922idb_buf:
13923	.space	4
13924	.section	.bss.idb_need_write_back,"aw",%nobits
13925	.align	2
13926	.set	.LANCHOR181,. + 0
13927	.type	idb_need_write_back, %object
13928	.size	idb_need_write_back, 4
13929idb_need_write_back:
13930	.space	4
13931	.section	.bss.low_format_en,"aw",%nobits
13932	.align	2
13933	.set	.LANCHOR180,. + 0
13934	.type	low_format_en, %object
13935	.size	low_format_en, 4
13936low_format_en:
13937	.space	4
13938	.section	.bss.p_data_block_list_head,"aw",%nobits
13939	.align	2
13940	.set	.LANCHOR40,. + 0
13941	.type	p_data_block_list_head, %object
13942	.size	p_data_block_list_head, 4
13943p_data_block_list_head:
13944	.space	4
13945	.section	.bss.p_data_block_list_table,"aw",%nobits
13946	.align	2
13947	.set	.LANCHOR39,. + 0
13948	.type	p_data_block_list_table, %object
13949	.size	p_data_block_list_table, 4
13950p_data_block_list_table:
13951	.space	4
13952	.section	.bss.p_data_block_list_tail,"aw",%nobits
13953	.align	2
13954	.set	.LANCHOR42,. + 0
13955	.type	p_data_block_list_tail, %object
13956	.size	p_data_block_list_tail, 4
13957p_data_block_list_tail:
13958	.space	4
13959	.section	.bss.p_erase_count_table,"aw",%nobits
13960	.align	2
13961	.set	.LANCHOR46,. + 0
13962	.type	p_erase_count_table, %object
13963	.size	p_erase_count_table, 4
13964p_erase_count_table:
13965	.space	4
13966	.section	.bss.p_free_data_block_list_head,"aw",%nobits
13967	.align	2
13968	.set	.LANCHOR45,. + 0
13969	.type	p_free_data_block_list_head, %object
13970	.size	p_free_data_block_list_head, 4
13971p_free_data_block_list_head:
13972	.space	4
13973	.section	.bss.p_gc_blk_tbl,"aw",%nobits
13974	.align	2
13975	.set	.LANCHOR67,. + 0
13976	.type	p_gc_blk_tbl, %object
13977	.size	p_gc_blk_tbl, 4
13978p_gc_blk_tbl:
13979	.space	4
13980	.section	.bss.p_gc_data_buf,"aw",%nobits
13981	.align	2
13982	.set	.LANCHOR63,. + 0
13983	.type	p_gc_data_buf, %object
13984	.size	p_gc_data_buf, 4
13985p_gc_data_buf:
13986	.space	4
13987	.section	.bss.p_gc_page_info,"aw",%nobits
13988	.align	2
13989	.set	.LANCHOR70,. + 0
13990	.type	p_gc_page_info, %object
13991	.size	p_gc_page_info, 4
13992p_gc_page_info:
13993	.space	4
13994	.section	.bss.p_gc_spare_buf,"aw",%nobits
13995	.align	2
13996	.set	.LANCHOR64,. + 0
13997	.type	p_gc_spare_buf, %object
13998	.size	p_gc_spare_buf, 4
13999p_gc_spare_buf:
14000	.space	4
14001	.section	.bss.p_io_data_buf_0,"aw",%nobits
14002	.align	2
14003	.set	.LANCHOR108,. + 0
14004	.type	p_io_data_buf_0, %object
14005	.size	p_io_data_buf_0, 4
14006p_io_data_buf_0:
14007	.space	4
14008	.section	.bss.p_io_data_buf_1,"aw",%nobits
14009	.align	2
14010	.set	.LANCHOR109,. + 0
14011	.type	p_io_data_buf_1, %object
14012	.size	p_io_data_buf_1, 4
14013p_io_data_buf_1:
14014	.space	4
14015	.section	.bss.p_io_spare_buf,"aw",%nobits
14016	.align	2
14017	.set	.LANCHOR114,. + 0
14018	.type	p_io_spare_buf, %object
14019	.size	p_io_spare_buf, 4
14020p_io_spare_buf:
14021	.space	4
14022	.section	.bss.p_l2p_map_buf,"aw",%nobits
14023	.align	2
14024	.set	.LANCHOR125,. + 0
14025	.type	p_l2p_map_buf, %object
14026	.size	p_l2p_map_buf, 4
14027p_l2p_map_buf:
14028	.space	4
14029	.section	.bss.p_l2p_ram_map,"aw",%nobits
14030	.align	2
14031	.set	.LANCHOR54,. + 0
14032	.type	p_l2p_ram_map, %object
14033	.size	p_l2p_ram_map, 4
14034p_l2p_ram_map:
14035	.space	4
14036	.section	.bss.p_map_block_table,"aw",%nobits
14037	.align	2
14038	.set	.LANCHOR118,. + 0
14039	.type	p_map_block_table, %object
14040	.size	p_map_block_table, 4
14041p_map_block_table:
14042	.space	4
14043	.section	.bss.p_map_block_valid_page_count,"aw",%nobits
14044	.align	2
14045	.set	.LANCHOR119,. + 0
14046	.type	p_map_block_valid_page_count, %object
14047	.size	p_map_block_valid_page_count, 4
14048p_map_block_valid_page_count:
14049	.space	4
14050	.section	.bss.p_map_block_ver_table,"aw",%nobits
14051	.align	2
14052	.set	.LANCHOR124,. + 0
14053	.type	p_map_block_ver_table, %object
14054	.size	p_map_block_ver_table, 4
14055p_map_block_ver_table:
14056	.space	4
14057	.section	.bss.p_map_region_ppn_table,"aw",%nobits
14058	.align	2
14059	.set	.LANCHOR123,. + 0
14060	.type	p_map_region_ppn_table, %object
14061	.size	p_map_region_ppn_table, 4
14062p_map_region_ppn_table:
14063	.space	4
14064	.section	.bss.p_plane_order_table,"aw",%nobits
14065	.set	.LANCHOR12,. + 0
14066	.type	p_plane_order_table, %object
14067	.size	p_plane_order_table, 32
14068p_plane_order_table:
14069	.space	32
14070	.section	.bss.p_swl_mul_table,"aw",%nobits
14071	.align	2
14072	.set	.LANCHOR116,. + 0
14073	.type	p_swl_mul_table, %object
14074	.size	p_swl_mul_table, 4
14075p_swl_mul_table:
14076	.space	4
14077	.section	.bss.p_sys_data_buf,"aw",%nobits
14078	.align	2
14079	.set	.LANCHOR105,. + 0
14080	.type	p_sys_data_buf, %object
14081	.size	p_sys_data_buf, 4
14082p_sys_data_buf:
14083	.space	4
14084	.section	.bss.p_sys_data_buf_1,"aw",%nobits
14085	.align	2
14086	.set	.LANCHOR106,. + 0
14087	.type	p_sys_data_buf_1, %object
14088	.size	p_sys_data_buf_1, 4
14089p_sys_data_buf_1:
14090	.space	4
14091	.section	.bss.p_sys_spare_buf,"aw",%nobits
14092	.align	2
14093	.set	.LANCHOR113,. + 0
14094	.type	p_sys_spare_buf, %object
14095	.size	p_sys_spare_buf, 4
14096p_sys_spare_buf:
14097	.space	4
14098	.section	.bss.p_valid_page_count_check_table,"aw",%nobits
14099	.align	2
14100	.type	p_valid_page_count_check_table, %object
14101	.size	p_valid_page_count_check_table, 4
14102p_valid_page_count_check_table:
14103	.space	4
14104	.section	.bss.p_valid_page_count_table,"aw",%nobits
14105	.align	2
14106	.set	.LANCHOR41,. + 0
14107	.type	p_valid_page_count_table, %object
14108	.size	p_valid_page_count_table, 4
14109p_valid_page_count_table:
14110	.space	4
14111	.section	.bss.p_vendor_block_table,"aw",%nobits
14112	.align	2
14113	.set	.LANCHOR35,. + 0
14114	.type	p_vendor_block_table, %object
14115	.size	p_vendor_block_table, 4
14116p_vendor_block_table:
14117	.space	4
14118	.section	.bss.p_vendor_block_valid_page_count,"aw",%nobits
14119	.align	2
14120	.set	.LANCHOR120,. + 0
14121	.type	p_vendor_block_valid_page_count, %object
14122	.size	p_vendor_block_valid_page_count, 4
14123p_vendor_block_valid_page_count:
14124	.space	4
14125	.section	.bss.p_vendor_block_ver_table,"aw",%nobits
14126	.align	2
14127	.set	.LANCHOR121,. + 0
14128	.type	p_vendor_block_ver_table, %object
14129	.size	p_vendor_block_ver_table, 4
14130p_vendor_block_ver_table:
14131	.space	4
14132	.section	.bss.p_vendor_data_buf,"aw",%nobits
14133	.align	2
14134	.set	.LANCHOR107,. + 0
14135	.type	p_vendor_data_buf, %object
14136	.size	p_vendor_data_buf, 4
14137p_vendor_data_buf:
14138	.space	4
14139	.section	.bss.p_vendor_region_ppn_table,"aw",%nobits
14140	.align	2
14141	.set	.LANCHOR122,. + 0
14142	.type	p_vendor_region_ppn_table, %object
14143	.size	p_vendor_region_ppn_table, 4
14144p_vendor_region_ppn_table:
14145	.space	4
14146	.section	.bss.req_erase,"aw",%nobits
14147	.align	2
14148	.set	.LANCHOR78,. + 0
14149	.type	req_erase, %object
14150	.size	req_erase, 4
14151req_erase:
14152	.space	4
14153	.section	.bss.req_gc,"aw",%nobits
14154	.align	2
14155	.set	.LANCHOR65,. + 0
14156	.type	req_gc, %object
14157	.size	req_gc, 4
14158req_gc:
14159	.space	4
14160	.section	.bss.req_gc_dst,"aw",%nobits
14161	.align	2
14162	.set	.LANCHOR103,. + 0
14163	.type	req_gc_dst, %object
14164	.size	req_gc_dst, 4
14165req_gc_dst:
14166	.space	4
14167	.section	.bss.req_prgm,"aw",%nobits
14168	.align	2
14169	.set	.LANCHOR104,. + 0
14170	.type	req_prgm, %object
14171	.size	req_prgm, 4
14172req_prgm:
14173	.space	4
14174	.section	.bss.req_read,"aw",%nobits
14175	.align	2
14176	.set	.LANCHOR102,. + 0
14177	.type	req_read, %object
14178	.size	req_read, 4
14179req_read:
14180	.space	4
14181	.section	.bss.req_sys,"aw",%nobits
14182	.align	2
14183	.set	.LANCHOR137,. + 0
14184	.type	req_sys, %object
14185	.size	req_sys, 20
14186req_sys:
14187	.space	20
14188	.section	.bss.sftl_nand_check_buf,"aw",%nobits
14189	.align	2
14190	.set	.LANCHOR110,. + 0
14191	.type	sftl_nand_check_buf, %object
14192	.size	sftl_nand_check_buf, 4
14193sftl_nand_check_buf:
14194	.space	4
14195	.section	.bss.sftl_nand_check_spare_buf,"aw",%nobits
14196	.align	2
14197	.set	.LANCHOR112,. + 0
14198	.type	sftl_nand_check_spare_buf, %object
14199	.size	sftl_nand_check_spare_buf, 4
14200sftl_nand_check_spare_buf:
14201	.space	4
14202	.section	.bss.sftl_temp_buf,"aw",%nobits
14203	.align	2
14204	.set	.LANCHOR111,. + 0
14205	.type	sftl_temp_buf, %object
14206	.size	sftl_temp_buf, 4
14207sftl_temp_buf:
14208	.space	4
14209	.section	.data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits
14210	.align	1
14211	.set	.LANCHOR159,. + 0
14212	.type	ftl_gc_temp_block_bops_scan_page_addr, %object
14213	.size	ftl_gc_temp_block_bops_scan_page_addr, 2
14214ftl_gc_temp_block_bops_scan_page_addr:
14215	.short	-1
14216	.section	.data.gFtlInitStatus,"aw",%progbits
14217	.align	2
14218	.set	.LANCHOR165,. + 0
14219	.type	gFtlInitStatus, %object
14220	.size	gFtlInitStatus, 4
14221gFtlInitStatus:
14222	.word	-1
14223	.section	.data.power_up_flag,"aw",%progbits
14224	.align	2
14225	.type	power_up_flag, %object
14226	.size	power_up_flag, 4
14227power_up_flag:
14228	.word	1
14229	.section	.rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1
14230.LC6:
14231	.ascii	"%s: addr: %x is in id block!!!!!!!!!!\012\000"
14232.LC7:
14233	.ascii	"not free: w: d:\000"
14234.LC8:
14235	.ascii	"not free: w: s:\000"
14236	.section	.rodata.FlashProgPages.str1.1,"aMS",%progbits,1
14237.LC14:
14238	.ascii	"prog read error: = %x\012\000"
14239.LC15:
14240	.ascii	"prog read REFRESH: = %x\012\000"
14241.LC16:
14242	.ascii	"prog read s error: = %x %x %x\012\000"
14243.LC17:
14244	.ascii	"prog read d error: = %x %x %x\012\000"
14245	.section	.rodata.FlashReadPages.str1.1,"aMS",%progbits,1
14246.LC11:
14247	.ascii	"FlashReadPages %x %x error_ecc_bits %d\012\000"
14248.LC12:
14249	.ascii	"data:\000"
14250.LC13:
14251	.ascii	"spare:\000"
14252	.section	.rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1
14253.LC0:
14254	.ascii	"phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
14255	.ascii	"\000"
14256	.section	.rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1
14257.LC18:
14258	.ascii	"FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
14259.LC19:
14260	.ascii	"FtlBbmTblFlush error:%x\012\000"
14261.LC20:
14262	.ascii	"FtlBbmTblFlush error = %x error count = %d\012\000"
14263	.section	.rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1
14264.LC9:
14265	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
14266	.ascii	"\000"
14267	.section	.rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1
14268.LC35:
14269	.ascii	"FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
14270	.section	.rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1
14271.LC37:
14272	.ascii	"no ect\000"
14273.LC38:
14274	.ascii	"%s\012\000"
14275	.section	.rodata.FtlLoadSysInfo.str1.1,"aMS",%progbits,1
14276.LC46:
14277	.ascii	"%s hash error this.id =%x page =%x pre_id =%x hash "
14278	.ascii	"=%x hash_r =%x\012\000"
14279	.section	.rodata.FtlMapTblRecovery.str1.1,"aMS",%progbits,1
14280.LC47:
14281	.ascii	"%s last blk_id =%x page =%x hash error hash =%x has"
14282	.ascii	"h_r =%x\012\000"
14283.LC48:
14284	.ascii	"%s scan blk_id =%x page =%x hash error hash =%x has"
14285	.ascii	"h_r =%x\012\000"
14286	.section	.rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1
14287.LC22:
14288	.ascii	"FtlMapWritePage error = %x \012\000"
14289.LC23:
14290	.ascii	"FtlMapWritePage error = %x error count = %d\012\000"
14291	.section	.rodata.FtlProgPages.str1.1,"aMS",%progbits,1
14292.LC40:
14293	.ascii	"FtlProgPages error %x = %d\012\000"
14294.LC41:
14295	.ascii	"Ftlwrite decrement_vpc_count %x = %d\012\000"
14296	.section	.rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1
14297.LC27:
14298	.ascii	"data prev_ppa = %x error...................\012\000"
14299.LC28:
14300	.ascii	"spuer block %x vpn is 0\012 \000"
14301	.section	.rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1
14302.LC36:
14303	.ascii	"FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
14304	.section	.rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1
14305.LC39:
14306	.ascii	"FtlVpcTblFlush error = %x error count = %d\012\000"
14307	.section	.rodata.FtlWrite.str1.1,"aMS",%progbits,1
14308.LC44:
14309	.ascii	"FtlWrite: ecc error:%x %x %x\012\000"
14310.LC45:
14311	.ascii	"FtlWrite: lpa error:%x %x\012\000"
14312	.section	.rodata.FtlWriteToIDB.str1.1,"aMS",%progbits,1
14313.LC50:
14314	.ascii	"write_idblock %x %x\012\000"
14315.LC51:
14316	.ascii	"write_idblock fail! %x %x %x %x\012\000"
14317.LC52:
14318	.ascii	"%s idb buffer alloc fail\012\000"
14319	.section	.rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1
14320.LC1:
14321	.ascii	"\012!!!!! error @ func:%s - line:%d\012\000"
14322	.section	.rodata.__func__.10025,"a",%progbits
14323	.set	.LANCHOR169,. + 0
14324	.type	__func__.10025, %object
14325	.size	__func__.10025, 19
14326__func__.10025:
14327	.ascii	"FtlGcFreeTempBlock\000"
14328	.section	.rodata.__func__.10124,"a",%progbits
14329	.set	.LANCHOR174,. + 0
14330	.type	__func__.10124, %object
14331	.size	__func__.10124, 23
14332__func__.10124:
14333	.ascii	"rk_ftl_garbage_collect\000"
14334	.section	.rodata.__func__.10392,"a",%progbits
14335	.set	.LANCHOR136,. + 0
14336	.type	__func__.10392, %object
14337	.size	__func__.10392, 15
14338__func__.10392:
14339	.ascii	"FlashReadPages\000"
14340	.section	.rodata.__func__.10411,"a",%progbits
14341	.set	.LANCHOR141,. + 0
14342	.type	__func__.10411, %object
14343	.size	__func__.10411, 15
14344__func__.10411:
14345	.ascii	"FlashProgPages\000"
14346	.section	.rodata.__func__.10435,"a",%progbits
14347	.set	.LANCHOR76,. + 0
14348	.type	__func__.10435, %object
14349	.size	__func__.10435, 17
14350__func__.10435:
14351	.ascii	"FlashEraseBlocks\000"
14352	.section	.rodata.__func__.10554,"a",%progbits
14353	.set	.LANCHOR184,. + 0
14354	.type	__func__.10554, %object
14355	.size	__func__.10554, 14
14356__func__.10554:
14357	.ascii	"FtlWriteToIDB\000"
14358	.section	.rodata.__func__.9048,"a",%progbits
14359	.set	.LANCHOR168,. + 0
14360	.type	__func__.9048, %object
14361	.size	__func__.9048, 13
14362__func__.9048:
14363	.ascii	"FtlProgPages\000"
14364	.section	.rodata.__func__.9076,"a",%progbits
14365	.set	.LANCHOR176,. + 0
14366	.type	__func__.9076, %object
14367	.size	__func__.9076, 9
14368__func__.9076:
14369	.ascii	"FtlWrite\000"
14370	.section	.rodata.__func__.9158,"a",%progbits
14371	.set	.LANCHOR127,. + 0
14372	.type	__func__.9158, %object
14373	.size	__func__.9158, 14
14374__func__.9158:
14375	.ascii	"FtlBbt2Bitmap\000"
14376	.section	.rodata.__func__.9193,"a",%progbits
14377	.set	.LANCHOR140,. + 0
14378	.type	__func__.9193, %object
14379	.size	__func__.9193, 11
14380__func__.9193:
14381	.ascii	"FtlLoadBbt\000"
14382	.section	.rodata.__func__.9308,"a",%progbits
14383	.set	.LANCHOR48,. + 0
14384	.type	__func__.9308, %object
14385	.size	__func__.9308, 17
14386__func__.9308:
14387	.ascii	"INSERT_FREE_LIST\000"
14388	.section	.rodata.__func__.9313,"a",%progbits
14389	.set	.LANCHOR44,. + 0
14390	.type	__func__.9313, %object
14391	.size	__func__.9313, 17
14392__func__.9313:
14393	.ascii	"INSERT_DATA_LIST\000"
14394	.section	.rodata.__func__.9344,"a",%progbits
14395	.set	.LANCHOR49,. + 0
14396	.type	__func__.9344, %object
14397	.size	__func__.9344, 17
14398__func__.9344:
14399	.ascii	"List_remove_node\000"
14400	.section	.rodata.__func__.9376,"a",%progbits
14401	.set	.LANCHOR53,. + 0
14402	.type	__func__.9376, %object
14403	.size	__func__.9376, 22
14404__func__.9376:
14405	.ascii	"List_update_data_list\000"
14406	.section	.rodata.__func__.9385,"a",%progbits
14407	.set	.LANCHOR149,. + 0
14408	.type	__func__.9385, %object
14409	.size	__func__.9385, 16
14410__func__.9385:
14411	.ascii	"load_l2p_region\000"
14412	.section	.rodata.__func__.9418,"a",%progbits
14413	.set	.LANCHOR80,. + 0
14414	.type	__func__.9418, %object
14415	.size	__func__.9418, 26
14416__func__.9418:
14417	.ascii	"ftl_map_blk_alloc_new_blk\000"
14418	.section	.rodata.__func__.9429,"a",%progbits
14419	.set	.LANCHOR150,. + 0
14420	.type	__func__.9429, %object
14421	.size	__func__.9429, 15
14422__func__.9429:
14423	.ascii	"ftl_map_blk_gc\000"
14424	.section	.rodata.__func__.9444,"a",%progbits
14425	.set	.LANCHOR147,. + 0
14426	.type	__func__.9444, %object
14427	.size	__func__.9444, 31
14428__func__.9444:
14429	.ascii	"Ftl_write_map_blk_to_last_page\000"
14430	.section	.rodata.__func__.9458,"a",%progbits
14431	.set	.LANCHOR148,. + 0
14432	.type	__func__.9458, %object
14433	.size	__func__.9458, 16
14434__func__.9458:
14435	.ascii	"FtlMapWritePage\000"
14436	.section	.rodata.__func__.9483,"a",%progbits
14437	.set	.LANCHOR56,. + 0
14438	.type	__func__.9483, %object
14439	.size	__func__.9483, 22
14440__func__.9483:
14441	.ascii	"select_l2p_ram_region\000"
14442	.section	.rodata.__func__.9500,"a",%progbits
14443	.set	.LANCHOR152,. + 0
14444	.type	__func__.9500, %object
14445	.size	__func__.9500, 9
14446__func__.9500:
14447	.ascii	"log2phys\000"
14448	.section	.rodata.__func__.9564,"a",%progbits
14449	.set	.LANCHOR164,. + 0
14450	.type	__func__.9564, %object
14451	.size	__func__.9564, 15
14452__func__.9564:
14453	.ascii	"FtlVpcTblFlush\000"
14454	.section	.rodata.__func__.9586,"a",%progbits
14455	.set	.LANCHOR139,. + 0
14456	.type	__func__.9586, %object
14457	.size	__func__.9586, 14
14458__func__.9586:
14459	.ascii	"FtlScanSysBlk\000"
14460	.section	.rodata.__func__.9635,"a",%progbits
14461	.set	.LANCHOR177,. + 0
14462	.type	__func__.9635, %object
14463	.size	__func__.9635, 15
14464__func__.9635:
14465	.ascii	"FtlLoadSysInfo\000"
14466	.section	.rodata.__func__.9657,"a",%progbits
14467	.set	.LANCHOR179,. + 0
14468	.type	__func__.9657, %object
14469	.size	__func__.9657, 18
14470__func__.9657:
14471	.ascii	"FtlMapTblRecovery\000"
14472	.section	.rodata.__func__.9703,"a",%progbits
14473	.set	.LANCHOR153,. + 0
14474	.type	__func__.9703, %object
14475	.size	__func__.9703, 16
14476__func__.9703:
14477	.ascii	"FtlReUsePrevPpa\000"
14478	.section	.rodata.__func__.9737,"a",%progbits
14479	.set	.LANCHOR154,. + 0
14480	.type	__func__.9737, %object
14481	.size	__func__.9737, 22
14482__func__.9737:
14483	.ascii	"FtlRecoverySuperblock\000"
14484	.section	.rodata.__func__.9794,"a",%progbits
14485	.set	.LANCHOR59,. + 0
14486	.type	__func__.9794, %object
14487	.size	__func__.9794, 16
14488__func__.9794:
14489	.ascii	"make_superblock\000"
14490	.section	.rodata.__func__.9815,"a",%progbits
14491	.set	.LANCHOR135,. + 0
14492	.type	__func__.9815, %object
14493	.size	__func__.9815, 18
14494__func__.9815:
14495	.ascii	"SupperBlkListInit\000"
14496	.section	.rodata.__func__.9842,"a",%progbits
14497	.set	.LANCHOR158,. + 0
14498	.type	__func__.9842, %object
14499	.size	__func__.9842, 14
14500__func__.9842:
14501	.ascii	"ftl_check_vpc\000"
14502	.section	.rodata.__func__.9907,"a",%progbits
14503	.set	.LANCHOR143,. + 0
14504	.type	__func__.9907, %object
14505	.size	__func__.9907, 25
14506__func__.9907:
14507	.ascii	"allocate_data_superblock\000"
14508	.section	.rodata.__func__.9928,"a",%progbits
14509	.set	.LANCHOR167,. + 0
14510	.type	__func__.9928, %object
14511	.size	__func__.9928, 29
14512__func__.9928:
14513	.ascii	"allocate_new_data_superblock\000"
14514	.section	.rodata.__func__.9935,"a",%progbits
14515	.set	.LANCHOR60,. + 0
14516	.type	__func__.9935, %object
14517	.size	__func__.9935, 19
14518__func__.9935:
14519	.ascii	"get_new_active_ppa\000"
14520	.section	.rodata.__func__.9948,"a",%progbits
14521	.set	.LANCHOR145,. + 0
14522	.type	__func__.9948, %object
14523	.size	__func__.9948, 16
14524__func__.9948:
14525	.ascii	"update_vpc_list\000"
14526	.section	.rodata.__func__.9955,"a",%progbits
14527	.set	.LANCHOR146,. + 0
14528	.type	__func__.9955, %object
14529	.size	__func__.9955, 20
14530__func__.9955:
14531	.ascii	"decrement_vpc_count\000"
14532	.section	.rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1
14533.LC21:
14534	.ascii	"decrement_vpc_count %x = %d\012\000"
14535	.section	.rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1
14536.LC29:
14537	.ascii	"...%s enter...\012\000"
14538.LC30:
14539	.ascii	"FtlCheckVpc2 %x = %x  %x\012\000"
14540.LC31:
14541	.ascii	"free blk vpc error %x = %x  %x\012\000"
14542	.section	.rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1
14543.LC10:
14544	.ascii	"FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
14545	.section	.rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1
14546.LC32:
14547	.ascii	"ftl_scan_all_data = %x\012\000"
14548.LC33:
14549	.ascii	"scan lpa = %x ppa= %x\012\000"
14550.LC34:
14551	.ascii	"lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
14552	.ascii	"\000"
14553	.section	.rodata.load_l2p_region.str1.1,"aMS",%progbits,1
14554.LC24:
14555	.ascii	"region_id = %x phyAddr = %x\012\000"
14556.LC25:
14557	.ascii	"map_ppn:\000"
14558.LC26:
14559	.ascii	"load_l2p_region refresh = %x phyAddr = %x\012\000"
14560	.section	.rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1
14561.LC42:
14562	.ascii	"g_gc_superblock_free %x %x %x %x %x\012\000"
14563.LC43:
14564	.ascii	"lpa=%x, ppa=%x\012\000"
14565	.section	.rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
14566.LC2:
14567	.ascii	"%s 0x%x:\000"
14568.LC3:
14569	.ascii	"%x \000"
14570.LC4:
14571	.ascii	"%02x \000"
14572.LC5:
14573	.ascii	"\012\000"
14574	.section	.rodata.sftl_init.str1.1,"aMS",%progbits,1
14575.LC49:
14576	.ascii	"SFTL version: 5.0.55 20200925\000"
14577	.hidden	free
14578