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